二、计算机组成原理与体系结构

news2024/11/26 10:35:59

(一)数据的表示

不同进制之间的转换

R 进制转十进制使用按权展开法,其具体操作方式为:将 R 进制数的每一位数值用 Rk 形式表示,即幂的底数是 R ,指数为 k ,k 与该位和小数点之间的距离有关。当该位位于小数点左边,k 值是该位和小数点之间数码的个数,而当该位位于小数点右边,k 值是负值,其绝对值是该位和小数点之间数码的个数加 1 。

  • 例如二进制数 10100.01=1x24+0x23+1x22+0x21+0x20+0x2-1+1x2-2=1x24+1x22+1x2-2=20.25

  • 例如七进制数 604.01=6x72+0x71+4x70+0x7-1+1x7-2=6x72+4x70+1x7-2=298.0204081632653

数值之间的转换。

(二)计算机结构

计算机结构中的主机主要包括:CPU、主存储器。 CPU 主要由运算器、控制器两部分组成。

  • 运算器:主要负责运算功能,如加减法。

    • 算术逻辑单元 ALU(Arithmetic and Logic Unit):能实现多组算术运算和逻辑运算的组合逻辑电路;是 CPU 的执行单元,跟运算有关。

    • 累加寄存器 AC:储存运算过程中的一些值,加减法都会用到。

    • 数据缓冲寄存器 DR:对内存储器进行读写操作时,用来暂存数据。

    • 状态条件寄存器 PSW(常考):存储运算过程中的标志位,保存运算的进位、溢出、中断等状态信息。

  • 控制器:控制整个 CPU 的交互功能。

    • 程序计数器 PC:确定下一个待执行的指令的地址。

    • 指令寄存器 IR:。

    • 指令译码器:。

    • 时序部件:。

image

(三)计算机体系结构分类 - Flynn

Flynn 分类法是一种计算机体系结构分类法,分类依据有两个指标:指令流、数据流,两者都有单、双之分,即单指令流、多指令流、单数据流、多数据流。

image

(四)CISC 与 RISC

CISC 与 RISC 是两种不同的指令系统,考试中主要出现在选择题中,考察两者的区别,记住图片中的区别即可。

  • CISC 是以前在计算机还没有大规模使用的情况下提出来的指令系统,数量较多,通用性较差。

  • RISC 去掉了复杂的指令,增强了通用性,是目前使用比较广泛的指令集。增加的硬布线逻辑控制可以提高效率。

image

(五)流水线

考试中主要考察计算的问题。

概念

流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。

image

上图中的取指、分析、执行是由三个不同的部件完成,所以在未使用流水线执行指令的情况下,有大量部件在大量时间是处于空闲状态。比如指令 1 在取指完成后,直到指令 2 的取值前,取指部件都处于空闲状态,分析部件、执行部件也是类似的情况。

流水线的工作就是将这些部件完全利用起来。如指令 1 取指完成后进入分析环节,同时取指部件开始对指令 2 进行取指,以此类推,就可以将部件完全利用起来。流水线广泛应用于工厂生产线中,很大程度的提高了生辰效率。

流水线计算

这部分是考试的重点。

image

在流水线的执行过程中,会分成三个段:取指段、分析段、执行段,而流水线周期则为这三个中执行时间最长的一段所花费的时间。

image

流水线计算公式分为理论公式和实践公式,理论公式是完整的计算第一条指令执行完所需要的时间,而实践公式在计算第一条指令的执行时间时,将每一段的执行时间都按周期计算,其它的则相同。

在考试中,流水线的计算是作为选择题出现的,其答案有百分之八十的情况是用理论公式计算,百分之二十的情况是用实践公式计算。如果选项中有用理论公式计算出来的答案,就选该答案。否则,就选实践公式计算出来的答案。

吞吐率计算

流水线的吞吐率:单位时间内处理任务的数量或输出结果的数量。

image

image

在上题中,指令条数为 100 条,流水线执行时间为 203ns,则流水线的吞吐率为:100/203=0.493 。

加速比计算

流水线的加速比:完成同一批任务,不适用流水线所用的时间与使用流水线所用的时间的比值。

image

image

