首页> 中国专利> 支持具有点到点半双工互连的计算机系统中多时钟传播的方法与装置

支持具有点到点半双工互连的计算机系统中多时钟传播的方法与装置

摘要

根据一个实施方案,一个计算机系统包括一个中央处理器(CPU)、一个耦合于CPU的存储器控制集线器(MCH)、一个耦合于MCH的点到点接口、一个耦合于点到点接口的输入/输出控制集线器(ICH)。MCH延迟对一个存取点到点接口的请求的仲裁,直至在ICH处接收到这一存取请求。ICH延迟对一个存取点到点接口的请求的仲裁,直至在MCH处接收到这一存取请求。

著录项

  • 公开/公告号CN1423779A

    专利类型发明专利

  • 公开/公告日2003-06-11

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN00818128.4

  • 发明设计人 D·J·哈里曼;R·B·奥斯博尼;

    申请日2000-09-29

  • 分类号G06F13/368;

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人吴立明;陈霁

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 14:48:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-11-10

    未缴年费专利权终止 IPC(主分类):G06F13/368 授权公告日:20050608 终止日期:20160929 申请日:20000929

    专利权的终止

  • 2005-06-08

    授权

    授权

  • 2003-08-27

    实质审查的生效

    实质审查的生效

  • 2003-06-11

    公开

    公开

说明书

发明领域

本发明涉及计算机系统,更具体地说,涉及经由一个集线器接口增加所耦合的部件之间的长度。

发明背景

自从计算机系统诞生以来,人们就一直在不断地努力降低制造成本,以在更低的价格上提供高质量的系统。生产成本增大的一个主要因素是,与芯片间连接的相关花费。使芯片得以连接的必需的管脚的数目增加了计算机系统的生产成本。因此,人们越来越迫切地需要芯片间的连接更快与更窄。更快与更窄的互连的一个实例是集线器接口。

集线器接口是一个输入/输出(I/O)互连,用于把I/O集线器和符合俄勒冈Portland的外设部件互连(PCI)Special Interest Group开发的技术指标2.1版本的外部部件互连(PCI)桥接器连接于一个存储器控制器集线器。集线器接口是一条具有一个分布的仲裁器的半双工总线。通过一个全局时钟和两个请求(REQ)信号,在接口上实现同步。在接口的每一侧上的代理声明REQ信号,以把一个请求传递给另一个代理。例如一个代理(例如A侧)把一个请求信号发送给另一个代理(例如B侧),与此同时,B侧把一个请求传输给A侧,在每一侧上对REQ信号进行取样,然后决定将允许哪一方存取接口。

图6是一个示范性的集线器接口的方框图。集线器接口包括由请求信号(REQA和REQB)以及一个数据部件所耦合的代理A和代理B。每一个代理包括一个仲裁器。仲裁器仲裁集线器接口的拥有权。无论对一个REQA信号还是对一个REQB信号的声明均为一个仲裁事件。在每一仲裁事件中,其中的仲裁器既审查REQA信号,也审查REQB信号,并独立地和同时地确定集线器接口的拥有权。当集线器接口为闲置时,代理A或B中的首先声明其请求的代理赢得拥有权。当集线器接口闲置时,如果代理A和B同时请求拥有权,则最近最少得到服务的集线器代理赢得拥有权。

通常的集线器接口假设:在不到一个基时钟周期的范围内(包括“离开计时(clock-to-out)”和调整时间的影响),所有信号均传播至相对的一端。然而,可能存在着某些其中所希望的一个集线器接口段的长度拥有一个时钟以上的端到端的延迟(即集线器接口较长)的应用(例如服务器系统)。另一方面,保持端到端的延迟为一个单一的时钟周期,这限制了时钟率,因而限制了带宽。因此,最好能开发出一种可增加集线器接口的长度,而又不会牺牲系统性能的方法和装置。

发明概述

根据一个实施方案,一个计算机系统包括一个一个代理、一个耦合于一个代理的点到点半双工接口、以及一个耦合于点到点半双工接口的第二代理。一个代理延迟对一个存取点到点半双工接口的请求的仲裁,直至在第二代理处接收到这一存取请求。第二代理延迟对一个存取点到点半双工接口的请求的仲裁,直至在一个代理处接收到这一存取请求。

附图简述

以下将通过实例对本发明加以说明,而且不局限于附图中的图,在这些附图中相同的参照数字表示类似的单元,其中:

图1是一个计算机系统的一个实施方案的方框图;

图2是经由一个集线器接口总线连接的一个存储器控制集线器(MCH)和一个输入/输出控制集线器(ICH)的方框图;

图3是接口控制器的一个实施方案的方框图。

图4是接口控制器的操作的一个实施方案的流程图;

图5是一个多时钟传播延迟接口的一个实施方案的时钟图;

图6是一个示范性的集线器接口的方框图;

图7说明的是接口的一个实施方案对事务进行分解的时序图;

图8说明的是根据一个实施方案对数据信息包进行仲裁与传输的时序图;

图9说明的是根据一个实施对数据信息包进行流控制的时序图;

图10是一个流程图,描述了根据本发明对流控制操作的步骤;

图11是说明了根据一个实施方案的物理信号接口;以及

图12是一个时序图,说明了根据一个实施方案的源同步计时。

发明详述

以下将描述一种用于经由一个集线器接口增加所耦合的部件之间的长度的方法和装置。在以下对本发明的详细描述中,将给出众多具体的细节,以提供对本发明的一个全面的了解。然而,对本领域的普通技术人员是显而易见的,可以在不使用这些具体细节的情况下,使本发明付诸实践。在其它的一些实例中,以方框图的形式,而非详细地描述了人们所熟悉的结构和设备,以避免对本发明的不明确的描述。

