计算机编程基础学习笔记之-1.计算机组成原理

慕课网《计算机基础——更适合程序员的编程必备基础知识》课程

思维导图

计算机基础-计算机原理-操作系统-计算机网络

1.计算机组成原理 总览

在这里插入图片描述

1.计算机体系与结构

1.1 冯诺依曼体系

  • 输入设备
  • cpu:运算器和控制器
  • 存储器
  • 输出设备
    在这里插入图片描述

1.2 冯诺依曼瓶颈

  • cpu和存储器速率之间的问题无法调和
  • 即cpu处理速度快,而存储设备传输速度满,导致cpu经常空转
    在这里插入图片描述

1.3 现代计算机结构体系

  • 解决cpu与存储设备之间的性能差异问题
  • 将存储器加入到cpu中
  • 即存储器实质上是更高速的设备,表现为内存、cpu寄存器
    在这里插入图片描述

2.计算机的层次与编程语言

2.1 程序翻译VS解释

  • 计算机执行的指令都是L0低级语言
  • 翻译过程,直接执行低级语言
  • 解释过程,由L0低级语言编写的解释器去解释高级语言程序
  • Java语言,编译与解释并存,且有及时编译功能,由于字节码的作用,先将高级语言编译成字节码供JVM调用,JVM针对各个操作系统都做了定制,做到一次编译,到处运行
程序翻译
  • 支持的语言:C/C++、Object-C、Golang
  • 优点:执行效率高
  • 缺点:是不能跨平台
    在这里插入图片描述
程序解释
  • 支持的语言:Python、Php、Javascript
  • 优点:可跨平台
  • 缺点:执行效率低
    在这里插入图片描述

2.2 计算机的层次

在这里插入图片描述

实际机器
硬件逻辑层
  • 门、触发器等逻辑电路组成
微程序机器层
  • 微程序由一组微指令集组成
  • 一条机器指令对应一个微程序,即微程序直接交由硬件执行
传统机器层
  • 编程语言和硬件是直接相关
  • 编程语言是CPU指令集(机器指令)
  • 不同架构的CPU使用不同的CPU指令集
虚拟机器
系统软件
操作系统层
  • 向下对接了指令系统,管理硬件资源
  • 向上提供了简易的操作界面
  • 操作系统层是在软件和硬件之间的适配层
汇编语言层
  • 汇编语言可以翻译成可直接执行的机器语言
  • 编程语言是汇编语言
  • 完成翻译的过程的程序就是汇编器
高级语言层
  • 高级语言的类别非常多,由几百种
  • 编程语言为广大程序员所接受的高级语言
  • 常见的高级语言有: Python、 Java、 C/C++、 Golang等
应用软件
  • 满足计算机针对某种用途而专门设计

3. 计算机的计算单位

容量单位
  • 在物理层面,高低电平记录信息
  • 理论上只认识0/1两种状态
  • 0/1状态称为bit(比特位)
  • 1Byte(字节) = 8 * bit
  • KB,MB,GB,TB,PB,EB,1024= 2 10 2^{10} 210换算单位
  • 硬盘商一般以10进位标记容量,故500G,实际 500 ∗ 100 0 3 102 4 3 \frac{500*1000^3}{1024^3} 1024350010003 约等于465GB
    在这里插入图片描述
速度单位
网络速度
  • 指的是容量/s,即100M=100M/s
  • 注意这里的100M.指的是100Mbit/s,不是100MByte/s,相差8倍
    在这里插入图片描述
CPU频率
  • CPU的速度一般体现为CPU的时钟频率
  • CPU的时钟频率的单位一般是赫兹(Hz)
  • 主流CPU的时钟频率都在2GHz以上
  • Hz其实就是秒分之一,例如20HZ,表示20/s,即每秒振动20次
  • 它是每秒中的周期性变动重复次数的计量,不是描述计算机领域专有词汇
  • 计算机频频描述的是每秒高低电平变换的次数,是衡量计算机CPU速度的一个指标
    在这里插入图片描述

4. 计算机的字符与编码集

Extended ASCII码
  • 为了表示数学符号等其他字符,对ASCII码进行扩充, 由7bits扩充到8bits,即可以表示 2 8 2^8 28个字符
    在这里插入图片描述
中文编码集
  • GBK,但只能在安装有GBK的平台使用
  • UTF-8,Unicode:统一码、万国码、单一码,应用更加广泛

在这里插入图片描述

