第7章 输入/输出

除了处理器和存储模块外,计算机系统中第3个关键元素是Io模块。每个模块与系统总线或中央交换机之间都有接口,并控制一个或多个外围设备。io模块不仅物理上连接设备和系统总线,还包含外围设备与总线之间执行通信功能的逻辑,通信包括控制、状态和数据。

读者可能会好奇:为什么不直接把外围设备连接到系统总线呢?原因如下:

1.外设种类繁多,操作方法也各不相同。

2.外设的数据传输率常常比内存或处理器的慢得多。

3.外设使用的数据格式和字长常常不同于其连接的计算机。

4.因此需要io模块,功能为通过系统总线或中央交换机与处理器和内存连接;通过定制的数据链路连接到一个或多个外围设备。

7.2 io模块

io模块的主要功能和需求分为以下几种:

1.控制和计时;

2.处理器通信;

3.设备通信;

4.数据缓冲;

5.错误检测;

在任何时间段内,处理器可能会以不可预知的模式与一个或多个外部设备通信,这取决于程序对io的需求。因此,io功能包含了控制和定时,以协调内部资源和外部设备之间的流量。

控制数据从外设到处理器就可能有以下步骤:

  1. 处理器查询io模块以检查相连设备的状态;

  1. io模块返回设备状态;

  1. 如果设备可操作且已准备好传输,那么处理器通过向io模块发送命令来请求传输数据;

  1. io模块从外部设备获取一个单元的数据(如8位或16位);

  1. 数据从io模块传输到处理器;

  1. 如果系统使用了总线,那么处理器 io模块之间的每个交互都会涉及一个或多个总线。

处理器通信包括以下内容:

  1. 命令译码:io模块从处理器接收命令,一般是作为控制总线上的信号发送的。

  1. 数据:通过数据总线在处理器与io模块之间交换数据。

  1. 状态报告:由于外设非常慢,因此了解io模块的状态非常重要;

  1. 地址识别:每个io设备也有一个唯一标注自身的地址;

io模块还必须能与设备通信,这个通信包括了命令、状态信息和数据。

io模块的一个基本任务是数据缓冲。来自主存的数据以快速突发的方式被传递给io模块。然后数据在io模块中缓冲,接着再以外设的数据传输率传输至外设。反之,缓冲数据,以免在慢速传输中占用内存。所以,io模块必须能同时以设备和内存速度运行。

最后,io模块通常还负责错误检查以及随后向处理器报告错误。检测传输错误通常使用某种形式的校验码。io模块检查奇偶校验来确定是否有错误发生。

7.3 可编程io

有三种技术可以用于io操作。对于可编程io,数据在处理器和io模块之间交换。当处理器向io模块发出一个命令时,它必须等待io操作完成,该技术缺点是使处理器保持不必要的忙碌。对于中断驱动io,处理器发出io命令,然后继续执行其他指令,当io模块完成其工作后中断处理器,该技术比可编程io更高效,因为它消除了不必要的等待。但是,中断io仍然消耗了大量的处理器时间,因为每个数据字从内存到io模块。这2者都需要处理器负责从主存提取输出数据和向主存输入数据。还有一种称为直接内存访问dma,io模块与主存直接交换数据,不涉及处理器。

7.5 直接内存访问

7.5.1 可编程io和中断io的缺点:

  1. io传输速率受限于处理器测试并服务设备的速度;

  1. 处理器忙于管理io传输,每次io传输都要执行很多指令;

使用简单的可编程io,处理器专注于io任务,可以以相当高的速率移动数据,代价是不做任何其他事情。中断io在一定程度上释放了处理器,代价是io传输速率。

当移动大量数据时,用直接内存访问dma。

7.5.2 dma功能

dma涉及系统总线上的一个附加模块。dma模块能模拟处理器,并确实从处理器接管了对系统的控制,才能通过系统总线与内存传输数据。为此,dma模块必须仅在处理器不需要总线的时候才使用总线,或者它必须迫使处理器暂时挂起。后一种技术更常见,称为周期窃取,因为dma模块实际上窃取了总线周期。当处理器想要读写数据时,它向dma模块发出一条命令,以向dma模块传递以下信息:

  1. 是否有读或写请求,使用处理器与dm模块之间的读或写控制线。

  1. 所涉及的io设备地址,用数据传输。

  1. 内存中用于读写的起始位置,用数据线传送,由dma模块存储在地址寄存器中。

  1. 要读写的字数,也要数据线传送,保存在数据寄存器中。

之后,处理器继续其他的工作,它已经把io操作委托给dma模块。dma模块直接把整个数据块传送给内存,或是从内存传输出去,一次一个字,不需要经过处理器。当传输结束时,dma模块向处理器发送一个中断信号。

整体效果上,dma使得处理器执行的更慢,然而,对于多字传输,dma比中断驱动io或可编程io的效率要高很多。

dma模块若充当代理处理器,用可编程io通过dma模块在内存与io模块之间交换数据,这种结构虽然便宜,但是显然效率很低。与处理器控制的可编程io一样,每传输一个字消耗2个总线周期。