图1是一个计算机系统100的一个实施方案的方框图。计算机系统100包括一个耦合于总线105的中央处理器(CPU)102。在一个实施方案中,CPU102是包括PentiumII处理器系列和PentiumIII处理器的Pentium处理器系列中的一个处理器,这些处理器可以从加利福尼亚Santa Clara的英特尔公司购得。另外,也可以使用其它的CPU。

一个存储器控制器(MCH)110也耦合于总线105。MCH110可包括一个耦合于主系统存储器115的存储器控制器112。主系统存储器115存储由CPU102或任何其它包括在系统100中的设备所执行的数据和指令序列。在一个实施方案中,主系统存储器115包括动态随机存取存储器(DRAM)。然而,主系统存储器115也可以使用其它存储器类型加以实现。还可以把附加的设备耦合于总线105,例如多个CPU与/或多个系统存储器。

MCH110还包括一个耦合于一个图形加速器130的图形接口113。在一个实施方案中,通过一个加速的图形端口(AGP)把图形接口113耦合于图形加速器130,其中加速的图形端口根据加利福尼亚Santa Clara的英特尔公司所开发的一个技术指标2.0版本接口操作。另外,MCH110还包括一个集线器接口控制器120。接口控制器120用于经由一个集线器接口A把MCH110耦合于输入/输出控制集线器(ICH)140。ICH140把一个接口提供于计算机系统100中的输入/输出(I/O)设备。ICH140还包括一个用于向MCH110耦合的集线器接口控制器120。

ICH140可包括其它的接口控制器120,例如可把一个第二接口控制器120经由一个集线器接口B耦合于一个网络接口160。然而,本领域的普通技术人员将会意识到,也可以把其它的集线器接口控制器120耦合于其它的设备。

经由一个集线器接口耦合在一起的设备可以叫做集线器接口代理。就传送距离而言,在计算机系统100中离CPU102较近定位的一个集线器接口代理可以叫做一个上游代理,而离CPU102较远的代理叫做下游代理。例如,对于MCH110/ICH140集线器接口来说,MCH110是上游代理,而ICH140是下游代理。

ICH140还可以包括一个把接口提供于PCI总线的PCI桥接器146。PCI桥接器146在CPU102和外部设备之间提供一条数据路径。可以耦合于PCI总线142的设备包括一个音频设备150和一个磁盘驱动器155,然而,本领域的普通技术人员将会领悟到,也可以把其它设备耦合于PCI总线142。另外,本领域的普通技术人员还将会认识到,可把CPU102和MCH110相结合,以形成一个单一的芯片。另外,在其它的实施方案中,还可以把图形加速器130包含于MCH110中。

图2是经由集线器接口A耦合于ICH140的MCH110的一个实施方案的方框图。一个集线器接口是一个用于经由一个相当窄和相当宽的带宽的数据路径连接一个计算机系统,例如计算机系统100,的核心逻辑的主要标准部件的装置。在计算机系统100中的各部件之间,例如在MCH110和114之间,以点到点的方式实现连接。根据一个实施方案,使用一个基于信息包的事务分解协议实现跨越集线器接口的信息的传递。以下将更详细地对集线器接口加以描述。集线器接口包括一个双向数据路径251、一个停止信号253、一个请求A(RQA)信号254、一个请求B(RQB)信号255、一个时钟(CLK)信号257、以及数据选通脉冲(STROBE)信号258。根据一个实施方案,数据路径251为8个二进制位宽。然而,在其它实施方案中,数据路径251可以为任何宽度(例如16、32等)。停止信号253是一个用于流控制的双向信号。根据一个实施方案,把停止信号253从一个代理传输到第二代理,以指明一个代理的缓冲器为满,以及指明一个代理不能继续从第二代理接收数据。因此,第二代理停止对数据的传输。

RQA信号254和RQB信号255是请求信号,在正常的系统操作期间,对它们加以声明,以请求对集线器接口的控制。使用STROBE信号258把数据同步化于一个集线器代理,与此同时按源同步模式进行操作。根据一个实施方案,STROBE信号258可按4倍时钟信号的频率对数据进行计时。作为替代,STROBE信号258也可以操作在除4个之外的多个时钟信号上。例如,STROBE信号258可以运行在时钟信号257的8倍的速率上。而且,集线器接口A还可以包括其它信号路径,例如一个用于复位系统100的复位信号。

根据一个实施方案,可以把MCH110和ICH140这样地加以定位:在到达一个目的地之前,在集线器接口A上所传输的信号(例如RQA信号254、RQB信号255、以及DATA251等)可导致一个时钟传播延迟。在一个实施方案中,对于一个在跨越集线器接口A在MCH110和ICH140之间传送的信号来说,要求两个时钟周期。根据又一个实施方案,为了让远程代理不在一个禁止的时区中对信号进行取样,必须对延迟加以调整,以致于从附近的代理所传输的信号的离开计时、调整时间、以及传播延迟大于基时钟周期所倍增的传播延迟。使用一个,例如来自ICH传输的一个RQB信号255的基时钟周期,在MCH110处可以不被接收,直至在一个时钟周期已过期之后。

图3是用于实现一个具有信号传播延迟的集线器接口的接口控制器120A和120B的一个实施方案的方框图。接口控制器120A代表MCH110中的接口控制器,而接口控制器120B代表ICH140中的接口控制器。每一个接口控制器120包括一个延迟模块340和一个仲裁器350。延迟模块340在同一个接口控制器120中的仲裁器350接收仲裁请求之前,延迟这些仲裁请求。例如,接口控制器120B中的延迟模块340在接口控制器120B中的仲裁器350接收一个RQB255信号之前,延迟这一RQB255信号,并在接口控制器120A中的仲裁器350接收一个RQA254信号之前,接口控制器120A中延迟模块340延迟这一RQA254信号。在一个实施方案中,延迟模块340包括一或多个寄存器锁。然而,本领域的普通技术人员将会领悟到,也可以使用其它设备提供一个延迟。

