计组4——总线Plus IO

news2024/11/25 12:37:43

(CPU外部的)总线

用于连接computer3大模块(M+C/GPU+IO)
CPU内部的片内总线判优由时序逻辑实现

composition& priority-judging

在这里插入图片描述

在这里插入图片描述

通信方式

  • CPU内部的片内总线用于取指、译码、执行、中断的数据通信;
    在这里插入图片描述

IO

  • 总线分为控制线、数据线和地址线,对IO设备的控制也是如此,
  • 只是不同的IO数据传输速率差别较大,通过IO接口转接,
  • 此外,CPU准备好了,IO未必准备好,控制线由此分为命令线和状态线,
    在程序中断方式、程序查询中,制定(设备)地址线后,CPU发送信号到命令线,IO准备好后通过状态线响应,之后方可从数据线读取;
  • 若干个端口(存放数据、地址、控制信息的寄存器)+控制逻辑=接口;

IO设备的工作原理,IO接口的构成

在这里插入图片描述

IO接口的工作流程

在这里插入图片描述[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZEC8nCZS-1689816967399)(./assets/IMG_20230720_093221.jpg)]
从IO读入

  1. CPU由地址线确定要读入的地址,通过控制线发送读信号,
  2. IO控制逻辑发送控制信号到IO,状态控制寄存器标记为 待写入/读IO
  3. 外设准备好后,通过状态线发送准备状态到IO控制逻辑,寄存器=D=1,B=0,ID=0,CD=0
  4. IO控件接受IO发送的数据,并存储到数据缓冲寄存器,寄存器=D=1,B=0,ID=1,CD=0
  5. 状态/控制寄存器标记为 已写入IO,CPU未读取/读IO,状态线通知CPU可以读取,
  6. CPU发送读信号,然后从缓冲区读取,之后状态/控制寄存器 标记为 已读取/读IO为,寄存器=D=1,B=0,ID=1,CD=1
  • 状态/控制寄存器——标记外设状态,控制IO的读写等操作

写入IO

  1. CPU由地址线确定要写入的地址,控制线发送写信号,状态/控制寄存器标为 未写入/写IO

  2. IO设备通过外设控制逻辑向设备发送写信号,

  3. IO数据缓冲寄存器接受CPU的写入数据,状态/控制寄存器标为 已写入控件,IO未读取/写IO

  4. IO准备好通过状态线通知IO控件,IO控件通过控制逻辑发送写信号

  5. 然后将数据缓冲寄存器的数据输出到外设,状态/控制寄存器标为 已读取/写IO

IO与CPU、主存的交互方式

  • 这3种IO与系统的交互并没有优劣之分,只是使用的场景不同
  • 程序中断可以取代程序查询吗?——需要编写响应的中断程序,可以将CPU从查询的等待中解放出来;
  • 程序查询用于CPU与IO交换数据,程序中断用于CPU与IO交换数据等中断服务处理
  • DMA用于主存与IO交换数据,程序中断需要中断请求、判优、响应、服务、返回,耗时

在这里插入图片描述

  • DMA控制逻辑相当于1个小CPU,负责IO与MM的传输控制

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

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

相关文章

Error:Invalid or corrupt jarfile xxx.jar

现象 上传jar包,执行报错:Error:Invalid or corrupt jarfile xxx.jar 解决办法 本地正常执行,上传服务器执行报错。排查发现是因为文件不完整导致,重新上传,比对文件大小,一致后重新执行成功&…

如何在电子设备行业运用IPD?

电子设备是指由集成电路、晶体管、电子管等电子元器件组成,应用电子技术(包括)软件发挥作用的设备,包括电子计算机以及由电子计算机控制的机器人、数控或程控系统等。电子设备基本解释为由微电子器件组成的电器设备。固定资产分类中的电子设备&#xff0…

【重温篇】八大排序——归并排序

思路 归并排序是一种经典的排序算法,采用分治法的思想。它将待排序的数组分成两个较小的子数组,分别对这两个子数组进行排序,然后将排好序的子数组合并成一个有序的数组。 归并排序的主要思路如下: 分解:将待排序的数…

JMETERbeanshell多种姿势获取目标值

beanshell通过vars方式取值 JMETER三种取值方法步骤_securitor的博客-CSDN博客 beanshell通过props方式取值 JMETER取值二_securitor的博客-CSDN博客 beanshell通过source方式取值 JMETER取值三_securitor的博客-CSDN博客 beanshell通过jar包方式取值 JMETER取值四_securitor的…

PHP客服系统-PhpWorkmanChat客服系统修改管理员密码

作为一款流行的开源PHP客服系统,基于thinkphp和workman,跨平台轻量级客服系统源码 管理员表是v2_admin 账户是admin,如果密码忘记了怎么办。可以直接修改数据库表v2_admin ,密码规则是md5(密码 加密盐) , 加密盐可以在…

STL源码刨析_stack _queue

