计算机组成.更好的利用处理器.从输入输出看中断

【软考】计算机组成与体系结构 - 前言 计算机组成与体系结构是计算机科学与技术专业的一门核心课程,它主要研究计算机系统的内部工作原理、各部件的相互关系以及它们如何协同工作以实现计算机的功能。该课程是理解计算机系统深层次机制、优化系统性能、设计新型计算机系统的基础。计算机组成与体系结构是计算机科学与技术专业的重要课程之一,它对于培养学生的计算机系统设计和优化能力具有重要意义。通过学习该课程,学生可以深入了解计算机系统的内部工作原理和性能优化方法,为未来的职业发展打下坚实的基础。 阅读详情
  • 有了存储器就足够了吗?不,还差最后一步的包装
  • 即外设
  • 诸如显示屏、键盘、鼠标、音响等等,这些才是我们直接可以接触到的计算机
  • 这些设备,如显示屏,是接收图像的数据并显示出来;而鼠标、键盘则属于输入设备,这些数据是某程序运行所需要用到的,比如我现在正在打字的火狐浏览器
  • 也就是说,外设也需要也需要数据,这些数据也要被CPU来处理,而这些数据的传输也需要在控制之下

I/O技术

无I/O技术
  • 最初电脑的输入用……纸带……恐怕那个时候只有研究人员用电脑?……
程序查询I/O
  • I/O设备的工作全由CPU来控制
  • CPU主动查询I/O设备的状态,若检测到数据就绪,则交换/处理一个数据字,否则继续查询
  • I/O设备直接与CPU相连导致更换I/O设备困难
  • 而CPU在控制I/O设备的时候,只是在控制而已,CPU本身应该是用来运算的,而在I/O的时候却闲置了;而且由于需要CPU主动的查询,所以就算I/O设备没有准备好,也同样会消耗CPU时间
程序中断方式
  • 首先改进的就是,让准备好的I/O设备来通知CPU
  • CPU这个时候一般是在干活的,所以就需要先放下手头的工作来处理I/O。
  • 不过一次只能处理一个数据字。
  • 中断是需要保护现场的,即CPU当前工作的所有状态,以便可以恢复继续工作
DMA直接内存读取
  • 后来发现,I/O操作和CPU的关系,只不过是I/O需要读/写命令、写入的主存地址、传送的数据个数,而已
  • 这么简单的活交给CPU简直浪费啊
  • 引入DMA控制器:CPU处理I/O是往DMA控制器写入外设地址、主存地址和计数器,剩下的由DMA控制器来控制
Channel通道技术
  • DMA还不够强大
    • 通常一个DMA只能服务一个外设
    • DMA控制器一次控制传输的数据有限,还需要多次CPU的介入
  • 通道则更为强大
    • 它是一个协处理器
    • CPU通过I/O指令来控制通道工作
    • 而通道可以执行专门的通道指令来控制I/O的工作
PPU外围处理机
  • 通道还是受限于CPU的控制
  • PPU则完全独立于CPU,全权负责I/O

I/O接口

  • 众多外设各不相同,其数据交换也不同
  • 但本质都是外设的数据,所以就可以用一层I/O接口来屏蔽掉双方的差异
    • CPU只需要考虑I/O接口的构成
    • 外设也是只需要考虑I/O接口
功能
  • 地址识别和设备选择:既然也是数据,就要有自己的地址;既然又是设备,就要对应好外设
  • 接收、保存CPU的I/O控制命令:放在接口的控制寄存器
  • 反应外设的工作状态:如数据状态(是否就绪)、工作状态(忙、空闲)
  • 信号转换:屏蔽掉外设的工作逻辑、时序等等
  • 数据格式、码制的转换及数据检错、纠错
  • 传送数据
  • 中断
组成
  • 数据缓冲寄存器:数据端口:交换的数据
  • 端口地址译码器
  • 接口控制逻辑
  • 中断逻辑
  • 状态寄存器 :状态端口:外设状态
  • 命令寄存器:控制端口:工作内容、工作方式
编址
  • I/O端口是按地址来访问的
  • 独立编址
    • 单独外设的地址
    • 需要专门的I/O指令来区分开主存地址
  • 统一编址
    • 主存地址空间一部分划为I/O端口的地址范围
    • 将I/O端口视为主存的一部分

中断

  • CPU如何处理中断请求信号
