博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算机组成原理学习笔记——数据通路
阅读量:3936 次
发布时间:2019-05-23

本文共 1387 字,大约阅读时间需要 4 分钟。

数据通路

一、功能

1、什么是数据通路?

  • 数据在功能部件之间传送的路径称为数据通路,路径上的部件称为数据通路部件,如ALU、通用寄存器等。

2、数据通路的作用

  • 数据通路描述了信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器
    数据通路中专门进行数据运算的部件称为执行部件或功能部件;数据通路由控制部件控制
    数据通路的功能是实现 CPU 内部的运算器与寄存器及寄存器之间的数据交换

二、基本结构

  • 数据通路的基本结构有 CPU 内部单总线方式、CPU 内部三总线方式和专用数据通路方式

1、CPU 内部单总线

  • 将所有寄存器的输入端和输出端都连接到一条公共通路上,其优点是结构简单易于实现,缺点就是数据传输时存在较多的冲突现象

2、CPU 内部三总线

  • 将所有寄存器的输入端和输出端都连接到多条公共通路上,像这种 CPU 内部不止一条总线的称为多总线结构,相比单总线结构,其好处就是可以同时传送不同的数据,从而提高效率。

3、专用数据通路

  • 根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能较高,缺点是硬件量大。
    在这里插入图片描述
  • 部件名后面所带的“in”“out”分别代表对应的部件运行输入控制信号和允许输出控制信号
  • 注意:内部总线是指同一部件,如 CPU 内部连接各寄存器及运算部件之间的总线;而系统总线是指一台计算机系统的各部件,如 CPU、内存、通道和各类 I/O 接口间相互连接的总线

三、基本流程

  • 指的是数据通路上不同部件之间的数据传送操作的流程及控制信号,主要有寄存器之间的数据传送、主存和 CPU 之间的数据传送,以及执行算术或逻辑运算是的数据传送

1、寄存器之间的数据传送

  • 寄存器之间的数据传送,一般可直接通过 CPU 内部总线完成,以 PC 内容送 MAR 为例,具体的传送操作和控制信号如下:
PC→Bus, Pcout 有效,PC 内容送总线	Bus→MAR   MARin 有效,总线内容送 MAR

2、主存和 CPU 之间的数据传送

  • 主存与 CPU 之间完成数据传送,需要借助 CPU 内部总线,以 CPU 读取指令为例,传送操作流程和信号如下:
PC→Bus→MAR    Pcout 和 MARin 有效,现行指令地址→MAR	1→R    CU 发出读指令	MEM(MAR)→MDR    MDRin 有效	MDR→Bus→IR    MDRout 和 Irin 有效,现行指令→IR

3、执行算术或逻辑运算

  • 执行算术或逻辑操作时,由于 ALU 本身没有存储功能的电路,因此如要执行加法运算,相加的两个操作数必须在 ALU 的两个输入端同时有效。
Ad(IR)→Bus→MAR,   MDRout 和 MARin 有效	1→R   CU 发出读命令	MEM→数据线→MDR    操作数从存储器→数据线→MDR	MDR→Bus→Y     MDRout 和 Yin 有效,操作数→Y	(ACC)+(Y)→Z    ACCout 和 ALUin 有效,CU 向 ALU 发出加命令,结果→Z	Z→ACC         Zout 和 ACCin 有效,结果→ACC
  • 数据通路结构直接影响 CPU 内各种信息的传送路径,数据通路不同,指令执行过程的微操作序列的安排也不同,关系着微操作信号形成部件的设计

转载地址:http://cmqgn.baihongyu.com/

你可能感兴趣的文章
关于标准库中的ptr_fun/binary_function/bind1st/bind2nd
查看>>
QTCreator2.8.0+Qt Open source 4.8.5环境配置(Win7x64)
查看>>
如何在程序中画出实际大小为7CM半径的圆
查看>>
QTcreator的一些设置
查看>>
QT中PRO文件写法
查看>>
QTCreator快捷键
查看>>
14个Xcode中常用的快捷键操作
查看>>
Mac及Xcode常用快捷键
查看>>
xcode 自己常用到的快捷键
查看>>
AntTweakBar with OpenGL
查看>>
Windows: Environment Variables for MinGW
查看>>
VS2015 property manager
查看>>
path变量备份
查看>>
Lesson2.2 & 2.3 Maya command reference & quick help
查看>>
lesson 2.4 - Converting MEL Commands to Python
查看>>
Lesson 3.1 - Python Core Data Types
查看>>
Lesson3.2 variables
查看>>
3.4.2 - Operators & 3.4.3 division and truncation
查看>>
3.6 - Maya Commands: setAttr
查看>>
3.7.1 - Strings
查看>>