软件设计师(一):计算机组成与体系结构(二)

简介: 软件设计师(一):计算机组成与体系结构(二)

6、层次化存储结构


9ca8c216c4ac53e0732e017af26c9205_image-20221009133307631.png


上图中,存储速度最快、效率最高的就是寄存器,它位于CPU中,在CPU中,拥有运算器和控制器,而在运算器和控制器中,就会存在相应的寄存器。而寄存器的容量是极小的,但是速度非常快。


速度排在第二的是Cache高速缓存存储器,之后依次是内存(主存)、外存(辅存)。


对于Cache而言,它内部的所有内容都来自于内存,它所存储的内容是内存中的一小部分,但是运行速度却比内存快的多。


6.1 存储器的分类


按存储器所处的位置分类


内存:也称为主存,设在主机内或主板上,用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息。相对于外存,其特点是容量小、速度快。

外存:也称为辅存,如磁盘、磁带、光盘和U盘等,用来存放当前不参加运行的大量信息,而在需要时调入内存。

按存储器的构成材料分类


磁存储器:用磁介质做成,如磁芯、磁泡、磁膜、磁鼓、磁带及磁盘等。

半导体存储器:根据所用元件可分为:双极型和MOS型;根据数据是否需要刷新可分为:静态和动态。

光存储器:利用光学方法读/写数据的存储器,如光盘。

按存储器的工作方式分类


读/写存储器(RAM):既能读取数据也能存入数据的存储器。

只读存储器:工作过程中仅能读取的存储器,根据数据的写入方式又可分为:ROM、PROM、EPROM、EEPROM等。

固定只读存储器(ROM):这种存储器是在厂家生产时就写好数据的,其内容只能读出,不能改变。一般用于存放系统程序BIOS和用于微程序控制。

可编程的只读存储器(PROM):其中的内容可以由用户一次性写入,写入后不能再修改。

可擦除可编程的只读存储器(EPROM):其中的内容既可以读出,也可以由用户写入,写入后还可以修改。

电擦除可编程的只读存储器(EEPROM):与EPROM相似,既可以读出,也可以写入,只不过这种存储器采用电擦除的方式进行数据的改写。

闪速存储器(FM):简称闪存,其特性介于EPROM和EEPROM之间,类似于EEPROM。

按访问方式分类


按地址访问的存储器。

按内容访问的存储器。

按寻址方式分类


随机存储器(RAM):这种存储器可对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的。

顺序存储器(SAM):访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。

直接存储器(DAM):介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存储器。


6.2 主存


c98fb459eb17de96c28c68902829d5d2_image-20221009143555088.png


>>


主存可分为:随机存取存储器(RAM)和只读存储器(ROM)。对于这两种类型,一个明显的区别是:内存是属于RAM的,一旦断电之后,内存中的所有数据都将被清除掉,无法进行保存;而ROM在断电之后,仍然可以存储信息内容。


6aa0dadc0fa3ef3fdf906ec0dc561620_63630599b4b64075d9d8308045e73791.png



第一空:内存地址从AC000H到C7FFFH,共有多少K个地址单元,那么对这两个十六进制数进行相减、再加1即可,第5位:F-0=F;第四位:F-0=F;第三位:F-0=F;第二位:7-C,因为C=12,不够减,所以向高位借一位,此时第四位应该是:7+16-C=B(11,因为是十六进制,所以每借一位加16);第一位:因为被借走了一位,所以C-1=B,B-A=1;所得结果是:1BFFFH,再加1,即:1C000H(将其转换成K单位,要对结果除以1024)。将其转为十进制:(0×16^0 + 0×16^1 + 0×16^2 + C×16^3 + 1×16^4)/1024=112K。


第二空:总容量为112K×16bit,需要28片存储器芯片,每片芯片有16K个存储单元,问该芯片每个存储单元存储多少位?


答:(112K×16bit)/(28×16K×a)=1,比值为1是因为我们使用这些芯片组成固定的空间,16和16约掉,K和K约掉,所以112/28a=1,即解得a=4。


6.3 Cache


002b451775840c683a4b7be93597f356_image-20221009191111498.png


高速缓存中的地址映像方法:直接映像、全相联映像、组相联映像。


**直接映像:**指主存的块与Cache块的对应关系是固定的。优点是地址变换简单,缺点是灵活性差、Cache块冲突率高。


