4。计算机组成原理(5)总线和I/O

news2024/9/23 1:29:26

嵌入式软件开发,非科班专业必须掌握的基本计算机知识
核心知识点:数据表示和运算、存储系统、指令系统、总线系统、中央处理器、输入输出系统

一 总线概述

总线是一组能实现多个部件间信息传输的线路

按功能分类

1)片内总线(片上总线)

片上总线是指一种在芯片内部连接不同功能单元的高速通讯总线。它可以用于在处理器和存储器、I/O设备之间传输数据和控制信号,同时也可以为多个功能单元之间提供相互通信的能力。

2)系统总线

系统总线是计算机内部各个部件之间传输数据和控制信息的通道。它是一组物理电路和逻辑控制信号线,用于连接CPU、内存、硬盘、扩展卡等各种设备和部件,以实现它们之间的通信和互动。

系统总线可以分为三类:地址总线、数据总线和控制总线。地址总线用于传输地址信息,数据总线用于传输数据信息,而控制总线则用于传输控制信息,如时序信号、中断信号、总线请求信号等。

系统总线在计算机中起着至关重要的作用,它决定了计算机的运行速度和性能。一般来说,总线的宽度越大,数据传输的速度就越快,因此现代计算机中常使用高速、宽带的总线来提高数据传输效率。

3)通信总线(外部总线)

通信总线(Communication Bus)指的是一种用于数据传输的物理线路或集合,可以连接多个设备或组件,让它们能够直接相互通信。通信总线通常被广泛应用在计算机、工控系统、汽车电子等领域,以实现各种设备之间的数据交换和信息传递。

通信总线的作用是提供一个标准化的、可靠的数据传输途径,降低系统复杂度、增强模块化和可扩展性。通信总线可以分为多种类型,如串行总线、并行总线、CAN总线、SPI总线、I2C总线等,每种总线都有自己的特点和适用场景。同时,通信总线也需要考虑带宽、延迟、误码率、抗干扰能力等方面的性能指标,以满足不同应用的需求。

按时序控制方式分类

1)同步总线

总线上的数据传输与时钟同步

2)异步总线

总线上的数据传输与时钟异步

按数据传输格式分类

1)并行总线

数据是一位一位地在总线上传输

2)串行总线

数据是多位在总线上同时传输

系统总线的结构

系统总线的性能指标 

二 总线仲裁(总线判优方式)

在某个时刻,分给某个设备用

常见的总线仲裁方式包括:

  1. 集中式仲裁:在集中式仲裁方式中,总线上只有一个专门的仲裁器,也称为总线控制器。所有主设备向总线控制器发送请求,由总线控制器确定哪个设备获得总线使用权。这种方式的优点是实现简单,控制精度高,但是在总线并发访问较多时,会造成总线控制器的瓶颈效应。

  2. 分布式仲裁:分布式仲裁是指总线上没有专门的仲裁器,而是将仲裁的功能分布到各个主设备上。主设备之间通过一定的规则进行冲突检测和协调,来确定哪个设备获得总线使用权。这种方式的优点是仲裁效率高,能够提高整个系统的并行性能,但是实现复杂,对主设备的要求也较高。

  1. 轮询方式:由总线控制器按照一定的顺序对各主设备进行轮询,发现空闲总线后授予相应主设备使用权。

  2. 计算优先级方式:各主设备根据自身的需求对访问请求打分,总线控制器计算并授予优先级最高的设备使用权。

  3. 中断方式:主设备以中断的方式向总线控制器请求使用权,总线控制器接受中断信号后将使用权授予对应设备。

  4. 令牌环方式:总线上运行一个虚拟令牌,持有令牌的设备有权使用总线,使用完成后将令牌传递给下一个设备。

  5. 抢占式方式:某些主设备具有抢占能力,在总线上已经获得使用权的设备还未完成操作时,抢占设备可以请求抢占并立即获取总线使用权。

三 总线操作和定时

总线传输的四个阶段

1)同步定时方式