根据一个实施方案,延迟模块340被配置一个等价于跨越集线器接口A的传播延迟的一个延迟。例如,如果为将在接口控制器120A中的仲裁器350处被接收的RQB信号255要求两个时钟周期(例如一个时钟传播延迟),那么在把RQB信号255传输给接口控制器120B中的仲裁器350之前,延迟模块340把RQB信号255延迟一个周期。

仲裁器350针对集线器接口A的拥有权进行仲裁。对一个RQA信号254或一个RQB信号255的声明是一个仲裁事件。在每一个仲裁事件中,接口控制器120A和120B中的仲裁器350审查RQA254和RQB255,并独立地和同时地确定集线器接口的拥有权。如以上所描述的。为了能够在每一仲裁器处同时审查RQA254和RQB255信号,传输请求信号的接口控制器120中的延迟模块340延迟信号,以补偿在另一仲裁器350处接收信号之前所导致的传播延迟。当集线器接口闲置时,拥有其所取样的所声明的请求信号(分别为RQA254和RQB255)的上行或下游代理中的一个个代理赢得拥有权。当集线器接口闲置时,如果上行和下游代理同时请求拥有权,那么最近最少得到服务的集线器代理赢得拥有权。

图4是用于实现一个多时钟传播延迟接口的接口控制器120的操作的一个实施方案的流程图。在处理方框410处,在一个接口控制器120处接收一个请求信号(例如RQA或RQB),以存取集线器接口A。在处理方框420处,把请求信号传输到耦合于集线器接口A的另一侧上的一个接口控制器120中的仲裁器350。在处理方框430处,在其中信号被启动的接口控制器中的延迟模块340处接收请求信号。在处理方框440处,在与跨越集线器接口A的传播延迟相关的必要的时钟周期延迟(例如一个时钟周期)之后,把请求在同一接口控制器120中从延迟模块340传输到仲裁器350,因此,在两个仲裁器350处及时地接收请求信号,以由相同的时钟前沿加以取样。

在处理方框450处,两个集线器接口控制器120中的仲裁器350进行仲裁,以判断请求是否得以批准。如上所述,仲裁器350独立地和同时地进行仲裁。在处理方框460处,判断哪一个发出请求的接口控制器120被授予存取权。在处理方框470处,如果存取得以批准,请求接口控制器获得对集线器接口A的控制。在处理方框480处,跨越DATA251上的集线器接口A把数据从发出请求的接口控制器120处加以传输。如果存取未得到批准,则把控制返回到处理方框450,在那里启动另一个请求。本领域的普通技术人员将会意识到,可以按不同的顺序处理处理方框420和430。例如,可以在处理方框420中的处理过程之前,执行处理方框430中所揭示的处理过程。另外,处理方框420和430也可以并行地执行。

图5是一个多时钟传播延迟接口的一个实施方案的时钟图。在时钟周期0期间,在接口控制器120A处声明要对集线器接口A进行存取的一个RQA信号254。直到时钟周期1,在接口控制器120B中的仲裁器350处不接收RQA信号254。相类似,直到时钟周期1,在接口控制器120A的仲裁器350处不接收RQA信号254,因为延迟模块340正在对RQA信号254加以延迟。因此,在仲裁器350处的同时和分离的仲裁出现在时钟前沿2。在仲裁之后,准许接口控制器120A存取集线器接口A,并在时钟周期2期间开始把数据向接口控制器120B传输。然而,在时钟周期3之前,在接口控制器120B处不接收数据,因为存在着一个时钟周期的传播延迟。

在时钟周期1期间,在接口控制器120B处声明一个存取集线器接口A的RQB信号255。然后,在时钟周期2期间,在接口控制器120A中的仲裁器350处以及在接口控制器120B中的仲裁器350处接收RQB信号255。因此,在两个仲裁器350处的同时和分离的仲裁出现在时钟前沿3处。然而,由于接口控制器120A拥有对集线器接口A的存取权,所以接口控制器120B不立即赢得仲裁。接口控制器120A维持对集线器接口A的控制,直至数据事务在时钟周期4期间已经完成。

然而,在时钟周期5之前,之所以不授予接口控制器120B对集线器接口A的存取权,是因为在时钟前沿5之前在接口控制器120B处未对RQA信号254进行取样解除声明。在时钟周期5期间,准许接口控制器120B存取集线器接口A,并开始向接口控制器120A传输数据。然而,在时钟周期6之前,在接口控制器120B处不接收数据,因为存在一个时钟周期的传播延迟。

尽管已参照MCH110和ICH140之间的集线器接口A对本发明进行了描述,但本领域的普通技术人员将会领悟到,本发明也能够在其它集线器接口(例如集线器接口B)上得以实现。另外,本领域的普通技术人员还将会意识到,本发明还可以在不包括集线器接口的仲裁系统中的接口上加以实现。

返回来参照图2,集线器代理在两条或两条以上的分离的总线与/或其它类型的通信线路之间提供了一个中央连接。通过使用集线器接口互连MCH110和ICH140,在I/O部件和CPU/存储器子系统之间提供了改进的存取(例如增加了带宽、实现了协议的独立性、以及减少了延迟)。另外,通过提供一个针对I/O标准部件的主干,集线器接口还可以改进计算机系统的可放缩性(例如,从一个基础桌面平台向高档桌面平台或工作站平台的升级)

为了提供改进的接口,集线器接口包括一个或一个以上的独特性能。在一个实施方案中,使用一个基于对事务进行分解的协议,把事务跨越集线器接口加以传递。例如,把一个请求信息包用于启动一个事务,如果需要的话,也可随后把一个分离的完成信息包用于终止一个事务。