响应
  • 信号
    • 控制总线
      • 接受中断请求针脚 INTR
      • 发出中断响应针脚 INTA 
    • 中断允许标志 EINT(=1允许中断)
    • 开中断命令 STI(置EINT为1)
    • 关中断命令 CLI(置EINT为0)
  • 响应条件
    • CPU收到中断请求
    • EINT=1
    • 指令刚刚执行完
  • CPU工作
    • 进入中断周期,置中断状态触发器INT为1
    • 发出中断响应信号
    • 保存断点和状态(即PC和标志寄存器,其余寄存器由中断服务程序的保护现场来保存)
    • 关中断
    • 接受中断类型码,生成中断服务程序的入口地址
      • 软件查询法 :
      • 硬件向量法:中断源收到INTA后生成一个特定的向量地址(中断类型号),CPU根据它来生成入口地址
    • 执行中断处理程序
中断过程
  • 中断请求:中断源通过INTR针脚向CPU发出请求信号
  • 中断判优:多个中断信号的优先级排序
  • 中断响应:若EINT为1,CPU会在指令执行完后扫描INTR看看是否有中断请求,有则置INT为1,进行上述的CPU工作
  • 中断处理:由预先编制的中断服务程序完成
    • 保护现场
    • 中断服务
    • 恢复现场
  • 开中断:EINT置1
  • 中断返回:IRET,将PC和标志寄存器恢复(恢复断点)
中断屏蔽
  • 中断也可以被中断
  • 这样就相当于改变了中断的优先级
  • 需要设置中断屏蔽字,来判断当前中断能否被下一个中断来中断

DMA

组成
  • 主存地址寄存器AR
  • 字计数器WC
  • 设备地址寄存器DAR
  • 中断逻辑
  • 控制/状态逻辑
工作
  • 预处理:CPU执行I/O指令,选择DMA控制器和I/O接口,外设地址、主存地址和个数写入DMA控制器,I/O接口启动外设
  • 数据传输:DMA控制器控制下,完成主存与I/O接口之间的传输
  • 后处理:当WC的个数传输完,DMA控制器向CPU发出中断请求
    • 如果数据有错,重新发送
    • 如果还有数据,再启动新一轮DMA
    • 如果结束,CPU向DMA控制器发送结束信号EOP
数据传送
  • I/O接口在数据就绪时向DMAC发出DMA请求信号DREQ
  • DMAC向CPU发出占用总线信号HOLD
  • CPU决定是否让出总线,如果让出则发送总线允许信号HLDA
  • DMAC接收到HLDA获取总线控制权,向I/O接口输出DMA应答信号DACK
  • DMAC向系统总线发出读写命令和访存地址,I/O接口开始与系统总线交换数据
  • DMA数据传输结束,AR增1,WC减1 (即一次传送一个数据字)
  • DMAC撤销HOLD信号,释放总线
CPU和DMA和BUS
  • DMAC接收到HLDA后一直占用BUS直到传输完毕
  • DMAC在CPU不使用BUS的时候使用一个周期的BUS来传输一个数据字
  • CPU和DMA交替使用BUS:CPU工作周期比主存访问周期长得多的时候使用这种方式,分为子周期,分别让CPU和DMA使用总线,此时DMA无须请求总线

Channel

  • CPU管理DMA都是一些简单的命令,可以交给一个协处理器来完成
  • 通道就是一个简单的微处理器和DMA控制器的集成
改进CPU
  • CPU的管态、目态和访管指令
  • I/O指令只能在管态下,由OS执行
  • 广义I/O指令在目态下执行
  • 启动I/O指令
功能
  • 接受CPU的I/O指令,选择外设与通道相连
  • 执行CPU编制的通道程序
  • 给出外设地址
  • 给出主存地址
  • 控制交换个数
  • 检查外设状态
  • 格式转换
  • 结束操作
工作
  • 用户程序执行广义I/O指令,进入管态
  • CPU响应中断,执行I/O管理程序,其根据广义I/O指令的参数,针对特定通道使用通道命令编写通道程序,该程序最后一条为“无链通道指令”——停止通道工作,并向CPU发中断。
  • 通道程序写到主存中,将入口地址写入主存中预先划分的“通道地址字”单元,执行启动I/O指令。再由通道来执行通道程序
  • 通道程序执行完,向CPU发送中断信号,CPU响应并进入管态,执行管理程序来完成结束操作

2D激光slam数据集的下载与测试 参考博客: https://blog.csdn.net/qq_24894159/article/details/81265991 https://blog.csdn.net/fk1174/article/details/52673413#commentBox 数据集下载与生成 下载数据集 下载网址: http://ais.informatik.uni-freiburg.de/slamevaluation/datasets.php 进去网站后点你想下载的对应的"download log file" 然后你 阅读详情