同步定时方式是在分布式系统中实现时钟同步的一种方式,其基本思想是通过一个主节点向所有从节点发送时间信息,从而使得所有从节点的时钟与主节点保持一致。具体实现方式包括以下几个步骤:

  1. 选择主节点:在网络环境中选择一台性能较好的设备作为主节点,该节点负责向其他从节点发出时间信息。

  2. 发送时间信息:主节点通过广播或点对点通信向所有从节点发送时间信息,时间信息包括当前主节点的时间戳以及主节点与从节点之间的网络延时信息。

  3. 时间校准:当从节点接收到主节点的时间信息时,会根据主节点的时间戳和网络延时信息调整自己的时钟,从而实现与主节点同步。

需要特别注意的是,由于分布式系统中网络延时存在不确定性,因此同步定时方式无法完全实现时钟的绝对同步,只能实现时钟的相对同步。同时,采用同步定时方式时需要确保主节点的可靠性和精度,以避免时钟同步误差过大。

优点:

  1. 实现简单:同步定时方式的实现比较简单,只需要一个主节点向各个从节点发送时间信息即可,不需要专门的仲裁器等组件。

  2. 时钟相对同步:同步定时方式虽然无法实现时钟的绝对同步,但可以实现时钟的相对同步,即各个节点的时钟差值在一定范围内。

  3. 精度较高:同步定时方式可以通过计算网络延迟等信息来调整时钟,从而实现精度较高的时钟同步效果。

  4. 可扩展性强:同步定时方式适用于分布式系统任意规模的场景,并且可以方便的增加新的节点进行扩展。

缺点:

  1. 主节点单点故障问题:同步定时方式需要依赖主节点来发送时间信息,当主节点发生故障时,整个时钟同步系统会瘫痪。

  2. 时间误差积累问题:由于同步定时方式无法实现时钟的绝对同步,因此在长时间运行后,各个节点的时间误差可能会累计到一个较大值。

  3. 网络延迟不稳定问题:同步定时方式需要依赖网络传输,当网络延迟不稳定时,可能会导致时钟同步误差增大。

  4. 实时性问题:同步定时方式需要发送数据和计算网络延迟等信息,可能会引入一定的延迟,影响实时性要求较高的应用场景。

2)异步定时方式

没有统一的时钟,没有固定的时间间隔。完全依靠双方相互制约的“握手”信号实现定时控制。
开始传输之前主设备会向从设备发出请求,并且会一直等从设备发来响应信号后才开始数据传输。

1.不互锁方式
主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是经过一段时间便撤销“请求”信号。而从设备在接到“请求”信号后,发出“回答”信号,并经过一段时间,自动撤销“回答”信号,双方不存在互锁关系。
2.半互锁方式
主设备发出“请求”信号后,必须待接到从设备的“回答”信号后,才撤销“请求”信号,有互锁的关系。而从设备在接到“请求”信号后,发出“回答”信号,但不必等待获知主设备的“请求”信号己经撤销,而是隔一段时间后自动撤销“回答”信号,不存在互锁关系。
3.全互锁方式
主设备发出“请求”信号后,必须待从设备“回答”后,才撤销“请求”信号;从设备发出“回答”信号,必须待获知主设备“请求”信号己撤销后,再撤销其“回答”信号。双方存在互锁关系。

比特率与波特率

IO系统

一 外部设备

输入设备:

  1. 键盘:通过按键按下来输入字符、数字和符号等。
  2. 鼠标:通过移动、点击、滚轮等方式来控制光标和操作。
  3. 扫描仪:可以将纸质文档、图片或其他物品扫描成电子化的文件或图像。
  4. 摄像头:可以拍摄照片或视频,并将其存储到计算机或其他设备中。
  5. 语音输入:可以通过说话的方式来输入文本和命令等。

输出设备:

  1. 显示器:用于显示计算机生成的图像、文字等视觉信息。
  2. 打印机:可以将计算机生成的图像、文字等信息打印出来,通常分为喷墨打印机和激光打印机等几种类型。
  3. 扬声器:通过播放音频文件来输出声音和音乐等。
  4. 投影仪:可以将计算机生成的图像、视频等投射到大屏幕上。
  5. 电视机:可以通过连接计算机等设备,将视频等内容在大屏幕上播放出来。

