第五章《输入输出系统》

1.概述

1.1.输入输出系统的发展概况

1.1.1.早期阶段 

早期的I/O设备种类较少,I/O设备与主存交换信息都必须通过CPU,

当时的I/O设备具有以下几个特点

  • 每个I/O设备都必须配有一套独立的逻辑电路与CPU相连,用来实现I/O设备与主机之间的信息交换,因此线路十分散乱,庞杂。
  • 输入输出过程是穿插在CPU执行程序过程之中进行的,当I/O设备与主机交换信息时,CPU不得不停止各种运算,因此,I/O设备与CPU是按串行方式工作的,极浪费时间。
  • 每个I/O设备的逻辑控制电路与CPU的控制器紧密构成一个不可分割的整体,因此,欲增添,撤减或更换I/O设备是非常困难的。

在这个阶段中,计算机系统硬件价格十分昂贵,机器运行速度不高,配置的I/O设备不多,主机与I/O设备之间交换的信息量也不大,计算机应用尚未普及。

1.1.2.接口模块和DMA阶段

这个阶段I/O设备通过接口模块与主机连接,计算机系统采用了总线结构

通常,在接口中都设有数据通路和控制通路。数据经过接口既起到缓冲作用,又可完成串-并变化。控制通路用以传送CPU向I/O设备发出的各种控制命令,或使CPU接受来自I/O设备的反馈信号。许多接口还能满足中断请求处理的要求,使I/O设备与CPU可按并行方式工作,提高了CPU的工作效率。采用接口技术还可以使多台I/O设备分时占用总线,使多台I/O设备互相之间也可实现并行工作方式,有利于整机工作效率的提高。

为了进一步提高CPU的工作效率,出现了直接存储器存取技术(DMA),其特点是I/O设备与主存之间有一条直接数据通路。I/O设备可以与主存直接交换信息,使CPU在I/O设备与主存交换消息时能继续完成自身的工作,故资源利用率得到了进一步提高。

1.1.3.具有通道结构的阶段

在小型和微型计算机中,采用DMA方式可实现高速I/O设备与主机之间成组数据的交换,但在大中型计算机中,I/O设备配置繁多,数据传送频繁,采用DMA方式会出现一系列问题。

  • 如果每台I/O设备都配置专用的DMA接口,不仅增加了硬件成本,而且为了解决众多DMA接口同时访问主存的冲突问题,会使控制变得十分复杂。
  • CPU需要对众多的DMA接口进行管理,同样会占用CPU的工作时间,而且因频繁地进入周期挪用阶段,也会直接影响CPU工作效率。

因此在大中型计算机系统中,采用I/O通道的方式来进行数据交换。

通道是用来负责管理I/O设备以及实现主存与I/O设备交换信息的部件,可以视为一种具有特殊功能的处理器。

通道有专用的通道指令,能独立地执行用通道指令所编写的输入输出程序,但不是一个完全独立的处理器。它依据CPU的I/O指令进行启动,停止或改变工作状态,是从属于CPU的一个专用处理器。依赖通道管理的I/O设备在与主机交换信息时,CPU不直接参与管理,故提高了CPU的资源利用率。

1.1.4.具有I/O处理机的阶段

I/O处理机又称为外围处理机(Per-ipheral Processor),它基本独立于主机工作,即可完成I/O通道要完成的I/O控制,有可完成码制变换,格式处理,数据块检错,纠错等操作。具有I/O处理机的输入输出系统与CPU工作的并行性更高,这说明I/O系统对主机来说具有更大的独立性。

1.2 输入输出系统的组成

输入输出系统由I/O软件和I/O硬件两部分组成

1.2.1 I/O软件

其主要任务如下:

  • 将用户编制的程序(或数据)输入主机内
  • 将运算结果输送给用户
  • 实现输入输出系统与主机工作的协调等。

不同结构的I/O系统所采用的软件技术差异很大。一般而言,当采用接口模块方式时,应用机器指令系统中的I/O指令及系统软件中的管理程序便可使I/O设备与主机协调工作。当采用通道管理方式时,除I/O指令外,还必须由通道指令及相应的操作系统。即使都采用操作系统,不同的机器其操作系统的复杂程度差异也很大。

I/O指令

