在向请求设备发送数据前利用描述符数据预取所有数据的桥接设备和方法技术

技术编号:2919860 阅读:249 留言:0更新日期:2012-04-11 18:40
一种桥接设备具有至少两个端口。第一端口允许设备与扩展总线上的设备通信,至少一个其他端口允许桥接器与系统总线上的系统存储器或另一扩展总线上的其他设备通信。设备能够识别存储器中的至少两个区域:描述符区域和数据区域。描述符提供关于数据区域中的数据片段的信息。桥接器可以检测从存储器读取的描述符,提取关于与这些描述符相关联的数据的信息,并利用该信息来执行从系统存储器预取数据。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
许多计算机系统依赖于扩展总线来向整个系统添加功能。一般来说,附加的功能采取小型印刷电路板或其他类型的“卡”的形式,在这些印刷电路板或“卡”上有必要的组件,以允许主处理器与其他设备通信。例如,视频卡、音频卡和网络接口卡都向系统提供附加的功能。卡可以经由扩展总线通信,而不是被包括在主系统总线上。扩展总线一般是两种类型之一,ISA(工业标准体系结构)总线或PCI(外围组件互连)总线。ISA标准最初被使用,但随着处理器速度增大变成了瓶颈。通常,大多数计算机系统现有都采用PCI总线,或者与PCI-X(扩展PCI)类似的总线。将PCI总线连接到主系统总线的设备通常被称为PCI桥接器(PCI bridge)。扩展卡通过扩展总线与CPU通信。当CPU需要扩展设备(例如网络接口卡)发送数据时,它在存储器中建立发送环,以通过将数据描述符写到发送环来将设备引导到要发送的数据。CPU随后向系统存储器中为将要发送数据的扩展设备建立的设备控制寄存器进行写入。当CPU希望通知设备它的待处理任务时,它将通过PCI桥接器来完成这一操作。设备随后在单次PCI事务(PCI突发)中取得一个或多个描述符,然后一般一次一个分组,直到要发送的所有数据都被取得。设备随后按照CPU的请求发送数据。PCI桥接器可以在事务之前“提前读”,或者从系统存储器“预取(prefetch)”数据,其想法是使数据对于PCI桥接器处的设备可用而不是使其处于系统存储器中,这将会使过程加速。不幸的是,桥接器对于要预取多少数据并没有良好的估计。桥接器最后可能预取了太多数据,从而不得不丢弃数据。数据的预取占用了总线和桥接器,浪费任何预取的数据都会降低整体系统效率。这可能导致PCI总线和设备上的负载较高,并且使通过接口传输的速度减慢。它还可能对系统存储器施加高负载,这进而又会减慢CPU的有效速度。当其他扩展总线被添加到系统中时,该问题更为复杂。当系统中存在多个总线时,可能有在总线之间进行桥接的PCI桥接器。这类桥接器常被称为PCI到PCI桥接器,或P2P桥接器。为了论述方便,术语PCI桥接器将既指PCI桥接器又指P2P桥接器。附图说明通过参考附图阅读公开,将最好地理解本专利技术的实施例,附图中图1示出采用桥接器的系统体系结构的示例。图2示出在扩展总线事务周期期间采用桥接器的系统的简化框图。图3示出用于处理扩展总线事务的方法的实施例的流程图。图4示出用于预取数据的方法的实施例的更详细流程图。具体实施例方式图1示出使用扩展总线的系统的实施例。设备,例如18,驻留在扩展总线上,以向系统添加更多功能和特征。桥接设备14提供系统中央处理单元10与扩展总线17上的设备之间的通信。桥接器可以驻留在扩展总线和本地系统总线15两者之上,或者它可驻留在两个扩展总线之间。桥接器例如可以是数字信号处理器、通用处理器或专用集成电路(ASIC)。所有这些以及其他示例在这里将被称为“处理元件”。在任何一种情况下,桥接器将会具有端口144,以允许它在扩展总线17上通信,并且具有另一个端口142,以允许它在系统总线15上或另一个扩展总线(未示出)上通信。在一个实施例中,系统是用扩展设备18作为网络接口卡的网络设备。中央处理单元可能具有它希望在网络上发送的数据。该发送操作可能是CPU10和设备18之间的事务的主题。一般来说,为了辅助该事务,桥接器可以设立一个预取过程,以使得数据更为迅速地接近扩展设备。但是,目前预取过程依赖于对需要多少数据的预测,这是因为目前没有用于将事务需要多少数据告知桥接设备的装置。这引起了对预取过程进行适应性修改以克服这种知识缺乏。美国专利申请No.10/742,185(代理案卷号2705-306)中阐述的一种这样的过程使用了智能丢弃方法。智能丢弃方法是必要的,因为桥接器可能将数据预取到桥接器中,然后使之变得陈旧。陈旧数据是未反映系统存储器中对数据进行的改变的数据。陈旧数据的出现部分是因为桥接器不知道要预取多少数据。预取一般是从扩展设备进行读事务的结果。事务的一个示例在图2中示出。必须注意,为了论述方便,该图已被简化,并且任何排序都只是出于相同的原因。本专利技术的实施例也适用于其他顺序。CPU10是将会包括系统存储器12的系统块的一部分。CPU10将一系列描述符块写入存储器的预定区域中,例如图1的区域120。这些描述符块描述了要发送的数据,例如要发送的数据的每个部分的地址和大小。CPU随后对扩展设备进行写入,以请求扩展设备在网络上发送数据。桥接器14随后将写传递到扩展设备18,在本实施例中,该设备18是网络接口卡,例如以太网或其他协议接口卡。扩展设备随后发出读请求以取得描述符块。桥接器将该请求传递到系统,但也要注意桥接器应当分析来自存储器的该部分的响应。桥接器拥有关于存储器的哪些部分被用于描述符块的知识,因此当针对存储器的该部分内的地址的读请求经过桥接器时,桥接器将该请求识别为可能需要预取过程的请求。关于特定扩展设备使用的描述符块的知识通常将会在设备初始化时被配置到桥接器中。允许设备与外部设备通信的软件(即设备驱动器)将会利用允许桥接器识别针对描述符块的读请求的信息对桥接器进行配置。该信息可以是描述符地址空间、描述符大小、缓冲器地址和分组长度的偏移,以及结束地址。本质上,必要信息是描述符所驻留的位置,以及桥接器在描述符块中的什么位置能够找到要发送的数据的长度、描述符的长度以及要发送的特定分组的地址。当描述符块被从系统存储器读取并经过桥接器时,桥接器将会把它们发送到扩展设备。此外,桥接器解析描述符以定位要发送的分组的大小,其在这里被称为分组长度或发送大小,并且定位分组数据的位置,或者要发送的数据的地址。通知桥接器要被设备操作的数据的位置和大小的这种数据在这里将被称为描述符数据。桥接器随后将描述符数据存储在桥接器上的表或其他本地存储器中。存储在表中可能会包括存储在散列表中。散列表使用较短的地址,通常是完整地址的最后一个或两个字节。这允许了桥接器对数据进行更快速的索引,以定位所需的数据。如果多个描述符被取得,则所有的描述符地址都被优化和存储,以便更快地访问。接收到其描述符块的扩展设备随后发送针对该数据的读请求。现在,桥接器通过用读请求中的数据地址作为关键字搜索散列表以找出相应的描述符数据并确定发送大小,然后取得所请求的数据以及预取扩展设备的所有必要数据,来对该请求作出响应。桥接器可以基于读请求或者甚至在读请求之前预取数据。例如,假定分组长度是128字节,并假定设备一次只能读32字节,这对应于PCI规范中的“突发长度”。当设备作出读前32字节的请求时,桥接器可以预取全部128字节。桥接器从散列表获知分组的完整大小。来自设备的对于分组的剩余3组32字节的请求可以在不去往系统存储器的情况下由桥接器递送,这是因为它已经预取了128字节的完整分组。桥接器可以在第一请求之前开始预取,但是这个方案管理起来可能稍微困难一点,并且桥接器必须更为智能。两种方案都是可能的,并且都包括在本专利技术的范围内。允许桥接器拥有预取所需数据(而不是导致数据丢弃的较多数据,或者要求更多次数据来取回所需数据的较少数据)所需要的知识,提高了系统的效率。桥接器处的过程的实施例在图3中以流程图形式示出。在20处,桥接器接收来本文档来自技高网...

【技术保护点】
一种设备,包括:第一端口,用于允许所述设备与扩展总线上的其他设备通信;第二端口,用于允许所述设备与第二总线上的设备通信;存储器,用于存储数据;以及处理元件,用于:接收来自扩展设备的对系统存储器的预定区 域的读请求;将所述读请求发送到所述系统存储器;接收来自所述系统存储器的描述符数据;解析来自所述系统存储器的所述描述符数据以确定数据大小;从所述系统存储器预取具有所述数据大小的数据。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:乌达亚库马西尼瓦萨恩萨姆佩斯霍萨哈里库玛达塔提N玛塔尔玛杜胡劳阿沛乌吉瓦博霍卡
申请(专利权)人:思科技术公司
类型:发明
国别省市:US[美国]

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

1