硬磁盘轨道记录格式
(1)磁头数,等于记录面数;
(2)柱面数,表示硬盘每一面盘面上有多少磁道;
(3)扇区数,表示每一条磁道上有多少个扇区。

磁盘地址

驱动器号,柱面号,盘面号,扇区号

二 I/O接口

I/O接口是主机与外设之间的交界面

I/O接口的功能
(1)实现主机和外设的通讯控制;
(2)地址译码和设备选择;
(3)实现数据缓冲;
(4)信号格式转换;
(5)传送控制命令和状态信息。

l/O接口的类型
(1)按照数据传输方式分为并行和串行接口;
(2)按照主机访问/O设备的控制方式可分为程序查询接口、中断接口和DMA接口;
(3)按功能的灵活性可分为可编程接口和不可编程接口。

 I/O端口编址
注意:接口和端口是不同的概念,端口是接口电路中的寄存器。
I/O端口要能够被CPU访问,要有端口地址,一个端口对应一个端口地址,端口编址方式有与存储器统一编址和独立编址两种:
(1)统一编址(存储器映射方式),是把I/O端口当作存储器单元进行地址分配;
优点:不需要专门的输入/输出指令,CPU访问1/O端口的操作灵活、方便,端口编址空间大;
缺点:端口占用一部分存储器地址,使可访问的存储器的最大容量变小,CPU访问I/O端口的速度较慢。

(2)独立编址(I/O映射方式),I/O端口地址与存储器地址无关,CPU靠专门的指令来访问端口。
优点:I/O端口地址不占用存储器地址;因为有独立的指令使CPU可以直接访问端口,所以访问速度快;
缺点:输入/输出指令少,一般只能对端口进行传输操作;且CPU控制主存读/写和I/O端口读写需要两组不同的控制信号,控制复杂。

三 I/O方式

程序查询方式,特点在于CPU每时每刻不断查询I/O设备是否准备就绪

程序中断方式

计算机在程序执行过程中,当出现异常或者特殊情况时,计算机停止现行程序的执行转向对这些异常情况或特殊情况的处理,处理结束后再返回现行程序的间断处,继续执行原程序,这就是中断。

中断请求

中断请求是指中断源向CPU发送中断请求信号。
(1)内中断和外中断:
外中断:来自CPU和内存以外的部件产生的中断,如/O设备的中断;
内中断:来自CPU和内存的中断,如除数为0等程序运算产生的错误
或者内存不足,空间分配失败产生的中断。
(2)硬中断和软中断:
硬中断:通过外部硬件产生的中断。硬中断属于外中断;
软中断:通过指令产生的中断,可编程实现,软中断属于内中断。
(3)非屏蔽中断和可屏蔽中断,都属于外中断。

中断判优

中断系统在某一时刻只能响应一个中断源的请求,但不同中断源发出请求是随机的,因此可能某一时刻会同时产生多个中断请求,这时候要按照某种规则来选择一个中断请求进行响应。
般硬件故障属于最高级中断,其次是软件中断,非屏蔽中断高于可屏蔽中断,DMA请求高于/O设备,高速设备高于低速设备,输入设备高于输出设备,实时设备高于普通设备。

中断响应和处理

DMA方式

DMA(Direct Memory Access,直接存储器访问)方式是一种计算机外设与主存之间进行数据传输的技术。在传统的I/O方式中,CPU需要通过输入输出指令来控制数据的传输,这会占用CPU大量的时间和资源,并且会使得系统的效率变低。而使用DMA方式可以不需要CPU的干预,提高了数据传输的效率。

