首页 > 其他分享 >计算机硬件

计算机硬件

时间:2024-06-09 16:12:13浏览次数:14  
标签:操作数 主存 计算机硬件 Cache 地址 指令 CPU

计算机部件


计算机五大部件

运算器、控制器、存储器、输入设备和输出设备

  • 运算器、控制器等部件集成被称为CPU,CPU是硬件系统的核心,用于数据的加工,能完成各种算数、逻辑运算及控制功能。
  • 存储器是计算机记忆设备,分为内部存储和外部存储。内部存储速度高,容量小,一般用于临时存储程序、数据及中间结果。外部存储容量大,速度慢,可以长期保存程序和数据。
  • 输入设备和输出设备合称外部设备(外设),输入设备用于输入原始数据及各种命令,而输出设备则用户输出计算机运行的结果 

CPU的功能

  • 程序控制(控制器):CPU执行指令来控制程序的执行顺序
  • 操作控制(控制器):一条指令功能的实现需要若干的操作信号配合完成,CPU产生每条指令的操作信号并将信号送往对应的部件,控制相应部件按指令功能进行操作
  • 时间控制(控制器):CPU对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间,持续时间及出现时间顺序都需要严格控制。
  • 数据处理(运算器):算术运算(1+1这些)和逻辑运算(与或非)

CPU还需要对系统内部和外部的中断、异常做出响应和相应处理

CPU的组成

CPU主要由运算器、控制器、寄存器组和内部总线等部件组成

  • 运算器:由算术逻辑单元(ALU)(实现对数据的算术和逻辑运算)、累加寄存器(AC)(运算结果或源操作数的存放区)、数据缓冲寄存器(DR)(暂时存放内存的指令或数据)和状态条件寄存器(PSW)(保存指令运行结果的条件码内容,如溢出标志等)组成。执行所有的算术运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与、或、非比较等
  • 控制器:由程序计数器(PC)(存放指令执行地址)、指令寄存器(IR)(暂存CPU执行指令)、指令译码器(ID)(分析指令操作码)和地址寄存器(AR)(保存当前CPU所访问的内存地址)等组成。控制整个CPU的工作,最为重要。
  • CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或数据。 
运算器 算术逻辑单元(ALU) 实现对数据的算术和逻辑运算
累加寄存器(AC) 运算结果或源操作数的存放区
数据缓冲寄存器(DR) 暂时存放内存的指令或数据
状态条件寄存器(PSW) 保存指令运行结果的条件码内容,如溢出标志等
控制器 程序计数器(PC) 存放指令执行地址
指令寄存器(IR) 暂存CPU执行指令
指令译码器(ID) 分析指令操作码
地址寄存器(AR) 保存当前CPU所访问的内存地址

检验码


码距

  • 单个编码:比如A是00。如果想改变它的编码只需要改变1位,所以它的码距是1
  • 两个编码:比如A是00,B是11。如果想把A变成B,就要改变2位,所以它的码距是2 

奇偶校验码

在编码中会添加1位校验位来进行校验,这时候如果出错,出错位和校验位都会变化所以它的码距是2。只能检错,不能纠错,只能校验1位出错。

  • 奇校验:在编码中,新增1位校验位,需要使得整个编码的1个数为奇数。接收方接收数据后会判断是否有奇数个1,从而判断是否出错。
  • 偶校验:在编码中,新增1位校验位,需要使得整个编码的1个数为偶数。接收方接收数据后会判断是否有偶数个1,从而判断是否出错。 

例如:发送1101这个数据,如果使用奇校验,我们需要新增一个校验位。而且总共是奇数个1所以变成11010。如果使用偶校验,则需要变成11011。 

模2运算

就是异或运算,同0非1。就是相同就是0,不同就是1。不进位不借位。

例如:1011除以0101进行模2除法,得出1110。

CRC(循环冗余校验码)

CRC只能检错,不能纠错,能校验多位。

CRC校验就是需要一个多项式(题目会给出),然后看多项式的最高指数是多少,就在发送数据后面补多少个0,这个就是被除数,然后根据多项式的指数位求出除数,从0次方开始看。存在就记为1,不存在就是0。得到除数和被除数后进行模2运算,求出余数,最后余数的位数必须等于最高指数,不足时可以在前面补0,然后把这个数加在发送数据的后面即可。 

例如:发送信息是1100,题目给出多项式是X3+X+1。最高指数是3,所以被除数是1100 000。然后根据多项式,0次方存在记为1,1次方存在记为1,2次方不存在记为0,3次方存在记为1,最后得出1011。除数就是1011。然后1100 0000和1011进行模2除法。得出10,不足最高次方3,前面补1个0就是010,然后把010加到需要发送信息的后面就是1100 010。