**全相联映像:**允许主存的任一块可以调入Cache存储器的任何一个块的空间中。优点是Cache块冲突率低、灵活性好,缺点是访问速度慢、地址变换较复杂、成本太高。


**组相联映像:**是前两种方式的折衷方案,即组采用直接映像方式、块采用全相联映像方式。


Cache(高速缓存)是什么样的?


Cache是一种小容量高速缓冲存储器,它由SRAM组成。

Cache直接制作在CPU芯片内,速度几乎与CPU一样快。

程序运行时,CPU使用的一部分数据/指令会预先成批拷贝在Cache中,Cache的内容是主存储器中部分内容的映象。

当CPU需要从内存读(写)数据或指令时,先检查Cache,若有,就直接从Cache中读取,而不用访问主存储器。


30c235ff52222a744f92eb41a17d9fc2_image-20220603203812881.png


3d73a3b0941a56b0d08f3ce4093db195_image-20220603102540958.png


Cache映射(Cache Mapping)


什么是Cache的映射功能?


把访问的局部主存区域取到Cache中时,该放到Cache的何处?

Cache行比主存块少,多个主存块映射到一个Cache行中

如何进行映射?


把主存空间划分成大小相等的主存块(Block)

Cache中存放一个主存块的对应单位称为槽(Slot)或行(line),有书中也称之为块(Block)

将主存块和Cache行按照以下三种方式进行映射


直接(Direct):每个主存块映射到Cache的固定行

全相联(Full Associate):每个主存块映射到Cache的任一行

组相联(Set Associate):每个主存块映射到Cache固定组中任一行

cache行和主存块之间的映射方式


2223fd25c4df4fde67478df7e80f6360_image-20220603211624885.png


主存为32字节 地址为5 因为2的5次方为32


块长为4 块内地址为2位 因为 00 01 10 11正好长度是4


7aec08f5c6a8211a6b77bb60a08ba7e5_image-20220603211958446.png


9baa971830f2001068cf42751b1bf72d_image-20220604090017645.png


直接映射:


154fdb365900e769f9ab9c6ce821bb46_image-20220604163644170.png


容易实现,命中时间短


无需考虑淘汰(替换)问题


需要频繁的将Cache装入


不够灵活,Cache存储空间得不到充分利用,命中率低


全相联映射:Cache的地址映射中,若主存中的任一块均可映射到Cache内的任一块的位置上。


331b6582698805be63a41dded8363af7_image-20220604172251746.png


组相联映像


12ae3f2d6daae3f895dbef3d3ac9a8e4_image-20220604165713019.png


72a2c25ce064b1a2e22a649e34b886f7_image-20220604172428857.png


结合直接映射和全相连映射的优点。

当Cache组数为1时,变为全相联映射。


fa55e8f98dd2a92d753e3a1866f07624_e475a59833807c71f2eaf2e054698c14.png


题目:主存容量为512KB(2的19次方),Cache容量为4KB(2的12次方) ,每个字块为16个字,每个字32位.


有题目得每个字块是16*32bit 2的9次方,所以主存块数是2的10次方 缓存的块数为2的3次方。


在直接映射方式下,主存的第几块映射到Cache的第4块(设起始字块为0)


答:4、2的n次方+4……


画出直接映射下,主存地址字段中各段的位数


09dae21bfaef9fcd34557db176a0aa3d_image-20220604171657245.png


(先求字块内地址,再求缓存块地址,然后用主存容量减去求值)


ce1ffb496eb6914df9f1fd96405cc9c2_image-20220615103405868.png


ce1ffb496eb6914df9f1fd96405cc9c2_image-20220615103405868.png


78b6005edd856d77bfb3ac971cb9af7f_image-20220615103449554.png

 

7、局部性原理


43a78cf2f327d80f384176c2e524964c_image-20221009191458995.png


时间局部性:指如果程序中的某条指令一旦被执行,则不久的将来该指令可能再次被执行。


空间局部性:指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。




8、磁盘结构和参数


38c253e4ed2da09dd890c0774a8c77dc_image-20221009150036487.png


81f2b9211a726283dd6024cfb3126bcd_image-20221009191605217.png


a6d62ea38cfabf992e2dd5cc1c4296b6_9db6aa4eb19a826bc7f1af8795966d1e.png



参考答案:磁盘的旋转周期为33ms,表示旋转一圈耗时33ms,一共有11个记录,可以理解为读取1个记录消耗的时间为3ms。