在上面的例题中,不适用流水线所用的时间为(2+2+1)x100=500ns,使用流水线所用的时间为 203ns,则流水线的加速比为:500ns/203ns=2.463 。加速比越高,说明使用流水线产生的效果越好。所以对于流水线来讲,加速比越高越好。

效率计算

流水线的效率:在时空图中,流水线利用起来的时间片与整个时间片的比值。流水线的效率是为了设计出效率更高的流水线,那么什么样的流水线效率最高呢?是每一个工作段的时间都接近或相等的流水线的效率最高。

image

(六)层次化存储结构

在整个层次化存储结构中,速度最快效率最高的是 CPU 中的寄存器。CPU 中有运算器、控制器,这两者中都有寄存器。寄存器的容量是非常小的,但是速度是非常快的。寄存器在整个存储结构中,是属于最顶层的。

在整个存储结构中,速度最快的往往容量最小,速度最慢的往往容量最大,这是基于性价比设计的。

image

Cache

Cache 是高速缓存存储器,在存储结构中,Cache 不是必需的,可以省略掉,因为 CPU 可以直接与内存进行数据交换。但是缺少 Cache 会导致 CPU 与内存之间的数据交换非常慢,比加上 Cache 大概慢了数百倍。Cache 是按内容存储的,即将相同的内容存储在一块区域中,读取的时候也是按内容来取。按内容存取的存储器又叫相联存储器,它是一种不根据地址而是根据存储内容来进行存取的存储器,可以实现快速地查找快表。相联存储器的速度和效率远高于按地址存取的存储器。

image

寄存器的容量极小,又存在于 CPU 中,所以并不把寄存器当作存储器来看待。所以在计算机的存储系统体系中,Cache 是访问速度最快的层次。在考试中,如果要选择速度最快的存储器,如果答案中有寄存器和 Cache 就选寄存器,如果没有寄存器但有 Cache 就选 Cache。

image

如果 CPU 需要访问的数据在 Cache 中直接能找到,则说明对 Cache 的访问命中;如果不能在 Cache 中找到,则 CPU 会去内存(主存储器)中读取需要的数据,此时没有命中 Cache。对 Cache 的访问命中率:CPU 读取 Cache 的时候能够获取到需要的数据的概率。

局部性原理

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

image

2.1 时间局部性

时间局部性:如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。产生时间局部性的典型原因:是由于在程序中存在着大量的循环操作。

被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。

比如在执行 for 循环时,就会反复执行循环体中的语句,此时 CPU 就会在某一时段内集中访问循环体中变量所在的存储单元。

2.2 空间局部性

空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,这是因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组表等形式簇聚存储的。

如果一个存储器的位置被引用,那么将来它附近的位置也会被引用。

比如对数组的处理,通常就涉及到空间局部性。

主存

3.1 主存的分类

主存可分为随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)。

image

3.2 主存的编址

所谓主存的编址,实际上就是将存储芯片(颗粒)组成相应的主存器。在用芯片组成存储器的时候,要分析什么样规格的芯片、多少块芯片能够组成按什么样方式编址的存储空间。如下图中的 8*4 的存储器表示:该存储器有 8 个地址空间,每个地址空间可以存储 4bit 位的数据。

这部分内容考察的概率比较大。

image

image

磁盘结构与参数

机械硬盘在存取数据时,磁盘是匀速运动的。磁盘的平均存取时间与平均寻道时间、数据传输速率、平均旋转时间(磁盘转速)等都有关系。平均寻道时间、数据传输速率与磁盘转速无关。磁盘转速的提高,会缩短平均旋转等待时间。

image

image

image

(1)试题的第一个答案为 366ms。若系统使用单缓冲区顺序处理这些记录,即单缓存区每次只能处理一个逻辑记录。分析后发现需要分为前 10 条记录、最后一条记录两个部分来计算。题干中说明磁盘的旋转周期为 33ms,即转一圈的时间为 33ms,总共有 11 条记录,则每条记录的读取时间为 33ms/11=3ms。