指令系统


计算机指令的组成

一条指令由操作码和操作数两部分组成。操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。整条指令以二进制编码的形式存放在存储器中。(操作数可能为多段)

计算机指令执行过程

取指令--分析指令--执行指令

首先将程序计数器PC中的指令地址取出,送入地址总线。CPU依据指令地址去内存中取出指令内容存入指令寄存器IR,然后由指令译码器ID进行分析,分析指令操作码,最后执行指令,取出指令执行所需的源操作数。

指令寻址方式

  • 顺序寻址方式:按顺序读取指令,读取完本段就顺着读下一段。
  • 跳跃寻址方式:类似编程中的跳转,当前指令给出下一条指令的指令地址码。

操作数寻址方式

  • 立即寻址方式:指令操作数地址字段存放操作数本身,而不是操作数的地址。
  • 直接寻址方式:根据操作数地址到主存中找到操作数。
  • 间接寻址方式:操作数地址字段存放操作数地址,根据这个地址在主存找到的不是操作数而是下一个操作数地址,需要再根据这个操作数地址去主存再找才找到操作数。
  • 寄存器寻址方式:操作数地址存放的是寄存器编号而不是主存地址。
  • 基址寻址方式:将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,扩大寻址能力。
  • 变址寻址方式:和基址寻址相似,把变址地址和指令中形式地址组成有效地址。

指令集

  • 复杂指令系统(CISC):兼容性强,指令繁多,长度可变,支持多种寻址方式。由微程序实现
  • 精简指令系统(RISC):指令少,使用频率接近,支持寻址方式少。主要依靠硬件实现(寄存器、硬布线逻辑控制)。适用于流水线。

流水线

只有精简指令系统才有流水线。

RISC流水线技术

  1. 超流水线:通过细水长流,增加级数和提高主频。使每个周期能完成一个甚至两个浮点操作。本质:以时间换空间
  2. 超标量:通过内装多条流水线来同时执行多个处理,其频率与一般流水接近,但有更小的CPI。本质:以空间换时间,以硬件实现。
  3. 超长指令字:和超标量一样,但这个是通过软件的作用实现。

流水线时间计算

  • 流水线周期:执行时间最长的段,就是流水线周期。
  • 流水线执行时间:1条指令总执行时间+(总指令条数-1)*流水线周期
  • 流水线吞吐率:吞吐率是单位时间里执行的条数。执行条数/流水线执行时间
  • 流水线加速比:加速比就是使用流水线和不使用流水线的比例。不使用流水线时间/使用流水线时间

 

存储系统


计算机采用分级存储体系的主要是为了解决存储容量、成本和速度之间的矛盾。

下图,越靠上面存储速度越快,成本越高,容量越小。

两级存储

Cache-主存、主存-辅存(虚拟存储体系)。需要两级存储的原因是因为CPU速度较快。以前CPU直接访问主存时,主存速度慢导致CPU需要等待,所以在中间增加Cache,Cache速度虽然不及CPU但会比主存快很多,大大提高效率。

局部性原理

总的来说,在CPU运行时数据会趋向于一个较小的局部空间地址。所以出现两个方面

  • 时间局部性原理:就是一个数据被访问过后,短时间里可能会被再次访问,所以把这个数据放到Cache区里。即:相邻的时间里会访问同一个数据项
  • 空间局部性原理:就是一个数据相邻地址数据可能会被访问,所以把这个数据相邻的数据也放到Cache区里。即:相邻的空间地址会被连续访问。

例如:一个数组,我们可能会遍历它所以相邻的数据会放到Cache(空间局部性原理)。一个参数,在函数可能会重复操作我们也放到Cache里(时间局部性原理)

Cache(高速缓冲区)

  • 高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5~10倍,由半导体材料构成。其内容主要是主存的副本拷贝。对程序员来说是透明的。
  • Cache是由控制部分和存储部分组成,存储器储存数据,控制部分负责判断CPU访问的数据是否命中,不命中则依据一定算法从主存中替换。
  • CPU工作时送出的是主存的地址单元,而应从Cache存储器中读/写信息,这就需要主存地址转换为Cache存储器的地址,这种地址转换就是地址映像,由硬件自动完成映射。

映射方式

  • 直接映射:将Cache存储器等分成块,主存也等分成块并编号。只有相同块号才能命中。