I/O指令是CPU指令的一部分

I/O指令是机器指令的一类,其指令格式与其他指令既有相似之处,又有所不同。I/O指令可以和其他机器指令的字长相等,但它还应该能反映CPU与I/O设备交换信息的各种特点,如反映出对多台I/O设备的选择,以及在完成信息交换过程中,对不同设备应做哪些具体操作等。

操作码字段可作为I/O指令与其他指令(如访存指令,算逻指令,控制指令等)的判断代码;

命令码体现I/O设备的具体操作;

设备码是多台I/O设备的选择码;

I/O指令的命令码

  • 将数据从I/O设备输入主机
  • 将数据从主机输出至I/O设备
  • 状态测试。检测各个I/O设备所处状态是“忙”还是“准备就绪”
  • 形成某些操作命令

I/O指令的设备码相当于设备的地址。只有对繁多的I/O设备赋以不同的编号,才能准确选择某台设备与主机交换信息。

通道指令

通道指令是对具有通道的I/O系统专门设置的指令,这类指令一般用以指明参与传送(写入/读出)的数据组在主存中的首地址,需要传送的字节数,所传送数据组的末地址。指明所选设备的设备码和完成某种操作的命令码。

通道指令又称通道控制字(CCW),它是通道用于执行I/O操作的指令,可以由管理程序存放在主存的任何地方,由通道从主存中取出并执行。通道程序即由通道指令组成,它完成某种外围设备与主存之间传送信息的操作。

通道指令是通道自身的指令,用来执行I/O操作。

1.2.2 I/O硬件

输入输出系统的硬件组成是多种多样的,在带有接口的I/O系统中,一般包括接口模块I/O设备两大部分。

一个通道可以和一个以上的设备控制器相连,一个设备控制器又可以控制若干台同一类型的设备。

如:IBM360系统的一个通道可以连接8个设备控制器,一个设备控制器又与8台设备相连,因此,一个通道可以管理64台设备。

1.3 I/O设备与主机的联系方式

1.3.1 I/O设备编址方式

通常将I/O设备码看作地址码,对I/O地址码的编址可采用两种方式:统一编址不统一编址

统一编址就是将I/O地址看作存储器地址的一部分。如:在64K地址的存储空间中,划出8K地址作为I/O设备的地址,凡是在这8K地址范围内的访问,就是对I/O设备的访问,所用的指令与访存指令相似。

不统一编址就是指I/O地址和存储器地址是分开的,所有对I/O设备的访问必须有专用的I/O指令。

统一编址占用了存储空间,减小了主存容量,但无须专用的I/O设备。

不统一编址由于不占用主存空间,故不影响主存容量,但需设I/O专用指令。

需根据实际情况权衡考虑选取何种编址方式

1.3.2 设备寻址

由于每台设备都赋予一个设备号,因此,当要启动某一设备时,可由I/O指令的设备码字段直接指出该设备的设备号。通过接口电路中的设备选择电路,便可选中要交换信息的设备。

1.3.3 传送方式

并行传送

  • 在同一瞬间,n位信息同时从CPU输出至I/O设备,或由I/O设备输入CPU。
  • 特点是传送速度较快,但要求数据线多。如:16位信息并行传送需要16根数据线

串行传送

  • 若在同一瞬间只传送一位信息,在不同时刻连续逐位传送一串信息
  • 特点是传送速度较慢,但只需一根数据线和一个地线。当I/O设备与主机设备很远是,串行传送较合理。

不同的传送方式需配置不同的接口电路,如:并行传传送接口,串行传送接口或串并联的传送接口。

1.3.4 联络方式

不论是串行还是并行传送,I/O设备与主机之间必须互相了解彼此当时所处的状态,如是否可以传送,传送是否已经结束等。

立即响应方式

对于一些工作速度十分缓慢的I/O设备,如指示灯的亮与灭,开关的通与断等,当它们与CPU发生联系时,通常都已使其处于某种等待状态,因此,只要CPU的I/O指令一到,便立即响应,故这种设备无需特殊联络信号。

异步工作采用应答信号联络

当I/O设备与主机工作速度不匹配时,通常采用异步工作方式。在交换信息前,I/O设备与CPU各自完成自身的任务,一旦出现联络信号,彼此才准备交换信息。

