计算机组成原理学习笔记(一) - 玫瑰奶奶

时间:2024-02-20 07:55:00

(1)学习的框架

 (2)冯诺依曼计算机(存储结构的计算机)

特点:

 

1,控制器(Control)、运算器(Datapath)、 存储器(Memory)、输入(Input system)、输出(Output system)。 

(以运算器为核心)

存储器的基本组成:

  

 

 

 

MDR定义:全称memory data register主存数据寄存器。MAR定义:全称memory address register主存地址寄存器。

计算机中的主存数据寄存器(MDR),与主存地址寄存器(MAR)帮助完成CPU和主存储器之间的通信,MAR用来保存数据被传输到的位置的地址或者数据来源位置的地址。MDR保存要被写入地址单元或者从地址单元读出的数据。

 

运算器的基本组成:算术逻辑运算单元(ALU),乘商计数器(MQ),累加器(ACC),通用寄存器(X).

 

 

 运算器执行加减乘除的过程:

 

 

 

   

(乘法)

乘法操作需要用到三个寄存器(ACC、MQ、X),其实一开始我们输入被乘数的时候,被乘数是存放在ACC中的,按照规定我们要将被乘数放到寄存器X中,于是就有了这样一个操作:[ACC]—>X,同加减法一样,刚开始我们的乘数保存在内存单元地址为M的内存单元当中,将M内存单元里面的内容取出来放到[M]->MQ寄存器里,然后进行乘法运算(现将ACC里面的值清零0—>[ACC],因为结果要放在ACC中):[X]*[MQ]—>ACC//MQ,乘积高位存放在ACC中,乘积低位存放在MQ中。先不着急往下看,我们注意到上述操作有些是按一定的顺序来的,比如说:我们一定实现将被乘数从ACC中取出放到寄存器X中,才可以将ACC里面的内容清空。这些保证指令按序进行都是控制器控制的。
(除法)

除法操作同乘法操作类似,也要用到三个寄存器(ACC、MQ、X),刚开始我们的乘数保存在内存单元地址为M的内存单元当中,将M内存单元里面的内容取出来放到[M]->X寄存器里,被除数放在寄存器ACC当中,[ACC]%[X]—>MQ,其结果存放在寄存器MQ当中,余数保存在ACC当中。

 

控制器的基本组成:程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成。

 

下面展示主机完成一条完整指令的过程:

1,以取数指令为例

2,以存数指令为例

 

 

 

其他补充:

(以存储器为核心)

 

 (现代计算机硬件架构)

 

(现代复杂系统设计管理方法)

2,与哈弗体系区分开来,哈弗体系特点是将程序和数据存储在不同的存储空间中,独立访问独立编址。

 

(3)总线(BUS)

 

 

 否则需要计算机的每个模块每个部件之间两两相连。

使用总线的优点:

① 简化了系统结构,便于系统设计制造;

② 大大减少了连线数目,便于布线,减小体积,提高系统的可靠性;

③ 便于接口设计,所有与总线连接的设备均采用类似的接口;

④ 便于系统的扩充、更新与灵活配置,易于实现系统的模块化;

⑤ 便于设备的软件设计,所有接口的软件就是对不同的口地址进行操作;

⑥ 便于故障诊断和维修,同时也降低了成本。

 

总线有两种传送方式:串行和并行

串行数据是指传输过程中各数据位按顺序进行传输的数据,并行数据则是各数据位同时传送的数据。串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。比如串行(chuan xing)是中文“通用串行总线”的简称,英文为USB(Universal Serial Bus),USB是1995年Microsoft、Compaq、IBM等公司联合制定的一种新的PC串行通信协议。

而并行虽然传输速度快,但是成本高,多条数据线之间会相互干扰,从而不适用于远距离传输。

 

总线的分类:

 (出:存储器读,写,总线允许,中断确认   入:中断请求,总线请求)

 

 

 

总线判优控制(即总线仲裁):多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权称为总线仲裁。

 

 

 1,链式查询

 

 

