计算机组成原理 知识结构导图

计算机组成原理

计算机组成原理

计算机

组成

  • 存储器

    • 分类

      • 作用

        • 主存 MM:存放 运行时 所需的大量 程序和数据。CPU可以直接访问的存储器,也可以和Cache 交换数据

          • MAR(地址寄存器):找到所选的存储单元,用于寻址,其位数对应存储单元的个数,其长度与PC长度相等。
          • MDR(数据寄存器):暂存存储器读写信息,其位数和存储字长相等,一般未字节的二次幂的整数倍
          • 时序控制逻辑:产生各种时序信号
        • 辅存:存放 暂时不用 的 程序和数据,以及一些需要 永久保存的信息。不能与CPU交换信息。

        • Cache(高速缓冲存储器):存储器层次顶层,位于主存 和 CPU 之间,用于存放 正在执行 的 程序段和数据,以便CPU可使用,一般集成在CPU中,通常由SRAM构成。
          Cache与CPU之间数据交换单位为字;Cache与主存之间数据交换单位为Cache块(行)

          • 原理

            • 程序访问局部性原理

              • 时间局部性:最近未来要用的信息,很可能是现在正在使用的信息(程序存在循环)
              • 空间局部性:最近未来要用的信息,很可能与现在正在使用的信息在存储空间上邻近(指令顺序存放、执行)
            • 工作原理:仅保存主存中最活跃的若干块的副本。Cache和主存划分为相等的块,Cache块(Cache行)由若干字节组成,块长(Cache行长)为块的长度。Cache容量(块数) < 主存容量(块数)

              		- 读请求:访存地址若在Cache命中,就将此地址转换为Cache地址,即不访问主存;
              

若不命中,需访问主存,并一次性从主存调入Cache;又若Cache满,需替换算法
- 写请求:需按写策略(Cache与主存内容存在不一致的情况);

			- 映射方式

				- 直接映射:主存的任何一块只能装入Cache唯一的位置,若该地址有内容将替换。实现简单,不灵活,冲突概率最高,空间利用率最低

访存过程:
(1)通过访存地址确定行号,在Cache对应 行标记 和 主存地址标记 进行比较,若相等且有效位为 1,则命中,根据 块内地址 从Cache行中存取信息。
(2)若不命中,从主存读出该地址所在的一块信息送入Cache,将 有效位 置1,并 标记 设置为地址标记 同时该地址内容送至 CPU。
- 全相联映射:主存中的任何一块可以装入Cache中的任何位置,每行的标记用于指出该行取自于主存的地址块,然而需要 CPU访存是与所有Cache行标记 进行比较,造成速度慢,成本高,但冲突概率低,空间利用率高、命中率高。
- 组相联映射:将Cache空间分成大小相同的组,主存的任何一块都可装入一组(直接)内任意位置(全相联)。即 组间 直接映射,组内 全相联映射。
访存过程:
(1)找到访存地址中间的组号 以 确定对应的Cache组;
(2)将对应Cache组中每个行的标记与主存地址的高位标记进行比较;
(3)若有一个 相等 且 有效位 为 1,则命中,根据 主存地址的块内地址 在Cache行中存取信息;
(4)若都不相等 或 有效位 为 0,则未命中,CPU从主存读出该地址所在的一块信息 送到对应Cache组的一个空闲行中,并将 有效位 置 1,设置标记,同时将 改地址内容送至CPU

			- 替换算法

				- 随机算法(RAND):随机地确定替换Cache块,简单,命中率低,未依据程序访问的局部性原理
				- 先进先出算法(FIFO):队列,选择最早调入的行进行替换,实现容易,而最早调入抑或是最经常使用而被替换,故未依据程序访问的局部性原理
				- 最近(期)最少使用算法(LRU):堆栈类算法,选择近期内 长久未访问过的Cache行作为替换行,命中率高,依据程序访问的局部性原理
				- 最不经常使用算法(LFU):【难以实现】

			- 写策略

				- Cache写命中(write-hit)

					- 全写法(写直通法,write-through):将数据同时 写入 Cache 和 主存。当某一块需要替换时,则不必写回主存,用新调入的块直接覆盖。

优点:实现简单,能随时保存主存数据正确性
缺点:增加访存次数,降低Cache效率