5.计算机组成结构分析

在这里插入图片描述

5.1 计算机的总线与IO设备
5.1.1 总线
总线概述

–>是什么

  • 总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。(总线也是导线,是连接两个以上计算机部件的专用信号线。)
    在这里插入图片描述
    –>作用

对外:

  • 通用串行总线USB提供了对外连接的接口
  • 不同设备可以通过USB接口进行连接
  • 连接的标准,促使外围设备接口的统一,即解决不同设备的通信问题
    在这里插入图片描述
    对内:
  • 通过总线,如人体的脊柱一样,与内部结构进行通信交互
总线分类

片内总线

  • 高集成度芯片内部的信息传输线

    • 寄存器与寄存器之间
    • 芯片内部的总线
    • 寄存器与控制器、运算器之间
      在这里插入图片描述
      系统总线
  • CPU、主内存、 IO设备、各组件之间的信息传输线
    在这里插入图片描述

–> 数据总线
在这里插入图片描述
–>地址总线
在这里插入图片描述
–>控制总线
在这里插入图片描述

总线仲裁

–>为什么要使用仲裁

  • 为了解决总线使用权的冲突问题

–>使用哪些方法

----> 链式查询

  • 链式串联的方式,各设备均可向仲裁控制器发出请求,但控制器给出的使用权依次按照链式传递,即优先给与排在前面的设备

  • 优先级高的经常得到总线的使用权

  • 优缺点:

    • 坏处:优先级低的设备难以获得总线使用权
    • 好处:电路复杂度低,仲裁方式简单
    • 坏处:对电路故障敏感
      在这里插入图片描述
      ---->计时器定时查询
  • 每个任务向控制器请求一次,控制器就计数一次

  • 控制器会根据计数进行查询,比如1,发现设备1没有发送请求,就累加计数,变为2,查询设备2,若2发送的请求,就发送给2

  • 依次类推,若设备3发送请求,计时器累加为3

  • 优先级高的经常得到总线的使用权
    在这里插入图片描述
    ---->独立请求

特点:

  • 设备可单独向仲裁器发送请求和接收请求
  • 每个设备均有总线独立连接仲裁器
  • 当同时收到多个请求信号,仲裁器有权按优先级分配使用权

优缺点:

  • 好处:响应速度快,优先顺序可动态改变
  • 坏处是设备连线多,总线控制复杂
    在这里插入图片描述
5.1.2 输入输出设备
常见输入输出设备了解
  • 常见输入设备:
    • 字符输入设备:键盘
    • 图像输入设备:鼠标、数位板、扫描仪
  • 常见输出设备:
    • 图像输出设备:显示器、打印机、投影仪
输入输出接口的通用设计
  • 数据线
    • 是I/O设备与主机之间进行数据交换的传送线
    • 单向传输数据线
    • 双向传输数据线
  • 状态线
    • IO设备状态向主机报告的信号线
    • 查询设备是否已经正常连接并就绪
    • 查询设备是否已经被占用
  • 命令线
    • CPU向设备发送命令的信号线
    • 发送读写信号
    • 发送启动停止信号
  • 设备选择线
    • 主机选择I/O设备进行操作的信号线
    • 对连在总线上的设备进行选择
CPU与IO设备的通信
  • 解决CPU速度与IO设备速度不一致问题

–>程序中断

  • 过程:

    • 当外围IO设备就绪时,向CPU发出中断信号
    • CPU有专门的电路响应中断信号
  • 特点:

    • 提供低速设备通知CPU的一种异步的方式
    • CPU可以高速运转同时兼顾低速设备的响应
      在这里插入图片描述
      –>DMA(直接存储器访问)
  • DMA直接连接主存与IO设备

  • DMA工作时不需要CPU的参与

  • 一般存在于硬盘或外置显卡中
    在这里插入图片描述

5.2 计算机的存储器
5.2.1 分类与层次结构
----->分类

####### 按储存介质分类

  • 半导体存储器

    • 内存
    • U盘
    • 固态硬盘
  • 磁储存器

    • 磁盘、机械硬盘
    • 磁带
      在这里插入图片描述
      ####### 按存取方式分类
  • RAM

    • 随机读取
    • 与位置无关
  • ROM

    • 只读不写
  • 串行存储器

    • 与位置无关
    • 按顺序查找
      在这里插入图片描述
----->层次结构