DMA方式的工作原理是将数据传输的任务交给DMA控制器,在数据传输期间,DMA控制器负责控制数据的传输,而CPU则可以继续执行其他的任务。DMA方式的传输流程如下:

  1. CPU向DMA控制器发出请求:将数据的起始地址、传输大小等信息告知DMA控制器。

  2. DMA控制器向外部设备发出请求:将数据传输的命令发送给外部设备,通知其开始传输数据。

  3. 外部设备将数据写入到DMA缓冲区:外部设备将数据写入到DMA缓冲区中,DMA缓冲区位于主存之内。

  4. DMA控制器将数据从DMA缓冲区拷贝到目的地址:DMA控制器将DMA缓冲区中的数据读取出来,并将其拷贝到目的地址中。在拷贝数据的过程中,CPU可以继续执行其他的任务。

  5. 数据传输完成:DMA控制器通知CPU数据传输已经完成。

由于DMA方式可以在不占用CPU资源的情况下进行数据传输,因此它能够大大提高数据传输的效率。它主要适用于需要频繁进行大量数据传输的场合,如高速网络、视频采集等应用场景。

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

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

相关文章

【iOS】多线程以及GCD和NSOperation

iOS多线程 线程基础进程与线程NSThread类 GCD认识GCD任务队列队列与任务结合线程间通信队列组dispatch group延迟执行操作 NSOperation简介基本使用NSOperation、NSOperationQueue 常用属性和方法归纳NSOperation 常用属性和方法NSOperationQueue 常用属性和方法 小结 线程基础…

网易Android framework开发岗面试经历分享(附面试题汇总+案例解析)

背景 今年可以说是非常难,部门被拆,很多同事都被变相裁员了,虽然说去其他部门工作可以给我们的放宽一点要求,但我还是想在Android开的岗位上发展,所以也提出了离职;离职后的两个月中,投了一些A…

类ChatGPT逐行代码解读(1/2):从零实现Transformer、ChatGLM-6B

前言 最近一直在做类ChatGPT项目的部署 微调,关注比较多的是两个:一个LLaMA,一个ChatGLM,会发现有不少模型是基于这两个模型去做微调的,说到微调,那具体怎么微调呢,因此又详细了解了一下微调代…

tensorflow GPU训练环境布置

tensorflow GPU训练环境布置 一、显卡驱动安装1.1 如何处理**Failed to initialize NVML: Driver/library version mismatch的问题**1.2 卸载旧的版本1.3 驱动安装 1.3.1 利用apt 安装1.3.2 手动安装 二、安装CUDA2.1 确定CUDA版本2.2 下载文件1. 找匹配版本2. 选合适的平台 2…

微服务---Redis实用篇-黑马头条项目-商户查询缓存功能(缓存穿透,缓存雪崩,缓存击穿问题及解决思路)

1、商户查询缓存 1.1 什么是缓存? 前言:什么是缓存? 就像自行车,越野车的避震器 举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样; 同样,实际开发中,系统也需要"避震…

libcad.so Crack,转换为多种文件格式

libcad.so Crack,转换为多种文件格式 支持所有流行的2D和3D CAD格式。 高速准确的可视化。 轻松访问CAD实体属性,包括坐标、文本、图层等。 转换为多种文件格式。 从DWG和DXF文件生成G代码。 Unicode支持。 libcad.so是一个用于Linux的库。它可以将CAD功能添加到不同…

【笔试强训选择题】Day11.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录…

MyBatis--原生的 API--注解的方式和MyBatis--mybatis-config.xml-配置文件详解

目录 原生的 API&注解的方式 MyBatis-原生的 API 调用 为了大家的观看我把基于xml的配置和类也展示了如果你想要详细的观看可以看 连接这个博客 创建Monster 创建MonsterMapper接口 创建MonsterMapper.xml 配置mybits的xml 创建MyBatisUtils 原生的 API 快速入门-代…

《计算机网络—自顶向下方法》 第二章Wireshark实验:DNS协议分析

域名系统 DNS(Domain Name System) 是互联网使用的命名系统,用于把便于大家使用的机器名字转换为 IP 地址。许多应用层软件经常直接使用 DNS,但计算机的用户只是间接而不是直接使用域名系统。 互联网采用层次结构的命名树作为主机的名字,并使…

Pytorch高级训练框架Ignite详细介绍与常用模版