可以在Cache和主存之间添加一个【写缓冲】(Write-Buffer),这是FIFO队列,Cache先将数据写到 Cache 和 Write-Buffer中,由Write-Buffer再控制内容写入主存。以减少直接写入主存的时间损耗,但写频繁时,使写缓冲饱和、溢出。
- 写回法(write-bace):只修改Cache的内容,当此块被调出时再写回主存。每个Cache行需设置一个标志位(脏位)以标识是否被CPU修改过。
优点:减少访存次数
缺点:存在不一致的隐患

				- Cache写未命中

					- 写分配法(write-allocate):加载主存中的块到Cache中,再更新该Cache行。利用了程序的空间局部性原理,但每次未命中时,都需要从主存中读一块。
					- 非写分配法(not-write-allocate):只写入,而不进行调块

	- 介质

		- 磁表面:磁盘、磁带
		- 磁芯
		- 半导体:RAM (MOS型存储器)、ROM(双极型存储器)
		- 光盘

	- 方式

		- RAM(随机存储器):主要用作主存或Cache。

任何一个存储单元的内容可以按其地址随机存取(读写),且存取时间与单元物理位置无关。

			- SRAM(静态RAM):存储元由双稳态触发器(六晶体管MOS)记忆信息,可非破坏性读出,且无需刷新。

一般用于组成Cache。
优点:读取速度快;
缺点:集成度低、功耗大。
- DRAM(动态RAM):利用存储元电路中的栅极电容上的电荷存储信息,而电荷一般只维持1~2ms,意味着即使电源不断电,信息也会自动消失,故每隔一段时间需要刷新。通常只用 一个晶体管,也就比SRAM密度更高。
采用地址复用技术,地址线为原来 1/2 地址信号分行、列两次传送。
一般组成大容量主存系统。
相对SRAM优点:易集成、价位低、容量大和功耗低等;
缺点:存取速度比SRAM慢

				- 集中刷新:在一段固定的时间进行刷新,且刷新期间,不能对访问存储器进行读写(死时间、死区),但读写操作时不受刷新工作影响
				- 分散刷新:将每行刷新分散到各个工作周期中。使一个存储器系统工作周期分为两部分:前半部分,正常读写或保持;后半部分,用于刷新。造成系统的存取周期增加,降低整机速度,但没有死区。
				- 异步刷新:将刷新周期除以行数,得到两次刷新操作之间的时间间隔 t ,利用逻辑电路每隔时间 t 产生一次刷新请求。缩短了死区,避免了使CPU连续等待过长时间,且减少刷新次数,使整机效率提高。

		- ROM(只读存储器):通常存放 固定不变的程序(信息一旦写入,就不能再写入新信息)。

任何一个存储单元只能随机读出而不能写入。
优点:结构简单,位密度比RAM高;具有非易失性,可靠性高。

			- 掩模式只读存储器(MROM):(厂商)直接写入后,无法修改。

优点:可靠性高,集成度高,价格便宜;缺点:灵活性差。
- 一次可编程只读存储器(PROM):运行用户用专门设备烧写,但一旦写入不可修改。
- 可擦除可编程只读寄存器(EPROM):用户可利用编程器写入信息,而且在擦除后,亦可再次改写。编程次数有限,写入时间长,不能替代RAM

				- 紫外线擦除(UVEPROM)
				- 

			- 闪存存储器(Flash Memory):在电擦除基础发展,即可在不加电情况下长期保持信息,又能在线进行快速擦除与重写,价格便宜、集成度高。
			- 固态硬盘(Solid State Drives, SSD):用固态电子存储芯片阵列制成硬盘,由控制单元和存储单元(FLASH芯片)组成。可长期保存信息、快速擦写信息,读写速度快,低功耗,但价格高。

		- 串行访问存储器:对存储单元进行读写操作时,需按其物理地址先后顺序寻址

			- SAM(顺序存取存储器):信息的排列、寻址、读写操作按顺序进行,存取时间的长短  与  信息在存储体上的位置  有关。但存取速度慢,如磁带。

顺序存取:信息通常 以 文件或数据库形式按顺序存放,无唯一对应的地址。
- DAM(直接存取存储器):介于随机存取 和 顺序存取 之间。
存取时两步逻辑动作,第一寻道,使磁头指向被选磁道,第二在被选磁道上顺序存取。
如磁盘、光盘。

	- 保存性质

		- 易失性存储器:断电失去信息。如RAM
		- 非易失性存储器:断电仍保存信息。如ROM、磁表面、光盘

- 指标(目标是大容量、低成本、高速度)

	- 
	- 

		- 存取时间(Ta):指启动一次存储器操作 到 完成该操作 所经历的时间
		- 存取周期(Tm):读写周期或访问周期。指存储器进行一次完整的读写操作所需的全部时间,即连续两次独立访问存储器(读/写)操作之间所需的最小时间。
		- 主存宽带(Bm):数据传输率。指每秒从主存进出信息的最大数量,单位为  字/秒;字节/秒(B/s);位/秒(b/s)

	- 单位成本:

- 多级层次化结构