相关推荐

VCL for PHP,Konopka Signature VCL Controls (Raize Components 6.2.3) for Delphi 10.4

The Raize Components suite includes a variety of interface design tools for Delphi programming language and C ++ Builder, which includes over 125 VCL controls and over 100 different tools for creating...

weixin_42137539的博客 851

中断方式及DMA工作详解

中断方式及DMA中断原理详解

weixin_51769476的博客 7437

Vmware虚拟机一打开就蓝屏解决方法

Vmware虚拟机一打开就蓝屏解决方法 问题: 一打开Vmware虚拟机就蓝屏,如下图所示: 解决方法1: 启用和关闭windows功能(对话框)——>虚拟机平台(选项打对勾,默认没勾选)——>确定后重启——>再进应该就好了。 解决方法2: ①.查看电脑中的Hyper-V服务是否关闭 1.打开控制面板-程序-程序和功能 2.双击启用或关闭Windows功能 3.把Hyper-V前面的勾去掉 如果后期发下没有反应,或者电脑本身Hyper-V的服务没有打开,可以先打开在关闭,试

m0_55901666的博客 26万+

【STM32】DMA基本原理、寄存器、库函数(DMA一般步骤)

STM32F1xx官方资料: 《STM32中文参考手册V10》-第10章 DMA控制器 DMA的基本介绍 DMA的基本定义 DMA,全称Direct Memory Access,即直接存储器访问。 DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。D...

Yngz_Miao的博客 7万+

避开STM32中断优先级配置的坑:HAL_NVIC_SetPriority()参数你真的用对了吗?

本文深入解析STM32中断优先级配置中的关键问题,重点剖析HAL_NVIC_SetPriority()函数的正确使用方法。通过实际案例揭示优先级分组设置、抢占优先级与子优先级的区别,提供多中断系统中的优化策略和调试技巧,帮助开发者避免常见配置错误,提升系统稳定性。

weixin_42532938的博客 421

如何实现MCGS与S7-200SMART PLC以太网多台通信控制?