图7说明了一个跨越集线器接口分解事务的一个实例。如图7中所示,最初,经由仲裁702,一个集线器代理获得对集线器接口的拥有权。在这一仲裁之后,存在一个请求阶段704。如果需要的话(例如在针对一个读事务返回数据的情况),一个完成阶段708将跟随请求阶段。然而,在完成阶段之前,响应集线器代理将会针对集线器接口的拥有权首先进行仲裁706。

在跨越集线器接口传输一个请求信息包和一个相应的完成信息包期间,可根据事先确定的排序规则跨越集线器接口传输分离的、无关联的信息包,如以下更详细地加以讨论的。例如,在从某一外设到存储器的一个读请求的情况中,提供所请求的数据可能会占用多个时钟周期才能使数据准备好以在一个完成信息包中加以返回。在为获得所请求的数据而占用的时间期间,可以把等待于MCH110的队列/管道中的分离的无关联的完成与/或请求信息包传输到ICH140。

而且,如图7中所示,把每一个请求或完成作为一个跨越接口的信息包加以传输。对于写类型事务来说,将把数据与请求关联起来。对于读类型事务来说,将把数据与完成关联起来。在某些情况中,对于在把完成信息包断开,有效地把其分解成多个完成信息包的场合来说,将会有一个以上的针对一个请求的完成。

另外,在一个实施方案中,集线器接口还使用了用于路由集线器接口交通并标识事务的属性的事务描述符。例如,可以把描述符用于把一个事务定义为等时的或异步的,因此,接下来可以根据一个预定义的协议对其加以处理。

而且,在一个实施方案中,由于经由一个源同步时钟模式传输数据信息包,所以接口的带宽部分地得以增宽。此外,在一个实施方案中,尽管使用了一个窄连接(例如,使用了较少的引腿/引出端),但集线器接口仍提供了增宽的带宽。

然而,在可选的实施方案中,可以使用以上所讨论过的所有良好特性中的部分特性实现一个集线器接口而不背离本发明的范围,而且把集线器接口用于互连一个芯片组中或在一个芯片组之外的桥接器与/或其它部件而不背离本发明的范围。事务、协议、以及物理层

为了更为清晰地加以描述,将分三个部分描述集线器接口:一个事务层、一个协议层、以及一个物理层。然而,层与层之间的不同之处将被视为说明性的而不是限制性的,因此不意味着是一个具体的、优选的

实施方案。事务层

在集线器接口的一个实施方案中,事务层支持跨越集线器接口所传输的分离的事务(可能包括一个或多个信息包)的路由。例如,在一个实施方案中,集线器接口的事务层生成事务描述符,并把它们包括在请求以及数据信息包中。可以把事务描述符用于支持一个集线器代理(例如MCH)中的队列之间的仲裁,与/或简化通过集线器接口的请求和数据信息包的路由。

例如,在一个实施方案中,事务描述符根据最初所提供的(在一个请求信息包中)路由信息,支持把完成信息包返回给请求启动代理的路由。事务描述符还有助于减少或可能最小化集线器代理中的信息包译码逻辑。

在可选的实施方案中,事务描述符还提供了根据请求的相应事务属性区分请求的处置的能力。例如,事务描述符中所标识的事务属性可以把操作标识为等时的(即,有规律地移动固定量的数据的操作,例如视频或音频的实时操作)。因此,操作,如由传输属性加以标识的,可根据一个相应的预确定的路由协议加以处置,以支持一种具体类型的操作(例如等时的)。

在一个实施方案中,事务描述符包括两个字段:一个路由字段以及一个属性字段。在可选的实施方案中,可以使用更多或更少的字段提供一或多个事务描述符功能而不背离本发明的范围。

在一个实施方案中,路由字段是一个6位的字段,用于信息包的路由,  如以下表1中所描述的。路由字段以及属性字段的大小在本发明的范围内是可变的。

              表1事务描述符的路由字段

   5                                      4                                     3               2                       1                    0

Hub IDPipe ID

如表1中所示,路由字段的3个位用于Hub ID。Hub ID标识启动了事务的集线器代理。在可选的实施方案中,为了提供一个超过8个的集线器接口层次结构,在路由字段中可以使用附加的位。

例如,在一个系统中,可以存在多个集线器接口层次结构,在这一情况中,处于这些层次结构顶部的代理应能够把完成向后路由到这一层次结构的基部。“层次结构”包括多个连接的集线器接口段,这些集线器接口段始于一个集线器接口“根”代理(例如一个MCH)。例如,计算机系统100可仅拥有一个集线器接口层次结构的系统。但图1说明了基于多个集线器接口层次结构的计算机系统的一个实例。在仅实现一个集线器接口层次结构的实施方案中,可以在Hub ID字段中使用一个为“000”的默认值。

路由字段的其余的3位可用于标识一个集线器接口代理中的内部管道/队列。例如,经由分离的“管道”,I/O控制集线器可以支持内部的USB(通用串行总线)主控制器交通和总线控制ID(BM-ID)交通。因此,Pipe ID可用于与由拥有不同属性的不同“管道”所启动的交通的服务代理(例如MCH)的通信,并可根据一个预先确定的协议对其加以处置。如果一个集线器接口代理未实现分离的内部管道,那么它可以使用PipeID字段中的一个为“000”的默认值。

在一个可选的实施方案中,事务描述符还包括一个属性字段。在一个实施方案中,属性字段是一个3位的值,它指出当一个目标集线器接口代理接收了一个事务时应如何处置这一事务。在某些情况中,属性字段有助于一个系统支持要求高的应用工作负载,这依赖于对具有特殊要求或其它不同特性的数据的移动和处理。

例如,属性字段可以支持设备之间的数据的等时移动,这一字段可由少数最近开发的外部总线加以使用。当数据流经I/O设备和CPU/存储器子系统之间的集线器接口时,需要维持这样的数据移动要求。