若采用单缓冲区顺序处理(如上图中的大圈),当我们把R0读取单缓冲区时,此时磁头跑到了R1的起始位置,但是此时是不能读取R1的,因为R0占用着缓冲区(还未处理完),所以新的记录是进不来的。当我们处理完缓冲区中的R0之后,花费了3ms,此时磁头已经跑到了R2的起始位置,但是我们接下来想要处理的应该是R1,所以这个时候磁头会一直转动,直到转过一圈,再次跑到R1的起始位置时,才可以处理R1。所以我们处理一个记录R0,一共耗时为:一个记录+一圈,也就是3+33=36ms。从R0到R9都是同样的道理,所以共耗时:36*10=360ms,而对于R10,我们就可以直接读取并处理,耗时为6ms,所以总共耗时为360+6=366ms。


若对信息存储进行优化分布(如上图中的小圈),先看大圈,我们处理R0的时候,磁头跑到了R2,此时我们将R2假设为R1;而处理完R1之后,磁头跑到了R4,此时我们将R4假设为R2,以此类推,就得到了上图中的小圈。这样下来,就没有任何的时间浪费,那么读取和处理分别耗时3ms,也就是处理完一个记录耗时3+3=6ms,一共11个记录,总共耗时6*11=66ms。


9、总线


41f48a6ff31a046ec27818b2256f7b4f_image-20221009152123631.png


微机中的总线分为数据总线、地址总线、控制总线。


**数据总线(DB):**用来传送数据信息,是双向的。CPU既可以通过DB从内存或输入设备读入数据,也可以通过DB将内部数据送至内存或输出设备。DB的宽度决定了CPU和计算机其他设备之间每次交换数据的位数。


**地址总线(AB):**用于传送CPU发出的地址信息,是单向的。传送地址总线的目的是指明与CPU交换信息的内存单元或I/O设备,地址总线的宽度决定了CPU的最大寻址能力。


**控制总线(CB):**用来传送控制信号、时序信号和状态信息等,双向线表示。其中有的信号是CPU向内存或外部设备发出的信息,有的信号是内存或外部设备向CPU发出的信息。CB中的每一条线的信息传送方向是单方向且确定的,但CB作为一个整体则是双向的。


10、系统可靠性分析与设计


系统中的各个子系统的可靠性均采用R1、R2、…、Rn表示;失效率均采用λ1、λ2、…、λn表示。


串联系统的可靠性(R)与失效率(λ)


db96ff36f2e9ef6093b1992367ad4745_cd471ace76e65a062f64364e43aa32c8.png


并联系统的可靠性(R)与失效率(μ)


03ac49b2d8de538ff6d15f755a545fea_7a2ad38d7a455144ef42cd69712798ef.png


模冗余系统与混合系统


85bc5891aee21a70b8923620269d0241_2d56e07e5ae5a7a8b14a875209e88d9a.png


11、差错控制


5c4862eec0a29972ed7abf86231c8259_f821efe80ce1863f951f4ea8997ff3ab.png


11.1 循环校验码(CRC)


循环冗余校验码(CRC)广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。


循环冗余校验码是由两部分组成的,左边为信息码(数据),右边为校验码。若信息码占k位,则校验码就占n-k位。其中,n为CRC码的字长,所以又称为(n,k)码。校验码是由信息码产生的,校验码位数越多,该代码的校验能力就越强。在求CRC编码时,采用的是模2运算。


d9e976d62ae73395c217168ff726090d_157fd4bff9457955dc81a3e7409500e5.png


4b895301ad7f8df091c118b8114b81e7_image-20221009194338417.png



11.2 奇偶校验码(PC)


奇偶校验是一种简单有效的校验方法(可以检错,不能纠错)。这种方法通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。


对于奇校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况,即当合法编码中的奇数位发生了错误时,编码中的1变成0或0变成1,则该编码中1的个数的奇偶性就发生了变化,从而可以发现错误。


奇校验:被传输的有效数据中“1”的个数是奇数个,校验位填“0”,否则填“1”。


偶校验:被传输的有效数据中“1”的个数是偶数个,校验位填“0”,否则填“1”。


例如:奇校验 1000110(0),采用奇校验,“1”的个数为奇数个,所以校验位填“0”。


偶校验 1000110(1),采用偶检验,“1”的个数为奇数个,所以校验位填“1”。


11.3 海明校验码(HC)