第九步:(设备工具箱—设备管理—鼠标依次点击通用TCP/IP父设备—西门子_ Smart200到设备窗口里面去)数据类型:第0位(指PLC地址变量小数点后面的位数,例如我地址是M0.0,那么在数据类型应填写通道的第00位)第十步:(鼠标双击打开通用TCPIP父设备0--[通用TCP/IP父设备]进入通信配置)通道地址:0(指小数点前面起始字节的地址,例如我地址是M0.0,那么应在通道地填写0)。第七步:(选择通用TCP/IP父设备,点击新增,右侧选定设备就会自动添加进去。

u010670857的博客 6715

中断、DMA、通道

一、轮询方式  对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的一种管理方式。它定时对各种设备轮流询问一遍有无处理要求。轮流询问之后,有要求的,则加以处理。在处理I/O设备的要求之后,处理机返回继续工作。  尽管轮询需要时间,但轮询不比I/O设备的速度要快得多,所以一般不会发生不能及时处理的问题。   当然,再快的处理机,能处理的输入输出设备的数量也是有一定限度的。而且,程序轮询

独自登高楼 望断天涯路 3613

若依框架(ruoyi vue版)集成jeecg积木报表整体完整实用教程(超长篇幅耐心阅读)

若依框架(ruoyi vue版)集成jeecg积木报表整体完整实用教程,主要说明jeecg积木报表的集成、jeecg积木报表嵌入若依菜单、token权限控制,以及iframe嵌入表格等内容。

weixin_53067723的博客 4641

计算机之间交换信息需要,计算机CPU与输入/输出设备之间交换的信息包括()信号...

摘要:学创后马克义哲立之思主,计算机C间交了出现开始。而支和解它包争议者惩致的赔偿监管决民金或于因不限措施敞口付的罚款、出设罚罚性风险商事所导括但,出设新资议》按照《巴本协的规定塞尔,型的种特操作风险是一殊类。内的概率值的准差距均距离其观倍标为1为(落在测值范围,备之包括态分变量布从正X服随机。...学创后马克义哲立之思主,计算机C间交了出现开始。下列正确的是说法,入输系统故障结算结算导致发生失败...

weixin_28698233的博客 404

RPMsg:协议简介

两台计算机可以通过TCP/IP进行通信,那么同一颗芯片上的两个核心怎么通信呢?

SunnyZhou-1024的博客 1万+

Windows系统3D Gaussian Splatting环境搭建全攻略:从零开始到成功运行

本文详细介绍了在Windows系统上搭建3D Gaussian Splatting环境的完整流程,包括CUDA 12.6安装、Anaconda环境配置、代码获取与依赖安装等关键步骤。针对Windows平台特有的环境配置问题,提供了实用的解决方案和常见错误排查方法,帮助开发者快速实现3D Gaussian Splatting的成功运行。

weixin_30832143的博客 452

计算机组成原理——万字详解

这篇文章用了万字来概述计算机组成的原理,对于408考研、计算机领域面试、基础,都有不小帮助。 在计算机领域,对计算机系统底层原理的了解是被广泛认可和重视的。就像现在的408考研,面试、跳槽等,它能够加深你对计算机系统的理解,提高编程效率和问题解决能力,培养创新思维,并增强你的就业竞争力。

商务合作|种草文章|产品测评 2万+

逆向分析-SeparationPreview.aip-分色预览-结构分析(一)-x64dbg条件日志打印-命令表达式-PS脚本

从功能上分析,仅显示使用的专色这个功能,并没有触发插件接口。使用X64dbg加载illustrator进程,切换到句柄窗口,在窗口过程中,右键刷新获取界面。在x64dbg中,在UI中可以输入一些条件表达式,能够计算出对应的值,并打印在日志中。常用的,如果非暂停,输出第一个参数。参数二是utf16的指针,utf16@字符串地址,这里的字符串地址为[[ebp-108]]参数一是utf8的,utf8@字符串地址,这里的字符串地址为[ebp-28]从界面上分析,一个颜色列表,及仅显示专色的多选框组成。

插件开发 643

王道计算机组成原理课代表 - 考研计算机 第七章 输入输出系统 究极精华总结笔记

计算机组成原理 笔记导航🚥🚥🚥 🥬 第一章 计算机系统概述 🥕 第二章 数据的表示和运算 🥪 第三章 存储系统 🍊 第四章 指令系统 🍒 第五章 中央处理器 🍀 第六章 总线 🍚 第七章 输入输出系统 🍔计算机组成原理 复试精简笔记 🎨 408 全套初复试笔记汇总 传送门 🏃‍🏃‍🏃‍ 你必考上研究生!我说的,耶稣来了也拦不住!😀😀😀

clzZ2的博客 3728

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计算机组成原理的学习笔记(11)-- CPU·其三 中断和异常/多处理器相关概念

​本文主要是对于b站尚硅谷的计算机组成原理的学习笔记,仅用于学习交流。一、中断中断的基本概念中断是计算机用于处理异步事件的重要机制,可打断当前指令的执行,切换到对应的中断服务程序进行处理。中断响应:保存断点、关闭中断、切换到中断处理程序。保护现场:保存被中断程序的状态(如寄存器等)。中断服务:执行特定中断处理程序。恢复现场:恢复被中断程序的状态。中断返回:返回断点,继续原程序执行。中断与异常中断:由外部设备或硬件请求触发,如 I/O 设备的完成信号。异常。

Rinai的博客 1673

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

王道计算机组成原理课代表 - 考研计算机 第五章 中央处理器 究极精华总结笔记

计算机组成原理 笔记导航🚥🚥🚥 🥬 第一章 计算机系统概述 🥕 第二章 数据的表示和运算 🥪 第三章 存储系统 🍊 第四章 指令系统 🍒 第五章 中央处理器 🍀 第六章 总线 🍚 第七章 输入输出系统 🍔计算机组成原理 复试精简笔记 🎨 408 全套初复试笔记汇总 传送门 🏃‍🏃‍🏃‍ 你必考上研究生!我说的,耶稣来了也拦不住!😀😀😀

clzZ2的博客 5410

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

深入计算机组成原理(二)给你一张知识地图,计算机组成原理应该这么学

了解了现在计算机的基本硬件组成和背后最基本的冯·诺依曼体系结构,我们就可以正式进入计算机组成原理的学习了。在学习一个一个零散的知识点之前,我整理了一份学习地图,好让你对将要学习的内容有一个总纲层面的了解。 从这张图可以看出来,整个计算机组成原理,就是围绕着计算机是如何组织运作展开的。 计算机组成原理知识地图 计算机组成原理的英文叫 Computer Organization。这里的Organiz...

小问号的博客 4472

计算机组成原理:5. 输入输出系统

每个I/O设备都必须配有一套独立的逻辑电路与CPU相连,线路十分散乱、庞杂。输入输出过程是穿插在CPU执行程序过程之中进行的,工作效率低。每个I/0设备的逻辑控制电路与CPU的控制器紧密构成一个不可分割的整体,可扩展性低。人机交互设备:·实现操作者与计算机之间互相交流信息的设备。计算机信息的存储设备:系统软件和各种计算机的有用信息,其信息量极大,需存储保留起来。机——机通信设备:实现一台计算机与其他计算机或与其他系统之间完成通信任务的设备。

LYS00Q的博客 1861

【向题看齐】408之计算机组成原理概念记忆总结

✍、【向题看齐】408之计算机组成原理概念记忆总结

Augenstern_QXL的博客 7774

计算机组成原理五:输入输出系统

一:输入输出系统的设计理念:      输入输出系统是计算机硬件系统中的重要组成部分,它的目的是为计算机整体系统提供数据的生成以及数据的展现以及与主存之 数据的交互.它们是计算机用户与其他设备通信的桥梁,是属于交互设备. 二:输入输出系统的发展阶段:    1)早期的直连阶段:IO设备与CPU直接连接,当IO设备与主存进行数据交换时,必须通过CPU,CPU也必须中断正在执行的程序,来完成

sp377455152的专栏 2144

10道计算机组成原理面试八股文(答案、分析和深入提问)整理

不同的编址方式在实现上各有优劣,设计者需要根据系统的具体需求选择合适的编址机制,以达到更好的性能和安全性。内存地址的编址方式主要有按位编址、按字节编址和按字编址。按位编址以二进制位为单位,每个位有唯一地址,但读写效率低,实际应用少;按字节编址以字节(8 位)为单位,是最常见的编址方式,方便数据存储和读取,广泛应用于各类计算机系统;按字编址以字为单位,一个字由多个字节组成,能提高数据读写效率,但对数据对齐要求高,常用于对性能要求高的系统。在实际应用中,需要根据具体需求和系统特点选择合适的编址方式。

Lonelycity_zyz的博客 2286

【2020/12/4修订】【梳理】计算机组成与设计 第4章 处理器 第3节 异常(docx)

配套教材: Computer Organization and Design: The Hardware / Software Interface (5th Edition) 建议先修课程:数字逻辑电路、C / C++、汇编语言。 这是专业必修课《计算机组成原理》的复习指引。建议将本复习指导与博客中的《简明操作系统原理》配合复习。 在本文的最后附有复习指导的高清截图。需要掌握的概念在文档截图中以蓝色标识,并用可读性更好的字体显示 Linux 命令和代码。代码部分语法高亮。 计算机组成原理不是语言课,本复习指

COFACTOR 695

02 | 给你一张知识地图,计算机组成原理应该这么学

学习不是死记硬背,学习材料也不是越多越好。到了这里,希望你不要因为给出了太多可以学习的材料,结果成了“松鼠症”患者,光囤积材料,却没有花足够多的时间去学习这些知识。工作之后一直在持续学习,在这个过程中,发现最有效的办法,不是短时间冲刺,而是有节奏地坚持,希望能够和专栏的发布节奏同步推进,做好思考题,并且多和其他朋友一起交流,就更容易能够“积小步而至千里”,在程序员这个职业上有更长足的发展。对于学习资料的介绍就到这里了。希望在接下来能一起走完这趟“计算机组成”之旅,从中收获到知识和成长。

qq_37756660的博客 1073

零基础小白如何自学计算机组成原理

从零基础开始学习计算机组成原理是一个循序渐进的过程,重要的是从基础概念入手,逐步加深对硬件和计算机内部运作的理解。通过理论学习和动手实验结合的方式,能帮助你更好地掌握计算机组成原理的核心内容,并为后续的学习打下坚实的基础。学习计算机组成原理是一个循序渐进的过程,需要结合理论学习与实践,逐步深入理解计算机的各个组成部分及其工作原理。从基础的二进制与逻辑运算开始,到CPU、内存、I/O等硬件模块的深入学习,再到性能优化和多核计算的复杂内容。

小宝哥Code的专栏 1439

计算机组成原理复习笔记

计算机组成原理复习笔记 【下载地址】计算机组成原理复习笔记 计算机组成原理复习笔记本仓库提供了一份完整的计算机组成原理复习笔记,内容涵盖了计算机组成原理的核心知识点和重要概念 项目地址: https://gitcode.com/R...

gitblog_06580的博客 468
上一篇: 计算机组成.记忆力核心.存储器Memory
下一篇: JavaEE.第一步是环境配置而不是HelloWorld
木艮氵
博客等级 码龄11年 136粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值