首页 > 其他分享 >第一章 计算机系统概述

第一章 计算机系统概述

时间:2023-09-28 18:23:21浏览次数:28  
标签:计算机系统 第一章 指令 概述 内存 模块 执行 高速缓存 处理器

一. 基本组成

1. 计算机包含四个主要的结构:

  • 处理器:控制计算机的操作,并执行数据处理的功能。当只有一个处理器时,被称为中央处理单元(cpu)

  • 内存:存储数据和程序。这种存储通常易失,关机时内存数据会丢失。磁盘存储器中的数据即使计算机系统关闭也会被保留。内存称为主存,硬盘为辅存

  • I/O模块:在计算机和外部环境之间交换数据。外部环境有:辅存(如磁盘)、通信设备、终端

  • 系统总线:提供处理器、主存、I/O模块之间的通信

2. 处理器的一个功能是与内存交换数据

它通常使用两个内部寄存器:

  • 内存地址寄存器MAR。指定下一条读/写程序的内存地址
  • 内存缓冲寄存器MBR(也叫MDR)。存放将写入内存/从内存读取的数据

3. 内存由一组顺序编号的、有地址定义的单元的组成

每个单元都包含一个二进制数,代表一条指令或数据。

4. I/O模块

I/O模块在外部设备与处理器、内存之间传输数据。它有一个内部缓冲区,用于临时存储传输前的数据

二. 微处理器

微处理器是部署在单个芯片上的处理器。

如今微处理器发展成了多处理器。每个芯片(称为插槽,Socket)上包含多个处理器(称为核心,Core)

三. 指令的执行

1. 处理器执行的程序由一组保存在存储器中的指令组成。

指令的执行分为两步:

  • 处理器每次从存储器中读取一条指令
  • 执行指令

程序的执行就是重复的读取和执行指令的过程
一条指令的处理过程称为一个指令周期(取值阶段+执行阶段)

2. 指令周期全过程

  • 每个指令周期开始时,处理器从内存中读取一条指令。

  • 程序计数器PC(保存下一次需读取的指令地址)累加,以便顺序获取下一条指令的地址

  • 读取的指令存放在处理器的指令寄存器IR中。

  • 指令中包含用于指定处理器将要执行操作的信息,处理器解释该指令并执行对应的操作

四. 中断

中断就是CPU停下当前的工作任务,去处理其他事情,处理完后回来继续执行刚才的任务
通常大多数I/O设备都比处理器要慢很多。比如处理器向打印机传送数据,则每次写操作完成后处理器必须暂停使用直至打印机完成打印操作。这期间处理器将一直处于空闲状态,这段时间非常长,对处理器的使用造成极大浪费。

中断流程

  • 中断请求:外部设备准备就绪(准备从处理器接收更多数据)时,该设备的I/O模块给处理器发送中断请求信号
  • 中断响应:处理器暂停当前程序的执行
  • 保护现场:标出该中断的产生点
  • 中断处理:调用一个程序服务于该I/O设备,这个程序叫中断处理程序
  • 恢复现场:在对该设备的服务响应完成后,恢复原有程序的执行。

五. 分级存储体系

存储器往往需要权衡三个因素:容量、访问时间、成本

  • 存储时间时间越快,单位(每比特位)成本越高
  • 容量越大,单位(每比特位)成本越低
  • 容量越大,存取速度越慢

1. 分级存储体系结构

随着层次下移,具有如下特征:
a. 单位成本逐层递减
b. 容量逐层递增
c. 访问时间逐层递增
d. 处理器访问存储器的频率逐层递减

特征d的有效基础是访问的局部性原理:CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中

六. 高速缓存

处理器的运行速度和内存的访问速度极不匹配。解决方法是利用局部性原理在处理器和内存之间提供一个容量虽小、但速度较快的存储器,即高速缓存。

高速缓存的原理

  • 高速缓存包含一部分主存数据的副本。
  • 当处理器试图读取内存中的一个字节或字时,首先会检测该数据是否在高速缓存中。
  • 如果在,该字节或字将从高速缓存传递给处理器,否则处理器会先将包含该字节或字的、固定大小的内存块数据读入高速缓存,然后再将该字节或字从高速缓存交给处理器。
  • 由于存在数据访问的局部性现象,当一个数据块被载入高速缓存以满足一次存储访问需求后,可能会继续多次访问该数据块,以获取位于该块的其他字节信息

七. 直接内存访问

当处理器正在执行程序时并遇到一条与I/O相关的指令时,它通过给相应的I/O模块发命令来执行这条指令。
I/O模块执行请求的动作并设置I/O状态寄存器中相应的位,不执行其他操作来通知处理器,不会中断处理器的执行。
因此处理器在执行I/O指令后,需要周期性地检测I/O模块的状态,以确定I/O操作是否已经完成

直接内存访问(Direct Memory Access)DMA