**处理前 10 条记录:**当读取完 R0 时(耗时 3ms),将 R0 存储到单缓冲区中进行处理(耗时 3ms),由于磁头是匀速运动,当处理完 R0 时磁头已经到达 R2 的开始处,所以只能等到磁头重新到达 R1 的开始处时,才能读取完 R1 后再将 R1 存储到单缓存区中进行处理,以此类推直到处理完 R9 都是这样的模式。所以,处理完一条记录,并将磁头移到下一条待处理的记录开始处,所花费的时间是:磁头转一圈的时间(33ms)+一条记录的处理时间(3ms)=36ms,这样的处理方式总共需要 10 次,所以这部分的处理时间:36ms x 10 = 360 ms。这里可以这样理解:磁头刚开始在 R0 的开始处,转一圈后回到 R0 的开始处,此时需要 33ms,处理 R0 的时间为 3ms,在处理 R0 的过程中,磁头继续匀速转动,当处理完 R0 时,磁头正好到达 R1 的开始处,接下来以同样的模式开始处理 R1,直到处理完 R9 都是这样的模式。

**处理最后一条记录:**最后一条记录为 R10,读取耗时 3ms,处理耗时 3ms,总共耗时 6ms。由于接下来无需处理下一条记录,所以整个处理过程完毕。

image

(2)试题的第二个答案为 66ms。优化信息存储以获得最少的处理时间,其思路为:读取并处理完 R0 后,磁头正好到达 R1 的开始处,这种存储方式是处理最快的。此时,读取处理每一条记录的时间为:3ms(读取)+3ms(处理)=6ms,总共 11 条记录,则整个处理时间为:6ms x 11=66ms。

image

image

(七)总线

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。

按照总线所处的位置不同,总线通常被分成三种类型:

  • 内部总线:微机中各外围芯片与 CPU 之间的总线,属于芯片层级的总线。

  • 系统总线(内部总线):微机中各插线板与系统板之间的总线,属于插线板层级的总线。比如 PCI、VGA 等接口。PCI 是并行内总线(2021 年上半年上午题)。

    • 数据总线(DB,Data Bus):用于传输数据的总线,将数据从一个设备传输到另一个设备。数据总线是双向的,它有助于发送和接收数据。如果计算机系统是 32 位,就表示该系统的一个字节就表示 32bit 位,说明数据总线的宽度就是 32bit 位,一次或者一个周期能够传输的数据量就是 32bit 位。

    • 地址总线(AB,Address Bus):一种微处理器用于传输内存物理地址的计算机总线。它是单向的,只能在一个方向传输数据的 I/O 和数据的内存地址。假设地址总线是 32 位,则表示其代表的地址空间是 232(相当于 4G 的宽度)。所以,32 位的操作系统,能管理的最大内存为 4G。

    • 控制总线(CB,Control Bus):主要用来传送控制信号和时序信号。控制总线的传送方向由具体控制信号而定,一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制总线的具体情况主要取决于CPU。

  • 外部总线:微机与外部设备之间的总线。SCSI(小型计算机系统接口)是一条并行外总线(2021 年上半年上午题)。

image

(八)系统可靠性分析与设计

1 串联系统与并联系统

主要是计算方面的问题。串联系统是将多个子系统串联在一起,并联系统是将多个子系统并联在一起。

  1. 串联系统
  • 串联系统的特点:上图中的串联系统由R1、R2、…、Rn这些子系统组成,当这些子系统都能正常运行时,该串联系统才能正常运行;否则只要有其中一个子系统不能正常运行,则整个串联系统就无法正常运行。

  • 串联系统的可靠度计算:将每个子系统的可靠度相乘,因为所有子系统可靠,整个串联系统才能可靠。

  • 串联系统的失效率计算:将每个子系统的失效率相加,由于是近似计算,所以有时候计算结果并不是很精确。比如整个串联系统由 20 个子系统组成,每个子系统的可靠度是 0.9,则每个子系统的失效率是 0.1,则整个串联系统的失效率为 0.1 x 20=2,这显然是不正确的。所以,只有在失效率很小的时候,才能使用下面的计算公式。

image

  1. 并联系统
  • 并联系统的特点:只要有一个子系统能正常运行,则整个并联系统就可以正常运行;当所有的子系统同时失效时,整个并联系统才会失效。

  • 并联系统的可靠度:先算出所有子系统同时失效的概率 A,然后即可得出 1-A 就是整个并联系统的可靠度。例如,并联系统由三个子系统组成,每个子系统的可靠度为 0.9,则每个子系统的失效率为 0.1,所以该并联系统的可靠度为:1 - 0.1 x 0.1 x 0.1 =  1- 0.13=0.999。

  • 并联系统的失效率:下图中计算并联系统失效率的公式过于复杂,不建议使用。一般是先求出可靠度 A,然后就可以得出失效率为 1-A。