例如:第0区的第0块,它需要放到Cache的第0块里。(如果这时候第1区的第0块也要放就需要等待,所以不灵活。同理这时候Cache的第1块是没有存储的也不能存,就会造成资源浪费)

  • 全相联映像:同样都等分成块,就是比如Cache1kb一块主存也是1kb一块,但不分区。这样只需要Cache有空间就可以放入去。因为主存可以随意调入Cache任意块,所以地址变换复杂,速度慢。同时只有Cache满了才会发生冲突,是最不容易发生块冲突的映像方式。(就是只要不满不会存在等待存入的情况)

  • 组组相连映像:全相联映像和直接映像的结合,需要先分块再分组。

替换算法

就是Cache满了之后还需要调入就需要使用替换算法,把不常用的调走调用新的。

  • 随机替换算法:就是利用随机数生成器,随机替换一个块号。
  • 先进先出算法:就是最先进入Cache的信息替换出去。
  • 近期最少使用算法:近期使用最少的Cache信息替换出去(目前用得最多)
  • 优化替换算法:该方法是先执行一次程序,统计Cache的替换情况。然后选择最有效的方式替换。

命中率及平均时间

Cache有命中率的概念,就是CPU所访问数据在Cache中时,命中,直接读取Cache的数据。

Cache的容量越大命中率会越高,曲线增长,不是线性增长。

例如:读取一次Cache时间为1ns,读取主存需要1000ns。若命中Cache率为90%,CPU读取平均时间是?90%*1ns+10%*1000ns(这个算法存在漏洞因为CPU每次都会先访问Cache,不命中才会去主存,所以正确应该是100%*1ns+10%*1000ns。但题目忽略了这个,所以按照题目回答即可)

磁盘

磁盘结构和参数

磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就存在一个个扇区中。

磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取对应的数据。因此,会产生寻道时间和等待时间。所以存储时间=寻道时间+等待时间(平均定位时间+转动延迟)。

注:寻道时间是指磁头移动到磁道所需的时间,等待时间是等待读写的扇区旋转到磁头下的时间。

磁盘调度算法

根据寻道时间和等待时间的原理,因为普遍磁盘转动周期较快且不存在优化点,而寻道时间耗时最长,需要进行重点调度,所以衍生多种调度方式:

  1. 先来先服务(FCFS):根据进程请求访问磁盘的先后顺序,按顺序调度。
  2. 最短寻道时间优先(SSTF):请求访问的磁道与当前磁头所在磁道最近的优先调度,使得每次寻道时间最短。但会出现“饥饿”现象。较远的磁道可能永远无法访问。
  3. 扫描算法(SCAN):又称为“电梯算法”,就像电梯一样先往一个方向把所需调度的磁道都调度完再回头。例如:现在磁头在5号磁道,需要调度6号,9号,12号,2号,1号磁道。该算法就会先按一个固定顺序,例如最近的6号磁道移动,依次完成5→6→9→12后才回头调度2→1。最后顺序就是5→6→9→12→2→1。
  4. 单向扫描调度算法(CSCAN):这个和扫描算法相似,但不同的是它只能单向移动,必须移动到最后才会回头。例如:我们有12个磁道,现在磁头在5号磁道,需要调度6号,7号,2号,1号。这时候会先调度6→7→8....→12。必须走到12号才会回头去调度2号和1号。

输入/输出技术


编址方法

计算机系统中存在多种内存与接口地址的编制方法,常见以下两种:

  1. 内存与接口地址独立编址方法:内存地址和接口地址是完全独立的两个地址空间。访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读/写,其余指令全都是用于内存的。因此,在编程序或读程序时容易使用和辨认,但这种编址方法缺点是用于接口的指令太少,功能太弱
  2. 内存与接口地址统一编址方法:内存地址和接口地址统一在一个公共地址空间里,即内存单元和接口共用地址。优点是原则上内存的指令全都可以用于接口,大大增强了接口的操作功能,而且指令上也不再区分内存或接口指令。该编址方法的缺点就是整个地址空间被分为两部分,其中一部分分配给了接口,剩余内存使用,这会导致内存地址不连续

数据交互方式

计算机和外设间的数据交互方式

程序控制(查询)方式:CPU主动查询外设是否完成数据传输,效率极低。就是CPU调度外设然后等待外设传输数据,外设速度远低于CPU速度导致CPU等待时间很长无法处理其他事情。

程序中断方式:外设完成数据传输后,向CPU发送中断信号,等待CPU处理数据,效率相对较高。节省了数据传输的时间,但数据处理还需要CPU进行处理,就是相比程序控制方式,节省了数据准备时间。

DMA方式(直接主存存取):CPU只需完成必要的初始化等操作,数据传输整个过程都由DMA控制器完成,在主存和外设之间建立直接的数据通路,效率很高。数据直接到了主存,无需CPU再次干预。

补充:

中断响应时间:发出中断请求到开始进入中断处理程序的时间

中断处理时间:开始处理中断程序到结束中断程序的时间