在可选的实施方案中,附加的事务属性可以包括区分“窥探的”交通和“非窥探的”交通的能力,在“窥探的”交通中超高速缓冲存储器的连贯性是由硬件(即芯片组)所加强实施的,而“非窥探”交通依赖于软件机制确保系统中数据的连贯性。而且,另一个可能的属性将是一个“显式可预取的”提示,以支持某种形式的读高速缓存,并允许更有效地使用主存储器带宽。排序规则

事务描述符还可用于支持跨越集线器接口所传输的事务之间的排序规则。例如,在一个实施方案中,按严格的排序(即先来先服务)执行具有相同事务描述符的事务。

可把具有相同路由字段但具有不同属性字段的事务互相相对地重新排序。例如,在一个实施方案中,相对于异步事务,不需要对等时事务进行严格的排序。

另外,在集线器接口的一个实施方案中,允许数据传输沿同一个方向中或沿相反的方向随请求得以进展。允许沿一个方向流动的读完成传送沿同一方向流动的读请求,  而且允许写请求传送沿同一方向流动的读请求。

然而,在可选的实施方案中,为跨越集线器接口传输的事务所制定的排序规则,在本发明的范围内是可变的。例如,在一个实施方案中,集线器接口实现了提供于外部部件互连(PCI)(版本2.2)中的排序规则,以确定沿相反方向中跨越集线器接口的交通流。协议层

在一个实施方案中,集线器接口使用了一个基于信息包的协议,具有两种类型的信息包:请求和完成。请求信息包用于每一集线器接口事务。完成信息包用于提出了某些要求的场合,例如要求返回所读的数据或认可某些类型的写事务(例如请求了完成的I/O写和存储器写)的完成的场合。通过事务描述符和排序把完成信息包与它们相应的请求信息包关联起来,如先前在关于事务层一节中所讨论过的。

另外,在一个实施方案中,集线器接口使用了一个对称的和分布式的仲裁协议。例如,每一集线器代理驱动一个请求信号,这一请求信号由附接于同一接口的另一个代理加以监视。未使用授权信号,各代理分离地确定接口的拥有权。

而且,在一个实施方案中,未使用显式的成帧信号。在给予某一代理接口拥有权的仲裁事件和该代理的传输的启动之间的存在着一个隐含的关系。在可选的实施方案中,可以使用成帧信号而不背离本发明的范围。

当一个拥有接口(例如在传输数据的过程中)的集线器接口代理通过解除对一个请求信号的声明而释放其对接口的控制时,一个信息包传输的端点出现。另外,在一个实施方案中,流控制还通过使用一个STOP信号重试或断开信息包加以实现,如以下更详细地加以描述的。信息包定义

在集线器接口的一个实施方案中,按一个多速率(例如,1x、4x、8x)的集线器接口时钟(HLCK)传输数据,在一个实施方案中,HLCK是一个由集线器接口所结合的、各集线器代理所共享的公共时钟。跨越集线器接口的一个数据信号路径(PD)传输数据,这一集线器接口拥有2的某一幂(例如,8、16、24、32)的“接口宽度”。因此,集线器接口可拥有变化的数据传输粒度(即传递宽度),取决于传递速率和数据信号路径的宽度。例如,在4x模式中的8位接口宽度的情况中,传递宽度为每一HLCK 32位。因此,通过改变传递速率与/或数据信号路径的接口宽度,可以放缩传递宽度(即每一HLCK所传输的字节的个数)。

另外,在一个实施方案中,信息包可大于传递宽度。因此,可按多个区段(即信息包宽度)传输信息包。在一个实施方案中,把信息包划分成双字大小(32位)的信息包宽度。

在一个32位传递宽度的情况中,开始于最小有效字节(字节0)并终结于最大有效字节(字节3),在接口上提交一个信息包宽度的字节,如以下表2中所示。在一个64位传递宽度(例如,4x模式中的一个16位宽的接口)的情况下,在数据信号的低字节(例如PD[0:7])上传输较低的有效双字(信息包宽度),在数据信号的高字节(例如PD[15:8])上并行传输较高的有效双字。以下表2中描述了这两个实例。

表2针对8位和16位接口宽度的字节传输顺序

集线器接口的协议层还负责成帧数据,因此,由集线器接口所实现的成帧规则定义了如何把一或多个信息包宽度映象于一组传递宽度。为了简化把信息包分析为信息包宽度的分析过程,在集线器接口的一个实施方案中,实现了以下的三个成帧规则:信息包的首部区段开始于一个传输宽度的一个字节;信息包的数据区段(如果存在的话)开始于一个传输宽度的一个字节;以及一个信息包占据整数个传递宽度。

信息包未消耗的任何可用的传输宽度可使用伪双字(DW)传输加以填充,并将为接收集线器代理所忽略。在可选的实施方案中,在本发明的范围中,集线器接口可使用更多、更少、与/或不同的三个成帧规则。

表3和表4设置如下,它们说明了以上针对64位传递宽度的情况所给出的成帧规则的一些实例。

表3使用32位寻址并包括3个双字数据的请求表4使用64位寻址并包括3个双字数据的请求请求信息包

以下将在表5和表6中描述根据一个实施方案的请求信息包的首部格式。在表5和6中所示的实例中,基首部为一个双字,具有32位寻址所需的一个附加的双字,以及64位寻址模式所需的两个附加的双字。首部的字段,如表5和6中所描述的,将在以下的表中加以描述。

在集线器接口的可选的实施方案中,包含在请求信息包的首部中的字段是可变的而不背离本发明的范围。例如,首部可以包括附加的字段、较少的字段、或用于取代以下所描述的字段的不同的字段。而且,字段的编码也是可变的而不背离本发明的范围。

表5针对32位寻址的请求信息包首部格式所传输的最后一个字节           所传输的第一个字节

表6针对64位寻址的请求信息包首部格式所传输的最后一个字节           所传输的第一个字节Transaction Descriptor(事务描述符)