同步工作采用同步时标联络

同步工作要求I/O设备与CPU的工作速度完全同步

I/O设备与主机的连接方式

I/O设备与主机的连接方式通常有两种:辐射式和总线式

辐射式

  • 要求每台I/O设备都有一套控制线路和一组信号线,因此所用的器件和连线较多,对I/O设备的增删都比较困难。这种连接方式大多出现在计算机发展的初级阶段。

总线式

  • 通过一组总线(包括地址线,数据线,控制线等),将所有的I/O设备与主机连接。这种连接方式是现代大多数计算机系统所采用的方式。

1.4 I/O设备与主机信息传送的控制方式

I/O设备与主机交换信息时,共有5种控制方式:程序查询方式,程序中断方式,直接存储器存取方式(DMA),I/O通道方式,I/O处理机方式。这里介绍前三种。

1.4.1  程序查询方式

程序查询方式是由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息。采用这种方式实现主机和I/O设备交换信息,要求I/O接口内设置一个能反映I/O设备是否准备就绪的状态标记,CPU通过对此标记的检测,可得知I/O设备的准备情况。

由图可见,只要一启动I/O设备,CPU便不断查询I/O设备的准备情况,从而终止了原程序的执行。CPU在反复查询过程中,犹如原地踏步。另一方面,I/O设备准备就绪后,CPU要一个字一个字地从I/O设备取出,经CPU送至主存,此刻CPU也不能执行原程序,这种方式使CPU和I/O设备处于串行工作状态,CPU的工作效率不高。

1.4.2 程序中断方式

倘若CPU在启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,只是当I/O设备准备就绪并向CPU发出中断请求后才予以响应,这将大大提高CPU的工作效率

1.4.3 DMA方式

虽然程序中断方式消除了程序查询方式的“踏步”现象,提高了CPU资源的利用率,但是CPU在响应中断请求后,必须停止现行程序而转入中断服务程序,并且为了完成I/O设备与主存交换信息,还不得不占用CPU内部的一些寄存器,这同样是对CPU资源的消耗。因此出现了DMA的方式

在DMA方式中,主存与I/O设备之间有一条数据通路,主存与I/O设备交换信息时,无须调用中断服务程序。若出现DMA和CPU同时访问主存,CPU总是将总线占有权让给DMA,通常把DMA这种占有称为窃取或挪用。窃取的时间一般为一个存取周期,故又把DMA占用的存取周期窃取周期或挪用周期。在DMA窃取存取周期时,CPU尚能继续做内部操作。DMA方式进一步提高了CPU的资源利用率。

2. I/O设备

2.1 概述

2.2 输入设备

1.键盘

键盘是应用最普遍的输入设备。可以通过键盘的各个键,按某种规范向主机输入各种信息,如汉字,外文,数字等。

键盘输入信息分为以下步骤

  • 按下一个键
  • 查出按下的是哪个键
  • 将此键翻译成ASCII码,由计算机接收

采用硬件确认哪个键被按下的方法称为编码键盘法

采用软件确认哪个键被按下的方法称为非编码键盘法

2.鼠标

机械式

  • 底座装有一个金属球,球在光滑表面上摩擦使球转动,球与4个方向的电位器接触,可测得上下左右4个方向的相对位移量

光电式

  • 需要与一块画满小方格的长方形金属板配合使用。安装在鼠标底部的光电转换器可以确定坐标点的位置

3.触摸屏

触摸屏是一种对物体的接触或靠近能产生反应的定位设备。按原理的不同,触摸屏大致可分为5类:电阻式,电容式,表面超声波式,扫描红外线式和压感式。

2.3 输出设备

 2.4 其他I/O设备

1.终端设备

终端设备是由显示器和键盘组成的一套独立完整的I/O设备,它可以通过标准接口接到远离主机的地方使用。终端与显示器是两个不同的概念,终端的结构比显示器复杂,它能完成显示控制与存储,键盘管理及通信控制等,还可完成简单的编辑操作。

2.A/D与D/A转换器

当计算机用于过程控制时,其控制信号是模拟量,而计算机仅能处理数字量,这就要用A/D,D/A转换器来完成模拟量与数字量之间的相互转换任务。

