动态延迟事务机制.pdf

上传人:62****3 文档编号:1068139 上传时间:2018-03-29 格式:PDF 页数:24 大小:888.84KB
返回 下载 相关 举报
摘要
申请专利号:

CN96197838.4

申请日:

1996.07.15

公开号:

CN1200823A

公开日:

1998.12.02

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 13/36申请日:19960715授权公告日:20040421终止日期:20100715|||授权||||||公开

IPC分类号:

G06F13/00; H04Q3/00

主分类号:

G06F13/00; H04Q3/00

申请人:

英特尔公司;

发明人:

J·阿雅诺维; R·N·慕多赫; T·M·多宾斯; A·斯雷尼瓦斯; S·E·塞勒尔; J·L·拉贝

地址:

美国加利福尼亚州

优先权:

1995.09.05 US 08/523,385

专利代理机构:

中国专利代理(香港)有限公司

代理人:

王勇;陈景峻

PDF下载: PDF下载
内容摘要

本发明公开了一种在计算机系统中通过处理器调整在总线上发出的事务的延迟的方法与装置。一个与总线相连的总线事务记录器处理来自在总线上发出的事务的编码信号。当一个未决事务的请求在总线上发出时,一条与总线相连的线发送一个指示信号。当一个新的未决事务正在总线上等候时,CPU延迟计时器对在总线上的当前事务计时。当该事务使用多于预定的时间完成时,CPU延迟计时器输出一个超时信号。一个事务处理器与总线事务记录器,该线,CPU延迟计时器相连。当事务处理器单元接收到一指示信号,指示一未决事务正等候在总线上发出,当来自在总线上发出的事务的编码信号指示在总线上发出的该事务可延迟,并且当CPU延迟计时器发出该超时信号时,事务处理器单元延迟在总线上发出的该事务。

权利要求书