引言 Ignite是Pytorch配套的高级框架,我们可以借其构筑一套标准化的训练流程,规范训练器在每个循环、轮次中的行为。本文将不再赘述Ignite的具体细节或者API,详见官方教程和其他博文。本文将分析Ignite的运行机制、如何将Pytorch训练代码转为…

Kubectl-AI: 一款 OpenAI GPT 自动生成应用 K8s yaml神器

首页: 官网 下载安装 wget https://github.com/sozercan/kubectl-ai/releases/download/v0.0.10/kubectl-ai_linux_amd64.tar.gz tar xvf kubectl-ai_linux_amd64.tar.gz -C /usr/local/bin/kubectl-ai需要OpenAI API密钥或Azure OpenAI服务 API密钥和端点以及有效的Kubernet…

系统移植——linux内核移植——分析内核编译过程

uImage镜像文件 1.进入linux内核源码目录 ubuntuubuntu:~$ cd FSMP1A/linux-stm32mp-5.10.61-stm32mp-r2-r0/linux-5.10.61/ 打开Makefile文件 vi Makefile 搜索include 因为 $(SRCARCH)->arm 所以上述指令为 arch/arm/Makefile 2.进入linux内核源码目录下,arch/arm目录下…

Windows 11 本地部署 Stable Diffusion web UI

Windows 11 本地部署 Stable Diffusion web UI 0. 什么是 Stable Diffusion1. 什么是 Stable Diffusion web UI2. Github 地址3. 安装 CUDA Toolkit 11.84. 安装 cuDNN v8.9.1 for CUDA 11.x5. 配置环境变量6. 安装 Python 3.10.67. 安装 Stable Diffusion web UI8. 启动 Stabl…

吊打面试官的Java项目经验一:物流系统

引言: java面试一般分为两部分,技术面试和项目面试,相信大多数小伙伴们都刷过很多技术性的面试题,连博主本人也刷过很多无聊的面试题,但是对于项目经验的面试,可能很多刚入行小伙伴属于一个空白期&#xff…

【软考|软件设计师】编辑距离算法

目录 编辑距离算法: 步骤: 实例: 题: 完整代码如下: 调试: 代码解析: 具体过程参考: 编辑距离算法: 是一种计算两个自符串之间差异程度的方法,它通过…

现场工程师出马:VMware+LVM卷快速在windows Server上部署Kafka集群

最近遇到的疑难现场问题层出不穷,本次遭遇的挑战是在4台windows Server 服务器上部署Kafka集群。这是一种比较少见的操作,原因是有些依赖的驱动对虚拟化支持不好,只能运行在实体win机上。 原有的上层业务是由B团队开发运维,现在B…

今年的博客数量上两百了

今年的博客数量上两百了 不知不觉在 C S D N CSDN CSDN中写了那么多篇文章。与 C S D N CSDN CSDN相伴的生活中,我过得很充实。

并发编程10:Java对象内存布局和对象头

文章目录 10.1 面试题10.2 Object object new Object()谈谈你对这句话的理解?10.3 对象在堆内存中布局10.3.1 权威定义----周志明老师JVM10.3.2 对象在堆内存中的存储布局 10.4 再说对象头的MarkWord10.5 聊聊Object obj new Object()10.5.1 运行结果展示10.5.2 压…

C++入门(命名空间、缺省参数、函数重载、引用、内联函数)

全文目录 引言C输入与输出命名空间概念使用使用域作用限定符::使用某个成员使用using namespace 引入整个命名空间域使用using引入某个成员 缺省参数概念分类 函数重载定义与调用原理 引用定义需要注意 使用引用作为返回型参数引用作为返回值 引用与指针的区别 内联函数总结 引…

华为OD机试真题 Java 实现【猜字谜】【2023Q2】

一、题目描述 小王设计了一人简单的清字谈游戏,游戏的迷面是一人错误的单词,比如nesw,玩家需要猜出谈底库中正确的单词。猜中的要求如 对于某个谜面和谜底单词,满足下面任一条件都表示猜中: 变换顺序以后一样的&…