若集成dma和io功能可以大大减少所需总线周期数,这意味着在dma模块和一个或多个不包含系统总线的io模块之间存在路径。dma逻辑上可能时io模块的一部分,也可能是控制一个或多个io模块的独立模块。这个概念可以更进一步,用io模块总线将io模块连接到dma模块,这就把dma模块中的io接口数量减少到一个,并提供了一个易于扩展的结构。此时,dma模块和处理器与内存共享的系统总线仅仅被dma模块用来与内存交换数据。dma与io模块之间的数据交换在系统总线之外进行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RCNN系列算法 SSD算法 YOLO系列算法 8.3 8.1 8.2 第八 目标检测 人工智能-第八全文共18页,当前为第1页。 区域选择 分类器 目标检测 三个阶段 遍历图像确定可能存在目标的候选区域 提取候选区域相关的视觉特征 对选取的目标进行识别 rcnn系列算法 特征提取 人工智能-第八全文共18页,当前为第2页。 R-CNN是一种基于卷积神经网络的目标检测算法,它在卷积神经网络上应用区域推荐的策略,形成自底向上的目标定位模型,摒弃了传统的滑动窗口(通过多尺度滑动窗口确定所有可能的目标区域)和人工选取特征的方法,将候选区域算法和卷积神经网络相结合,使得检测速度和精度明显提升。 RCNN fast-RCNN faster-RCNN rcnn系列算法 人工智能-第八全文共18页,当前为第3页。 R-CNN 利用选择性搜索算法在图像中提取2000个左右的候选框; 把所有候选框缩放成固定大小(227*227),并进行归一化后输入CNN(AlexNet)网络,提取特征; 提取到的CNN特征使用SVM来分类,用线性回归来微调边框位置与大小,其中每个类别单独训练一个边框回归器; 非极大值值抑制(NMS)来滤除重叠的候选框 存在问题 训练时间长 测试时间长 占用磁盘空间大 卷积出来的特征数据还需要单独保存 rcnn算法 人工智能-第八全文共18页,当前为第4页。 R-CNN Fast R-CNN 1.输入为整张图像并提取特征图。 2. RoI池化层从特征图中提取固定长度的特征向量。 3.使用多任务损失函数,分别进行softmax分类和边框回归。 fast-rcnn算法 人工智能-第八全文共18页,当前为第5页。 faster-rcnn模型结构 1 2 3 特征提取 粗分类+定位 NMS去重 精分类+定位 NMS去重 faster-rcnn算法 人工智能-第八全文共18页,当前为第6页。 anchor框 特征图的每个像素点生成三种不同尺度大小的anchor框,每种框的宽高比分别为:1:1,2:1,1:2,即特征图上的每个像素点共生成9个不同大小的anchor框。 特征图 faster-rcnn算法 人工智能-第八全文共18页,当前为第7页。 RPN网络 遍历特征图上的每个像素点,然后根据不同位置和宽高的anchor框从原图上生成候选框。 faster-rcnn算法 特征图 人工智能-第八全文共18页,当前为第8页。 1.第一阶段 CNN网络提取特征 2.第二阶段(RPN网络) 使用锚框生成候选框,初步实现目标的粗分类和边框回归 3.第三阶段 实现目标的精分类和边框回归 faster-rcnn算法 faster-rcnn 人工智能-第八全文共18页,当前为第9页。 YOLO 结构简单,属于单阶段的检测方法 速度快、资源消耗少 精度较高 YOLO(You Only Look Once):创造性地将目标区域推荐和识别这两个阶段合二为一,同时完成目标定位和分类。 YOLO系列算法 人工智能-第八全文共18页,当前为第10页。 YOLOv1算法 YOLOv1的模型结构比较简单,与常规的CNN分类模型最大的差异是最后输出层用线性函数做激活函数,从而实现预测bounding box的位置。 人工智能-第八全文共18页,当前为第11页。 每个点的维度: 类别概率: 置信度: 边框信息: YOLOv1算法 人工智能-第八全文共18页,当前为第12页。 损失函数 YOLOv1算法 人工智能-第八全文共18页,当前为第13页。 使用聚类生成的锚点代替手工设计的锚点; 在高分辨率图像上进行迁移学习,提升网络对高分辨图像的响应能力 训练过程图像尺寸不再固定,提升网络对不同训练数据的泛化能力 YOLOv2 YOLOv2算法 人工智能-第八全文共18页,当前为第14页。 yolov3改进策略 1.使用Darknet-53主干网络 2.使用k-means聚类9种尺度的先验框 3.多尺度特征进行目标检测 YOLOv3算法 人工智能-第八全文共18页,当前为第15页。 SSD采用VGG作为主干网络,输入图像大小为300*300,采用了特征金字塔结构进行检测,即分别在6个不同大小的特征图上生成目标候选框。 SSD算法 人工智能-第八全文共18页,当前为第16页。 1.以特征图上每个点的中心为中心(偏移量为0.5)生成一系列同心的prior box 。 2.正方形prior box最小边长为min_size ,最大边长为min_size max_size。 3.每设置一个aspect_ratio,会生成1个长宽为aspect_ratio minsize和1aspect_ minsize的长方形。 SSD算法 人工智能-第八全文共18页,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值