A/D转换器是模拟/数字转换器,它能将模拟量转换成数字量,是计算机的输入设备

D/A转换器是数字/模拟转换器,它能将计算机输出的数字量转换成控制所需的模拟量,以便控制被控对象或直接输出模拟信号

3.汉字处理设备

计算机进行汉字信息处理时,必须将汉字代码化,即对汉字进行编码。汉字编码可分为输入码,内码和字形码三大类。

输入码是解决汉字的输入和识别问题的;

内码是由输入码转换而成的,只有内码才能在计算机内进行加工处理;

字形码能显示或打印输出;

汉字处理设备包括汉字输入,汉字存储和汉字输出三部分。

3. I/O接口

3.1 概述

接口可以看作两个系统或两个部件之间的交换部分,它即可以是两种硬设备之间的连接电路,也可以是两个软件之间的共同逻辑边界。

3.2. 接口的功能和组成

3.2.1.总线连接方式的I/O接口电路

总线结构的计算机,每一台I/O设备都是通过I/O接口挂到系统总线上的。图中的I/O总线包括数据线,设备选择线,命令线和状态线。

数据线

数据线是I/O设备与主机之间数据代码的传送线,其根数一般等于存储字长的位数或字符的位数,它通常是双向的,也可以是单向的。若采用单向数据总线,则必须用两组才能实现数据的输入和输出功能,而双向数据总线只需一组即可。

设备选择线

设备选择线是用来传送设备码的,它的根数取决于I/O指令中设备码的位数。如果把设备码看作地址号,那么设备选择线又可称为地址线。设备选择线可以有一组,也可以有两组,其中一组用于主机向I/O设备发送设备码,另一组用于I/O设备向主机回送设备码。当然设备选择线也可采用一组双向总线代替两组单向总线

命令线

命令线主要用以传输CPU向设备发出的各种命令信号,如启动,清除,屏蔽,读,写等。它是一组单向总线,其根数与命令信号多少有关。

状态线

状态线是将I/O设备的状态向主机报告的信号线,例如,设备是否准备就绪,是否向CPU发出中断请求等。它也是一组单向总线。

现代计算机中大多采用三态逻辑电路来构成总线。

3.2.2.接口的功能和组成

根据上述设置接口的理由,可归纳出接口通常有以下几个功能以及相应的硬件配置

3.3 接口类型

按数据传送方式分类,有并行接口和串行接口两类

  • 并行接口是将一个字节(或一个字)的所有位同时传送;
  • 串行接口是在设备与接口间一位一位传送。由于接口与主机之间是按字节或字并行传送,因此对串行接口而言,其内部还必须设有串-并转换装置

按功能选择的灵活性分类,有可编程接口和不可编程接口两种

  • 可编程接口的功能及操作方式可用程序来改变或选择
  • 不可编程接口不能由程序来改变其功能,但可通过硬连线逻辑来实现不同的功能

按通用性分类有通用接口和专用接口

  • 通用接口可供多种I/O设备使用
  • 专用接口是为了某类外设或某种用途专门设计的

按数据传送的控制方式分类,有程序型接口和DMA型接口

  • 程序型接口用于连接速度较慢的I/O设备,如显示终端,键盘,打印机等,现代计算机一般都可采用程序中断方式实现主机与I/O设备之间的信息交换,故都配有这类接口
  • DMA型接口用于连接高速I/O设备,如磁盘,磁带等

4 程序查询方式

4.1 程序查询流程

程序查询方式的核心问题在于每时每刻需不断查询I/O设备是否准备就绪。

设备的查询流程

为了正确完成这种查询,通常要执行如下3条指令

  • 测试指令,用来查询I/O设备是否准备就绪
  • 传送指令,当I/O设备已准备就绪时,执行传送指令
  • 转移指令,若I/O设备未准备就绪,执行转移指令,转至测试指令,继续测试I/O设备的状态

