一种系统中外部设备的数据读取方法、系统及装置制造方法及图纸

技术编号:5242623 阅读:224 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种系统中外部设备的数据读取方法、系统及装置,用以解决现有技术中读操作时延较长,影响外部设备数据读取的效率及速度的问题。该方法系统确定对该待发送数据进行发送的外部设备,及待发送数据的BD信息后,将该BD信息添加到本地对应的BD表中,并通过DMA将该待发送数据及该BD表中添加的BD信息,写入该外部设备本地的相应位置,以便外部设备在进行数据读取操作时,能够直接根据本地BD表中保存的数据进行发送。由于在上述过程中,外部设备在进行数据发送的读操作时,无需再向系统内存请求数据,并等待系统内存的响应信息,因此有效的缩短了读操作的时延,从而提了个外部设备读操作的效率了速度。

【技术实现步骤摘要】

本专利技术涉及网络通信
,尤其涉及一种系统中外部设备的数据读取方法、 系统及装置。
技术介绍
直接存储器访问(Direct memory access, DMA)是一种应用于系统内部进行存储 器访问的技术。其中,系统中包括中央处理单元(Central Processing Unit,CPU)、内存以 及多个外部设备。各个外部设备与CPU通过总线连接,并通过总线进行数据的传输。目前 常用的总线包括外设部件互连(Peripheral Component Interconnect, PCI)总线,外设部 件互连扩展接口(Peripheral Component Interconnect Express,PCIE)总线禾口 HT (Hyper Transport)总线等等。采用DMA实现数据在不同的外部设备之间的传输时,通常通过DMA缓存描述符 (Buffer Descriptor, BD)来实现。CPU接收到数据后向BD中填写待传输的数据的源地址信 息、目的地址信息以及该待传输的数据的长度信息,之后启动DMA进行数据的传输。当CPU 在BD中将相应信息填写完毕后,就不对数据的传输过程进行干预。由于采用DMA可以实现 数据在系统内部各个不同的外部设备之间的传输,并且在数据传输的过程中无需CPU的干 预,因此可以有效的提高系统的处理能力和处理效率。图1为现有技术中当外部设备有数据需要发送时,通过DMA发起读交易,获取系统 内存中的数据的过程,该过程包括以下步骤SlOl 外部设备通过总线向系统内存发起读交易。其中该读交易需要从系统内存中将BD读取到外部设备本地的存储器中。S102 系统内存接收到该读交易后,向外部设备返回响应信息,其中该响应信息中 携带该待读取数据的BD信息。S103 外部设备接收到该响应信息后,DMA通过BD中的信息,越过总线,将该BD中 对应的数据信息从内存中读取到自身的存储器中。S104 外部设备发送自身存储器中存储的数据。目前,在外部设备进行数据读取的操作中,当外部设备发起读交易后,需要等待系 统内存的响应信息,只有接收到响应信息后,才能从内存中的相应位置读取数据,而当进行 写操作时,内存会直接发起写交易,通过总线将待写入的数据直接写入到外部设备的存储 器中。通过上述比较可知,外部设备通过总线进行读操作的时延是写操作时延的两倍以上, 尤其当总线上存在桥设备时,读操作较写操作的时延会更大。因此由于读操作的时延较长,外部设备从系统内存中读数据到自身存储器中的效 率将会较低,并且速度也会很慢。
技术实现思路
有鉴于此,本专利技术实施例提供一种系统中外部设备的数据读取方法、系统及装置,用以解决现有技术中读操作时延较长,影响外部设备数据读取的效率及速度的问题。本专利技术实施例提供的一种系统中外部设备的数据读取方法,包括系统确定对该待发送数据进行发送的外部设备,并确定待发送数据的缓存描述符 BD信息;将确定的BD信息添加到自身保存的对应该外部设备的BD表中;并通过直接存储器访问将该待发送数据写入外部设备本地的存储器中,并将该BD 信息写入该外部设备本地保存的BD表中的相应位置;所述外部设备进行读操作时,通过直接存储器访问读取本地BD表中保存的BD信 息并发送该待发送数据。本专利技术实施例提供的一种系统中外部设备的数据读取装置,包括确定模块,用于确定对该待发送数据进行发送的外部设备,并确定待发送数据的 缓存描述符BD信息;添加模块,用于将确定的BD信息添加到自身保存的对应该外部设备的BD表中;写入模块,用于通过直接存储器访问将该待发送的数据写入外部设备本地的存储 器中,并将该BD信息写入该外部设备本地保存的BD表中的相应位置。本专利技术实施例提供了一种外部设备,该外部设备包括接收存储模块,用于接收通过直接存储访问写入到本地存储器中的待发送数据, 并接收在本地缓存描述符BD表中写入的该待发送数据的BD信息;发送模块,用于在进行读操作时,通过直接存储器访问读取本地BD表中保存的BD 信息,根据该BD信息获取相应的待发送数据并进行发送。本专利技术实施例提供的一种系统中外部设备的数据读取系统,所述系统包括如上述 所述的装置,及至少一个上述所述的外部设备。本专利技术实施例提供了一种系统中外部设备的数据读取方法、系统及装置,该方法 当系统存在待发送数据时,确定对该待发送数据进行发送的外部设备,并确定该数据的BD 信息,将确定的BD信息添加到自身保存的对应该外部设备的BD表中,并通过DMA将该待发 送数据写入外部设备本地的存储器中,并将该BD信息写入外部设备本地保存的BD表中的 相应位置,以便外部设备在进行数据读取操作时,能够直接根据本地BD表保存的BD信息获 取自身存储器中保存的待发送数据并进行发送。由于在上述过程中,外部设备在进行读操 作时,无需再向系统内存请求数据,并等待系统内存的响应信息,因此有效的缩短了读操作 的时延,从而提高了外部设备读操作的效率和速度。附图说明图1为现有技术中当外部设备有数据需要发送时,通过DMA发起读交易,获取系统 内存中的数据的过程;图2A为本专利技术实施例提供的系统中外部设备的数据读取过程;图2B为CPU对系统内存及外部设备的存储器进行统一的地址管理的示意图;图3A为本专利技术实施例提供的在系统和外部设备初始状态下,当CPU将待发送数据 的BD信息添加到BD表并保存待发送数据的示意图;图3B为本专利技术实施例提供的系统通过DMA将自身对应该外部设备的待发送数据5的存储区域内保存的待发送数据,写入外部设备BD本地的存储器中的示意图;图3C为本专利技术实施例提供的将该BD信息写入外部设备本地的BD表的示意图;图3D为本专利技术实施例提供的依次提取本地存储器BD表中保存的BD信息的示意 图;图3E为本专利技术实施例提供的通过读取该BD信息并将该BD信息对应的数据的信 息发送的示意图;图3F为本专利技术实施例提供的一个具体系统中外部设备的数据读取过程;图4为本专利技术实施例提供的一种系统中外部设备的数据读取装置的结构示意图;图5为本专利技术实施例提供的一种外部设备的结构示意图。具体实施例方式本专利技术实施例为了有效的缩短外部设备在进行读操作时的时延,提高外部设备进 行读操作时的效率及读取的速度,提供了一种系统中外部设备的数据读取方法、系统及装 置,该方法在系统内存中针对每个外部设备保存有对应该外部设备的BD表,其中该BD表中 保存有BD信息。并且在每个外部设备本地的存储器中也保存有一张对应的BD表。下面结合说明书附图,对本专利技术实施例进行详细说明。图2A为本专利技术实施例提供的系统中外部设备的数据读取过程,该过程包括以下 步骤S201 系统确定存在待发送数据时,确定对该待发送数据进行发送的外部设备,并 确定该待发送数据的BD信息。系统CPU根据自身的运行情况,确定存在发往外部设备的待发送数据时,根据路 由信息等确定对该待发送数据进行发送的外部设备,并根据保存的该外部设备的存储器的 数据缓存区中未被占用的地址信息,确定该待发送数据对应的BD信息中的源地址,从而确 定该待发送数据的BD信息,其中该BD信息中包含源地址的信息及该待发送数据的长度信 肩、οS202 将确定的BD信息添加到自身保存的对应该外部设备的BD表中。在本专利技术实施例中由于针对每个外本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈宏涛刘茗彭琮
申请(专利权)人:北京星网锐捷网络技术有限公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1