中断向量:提供中断服务程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。

DMA请求会在CPU处理完一个总线周期后执行

中断请求会在CPU处理完一个指令周期后执行

总线结构


总线是指计算机设备和设备之间传输信息的公共数据通道。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。

广义划分

  • 内部总线:内部芯片级别的总线。在芯片内部一般无法发现。
  • 系统总线:也叫板级总线,就是主板上各设备的连接,打开机箱看到的都是系统总线,包括PCI,ISA等。
  • 外部总线:用于计算机外部的连接。如USB,RS232等

狭义划分(系统总线划分)(软考答这个)

  • 数据总线:用于设备间数据传输,并行数据传输位数。
  • 地址总线:用于内存空间管理。就是32位系统总线就232,你内存再打CPU也快不了。
  • 控制总线:输出控制指令的总线。

补充:

单总线:所有设备都挂在一条总线上,所以各设备通信需要高度协调,设计复杂度高,性能低。

单工传输:就是单向输出。

半双工传输:不同时间内可以双向传输,同一时间里只能单向。

全双工传输:同一时间双向传输。

标签:操作数,主存,计算机硬件,Cache,地址,指令,CPU
From: https://www.cnblogs.com/Ai-TangTang/p/18237430

相关文章

  • 计算机硬件
    计算机硬件是指构成计算机系统的物理组件,它们共同工作以执行计算机程序和任务。计算机硬件可以分为几个主要类别,包括:中央处理器,主板,存储设备,显卡,电源供应,输入设备,输出设备,机箱,网络接口卡这些硬件组件通过系统总线、接口和电缆连接在一起,共同工作以支持计算机的运行。随着技术的......
  • 计算机硬件系统
    时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采......
  • Windows System Assessment Tool(WinSAT)是Windows操作系统中的一个工具,用于评估和测量
    您可以使用winsat命令来运行性能评分测试程序,也就是WindowsExperienceIndex(Windows体验指数)测试。这个测试程序能够评估您计算机的性能,并为各个硬件组件打分,最终得出一个综合的基准分数。WindowsSystemAssessmentTool(WinSAT)最早出现在WindowsVista操作系统中。它是由......
  • 对于计算机硬件控制方法的认识(《程序是怎样跑起来的》第11章)
    在《程序是怎样跑起来的》前几张中提到,用户通过操作系统来控制硬件,也就是通过系统调用也称API来调用硬件的。在第11章中讲到,用户使用Windows系统来控制硬件实质上是使用指令间接控制的,指令是由Windows系统发出的。而发出的指令例如书中所举的是IN/OUT指令,是用来控制输入和输出的。......
  • day03_计算机硬件
    昨日作业传统运维没有接触到云计算,没有接触云服务器的,运维工程师得维护企业内部的硬件设备,服务器,以及机房的维护主要维护是企业内部的,不经常变化,且没有超大流量的内部应用(crm,企业内部的邮件系统,办公应用系统)HR。老板,同事,人事,财务,维护的软件,面向企业内部人员云计算运......
  • 计算机硬件
    一些物理设备按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。计算机硬件组成CPU主板内存电源、主机箱硬盘显卡键盘、鼠标显示器CPUMemory(内存)Motherboard(主板)IO设备冯·诺伊曼体系结构,又称为普林斯顿结构计......
  • 计算机硬件-CPU-校验码
    计算机组成部分(冯诺依曼架构):5个部分,运算器、控制器、存储、输入设备、输出设备CPU的功能:程序控制、操作控制、时间控制、数据处理。CPU的组成:主要由运算器、控制器、寄存器和内部总线等部件组成运算器:执行所有的算数运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与或......
  • 3.计算机硬件和基础架构
    现在的计算机和移动设备都遵循冯诺依曼架构冯诺依曼架构:输入设备:键盘,鼠标,触屏(CPU)运算器+控制器:运算器:负责运算控制器:负责控制语句(顺序,循环,条件)输出设备:显示屏,打印机内部存储器:内存条外部存储器:硬......
  • 图形渲染计算机硬件分析
    图形渲染计算机硬件分析1汇编语言汇编语言可以广泛地定义为机器指令的文本表示。在构建处理器之前,需要了解不同机器指令的语义,在这方面,对汇编语言的严格研究将是有益的。汇编语言专用于ISA和编译器框架,因此,汇编语言有许多优点。本节将描述不同汇编语言变体的基本原理,一些通用概......
  • 计算机硬件系统
    计算机系统包含硬件系统和软件系统。根据冯诺依曼结构,硬件系统包含五个部分:运算器、控制器、存储器、输入设备、输出设备。软件系统分为系统软件和应用软件。......