5-3中央处理器-数据通路的功能和基本结构

news2024/9/22 15:48:17

文章目录

  • 一.功能
  • 二.基本结构
  • 三.数据流向
    • (一)内部单总线方式
      • 1.寄存器之间的数据传送
      • 2.主存与CPU之间的数据传送
      • 3.执行算术或逻辑运算
    • (二)专用数据通路方式

一.功能

数据在功能部件之间传送的路径称为数据通路。路径上的部件称为数据通路部件,如ALU、通用寄存器、状态寄存器、异常和中断处理逻辑等。数据通路中专门进行数据运算的部件称为执行部件/功能部件。数据通路由控制部件控制,控制部件根据每条指令功能的不同生成对数据通路的控制信号。

数据通路的功能:实现CPU内部的运算器与寄存器及寄存器之间的数据交换。

二.基本结构

内部总线:指同一部件,如CPU内部连接各寄存器及运算部件之间的总线;
系统总线:指同一台计算机系统的各部件,如CPU、内存、通道和各类l/O接口间互相连接的总线。系统总线包括数据总线、地址总线、控制总线。

(一)CPU内部单总线方式
将所有寄存器的输入端和输出端都连接到一条公共通路上。结构简单,数据传输存在较多的冲突现象。一个时钟内只允许传一个数据(即两部件进行数据交换时其他部件需等待),指令执行效率很低。

(二)CPU内部三总线方式
CPU中有两条总线时构成双总线结构,有多条总线时构成多总线结构。内部三总线将所有寄存器的输入端和输出端都连接到多条公共通路上。多总线方式可以同时在多个总线上传送不同的数据,效率有所提高。

(三)专用数据通路方式
根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能较高,但硬件量大。

三.数据流向

(一)内部单总线方式

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

如:程序计数器PC(也叫内部的指针寄存器,属于计数寄存器)送地址寄存器MAR
①PC送内部总线。CU使PCout导通,PC将数据输送到CPU内部总线。即(PC)→总线Bus
②内部总线送MAR。CU使MARin导通,CPU内部总线将数据输送到MAR。即Bus→MAR

在这里插入图片描述

2.主存与CPU之间的数据传送

如:CPU从主存读取指令
①PC送MAR。CU使PCout导通,PC将数据输送到CPU内部总线。CU使MARin导通,CPU内部总线将数据输送到MAR。即(PC)→Bus→MAR
②CU通过控制总线发出读命令。即1→R
③CU使MARoutE(E表示外部)导通,MAR中的内容通过地址总线传递给主存。主存储器根据MAR记录的地址信息去存储体中找出该地址对应的二进制数据。CU使MDRinE导通,主存通过数据总线将数据放到MDR中。即M(MAR)→MDR
④CU使MDRout和IRin导通,MDR中的指令通过内部总线放到IR(此处MDR属于CPU)。即MDR→Bus→IR

在这里插入图片描述

3.执行算术或逻辑运算

先将一个操作数经CPU内部总线送入暂存器Y保存,Y的内容作为ALU的左输入端,且始终有效(为保证ALU的左右两侧同时传入数据,因内部总线一次只能传送一个数据,所以需要暂存寄存器Y辅助。对于多总线结构可不设置Y)。另一操作数经CPU内部总线直接送到ALU的又输入端。计算结果存入暂存器Z。

如加法指令,被加数存放在ACC中,加数放到Y
①IR中的地址码信息通过内部总线传入MAR(CU使IRout和MARin有效),即Ad(IR)→Bus→MAR。此处的IR可换为MDR
②CU发出读命令。即1→R
③主存储器根据MAR记录的地址信息去存储体中找出该地址对应的二进制数据,通过数据总线将数据放到MDR中(CU使MDRinE有效)。即M(MAR)→数据线→MDR
④将MDR中的操作数(加数)通过内部总线放入暂存寄存器Y中(CU使MDRout和Yin有效)。即MDR→Bus→Y
⑤进行加法操作,ACC中的值通过内部总线传到ALU,计算结果存入Z(Y始终有效,CU使ACCout有效、ALUin有效,CU向ALU发出加法命令)。即(ACC)+(Y)→Z
⑥等输出数据稳定后,删除控制信号,内部总线空闲,Z的值存入ACC(CU使Zout有效、ACCin有效)。即Z→ACC