海明码的构成方法是在数据位之间的特定位置上插入k个校验位,通过扩大码距来实现检错和纠错(可以检错和纠错)。


5b9dbebb8077b3b4e9eb87ae5423cd10_e4fb1722b1cde9875fc6aaafba2c7f9a.png


设数据位是n位,校验位是k位,则n和k必须满足:2^k - 1 ≥ n + k。




12、输入输出技术


12.1 直接程序控制


直接程序控制是指外设数据的输入/输出过程是在CPU执行程序的控制下完成的。这种方法分为:无条件传送和程序查询方式两种情况。


无条件传送:在此情况下,外设总是准备好的,它可以无条件的随时接收CPU发来的输出数据,也能够无条件的随时向CPU提供需要输入的数据。


程序查询方式:在这种方式下,利用查询方式进行输入/输出,就是通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。


12.2 中断方式


对于程序控制I/O的方法,其主要的缺点在于CPU必须等待I/O系统完成数据的传输任务,整个系统的性能严重下降。


利用中断方式完成数据的输入/输出过程为:当I/O系统与外设交换数据时,CPU无需等待也不必去查询I/O的状态,而可以抽身出来处理其他任务。当I/O系统准备好了以后,则发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被中断的程序继续执行。


与程序控制方式相比,中断方式因为CPU无需等待而提高了效率。


12.3 直接存储器存取方式(DMA)


在计算机与外设交换数据的过程中,无论是程序控制方式,还是中断方式,都需要CPU通过执行程序来实现,这就限制了数据的传送速度。为进一步提高相应的速度,我们引入了DMA。


DMA是指数据在内存与I/O设备间(通俗的说,就是主存与外设)的直接成块传送,即在内存与I/O设备间传送一个数据块的过程,不需要CPU的任何干涉,只需要CPU在过程开始时启动、在过程结束时处理,实际操作全部由DMA硬件自动执行完成,CPU在此传送过程中可以去做别的事情。


12.4 输入/输出处理机(IOP)


DMA方式的出现减轻了CPU对I/O操作的控制,使得CPU的效率显著提高。而通道方式的出现则进一步提高了CPU的效率。通道是一个具有特殊功能的处理器,又称为输入输出处理器(IOP),它分担了CPU的一部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传送。


通道方式大大提高了CPU的工作效率,然而这种效率的提高是以增加更多的硬件为代价的。

相关文章
|
6月前
|
存储 编解码 并行计算
【软件设计师备考 专题 】计算机系统的组成、体系结构分类及特性
【软件设计师备考 专题 】计算机系统的组成、体系结构分类及特性
112 0
|
存储
【软考:软件设计师】 2 计算机组成与体系结构(二)详解指令系统 | 指令流水线
【软考:软件设计师】 2 计算机组成与体系结构(二)详解指令系统 | 指令流水线
262 0
|
3月前
|
存储 算法 安全
【第一章】软件设计师 之 计算机组成与体系结构
这篇文章是软件设计师备考资料的第一章,涵盖了计算机组成与体系结构的基础知识,包括不同进制之间的转换方法、数据表示、计算机结构、流水线概念、存储系统、校验码等内容。
【第一章】软件设计师 之 计算机组成与体系结构
|
存储 缓存 算法
【软考:软件设计师】 3 计算机组成与体系结构(二)详解存储系统 | 输入输出与总线
【软考:软件设计师】 3 计算机组成与体系结构(二)详解存储系统 | 输入输出与总线
455 0
|
6月前
|
存储 测试技术 芯片
【中级软件设计师】—计算机组成与体系结构考点总结篇(一)
【中级软件设计师】—计算机组成与体系结构考点总结篇(一)
【中级软件设计师】—计算机组成与体系结构考点总结篇(一)
|
机器学习/深度学习 存储 负载均衡
计网之体系结构(一)
计网之体系结构(一)
|
5G 网络架构
计网之体系结构(二)
计网之体系结构(二)
|
vr&ar C语言
软件设计师(一):计算机组成与体系结构(一)
软件设计师(一):计算机组成与体系结构(一)
软件设计师(一):计算机组成与体系结构(一)
|
机器学习/深度学习 数据处理 vr&ar
【软考:软件设计师】1 计算机组成与体系结构(一)计算机系统基础知识
【软考:软件设计师】1 计算机组成与体系结构(一)计算机系统基础知识
285 0