1: 用于调整在总线上由处理器发出的事务的延迟的事务延迟机构, 包括: 与上述总线相连用于处理来自在总线上发出的上述事务的编码信 号的总线事务记录器;以及 与上述总线事务记录器和所述总线相连的事务处理器单元,当所述 事务处理器单元由所述总线接收到一个指示有一个未决的事务正等候 在所述总线上发出的指示信号时以及当来自在所述总线上发出的所述 事务的编码信号指示在所述总线上发出的所述事务是延迟的选择对象 时,则所述事务处理器单元延迟在所述总线上发出的所述事务。
2: 权利要求1的事务延迟机构,其中上述事务处理器包括被编程用 于判断一个I/O访问事务是所述的延迟的选择对象的状态机。
3: 权利要求1的事务延迟机构,其中上述总线事务记录器包括: 与上述总线相连用于接收来自所述总线的所述编码信号并将该编 码信号译码为上述事务处理器可读的目标信息的解码器单元;和 与所述解码器单元相连用于存储上述目标信息的事务队列。
4: 权利要求3的事务延迟机构,其中所述事务队列是一个可存储来 自多个未决的事务的多个目标信息的先进先出队列(FIFO)。
5: 权利要求4的事务延迟机构,其中所述事务处理器包括一个用于 读取所述FIFO中的第一存储单元的指针,所述FIFO存储了所述总线 上发出的所述事务的所述目标信息。
6: 用于调整由处理器在总线上发出的事务的延迟的事务延迟机构, 包括: 与所述总线相连用于处理来自在总线上发出的该事务的编码信号 的总线事务记录器; 当一个未决的事务正在所述总线上等候时,用于对在所述总线上发 出的该事务计时的CPU延迟计时器,当所述事务使用多于预定完成时 间量的时间时,所述CPU延迟计时器输出一个超时信号;和 一个连接到所述总线事务记录器、所述总线以及所述CPU延时计 时器的事务处理单元,当所述事务处理器单元接收到一个来自所述总线 的指示信号,指示一个未决的事务正等候在所述总线上发出,当来自在 所述总线上发出的该事务的所述编码信号指示在所述总线上发出的该 事务是延迟的选择对象,以及当所述CPU延迟计时器输出所述超时信 号时,所述事务处理器单元延迟在所述总线上发出的所述事务。
7: 权利要求6的事务延迟机构,其中所述CPU延迟计时器是一个可 编程计时器。
8: 权利要求6的事务延迟机构,进一步包括一个用于判断上述未决 的事务是否可在上述总线上发出的延迟队列状态机。
9: 权利要求6的事务延迟机制,其中所述主机总线事务记录器包 括: 与所述总线相连用于接收来自该总线的所述编码信号,并将所述编 码信号解码为所述事务处理器可读的目标信息的解码器单元;和 与所述解码器相连,用于存储所述目标信息的事务队列。
10: 用于通过处理器调整在总线上发出的事务的延迟的事务延迟机 构,包括: 与所述总线相连用于处理来自所述总线上发出的所述事务的编码 信号的总线记录器装置; 当有一个未决的事务正等候在所述总线时,用于对在所述总线上发 出的所述事务计时的计时装置,当所述事务使用多于预定完成时间量的 时间时,所述计时装置输出一超时信号;和 与所述总线记录器装置,所述总线和所述计时装置相连的处理器装 置,当所述处理器装置由所述总线接收到一个指示信号,指示有一未决 的事务正等候在所述总线上发出,当来自在所述总线上发出的该事务的 所述编码信号指示在所述总线上发出的该事务是延迟的选择对象,以及 当所述计时装置输出所述超时信号时,所述处理器装置延迟在所述总线 上发出的该事务。
11: 一种计算机系统,包括: 用于提供所述计算机系统中各部件之间的链接的总线; 与该总线相连用于处理数字数据的处理器; 与该总线相连用于允许显示设备连接到所述计算机系统的显示设 备控制器; 与该总线相连,可以存储信息的外部存储器,用于通过所述处理器 调整在所述总线上发出的事务的延迟的事务延迟机构,它包括一个与该 总线相连用于处理来自在所述总线上发出的所述事务的编码信号的总 线事务记录器,当有一个未决的事务正在该总线上等候时对在所述总线 上发出的该事务计时的CPU延迟计时器,当所述事务使用了多于预定 完成时间量的时间时该CPU延迟计时器输出一个超时信号,还包括一 个与所述总线事务记录器,所述总线,和所述CPU延迟计时器相连的 事务处理器单元,当所述事务处理器单元由所述总线接收到一个指示信 号,指示有一个未决的事务正在所述总线上等候发出,当来自在所述总 线上发出的该事务的所述编码信号指示在所述总线上发出的该事务是 延迟的选择对象,以及当所述CPU延迟计时器输出所述超时信号时, 所述事务处理器单元延迟在所述总线上发出的该事务。
12: 用于调整当前事务的延迟的方法,包括: 判断是否存在一个未决的事务; 判断所述当前事务是否可延迟;和 如果存在所述未决事务并且所述当前事务可延迟,则延迟所述当前 事务。
13: 权利要求12的方法,其中判断是否存在所述未决事务是通过处 理直接来自一条总线的信号来实现的。
14: 权利要求12的方法,其中判断所述当前事务是否可延迟是通过 处理来自一个事务记录器的调度控制信号来实现的。
15: 用于调整当前事务的延迟的方法,包括: 判断是否存在一个未决的事务; 判断所述当前事务是否可延迟; 判断所述当前事务是否使用比预定时间长的时间完成;和 如果存在所述未决事务,所述当前事务可延迟,并且所述当前事务 使用比预定时间长的时间完成,则延迟所述当前事务。
16: 权利要求15的方法,其中判断所述当前事务是否使用多于预定 时间的时间完成是通过用CPU延迟计时器对所述当前事务计时实现 的。

说明书


