计算机组成原理笔记

文章目录

  • 一、计算机的基本组成
  • 二、总线
    • 2.1 总线控制
  • 三、主存储器
    • 3.1 RAM
    • 3.2 存储器与CPU相连
    • 3.3 存储器校验
    • 3.4 提高存储器访问速度
    • 3.5 cache


一、计算机的基本组成

计算机组成原理笔记_第1张图片计算机组成原理笔记_第2张图片
计算机组成原理笔记_第3张图片
完成一条指令分为了三个阶段:取指令-分析指令-执行指令。

下面我们分析上图的取数指令。(取数指令 ≠ 取指令 , 取数指令需要实施取指令、分析指令)

  1. 取指令

    要执行的指令的地址我们是保存在PC当中的,取数指令这条指令的地址是保存在存储体当中的。所以,取指令的第一个操作,就是PC(PC给出了取数指令这条指令它所在的内存单元地址)要把指令的地址送给MAR,再由MAR送给存储体。在控制器的控制下,存储体把指定存储体中保存那条取数指令取出送到MDR中。取出的指令送到IR(IR的功能就是保存当前正在执行的指令)。总结就是取指令将内存中的取数指令取出送到了IR。
  2. 分析指令

    指令寄存器IR当中保存的指令(当前为取数指令)的操作码部分送给CU,经过译码,CU上面的信号将控制相应的执行部件去执行指令要去的相关操作。
  3. 执行指令

    我们这条指令是取数指令,取数指令的功能是把保存在内存单元M中的数据取到ACC寄存器中,为了完成这个操作,在控制器的控制下,我们要把指令当中的地址部分送给存储器,以便我们把数据从存储体取出。

    这个操作还是从IR开始,因为IR当中保存了当前这条指令,同时也保持了当前这条指令操作数的地址,我们从IR的地址码部分把地址取出送给MAR,然后由MAR送入给存储体,在控制器的控制之下,从存储体中把我们取数指令取的数取出送入MDR,然后送给ACC。总结就是执行取数指令,将取出的数放到ACC。

二、总线

计算机组成原理笔记_第4张图片

2.1 总线控制

计算机组成原理笔记_第5张图片
计算机组成原理笔记_第6张图片
计算机组成原理笔记_第7张图片
问,小端不是87654321吗?

三、主存储器

3.1 RAM

计算机组成原理笔记_第8张图片
计算机组成原理笔记_第9张图片
计算机组成原理笔记_第10张图片

3.2 存储器与CPU相连

计算机组成原理笔记_第11张图片计算机组成原理笔记_第12张图片

3.3 存储器校验

计算机组成原理笔记_第13张图片
计算机组成原理笔记_第14张图片

3.4 提高存储器访问速度

多体并行方式有两种,其中高位交叉编址的多体存储器中,程序按体内地址顺序存放,而低位交叉编址的多体存储器中,程序连续存放在相邻体中

  • 高位交叉:各个体并行工作

    并行工作的高位交叉编址的多体存储器结构示意图,图中程序因按体内地址顺序存放(一个体存满后,再存入下一个体),故又有顺序存储之称。

    高位地址可表示体号,低位地址为体内地址。按这种编址方式,只要合理调动,使不同的请求源同时访问不同的体,便可实现并行工作。例如,当一个体正与CPU交换信息时,另一个体可同时与外部设备进行直接存储器访问,实现两个体并行工作。这种编址方式由于一个体内的地址是连续的,有利于存储器的扩充。

    优点:主要有利于扩大常规主存容量。
    缺点:即使每个存储体都可独立工作,但因为程序的连续性和局部性,在程序执行过程中被访问的指令序列和数据绝大多数会分布在同一存储体中,那么,就只有一个存储体在不停地碌,其他存储体是空闲的。

  • 低位交叉:各个体轮流编址

    低位交叉编址的多体模块结构示意图。由于程序连续存放在相邻体中,故又有交叉存储之称。低位地址用来表示体号,高位地址为体内地址。这种编址方式又称为模M编址(M等于模块数),一般模块数取2的方幂,使硬件电路比较简单。有的机器为了减少存储器冲突,采取质数个模块。

    优点:大幅度提高主存储器的速度。
    缺点:从直观上看,增加存储体个数能够提高主存储器的速度,但是,主存储器的速度不是随存储体个数的增加而线性提高的。
    计算机组成原理笔记_第15张图片

以实际数据为例,比如说某个存储体的有2个存储芯片,每个芯片的存储周期为100ns,如果你去读数据,如果你的数据按照这种放置方法,先放第一个芯片,放满后再放第2个芯片(顺序方式)。那么你读数据的过程就是这样:

读0位置数据,等100ns,读1位置数据,等100ns读2位置数据。很容易理解。

但如果你换个方式来放,比如说我0位置是1号芯片起始,1位置是2号芯片起始位置,2位置是1号芯片第2个单元,3位置是2号芯片的第2个单元这样交叉来编址。再回忆存储周期的概念:其实从芯片中把数据读到缓冲区,再从缓冲区读到CPU,这个读的过程非常短,仅仅是个脉冲就可以解决的问题,但由于芯片的物理属性,你读一个芯片后,必须间隔一段时间才能去读。采用交叉编址后,你的读过程就像这样:

读0位置数据到缓冲区,40ns后,CPU取走了数据。这时1号芯片的100ns的周期还没过,不能去读,但幸运的是我们读的不是1号芯片,而是2号芯片,这样,我们就把2号芯片的数据读到缓冲区。过了40ns后,CPU取走数据,此时过去了80ns,我们只需再等20ns就可以继续去读3号位置数据,这样速度就比以前快了很多

练习:
一个4体并行低位交叉存储器,每个模块的容量是64K×32位,存取周期为200ns,在以下说法中,( )是正确的。
A. 在200ns内,存储器能向CPU提供256位二进制信息
B. 在200ns内,存储器能向CPU提供128位二进制信息
C. 在50ns内,每个模块能向CPU提供32位二进制信息
D. 都不对
解:对CPU来说,它可以在一个存取周期内连续访问4个模块,32位×4=128位。本题答案为B。

3.5 cache

计算机组成原理笔记_第16张图片
计算机组成原理笔记_第17张图片
计算机组成原理笔记_第18张图片
计算机组成原理笔记_第19张图片

你可能感兴趣的:(计算机基础)