Transaction Descriptor Routing and Attribute(事务描述符路由和属性)字段,如先前所描述的。rq/cp

在这一位置,用′0′来识标识请求信息包,以及用′1′来标识完成信息包。cr

要求完成(′1′)或不要求完成(′0′)。r/w

Read(′0′)或Write(′1′)。这一字段表明,数据是否将包括一个完成(读)或一个请求(写)。Address Format(寻址格式)(af)

寻址格式既可为隐含的(′0′),也可为32/64位(′1′)的。Lock(锁)(1k)

是一个标志,表明请求是一个锁定的序列的一部分。在一个锁定的序列中的请求和完成使这一位被设置。集线器代理,不包括锁的,将忽略这一标志,并将用′0′填充这一字段。Data Length(数据长度)

以双字形式给出数据长度,对其编码,以致于所代表的双字的个数为1+这一个数字,因而″000000″代表一个双字。Space(空间)

这一字段为请求选择目标空间类型。在一个实施方案中,可能的目标空间包括存储器(″00″)以及IO(“01”)。1st DW BE

字节启动,用于启动存储器或IO的任何读或写请求的一个个双字。字节启动为低态有效。如果对一个请求来说仅存在一个双字,则使用这一字节启动字段。在一个实施方案中,在未进行字节启动的情况下发布一个存储器或IO读或写请求将是非法的。Last DW BE

字节启动,用于启动任何读或写请求的最后一个双字。字节启动为低态有效。如果对一个请求来说仅存在一个双字,则这一字段必须是不活跃的(“1111”)。字节启动可以是不连续的(例如“0101”)。这一字段永远不能随特殊周期一起使用,因为它覆盖了“Special Cycle Encoding(特殊周期编码)”字段。Addr[31:2]

生成32位地址,如针对同一周期类型在PCI上那样。包括这一双字是为了32位和64位寻址模式(而不是为了隐含的寻址模式)。Extended Address(扩展的寻址)(ea)

指明是32位寻址(′0′)还是64位寻址(′1′)。Config Type(配置类型)(ct)

仅针对配置周期,这一位用于指明类型0(′0′)或类型1(′1′)配置周期类型。因为将总是使用32位寻址模式执行配置周期,所一这一位由″Extended Address″位所覆盖。Addr(地址)[63:32]

针对64位寻址模式的高地址位。包括这一双字是为了64位寻址模式。完成信息包

根据一个实施方案,以下在表7中描述了完成信息包的首部格式。在一个实施方案中,首部为一个双字。首部的字段,如表8中所示,将在以下的表中加以描述。

然而,在集线器接口的可选的实施方案中,包含在针对完成信息包的首部中的字段可以是不同的而不背离本发明的范围。例如,首部可以包括附加的字段、较少的字段、或用于取代以下所描述和所说明的字段的不同的字段。而且,字段的编码也可以不同而不背离本发明的范围。

表7完成信息包首部格式所传输的最后一个字节    所传输的第一个字节 31    30    29  28     27      26  25  24|23  22  21      20  19     18   17  16  |15  14    13    12    11    10    9     8   | 7   6   5   4   3   2   1   0

rqcpr/wRc.scrvcd1kTransaction Desc.Routing FieldRe-scrvedTD AttrRsvdData Length(DW)Comptction Status
Transaction Descriptor(事务描述符)

Transaction Descriptor Routing and Attribute(事务描述符路由和属性)字段,如先前在“事务”一节中所讨论过的。rq/cp

在这一位置,用一个′1′来标识完成信息包。r/w

读(′0′)或写(′1′)。这一字段表明,数据是否将包括一个完成(读)或一个请求(写)。Lock(锁)(1k)

是一个标志,表明完成是一个锁定的序列的一部分。在一个锁定的序列中的请求和完成将使这一位被设置。代理,不包括锁的,忽略这一标志,并将用′0′填充这一字段。Data Length(数据长度)

以双字形式给出数据长度,对其编码,以致于所代表的双字的个数为1+这一个数字。因而,″000000″代表一个双字。Completion Status(完成状态)

指明使用预先确定的完成状态。Reserved(保留的)

把所有保留的位设置成′0′。

在集线器接口的一个实施方案中,存储器读的完成可以提供少于所请求数据的全部数量的数据,只要整个请求最终得以完成即可。同样,对于存储器写的完成,也可以指明少于已经完成的整个请求。可以这样做是为了满足针对某一具体平台的一个特定集线器接口延迟的要求。

另外,对于一个要求完成的请求来说,在一个实施方案中,发出请求者保留关于这一请求的信息,可以把关于这一请求的信息存储在发出请求的集线器代理的一个缓冲器中。例如,这一信息可以包括事务描述符、信息包的大小,锁的状态、路由信息等。而且,当接收完成(一个或多个)时,发出请求者把完成(一个或多个)与相应的请求进行匹配。在多个完成的情况中,发出请求者针对原始请求累计所完成的数据的数目,直至原始的请求全部得以完成。接口仲裁和信息包成帧

在集线器接口的一个实施方案中,当接口处于闲置状态时,把来自连接于接口的每一集线器代理的一个请求的声明视为一个仲裁事件。发出请求的一个个代理赢得接口的拥有权。当集线器接口处于闲置状态时,如果各代理同时请求拥有权,那么最近最少得到服务的集线器代理赢得拥有权。在一个实施方案中,所有集线器代理追踪最近最少得到服务的状态(例如,通过一个内部寄存器的一个状态标志)。在可选的实施方案中,可以在本发明的范围内使用可选的仲裁规程。