[例] 设有如图所示的单总线结构,分析指令 ADD (R0) , R1的指令流程和控制信号
在这里插入图片描述
ADD (R0) , R1
R1叫做源操作数,操作数直接存放在R1中
(R0)叫做目的操作数,R0中存放的是操作数在主存的地址
相加结果放回R0指向的存储单元
即ADD (R0) , R1等价于((R0))+(R1)→(R0)

(1)取指周期
①(PC)→MAR(PCout、MARin有效)
②M(MAR)→MDR(MARout、MDRinE有效。读控制信号MemR有效)
③(MDR)→IR(MDRout、IRin有效)
④指令送译码器,进行译码
⑤(PC)+1→PC
(2)间址周期
①(R0)→MAR(R0out、MARin
②M(MAR)→MDR(MARout、MDRinE有效。MemR有效)
③(MDR)→Y(MDRout、Yin有效)
(3)执行周期
①(R1)+(Y)→Z(R1out、ALUin有效。CU向ALU发出加法控制信号)
②(Z)→MDR(Zout、MDRin有效)
③MDR中的数据存放至MAR(即R0)指向的存储单元。(MDR)→M(MAR)。(MDRoutE、MARout有效,写控制信号MenW有效)

(二)专用数据通路方式

Ci决定该线路是否导通。进行加法操作时,不需要暂存寄存器,直接将MDR和ACC中的数据相加即可。此方法成本较高,在控制通路时可以使用多路选择器和三态门。其他与单总线相同

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/177144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

合宙ESP32C3上手使用

概述经典款是有ch343 ttl 转usb 需要安装驱动 GPIO20/21新款使用usb 直连不需要驱动 USB GPIO18/19ESP32C3 是ESP-RISC-V CPU 是基于 RISC-V ISA 的 32 位内核,包括基本整数 (I),乘法/除法 (M) 和压缩 (C) 标准扩展。ESP-RISC-V CPU 内核具有 4 级有序标…

【蓝桥杯】简单数论1——GCDLCM

GCD 最大公约数Greatest Common Divisor(GCD):整数a和b的GCD是指能同时整除a和b的最大整数,记为gcd(a,b)。由于-a的因子和a的因子相同,因此gcd(a, b) gcd(al, |bl)。编码时只关注正整数的最大公约数。 GCD性质 (1) gcd(a, b) gcd(a, ab) …

一、python准备工作篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 1. python官网 2. 检查是否安装完毕 3. pycharm官网 5. phcharm更换主题 6. 新建第一个python文件 7. pycharm字体大小设置 8. 设置快捷键 设置字体大小 ​​​​​​​9. 安装中文…

Python机器学习:假设检验

方差分析这部分内容还不是很理解,在这里先做一个笔记,以后有时间再回过头来改一改。 用到的数据集→\rightarrow→Iris 什么是假设检验? 假设检验就是利用样本数据对某个事先做出的统计假设,再按照某种方法去检验,最后…

CSS样式基础内容2

目录 Emmet语法 快速格式化代码 CSS的复合选择器 后代选择器 子选择器 并集选择器 伪类选择器 链接伪类选择器 focus伪类选择器 CSS元素显示模式 块元素 行内元素 行内块元素 元素显示模式转换 案例-简洁版侧边栏 单行文字垂直居中 CSS的背景 背景图片 方位名词…

【蓝桥云课】最大公约数与最小公倍数

一、最大公约数gcd(a,b) 引例: a24,其因子有1、2、3、4、6、8、12、24 b15,其因子有1、3、5、15 最大公约数gcd(a,b)gcd(24,15)3 欧几里得辗转算法: a max(a,b); b min(a,b); while(b>0){t a%b;a b;b t; }运算过程&…

postgresql源码学习(53)—— vacuum②-lazy vacuum之heap_vacuum_rel函数

一、 table_relation_vacuum函数 1. 函数定义 前篇最后(https://blog.csdn.net/Hehuyi_In/article/details/128749517),我们提到了table_relation_vacuum函数(tableam.h文件),本篇继续学习。 如前面所说&a…

人大金仓数据库对象访问权限

数据库的表、索引、视图等,在数据库中的一切都可以称为数据库对象。 对象分为以下两类 模式(SCHEMA)对象:可视为一个表的集合,可以理解为一个存储目录,包含视图、索引、数据类型、函数和操作符等。非模式…

AcWing1229.日期问题——学习笔记

目录 题目 代码 AC结果 思路: 一、获取数据 二、验证日期合法性 三、去重 四、排序 五、主方法中调用&输出 题目 1229. 日期问题 - AcWing题库https://www.acwing.com/problem/content/description/1231/ 代码 import java.util.Scanner;public class…

XILINX FPGA OV5640 摄像头驱动(一)

影像行业是一个值得深耕的方向,废话不多说 先看输入和输出 输入是光照,输出是光照的数字信号 image area:说的是感光矩阵,CMOS图像传感器的最核心部分,接收光照产生电信号的部分。决定了图像质量的好坏 矩阵就会行列…

MyBatisPlus笔记

一、MyBatisPlus概述 MyBatisPlus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 MyBatis-Plus可以节省我们大量工作时间,所有的CRUD代码它都可以自动化完成&…

leetcode1143 最长公共子序列

题目 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(…

因果诊断原理

因果分析在近十来年逐渐倍受关注,其提供了解释因子间因果性的定量分析工具,广泛用于数据分析领域,同时也就用决策分析、作用预估等反事实因果推理中。本文首先对比了因果性和相关性的关系,之后确定因果关系的基本方法,…

博客搭建教程1-Archlinux环境配置

文章目录1 前言2 archlinux镜像下载3 archlinux安装1 前言 这个教程主要讲解linux环境下博客的搭建,这里的linux系统选择archlinux,博客的框架基于hexo框架。 参考博客: 1、ArchLinux安装教程 2、Archlinux2022年7月镜像 手把手安装教程 UE…

MySQL进阶——存储过程

MySQL 存储过程 1、简介 大多数 SQL 语句都是针对一个或多个表的单条语句。并非所有的操作都那么简单。经常会有一个完整的操作需要多条语句才能完成。 存储过程简单来说,就是为以后的使用而保存的一条或多条 MySQL 语句的集合。可将其视为批处理文件。虽然他们的…

【Spring(八)】带你打通Spring的注解开发

文章目录注解开发注解开发定义bean纯注解开发注解开发bean作用范围与生命周期管理注解开发依赖注入注解开发管理第三方bean注解开发实现为第三方bean注入资源总结注解开发 Spring的配置我们已经告一段落了,那接下来我们就要发挥Spring的强项了:简化开发&…

MySQL —— 数据库基础

目录 一、数据库的基本概念 1. 什么是数据库 2. 主流的数据库 二、基本使用 1. 连接服务器 2. 服务器管理 3. 服务器、数据库、表关系 4. 使用案例 5. 数据库的存储逻辑 三、MySQL架构 四、SQL分类 五、存储引擎 1. 存储引擎 2. 查看存储引擎 3. 存储引擎对比 …

Elasticsearch 这篇还不够吗

系列文章目录 文章目录系列文章目录一、概述1. ES 的基本概念2. ES 和关系型数据库的对比二、环境准备1. linux 下单机安装三、入门操作1. 创建索引2. 写入文档3. 根据id搜索文档4. 根据一般字段搜索文档5. 根据文本字段搜索文档四、ES 客户端实战1. Spring Data Elasticsearch…

学习shell与shell编程 vi与vim

Linux配置文件都是以ASCII的纯文本形式存在。 为什么学习vi 1)UnixLike系统都会内置vi文本编辑器,其他的文本编辑器则不一定存在 2)许多软件的编辑接口都会主动调用vi 3)vi具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性 4)程序简单&#…

webgl纹理贴图机制

文章目录前言纹理图片大小规范纹理坐标系统贴图流程JavaScript部分齐次坐标—uv坐标数据准备加载外部纹理图像纹理配置加载着色器部分顶点着色器片元着色器完整示例使用多张纹理着色器接受两个纹理单元封装纹理配置赋值函数完整示例总结前言 在计算机图形学中,为了…