当需要移动大量数据时,我们可以让I/O设备与计算机内存进行直接数据交换。而CPU则可以去忙别的事情。这种将CPU的介入减少的I/O模式称为直接内存访问。

  • DMA工作模式:
    • 处理器尝试读或写一块数据,产生一条命令,向DMA发送如下信息:
    • 是否请求读或写操作
    • 需要访问的I/O设备地址
    • 读/写数据的内存起始地址
    • 读/写数据的长度(字数)
  • 处理器把读/写操作委托给DMA模块,由该模块处理相关操作,之后处理器继续其他的工作。
  • DMA直接与存储器交互(不通过处理器),传输整个数据块,每次传递一个字的内容
  • 传输完成后,DMA模块向处理器发送中断信号。因此,只有在传输的开始和结束这两个时间点,处理器才会参与相关处理工作。

八. 多处理器和多核组织结构

一般情况下计算机被视为一台顺序执行的机器。处理器按顺序一条一条地执行机器指令来完成程序的执行。
但在微操作级别,同一时间会产生多个控制信号。指令流水线技术在一定程度上可以重叠取指和执行操作的执行。这都是并行执行的例子

1. 对称多处理器SMP

  • 具有两个或两个以上性能相当的处理器
  • 处理器共享内存和I/O设备,通过总线或其他内部连接方式互连
  • 整个系统由操作系统进行控制

2. 多核计算机

多核计算机也称为单芯片多处理器,是指在一块硅上组装两个或多个处理器(核)
每个核包含组成一个独立处理器的所有组件。

标签:计算机系统,第一章,指令,概述,内存,模块,执行,高速缓存,处理器
From: https://www.cnblogs.com/algoshimo/p/17736310.html

相关文章

  • 【软考-信息系统管理工程师】-1-计算机系统知识部分查漏补缺
    奇校验/偶校验校验类型和校验位数错误的影响采用奇校验方法,如果有奇数个数据位出错,能检测出错误,但不能纠正错误。奇校验通过将一个固定位数的数据块中二进制数值的总和的奇偶性进行检查来确定数据的正确性。如果某个数据位出错,则检查结果的奇偶性会发生变化,从而可以检测出......
  • MySQL进阶篇:第二章_二.一_索引概述
    2.1索引概述2.1.1介绍索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。2.1.2演示表结构及其数据如下......
  • MySQL进阶篇:第一章_一.五_MySQL存储引擎选择
    MySQL存储引擎选择在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合。InnoDB:是Mysql的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作......
  • 第01章:随堂复习与企业真题(Java语言概述)
    第01章:随堂复习与企业真题(Java语言概述)一、随堂复习1.Java基础全程的学习内容第1阶段:Java基本语法>Java概述、关键字、标识符、变量、运算符、流程控制(条件判断、选择结构、循环结构)、IDEA、数组第2阶段:Java面向对象编程>类及类的内部成员>面向对象的三大特征>其它......
  • 尚硅谷_第01章_Java语言概述
    第01章_Java语言概述拓展练习讲师:尚硅谷-宋红康网址:www.atguigu.com1、System.out.println()和System.out.print()有什么区别?System.out.println();//打印完后,会换行。System.out.print();//打印完后,不会换行。2、一个".java"源文件中是否可以包括多个类?有什么限制?......
  • openGauss学习笔记-81 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT使用概
    openGauss学习笔记-81openGauss数据库管理-内存优化表MOT管理-内存表特性-MOT使用概述MOT作为openGauss的一部分自动部署。有关如何计算和规划所需的内存和存储资源以维持工作负载的说明,请参阅MOT准备。参考MOT部署了解MOT中所有的配置,以及服务器优化的非必须选项。使用MOT的方......
  • 《流畅的Python》 读书笔记 230926(第一章后半部分)
    1.2如何使用特殊方法特殊方法的存在是为了被Python解释器调用的,你自己并不需要调用它们就是说通常你都应该用len(obj)而不是obj.__len()__,无论是系统预置的,还是你自己定义的类,交给Python,解释器会去调用你实现的__len()__然而如果是Python内置的类型,比如列表(list)、字符......
  • 8.1 TEB与PEB概述
    在开始使用TEB/PEB获取进程或线程ID之前,我想有必要解释一下这两个名词,PEB指的是进程环境块(ProcessEnvironmentBlock),用于存储进程状态信息和进程所需的各种数据。每个进程都有一个对应的PEB结构体。TEB指的是线程环境块(ThreadEnvironmentBlock),用于存储线程状态信息和线程所需的......
  • 2023 年前端 UI 组件库概述,百花齐放!
    UI组件库提供了各种常见的UI元素,比如按钮、输入框、菜单等,只需要调用相应的组件并按照需求进行配置,就能够快速构建出一个功能完善的UI。虽然市面上有许多不同的UI组件库可供选择,但在2023年底也并没有出现一两个明确的解决方案能够适用于所有情况。因为不同的前端框架(例如React......
  • 用户和组账号概述 Linux基于用户身份对资源访问进行控制 用户帐号: 超级用户root、普
    用户和组账号概述Linux基于用户身份对资源访问进行控制用户帐号:超级用户root、普通用户、程序用户超级用户,即root用户,类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统普通用户帐号一般只在用户自己的宿主目录中有完全权限程序用户:用于......