一旦某一集线器代理获得了接口的拥有权,它将继续拥有这一接口直至其完成了它的事务,或直至一个分配的时间带宽到期。例如,在一个实施方案中,在每一集线器代理中提供了一个时间片计数器,用以控制带宽分配,并用以限制一个代理的接口的拥有权限。对于附接于同一接口的各集线器接口代理来说,分配给一个集线器代理的时间(即时间片值)可以不同也可以相同。当获得接口的拥有权时,启动时间片计数器,并对集线器接口基时钟周期进行计数。

在一个实施方案中,每一集线器代理负责管理其自己的时间片分配。因此,在一个实施方案中,可以经由一个集线器接口命令寄存器针对每一集线器代理中的每一接口对时间片值进行编程。

图8说明了针对代理A和代理B之间的集线器接口进行仲裁以及两个信息包的传递的一个实例。这一实例说明了非闲置接口状态时所进行的仲裁,然后接口返回到闲置状态。而且在所说明的这一实例中,接口使用了一个具有8位的数据信号路径(PD)的4x有数据传递模式。在图8中所说明的实例中,代理A是最近最多得到服务(MRS)的代理。因此,代理A声明其外部请求信号(RQA),并在离开时钟前沿1启动信息包传输之前,对在同一前沿上的代理B的请求信号(RQB)的状态(其被说明为不活跃的)进行取样。

在一个实施方案中,在所传输的数据(即来自代理A的数据)内部地可得于接收器(即代理B)之前,从时钟前沿3开始,存在着两个时钟的延迟。一个个信息包包括两个双字802和804,并要求两个基时钟,以按4x模式传输。第二个信息包为三个双字806、808以及810,因此在4x模式中需要三个基时钟。流控制

在一个实施方案中,因缺乏请求队列空间、数据缓冲器空间、或因其它原因,接收代理可能要重试或断开信息包。在一个实施方案中,使用一个STOP信号实现流控制。

图9说明了使用STOP信号的一个实例。如图中所说明的,代理A声明其外部请求信号(RQA),并在离开时钟前沿1启动信息包传输离之前,对在同一前沿(例如时钟前沿1)上的代理B的请求信号(RQB)的状态(其被说明为不活跃的)进行取样。

在一个两个时钟的延迟之后,从时钟前沿3开始,从代理A所传输的数据内部地可得于代理B处的接收器。在一个实施方案中,在接收了从代理A所传输的数据之后,对于代理B来说,是在时钟前沿4处通过声明STOP信号规定流控制的一个个机会如图9中所说明的。

另外,当PD信号的拥有权从一个集线器代理变至另一个集线器代理时,在预先确定的若干个时钟之后,STOP信号的拥有权也将被交换。而且,在一个实施方案中,将根据基时钟对STOP信号进行取样,这些基时钟相应于一个信息包宽度的最终的传递。例如,在4x模式中(使用一个8位宽的PD信号),每一基时钟对STOP信号取样一次。然而,对于1x模式来说,则在每第4个时钟对STOP信号取样一次(其中把事务的开始作为一个参照点)。

在接收了一个STOP信号之后,接收STOP信号的集线器代理判断它是否可以重试发送附加的信息包。图10描述的是,根据一个实施方案,在接收了一个STOP信号之后,一个集线器代理判断其是否可以重试发送一个信息包所执行的步骤的流程图。

在步骤1002,一个当前正在传输信息包的集线器代理接收一个STOP信号。作为响应,在步骤1004,接收STOP信号的集线器代理通过对其它集线器代理请求信号(例如RQB)进行取样,判断是否另一个代理(它激活了STOP信号)正在请求该接口的拥有权。

如果STOP信号的接收方判断出发送STOP信号的代理未正在请求该接口的拥有权,那么在步骤1006,在从STOP恢复之后,接口的当前拥有者可着手传输一个信息包。另一方面,如果它判断出激活了STOP信号的代理正在请求拥有权,那么在步骤1008,当前拥有者判断其时间片是否已到期。

对于接口的当前拥有者来说,如果时间片已到期,那么在步骤810当前拥有者释放拥有权。如果针对当前拥有者的时间片没有到期,那么当前拥有者可以传输一个具有一个不同于所中断的信息包的属性的信息包。更具体地说,在步骤1012,当前拥有者判断它是否拥有一个需要加以传输的并具有一个与任何已经在当前仲裁期间(即当前拥有者的使用权期间)内已重试过的信息包的属性类型不同的属性类型的信息包。

如果当前拥有者确实拥有一个具有一个不同属性的信息包,那么在步骤1014,当前拥有者可着手传输这一信息包。否则,当前拥有者释放对这一接口的拥有权。物理接口

在一个实施方案中,集线器接口实现了操作在66MHz或100MHz基频率上的一个物理接口。也可以使用其它的频率。另外,在一个实施方案中,物理接口使用了一种源同步(SS)数据传递技术,这一技术可以为4时钟的,以按基集线器接口时钟的4倍传递数据。因此,在一个拥有一个操作在66MHz或100MHz的基频率上的8位的数据接口(例如PD)的实施方案中,可以分别达到266兆字节/每秒(MB/s)或400MB/s的带宽。

而且,在一个实施方案中,集线器接口支持1.8V的电压操作,并基于互补型金属氧化物半导体(CMOS)工艺发射信号。然而,在一个可选的实施方案中,基于可选的信号处理而不背离本发明的范围,这一接口可以操作在可选的频率与/或可选大小的数据接口上,以提供不同的带宽,并支持可选的操作电压。外部信号定义 

图11说明了根据一个实施方案的两个集线器代理之间的集线器接口的物理信号接口。如图11中所描述的,集线器接口物理接口使用了一条双向8位的数据总线(PD[7:0]),具有用于数据计时的一个不同的源同步选通脉冲信号对(PSTRBN,PSTRBP)。在一个可选的实施方案中,可以加宽接口。例如,如图11中所示,也可以把一条附加的8位数据总线(PD[15:8])随源同步选通脉冲信号对(PSTRBN,PSTRBP)的一个附加对一起加以使用。而且,在一个可选的实施方案中,可以使用单向的数据信号。

