首页 > 其他分享 >03 输入输出系统和总线结构

03 输入输出系统和总线结构

时间:2024-01-17 21:55:56浏览次数:27  
标签:03 输入输出 中断 总线结构 总线 接口 地址 内存 CPU

输入输出技术

计算机系统中存在多种内存与接口地址(输入输出)的编制方法,常见的是两种:

1、内存与接口地址独立编制方法

内存地址和接口地址是完全独立的两个地址空间。优点:编程序和读程序很容易使用和辨认。缺点:用于接口的指令(需要独立设计)太少、功能太弱。

2、内存与接口地址统一的编制方法

内存地址和接口地址统一在一个公共的地址空间内。优点:原则上用于内存的指令全都可以用于接口,大大增强了对接口的操作功能,而且在指令也不再区分内存或接口指令。缺点:整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。

计算机和外设间的数据交互方式:

  1. 程序控制(查询)方式:CPU主动查询外设是否完成数据传输,效率极低;
  2. 程序中断方式:外设完成数据传输后,向CPU发送中断,等待CPU处理数据,效率相对较高。中断响应时间指的是从发出中断请求到开始进入中断处理程序;中断处理时间指的是从中断处理开始到中断处理结束。中断向量提供中断服务程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。
  3. DMA方式(直接主存存取):CPU只需完成必要的初始化等操作(此后不需要CPU执行程序执行),数据传输的整个过程都由DMA控制器来完成,在主存和外设之间建立直接的数据通路,效率很高。

DMA(Direct Memory Access,直接内存存取)是一种数据传输方式,允许外部设备(如网卡、磁盘控制器等)直接访问计算机内存,而无需CPU的直接干预。这种方式可以显著提高数据传输的效率,因为它减少了CPU参与数据传输的需求,使得CPU可以同时执行其他任务。

在一个总线周期结束后,CPU会响应DMA请求开始读取数据;

CPU响应程序中断方式请求是在一条指令执行结束时。

 

总线结构

总线Bus,是指计算机设备和设备之间传输信息的公共数据通道。总线是链接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。

广义上来讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:

  1. 内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线。
  2. 系统总线:是板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小,32位和64位计算机指的就是这个)、控制总线(传输控制命令)。代表的有ISA总线、EISA总线、PCI总线。
  3. 外部总线:设备级的总线,微机和外部设备的总线。代表的有RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)。

 

标签:03,输入输出,中断,总线结构,总线,接口,地址,内存,CPU
From: https://www.cnblogs.com/freecheng/p/17971125

相关文章

  • webserver2003解析
    webserver解析/etc/os-release查看操作系统发行版本netstat-tunal查看开放端口或者使用kalinmap-sV-p-192.168.218.131查看22/tcpopensshOpenSSH8.2p1Ubuntu4ubuntu0.4(UbuntuLinux;protocol2.0)80/tcpopenhttpApachehttpd2.4.41((Ubunt......
  • C6031 返回值被忽略:"scanf"解决办法【C语言】
    环境vs2022报错C6031返回值被忽略:"scanf"解决办法【C语言】解决2.在禁用特定警告中添加4996,6031原因因为在ANSIC中没有scanf_s(),只有scanf(),但是scanf()在读取时不检查边界,所以可能会造成内存泄露......
  • 洛谷题单指南-模拟和高精度-P1042 [NOIP2003 普及组] 乒乓球
    原题链接:https://www.luogu.com.cn/problem/P1042题意解读:分别针对11分制和21分制,输出每局比分。只需要判断一局的结束条件:得分高者如果达到11或者21,且比分间隔大于等于2分,则表示一局结束,可开始下一局,用模拟法即可解决。100分代码:#include<bits/stdc++.h>usingnamespaces......
  • NodeJs——error:03000086:digital envelope routines::initialization error
    前言vue2前端项目在服务器上打包报错,发现是高版本的node使用的是OpenSSL3.0,导致的不兼容,所以先临时抛出下环境变量,继续使用老板本的OpenSSL的实现;步骤解决方法exportNODE_OPTIONS=--openssl-legacy-provider具体报错信息root@iZuf6f5trc95ufa25hqb6eZ:/www/wwwroot/ad-cl......
  • 初中英语优秀范文100篇-060It's Important to Read Books-读书很重要
    PDF格式公众号回复关键字:SHCZFW060记忆树1Frommypointofview,asaGradeNinestudent,readingbooksisveryimportant.翻译从我的观点来看,作为一名九年级学生,阅读书籍非常重要。简化记忆重要句子结构"Frommypointofview"是一个介词短语,作为整个句子的状......
  • 使用zipFile读取文件时遇到的问题及解决(KeyError: "There is no item named 'xxx' in
    问题描述在Windows上跑一段代码时,遇到如下问题:KeyError:"Thereisnoitemnamed'CDR_Data\\\\CDR.Corpus.v010516\\\\CDR_DevelopmentSet.PubTator.txt'inthearchive"原因分析这是一段Python代码,代码中使用到了zipfile库,它首先创建了一个ZipFile对象,然后在调用read()......
  • 03-表单标签和表单项标签
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>HTML表单标签</title></head><body><!--form表单属性:action:指定表单提交的地址method:指定表单提交的方式(g......
  • Linux7安装 Oracle 11g Error in invoking target 'agent nmhs' of makefile
    目录1现象2解决3附录1现象%86时出现报错Errorininvokingtarget'agentnmhs'ofmakefile2解决在makefile中添加链接libnnz11库的参数修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL)-lnnz11建议修改前备份原始......
  • Import yaml ModuleNotFoundError No module named 'yaml
    ImportyamlModuleNotFoundError:Nomodulenamed'yaml'Python错误信息:ModuleNotFoundError异常,具体错误是找不到名为yaml的模块。这意味着在执行导入语句importyaml时,Python解释器没有在你的环境里找到这个模块。yaml是一个用于处理YAML数据格式的库,如果你在代码中需要解......
  • 关于CH32V003J4M6下载烧录注意事项
    对CH32V003J4M6进行下载烧录时,注意打印引脚要修改使用复用的打印引脚,否则因为PD1与PD5引脚是合封在一起的,使用默认的打印引脚之后会导致PD1的SWDIO信号受影响而无法下载以及debug,需要清空flash之后才能继续下载使用。  ......