目录 一. 介绍 1. stack 介绍 2. queue 介绍 二. 模拟实现 1. stack 模拟实现 2. queue 模拟实现 三. deque 1. deque 接口 2. 底层 一. 介绍 1. stack 介绍 stack(栈)是一种容器适配器,它提供了一种后进先出(LIFO&#xff0…

如何优化APP应用内的广告点击率?提升变现收益?

对于大部分广告主来说,广告点击率(CTR)越高越好,而点击率又与收益密切相关。如何优化点击率,让应用内的流量售卖收益最大化呢? 说到优化点击率,那么就一定要说说这个名词: 点击率&…

第五章 动态规划(一)——背包问题

文章目录 01背包问题完全背包多重背包分组背包背包练习题2. 01背包问题3. 完全背包问题4. 多重背包问题 I5. 多重背包问题 II9. 分组背包问题 01背包问题 n个物品,每个物品的体积为 v i v_i vi​,价值为 w i w_i wi​,每次只能选择一个物品放…

JavaScript的库——jquery

JavaScript的库——jquery 一、jQuery的hello 将代码写在一个闭包中 二、面试题: jQuery的ready函数和JavaScript的onload事件有什么区别? 是null,因为拿不到box,代码在后面,还没有执行。 所以需要将代码放在后面&am…

ControlNet新玩法!一键生成AI艺术二维码QR

AI绘画又又又又火出圈了!这波来源于AI人所发掘的ControlNet for QR Code 话不多说,看看效果图 这张看着极具个性的图像正是一个可以扫描的二维码,通过使用Stable Diffusion和Controlnet生成。由此定制生成个人艺术二维码,选择不同…

前端学习——JS进阶 (Day4)

深浅拷贝 练习 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice…

Antd的Select组件二次封装

提示&#xff1a;Select组件二次封装的目的,是为了在系统里面更方便、简洁地使用Select 这是官方写的使用方法是: import React from react; import { Select } from antd;const handleChange (value: string) > {console.log(selected ${value}); };const App: React.FC …

信息泄露与大数据:隐私安全的挑战与对策

随着大数据时代的到来&#xff0c;我们生活的方方面面都与数据息息相关。然而&#xff0c;随之而来的信息泄露问题也日益严重&#xff0c;给个人隐私和数据安全带来了巨大挑战。本文将围绕信息泄露与大数据展开讨论&#xff0c;探讨其中的问题、原因以及如何应对。 山海鲸大屏 …

langchain +SQLDatabase+Mysql+OpenAI

通过langchain SQLDatabaseMysql来获取数据 参照:https://github.com/hwchase17/langchain/issues/2333 from langchain import OpenAI, SQLDatabase, SQLDatabaseChain from sqlalchemy import create_enginefrom common.keys import OPENAI_API_KEYengine create_engine(m…

Network Dissection 论文阅读笔记

Network Dissection 论文阅读笔记 1. 简介2. 网络刨析2.1 深度视觉表征的可解释性的测量步骤2.2 数据集2.3 可解释神经元评分 3. 实验3.1 对解释的人类评价3.2 Measurement of Axis-Aligned Interpretability3.3 理解层概念3.4 网络架构和监督3.5 训练条件 vs 可解释性3.6 网络…

【二等奖方案】基于人工智能的漏洞数据分类赛题「道可道,非常道」团队解题思路

2022 CCF BDCI 大赛 数字安全公开赛「基于人工智能的漏洞数据分类」赛题二等奖团队「道可道&#xff0c;非常道」战队获奖方案&#xff0c;赛题地址&#xff1a; http://go.datafountain.cn/s57 团队简介 本团队具有丰富的比赛和项目经验。在AI大赛上多次拿到Top成绩&#xf…

2.Docker镜像和容器操作

文章目录 Docker操作Docker镜像操作搜索镜像获取镜像镜像加速下载查看镜像详细信息为镜像添加标签删除镜像导出导入镜像上传镜像 Docker容器操作创建容器查看容器状态启动容器创建并启动容器进入容器停止容器删除容器复制容器文件到宿主机容器的导出导入 Docker操作 ###查看do…

uniapp中超好用(且免费)的安全类插件推荐!(持续更新中)

前几天写了一篇【干货分享】uniapp做的安卓App如何加固&#xff0c;发现收藏的人蛮多的。所以说&#xff0c;更加证明了我说的第一个问题&#xff1a;现在用uniapp的人是越来越多了。 而通过使用uniapp上自带的插件&#xff0c;也是能够实现事半功倍的效果&#xff0c;让不懂前…

简单记录一下剑指offer的编程题(C语言实现)——替换空格反转链表

1. 替换空格 (剑指 Offer 05) 请实现一个函数&#xff0c;把字符串 s 中的每个空格替换成"%20"。 示例&#xff1a; 输入&#xff1a;s "We are happy." 输出&#xff1a;"We%20are%20happy."简单分析&#xff1a; 新建一个数组&#xff0c;…

《SpringBoot篇》16.SpringBoot整合Elasticsearch

陈老老老板 说明&#xff1a;工作了&#xff0c;学习一些新的技术栈和工作中遇到的问题&#xff0c;边学习边总结&#xff0c;各位一起加油。需要注意的地方都标红了&#xff0c;还有资源的分享. 一起加油。 本文是介绍Elasticsearch用法与SpringBoot整合 1.ES简介 注&#xf…