1-3为准备工作

  1. 由于这种方式传送数据时要占用CPU中的寄存器,故首先需将寄存器原内容保护起来(若该寄存器中存有有用信息)
  2. 由于传送往往是一批数据,因此需先设置I/O设备与主机交换数据的计数值
  3. 设置欲传送数据在主存缓冲区的首地址
  4. CPU启动I/O设备
  5. 将I/O接口中的设备状态标志取至CPU并测试I/O设备是否准备就绪。如果未准备就绪,则等待,直到数据准备就绪为止。当准备就绪时,接着可实现传送。对输入而言,准备就绪意味着接口电路中的数据缓冲寄存器已装满欲传送的数据,称为输入缓冲满,CPU即可取走数据;对输出而言,准备就绪意味着接口电路中的数据已被设备取走,故称为输出缓冲空,这样CPU可再次将数据送到接口,设备可再次从接口接收数据
  6. CPU执行I/O指令,或从I/O接口的数据缓冲寄存器读出一个数据,或把一个数据写入I/O接口中的数据缓冲寄存器内,同时将接口中的状态标志复位
  7. 修改主存地址
  8. 修改计数值,若原设置计算值为原码,则依次减一;若原设置计数值为负数的补码,则依次加1
  9. 判断计数值。若计数值不为0,表示一批数据尚未传送完,重新启动外设继续传送;若计数值为0,则表示一批数据已传送完毕
  10. 结束I/O传送,继续执行现行程序

4.2 程序查询方式的接口电路

5 程序中断方式

5.1 中断的概念

计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到现行程序的间断处,继续执行原程序,这就是“中断”。中断是现代计算机能有效合理地发挥效能和提高效率的一个十分重要的功能。通常又把实现这种功能所需的软硬件技术统称为中断技术。

5.2 I/O中断的产生

5.3 程序中断方式的接口电路

为处理I/O中断,在I/O接口电路中必须配置相关的硬件线路

5.3.1.中断请求触发器和中断屏蔽触发器

每台外部设备都必须配置一个中断请求触发器INTR,当其为“1”时,表示该设备向CPU提出中断请求。但是设备欲提出中断请求时,其设备本身必须准备就绪,即接口内的完成触发器D的状态必须为“1”。

5.3.2.排队器

当多个中断源同时同时向CPU提出请求时,CPU只能按中断源的不同性质对其排队,给予不同等级的优先权,并按优先等级的高低予以响应。就I/O中断而言,速度越高的I/O设备,优先级越高,因为若CPU不及时响应高速I/O的请求,其信息可能会立即丢失。

5.3.3.中断向量地址形成部件(设备编码器)

CPU一旦响应了I/O中断,就要暂停现行程序,转去执行该设备的中断服务程序。不同的设备有不同的中断服务程序,每个服务程序都有一个入口地址,而且向量地址是由硬件电路产生的。

5.4.4.程序中断方式接口电路的基本组成

5.4 I/O中断处理过程

5.4.1.CPU响应中断的条件和时间

5.4.2.I/O中断处理过程

5.5 中断服务程序的流程

一般中断服务程序的流程分四大部分

5.5.1.保护现场

保护现场有两个含义,其一是保存程序的断点;其二是保存通用寄存器和状态寄存器的内容。前者由中断隐指令完成,后者由中断服务程序完成。

具体而言,可在中断服务程序的起始部分安排若干条存数指令,将寄存器的容存至存储器中保存,或用进栈指令(PUSH)将各寄存器的内容推入堆栈保存,即将程序中断时的“现场”保存起来

5.5.2.中断服务(设备服务)

这是中断服务程序的主体部分,对于不同的中断请求源,其中断服务操作内容是不同的

5.5.3.恢复现场

这是中断服务程序的结尾部分,要求在退出服务程序前,将原程序中断时的“现场”恢复到原来的寄存器中。通常可用取数指令或出栈指令(POP),将保存在存储器(或堆栈)中的信息送回到原来的寄存器中

5.5.4.中断返回

中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序

6 DMA方式

6.1 DMA方式的特点

由于主存和DMA接口之间有一条数据通路,因此主存和设备交换信息时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场,因此工作速度比程序中断方式的工作速度高。这一特点特别适合于高速I/O或辅存与主存之间的信息交换。因为高速I/O设备若每次申请与主机交换信息时,都要等待CPU做出中断响应后再进行,很可能因此数据丢失。

若出现高速I/O(通过DMA接口)和CPU同时访问主存,CPU必须将总线(如地址线,数据线)占有权让给DMA接口使用,即DMA采用周期窃取的方式占用一个存取周期

