[发明专利]一种基于外部设备可访问寄存器的数据传输系统及其方法有效
申请号: | 201410076490.3 | 申请日: | 2014-03-04 |
公开(公告)号: | CN103885908B | 公开(公告)日: | 2017-01-25 |
发明(设计)人: | 阮元;陈明宇 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F13/28 | 分类号: | G06F13/28 |
代理公司: | 北京律诚同业知识产权代理有限公司11006 | 代理人: | 祁建国,李岩 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 外部设备 访问 寄存器 数据传输 系统 及其 方法 | ||
技术领域
本发明涉及计算机体系结构,特别涉及一种基于外部设备可访问寄存器的数据传输系统及其方法。
背景技术
计算机系统中的处理器经常要和外部设备之间传输大量的数据,比如从磁盘上读写数据,通过网卡收发网络数据包,显卡接收需要输出给显示器的帧数据。此外还有功能各异的硬件加速卡,从处理器接收需要计算的任务,并将计算结果返回给处理器以减轻处理器的开销实现应用加速。
外部设备和处理器之间传输数据的主要途径是通过动态随机访问存储器(DRAM,Dynamic Random Access Memory)也就是内存进行中转,比如处理器将要发送的数据写入内存,然后通知外部设备从内存上的特定设备获取数据。外部设备从内存中取数据通常是通过一个直接内存访问(DMA,Direct Memory Access)控制器实现的,数据传输过程中无需处理器控制。随着对外部设备的工作效率要求越来越高,也有系统采用处理器内的高速缓存实现数据中转,具体实现方式是外部设备将数据写入内存后,由内存控制器主动发出预取请求,将刚传输完的数据取出存放到高速缓存。
随着半导体技术的不断发展和电子产品的更新换代,系统级芯片(SOC,system on a chip)得到了非常广泛的应用。在一个芯片内可以集成处理器、显示芯片、网络适配器以及定制加速模块等,这些模块在芯片内通过片上总线互联起来,传输数据时还可以通过片上存储(OCM,On Chip Memory)实现中转。此时数据传输完全在片内进行,克服了外部引脚物理电气特性的限制,显著提高了数据传输的位宽和频率。
处理器与外部模块之间传输数据时,除了提供内存、高速缓存、片上存储等保存数据的空间之外,还需要一定的同步机制保证双方互相通知数据传输的状态以及数据传输的地址范围,才能正确、安全的完成数据传输。下面以网卡接收数据包的场景为例介绍一下现有外部模块与处理器传输数据的方法。
图1为现有技术的内存中数据结构示意图,如图1所示,网卡驱动程序初始化的时候会在内存中构造一组接收描述符数据结构,每一个描述符中有一个指针指向一块物理地址连续的空间,可以存储一个网络数据报文,描述符中也有缓冲区的状态字段表示里面是否存储了网卡传输的数据。网卡驱动同时也要在初始化的时候将描述符的地址发给网卡。当网卡收到数据包了之后,会从内存中取出接收描述符,通过DMA将数据包写入描述符指定的地址,并更新缓冲区的状态字段标记其缓冲区已存储了一个数据包。之后网卡会发出一个中断信号,一个中断控制器收到中断信号之后会将中断源写入一个中断向量寄存器,之后处理器执行中断处理程序,根据中断向量寄存器的结果获知这是一个网卡接收数据中断,然后调用网卡驱动程序注册的对应网卡接收数据中断处理程序,产生一个软中断放入软中断队列。之后操作系统在合适的时候调用软中断队列中的软中断处理程序,取走接收描述符中的缓冲区,发给具体处理网络数据包的程序,之后申请一个新的缓冲区将地址填入接收描述符,同时修改描述符中记录的缓冲区的状态字段。
在上述的过程中,网卡和处理器是通过描述符来同步数据传输的状态,网卡将数据写入到内存后在描述符中标记该描述符指向的缓冲区中有数据,处理器将数据处理完成之后修改描述符中的状态字段表示该描述符指向的缓冲区是空闲的了。网卡修改了描述符后要通过中断机制通知处理器,处理器经过一系列复杂的中断处理之后找到网卡发过来的数据并取走。当大量传输数据时,如对于千兆网卡,每秒中最多可以发出超过100万个数据包。处理器上频繁执行中断处理程序的开销将非常大,甚至不能给处理数据的应用程序足够的处理器资源。如果采用关中断、按时间片定时轮询的方式,收到一批数据包再发出中断,这样减少了中断的次数,但是引入了较大的处理延迟。
如果不采用外设通知中断的方式,在发起DMA操作后由处理器上的程序监测外设的状态来判断数据传输是否完成,也就是直接在软件执行过程中访问外设上的状态信息,待数据传输完成后直接对数据进行处理。但因为处理器不能知道数据传输何时会完成,而反复查询外设上DMA控制器的时间开销又很大,处理器在这段时间基本上就无法完成其它任务了,所以只有在少数对数据处理实时性要求很高的场景下才会采用这种办法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410076490.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种板材锯切机
- 下一篇:三片式自动输送截木机