(主要思想:上一层存储器作为低一层存储器的高速缓存)

	- Cache-主存:数据调动由 硬件 自动完成,对 所有程序员透明。兼顾Cahce速度、主存价格和容量
	- 主存-辅存:数据调动由 硬件 和 操作系统 自动完成,对 应用程序员透明。兼顾主存速度、辅存价格和容量
	- 虚存(虚拟存储系统):主存 和 联机工作的辅存 在 硬件 和 系统软件 的共同管理下工作,对 应用程序员是透明的。具有主存的速度 和  辅存的容量。

虚地址(虚存页号+页内字地址|段号+段内地址|段号+段内地址+页内地址)为用户编程允许涉及的地址,所对应存储空间为虚拟空间或程序空间;
实地址(物理地址,主存页号+页内字地址)为实际的主存单元地址;
虚地址 远大于 实地址,CPU适用虚地址时,首席按 虚地址和实地址的关系 判断 对应存储单元是否已在主存中:(1)若在,通过地址变换,CPU访问主存中的实际单元;(2)若不在,把包含这个字的一页或一段调入主存中后在由CPU访问;(3)若主存已满,采取替换算置换
辅存地址=磁盘号+盘面号+磁道号+扇区号,在操作系统管理下,程序先送入磁盘,再将当前运行所需的部分调入主存,供CPU使用,其余留在磁盘中。

		- 页式:虚拟空间和主存空间划分成同样大小的页,主存的页为实页,虚存的页为虚页,虚存地址划分为  虚页号、页内地址。

有效位(装入位)表示对应页面是否在主存(1在,也表现存放该页的物理地址(实地址,主存地址);0不在,页表项可存放该页磁盘地址)
脏位(修改位)表示页面是否被修改,虚存采用写回法策略,以判断替换时是否需要写回磁盘
引用位(使用位)配合替换算法进行置换

			- 页表(慢表,存放在主存中):访存前,先访问主存查页表,再访问主存取数据,若缺页则需采取页面替换、页面修改。

(1)CPU执行命令时,先将虚拟地址转换为主存物理地址;
(2)每一个进程都有 页表基址寄存器(存放该进程页表首地址),依据虚拟地址高位部分的虚拟页号找到对应页表项;
(3)若装入位为1,已在主存,则取出物理页号,和虚拟地址低位部分的页内地址拼接,形成实际的物理地址;
(4)若装入位为0,未在主存,则 缺页。
优点:页面长度固定,页表简单,调入方便
缺点:无法充分利用造成浪费,页不是逻辑上独立的实体,处理、保护、共享不方便,访存次数增加
- 快表(TLB,存放Cache中):依据程序执行的局部性原理,在一段时间内 总是经常访问的页 放在 Cache组成的快表中,先查快表,若命中,则无需查页表(慢表)。
通常采用全相联或组相联方式,每给快表项 由 页表项 内容加上一个 快表标记字段 组成,快表标记 表示该表项取自 页表中对应虚页号的页表项

				- 全相联方式下,该页表项对应虚页号
				- 组相联方式下,该页表项对应虚页号的高位部分,虚页号的低位部分用于选择快表组 的 组索引

			- 具有TLB和Cache的多级存储系统:

查找时,快表和慢表可同时进行,若快表中有查得虚页号,慢表查找作废。

		- 段式:按程序的逻辑结构划分,各段长度可变,应程序而异。虚拟地址划分为  段号 、段内地址。

			- 段表(存放在主存中):每行记录一段对应段号、装入位、段起址,段长等。

(1)CPU根据虚拟地址访存时,首先根据段号与段表基地址拼接成对应段行;
(2)根据段表行的装入位判断该段是否已调入主存;
(3)若装入位为1时,已在主存,段表读出该段在主存中的起始地址,与段内地址(偏移量)相加,得到对应主存实地址;
(4)若装入位为0,未在主存。
优点:段的分界与程序自然分界相对应,因而具有逻辑独立性,易于编译、管理、修改、保护、多道程序的共享。
缺点:段长度不固定,故分配空间易产生碎片

		- 段页式(在主存中):程序逻辑结构分段,每段再划分为固定大小的页,主存空间页划分为大小相等的页。每个程序对应一个段表,每一段对应一个页表,段长须为页长的整数倍,段起址须为某一页的起点。

虚拟地址分为 段号 、段内地址、页内地址
(1)CPU根据虚拟地址访存时,根据段号得到段表地址;
(2)由段表中取得该段的页表起始地址,与虚地址页号合成,得到页表地址;
(3)从页表中取出实页号,与页内地址拼接形成主存实际地址。
程序对主存的调入、调出基本单位为页。
优点:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值