在DMA方式中,由于DMA接口与CPU共享主存,这就有可能出现两者争用主存的冲突,为了有效地分时使用主存,通常DMA与主存交换数据时采用如下三种方法

6.1.1.停止CPU访问主存

6.1.2.周期挪用(或周期窃取)

6.1.3.DMA与CPU交替访问

6.2 DMA接口的功能和组成

6.2.1 DMA接口的功能

利用DMA方式传送数据时,数据的传输过程完全由DMA接口电路控制,故DMA接口又有DMA控制器之称。

  • 向CPU申请DMA传送
  • 在CPU允许DMA工作时,处理总线控制权的转交,避免因进入DMA工作而影响CPU正常活动或引起总线竞争
  • 在DMA期间管理系统总线,控制数据传送。
  • 确定数据传送的起始地址和数据长度,修正数据传送过程中的数据地址和数据长度
  • 在数据块传送结束时,给出DMA操作完成的信号。

6.2.2 DMA接口基本组成

  • 主存地址寄存器(AR)
    • AR用于存放主存中需要交换数据的地址。在DMA传送数据前,必须通过程序将数据在主存中的首地址送到主存地址寄存器。在DMA传送过程中,每交换一次数据,将地址寄存器内容加1,直到一批数据传送完毕为止。
  • 字计数器(WC)
    • WC用于记录传送数据的总字数,通常以交换字数的补码值预置。在DMA传送过程中,每传送一个字,字计数器加一,直到计数器为0,即最高位产生进位时,表示该批数据传送完毕(若交换字数以原码值预置,则每传送一个字,字计数器减一,直到计数器为0时,表示该批数据传送结束)。于是DMA接口向CPU发中断请求信号。
  • 数据缓冲寄存器(BR)
    • BR用于暂存每次传送的数据
  • DMA控制逻辑
    • DMA控制逻辑负责管理DMA的传送过程,由控制电路,时序电路及命令状态控制寄存器等组成
  • 中断机构
    • 当计数器溢出(全“0”)时,表示一批数据交换完毕,由“溢出信号”通过中断机构向CPU提出中断请求,请求CPU作DMA操作的后处理
  • 设备地址寄存器(DAR)
    • DAR存放I/O设备的设备码或表示设备信息存储区的寻址信息

6.3 DMA的工作过程

6.3.1 DMA传送过程

  • 预处理
    • 在DMA接口开始工作之前,CPU必须给它预置如下信息
    • 给DMA控制逻辑指明数据传送方向是输入(写主存)还是输出(读主存)
    • 向DMA设备地址寄存器送入设备号,并启动设备
    • 向DMA主存地址寄存器送入交换数据的主存起始地址
  • 数据传送
  • 后处理

 6.3.2 DMA接口与系统的连接方式

DMA接口与系统的连接方式有两种

若干个DMA接口通过一条公用的DMA请求线向CPU申请总线控制权。CPU发出响应信号,用链式查询方式通过DMA借口,首先选中的设备获得总线控制权,即可占用总线与主存传送消息

每一个DMA接口各有一对独立的DMA请求线和DMA响应线,它由CPU的优先级判别机构裁决首先响应哪个请求,并在响应线上发出响应信号,被获得响应信号的DMA接口便可控制总线与主存传送数据

6.3.3 DMA小结

与程序中断方式相比,DMA方式有如下特点

  • 从数据传送看,程序中断方式靠程序传送,DMA方式靠硬件传送
  • 从CPU响应时间看,程序中断方式是在一条指令执行结束时响应,而DMA方式可在指令周期内的任一存取周期结束时响应
  • 程序中断方式有处理异常事件的能力,DMA方式没有这种能力,主要用于大批数据的传送,如硬盘存取,图像处理,高速数据采集系统等,可提高数据吞吐量
  • 程序中断方式需要中断现行程序,故需保护现场;DMA方式不中断现行程序,无须保护现场
  • DMA的优先级比程序中断的优先级高

6.4 DMA接口的类型

选择型DMA接口

多路型DMA接口

posted @ 2021-12-29 22:40  夜灯长明  阅读(389)  评论(0编辑  收藏  举报