CN1302020A - 控制芯片组与其间的数据事务方法 - Google Patents
控制芯片组与其间的数据事务方法 Download PDFInfo
- Publication number
- CN1302020A CN1302020A CN 99125637 CN99125637A CN1302020A CN 1302020 A CN1302020 A CN 1302020A CN 99125637 CN99125637 CN 99125637 CN 99125637 A CN99125637 A CN 99125637A CN 1302020 A CN1302020 A CN 1302020A
- Authority
- CN
- China
- Prior art keywords
- write
- data
- read
- control chip
- affairs
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
一种控制芯片组与其间的数据事务方法,控制芯片组中各控制芯片内部队列的数据缓冲器具有固定大小与数量,且芯片间发出读写确认命令的顺序完全依照发出读写命令的顺序来回应,使控制芯片完全可以掌握另一控制芯片内部队列中缓冲器的使用情形。控制芯片组间的总线的判优方法,设定某一控制芯片平常掌握芯片间总线的控制权,但另一控制芯片却享有较高的总线优先权,搭配没有等待周期的芯片间总线规格。使控制芯片组数据交易效能提高,简化控制芯片组内的信号线的种类与数量。
Description
本发明涉及一种芯片组,特别涉及一种计算机系统中的控制芯片组、控制芯片组内芯片间的数据事务方法以及控制芯片组内芯片间总线的判优方法。
图1所绘示的便是在计算机结构中使用PCI系统的一种结构。中央处理器10经由主桥接器(host bridge)12耦接到PCI总线14。PCI总线14则可以耦接多个PCI相容的周边装置的主控器(master),其可以如图所示的图形界面(graphic adapter)16a、扩充总线桥接器(expansion bus bridge)16b、网路界面(LAN adapter)16c与小型计算机系统主总线界面(SCSI host busadapter)16d等等。每一主控器均可以送出要求信号(request,REQ)要求使用PCI总线14,而主桥接器12中的判优器(arbiter)则可送出同意信号(grant,GNT)给主控器,同意其使用PCI总线14。
PCI相容装置(如主控器或计算机芯片组中的北桥)之间的数据传送主要由下列的界面控制信号所控制。周期帧(cycle frame,FRAME)是由起始器(其可以是主控器或北桥)所送出,用以指示一存取操作的开始与持续期间。FRAME信号送出时,表示通过PCI总线的数据事务(transaction)开始进行,当FRAME信号维持在低电平则表示数据事务持续进行。此时,地址总线AD便会在地址周期期间送出有效地址(valid address),同时会在命令/字节致能(command/byte enable,CBE[3:0])线送出有效的总线命令(满足PCI规格),用以对目标装置指出起始器所要求的数据事务型态,其中命令/字节致能线是以4位编码成16种不同的命令,其在PCI规格中有详细定义。紧接所送出的有效地址后,地址总线AD便送出要传送的数据,此时期称为数据周期,同时在CBE线送出编码后总线命令的字节致能信号,藉以传送数据。当FRAME信号停止送出,就表示事务状态为最后一笔数据传送,或是已经完成数据传送。起始器备妥信号(initiator ready,IRDY)与目标装置备妥信号(target ready,TRDY),两者配合使用,用以分别指示起始装置与目标装置已经备妥而可以进行数据传送。在一读取动作进行时,IRDY信号表示起始器准备好接收数据;而在进行一写入操作时,TRDY信号表示目标装置准备好接收数据。停止信号(stop,STOP),用以指示目标装置要求起始器停止目前的数据事务行为。
参照图2,其绘示以PCI总线界面进行一读取操作进行时的操作时序图。以PCI总线进行并完成数据转移的期间称为一总线事务周期(bustransaction)20,其包括一个地址周期(address phase)22与多个数据周期(dataphase),如24a、24b与24c。每一个数据周期24a/b/c又分别区分为等待周期(wait cycle)26a/b/c与数据转移周期(data transfer cycle)28a/b/c。接着配合图2的时序图,以一读取操作来做为PCI系统操作的简单说明以及前文所述的PCI规格控制信号的作用。
在周期T1时,起始器(主控器)送出REQ信号,以要求主控PCI总线,此时如果没有其他更高优先权的装置要求使用PCI总线,则在周期T2时,主桥接器(判优器)送出GNT信号,以允许起始器主控PCI总线,周期T3时,起始器送出FRAME信号,表示一数据转移将开始进行,并在AD总线送出开始地址(start address),用以指定一目标装置,同时在CBE线送出一读取命令。紧接着送出的读取命令,CBE线会送出字节致能信号(byte enable),此字节致能信号在整个数据周期期间(包括24a、24b与24c)会一直持续送出。在周期T4时,起始器送出备妥信号IRDY,表示可以开始收送数据,然此时目标装置并未能备妥,此时期为数据周期24a的等待周期26a,是起始器等待目标装置将数据备妥。在周期T5时,目标装置已经备妥并且送出备妥信号TRDY,因此在IRDY与TRDY信号均送出的数据转移周期28a期间,起始器从目标装置读取数据。目标装置在周期T6结束送出TRDY信号,以表示结束数据传送,并且开始准备第二笔数据,此时为数据周期24b的等待周期26a。在周期T7时,TRDY再度送出,表示数据已经备妥,并在IRDY与TRDY信号均送出的数据转移周期28b期间,起始器从目标装置读取数据。当起始器来不及读取数据时,起始器于周期T8结束送出IRDY信号,此时因为TRDY信号仍送出,所以此等待周期26c是由起始器所发动。等起始器备妥后,于周期T9再送出IRDY信号,此时在IRDY与TRDY信号均送出的数据转移周期28c期间,起始器从目标装置读取资料。由于起始器在周期T9时,就已知道不再需要读取数据,故起始器结束送出FRAME信号以及结束送出REQ信号,在周期T10时,判优器结束送出GNT信号。至此,完成一读取操作。
如上所述,在PCI规格中为了要完成PCI规格的数据事务,必须使用繁复的控制信号、等待状态与判优程序等,而PCI所规定的信号至少有45-50个信号脚。目前的个人计算机内的结构与图1所绘示的系统非常相似,其中主桥接器12就是主机板内控制芯片组的北桥芯片,而南桥芯片就包括扩充总线桥接器16b,个人计算机系统中的南桥是一个主要且必然存在的主控器。至于个人计算机系统中的图形界面附加器,并未连接到PCI总线,而是通过一绘图加速端口(accelerated graphic port,AGP)界面连接到北桥芯片。
然而在一般控制芯片组内芯片间的数据事务,往往不需要利用到一般多用途总线如此复杂的功能程序,例如:主机板控制芯片组内部的南北桥的数据事务,并不需要用到完整PCI总线如此复杂的程序,而此种复杂的程序为了确保能适用多种应用环境,多半牺牲了许多效能特性。且随着高度集成化的趋势,任一控制芯片可能会合并更多功能,例如CPU与北桥芯片合并为一个芯片,抑或是控制芯片组本身合并成一个芯片,使芯片包装上的接脚变成一个非常宝贵的资源,必须尽量减少以降低控制芯片的成本。因此为了加速控制芯片组内部之间的数据事务,且节省芯片接脚的资源,一种简化但仍满足控制芯片间数据事务的特殊总线规格是需要的。例如:南北桥间设计一种简化多个信号线,快速的总线规格,且此总线规格在芯片内部处理必须尽量近似一般PCI规格,以与芯片中其他模组相容,避免控制芯片做过多修改。
因此,本发明提出一种控制芯片组、控制芯片组内芯片间的数据事务方法以及控制芯片组内芯片间总线的判优方法,用以提高控制芯片组数据交换的效能,并简化控制芯片组内的信号线的种类与数量。
本发明提出一种控制芯片组及控制芯片组内芯片间的数据事务方法,使控制芯片组内部控制芯片间传送数据,可连续传送多笔命令或数据,没有任何等待周期,也不会有停止或重试(retry)的情形,可节省使用总线的时间,提高传输效益。
本发明提出一种控制芯片组及控制芯片组内芯片间的数据事务方法,可节省总线中有关等待状态的信号线、有关数据事务周期长度的信号线以及有关停止重试通信协定的信号线等。
本发明提出一种控制芯片组之间总线的判优方法,可缩短要求总线时的判优时间。
本发明提出一种控制芯片组之间总线的判优方法,可节省有关总线同意(grant)的信号线。
本发明提供一种控制芯片组,包括:一第一控制芯片,包括:一第一数据送收器,耦接至一芯片间总线,用以通过该芯片间总线,接收与发送数据信号,来完成多个写入事务;一读/写数据队列,耦接至该第一数据送收器,用以暂存该些读出/写入事务的数据;一读/写事务队列,耦接至该第一数据送收器,用以暂存该些读出/写入事务的数据长度及读出/写入地址;以及一目标控制器,耦接至该读/写数据队列及该读/写事务队列,该目标控制器根据目前该读/写事务队列中最先存入的读出/写入事务所对应的读出/写入地址以及在该读/写数据队列中所对应的数据,将即将读出/写入一目标装置的数据送出后,该第一数据送收器送出一读出/写入确认信号,而目前该读/写事务队列中最先存入的读出/写入事务所对应的读出/写入地址以及在该读/写数据队列中所对应的数据都被释放;以及一第二控制芯片,经由该芯片间总线耦接至该第一控制芯片,包括:一读/写缓冲器大小寄存器,用以存储该读/写数据队列所可容纳数据的总数;一读/写缓冲器计数寄存器,用以存储该读/写事务队列所可容纳读出/写入事务的总数;一第二数据送收器,耦接至该芯片间总线,用以通过该芯片间总线,接收与发送数据信号,来完成该些读出/写入事务,当该第二数据送收器收到该读出/写入确认信号后,送出一读出/写入成功释放缓冲器信号;一写事务产生器,耦接至该第二数据送收器,用以产生该些读出/写入事务的数据长度,读出/写入地址及数据;一读/写事务记录电路及队列,耦接至该第二数据送收器及该读/写事务产生器,用以暂存该些读出/写入事务的数据长度,并根据该读出/写入成功释放缓冲器信号,来计算目前该第一控制芯片中该读/写数据队列的一剩余/可用读/写缓冲器数据个数及该读/写事务队列的一剩余/可用读出/写入事务个数;以及一读/写比较器,耦接至该第二数据送收器、该读/写缓冲器大小寄存器、该读/写缓冲器计数寄存器及该读/写事务记录电路及队列,用以根据该将用读/写缓冲器数据个数、该将用读出/写入事务个数、该读/写事务队列所可容纳读出/写入事务的总数及该读/写数据队列所可容纳数据的总数,来通知该第二数据送收器送出新的读/写入事务相关的数据信号。
本发明藉由控制芯片组中各控制芯片内部队列的数据缓冲器具有固定大小与数量,且芯片间发出读写确认命令的顺序完全依照发出读写命令的顺序来回应,使控制芯片完全可以掌握另一控制芯片内部队列中缓冲器的使用情形,每一控制芯片发出的命令时,其相关数据必须先准备好,亦即使控制芯片组之间的所有事务情况透明化,因而可节省总线中有关等待状态的信号线、有关数据事务周期长度的信号线以及有关停止重试通信协定的信号线等。并且可连续传送多笔命令或数据,没有任何等待周期,也不会有停止或重试的情形发生,可节省使用总线的时间,提高传输效益。
本发明的控制芯片组间的总线的判优方法,设定某一控制芯片平常掌握芯片间总线的控制权,但另一控制芯片却享有较高的总线优先权,搭配没有等待周期的芯片间总线规格,就不需要GNT信号线,可快速无误的判优总线的使用权归属,缩短判优的时间,并因为第二控制芯片组的事务要求总是被同意,近而提高整个传输效益。
为让本发明的上述目的、特征、和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下:
图1绘示一种公知在计算机结构中使用PCI总线系统的结构示意图;
图2绘示一PCI系统的主控器进行读取操作的时序图,用以简单说明PCI系统的各控制信号;
图3绘示依据本发明的一较佳实施例的一种控制芯片组的方块示意图;
图4绘示依据本发明的一实施例中,传送数据位时间(bit time)与总线时钟脉冲信号以及触发信号线之间的时序关系图;
图5A绘示依据本发明的一较佳实施例的一种控制芯片组,其中有关写入事务的内部结构方块示意图;
图5B绘示依据本发明的一较佳实施例的一种控制芯片组,其中有关写入事务的相关时序图;
图6A绘示依据本发明的一较佳实施例的一种控制芯片组,其中有关读出事务的内部结构方块示意图;以及
图6B绘示依据本发明的一较佳实施例的一种控制芯片组,其中有关读出事务的相关时序图;
为了提出一种控制芯片组、控制芯片组内芯片间的数据事务方法以及控制芯片组内芯片间总线的判优方法,能提高控制芯片组数据事务的效能,并简化控制芯片组内的信号线的种类与数量,亦即简化控制芯片间的总线。本发明以计算机主机板内南桥与北桥所构成的控制芯片组为例,重新定义多个命令信号,在此称为高传输存储器连结(High Through-putMemory Link简称HTML)来化简原先复杂的PCI总线信号。在此较佳实施例中,原先的南桥与北桥之间的信号线需要45条信号线,本发明以15个命令信号线来取代原先的PCI总线信号线。
参照图3与表一,其中图3是依据本发明的一较佳实施例的一种控制芯片组的方块示意图,图3亦绘示控制芯片组中的南桥与北桥间的信号线;而表一详细说明这些信号线的意义。由图3与表1可知,本发明的控制芯片组包括南桥30与北桥32两控制芯片,南桥30与北桥32之间原先的45个信号接脚简化为15个,多余的接脚便可以提供做为其他用途,以增进控制芯片组的功能。
如图3与表一所示,南桥30与北桥32之间,保留原先PCI总线协定规格所定的地址数据总线(AD bus),但将其缩减为仅有8条双向信号线,其他如CBE、FRAME、IRDY、TRDY、STOP、DEVSEL、REQ以及GNT等信号线,简化为一条双向位致能BE信号线,以及为由南桥30所驱动的上行链路命令(up link command)UPCMD、上行链路触发(up linkstrobe)UPSTB;还有由北桥32所驱动的下传链路命令(down linkcommand)DNCMD、下传链路触发(down link strobe)DNSTB信号线等。南桥30与北桥32各驱动一条独立的命令信号线,代表此一较佳实施例具有全双工命令传送功能,能各自随时发出总线命令。且当发出总线命令的同时如果取得总线使用权,就可以在地址数据总线上发出地址,并在BE信号线发出目前命令的长度信息,或者在地址数据总线上送出数据,并在BE信号线发出这笔数据的字节致能信号。
表一
信号 | 驱动者 | 说明 |
CLK | 66Mhz的时钟脉冲信号 | |
DNSTB | 北桥 | 下传链路触发 |
UPSTB | 南桥 | 上行链路触发 |
DNCMD | 北桥 | 下传链路命令 |
UPCMD | 南桥 | 上行链路命令 |
BE | 北桥/南桥 | 字节致能 |
AD[7:0] | 北桥/南桥 | 地址/数据总线 |
VREF | 参考电压 | |
COMP | 阻抗比较 |
参照图4,其定义出本发明任一数据线传送数据位时间与总线时钟脉冲信号以及触发信号线之间的时序关系。由图可以看出,一个时钟脉冲周期包含两个触发STB的时钟脉冲信号,亦即在上行链路触发信号线以及下传链路触发信号线致动时的运作频率是2倍于时钟脉冲信号线上的时钟脉冲频率。利用触发信号的上升与下降边缘共可以定义出四个位时间0~3,利用此四个位时间共可取得4个位的数据,并可进行总线命令的编码。因此8条数据线,每一时钟脉冲周期可取得32位的数据,其效果等于在PCI总线中,同时有32条数据线在传送数据般。而如BE信号线代表长度信息时,可以在一个时钟脉冲周期得出1-16(4个位)数据长度信息。
上行链路命令UPCMD与下传链路命令DNCMD定义出各种不同的数据事务型态。由南桥30所驱动的上行链路命令UPCMD包括:北桥到南桥读取确认命令C2PRA、北桥到南桥写入确认命令C2PWA、南桥到北桥读取命令P2CR、南桥到北桥写入命令P2CW等。其与位时间的编码关系则如表二所示,请注意REQ总线要求信号,是在位时间0发出,与其他数据事务型态的命令并未重叠,所以在任何时间,甚至在发出数据事务型态命令的同一时钟脉冲周期,可同时发出此一REQ信号。由北桥3所驱动的下传链路命令DNCMD包括:北桥到南桥输出入读取命令C2PIOR、北桥到南桥存储器读取命令C2PMR、北桥到南桥输出入写入命令C2PIOW、北桥到南桥存储器写入命令C2PMW、南桥到北桥读取确认命令P2CRA、南桥到北桥写入确认命令P2CWA,其与位时间的编码关系则如表三所示。请注意,在本实施例并无有关GNT的信号定义。
上述命令中南桥与北桥芯片所发出的命令是对应的,当南桥依序发出多个P2CR及/或P2CW命令后,北桥必须完全依照南桥发出命令的顺序回应相对应的P2CRA及/或P2CWA命令。当北桥依序发出多个C2PIOR、C2PMR、C2PIOW及C2PMW命令后,南桥必须依序回应相对应的C2PRA及C2PWA命令。且本实施例中,每一控制芯片发出的命令时,其相关数据必须先准备好。例如:当南桥发出P2CW时,必须要将所要写入的数据准备妥当,当北桥发出P2CRA时,必须要将所要传回的读出数据完全准备好,以避免在传输数据的当中有数据停顿无法接续的情形。
表二(上行链路命令UPCMD)
位时间0REQ | 位时间1PMSTR | 位时间2MIO | 位时间3WR | 说明 |
- | 0 | - | 0 | C2PRA |
- | 0 | - | 1 | C2PWA |
- | 1 | 0 | 0 | P2CR |
- | 1 | 0 | 1 | P2CW |
- | 1 | 1 | 1 | NOP |
0 | - | - | - | REQ |
表三(下传链路命令DNCMD)
位时间0 | 位时间1PMSTR | 位时间2MIO | 位时间3WR | 说明 |
- | 0 | 0 | 0 | C2PIOR |
- | 0 | 0 | 1 | C2PIOW |
- | 0 | 1 | 0 | C2PMR |
- | 0 | 1 | 1 | C2PMW |
- | 1 | 0 | 0 | P2CRA |
- | 1 | 0 | 1 | P2CWA |
- | 1 | 1 | 1 | NOP |
图5A绘示依据本发明的一较佳实施例的一种控制芯片组,其中有关写入事务的内部结构方块示意图,参照图5A。此较佳实施例的控制芯片组,包括第一控制芯片以及第二控制芯片,例如:第一控制芯片是北桥芯片500,而第二控制芯片是南桥芯片600。其通过特殊的芯片间总线连接在一起,就是本发明定义的HTML。北桥芯片500包括:数据送收器510、目标控制器520(例如:存储器控制器520)、写数据队列525以及写事务队列530等。南桥芯片600包括:数据送收器610、写缓冲器大小寄存器535、写缓冲器计数寄存器540、写事务产生器545、写事务记录电路及队列550以及写比较器555。
数据送收器510直接连接至HTML,是符合HTML界面规格的数据收发控制器,能通过HTML接收与发送数据信号,来完成多个写入事务。在这里我们简称每一次从南桥芯片600送出P2CW命令与相关数据,到北桥芯片500回应相对此次P2CW命令的P2CWA命令为一次写入事务。写数据队列525,能依序暂存写入事务的数据。而写事务队列530,依序暂存所有写入事务的数据长度及写入地址。写事务队列530的深度决定北桥芯片可以同时处理写事务的个数,写数据队列525的深度决定北桥芯片可以处理写事务的数据的总数。目标控制器520根据目前在写事务队列530中最先存入的写入事务所对应的写入地址与数据长度,以及在写数据队列525中所对应的数据,将即将写入目标装置(如:外部存储器)的数据送出后,第一数据送收器510会送出写入确认信号(P2CWA命令),并且目前在写事务队列530中最先存入的写入事务所对应的写入地址与数据长度,以及在写数据队列525中所对应的数据都会被释放,也就是队列中暂存这些数据的存储位置都可再填入其他数据。
南桥芯片600中的写缓冲器计数寄存器540以及写缓冲器大小寄存器535,分别存储北桥芯片500中写事务队列530所可容纳写入事务的总数以及写数据队列525所可容纳数据的总数,本实施例中,写事务队列530所可容纳写入事务的总数为4,而写数据队列525所可容纳数据的总数为16。这两个数字可由基本输出入系统在开机时设定,也可以在设计芯片时就固定等。
数据送收器610,同样耦接至HTML,能通过HTML,接收与发送数据信号,来完成所有的写入事务,而且当数据送收器610收到P2CWA命令后,会送出写入成功释放缓冲器信号至写事务记录电路及队列550,可用以释放队列中存储对应此次写入事务的数据长度的存储位置。当写事务产生器545,产生一个新的写入事务的数据长度,写入地址及数据时,也会将数据长度送至写事务记录电路及队列550。
写事务记录电路及队列550能计算出目前北桥芯片500中,有关写数据队列530的所有将用写缓冲器数据个数,以及写事务队列525的所有将用写入事务个数。这是由于写事务记录电路及队列550中,依序暂存有所有写入事务的数据长度,又由于北桥芯片500发出P2CWA命令是完全依照南桥芯片600发出P2CW命令的顺序来回应,南桥芯片600完全可以掌握北桥芯片500内部队列中缓冲器的使用情形。
写事务记录电路及队列550会将目前有关写数据队列530的所有将用写缓冲器数据个数,以及写事务队列525的所有将用写入事务个数送给写比较器555,写比较器555将上述信息与写缓冲器大小寄存器535存储的写数据队列525所可容纳数据的总数,以及写缓冲器计数寄存器540存储的写事务队列530所可容纳写入事务的总数来比较,如果两者都未超过可容纳的总数,就可通知数据送收器610送出新的写入事务相关的数据信号。
参照图5B,假设在时钟脉冲T1时,南桥芯片获得地址数据总线的使用权并开始第一次写入事务。南桥芯片在上行链路命令UPCMD送出写入命令P2CW,在地址数据总线AD送出写入的地址ADDR,并在字节致能BE上送出所要写入的长度LEN=2,在时钟脉冲T2时,南桥芯片在AD上送出所要写入的第一笔数据,并在BE上送出第一笔数据的字节致能,在时钟脉冲T3时接着送出第二笔写入数据。此时北桥芯片内有一个未完成的写入事务。因为南桥芯片知道北桥芯片可以同时接受写入事务的个数以及写入数据队列的大小,因此能够判断北桥芯片是否可以再接受新的写入事务。如果北桥芯片仍有空的写入事务队列530及写入数据队列525可用,南桥芯片可以在时钟脉冲T4再开始第二次写入事务,此时北桥芯片内有二个未完成的写入事务。南桥芯片于T9时判断是否能开始第三次写入事务。当南桥芯片发觉第三次的写入事务会使北桥芯片的写入事务队列530或写入数据队列525溢满而无北桥芯片的写入事务队列530或写入数据队列525溢满而无法处理,南桥芯片就不能在时钟脉冲T9发动第三次写入事务。当北桥芯片经由存储器控制器将第一次写入事务的数据完全写入存储器后,于时钟脉冲T9在下传链路命令DNCMD送出写入确认命令,告诉南桥芯片第一次写入事务(长度LEN=2)已完成。南桥芯片就知道北桥芯片内可用的写入事务队列530增加一个,可用的写入数据队列525增加两个。南桥芯片收到北桥芯片的泄入确认命令,知道第一次写入事务已完成。相关的写入事务队列530及写入数据队列525已释出,判断北桥芯片可以接收第三次写入事务,于时钟脉冲T12开始第三次写入事务。
图6A绘示依据本发明的一较佳实施例的一种控制芯片组,其中有关读出事务的内部结构方块示意图。参照图6A。此较佳实施例的控制芯片组,包括北桥芯片500以及南桥芯片600。其通过特殊的芯片间总线连接在一起,就是本发明定义的HTML。北桥芯片500包括:数据送收器510、目标控制器520(例如:存储器控制器520)、读数据队列625以及读事务队列630等。南桥芯片600包括:数据送收器610、读缓冲器大小寄存器635、读缓冲器计数寄存器640、读事务产生器645、读事务记录电路及队列650以及读比较器655。
数据送收器510直接连接至HTML,是符合HTML界面规格的数据收发控制器,能通过HTML接收与发送数据信号,来完成多个读出事务。在这里我们简称每一次从南桥芯片600送出P2CR命令,到北桥芯片500回应相对此次P2CR命令的P2CRA命令与相关数据为一次读出事务。读数据队列625,能依序暂存读出事务的数据。而读事务队列630,依序暂存所有读出事务的数据长度及读出地址。读事务队列630的深度决定北桥芯片可以同时处理读事务的个数,读数据队列625的深度决定北桥芯片可以处理读事务的数据的个数。目标控制器520根据目前在读事务队列630中最先存入的读出事务所对应的读出地址与数据长度,从目标装置(如:外部存储器)将数据读出后,存入读数据队列625中。然后,第一数据送收器510会送出读出确认信号(P2CRA命令)以及读事务队列630中最先存入的读出事务所对应的在读数据队列625的数据后,并且目前在读事务队列630中最先存入的读出事务所对应的读出地址与数据长度,以及在读数据队列625中所对应的数据都会被释放,也就是队列中暂存这些数据的缓冲器都可再填入其他数据。
南桥芯片600中的读缓冲器计数寄存器640以及读缓冲器大小寄存器635,分别存储北桥芯片500中读事务队列630所可容纳读出事务的总数以及读数据队列625所可容纳数据的总数,本实施例中,读事务队列630所可容纳读出事务的总数为4,而读数据队列625所可容纳数据的总数为16。这两个数字可由基本输出入系统在开机时设定,也可以在设计芯片时就固定等。
数据送收器610,同样耦接至HTML,能通过HTML,接收与发送数据信号,来完成所有的读出事务,而且当数据送收器610收到P2CRA命令后,除了将对应此次P2CRA命令的读出事务的数据送给读事务产生器645,也会送出读出成功释放缓冲器信号至读事务记录电路及队列650,可用以释放队列中存储对应此次读出事务的数据长度的存储位置。当读事务产生器645,产生一个新的读出事务的数据长度及读出地址时,也会将数据长度送至读事务记录电路及队列650。
读事务记录电路及队列650能计算出目前北桥芯片500中,有关读数据队列630的所有将用读缓冲器数据个数,以及读事务队列625的所有将用读出事务个数。这是由于读事务记录电路及队列650中,依序暂存有所有读出事务的数据长度,又由于北桥芯片500发出P2CRA命令是完全依照南桥芯片600发出P2CR命令的顺序来回应,南桥芯片600完全可以掌握北桥芯片500内部队列中缓冲器的使用情形。
读事务记录电路及队列650会将目前有关读数据队列630的所有将用读缓冲器数据个数,以及读事务队列625的所有将用读出事务个数送给读比较器655。读比较器655将上述信息与读缓冲器大小寄存器635存储的读数据队列625所可容纳数据的总数,以及读缓冲器计数寄存器640存储的读事务队列630所可容纳读出事务的总数来比较,如果两者都未超过可容纳的总数,就可通知数据送收器610送出新的读出事务相关的数据信号。
参照图6B,假设在时钟脉冲T1时,南桥芯片获得地址数据总线的使用权并开始第一次读取事务。南桥芯片在上行链路命令UPCMD送出读取命令P2CR,在地址数据总线AD上送出读取的地址ADDR,并在字节致能BE上送出所要读取的长度LEN=2。此时北桥芯片中有一个未完成的读取事务,因为南桥芯片知道北桥芯片可以同时接受读取事务的个数以及决定数据队列的大小,能够因此判断北桥芯片是否可以再接受新的读取事务。如果北桥芯片仍有空的读取事务队列630及读取数据队列625可用,南桥芯片可以在时钟脉冲T2再开始第二次读取事务(长度LEN=3),此时北桥芯片内有两个未完成的读取事务,南桥芯片判断在时钟脉冲T3时发动第3次读取事务,将使北桥芯片的读取事务队列630或读取数据队列625溢满而无法处理,因此南桥芯片不能在时钟脉冲T3开始第三次读取事务。当北桥芯片经由存储器控制器获得第一次读取事务的数据并存储于读取数据队列625后,它就发动读取确认命令将读取的资料送回南桥。时钟脉冲T7时北桥芯片获得地址数据总线的使用权,在下传链路命令DNCMD送出读取确认命令P2CRA,在地址数据总线送出第一次读取事务的第一笔数据。时钟脉冲T8时送出第二笔数据,此时南桥芯片知道第一次读取事务相关的读取事务队列630与读取数据队列625已经释出,而重新判断是否能发动第三次读取命令。在发动第三次读取命令之前,南桥芯片必须取得地址数据总线的使用权,因此在时钟脉冲T10用上行链路命令UPCMD送出REQ,向北桥芯片要求使用总线。北桥芯片于时钟脉冲T9-T10-T11经由读取确认命令将第二次读取命令的数据送出。南桥芯片在时钟脉冲T13时获得总线的使用权,发动第二次读取命令。
上述图5A、5B及图6A、6B说明的本发明的实施例,都是举例第一控制芯片是北桥芯片,而第二控制芯片是南桥芯片,且由南桥芯片主动发出命令,控制北桥芯片来读写数据。如本领域的技术人员可轻易知晓,只要南北桥中有对应的结构,并不限定要由南桥芯片主动发出命令,亦即第一控制芯片可以是南桥芯片,而第二控制芯片是北桥芯片。
图5A、5B及图6A、6B只是一个实施例,不应该用以限制本发明。本发明的精神是:
1.发动写入或读取事务时,除了送出地址及命令外,也送出所要写入或读取的数据长度,因此不需要FRAME就可以知道该事务何时结束。
2.当有多个写入或读取事务等待完成时,与入或读取确认命令依序对应之前的写入或读取命令,因此可以知道对方芯片内部队列的使用情形,进而判断再发动新的写入或读取命令,也就是说流量控制是由发动写入或读取命令的芯片来做的,而接受写入或读取命令的芯片永远不会收到会使内部队列溢满的命令,因此不必做流量控制。
3.应用的范围不应只是南北桥芯片,应可应用在使任何两芯片间的数据传送。
综上所述,虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域的技术人员,在不脱离本发明的精神和范围内,当可作各种更动与润饰,因此本发明的保护范围应当以权利要求所界定范围为准。
Claims (15)
1.一种控制芯片组,包括:
一第一控制芯片,包括:
一第一数据送收器,耦接至一芯片间总线,用以通过该芯片间总线,接收与发送数据信号,来完成多个写入事务;
一读/写数据队列,耦接至该第一数据送收器,用以暂存该些读出/写入事务的数据;
一读/写事务队列,耦接至该第一数据送收器,用以暂存该些读出/写入事务的数据长度及读出/写入地址;以及
一目标控制器,耦接至该读/写数据队列及该读/写事务队列,该目标控制器根据目前该读/写事务队列中最先存入的读出/写入事务所对应的读出/写入地址以及在该读/写数据队列中所对应的数据,将即将读出/写入一目标装置的数据送出后,该第一数据送收器送出一读出/写入确认信号,而目前该读/写事务队列中最先存入的读出/写入事务所对应的读出/写入地址以及在该读/写数据队列中所对应的数据都被释放;以及
一第二控制芯片,经由该芯片间总线耦接至该第一控制芯片,包括:
一读/写缓冲器大小寄存器,用以存储该读/写数据队列所可容纳数据的总数;
一读/写缓冲器计数寄存器,用以存储该读/写事务队列所可容纳读出/写入事务的总数;
一第二数据送收器,耦接至该芯片间总线,用以通过该芯片间总线,接收与发送数据信号,来完成该些读出/写入事务,当该第二数据送收器收到该读出/写入确认信号后,送出一读出/写入成功释放缓冲器信号;
一写事务产生器,耦接至该第二数据送收器,用以产生该些读出/写入事务的数据长度,读出/写入地址及数据;
一读/写事务记录电路及队列,耦接至该第二数据送收器及该读/写事务产生器,用以暂存该些读出/写入事务的数据长度,并根据该读出/写入成功释放缓冲器信号,来计算目前该第一控制芯片中该读/写数据队列的一剩余/可用读/写缓冲器数据个数及该读/写事务队列的一剩余/可用读出/写入事务个数;以及
一读/写比较器,耦接至该第二数据送收器、该读/写缓冲器大小寄存器、该读/写缓冲器计数寄存器及该读/写事务记录电路及队列,用以根据该将用读/写缓冲器数据个数、该将用读出/写入事务个数、该读/写事务队列所可容纳读出/写入事务的总数及该读/写数据队列所可容纳数据的总数,来通知该第二数据送收器送出新的读/写入事务相关的数据信号。
2.如权利要求1所述的控制芯片组,其中该芯片间总线包括:一地址数据总线、一长度/字节致能信号线、一上行链路命令信号线、一上行链路触发信号线、一下传链路命令信号线、一下传链路触发信号线以及一时钟脉冲信号线。
3.如权利要求2所述的控制芯片组,其中该上行链路触发信号线以及该下传链路触发信号线致动时的运作频率是2倍于该时钟脉冲信号线上的时钟脉冲频率。
4.如权利要求1所述的控制芯片组,其中该第一与该第二控制芯片分别为计算机主机板的北桥控制芯片与南桥控制芯片,该目标控制器是一存储器控制器,该目标装置是一外部存储器。
5.如权利要求4所述的控制芯片组,其中该读/写事务队列所可容纳读出/写入事务的总数为4,该读/写数据队列所可容纳数据的总数为16。
6.一种控制芯片组之间的数据事务方法,用以完成多个读出/写入事务,该控制芯片组包括一第一控制芯片及一第二控制芯片,该第一控制芯片包括一读/写数据队列,用以暂存该些读出/写入事务的数据;以及一读/写事务队列,用以暂存该些读出/写入事务的数据长度及读出/写入地址,该第二控制芯片包括暂存该些读出/写入事务的数据长度的一读/写事务记录电路及队列以及一读/写比较器,该数据事务方法包括下列步骤:
提供该读/写事务队列所可容纳读/写入事务的总数及该读/写数据队列所可容纳数据的总数给第二控制芯片;
该第一控制芯片根据目前该读/写事务队列中最先存入的读出/写入事务所对应的读出/写入地址以及在该读/写数据队列中所对应的数据,将即将读出/写入一目标装置的数据读出/写出;
该第一控制芯片送出一读出/写入确认信号;
该第一控制芯片释放目前该读/写事务队列中最先存入的读出/写入事务所对应的读出/写入地址以及在该读/写数据队列中所对应的数据;
该第二控制芯片产生对应一新读出/写入事务的数据长度,读出/写入地址及数据;
该第二控制芯片根据该读出/写入确认信号,使该读/写事务记录电路及队列,计算出目前该第一控制芯片中该读/写数据队列的一将用读/写缓冲器数据个数及该读/写数据队列的一将用读出/写入事务个数;以及
该读/写比较器根据该将用读/写缓冲器数据个数、该将用读出/写入事务个数、该读/写事务队列所可容纳读出/写入事务的总数及该读/写数据队列所可容纳数据的总数,来决定并使该第二控制芯片送出该新的读出/写入事务相关的数据长度和读出/写入地址及数据。
7.如权利要求6所述的控制芯片组之间的数据事务方法,其中该第一与该第二控制芯片是通过一芯片间总线耦接,该第一与该第二控制芯片分别为计算机主机板的北桥控制芯片与南桥控制芯片,该芯片间总线包括:一地址数据总线、一长度/字节致能信号线、一上行链路命令信号线、一上行链路触发信号线、一下传链路命令信号线、一下传链路触发信号线以及一时钟脉冲信号线。
8.如权利要求7所述的控制芯片组之间的数据事务方法,其中该上行链路触发信号线以及该下传链路触发信号线致动时的运作频率是2倍于该时钟脉冲信号线上的时钟脉冲频率。
9.如权利要求7所述的控制芯片组之间的数据事务方法,其中该目标装置是一外部存储器。
10.一种点对点连接不同芯片间的信号传输方式的控制芯片组,包括:
第一芯片有n个事务队列及m个数据队列;以及
第二芯片记录该第一芯片事务队列及数据队列的使用情形,并依据该记录决定是否进行下一笔事务。
11.如权利要求10所述的控制芯片组,其中该第一与该第二芯片分别为计算机主机板的北桥控制芯片与南桥控制芯片。
12.如权利要求10所述的控制芯片组,其中该事务队列所可容纳事务的总数为4,该数据队列所可容纳数据的总数为16。
13.一种连接不同芯片间的信号传输装置,包含:
一下传链路命令信号线(DNCMD),用以定义出各种不同下传链路命令的数据事务型态;
一下传链路触发信号线(DNSTB),用以触发该下传链路命令信号线;
一上行链路命令信号线(UPCMD),用以定义出各种不同上行链路命令的数据事务型态;
一上行链路触发信号线(UPSTB),用以触发该上行链路命令信号线;
一字节致能信号线(BE);为一条双向位致能信号线;
一地址信号线(AD),用以送出地址信号;以及
一时钟脉冲信号线(CLK),用以提供运作的时钟脉冲信号。
14.如权利要求13所述的装置,其中该下传触发信号线、该上行链路触发信号线为单向的。
15.如权利要求13所述的装置,其中该上行触发信号线以及该下传链路触发信号线致动时的运作频率是2倍于该时钟脉冲信号线上的时钟脉冲频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB991256379A CN1171154C (zh) | 1999-12-28 | 1999-12-28 | 控制芯片组与其间的数据事务方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB991256379A CN1171154C (zh) | 1999-12-28 | 1999-12-28 | 控制芯片组与其间的数据事务方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02158428 Division CN1238794C (zh) | 1999-12-28 | 1999-12-28 | 控制芯片组与其间的数据事务方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1302020A true CN1302020A (zh) | 2001-07-04 |
CN1171154C CN1171154C (zh) | 2004-10-13 |
Family
ID=5284056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB991256379A Expired - Lifetime CN1171154C (zh) | 1999-12-28 | 1999-12-28 | 控制芯片组与其间的数据事务方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1171154C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100431315C (zh) * | 2002-06-07 | 2008-11-05 | 友讯科技股份有限公司 | 可增加内嵌式以太网络控制器送收效率的方法 |
CN107291652A (zh) * | 2017-07-05 | 2017-10-24 | 深圳市奈瑞特科学技术有限公司 | 一种并行通信方法 |
CN108447513A (zh) * | 2017-02-16 | 2018-08-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
-
1999
- 1999-12-28 CN CNB991256379A patent/CN1171154C/zh not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100431315C (zh) * | 2002-06-07 | 2008-11-05 | 友讯科技股份有限公司 | 可增加内嵌式以太网络控制器送收效率的方法 |
CN108447513A (zh) * | 2017-02-16 | 2018-08-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107291652A (zh) * | 2017-07-05 | 2017-10-24 | 深圳市奈瑞特科学技术有限公司 | 一种并行通信方法 |
CN107291652B (zh) * | 2017-07-05 | 2020-06-09 | 深圳市奈瑞特科学技术有限公司 | 一种并行通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1171154C (zh) | 2004-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1199117C (zh) | 信源同步及公共时钟协议中的数据传输 | |
JP2505115B2 (ja) | システム・バスと周辺バスの間でのデ―タ転送を最適化する複数バス情報処理システム用のバス間ブリッジ | |
JP2571673B2 (ja) | 多重化バスを有する情報処理システムでバック・ツー・バック・データ転送を提供する方法および装置 | |
EP1723535B1 (en) | Method and apparatus for supporting delayed transactions of multi-function pci devices in pci bridges | |
US6145045A (en) | System for sending and receiving data on a Universal Serial Bus (USB) using a memory shared among a number of end points | |
US6157975A (en) | Apparatus and method for providing an interface to a compound Universal Serial Bus controller | |
US5919254A (en) | Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system | |
US5774681A (en) | Method and apparatus for controlling a response timing of a target ready signal on a PCI bridge | |
US6549964B1 (en) | Delayed transaction method and device used in a PCI system | |
US6070208A (en) | Apparatus and method for implementing a versatile USB endpoint pipe | |
US6266723B1 (en) | Method and system for optimizing of peripheral component interconnect PCI bus transfers | |
US20030188071A1 (en) | On-chip high speed data interface | |
US7409486B2 (en) | Storage system, and storage control method | |
CN1171154C (zh) | 控制芯片组与其间的数据事务方法 | |
US20010004749A1 (en) | Arbitration of control chipsets in bus transaction | |
JP4037788B2 (ja) | 制御チップセット間の信号送信デバイス | |
CN1238794C (zh) | 控制芯片组与其间的数据事务方法 | |
US6327636B1 (en) | Ordering for pipelined read transfers | |
US6546448B1 (en) | Method and apparatus for arbitrating access to a PCI bus by a plurality of functions in a multi-function master | |
CN1123833C (zh) | 控制芯片组之间总线的判优方法 | |
US5838930A (en) | Method and apparatus for controlling a command cycle on a bus | |
US6240474B1 (en) | Pipelined read transfers | |
US6694400B1 (en) | PCI system controller capable of delayed transaction | |
KR100266963B1 (ko) | 전송되는 패킷을 오버래핑하여 인터페이스의 대기시간을 감소시키는 방법 및 장치 | |
CN1139880C (zh) | 控制芯片组之间具有插队功能的总线仲裁方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20041013 |
|
CX01 | Expiry of patent term |