image

2 N 模冗余系统与混合系统
  1. N 模冗余系统

可以使用冗余的方式来提高系统的可靠性。在 N 模冗余系统中,是通过表决的方式将错误屏蔽掉。

image

  1. 混合系统

混合系统中同时存在串联系统、并联系统。

混合系统的可靠度计算:先从整体上看系统是串联系统还是并联系统,如果从整体上看是串联系统,则先计算并联系统的可靠度,然后再计算整个串联系统的可靠度;如果从整体上看是并联系统,则先计算串联系统的可靠度,再计算并联系统的可靠度。

image

(九)差错控制

1 概念

差错控制主要讲校验码。下图中:

  • 采用 1 位长度的编码,是无法检错的。

  • 采用 2 位长度的编码,是可以检错的,但是无法纠错。比如,要传输的 A=11,由于链路错误,导致接收的 10,此时无法根据接收的 10 来判断到底传输的是 A 还是 B。因为 11、00 都可以因为传错 1 位变成 10。所以要增加码距才能纠错。

  • 采用 3 位长度的编码,是可以纠错的。传输链路还是比较可靠的,一般只会传错 1 位,不会传错 2 位或者更多位。

image

2 循环校验码 CRC

循环校验码 CRC 是一种可以做检错,但是无法做纠错的效验码。

image

image

3 海明校验码

海明校验码的难度较高,在考试中出现的概率较大。要学会如何编码、要能计算多少位的信息位需要多少个校验位。首先要清楚使用海明码编码完成的串中,哪些位置是校验位,哪些位置是信息位。

如果只有 1 个信息位,则最终编码的长度为 3 位。

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1173346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文阅读—— UniDetector(cvpr2023)

arxiv:https://arxiv.org/abs/2303.11749 github:https://github.com/zhenyuw16/UniDetector 一、介绍 通用目标检测旨在检测场景那种的一切目标。现有的检测器依赖于大量数据集 通用的目标检测器应该有两个能力:1、可以利用多种来…

鹏城杯_2018_note

查看保护,就开了 PIE: 漏洞点: buf 存在溢出,刚好可以溢出到 idx,而且没有开 PIE 和 FULL RELRO,所以可以修改 idx 去修改相关 got 表项。 然后我就没啥思路了,因为在我的本地环境堆上是没有可…

Flink SQL时间属性和窗口介绍

(1)概述 时间属性(time attributes),其实就是每个表模式结构(schema)的一部分。它可以在创建表的 DDL 里直接定义为一个字段,也可以在 DataStream 转换成表时定义。 一旦定义了时间…

一文通透各种注意力:从多头注意力MHA到分组查询注意力GQA、多查询注意力MQA

第一部分 多头注意力 // 待更 第二部分 LLaMA2之分组查询注意力——Grouped-Query Attention 自回归解码的标准做法是缓存序列中先前标记的键 (K) 和值 (V) 对,从而加快注意力计算速度 然而,随着上下文窗口或批量大小的增加,多头注意力 (MH…

Buuctf-Crypto-之深夜刷题部分wp

萌萌哒的八戒 首先下载好附件,解压,是一幅猪图,图的下方是一串看不懂的字,百度输入关键词猪、密码,可知这是猪圈密码, 手撸得WHENTHEPIGWANTTOEAT 大写不对,换成小写。 …

数据结构——常见简答题汇总

目录 1、绪论 2、线性表 3、栈、队列和数组 4、串 5、树与二叉树 6、图 7、查找 8、排序 1、绪论 什么是数据结构? 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据结构包括三个方面:逻辑结构、存储结构、数据的运算。 逻辑结…

中小学智慧校园电子班牌管理系统源码

智慧校园云平台电子班牌系统,利用先进的云计算技术,将教育信息化资源和教学管理系统进行有效整合,实现基础数据共享、应用统一管理。借助全新的智能交互识别终端和移动化教育管理系统,以考勤、课表、通知、家校互通等功能为切入点…

如何将 XxlJob 集成达梦数据库