####### 位价
在这里插入图片描述
####### 三个结构
在这里插入图片描述
####### 两个层次
在这里插入图片描述
######## 局部性原理

  • 局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中
    在这里插入图片描述
    ######## 缓存-主存层次

  • 缓存的存在是为了解决CPU与存储器速度不匹配问题,在CPU中开辟的处理速度快的寄存器
    在这里插入图片描述
    ######## 主存-辅存层次

  • 主存就是电脑中的高速内存,为了快速处理程序数据功能,辅存指的是电脑磁盘或是固态硬盘,永久性储存数据资源
    在这里插入图片描述

5.2.2 主储存器与辅助储存器
主储存器-内存

在这里插入图片描述

  • 即电脑中的内存条
  • 存储器类型是RAM随机储存
  • RAM通过电容存储数据,必须隔一段时间刷新一次
  • 因此,如果掉电,一段时间后数据会消失,即无法永久保存数据资源
  • CPU的高速缓存寄存器进行交互
  • 大小
    • 32位: 2 32 2^{32} 232 = 4 * 2 30 2^{30} 230 = = 4 * 102 4 3 1024^3 10243 = 4GB
    • 64位: 2 32 2^{32} 232 * 2 30 2^{30} 230 = 2 34 2^{34} 234GB
      在这里插入图片描述
辅储存器-硬盘

####### 固态硬盘

  • 存储介质:

    • NAND闪存固态硬盘则是以NAND闪存,即一种非易失性的存储器
    • 作为存储介质,通过存储器内部的电荷数即cell的通断电进行数据的读取和写入,进而实现数据存储。
  • 半导体工艺

    • 以半导体技术支撑,在单位面积PCB板上,集成了包括主控芯片、闪存颗粒(即存储介质)以及缓存芯片,外加大大小小的控制芯片和核心单元等核心组件
    • 通过通电和放电的形式,将数据存储到闪存介质之中,实现数据的存储。
    • 半导体工艺制程,让固态硬盘的内部结构更加稳定,同时拥有着防磕碰、防摔、防水(部分)等突出优势,更能适应负责的工作环境。

      ####### 机械硬盘
  • 表面是可磁化的硬磁特性材料

  • 移动磁头径向运动读取磁道信息
    在这里插入图片描述
    在这里插入图片描述
    ######## 先来先服务算法

  • 按顺序访问进程的磁道读写顺序
    在这里插入图片描述
    ######## 最短寻道时间优先算法

  • 与磁头当前位置有关

  • 优先访问与磁头近的位置
    在这里插入图片描述
    ######## 扫描算法(电梯算法)

  • 每次只往一个方向移动

  • 到达一个方向服务的尽头再反方向移动
    在这里插入图片描述
    ######## 循环扫描算法

  • 读到尾后,循环扫描到头开始读
    在这里插入图片描述

5.2.3 高速缓存
工作原理

####### 字,块原理

  • 一个字有32位

  • 一个字块共B个字

  • 主存共有M个字块

  • B*M = 主存总字数

  • B*M乘32 =主存总容量(bits))

  • 2 m 2^m 2m = 𝑀

  • 2 b 2^b 2b = 𝐵
    在这里插入图片描述
    ####### 缓存原理

  • 与主存逻辑的字,块逻辑类似

  • 缓存的内存更小

  • 缓存的速度更快
    在这里插入图片描述
    ####### 命中率

  • CPU需要的数据在缓存里

  • 如果缓存没有,就去主存里拿

  • 反应CPU从缓存里拿数据的概率,越高性能越好
    在这里插入图片描述
    ####### 访问效率

  • 从CPU访问缓存的时间方面反映性能的指标
    在这里插入图片描述

高速缓存的替换策略

在这里插入图片描述
####### 随机算法

  • 地址随机替换

####### 先进先出算法(FIFO)

  • 把高速缓存看做是一个先进先出的队列

  • 优先替换最先进入队列的字块
    在这里插入图片描述
    ####### 最不经常使用淘汰算法(LFU)

  • 优先淘汰替换最不经常使用的字块

  • 需要额外的空间记录使用频率
    在这里插入图片描述
    在这里插入图片描述
    ####### 最近最少使用淘汰算法(LRU)

  • 优先淘汰一段时间内没有使用的字块

  • 有多种实现方法,一般使用双向链表

  • 当前访问节点置于链表前面(保证链表头部节点是最近使用的)
    在这里插入图片描述

5.3 计算机的CPU
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值