比如IO接口1和n同时向总线发送请求,而n相对较远(距离越近,优先级越高)。总线控制部件先收到1接口的BR请求,但是由于只有一条BR总线,所以实际上无法判断是哪个接口发送出来的请求,所以会从BG起点出发一个个向下查询每一个接口,当查询到接口1时,接口1便接收到总线同意信息,于是发送总线忙到BS,这时设备获得总线控制权。

结构简单,但是对电路故障特别敏感,比如BG总线向下查询时遇到电路故障将导致不能继续往下查询而使整个工作受影响,并且优先级不能改变。当优先级高的部件频繁请求使用总线时,会使优先级较低的部件长期不能使用总线。

2,计数器定时查询方式

 

 

 

多了一条设备地址线,上面的地址由计数器(在总线控制部件内)给出的,当接口设备向总线控制部件发送BR总线请求,这时总线控制部件中的计数器向设备地址线发送一个地址,由这个地址一个个向下查询,直到找到相应的请求设备,然后该设备发送总线忙到BS中,实现对总线的控制权占有。但是这里和第一种链式查询的区别在于计数器所发送的地址是可以灵活变化的,不用每次都从第一个设备开始查询,甚至可以通过软件编码设置初始查询设备地址。

3,独立查询

 

 

每一个设备都设置了BG,BR两条总线,总线请求操作很灵活,可以通过排队器进行优先级设置,缺点是占用总线繁多。

 

总线通信的四种方式:同步通信 、异步通信、半同步通信和分离式通信。

同步定时方式(同步通信)

同步定时方式是指系统采用一个同一的时钟信号来协调发送和接收双方的传送定时关系。

时钟产生相等的时间间隔,每个间隔构成一个总线周期。

在一个总线周期,发送方和接收方可进行一次数据传送。

因为采用同一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线传送周期开始。

优点:传送速度快,具有较高的传输速率;总线控制逻辑简单。

缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差。

同步通信适用于总线长度较短及总线所接部件的存取时间比较接近的系统。

异步定时方式(异步通信)

在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的"握手"信号来实现定时控制。

主设备提出交换信息的"请求"信号,经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出"回答"信号。

根据"请求"和"回答"信号的撤销是否互锁,分为以下3种类型。

  1. 不互锁方式 速度最快,可靠性最差

    主设备发出"请求"信号后,不必等到接到从设备的"回答"信号,而是经过一段时间,便撤销"请求"型号。

    而从设备在接到"请求"信号后,发出"回答"信号,并经过一段时间,自动撤销"回答"信号。双方不存在互锁关系。

  2. 半互锁方式

    主设备发出"请求"信号后,必须待接到从设备的"回答"信号后,才撤销"请求"信号,有互锁关系。

    而从设备在接到"请求"信号后,发出"回答"信号,但不必等待获知主设备的"请求"信号已经撤销,而是隔一段时间自动撤销"回答"信号,不存在互锁关系。

  3. 全互锁方式 最可靠,速度最慢

    主设备发出"请求"信号后,必须待接到从设备的"回答"信号后,才撤销"请求"信号;

    主设备发出"回答"信号后,必须待获知主设备"请求"信号已撤销后,再撤销其"回答"信号。双方存在互锁关系。

优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。

缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。

 

半同步通信(统一时钟的基础上,增加一个"等待"响应信号)

 

 以读入数据为例子:

 

 上面的方式都有共同点如下:

那么有没有方法可以利用中间第二步空闲下来的总线呢?下面的分离式通信可以优化。

分离式通信

分离式通信的一个总线传输周期分为两个周期,使从设备寻找数据时不占用总线。每个模块都能申请占用总线,这样就可以把中间从模块准备数据而不占用的总线利用起来,提高总线利用率。

  • 子周期1: 主模块申请占用总线,使用完后放弃总线的使用权。
  • 子周期2: 从模块申请占用总线,将各种信息送至总线上。

特点:

  1. 各模块均有权申请占用总线
  2. 采用同步方式通信,不等对方回答
  3. 各模块准备数据时,不占用总线
  4. 总线利用率提高