另外,一个单向仲裁信号把每一代理连接于另一代理(RQA,RQB),接收代理使用一个双向的STOP信号控制数据流,如先前加以描述的。附加的接口信号包括系统的复位(Reset)、公共时钟(HLCLK)、以及电压参照(HLVREF)信号。另外,还包括针对每一集线器代理(ZCOMP)的信号,以把每一集线器代理的驱动器输出阻抗匹配于相应的值,以补偿制造和温度方面的偏差。

以下将在表8中进一步描述图11中所说明的接口中所示的物理信号。在集线器接口的可选的实施方案中,包含在物理接口中的信号可以不同而不背离本发明的范围。例如,物理接口可以包括更多、更少或与图11中所示信号不同的信号,将在表8中对此进一步加以描述。

                    表8针对8位代理的集线器接口信号

  名称位(引出端)类型时钟模式描述PD[7:0]8 ASTS1SS2信息包数据引腿。在一个实施方案中,当处于闲置状态时,在驱动数据接口的最小电压值上的活跃的维持者占有这一数据接口。
表8(续)PSTRBP      PSTRBN RQB      RQA STOP HLCLK   RESET#1      1 1      1 1 1   1 ASTS       ASTS  I/O       I/O  ASTS  I    I SS       SS  CC3       CC  CC  N/A    CC负PD接口选通脉冲(默认电压电平=VISSHL)和正PD接口选通脉冲(闲置电压电平=VCCHL)共同提供了PD[7:0]接口上的4X和1X数据传递。正在提供数据的代理驱动这一信号。在接收方应对PSTRBN和PSTRBP充分地不同地加以感应。正PD接口选通脉冲,参见以上对PSTRBP的描述。来自代理A(从A输出,输入到B)的高态有效,以获得集线器接口的接口的拥有权。当代理A拥有可发送的数据时,声明RQA,而且当代理A的所有数据都已被发送出去或代理A判断出它应该释放这一接口时,放弃对RQA的声明。Reset电压值为VSSHL。来自代理B(从B输出,输入到A)的请求。参见以上对RQa的描述。用于流水线性的流控制,以重试或继开信息包。集线器接口基时钟,在一个实施方案中,为66MHz或100MHz。这为公共时钟信号提供了计时信息(以下将进一步加以描述)。对集线器接口处理4的低态有效重试指示

表8(续)

 HLVREF   HLZCO MP VCCHL VSSHL 合计:1  1 44251  I/O 电源地线 N/A   N/A  N/A N/A针对差分输入的电压参照(VCCHL/2)。在一个实施方案中,通过一个分压器在母板上生成这一电压。提供阻抗补偿。 1.8V

1ASTS信号=活跃维持的三态

2SS=源同步模式信号

3CC=公共时钟模式信号

在一个实施方案中,Reset是一个系统范围的信号。它是来自系统的某一部件的一个输出和向其它部件(一个或多个)的一个输入。而且,Reset相对HLCLK是异步的。公共时钟传递模式操作

在一个实施方案中,许多跨越集线器接口传输的信号根据一个公共时钟模式加以传输。更具体地说,经由公共时钟模式传输的信号的计时参照于一个单一的时钟(例如,集线器接口时钟)。在可选的实施方案中,可以把这些信号与一个系统时钟相关联,外部于集线器接口代理。而且,在一个系统中可存在一个以上的集线器接口段,在这一情况中,可以针对不同的段使用不同的基时钟。例如,一个部件可以既实现一个66MHz的基集线器接口,也可以实现一个100MHz的基集线器接口。源同步传递模式操作

在一个实施方案中,使用一个源同步时钟模式传输信息包/数据,这一模式提供了一种用于倍增数据的数据传递率的方法。例如,在一个使用具有一个8位数据信号路径的4X源同步计时模式的实施方案中,传输一个双字(即4个字节)仅要求一个集线器接口时钟周期(HLCK)。另外,使用1X源同步计时模式在一个8位数据信号路径上传输一个双字将要求一个完整的集线器接口时钟周期才能完成。

更具体地说,在源同步传递的一个实施方案中,根据选通脉冲和数据之间的一个预先确定的计时关系,随一个数据传输一起发送选通脉冲(例如PSTRBN/PSTRBP)。接下来,使用选通脉冲把数据锁于接收集线器代理中。

更具体地讲,在一个实施方案中,接收集线器代理把选通脉冲PSTRBP/PSTRBN的前沿用于标识正在被跨越数据信号路径传递的数据的提交和计时。例如,如图12中的时序图中所说明的,在一个实施方案中,一个数据传递对应于PSTRBP的上升前沿和PSTRBN的下降前沿。一个第二数据传递对应于PSTRBN的上升前沿和PSTRBP的下降前沿。

另外,在一个实施方案中,如果在图12中进一步加以描述的,选通脉冲PSTRBP/PSTRBN的传输前沿位于数据有效窗口的中心附近。因此,把一个输入数据取样窗口给予接收代理,以适应不同的系统计时偏移。而且,在一个实施方案中,接收集线器代理把选通脉冲前沿之前的一个最小有效数据(tDvb)以及选通脉冲前沿之后的一个最小有效数据(tDva)用于标识和锁住所传输的数据。一旦接收集线器代理锁住流入的数据,则此后占有这一数据短暂的一段时间,以在集线器代理中把这一数据向前传送之前,把这一数据与集线器接口时钟(HLCK)重新加以同步。

事实上,在阅读了以上的描述后,对本领域的普通技术人员来说显而易见地应当理解,可以对本发明进行一系列的变更与修改。所说明和所描述的任何具体的实施方案均为说明性的而非限制性的。因此,对各实施方案具体细节的引用并非旨在对权利要求的范围加以限制,而只有权利要求本身才是对本发明特性的陈述。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号