CN100594705C - 数据通信的方法和数据通信的输入/输入装置 - Google Patents

数据通信的方法和数据通信的输入/输入装置 Download PDF

Info

Publication number
CN100594705C
CN100594705C CN200310113847A CN200310113847A CN100594705C CN 100594705 C CN100594705 C CN 100594705C CN 200310113847 A CN200310113847 A CN 200310113847A CN 200310113847 A CN200310113847 A CN 200310113847A CN 100594705 C CN100594705 C CN 100594705C
Authority
CN
China
Prior art keywords
transaction
hub
master controller
transmission
agency
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.)
Expired - Lifetime
Application number
CN200310113847A
Other languages
English (en)
Other versions
CN1520122A (zh
Inventor
J·I·加尼
J·S·霍瓦德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1520122A publication Critical patent/CN1520122A/zh
Application granted granted Critical
Publication of CN100594705C publication Critical patent/CN100594705C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40058Isochronous transmission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40123Interconnection of computers and peripherals

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种使用集线器进行数据通信的方法和装置。该方法包括对在集线器和主控制器之间的一个事务期间在集线器上接收的单个传输请求进行缓冲的步骤,其中该单个传输请求将在集线器和代理之间执行并会产生一个结果。该方法还包括确定一个在集线器上从主控制器接收到的传输查询是否与结果相对应的步骤。

Description

数据通信的方法和数据通信的输入/输入装置
本申请是申请人英特尔公司于2000年4月25日提交的发明名称为“数据通信的方法和数据通信的输入/输入装置”的中国专利申请No.00813460.X(PCT/US00/10930)的分案申请。
技术领域
本发明从属于在数字***中进行数据通信的领域,特别是本发明涉及的是用来在总线上传输信息的主控制器以及网络集线器。
背景技术
通常情况下,计算机或者类似的设备都具有一个将设备连接到计算机***的总线。由于计算机***和设备的各种进步(比如计算能力),计算***与其相连设备之间可交换的数据量不断增加,这就需要增加相应的总线带宽。增加带宽的要求有一部分是来自于多媒体应用程序,它们要求数据以固定的时间间隔(同步)从设备经总线传输到计算***(向内)或者反方向传输(向外)。对于具有效带宽要求的设备实例包括数码相机,CD播放器,扬声器,麦克风,视频播放设备,扫描仪,操纵杆和鼠标,以及其他一些设备。
在总线结构上能够获得的带宽在一定程度上取决于三个因素:传输媒介,拓扑结构,以及用来控制对媒介访问的协议。协议和拓扑结构在一定程度上决定了设备与计算***之间关系的性质。一种可能的关系就是主从关系。在主从关系中,通常由计算***启动计算***和设备之间的所有数据处理;也就是说,设备只能响应计算***的请求,而永远不能启动数据处理事务处理。采用主从关系的一个好处就是总线结构有相对比较低的开销,并且结构相对简单。1998年9月23日的通用串行总线架构(USB)规范的修正版1.1就是一个通用总线结构的实例,其中通过总线连接的元件之间具有一个主从关系。遗憾的是,现有的主从总线标准,例如USB标准,并不能支持当今的许多具有带宽要求(或者数据传输率)的设备和计算***。
尽管USB并不支持较高的数据传输率,但是它拥有较大范围的用户基础,并支持两个数据传输率:12MB/s(“全速”)和1.5MB/s(“低速”)。由于一些设备并不需要较高的数据传输率,USB允许总线上的多种数据传输率。它可以通过采用相对价廉、低数据传输率的驱动器和布线来节省大量的开销。
然而,USB协议允许计算***采用低速与低数据传输率的设备进行通信,或者采用全速与高数据传输率的设备进行通信(速度切换),这造成了在总线上实际传输的数据量(有效吞吐量)比通过限定总线采用全速处理所能实现的数据量要小。换句话说,对于较高速(如全速)的设备而言,速度切换导致可用的带宽较小,特别是当有大量低速设备连接到计算***的情况下。这种速度切换对于吞吐量的影响在高速传输率与低速传输率的比值较大的时候会更严重。
另一个可能的总线协议需要主控制器(1)以高速传输率把一个数据包传送到集线器上,(2)等待集线器以较低的传输率把数据包传送给代理,(3)等待代理以较低传输率对集线器做出响应,以及(4)以较高的数据传输率从集线器接收代理对数据包的响应。当高速传输率与低速传输率比值较大的时候,这个总线协议可能也会造成低效的吞吐率或带宽。这是因为需要等待集线器以低数据传输率传送数据包以及等待代理以低数据传输率做出响应。
另一种流行的总线技术被“报警器”和1995年电器和电子工程师协会(IEEE)对于高性能串行总线的标准1394所定义。IEEE 1394支持多种数据传输率,上限达到400Mb/s。尽管它的总带宽比USB高,IEEE1394采用的是不经济的速度切换并且是一种开销较大的技术。
速度切换、等待集线器以比主控制器数据传输率低的传输率进行数据处理以及主机与代理的数据传输率的比值,都会对总线的性能造成显著影响。这样,就需要有一台主控制器和/或集线器,允许以现今带宽增强***所要求的较高的数据传输率进行通信,并与先前的解决方案保持很好的向后兼容性,比如USB等等,而无需为速度切换以及先前技术的缺陷而支付额外的费用。
上面描述了高数据传输率***与低数据传输率设备之间的通信所面临的一个问题。计算***要面对的另一个问题就是目前可用的总线协议(或者标准)的多样性。通常情况下,为依照某种总线协议运行而生产的设备不能依照另外一种不同的协议运行。仅由于协议之间的差异而要求用户拥有大量的重复设备是浪费的。在大量正在使用的设备还具有很长的使用寿命的情况下,希望这些设备能与一个计算***同时使用,该计算***具有一个主控制器和/或一个关联的集线器,用来提供与过去的设备之间的向后兼容性。
发明内容
根据本发明的一个具体实施方案,描述了一个使用集线器进行数据通信的方法。该方法包括下面的步骤:在集线器和主控制器之间处理数据的时候,缓冲在集线器上接收到的一个单独传输请求,其中单独的传输请求将在集线器和代理之间执行以产生一个结果。该方法还包括确定在集线器处从主控制器接收到的查询是否与该结果相符的步骤。
根据本发明的一个方面,提供一种用来进行数据通信的输入/输入装置,它包括:一个存储器,用于缓冲在主控制器和设备之间的事务处理期间接收到的单个传输请求;一个集线器控制器,它可以在设备和代理之间执行单个传输请求并产生一个结果;其中,该设备从主控制器接收一个传输查询;和一个控制单元,确定该传输查询是否与该结果相对应。
附图说明
通过附图,但不局限于这些附图,用例子对本发明进行说明,其中,相同的引用表示相似的元素,附图中:
图1a说明了一个依照本发明的采用一个协议的数字***的模块图;
图1b,1c和1d分别阐明了根据本发明在主控制器和集线器之间进行通信的方法流程;
图1e,阐明了根据本发明的一个集线器;
图2a和2b分别阐述了根据本发明执行一个传输过程的一个主控制器和一个集线器的状态机构流程图;
图3a和3b分别阐述了根据本发明执行另一个传输过程的一个主控制器和一个集线器的状态机构流程图;
图4a和4b分别阐述了根据本发明执行另一个传输过程的一个主控制器和一个集线器的状态机构流程图;
图5a和5b分别阐述了根据本发明执行另一个传输过程的一个主控制器和一个集线器的状态机构流程图;
图6a和6b分别阐述了根据本发明执行另一个传输过程的一个主控制器和一个集线器的状态机构流程图;
图7a和7b分别阐述了根据本发明执行另一个传输过程的一个主控制器和一个集线器的状态机构流程图;
图8a和8b阐述了根据本发明数据传输结构的最佳情况和最差情况;以及
图9阐述了主控制器-集线器事务处理和集线器-代理事务处理的定时图表。
具体实施方式
这里描述的是用来在主控制器和***设备(代理)进行通信的方法和设备,在这里,代理的通信速度和/或者协议是与主控制器的通信不尽相同的。在下面的描述中,本着解释详尽为目的,阐述了大量具体的细节以便让读者对本发明有透彻的理解。然而对于那些熟悉相关技术的人员来说,他们可以无需阅读这些细节而将本发明熟练应用于各种的总线***,特别是串行总线中。这里为了避免混淆本发明,没有显示那些众所周知的操作步骤、功能和设备。
部分的描述将采用术语来表示,通常该技术领域的熟练人员可采用这些术语将其工作的实质内容传送给本领域的其他熟练人员,例如这些术语有设备或者控制器驱动器,总线或者主控制器,集线器,总线代理或者代理,等等。而且,部分描述还将通过执行编程指令或者启动一些电子部件或电路的功能实现的运行来表示,使用的术语包括例如执行,发送,处理,封装,调度,传输,配置,等等。如那些本领域的熟练人员所熟悉的那样,这些操作表现为能够存储,传输,合并,换句话说,是通过电子部件操纵的电、磁或光信号的形式。
下面将各种的操作描述为多个分立的依次运行的步骤,这样有利于最大程度地理解本发明。但是,不应该将所描述的顺序理解为这些运行必须按其描述顺序来执行。最后,重复使用短语“在一个实施方案中,”“在某个实施方案中,”“在其中一个实施方案中,”“在另外一个实施方案中”不一定表示的是同一实施方案,尽管可能是同一实施方案。
图1a说明了一个依照本发明的采用一个协议的总线的模块图。总线100包括一个***102,该***102包括一个与集线器120相连的主控制器110,集线器120又与代理130相连。主控制器110具有一个在***102上运行的相关联的设备驱动器105。代理的实例包括照相机,CD播放器,扬声器,麦克风,视频播放设备,扫描仪,操纵杆和鼠标,及其他一些设备。***102可以包括任何能够进行数字通信的数字***,特别是膝上型电脑,桌上型电脑,服务器,机顶盒,娱乐***,以及游戏机。因此,本发明可以利用多种使用数字通信的数字设备来实现。
在图1a中画出的两个箭头记号101a和101b给出了关于主控制器、集线器和代理通信的方向的参考结构。从代理到集线器再到主控制器的方向被认为上游方向或者上游(向内)。从主控制器到集线器再到代理的方向被设为下游方向或者下游(向外)。
通过处理送往代理130的信息数据包,并通过主控制器110来调度数据包的传输,主控制器105便于总线100间的通讯或处理(如,一个在***102上运行的应用程序)。主控制器110通过集线器120向代理130发送数据并从代理130接收数据。代理130按照与主控制器110的数据传输率(代理数据传输率)不同或者更低的速率(主数据传输率)进行通信。这里仅显示了一个与集线器120相连接的代理,显然,另外的代理(没有显示出来)也可以连接到集线器120或者其他集线器上(没有显示出来)。这些另外的代理可以按照主机数据传输率或者代理数据传输率进行通信。而且,当显示代理130连接到集线器120的时候,它可以通过至少一个按代理数据传输率操作的常规转发器型集线器连接到集线器120上。常规的转发器型集线器可以在其下游端口复制在上游侧接收的信号,发之亦然。反过来,常规转发器型集线器可以具有一个或多个连接其上的代理130。
主控制器110和代理130有主从关系,这意味着主控制器通常能够启动介于主控制器和代理之间的所有数据处理;也就是说,代理只能对来自于主控制器的请求做出响应,但是却不能启动一个事务处理。集线器120上有存储和转送缓冲器(没有显示出来),它允许集线器120临时存储从主控制器110接收的下游信息并指定代理130,以及临时存储从代理130接收的上游信息并送往主控制器110。
由于代理130和主控制器110在不同的数据传输率下进行通信,希望通过提供一个协议来提高总线上的有效的吞吐量,该协议允许主控制器110(1)既能以其较高的数据传输率来通信,(2)又不必在进行另一个事务处理之前等待代理130的响应。本发明的协议允许主控制器110利用集线器120的存储和传送的特征,从而允许主控制器110按其较高的传输率进行通信,同时在需要响应的情况下不需等待来自代理130的响应而处理其他的事务处理。本发明的协议还提供了控制器110和集线器120之间所执行的事务处理的稳定性和可靠性。另外,本发明的主控制器和/或集线器允许提高总线上的吞吐量,并为以主数据传输率进行通信的连接到集线器120或者其他集线器上的代理提供了较好的响应能力(没有显示出来)。
图1b说明了一个过程150,显示一个依照本发明的与一个具有比主控制器低(或不同)的数据传输率的代理进行通信的方法。代理还可以有与主控制器不同的协议。过程150可以用来实现多种主控制器110和代理130间的信息传输。为了便于理解,在这里只描述了过程150的向外块传输。然而过程150还可以用这里和后面所描述的其他信息传输。在向外块传输中,数据由主控制器110经过集线器120向代理130传输。这个向外块传输是根据本发明的一个实施方案定义为异步传输类型。然而,但是不要根据其定义就得出任何块和/或向外传输都应该是异步的结论。
在过程150的步骤152,执行了一个初始分隔事务处理。这个初始分隔事务处理将来自主控制器110的下游信息传递给集线器120。传递给集线器120的一些下游信息被暂时缓存在集线器120内。集线器120的缓冲区大都是采用先进先出(FIFO)的方式工作,在下面将对其进行更为详尽的描述。在下游信息被放入缓冲区后的一段时间内,集线器120通过代理130根据一些缓冲的下游信息执行一个集线器-代理的事务处理(没有显示出来)。这里不必描述集线器-代理事务处理的时间调配,因为本技术领域的一般熟练人员都清楚,这是一个具有许多可能性的应用或实施的细节问题。集线器-代理事务处理可能会造成上游信息被缓冲于集线器120。在该下游信息被缓冲之后不久,在步骤156中执行了一个完整的分隔事务处理。这个完整分隔事务处理将集线器120上缓存的上游信息传送给主控制器110。完全分隔事务处理的相关时间调配不需在这里加以说明,因为本技术领域的一般熟练人员都清楚,这是一个具有许多可能性的应用或实施的细节问题。
分隔事务处理协议的一个好处就在于它允许控制器110在步骤154启动与代理130的通信(初始分隔事务处理),执行其他的功能,或者执行与其他代理(低数据传输率或者高数据传输率代理)的其他通信,然后再返回完成前面启动的与低数据传输率代理之间的通信。通过使用分隔事务处理进行通信,控制器110以高数据传输率进行通信而无需速度切换,也不会在等待集线器120与代理130通信的时候处于空闲状态。空闲状态所消耗的时间可以用于与其他的代理的通信。在依照本发明的另一个实施方案中,控制器110可以与某些代理一起进行速度切换,同时进行与其他的代理的分隔事务处理通信。
上面所描述的起始分隔和完全分隔事务处理(分隔事务处理)可以用来实现控制器110和代理130之间各种类型的数据通信传输(举例来说,读出和写入)。在本发明的具体实施方案中定义了的四个传输类型(或者传输请求):向外/向内块,向外/向内控制,中断,同步。很显然,对于本领域的普通技术人员来说,本发明的主旨和范围还包括其他具有或多或少或不同的传输类型的实施方案。每个传输类型能够提供不同水平的稳定性,可靠性,同步性,异步性操作,错误检测和通信流的修正,以及一些本领域的普通技术人员都很清楚的特征。举例来说,向内/向外块提供从控制器110到代理130或者相反方向的大规模同步数据传输。向外/向内控制提供了从控制器110到代理130或者相反方向的同步数据传输,而数据通常是用来控制代理130或者***100中元件(例如磁带驱动器)运转的控制信息。中断提供了从控制器110到代理130或者相反方向的周期性数据传输。如果传输不成功的话,控制器110可以在一个根据本发明的实施方案中再重来一次。同步传输提供了每经过一个预定时间就进行一次数据传输。根据本发明的一个实施方案,数据传输可以在一个时间间隔内的任何时间进行。如果传输不成功的话,控制器110将不会重复传输。在根据本发明的其中一个实施方案中,同步传输可以进行重复传输。
分隔事务处理可以根据实现的传输类型,包括多个阶段。每个分隔事务处理最多可以有三个阶段:标记,数据,和握手。然而,根据执行的传输,某些事务处理可能会有较少的阶段。在本发明的一个实施方案中,块和控制可以在它们各自的分隔事务处理中使用相同的阶段。下面的表1中显示了上面描述的每个传输类型的各个阶段。表单元中的X表示传输类型的分隔事务处理具有在该单元所处的列顶表示的阶段。在该实施方案中标记和数据阶段是对于每个传输类型而言都是独立的,而在另一个实施方案中,标记和数据阶段可能是组合在一起的。应该清楚,在另外的实施方案中,在不背离本发明的宗旨和范围的前提下,与表1相比,传输类型可以具有较少、较多、甚至不同的阶段。
表1
Figure C20031011384700121
图1c更加详尽地阐述了过程160,它显示了一个根据本发明具体实施方案的对于向外块传送的初始分隔事务处理。在步骤162,一个包含集线器识别信息,代理和终点识别信息,传输类型,识别传输方向(向内还是向外)的标识符,以及数据传输率识别的令牌包被从主控制器110传递给集线器120。集线器识别信息,代理与终点的识别信息,以及方向识别信息在这里通常被归类于事务处理寻址信息。代理识别信息可以识别主控制器试图与之进行通信的特定代理。终点识别信息可以识别主控制器试图与之进行通信的代理的特定部分。终点的实例包括:扬声器集线器上的左扬声器和右扬声器,或者手提电话机的麦克风和扬声器。事务处理寻址信息中的传输类型并不限于这里所提到的类型(例如向外块,中断,同步,控制),它还包括与本发明主旨和范围密不可分的相关技术中已知的其它类型。数据传输率标识符可以确定将会执行与上述过程150相关的集线器-代理事务处理的数据传输率。对于集线器-代理事务处理是根据USB标准进行的具体实施方案来说,数据传输率标识符将指定12MB/s(全速)和1.5MB/s(低速)。在步骤164处,一个数据包被从主控制器110发送给集线器120。在步骤166,如果数据包能够被集线器120正确解码的话,主控制器110接收到来自集线器120的第一个识别信息。第一个识别信息表示数据是否被集线器120正确解码,或者集线器是否希望稍后再试(例如,集线器120的缓冲区已经满了而不能接收数据)。
图1d更为详尽地说明了过程170,它显示了一个根据本发明实施方案的向外块传输的完全分隔事务处理。在步骤172处,将包括事务处理寻址信息的第二个标记包从主控制器发送给集线器。在步骤174处,主控制器110接收到来自于集线器120的第二个确认,其中第二个确认可以(1)包括在与图1b相关的集线器-代理事务处理过程中集线器120从代理130接收到的握手信息,或者(2)表示集线器120还没有获得基于集线器-代理事务处理的信息来发送给主控制器110(例如,还没有完成集线器-代理事务处理)。握手信息表示(1)代理130是否在集线器-代理事务处理(ACK)期间正确接收到信息,(2)代理130是否表示它不能正确运行(STALL),或者(3)代理130是否表示它希望稍后再试(NAK)。第一和第二个确认以及握手信息已经被描述为某些特定的指示符,但显然对于本领域的普通技术人员来讲,这些确认和握手信息以及这里描述的其他信息可以呈现其它的表示。另外,在另外的实施方案中,在不背离本发明的主旨和范围的情况下,可以增加与这里所描述的信息所不同或者作为附加的确认和握手信息。
上面已经概括描述了代理130与集线器120之间以低于集线器120和主控制器110间通信数据传输率的数据传输率进行通信的情况,而那些本领域的熟练人员会意识到本发明在实际应用中可以在低数据传输率和高数据传输率之间,或者甚至是在协议不同的相同数据传输率之间起到桥梁的作用。
图1中在代理和主控制器之间只显示了一个集线器,而实际上在任何特殊的代理和主控制器之间可以有多个集线器。这里仅描述了六种传输类型,而那些本领域的熟练人员会意识到,不背离本发明的主旨和范围的情况下,也可以使用其它的类型。
图2a,2b,3a,3b,4a,4b,5a,5b,6a,6b,7a和7b说明了依照本发明使用主控制器和集线器进行一个传输的状态机构图。以“a”为下标的图显示了一个主控制器的状态机构图;该状态机构可以在前面描述的与图1a相关的主控制器110上运行。以“b”为下标的图显示了一个集线器的状态机构图;该状态机构可以在前面描述的与图1a相关集线器120上运行。在这些图中说明的状态机构显示了拥有多个步骤的过程。显然,在不违背本发明的主旨和范围的情况下,其中一些步骤可以被划分为更细的步骤或者结合成少量的几个步骤。由于状态机构的运转对于该技术领域的普通技术人员来说是显而易见的,所以这里没有对其进行更细致的说明。为了便于理解,没有对由状态机构执行的过程进行单独说明。由于由状态机构执行的过程是串行的(也就是说,每个过程中步骤的执行都依赖于其他过程的步骤或事件的出现),所以为了便于理解,对过程的描述都是交错进行的。
图2a和2b分别说明了根据本发明主控制器和集线器执行一个传输的状态机构示意图,特别是一个分隔的向外块/控制的传输。过程200和过程260分别显示了主控制器和集线器的状态机构。过程200包括启动分隔事务处理,它拥有一个标记阶段(XOUT)和一个数据阶段(DATAx),在试图在主控制器和集线器之间处理这些阶段的期间,一旦出现暂停,可以由主控制器对这两个阶段重复3次。作为启动分隔事务处理的响应,过程260将自始至终传播将接收数据(ACK)的状态,在集线器与主控制器间的握手(ACK,不接收数据)失败后响应主控制器的重试,由于缺少空间来容纳启动事务处理信息(NAK),而请求主控制器重试或者出现3次暂停。过程200显示了在集线器和代理之间成功处理了一个完全分隔事务处理(XIN)(Advance),产生了一个来自于代理的NAK(NAK),接收到一个代理无法正常运行的指示符(STALL),还没有通过集线器或者代理完成(NYET),XIN或其响应出现一些通信失败并造成主控制器和集线器之间的3次暂停时,主控制器对该事务处理的响应。作为对完全分隔事务处理的响应,过程260将表示集线器和代理之间的事务处理过程还没有完成(NYET),或者将提供一个指示符(ACK,NAK,STAL1),表明在集线器和代理之间发生了什么。
图3a和3b分别说明了根据本发明执行另一种传输的主控制器和集线器的状态机构示意图,特别是分隔向外中断传输。过程300和过程360分别显示了主控制器和集线器的状态机构。过程300包括一个启动分隔事务处理,它有一个标记阶段(XOUT)和一个数据阶段(DATAx),它将不会被主控制器重复,因为根据一个实施方案,中断向外传输是时间敏感的,如果第一次未能成功的话它不需重复进行。作为对启动分隔事务处理的响应,过程360将接收数据(ACK),或者不做任何事情。过程300显示了当集线器和代理之间成功进行了处理(Advanced),接收到一个表示代理无法正常运行(STALL)的指示符,还没有通过集线器或代理完成(NYET),或者该完全分隔事务处理或其响应出现一些通信失败并造成主控制器和集线器之间的3次暂停时,主控制器对完全分隔事务处理(XIN)的响应。作为对完全分隔事务处理的响应,过程360将表示集线器和代理之间的事务处理过程还没有完成(NYET),或者将提供一个指示符(ACK,NAK,STAL1),表明在集线器和代理之间发生了什么。
图4a和图4b分别说明了根据本发明执行另一个传输的主控制器和集线器的状态机构示意图,特别是一个分隔向外同步传输。过程400和过程460分别显示了一个主控制器和集线器的状态机构。过程400包括一个启动分隔事务处理,它含有一个标记阶段(XOUT)和一个数据阶段(DATAx),并且它们都是不能重复的。依照一个实施方案,过程400不包括一个完全分隔事务处理。过程460允许将从集线器到代理的事务处理数据细分为多个部分,从而最小化集线器的缓冲要求;主控制器可以在集线器需要把下一个数据段发送到代理之前将其发送。在这种情况下,每个分隔启动事务处理都被标以ALL,BEGIN,MEDDLE,或者END,以便集线器能够检测到什么时候一个通信失败导致集线器没有按照正常序列接受数据段。作为对初始分隔事务处理的响应,过程460将会累加具有一个数据段(ALL),两个数据段(BEGIN,END),或者3个乃至更多数据段(BEGIN,MIDDLE...MIDDLE,END)的数据的有效载荷。
图5a和5b分别说明了依照本发明执行另一个传输的主控制器和集线器的状态机构示意图,特别是一个分隔向内块/控制传输。过程500和过程560分别显示了一个主控制器和集线器的状态机构。过程500包括具有一个标记阶段(XOUT)的初始分隔事务处理,当在主控制器和集线器之间的事务处理出现暂停时,主控制器会重复这个事务处理3次。作为对启动分隔事务处理的响应,过程560将会确认并接受事务处理(ACK,接受xact),在从集线器到主控制器的握手发生通信失败之后对主控制器的重试做出响应(ACK,忽略xact),或者由于能够容纳初始事务处理信息的空间不足,请求主控制器请求重试。过程500显示了当集线器和代理之间的事务处理成功完成(Advance),接收到一个表示终点不能正常工作的指示(STALL),还没有通过集线器或者代理完成(NYET),由于从集线器接收的数据被破坏而将其忽略,或者完全分隔事务处理或其响应出现某种通信失败并导致主控制器和集线器之间出现3次暂停时,主控制器对完全分隔事务处理(XIN)的响应。作为对完全分隔事务处理的响应,过程560将指示集线器和代理之间的事务处理没有完成(NYET),或者将提供一个指示符(NAK,STAL1),表明在集线器和代理之间发生的情况,或者将集线器从代理中接收到的数据发送给主控制器。
图6a和6b分别说明了依照本发明一个主控制器和一个集线器执行另一个传输的状态机构示意图,特别是一个分隔中断传输。过程600和过程660分别显示了主控制器和集线器的状态机构。过程600包括一个带有标记阶段(XOUT)的初始分隔事务处理。作为对启动分隔事务处理的响应,过程660将接受事务处理(接受xact)。过程600显示了当集线器和代理之间的事务处理成功完成(Advance),接收到一个表示终点不能正常工作的指示(STALL),还没有通过集线器或者代理完成(NYET),从代理接收到一个NAK(NAK),如果接收到的数据是一个先前事务处理请求的代理的重试而重试标记部分(ignore data),或者完全分隔事务处理或其响应出现某种通信失败并导致在主控制器放弃与代理的通信之前出现3次暂停时,主控制器对完全分隔事务处理(XIN)的响应。作为对初始分隔事务处理的响应,过程660将在集线器与代理通信时指示出现一个暂停(NYET),或者集线器没有接收到这个请求启动事务处理并且没有任何相应的响应信息(STALL),或者提供一个指示符(NAK,STAL1),表明在集线器和代理之间的事务处理过程中发生的情况,或者将数据发送给主控制器。
图7a和7b分别说明了根据本发明执行另一个传输的一个主控制器和集线器的状态机构示意图,特别是一个同步传输的分隔。过程700和过程760分别显示了一个主控制器和一个集线器的状态机构。过程700包括一个带有标记阶段(XOUT)的初始分隔事务处理。作为对启动分隔事务处理的响应,过程760将接受事务处理(接受xact)。过程700显示了当集线器和代理之间的事务处理被成功完成并且所有的数据都已经返回(TAdvance),或者不再有数据返回(DAdvance),或者由于主控制器与集线器之间(暂停或者循环冗余码校验出错)、或与代理之间(NAK)或与代理有问题的集线器之间(NYET)的通信故障而发生错误(record error)时,主控制器对完全分隔事务处理(XIN)的响应。作为对完全分隔事务处理(XIN)的响应,过程660将表明从代理处接收的数据具有一个错误的循环冗余码校验(NAK),或者代理没有响应(NYET),或者集线器没有关于这个完全分隔的信息,或者向主控制器发送数据以指示所有的数据已经返回(DATA0)或还有一些数据等待返回(MDATA)。
在描述本发明其余的装置和方法之前,有必要对前面描述的协议进行一下总结。前面说明的协议允许主控制器通过集线器从代理处接收数据或者向代理发送数据。该协议允许主控制器进行第一事务处理(初始分隔事务处理),其中传输请求被传送给集线器。在主控制器执行了第一事务处理之后,它可以用同一集线器或者其他集线器进行中间事务处理而无需等待集线器和代理执行传输请求(也就是说,向代理或者从代理进行数据传输)。中间事务处理可能包括针对代理、与该代理在相同集线器上的另一代理、或者位于另一集线器上的其他代理的传输请求。在集线器向代理或者从代理完成数据传输之后,主控制器执行一个完全分隔事务处理(或者第二事务处理),得到集线器和代理之间执行的传输结果(如,从代理向集线器发送的数据或者握手)。通过允许主控制器拥有进行中间事务处理的能力,而不是等待集线器通过代理执行传输请求(或者第三事务处理),采用根据本发明的协议的总线的有效吞吐量能够比涉及速度切换或者要求主控制器在开始其他传输之前等待集线器利用代理执行传输的总线大的多。
上述协议规定了涉及通过总线进行数据通信的事务处理的顺序,但是它并没有明确说明将导致数据被发送到代理或者从代理接收数据的事务处理或者传输的时间安排。然而,代理传输的时间安排是非常重要的,这是因为在通常情况下代理要求定期(举例来说,同步或者中断)或者在异步(举例来说,块或者控制)基础上向主控制器发送数据或者从中接收数据。此外,上述协议允许主控制器在初始分隔和完全分隔事务处理之间执行中间事务处理(甚至是多个中间事务处理),但是这个协议并没有明确说明传输请求是如何存储于集线器之中,以及集线器和代理是如何在进行中间事务处理之前没有请求主控制器等待传输请求的情况下执行传输请求。前面关于协议的描述并没有解决这个问题,也就是说,由集线器发出的传输请求的时间安排和传送请求处理(例如,缓冲和性能)是由下面关于根据本发明的方法与装置的说明来解决的。本发明包括一个用来对进出代理的传输数据进行调度的方法和装置,和在一个集线器上处理传输请求的方法和装置。这里首先说明了调度数据传输的方法和装置,然后说明了缓冲以及执行传输请求的方法和装置。
再次参照图1,在***102对连接到***总线的代理进行配置的时候,首次启动调度数据传输的过程。这个配置过程一般会出现在***初始化或者开机或者在初始化之后某个代理连接到总线上的时候。传输数据的调度取决于与代理(或者一个代理的终点)相关的传输类型和传输数据的总量。下面首先说明代理处理的定期传输所采取的方式,例如同步和中断,接着描述代理处理的异步传输所采取的方式,例如块和控制。
在配置过程中,每个代理的每一个终点都会把与终点相关的最大数据有效载荷规模和传输类型(例如,向内/向外同步,中断,块,控制)通知给***。那些本领域的一般技术人员都非常了解每个代理通知***的方式和采用的装置,所以这里就不再加以赘述。最大数据有效载荷规模就是一个代理所能承受的出入数据的最大数量。***将数据的有效载荷大小和传输类型传送给主控制器。那些本领域的一般技术人员都非常了解***将数据载荷大小以及传输类型传送给主控制器所采取的方式,这里就不再加以赘述。主控制器利用前面所说的与每个终点相关的两条信息产生一个终点周期性传输的预算列表。在另一个具体实施方案中,诸如主控制器驱动器的软件驱动器,甚至是硬件驱动器都可以产生预算列表并执行下面所描述的调度操作。预算列表给出了进行传输(发送或者接收数据包)的最早时间,同时给出了获取与传输相关的结果的最晚时间。假定先前的传输是在最佳时机下(下面定义)进行的,那么进行传输的最早时间取决于先前传输所需要的时间总量。可获取与传输相关的结果的最晚时间取决于假定先前的传输是在最差时机下(下面定义)进行时所需要的时间总量,以及在最差条件下进行该传输所需要的时间。由于主控制器在进行传输之前需要将传输请求在集线器中进行缓冲,以便使得在集线器完成在缓冲请求之前的传输请求之后马上就可以转向缓冲的传输请求,因此可以开始传输的最早时间是非常重要的。可获得与传输的相关结果的最晚时间也是很重要的,因为在这个最晚时间之后主控制器实质上肯定能够获得结果。如果主控制器在最晚时间之前试图从集线器获取结果的话,这意味着还不能获取结果,这就需要一个采用多重检索的低效协议。
当每个传输都包括最大数据有效载荷并且完全没有位填充的时候,传输就是在最佳时机下发生的。当每个传输都包括最大数据有效载荷并且有最大位填充的时候,传输就是在最差时机下发生的。根据本发明的一个实施方案,位填充是由于在总线上的信号服从非归零制(NRZ)发送信号而产生的。根据本发明的一个实施方案,位填充可以把最大数据有效载荷增加16%。在一个具体实施方案中,最佳时机和最差时机都已经根据位填充而定义,但应当清楚在另外的实施方案中,时机可以根据能够增大或者减少传输量(或者时间)大小,或者产生延迟的其他事情的形式来规定。
现在将说明根据本发明的预算列表的产生。这里说明的是产生预算列表的一种途径,而很显然本发明的实质和范围还包括其他潜在的方法。预算列表就是能够在一个特定的帧模板中产生的容许的周期事务处理的列表。帧是作为总线规格一部分定义的一个连续发生的足够提供给一个或多个事务处理时间段。在一个实施方案中,一个帧被定义为1毫秒的时间段。对于那些拥有不同的容许周期事务处理集的帧来说,预算列表的结构也是不同的。一个帧模板就是对特定周期性重复的帧的描述,这个帧能够提供某个最大的事务处理量,每个事务处理都拥有某个最大的数据有效载荷。一个帧包含一些实际数据有效载荷的事务处理数,而一个帧模板描述了潜在的预算帧。每个预算列表都有一个相关的最佳状态信息和一个相关最差状态信息。最佳状态信息描述了帧模板中的每个事务处理发生在最佳时机下的情况。在其中一个实施方案中,最佳状态信息和最差状态信息表示的是传输,而不是事务处理本身。
图8a说明了一个根据本发明的最佳状态帧模板800的示意图。模块805表示关于第一个终点相关的传输,其中该传输是在最佳状态下发生的。模块810表示关于第二个终点的传输,其中传输是在最佳状态下发生的。其余的模块815~835表示的是由***配置的其他终点的类似的最佳状态传输。最差状态信息描述了在最差时机下发生在帧模板中的每个传输的情况。图8b说明了一个根据本发明的最差状态帧模板850的示意图。模块855表示关于第一个终点的传输,其中该传输是在最差状态下发生的。模块860表示关于第二个终点的传输,其中该传输是在最差状态下发生的。其余的模块865~885表示由***配置的其他终点的类似的最差状态传输。应当清楚,模块的相对大小仅仅是出于说明的考虑。
现在将通过检验模块805,810,855和860,解释最佳状态帧模板800和最差状态帧模板850。模块805和855分别表示对于第一个终点的最佳状态和最差状态传输。第一个终点的传输能够完成的最早时间是Ta。第一个终点的传输能够最晚完成时间是Tb。前面提出了关于第二个终点的传输最早可以在时间Ta开始,或者最晚可以在时间Tb开始。模块810和860分别表示对于第二个终点的最佳状态和最差状态的传输时间。第二个终点的传输最早能够完成时间是Tc。第二个终点的传输最晚能够完成时间是Td。前面提出了集线器在Ta之前必须获取第二个事务处理的必要信息,并且在Tb之后肯定能够获取第一个传输的结果。更进一步来讲,很显然传输的调度取决于执行先前每个传输所需要的时间。另外,很显然完全分隔事务处理的调度将取决于本次传输所需要的时间,如果有一个初始分隔事务处理,在该时间与初始分隔事务处理有关。
帧模板800和850是代表集线器和代理(集线器-代理或者标准帧)之间的一个帧的帧模板。根据本发明的一个实施方案,主控制器和集线器具有是标准帧的一小部分(微帧)的另一种帧。更明确地说,在这个具体实施方案中,八个微帧等于一个标准帧。既然主控制器和集线器使用微帧进行通信并且在到达集线器之前传输请求以初始分隔事务处理的形式开始,那么根据微帧描述执行初始分隔事务处理的时间是非常有必要的。同样,采用微帧描述执行完全分隔事务处理的时间也是很有必要的。根据一个实施方案,对于初始分隔事务处理的开始时间来说,在一个微帧中依照最佳状态帧在集线器和代理之间产生传输,在这个微帧出现之前,初始分隔事务处理应该出现一个微帧。根据一个实施方案,对于完全分隔事务处理的开始时间来说,在一个微帧中依照最差状态帧完成与初始分隔事务处理相关的传输,在这个微帧出现之后,完全分隔事务处理应该出现一个微帧。根据本发明的一个实施方案,主控制器对于每个帧模板使用最佳状态帧和最差状态帧来为每个帧模板中的每个终点产生一个初始分隔向量和一个完全分隔向量。初始分隔向量包含一个指示微帧的值,在该微帧中终点的初始分隔事务处理会在标准帧期间出现。根据一个实施方案,初始分隔向量值的范围在-1到6之间。完全分隔向量含有一个指示微帧的值,在该微帧中终点的完全分隔事务处理会在标准帧期间出现。根据一个实施方案,完全分隔向量值的范围是在1到8之间。
当被主控制器驱动器105分派了在特定帧之内对特定终点执行传输的任务时,主控制器110会检测与终点相关的最佳状态向量以及关于特定帧的帧模板。一个给定终点的初始分隔向量值和帧模板可以显示初始分隔事务处理将要在哪个微帧中执行。类似地,主控制器110会检测完全分隔状态向量来确定完全分隔事务处理将要在哪个微帧中执行。
图9包括一个集线器-代理帧序列(或者标准帧)900的序列和一个主控制器-集线器帧950。帧900包括帧910-930。帧930有一个传输901,传输901被调度为在微帧B中起始并在微帧B中终止。在该说明中,传输901是一个同步向外传输,但是显然其他的传输也可以使用类似的表示法。帧950包括含有子帧961和963的帧960。传输901被安排在微帧B的集线器120上进行并终止于微帧B(也就是说,在由帧900表示的集线器-代理时间帧中),而其相关的初始分隔事务处理在帧961中进行,相关的完全分隔事务处理在帧963中进行。在由帧950表示的主控制器-集线器时间帧里,相关的初始分隔事务处理在时间帧951a或者子帧963中进行。传输951表示主控制器-集线器时间帧中的传输901。其他传输和事务处理也可以在子帧961和963中进行。从图9中可以看出,子帧962和963也可用于采用其他代理的其他传输和事务处理。
上述描述通常出现在周期性事务处理情况中,而本发明并不限于周期性事务处理,还包括诸如前面所说的块和控制传输的异步传输。根据本发明的一个实施方案,一个标准帧的百分之九十被留给周期性传输。异步传输将在集线器和代理之间的总线上还有其可用空间的最早时间发生。当一个微帧还有空间来容纳初始分隔事务处理的时候,集线器将该微帧期间接受一个事务处理,直到这些事务处理能够被发送到标准总线上(也就是说,在集线器和代理之间)为止。接下来,在一个标准帧不再有其他未解决的周期性事务处理的时候,集线器将在该标准帧期间发出事务处理。一旦集线器接收到了一个初始分隔,主控制器将会稍后发出一个完全分隔事务处理并从集线器上获取该事务处理在标准集线器上的结果。在微帧中只要没有其他周期性事务处理需要发送,主控制器驱动器就会向集线器发出一个异步分隔事务处理。由集线器为块/控制事务处理提供的缓冲是与由集线器对周期性事务处理提供的缓冲是截然不同并且是分离的。
这里将描述一种依照本发明的周期性事务处理请求的缓冲和处理的方法和装置。图1e显示了图1a中的集线器120更为详尽的细节。根据一个实施方案,本发明的集线器120包括一个主控制器-集线器(或高速集线器)的控制器180,一个集线器代理(或低速)集线器的控制器181,一个存储器182,一个控制单元183,一个计时器183a,一个转发器184,一个路由选择逻辑线路185,以及端口185-189。控制器180在集线器120和主控制器110之间执行分隔事务处理。只要控制器180从主控制器110接收到初始分隔事务处理,控制器180就会把当前的微帧数作为该事务处理的时间戳记录在存储器182。另外的实施方案会把这个微帧数作为时间戳记录在状态记录中,从而把由集成器在不同微帧过程中接受到的事务处理组分开。控制器181在集线器和一个或多个代理之间执行传输。在控制器180和主控制器110之间执行初始分隔事务处理期间,控制器181执行的传输被接收。存储器182是与高速集线器控制器180和低速集线器控制器181相连接的。存储器包括一条带有多个阶段的流水线。根据一个实施方案,流水线分为5个阶段。每个阶段都与前面所定义的微帧相对应。每个流水线的阶段都含有大量的事务处理状态(或者事务处理记录)。根据一个实施方案,流水线的一个阶段含有19或者更少的事务处理状态或记录。每个阶段存储着代表着将执行的传输的记录。一个记录可以含有几个字段,例如设备和终点地址,传输方向,传输类型,状态,以及数据引用。状态指的是传输是否已经准备好(防止低速集线器控制器执行它),未处理(等待执行)或者已经准备好(已经被低速集线器控制器执行)。数据引用是从代理获得(也就是说向内传输)的数据或者将要发送给代理(例如向外传输)的数据在存储器中初始地址的指针。
集线器120包括控制单元183以及与之相连的时钟183a。根据一个实施方案,时钟183a产生一个微帧信号;即已经过去的标准帧持续时间的八分之一。控制单元183与存储器182相连,它可以监控阶段中的记录,在低速集线器控制器181上开始进行传输的时间超过事先安排的执行时间或者运行完成的时间的情况下,防止由低速集线器控制器181来进行传输。特别是根据一个实施方案,如果一个记录相关的时间标记表示它已经在一个微帧之前由控制器180从主控制器110接收,则该记录被设为未定的状态,以允许低速集线器控制器181在标准总线上发出事务处理。而另一个记录,与之相关的时间标记表示它已经在当前微帧读数的多于三个微帧之前被接收但还没有被低速集线器控制器181执行,则它被标为旧的记录,为一个由高速集线器控制器180进行的后续的相应的完全分隔事务处理作准备。而另一个记录,与之相对应的时间标记表示它已经在当前微帧读数的大于四个微帧之前被接收但还没有被执行或者当前正在被低速集线器控制器181执行,它会被中止并且从流水线中删除。时钟183a还与低速集线器控制器181相连。控制器181是按照周期性事务处理记录被标为未定状态的顺序来排列的。根据一个实施方案,控制器181通过最早期的微帧中接收的未定记录排在次早期的微帧中接收到记录之前,依此类推的顺序进行排序。根据一个实施方案,在控制单元181接收微帧读数时就继续进行下一个最早接收到的微帧。当控制单元181接收到微帧读数时,它会把下一个最早接收的微帧中的传输的状态从没有准备好更改为未定,并刷新上述旧的传输。为了执行一个传输,控制器181将数据传输给路由选择逻辑线路185,使控制器181获得到端口186到189的访问权。路由选择逻辑线路185让一个代理访问转发器184或者控制器181,从而根据代理的配置数据传输率来允许按照高传输率或者低传输率进行传输。转发器184与控制器180和路由选择逻辑线路185相连。转发器184转发从控制器180接收(或向其发送)的信号,和向一个与端口186-189之一相连的高速代理发送(或从中接受)信号。
通过早期微帧中接收的未定的记录进行顺序时,控制器181根据下面的规则进行操作。首先,在控制器181和代理之间执行传输之后,控制器181将会接收下一个事务处理记录并执行下一个未处理的同步或中断传输。其次,如果不存在未处理的同步或者中断传输,控制器181将执行未处理的块/控制传输。第三,如果块/控制传输也不存在的话,控制器181就会等待高速集线器控制器180指出一个未定的块/控制或者同步以及中断传输。
当低速集线器控制器执行传输的时候,在存储器182中就会存储相应的结果。这个结果可以是握手或者是从代理接收的数据。已经执行过的传输的状态值被低速集线器控制器181更改为准备就绪,并且它们的记录可以为高速集线器控制器180所得到。当高速集线器控制器180接收到完全分隔事务处理的时候,它会检测最近执行的带有相同地址信息的传输记录,并在最近执行传输的结果基础上向主控制器110发送回响应信息。如果该完全分隔事务处理不查询一个具有相同地址信息的事务处理,高速集线器控制器180将回应一个NYET信息。
这样,对在主控制器和集线器之间调度传输的方法和装置进行了介绍。此外,上面还介绍了在集线器上缓冲和执行传输的方法和装置。尽管这里参考特定的示例来描述本发明,很显然对于本领域的一般熟练人员而言,不违背本发明的主旨和范围的前提下,如下面的权利要求中提出的那样,可以对这些实施方案进行不同的修正和更改。因此,应将这些规范和附图看作是说明性的,而不应看作是一种限制。

Claims (20)

1.一种用来在主控制器和集线器之间进行数据通信的方法,该方法包括:
为先前的事务处理确定最早预计完成时间;
在正好在所述先前事务处理的所述最早预计完成时间之前的时间调度初始分隔事务处理以在主控制器和集线器之间执行。
2.依照权利要求1的方法,该方法进一步包括:
确定与所述初始分隔事务处理相关的预期结果的最晚预计完成时间;和
在正好在与所述初始分隔事务处理相关的结果的所述最晚预计完成时间之后的时间调度完全分隔事务处理以在主控制器和集线器之间执行;和
其中所述完全分隔事务处理要查询对应于所述初始分隔事务处理的结果。
3.依照权利要求2的方法,其中
确定所述最晚预计完成时间的步骤包括预计位填充对在所述先前的事务处理中执行一个传输请求所需时间总量的影响。
4.依照权利要求2的方法,其中
所述先前的事务处理含有一个数据有效载荷,和
确定所述最晚预计完成时间的步骤包括预计所述数据有效载荷对在所述先前的事务处理中执行一个传输请求所需时间总量的影响。
5.依照权利要求2的方法,其中
所述先前的事务处理含有一个数据有效载荷,
确定所述最早预计完成时间的步骤包括预计所述数据有效载荷对在所述先前的事务处理中执行一个传输请求所需时间总量的影响。
6.依照权利要求2的方法,其中所述初始分隔事务处理或者所述完全分隔事务处理要以第一数据传输率或者根据第一协议来执行的。
7.依照权利要求2的方法,其中所述初始分隔事务处理、所述完全分隔事务处理、或者所述先前的事务处理包括一个要以第二数据传输率或者根据第二协议进行的传输请求。
8.依照权利要求2的方法,其中
所述主控制器适用于在所述主控制器和所述集线器或者另一个集线器之间执行中间事务处理;
其中所述中间事务处理要在所述初始分隔事务处理和所述完全分隔事务处理之间执行;和
其中该所述初始分隔事务处理包括一个要在集线器和代理之间执行的相关传输请求。
9.依照权利要求8的方法,其中
所述中间事务处理包括一个要在所述集线器和另一个代理之间、或者在另一个集线器和另一个代理之间执行的中间事务处理传输请求。
10.依照权利要求8的方法,其中
所述中间事务处理包括一个要在集线器和代理之间执行的中间事务处理传输请求。
11.一种数字***,它包括:
一个主控制器;
一个与主控制器相连的主机驱动器;
其中所述主机驱动器配置为调度初始分隔事务处理要在主控制器和集线器之间执行的时间,以及所述主机驱动器配置为确定先前事务处理的最早预计完成时间;和
其中所述初始分隔事务处理的调度时间正好在所述先前事务处理的所述最早预计完成时间之前。
12.依照权利要求11的***,其中
所述主机驱动器配置为确定与所述初始分隔事务处理相关的预期结果的最晚预计完成时间;和
所述主机驱动器配置为在正好在与所述初始分隔事务处理相关的结果的所述最晚预计完成时间之后的时间调度完全分隔事务处理以在所述主控制器和所述集线器之间执行;
其中所述完全分隔事务处理要查询对应于所述初始分隔事务处理的结果。
13.依照权利要求12的***,其中
所述最晚预计完成时间包括位填充对在所述先前事务处理中执行一个传输请求所需时间总量的预计的影响。
14.依照权利要求12的***,其中
所述先前的事务处理含有一个数据有效载荷,和
所述最晚预计完成时间包括所述数据有效载荷对在所述先前事务处理中执行一个传输请求所需时间总量的预计的影响。
15.依照权利要求12的***,其中
所述先前的事务处理含有一个数据有效载荷,和
所述最早预计完成时间包括所述数据有效载荷对在所述先前事务处理中执行一个传输请求所需时间总量的预计的影响。
16.依照权利要求12的***,其中所述初始分隔事务处理或者所述完全分隔事务处理要以第一数据传输率或者按照第一协议执行。
17.依照权利要求12的***,其中所述初始分隔事务处理、所述完全分隔事务处理、或者先前的事务处理包括要以第二数据传输率或者根据第二协议执行的传输请求。
18.依照权利要求12的***,其中
所述主控制器适用于在所述主控制器和所述集线器或者另一个集线器之间执行中间事务处理;
其中所述中间事务处理要在所述初始分隔事务处理和所述完全分隔事务处理之间执行;以及
其中所述初始分隔事务处理包括一个将要在所述集线器和代理之间执行的相关传输请求。
19.依照权利要求18的***,其中
所述中间事务处理包括一个要在所述集线器和另一个代理、或者在另一个集线器与另一个代理之间执行的中间事务处理传输请求。
20.依照权利要求18的***,其中
所述中间事务处理包括一个将要在集线器和代理之间执行的中间事务处理传输请求。
CN200310113847A 1999-07-27 2000-04-25 数据通信的方法和数据通信的输入/输入装置 Expired - Lifetime CN100594705C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/361,677 US6792495B1 (en) 1999-07-27 1999-07-27 Transaction scheduling for a bus system
US09/361677 1999-07-27

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB00813460XA Division CN1179283C (zh) 1999-07-27 2000-04-25 数据通信的方法和数据通信的集线器

Publications (2)

Publication Number Publication Date
CN1520122A CN1520122A (zh) 2004-08-11
CN100594705C true CN100594705C (zh) 2010-03-17

Family

ID=23423021

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200310113847A Expired - Lifetime CN100594705C (zh) 1999-07-27 2000-04-25 数据通信的方法和数据通信的输入/输入装置
CNB00813460XA Expired - Lifetime CN1179283C (zh) 1999-07-27 2000-04-25 数据通信的方法和数据通信的集线器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB00813460XA Expired - Lifetime CN1179283C (zh) 1999-07-27 2000-04-25 数据通信的方法和数据通信的集线器

Country Status (6)

Country Link
US (2) US6792495B1 (zh)
EP (1) EP1203300B1 (zh)
CN (2) CN100594705C (zh)
HK (1) HK1050405A1 (zh)
TW (1) TW518471B (zh)
WO (1) WO2001008019A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7570724B1 (en) * 1999-10-14 2009-08-04 Pluris, Inc. Method of link word synchronization
US7512082B1 (en) * 1999-12-14 2009-03-31 Intel Corporation Tracking transaction status for a bus system providing legacy bus compatibility
US6771664B1 (en) * 1999-12-28 2004-08-03 Intel Corporation Transaction scheduling for a bus system in a multiple speed environment
US7028124B2 (en) * 2001-09-26 2006-04-11 Intel Corporation Method and apparatus for dual queue head processing of interrupt endpoints
DE10224163B4 (de) * 2002-05-31 2005-05-04 Advanced Micro Devices, Inc., Sunnyvale Transaktionsdauermanagement in einem USB-Hostcontroller
KR100943742B1 (ko) * 2003-06-03 2010-02-23 삼성전자주식회사 Usb 트랜잭션을 무선 pan 상에서 전송하는 장치 및방법
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US20050210185A1 (en) * 2004-03-18 2005-09-22 Kirsten Renick System and method for organizing data transfers with memory hub memory modules
WO2005125093A2 (en) * 2004-06-15 2005-12-29 Koninklijke Philips Electronics N.V. Bus controller for handling split transactions
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7549004B1 (en) * 2004-08-20 2009-06-16 Altera Corporation Split filtering in multilayer systems
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7340550B2 (en) * 2004-12-02 2008-03-04 Intel Corporation USB schedule prefetcher for low power
US20060190655A1 (en) * 2005-02-24 2006-08-24 International Business Machines Corporation Apparatus and method for transaction tag mapping between bus domains
US7702825B2 (en) * 2005-06-29 2010-04-20 Intel Corporation Enhancements to universal serial bus (USB) suspend and resume operations
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7594055B2 (en) * 2006-05-24 2009-09-22 International Business Machines Corporation Systems and methods for providing distributed technology independent memory controllers
US7490255B2 (en) * 2006-06-30 2009-02-10 Intel Corporation Power efficient flow control model for USB asynchronous transfers
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US20080162974A1 (en) * 2006-12-29 2008-07-03 Keys John S Universal serial bus host controller
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
JP2011198046A (ja) * 2010-03-19 2011-10-06 Kddi Corp 中継装置及び方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5262942A (en) * 1990-06-05 1993-11-16 Bankers Trust Company Financial transaction network
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US5870567A (en) * 1996-12-31 1999-02-09 Compaq Computer Corporation Delayed transaction protocol for computer system bus

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4792495A (en) * 1985-04-22 1988-12-20 Seiko Epson Corporation Fusible ink sheet
US4785394A (en) * 1986-09-19 1988-11-15 Datapoint Corporation Fair arbitration technique for a split transaction bus in a multiprocessor computer system
JP3411300B2 (ja) * 1992-02-18 2003-05-26 株式会社日立製作所 情報処理装置
US5553310A (en) * 1992-10-02 1996-09-03 Compaq Computer Corporation Split transactions and pipelined arbitration of microprocessors in multiprocessing computer systems
US5708794A (en) 1993-08-10 1998-01-13 Dell Usa, L.P. Multi-purpose usage of transaction backoff and bus architecture supporting same
US5533204A (en) * 1994-04-18 1996-07-02 Compaq Computer Corporation Split transaction protocol for the peripheral component interconnect bus
US5742847A (en) 1994-10-31 1998-04-21 Intel Corporation M&A for dynamically generating and maintaining frame based polling schedules for polling isochronous and asynchronous functions that guaranty latencies and bandwidths to the isochronous functions
US5621897A (en) * 1995-04-13 1997-04-15 International Business Machines Corporation Method and apparatus for arbitrating for a bus to enable split transaction bus protocols
US5732244A (en) * 1995-07-24 1998-03-24 Unisys Corp. Multiprocessor with split transaction bus architecture for sending retry direction to other bus module upon a match of subsequent address bus cycles to content of cache tag
JPH0944443A (ja) 1995-07-31 1997-02-14 Nec Eng Ltd バスインタフェース制御装置
US5961623A (en) * 1996-08-29 1999-10-05 Apple Computer, Inc. Method and system for avoiding starvation and deadlocks in a split-response interconnect of a computer system
US5978878A (en) * 1996-09-26 1999-11-02 Vlsi Technology Selective latency reduction in bridge circuit between two busses
US5933611A (en) * 1997-06-23 1999-08-03 Opti Inc. Dynamic scheduler for time multiplexed serial bus
US6366590B2 (en) * 1998-03-16 2002-04-02 Sony Corporation Unified interface between an IEEE 1394-1995 serial bus transaction layer and corresponding applications
US6243778B1 (en) * 1998-10-13 2001-06-05 Stmicroelectronics, Inc. Transaction interface for a data communication system
US6145039A (en) * 1998-11-03 2000-11-07 Intel Corporation Method and apparatus for an improved interface between computer components
US6389029B1 (en) * 1998-11-10 2002-05-14 Nortel Networks Limited Local area network incorporating universal serial bus protocol
US6813251B1 (en) * 1999-07-27 2004-11-02 Intel Corporation Split Transaction protocol for a bus system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5262942A (en) * 1990-06-05 1993-11-16 Bankers Trust Company Financial transaction network
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US5870567A (en) * 1996-12-31 1999-02-09 Compaq Computer Corporation Delayed transaction protocol for computer system bus

Also Published As

Publication number Publication date
US6792495B1 (en) 2004-09-14
HK1050405A1 (en) 2003-06-20
CN1520122A (zh) 2004-08-11
CN1376280A (zh) 2002-10-23
EP1203300B1 (en) 2011-06-08
TW518471B (en) 2003-01-21
WO2001008019A1 (en) 2001-02-01
EP1203300A1 (en) 2002-05-08
CN1179283C (zh) 2004-12-08
US20040268010A1 (en) 2004-12-30

Similar Documents

Publication Publication Date Title
CN100594705C (zh) 数据通信的方法和数据通信的输入/输入装置
CN1205562C (zh) 总线***的分隔事务协议
US5175732A (en) Method and apparatus for controlling data communication operations within stations of a local-area network
EP0619036B1 (en) Method and apparatus for processing data within stations of a communication network
CN101320361B (zh) 一种多cpu通讯方法及***
JPH09224044A (ja) 配信システム
CN1279790A (zh) 快速16位分离事务i/o总线
US5717855A (en) Segmented communications adapter with packet transfer interface
CN1038362A (zh) ***设备控制器及适配器接口
US6771664B1 (en) Transaction scheduling for a bus system in a multiple speed environment
EP1253520B1 (en) Apparatus for issuing command for high-speed serial interface
EP1617594A2 (en) A provisional log-in unit
US7512082B1 (en) Tracking transaction status for a bus system providing legacy bus compatibility
CN1241080A (zh) 以最大速度在数据总线上发送数据的方法和设备
JPH10326240A (ja) ネットワークファイル転送処理方式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20100317