动态延迟事务机制

    【发明领域】

    本发明涉及一种用于减少在CPU总线上的延迟的装置。更具体的,本发明涉及一种用于调整在计算机系统中分离或延迟事务的装置与方法。

    【发明背景】

    传统地将总线分为CPU总线与I/O总线。处理器总线较短,一般为高速,并与存储器系统相匹配以便存储器-处理器带宽最大。相反地,I/O总线可以较长,可以有许多类型的设备与之相连,并且通常在与它们相连的设备的数据带宽中具有较宽范围。I/O总线可以通过I/O桥接存储器控制器与存储器相接或使用CPU总线与存储器相连。

    在CPU总线上一个典型的事务可分为几个阶段。总线上的一个代理,处理器或I/O接口通过向总线提出一个请求来启动一个事务。在仲裁阶段,总线代理对它们自己进行仲裁以确定总线的下一个拥有者,一旦在仲裁阶段中一个代理获胜,则它在请求阶段在总线发出一个请求。在事务的出错阶段。所有代理检查请求地正确的奇偶校验并可以通知可能的错误。所有处理器对照它们的高速缓存中的内容检查事务的请求的地址并指示在事务探测期的结果。探测阶段标志了在事务中确定高速缓存中数据的所有权和处理器的存储器访问的全局观察点的那一点。事务以响应阶段完成,在该阶段通告关于事务完成的进一步信息。根据事务类型,在事务中可以有请求-启动,响应-启动或探测-启动数据阶段。

    虽然在一个时刻可有多个事务在CPU总线上发出,但在同一时刻中在每一阶段只能有一个事务。当一个事务占据任一阶段的很长时间,它都将推迟随后的事务在CPU总线上运行的时间。当在执行一个涉及向外部总线的数据传输的处理器事务时,包含多个处理器或单个处理器的用以流水地发出连续事务的计算机系统要受到延迟。例如,处理器I/O访问事务通常要用几个时钟周期完成。I/O访问事务包括访问诸如数据存贮设备的I/O设备或在I/O总线上诸如快速存储器的存储器。在信号传播到I/O设备或数据由I/O设备取出期间,处理器继续占据数据总线。这使得其它事务不能使用数据总线,并产生了延迟问题。

    因此,需要一种用于减少由于处理器I/O访问事务在CPU总线上引起的瓶颈效应而导致的延迟。

    发明概述

    这里公开了一个通过处理器调整在总线上发出的事务的延迟的事务延迟机构。总线事务记录器与总线相连用于处理来自在总线上发出的事务的编码信号。一个事务处理器单元与总线事务记录器和总线相连。当事务处理器单元由总线接收到一个指示信号,指示有一个未决事务正等候在总线上发出,和当来自在总线上发出的事务的编码信号指示在总线上发出的事务是延迟的候选对象时,事务处理器单元延迟在总线上发出的事务。

    这里还公开了一种用于调整当前事务的延迟的方法。首先,判断是否存在一个未决的事务。然后判断当前事务是否可延迟。最后,如果存在该未决的事务,并且当前事务可延迟,则延迟当前事务。

    附图简述

    通过下面给出的详述和在本发明的实施例中各种特性和单元的附图会对本发明有更好的理解。但叙述与附图并不意味本发明只限于具体的实施例。它们只用于解释和理解。

    图1显示了在计算机系统中实施的本发明的一个实施例。

    图2显示了根据本发明的事务延迟单元的一个实施例的框图。

    图3显示了根据本发明的主机总线事务记录器的一个实施例的框图。

    图4显示了根据本发明的事务处理器的一个实施例的框图。

    图5显示了根据本发明的I/O总线接口的一个实施例的框图。

    图6a显示了在一个普通计算机系统中事务是如何发出的。

    图6b显示了在延迟的事务上所承受的损失。

    图6c显示了延迟的事务如何用根据本发明一个实施例的事务延迟单元发出的。

    图7为一个显示根据本发明的一个实施例用于动态地延迟处理器到I/O访问事务的方法的流程图。

    发明详述

    本文揭示了一种新颖的事务延迟单元。在随后的详细描述中,将给出大量具体细节以使读者能完全理解本发明。然而,本领域的熟练技术人员应明白本发明无须这些具体细节也可实施。在其它情况中,公知的方法,步骤,部件和电路没有进行详细描述,以便使得本发明不晦涩难解。

    图1以方块图形式显示了本发明的一个实施例的计算机系统。该计算机系统包括一个用于处理数字数据的处理器101。处理器101可以是复杂指令集计算(CISC)微处理器,精简指令集计算(RISC)微处理器,超长指令字(VLIW)微处理器或其它的处理设备。图1显示的是使用本发明的一单个处理器计算机系统的例子。然而,应明白本发明也可在有多个处理器的计算机系统中实施。处理器101与在处理器101和计算机系统的其它部件之间传输数据的CPU总线110相连。存储器113与CPU总线110相连,它包括一个动态随机存取存储器(DRAM),一个静态随机存取存储器(SRAM),或其它的存储设备。存储器113存储信息或在处理器101运行期间的其它中间数据。桥接存储器控制器111与CPU总线110和存储器113相连。桥接存储器控制器111引导在处理器101,存储器113与计算机系统中其它部件之间的数据业务并将信号由这些部件桥接到高速I/O总线120上。

    I/O总线120支持以高数据吞吐率操作的外围设备。总线120可以是单根总线,也可以是多根总线的组合。例如,总线120可包含外围设备互连(PCI)总线,个人计算机存储卡国际协会(PCMCIA)总线,VL总线或其它总线。总线120提供在计算机系统中的部件之间的通信链接。网络控制器121将一个计算机网络链接在一起,并在机器之间提供通信。显示设备控制器122与高速I/O总线120相连。显示设备控制器122使得显示设备可连接到计算机系统上并用作显示设备与计算机系统之间的接口。显示设备控制器122可以是单色显示适配器(MDA)卡,彩色图形适配器(CGA)卡。增强型图形适配器(EGA)卡,多彩色图形阵列(MCGA)卡,视频图形阵列(VGA)卡,扩展图形阵列(XGA)卡或其它显示设备控制器。显示设备可以是电视机,计算机监视器,平面显示器或其它显示设备。显示设备通过显示设备控制器122由处理器101接收信息和数据并将这些信息和数据显示给计算机系统的用户。

    I/O总线130是用于在以低吞吐率操作的外设之间的通信。I/O总线130可以是单根总线或多根总线的组合。例如,总线130可以包括工业标准结构(ISA)总线,扩展工业标准结构(EISA)总线或微通道结构(MCA)总线。总线130提供计算机系统中部件之间的通信链接。键盘接口132可以是键盘控制器或其它键盘接口。键盘接口132可以是专用设备或可以附属于其它诸如总线控制器或其它控制器的设备。键盘接口132使键盘可连接到计算机系统上并将信号由键盘传送到计算机系统。海量存储设备131可以是硬盘驱动器,软盘驱动器,CD-ROM驱动器,快速存储器设备或其它海量存储设备。音频控制器133用于使声音的录、放协调一致,它也连接到I/O总线130上。总线桥接器123使总线120与总线130相连。总线桥接器123包括在总线120与总线130之间桥接信号的转换器。

    在本发明的一个实施例中,桥接存储器控制器111包含一个事务延迟单元112。事务延迟单元112用于当一个未决事务正等待发出时,将一个占用了超过预定时间才能完成的当前事务延迟。事务延迟单元112也用于向处理器101指示当前事务已被分离事务的实施延迟。当多方希望同时在CPU总线110上通信时,延迟或分离事务可增加CPU总线110的有效总线带宽。在本发明的一个实施例中,多方可以是希望在CPU总线110上通信的多个处理器。当一个事务被延迟时,该事务就分离成在写情况下包含地址,控制信息和数据的请求事务和包括一条发送给处理器指示事务完成的消息的响应事务。如果该事务成功该响应消息可以是指示该事务完成,如事务未成功,则重试此事务。响应事务通常由目标产生以完成最初延迟的CPU总线事务。在读取情况下,响应事务也可包含所请求的数据。每个事务都作标志以便处理器101识别这些事务。在请求事务之后,CPU总线110被释放,这使得在请求事务传播到I/O设备期间释放了CPU总线110,并使得其它请求者可使用CPU总线110。通常,在I/O存取期间,甚至当没有进行实际数据传输时,CPU总线110上的数据总线也由处理器保持。在分离事务中,CPU总线110上的数据总线只在请求事务完成读取后才可再次被访问。

    分离事务增加了完成一次传输或事务的时间。CPU总线110必须被获取两次,一次是为了请求事务,一次是为了响应事务。分离事务协议被要求始终监视通信中的其它方。桥接器存储器控制器111必须与请求方联系以启动总线事务的响应部分,所以请求方的标志必须由存储器系统传送与保持。事务延迟单元112只在分离事务可改善整个计算机系统的有效CPU总线110带宽时才动态地启动分离事务。事务延迟单元112在CPU密集和I/O密集性能和基准之间取得系统性能的平衡。

    图2图示了本发明的事务延迟单元112的一个实施例。事务延迟单元112包括主机总线事务记录器221,事务处理器222,CPU延迟计时器223,延迟队列状态机224,和I/O总线接口单元225。主机总线事务记录器221用于记录当前在CPU总线110上发出的事务。线路231将CPU总线110与主机总线事务记录器相连接。在本发明的一个实施例中,主机总线事务记录器221由CPU总线110接收诸如地址信号,字节使能信号,高速缓存协调信号的请求组信号。主机总线事务记录器221监视在CPU总线110上的队列并根据进行请求的时间记录来自于在CPU总线110上发送的事务的信息。主机总线事务记录器221处理来自CPU总线110的请求组信号并将调度控制信号输出给事务处理器222。

    事务处理器222与主机总线事务记录器221相连。事务处理器222通过线233接收来自主机总线事务记录器221的调度控制信号。事务处理器222通过从主机总线事务记录器221中的事务队列中读取调度控制信号来识别当前在CPU总线110上发送的事务类型。事务处理器也通过线232直接由CPU总线110接收信号。事务处理器222通过处理由CPU总线110接收的信号判断是否有一个未决CPU总线事务正等着发出。事务处理器222用于当有一个CPU总线事务等待发出时以及与当前CPU总线事务可被选择延迟时对当前事务进行延迟。事务处理器222可以编程用作一个用以判断哪些事务可被选择延迟,哪些事务不被延迟的过滤器。在本发明的一个实施例中,处理器I/O事务可被事务处理器222中的状态机识别为延迟的可选对象。在本发明的另一实施例中,处理器I/O周期,处理器中断确认周期,和处理器到快速I/O总线特殊周期,和当记录被禁止时处理器到快速I/O总线存储器读、写周期被事务处理器205中的状态机器识别为延迟的可选对象。通常占用数据总线很长一段时间的事务是延迟的优选对象。存储器存取事务具有一个固定的延迟,通常花费较短的时间完成。而存储器存取事务不是分离事务的优选对象而不被延迟。

    CPU延时计时器223与事务处理器222相连接,当一个未决CPU总线事务等待在CPU总线110的数据总线上被处理而当前事务是延迟的可选对象时,事务处理器经线234发出一个信号以启动CPU延时计时器223。CPU延时计时器223用于限定在有另一个未决事务存在时给予当前事务在它被延迟前被完成的时间量。CPU延时计时器223可以同时记录几个未决CPU总线事务的等待时间。在一个未决CPU总线事务的等候时间超过预先设定时间,CPU延时计时器223可以经线234输出一个信号至事务处理器222指示计时器计时已过。

    I/O总线接口单元225经线238与事务处理器222相连和经线239与I/O总线120相连。I/O总线接口单元225经线239接收来自I/O总线120上的外设的访问CPU总线110的请求。

    事务处理器222从CPU总线110接收关于一个未决CPU总线事务是否存在的信息,由从CPU延时计时器223接收关于一个未决CPU总线事务的等候时间是否已超过一个预定时间的信息,从主机总线事务记录器221接收关于当前事务是否是一个所延迟事务的选择对象的信息,和从I/O总线接口225接收关于一个在I/O总线上的事务是否以存储器113作为目标对象的信息。根据所接收的信息,事务处理器222确定是否通过发出一个分离事务对在CPU总线110上发出的当前事务进行动态延迟。事务处理器222经线235输出一个信号到处理器101指示当前事务将被延迟。

    延迟队列状态机224经线237与事务处理器222相连。延迟队列状态机224接收由事务处理器在CPU总线110和在I/O总线120上当前发出的事务的记录并用于确认哪个新事务可发出。对于不能发出的事务,延迟状态机224发出一个信号指示重试该事务。在本发明的一个实施例中,每当一个I/O访问事务被请求而另一个I/O访问事务当前被发出时,延迟队列状态机224就发出一个重试指令。

    图3显示了根据本发明的主机总线事务的一个实施例的框图。主机总线事务记录器包含解码器单元331,事务队列332,和总线跟踪器单元333。总线跟踪器单元333经线231接收来自CPU总线110指示一个事务已在CPU总线110上发出的信号。总线跟踪器单元333产生一个控制信号,并将该信号发送给事务队列332指示事务队列332锁存经线231来自CPU总线110的诸如地址信号,字节使能信号和高速缓存相关信号的信息。控制信号经线344发出。解码单元331用于对来自CPU总线110的关于访问目标的编码信息解码。解码单元331经线345将该信息发给事务队列332。事务队列332是用于存储来自解码单元331的处理后的信息与来自CPU总线110的由每一事务所检索的信息的存储单元。事务队列332可以是存储单个事务的信息的一个存储单元或者是具有多个存储多个事务的信息的存储部分的一个存储单元,例如一个先进先出存储器(FIFO)。事务队列332将关于每个事务的信息作为调度控制信号经调度总线发给事务处理器222。主机事务记录器221也可用其它公知的逻辑电路实现。

    图4显示了根据本发明的事务处理器222的一个实施例的框图。事务处理器222包含处置循环状态机432。处置循环状态机432经线232由CPU总线110接收关于一未决CPU总线事务是否存在的信息,经线234由CPU延迟计时器223接收关于一未决CPU总线事务的等候时间是否已超出预定时间的信息,经调度总线233由主机总线事务记录器221接收关于当前CPU总线事务是否是一个所延迟的选择对象的信息,经线238由I/O总线接口单元225接收关于一个在I/O总线上的事务是否将存储器113作为目标对象的信息,经线237由延迟队列状态机224接收关于该未决事务是否应重试的信息。根据这些接收到的信息,处置循环状态机432决定是否通过发出一个分离事务将在CPU总线110上发出的当前事务动态延迟。处置循环状态机432经线235输出一个信号至处理101指示当前事务将被延迟。处置循环状态机432经线236输出微指令到一条数据路径和一个DRAM控制器。

    在本发明的一实施例中,处置循环状态机432只在当前事务是I/O访问事务时才发出一分离事务。I/O访问事务通常需很长一段时间完成。当一个事务被分离或延迟时,处理器101被允许使用数据总线完成诸如访问存储器113的其它事务。在本发明的另一实施例中,当当前事务是一个处理器I/O周期,处理器中断确认周期,处理器到快速I/O总线特殊周期,和当禁止记录时处理器到快速I/O总线存储器读、写周期时,处置循环状态机432发出一个分离事务。在本发明的另一实施例中,处置循环状态机432只在当前事务是延迟的选择对象且一个未决CPU总线事务处于CPU总线队列时,才发出一分离事务。无论一个事务何时被延迟,都将导致额外的开销,这是由于目标对象被要求产生一个延迟的响应事务以完成最初延迟的CPU总线事务。通常,其代价为6个主机时钟周期。如果CPU总线事务的延迟只取决于事务的目的而不考虑是否在PCU总线上有一未决的CPU总线事务,在不必要地付出代价的情况下,系统性能将严重降低。处置循环状态机432只在计算机系统的情况保证时才发出一个分离事务。根据经线232监视CPU总线110上的业务量作出此决定。

    在本发明的另一实施例中,处置循环状态机432只在当前事务是延迟的选择对象且一未决CPU总线事务在CPU总线队列处的等待时间已超出预定时间,才发出一个分离事务。在本发明的这一实施例中,处置循环状态机432只在CPU延迟计时器223记录其等待时间大于一个预定设置时间的一个未决的CPU总线事务的等候时间时,才发出一分离事务,该等待时间使得CPU延迟计时器超时。该预定时间可以是一可编程值或一硬编码值。CPU延迟计时器在发送一超时信号给状态机202前为要完成的一个事务分配一定量的时间。通过增加超时期间,I/O周期的延迟将较不频繁,这导致整个CPU到I/O访问延迟减少。通过减少超时期间,CPU总线延迟将减少。可编程CPU延迟计时器使得使用者可以在一所选择的计算机系统环境有效地使用事务延迟单元112。例如,桌面计算机系统访问I/O设备很重要,然而对于基于处理器的服务器,在CPU总线上的短的延时更重要。因此,CPU延迟计时器223应被编程以给出更长时间以完成桌面计算机系统的一个I/O周期。在一个计算机系统服务器上,通常会有几个比I/O设备更频繁访问存储器的代理(agent)。因此,在服务器环境中,CPU延迟计时器应被编程以给出较短时间以完成一个I/O周期。

    在本发明的另一实施例中,处置循环状态机432只在当前CPU总线事务已被发出且随后一个I/O总线事务将存储器113作为目标时,才发出一个分离事务。事务处理器222也可通过其它公知的逻辑电路实现。

    图5显示的是根据本发明的I/O总线接口单元225的一个实施例的框图。I/O总线接口单元225包含启动器状态机531和目标状态机532。启动器状态机531接收来自CPU总线110的访问I/O总线120的请求。启动器状态机531工作以获取对I/O总线120的访问,并当事务已完成时将一个响应发回CPU总线110。目标状态机532接收来自I/O总线的访问CPU总线110的请求。目标状态机532工作以将这些请求发给事务处理器222。启动器状态机531和目标状态机532通过微指令与事务处理器222相通信。启动器状态机531也对来自CPU总线110并被发至I/O总线120的信息进行编码。目标状态机对来自I/O总线120并被发往CPU总线110的信息解码。总线接口单元225也可用其它公知的逻辑电路实现。

    图6a显示了在普通的计算机系统中事务如何在CPU总线上发出的一个实例。在图6a中,在0时钟周期,请求事务X。事务X是一个外部总线事务,它访问外部I/O总线上的I/O设备的数据。由于在0时钟周期,没有其它事务发出。事务X在时钟周期0-5期间完成了它的请求阶段和监测阶段。用X1时段表示这段时间。在监测阶段之后,事务X在时钟周期6开始它的数据阶段。在时钟周期6-36,事务X一直占据CPU总线上的数据总线直至处理器接收到所请求的数据。事务X占据数据总线的这段时间用X′1时段表示。

    事务Y是在时钟周期8请求的存储器访问事务。在时钟周期8,事务Y访问CPU总线上的请求总线和监测总线,并开始它的请求阶段与监测阶段。由于事务X在时钟周期6-35占据了数据总线,所以事务Y一直停在监测阶段而不能开始它的数据阶段,直至时钟周期36。Y1时段表示事务Y停留在请求阶段与监测阶段的这段时间。Y1时段表示事务Y在数据阶段的那段时间。虽然存储器访问事务通常可在很短一段时间内完成,但当它在一个被指向I/O总线的事务之后执行时,事务Y用了44个时钟周期才完成。由于它被要求等候事务X释放CPU总线上的数据总线,因此要求附加的时间以完成事务Y。要求这种等待只是因为同一时刻只有一个事务能占据数据总线。

    图6b显示了分离事务如何在CPU总线上发出和分离该事务所付出的代价的一个实例。在图6b中,事务X在时钟周期0被请求。事务X是一个外部总线事务,它访问外部I/O总线上的I/O设备的数据。由于在时钟周期0没有其它事务在CPU总线上发出。事务X在时钟周期0-5完成它的请求阶段与监测阶段。这段时间用X1时段表示。在监测阶段后,事务X在时钟周期6开始它的数据阶段。在监测阶段之后,事务X保持数据总线,开始其数据阶段。在数据阶段开始后的任一时刻,事务X都可被延迟。在延迟期,处理器被告知数据当前不能用,但在稍后一时刻将可用。作为对此信息的响应,处理器释放CPU总线上的数据总线,并允许随后请求的事务在CPU总线上的数据总线上发出。在数据总线对其它事务可用期间,桥接存储器控制器独立地检索来自事务X的所请求的数据。这段存储器控制器检索所请求的数据所要求的时间表示为X1′时段。在桥接存储器控制器接收到来自事务X所请求的数据后,存储器控制器在CPU总线上发出一个响应以将该所请求的数据发给处理器。这段在CPU总线上产生一个响应所要求的时间表示为X2时段。计算机系统只根据事务的目的地自动延迟CPU总线事务所引起的代价是X2时段,而不考虑一个未决的CPU总线事务是否需要使用CPU总线。当没有未决的CPU总线事务等待使用CPU总线时,允许现在的CPU总线事务完成而不延迟它会更有效率。

    图6c显示了延迟事务如何由根据本发明的实施例的延迟事务单元发出的一个实例。在图6c中,在时钟周期0,请求事务X。事务X是一个外部总线事务,它访问外部I/O总线上的I/O设备的数据。由于在时钟周期0,没有其它事务在CPU总线上发出,因此事务X在时钟周期0-5完成它的请求阶段与监测阶段。这段时间用X1时段表示。在监测阶段之后,事务X在时钟周期6开始它的数据阶段。在监测阶段之后,事务X通过占据数据总线开始它的数据阶段。这一阶段由X1′时间区域中的实线表示。

    事务Y是在时钟周期8请求的存储器访问事务。由于请求总线与监测总线可用,因此事务Y在时钟周期8开始它的请求与监测阶段。虽然,事务Y可在时钟周期14之前完成它的请求与监测阶段,由于事务X在时钟周期14正占据着数据总线,因此事务X在监测阶段停了一些附加的时钟周期。本发明的事务延迟单元识别出事务Y是一个未决事务,而事务X是一个I/O访问事务,它可作为延迟的选择对象。在事务Y在它的监测阶段停了一段预定时间后,事务X被延迟。图3C显示在时钟周期18,事务X被延迟。在延迟事务X期间,事务延迟单元通知处理器数据当前不可用,但在稍后一时刻将可用。对此信息进行响应,处理器释放CPU总线上的数据总线并允许事务Y在CPU总线上开始它的数据阶段。在数据总线对于事务Y可用期间,桥接存储器控制器独立地检索来自事务X的所请求的数据。Y1表示事务Y在请求与监测阶段的时间周期。Y1′表示事务Y在数据阶段的时间周期。桥接存储器控制器所要求的,以检索所请求的数据的时间周期表示为X1′时段。在桥接存储器控制器收到来自事务X的所请求的数据之后,桥接存储器控制器在CPU总线上发出一个响应以将所请求的数据发给处理器。CPU总线上所要求的、用以产生一个响应的时间周期表示为X2时段。

    图7显示了根据本发明的一个实施例用于动态地延迟外部总线事务的一个流程图。首先,判断是否有一个未决事务。这可通过由CPU总线读取信号来实现。这一过程如框701中所示。如果没有未决事务存在,则回到框701。如果存在一个未决事务,则判断当前所请求的事务是否是一个可延迟事务。这如框702中所示。当前总线事务标志可通过读取事务记录器中所记录的信息来确定。在本发明的一个实施例中,如果一个事务是处理器I/O周期,过程中断确认周期,处理器到快速I/O总线特殊周期,当禁止记录时处理器到快速I/O总线读或写周期,则该事务可延迟。如果当前CPU总线事务不能延迟,则如框703所示,完成当前事务而不延迟它。如果当前CPU总线事务是可延迟的,则启动CPU延迟计时器。CPU延迟计时器记时完成当前总线事务的时间量。这如框704中所示。然后,如框705所示,判断CPU延迟计时器是否已超时。如果CPU延迟计时器已超时,则如框706中所示,延迟当前总线事务。如果CPU延迟计时器尚未超时,则判断该未决的总线事务是否是正等候数据总线的快速I/O总线到存储器访问事务。这如框707中所示。如果有一个正等候数据总线的快速I/O总线到存储器访问事务,则如框706所示,延迟当前总线事务。如果该未决的总线事务不是快速I/O总线到存储器访问事务,则如框708所示,判断当前CPU总线事务是否完成。如果当前CPU总线事务已完成,则如框709所示,启动该未决的事务。然后,返回框701。如果当前事务未完成,则返回开始框。

    在前面的叙述中,参照了具体的示范性实施例对本发明进行了描述。但很明显的是,在不背离如下面所附的权利要求所示的本发明的更广精神与范围的前提下,可以对此作各种变型与改变。因此,说明书与附图应认为是说明性的,而非出于限制意味。

    既然本技术领域熟练人员在读了前面描述后可以理解本发明的许多变更与变型,则可理解的是,通过图示所示和描述的具体实施例决不是用作限制。因此,对具体实施例细节的参考不应用作对权利要求范围的限制,在权利要求书中只引用了认为对本发明是基本的那些特性。

动态延迟事务机制.pdf_第1页
第1页 / 共24页
动态延迟事务机制.pdf_第2页
第2页 / 共24页
动态延迟事务机制.pdf_第3页
第3页 / 共24页
点击查看更多>>
资源描述

《动态延迟事务机制.pdf》由会员分享,可在线阅读,更多相关《动态延迟事务机制.pdf(24页珍藏版)》请在专利查询网上搜索。

本发明公开了一种在计算机系统中通过处理器调整在总线上发出的事务的延迟的方法与装置。一个与总线相连的总线事务记录器处理来自在总线上发出的事务的编码信号。当一个未决事务的请求在总线上发出时,一条与总线相连的线发送一个指示信号。当一个新的未决事务正在总线上等候时,CPU延迟计时器对在总线上的当前事务计时。当该事务使用多于预定的时间完成时,CPU延迟计时器输出一个超时信号。一个事务处理器与总线事务记录器,。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1