1. 前言 在某些情况下,你的项目可能会面临数据库选择的特殊要求,随着国产化的不断推进,达梦数据库是一个常见的选择。本篇博客将教你如何解决 XxlJob 与达梦数据库之间的 SQL 兼容性问题,以便你的任务调度系统能够在这个数据库中…

NNDL 作业6 卷积

一、概念 (一)卷积 (1)什么叫卷积 卷积、旋积或褶积(英语:Convolution)是通过两个函数f和g生成第三个函数的一种数学运算,其本质是一种特殊的积分变换,描述一个函数和另一个函数在某个维度上…

类和对象解析

导言: Java是一门纯面向对象的语言,在面对对象的世界里,一切皆为对象。而对象的创建又和类的定义息息相关。本文主要阐述了类和对象的使用与理解。解释类的定义方式以及对象的实例化,类中的成员变量和成员方法的使用,…

【qemu逃逸】D3CTF2021-d3dev

前言 题目给的是一个 docker 环境,所以起环境非常方便,但是该怎么调试呢?有无佬教教怎么在 docker 中调试? 我本来想着直接起一个环境进行调试,但是缺了好的库,所以就算了,毕竟本题也不用咋调…

044_第三代软件开发-保存PDF

第三代软件开发-保存PDF 文章目录 第三代软件开发-保存PDF项目介绍保存PDF头文件源文件使用 关键字: Qt、 Qml、 pdf、 painter、 打印 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language&#xff…

阿里5年经验之谈 —— 记录一次jmeter压测的过程!

在软件架构与中间件实验的最后,要求进行非功能测试,那得非压力测试莫属了。虽然之前学习秒杀项目的时候看视频里面用过jmeter,但没有自己实操过,趁着这次机会,使用一下。 QPS与TPS 1、TPS: Transactions …

力扣周赛 -- 370周赛

先更新前两道题目,下午更新后两道 两道模板题(拓扑排序) 拓扑排序 拓扑排序(Topological Sorting):一种对有向无环图(DAG)的所有顶点进行线性排序的方法,使得图中任意一点 $u$ 和 $v$&#xf…

【LeetCode】每日一题 2023_11_5 重复的DNA序列

文章目录 刷题前唠嗑重复的DNA序列题目描述代码和解题思路偷看大佬题解结语 刷题前唠嗑 LeetCode? 启动!!! 重复的DNA序列 题目链接:187. 重复的DNA序列 题目描述 代码和解题思路 func findRepeatedDnaSequences(s string) …

fastapi-Headers和Cookies

在FastAPI中,Headers是一个特殊的类型,用于处理HTTP请求头(Headers)。Headers允许你接收、访问和修改HTTP请求中的头部信息。 使用Headers,你可以在FastAPI的路由视图中将请求头作为参数接收,并对它们进行…

linux基本用法

文章目录 前言一、开关机操作1.1 开机登陆1.2 关机1.3 系统目录结构 二、常用的基本命令(重点)2.1 相对路径与绝对路径2.2 处理目录的常用命令2.2.1 ls2.2.2 cd 切换目录2.2.3 pwd ( 显示目前所在的目录 )2.2.4 mkdir (创建新目录)2.2.5 rmdir ( 删除空的…

【Vue.js】Vue3全局配置Axios并解决跨域请求问题

系列文章目录 文章目录 系列文章目录背景一、部署Axios1. npm 安装 axios2. 创建 request.js,创建axios实例3. 在main.js中全局注册axios4. 在页面中使用axios 二、后端解决跨域请求问题方法一 解决单Contoller跨域访问方法二 全局解决跨域问题 背景 对于前后端分离…

回溯算法--4后问题

1.问题描述 四皇后问题&#xff1a;在4 4 的方格棋盘上放置4个皇后&#xff0c;使得没有两个皇后在同一行、同一列、也不在同一条45度的斜线上。问有多少种可能的布局&#xff1f; 解是4维向量 比如上面这个解<2,4,1,3> 分别表示圆圈的第2列、第4列等 还可以得到另一解…

LeetCode题:83删除排序链表中的重复元素 141环形链表

83删除排序链表中的重复元素 题目内容 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,1,2] 输出&#xff1a;[1,2]示例 2&#xff1a; 输入&#xf…