CN100549992C - 可减少延迟的数据传送与接收方法与系统 - Google Patents

可减少延迟的数据传送与接收方法与系统 Download PDF

Info

Publication number
CN100549992C
CN100549992C CNB2007100881983A CN200710088198A CN100549992C CN 100549992 C CN100549992 C CN 100549992C CN B2007100881983 A CNB2007100881983 A CN B2007100881983A CN 200710088198 A CN200710088198 A CN 200710088198A CN 100549992 C CN100549992 C CN 100549992C
Authority
CN
China
Prior art keywords
data
request
interface unit
processor
storer
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.)
Active
Application number
CNB2007100881983A
Other languages
English (en)
Other versions
CN101021820A (zh
Inventor
李察·邓肯
威廉V·米勒
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN101021820A publication Critical patent/CN101021820A/zh
Application granted granted Critical
Publication of CN100549992C publication Critical patent/CN100549992C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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

Abstract

本发明是关于一种可减少延迟的数据传送与接收系统及其方法,以提升处理器-存储器间的执行效能,此系统包含处理器,其具有第一总线接口单元及第二总线接口单元。该处理器可同时处理与存储器间多个待处理的交易。

Description

可减少延迟的数据传送与接收方法与系统
技术领域
本发明是关于一种可减少延迟的数据传送与接收系统及其方法,特别是关于一种处理器与系统总线上的其它元件间消息交换的系统、装置与方法。
背景技术
众所周知,处理器(例如:微处理器)的制造与应用十分广泛,从桌上型计算机至可携式电子设备,例如手机或个人数字助理(personal digitalassistants,PDA)等,皆属于其应用领域。许多的处理器使用已知的管线(pipelining)架构,以将不同的处理器操作分割为阶段处理,使处理器可在同一时间内执行更多工作。举例来说,处理器通常将指令的获取和加载与指令的执行分开处理,因此在执行某一指令的同时,处理器也可自存储器中获取下个指令以备执行。从每个时钟周期可执行的指令数量的观点来看,使用管线架构可增加处理器的效能。而处理器的多个阶段常常需要依据现行处理器指令和指令的所在阶段,对计算机的存储器进行数据读写的存取操作。
如图1的计算机系统所示,计算机系统通常使用系统总线(systembus)108来作为系统中不同元件之间传递消息的角色,例如处理器102、存储器110、外设装置112及其它的元件。各元件通常与系统总线108相耦接,并通过总线接口单元与系统总线108和其它元件沟通。上述可请求(request)对系统总线108作存取的元件,亦可称为总线主控装置(bus master)。当总线主控装置要求对系统总线108作存取时,是由系统总线仲裁器(system busarbiter)114决定何时允许该存取较为合适。系统总线仲裁器114根据数个因素来决定允许对系统总线108做存取的合适时机,这些因素包含,但不限制于以下各项:系统总线108目前是否正由其它的总线主控装置所使用,或该存取请求是否为高优先次序的请求。除了使用系统总线仲裁器114以外,已知技术中尚有其它系统与方法可用于仲裁计算机系统100的系统总线108的存取。
图2介绍一已知技术的处理器管线,此实施例的处理器管线为核心管线(core pipeline),其于获取指令以及执行与存储器间的交流时,需要与计算机系统的存储器做沟通。上述与存储器间的交流包含存取存储器内部的数据或者写入存储器,诸如此类。如图2所显示,处理器202可通过快取存储器或缓冲器来传递请求,以执行与存储器210间的交流,再经由总线接口单元(bus interface unit)224将请求传送至存储器210。当系统总线仲裁器214裁定可允许处理器202及其总线接口单元224存取系统总线208时,处理器202的总线接口单元224即可通过系统总线208与存储器210作通讯。
图3是示意核心管线316较详尽的实施例以及相关总线接口单元324的架构。当发生以下情况时,管线316的各阶段需要与存储器310沟通,例如指令快取存储器318无法将适当的请求指令传送给获取阶段(fetch)328,或者数据快取存储器320无法将所请求的存储器数据传送给存储器存取阶段(memory access)334。于此实施例中,存储器存取阶段334可通过数据快取存储器320发送请求以将数据写入存储器310。再者,核心管线316的各个阶段可通过单一个总线接口单元324来与系统总线308以及存储器310两者沟通请求,总线接口单元324可向系统总线仲裁器314请求对系统总线308作存取,并接续传递该请求至存储器310。
图2与图3的计算机系统架构的缺点为,核心管线与存储器或其它系统总线的外设装置之间的所有传输交流皆必须通过单一个总线接口单元来执行。举例而言,倘若在获取阶段,指令快取存储器并未包含所请求的指令,而需自存储器接收该指令时,相较于指令存储器已包含所请求的指令的状况,获取阶段将会延迟较长的时钟周期。此种过长的延迟会延宕获取管线阶段执行该指令的时间,且阻碍获取阶段前进至下一个指令。此延迟同时还会造成核心管线的下游(downstream)阶段发生延宕。如果系统总线的规格不允许处理器的总线接口单元同时处理一个以上的传输时,核心管线中需要与存储器或系统总线上的其它元件互做交流的下游阶段常会受到延迟。此点为符合先进高性能总线(AHB,Advanced High-performance Bus)规格或其它已知规格的系统总线所具有的特征。
先进高性能总线规格允许系统总线主控装置,如处理器与存储器等,对存储器进行分散交易(split transactions)。换句话说,分散交易允许总线接口单元获得对系统总线的存取权,并发送请求至系统总线上,但是在交易完成之前,总线接口单元必须先交出其对系统总线的存取权。如此一来即可允许其它的总线主控装置执行其它与系统总线相关的操作,或者在上一请求仍在接受服务时起始其它交易。当上一请求即将完成时,总线接口单元可重新获得对系统总线的存取权以完成上一请求的交易。如上所述,虽然先进高性能总线规格以及其它系统总线规格允许总线主控装置进行分散交易,但并不允许总线主控装置对存储器同时执行一个以上的分散交易。
于上述的计算机系统架构中(如图2与图3所示),其中的系统总线结合处理器及核心管线的架构所具有的特征后,并无法创造出理想的执行效能。图4描绘了系统总线上源自于处理器的总线接口单元与存储器的存储器控制器的部分信号,其中的存储器控制器是用以掌控系统总线与其它总线主控装置间的沟通。由于系统总线规格仅允许每一个总线接口单元执行一个分散交易,在等待核心管线传送下一个请求时,存储器可能进入闲置(idle)状态。此闲置时间显现出核心管线的缺乏效率,如能将此缺点改善则必可使计算机系统的效能大为增加。因此,上述缺点实为一待改善的课题。
发明内容
本发明是关于一种改善系统总线上的存储器交易的系统与方法,以提升计算机系统的效能,其中此存储器交易是介于处理器与存储器之间。根据上述的目的,本发明的一实施例提供一种数据发送与接收系统,包含处理器,具有耦接至系统总线的第一处理器总线接口单元与第二处理器总线接口单元,该第一处理器总线接口单元是耦接至该处理器的指令获取阶段,并发送请求至该存储器以获取指令;该第二处理器总线接口单元是耦接至该处理器的数据存取阶段,并发送请求至该存储器以读取或写入数据;系统总线仲裁器,耦接至该系统总线,用以仲裁该系统总线的存取;存储器,耦接至该系统总线;以及边带信道,用以传送控制信号至该处理器与该系统总线仲裁器,其中该控制信号于自该系统总线读取数据或自该系统总线写入数据时,会通告该处理器与该系统总线仲裁器;其中该第一处理器总线接口单元与该第二处理器总线接口单元用以发送请求至存储器控制器,该存储器控制器用以控制该存储器的存取,并可服务来自该第一处理器总线接口单元的第一请求与来自该第二处理器总线接口单元的第二请求,并在该第一请求服务完成前即可开始服务该第二请求。
于本发明的另一实施例中,处理器为核心管线架构,并包含至少一指令获取阶段、数据存取阶段与数据写回阶段。此处理器还包含第一总线接口单元,其于指令获取阶段自存储器获取指令,以及第二总线接口单元,其于数据存取阶段对存储器进行存取。
本发明的再一实施例提供一种可减少延迟的数据发送与接收方法,以改善系统总线通讯能力,此方法包含自第一处理器总线接口单元发送第一请求至系统总线的第一请求,以及自第二处理器总线接口单元发送第二请求至系统总线。
本发明还提供了一种适用于处理器与系统总线间以减少延迟的数据发送与接收方法,包含:通过第一处理器总线接口单元发送第一请求至该系统总线;以及通过第二处理器总线接口单元发送第二请求至该系统总线;其中该第一请求与该第二请求是分别来自该处理器的不同管线阶段,该第一处理器总线接口单元于指令获取阶段至存储器获取指令,该第二处理器总线接口单元于数据存取阶段存取数据至该存储器,且可于该第一请求未服务完成之前发送并开始处理该第二请求。
本发明还提供了一种可减少延迟的计算机系统,包含:处理器,具有包含至少一指令获取阶段与一数据存取阶段的核心管线;第一总线接口单元,于该指令获取阶段至存储器获取指令;以及第二总线接口单元,于该数据存取阶段存取数据至该存储器;其中该第二总线接口单元可于该第一总线接口单元尚未完成指令获取之前,存取数据至该存储器。
附图说明
图1是已知计算机系统的方块图。
图2是已知处理器的方块图。
图3是已知处理器的核心管线的方块图。
图4显示一已知计算机系统的各元件运作的时序图。
图5是本发明一实施例的计算机系统的方块图。
图6是本发明另一实施例的计算机系统与核心管线细部的方块图。
图7是本发明另一实施例的计算机系统的方块图。
图8为本发明一实施例的系统总线上各元件运作的时序图。
[主要元件标号说明]
100    计算机系统              102    处理器
104    总线主控装置            106    总线主控装置
108    系统总线                110    存储器
112    外设装置                114    系统总线仲裁器
202    处理器                  204    总线主控装置
208    系统总线                210    存储器
212    外设装置                214    系统总线仲裁器
216    核心管线                218    指令快取存储器
220    数据快取存储器          222    写回缓冲器
224    总线接口单元            302    处理器
304    总线主控装置            308    系统总线
310    存储器                  312    外设装置
314    系统总线仲裁器          316    核心管线
318    指令快取存储器          320    数据快取存储器
322    写回缓冲器              324    总线接口单元
328    获取阶段                330    解码阶段
332    执行阶段                334    存储器存取阶段
336    写回存取阶段            502    处理器
504    总线主控装置            508    系统总线
509    边带通道                510    存储器
511    存储器控制器            512    外设装置
514    系统总线仲裁器          516    核心管线
518    指令快取存储器          520    数据快取存储器
522    写回缓冲器              526    总线接口单元
538    总线接口单元            602    处理器
604    总线主控装置            608    系统总线
609    边带通道                610    存储器
611    存储器控制器            612    外设装置
614    系统总线仲裁器          616    核心管线
618    指令快取存储器          620    数据快取存储器
622    写回缓冲器              626    总线接口单元
628    获取阶段                630    解码阶段
632    执行阶段                634    数据存取阶段
636    写回阶段                638    总线接口单元
702    处理器                  704    总线主控装置
708    系统总线                709    边带通道
710    存储器                  711    存储器控制器
712    外设装置                714    系统总线仲裁器
716    核心管线                718    指令快取存储器
720    数据快取存储器          722    写回缓冲器
726    总线接口单元            728    获取阶段
730    解码阶段                732    执行阶段
734    数据存取阶段            736    写回阶段
738    总线接口单元            740    总线接口单元
具体实施方式
本发明揭露一种计算机系统,特别是一种可改善系统总线通讯能力的处理器系统。本发明的一实施例提供一种可减少延迟的数据传送与接收系统,该系统的处理器具有与系统总线耦接的第一处理器总线接口单元以及第二处理器总线接口单元。该第一处理器总线接口单元通过系统总线对存储器发送请求以支持指令的获取,而第二处理器总线接口单元对存储器与外设装置发送请求以支持数据存取。在不允许任一总线主控装置执行超过一项分散交易的系统总线规格,例如先进高性能总线规格的计算机系统中,第一处理器总线接口单元与第二处理器总线接口单元可允许处理器在第一核心管线阶段起始第一分散交易,并且无论此第一分散交易完成与否,仍可在第二核心管线阶段起始第二分散交易。
于已知技术中,若在获取阶段需要执行存储器存取以完成指令的获取,相较于该指令已存在于处理器的指令快取存储器之内的情况,则核心管线可能会发生延迟,使数据存取需要费更多个时钟周期才能完成。此种延迟的潜在影响为核心管线的下游阶段,例如数据存取阶段,即会受阻而无法对存储器或外设装置发送请求。其是因为系统总线规格不允许单一总线主控装置执行多重分散交易,若先前的获取阶段已发送请求,则下游阶段无法再作请求。在此情况下,数据存取阶段必须暂行等待,直到获取阶段对存储器所做的请求执行完毕为止。上述情形可能造成核心管线额外的延迟,且降低处理器的效能。
本发明的一实施例可减少核心管线延迟对计算机系统的性能所造成的影响,其可允许处理器对存储器或其它元件同时发送超过一个请求至系统总线上。
本发明的一些实施例将详细描述如下。然而,除了本发明所揭露的实施例之外,本发明还可以广泛地在其它的实施例中施行,且本发明的范围不受限定,凡其它未脱离本发明所揭示的精神下而完成的等效改变或修饰,以之后的申请专利范围为准。
图1为已知技术的计算机系统100的架构。此计算机系统100的处理器102、存储器110、其它的总线主控装置104、106、外设装置112以及系统总线仲裁器114皆耦接至系统总线108,以与系统中的其它元件相互沟通。如所已知,总线主控装置104、106为位于系统总线108上的元件,并利用系统总线108与其它位在系统总线108上的元件相互沟通。系统总线108可能是任何规格的总线,例如先进高性能总线。系统总线仲裁器114负责仲裁哪个元件可存取系统总线108,亦判断何时该元件可对系统总线108作数据传输。
图2为处理器202的方块图。如已知所示,处理器202是通过总线接口单元224与系统总线208进行通讯。核心管线216可对存储器210发送数据读取或者数据写入的请求。在一实施例中,指令快取存储器218、数据快取存储器220与数据写回缓冲器222是用以服务核心管线216的某一阶段的请求,如有必要,此请求可通过总线接口单元224中继传送到存储器系统210。图3是示意处理器的核心管线316的方块图。当获取阶段328对指令快取存储器318请求指令,指令快取存储器318若包含此指令的话,可直接传送此指令至获取阶段328;若否,则需通过总线接口单元324与系统总线308对存储器310发送请求,以取得此指令并传送至获取阶段328。同理,当存储器存取阶段334对数据快取存储器320请求数据时,若数据快取存储器320包含此数据,则可直接将数据传送至存储器存取阶段334;若否,则通过总线接口单元324与系统总线308对存储器310或外设装置312发送请求,以取得此数据并传送至存储器存取阶段324。又,于一实施例中,当存储器存取阶段334请求写入数据至存储器310或外设装置312时,数据快取存储器320将决定是将此请求直接通过总线接口单元324与系统总线308传送至其目的地,或者将此数据发布至写回缓冲器322。如果此数据是发布至写回缓冲器322,则此数据会被储存于写回缓冲器322直到较高优先权的请求被服务为止;接着写回缓冲器322会通过总线接口单元324与系统总线308将数据写入存储器310中。
系统总线308为符合可支持分散交易规格的系统总线。如所已知与图4的时序图所示,总线主控装置发送请求n,并通过系统总线与总线接口单元传送至从属装置(slave device),从属装置对此请求响应分散控制信号,以示意此交易为分散交易,并使系统总线仲裁器允许其它总线主控装置存取系统总线。当该从属装置完成对此请求的服务,且准备好对发出请求的总线主控装置传送响应时,其送出非分散(unsplit)信号,以通知系统总线仲裁器与发出请求的总线主控装置此交易已准备进入完成。此非分散信号可通过边带信道(sideband channel)传送至系统总线仲裁器与发出请求的总线主控装置,然而,本领域技术人员应可理解该非分散信号亦可以其它方式传送。
然而,如图4所示,处理器的单一总线接口单元所发送的两个连续请求n与m可能造成存储器闲置时间的产生,如图中存储器内部状态所示。如已知所示,当核心管线中各阶段所需的数据须自存储器获取时,自存储器获取与写入数据所需的时间会有遭遇到瓶颈的时候,导致处理器的核心管线延迟。反之,若核心管线各阶段所需的数据是来自于处理器的快取存储器时,则核心管线可较快完成运作。
图5为本发明一实施例的计算机系统500的方块图。于此实施例中,处理器502、存储器510、其它的总线主控装置504、外设装置512与系统总线仲裁器514皆耦接至系统总线508,以与系统中的其它元件相互沟通。存储器510用以储存处理器502与计算机系统500其它的元件所需的数据以及指令。存储器510也允许处理器502以及计算机系统500其它的元件通过对存储器控制器511发送请求的方式,将数据储存或写入至存储器510。众所周知,存储器控制器511可代表存储器510接收请求并管理各请求对存储器510的存取。处理器502包含核心管线516,用以于处理器502之中执行下列工作(但不限定):获取指令、解码指令、执行指令、读写存储器。处理器502的核心管线516可与指令快取存储器518、数据快取存储器520及写回缓冲器522进行通讯。指令快取存储器518是保留作为将指令高速传送至核心管线516之用的快取存储器。如所已知,指令快取存储器518可用以保留最近所获取的指令以利快取,应用预测算法以获取及储存常被请求的指令,或预测核心管线516即将会请求的指令。然而,指令快取存储器518通常不会将核心管线516可能请求的所有指令加以储存,因此若核心管线516所请求的指令不在指令快取存储器518中,则指令快取存储器518会通过第一总线接口单元526向存储器510请求该指令。
上述各元件还耦接至边带通道509,用以沟通耦接至系统总线508的各元件之间的各类信号。例如,“分散”或“非分散”信号即可通过边带通道509进行传递,以避免占用系统总线508。
数据快取存储器520是保留作为数据于存储器510至核心管线516的高速传递之用。然而数据快取存储器520通常不会将核心管线516所请求的数据全部储存起来。若核心管线516所请求的数据不包含在数据快取存储器520中,则数据快取存储器520会通过第二总线接口单元538向存储器系统510请求数据。
数据快取存储器520也可用以保留核心管线516所产生的对存储器510写入数据的请求,并在适当的时机发送至写回缓冲器522。写回缓冲器522可使用任何已知的方法或算法以有效地缓冲核心管线516的请求,并通过第二总线接口单元538发送该请求以将数据写入存储器510。写回缓冲器522还可与数据快取存储器520进行通讯,其亦可通过第二总线接口单元538传送核心管线516的请求以将数据写入存储器510中。
系统总线仲裁器514用以仲裁对系统总线508的存取,并判断何时为某一系统总线主控装置可擦写数据至系统总线508的适当时机。如所已知,若系统总线508为不允许单一总线主控装置执行超过一个分散交易的规格时,例如先进高性能总线,自存储器510获取与写入数据会导致核心管线516的管线延迟,进而造成系统效能降低。根据本发明所揭露的实施例,处理器502可通过第一总线接口单元526与第二总线接口单元538的使用,达到使系统总线508以及系统总线仲裁器514犹如面对多个总线主控装置的效果。因此,本发明的处理器502可同时起始一个以上的分散交易,以减少管线延迟的影响,降低存储器闲置时间并提升计算机系统的效能。
图6是本发明另一实施例的计算机系统与核心管线细部的方块图。此计算机系统600包含处理器602与获取管线阶段628、解码管线阶段630、执行管线阶段632、数据存取管线阶段634以及写回管线阶段636。获取管线阶段628是耦接至指令快取存储器618,指令快取存储器618用以保留获取阶段628所请求的指令,使指令可高速传送至核心管线616。如已知所示,指令快取存储器618可保留最近所获取的指令、应用预测算法以获取及储存常使用的请求指令、或预测获取阶段628即将使用的指令。然而指令快取存储器618并不会储存核心管线616可能请求的所有指令。若获取阶段628所请求的指令并不包含在指令快取存储器618中,则指令快取存储器618将会通过第一总线接口单元626自存储器610请求指令。再者,上述的各个元件还可与边带通道609相耦接,以于系统总线608所连接的各元件之间沟通信号。例如,“分散”或“非分散”信号可由边带信道609进行传递,而不需由系统总线608来传递此信号。
数据存取阶段634是耦接至数据快取存储器620,其是用以保留数据存取阶段634所请求的快取存储器数据。数据快取存储器620保留存储器610的快取数据,以利高速传送至数据存取阶段634。数据快取存储器620还与第二总线接口单元638相耦接,第二总线接口单元638又与系统总线608耦接。第二总线接口单元638代表数据快取存储器620与耦接至系统总线608的计算机系统元件进行通讯。然而数据快取存储器620通常并不会将数据存取阶段634可能会请求的所有数据储存起来。若数据存取阶段634所请求的数据不在数据快取存储器620中,则数据快取存储器620会通过第二总线接口单元638自存储器610或外设装置612请求数据。
若核心管线616请求覆写存储器610中的数据,且该笔数据亦同时存在于数据快取存储器620中,则数据快取存储器620会将该笔数据连带更新。这个操作可以减少在仅因核心管线616发送请求以更新存储器610的数据的情况下,数据快取存储器620需重新请求已自存储器60中快取而得的数据的需要。
数据快取存储器620也耦接至写回缓冲器622。写回缓冲器622用以保留数据存取阶段634请求写入存储器610的数据的快取或缓冲之用。写回缓冲器622亦耦接至第二总线接口单元638,如上所述,第二总线接口单元638进而耦接至系统总线608。写回缓冲器622可保留数据快取存储器620所产生的写入存储器的请求,并将这些请求在适当的时候通过第二总线接口单元638与系统总线608传送至存储器610。写回缓冲器622可使用任何已知方法或算法来提升缓冲与传送请求以写入存储器610的效能。
图7为本发明另一实施例的方块图。此计算机系统700包含处理器702、存储器710、其它的总线主控装置704、外设装置712与系统总线仲裁器714,上述各元件皆耦接至系统总线708以利于彼此间的通讯。存储器710储存处理器702与计算机系统700其它的元件所需的数据以及指令,且容许处理器702以及计算机系统700其它的元件将数据储存或写入其中。处理器702包含核心管线716,以于处理器702之中执行下列各项工作(但不局限):获取指令、解码指令、执行指令、读写存储器。如图7中所示,核心管线716包含获取阶段728、解码阶段730、执行阶段732、数据存取阶段734以及写回阶段736。处理器702的各个核心管线阶段可与指令快取存储器718、数据快取存储器单元720以及写回缓冲器722进行通讯。
获取阶段728耦接至指令快取存储器718,而指令快取存储器718用以保留指令的快取,以利高速传送至获取阶段728。如已知所示,指令快取存储器718可保留最近所获取的指令、应用预测算法以获取及储存常使用的请求指令、或预测获取阶段728即将使用到的指令。然而指令快取存储器718并不会储存核心管线716可能请求的所有指令。若获取阶段728所请求的指令并不包含在指令快取存储器718之中,则指令快取存储器718将会通过第一总线接口单元726自存储器系统710请求指令。
数据存取阶段734是耦接至用以保存其所请求的数据的快取的数据快取存储器720。数据快取存储器720用以保留存储器710中数据的快取,以利高速传送至核心管线716。数据快取存储器720是耦接至第二总线接口单元738,后者又与系统总线708耦接。第二总线接口单元738代表数据快取存储器720与计算机系统中位于系统总线708之上的元件进行通讯。然而数据快取存储器720并不会将数据存取阶段734可能会请求的所有数据储存起来。若数据存取阶段734所请求的数据不在数据快取存储器720中,则数据快取存储器720会通过第二总线接口单元738自存储器710或外设装置712请求数据。
数据快取存储器720亦耦接至写回缓冲器722,后者是用以保留数据存取阶段734请求写入存储器710的数据的快取或缓冲之用。写回缓冲器722亦耦接至第三总线接口单元740,第三总线接口单元740进而耦接至系统总线708。第三总线接口单元740代表写回缓冲器722与计算机系统700中耦接至系统总线708的元件进行通讯。写回缓冲器722可保留数据存取阶段734所产生的写入请求,并将这些请求在适当的时候通过第三总线接口单元740传送至存储器710。写回缓冲器722可使用任何已知方法或算法来提升缓冲与传送请求以写入存储器710的效能。
系统总线仲裁器714仲裁系统总线708上的存取,并判断何时为系统总线主控装置704读写数据至系统总线708的适当时机。如上所述,若系统总线708的规格,例如先进高效能总线,是不允许系统总线708上的每一个系统总线主控装置704执行超过一个的分散交易时,获取或写入数据至存储器710可能导致核心管线716的管线延迟,进而造成系统效能降低。综上所述,本发明的处理器702可通过第一总线接口单元726、第二总线接口单元738、第三总线接口单元740有效地产生系统总线708连接超过一个以上的系统总线主控装置704的效果。此外,本发明所揭露的处理器702可营造系统总线708是连接3个系统总线主控装置的效果,使其可起始最少3个分散交易,进而减少管线延迟的影响、降低存储器闲置时间并提升计算机系统的效能。再者,上述元件还可耦接至边带信道709,以与系统总线708上的其它元件交流各种控制信号。例如,“分散”或“非分散”信号可通过边带通道709进行传递,以避免占用系统总线708。
图8为一系统总线上各元件运作的时序图,该等元件包含处理器、存储器、系统总线仲裁器与边带通讯信道,于此图可得知本发明的系统效能与效率的提升。请一并参考图4所示的两个连续存储器请求nt与m,对照图8存储器内部状态(Memory Internal Status)的部分,由图式可知存储器的闲置时间减少了,且存储器在第一请求完成前就已开始服务第二个请求,使存储器可得到更有效率的使用。来自处理器的系统总线活动显示系统总线上由处理器的存储器请求所起始的活动。来自存储器的系统总线响应(System Busresponse)显示处理器如何处理对存储器的多个分散交易。
存储器内部状态则示意了存储器如何在一指令请求尚未完成之前,开始执行另一数据请求。存储器可于其存取指令请求nt所请求的指令后,随即开始存取另一数据请求m所请求的数据。后项的数据的存取系发生于前项的指令开始被请求该指令的总线接口单元读取之时。随后,当所存取的数据被请求该数据的系统总线接口单元读取时,存储器即可服务下一个指令请求。上述处理器存储器请求间的处理重迭(overlapping)可促进系统效能的提升并减少存储器闲置时间。

Claims (12)

1.一种可减少延迟的数据发送与接收系统,包含:
处理器,具有耦接至系统总线的第一处理器总线接口单元与第二处理器总线接口单元,该第一处理器总线接口单元是耦接至该处理器的指令获取阶段,并发送请求至该存储器以获取指令;该第二处理器总线接口单元是耦接至该处理器的数据存取阶段,并发送请求至该存储器以读取或写入数据。
系统总线仲裁器,耦接至该系统总线,用以仲裁该系统总线的存取;
存储器,耦接至该系统总线;以及
边带信道,用以传送控制信号至该处理器与该系统总线仲裁器,其中该控制信号于自该系统总线读取数据或自该系统总线写入数据时,会通告该处理器与该系统总线仲裁器;
其中该第一处理器总线接口单元与该第二处理器总线接口单元用以发送请求至存储器控制器,该存储器控制器用以控制该存储器的存取,并可服务来自该第一处理器总线接口单元的第一请求与来自该第二处理器总线接口单元的第二请求,并在该第一请求服务完成前即可开始服务该第二请求。
2.根据权利要求1所述的数据发送与接收系统,其中该第二处理器总线单元还可发送请求至耦接于该系统总线的外设装置,以读取或写入数据。
3.根据权利要求1所述的数据发送与接收系统,其中该存储器控制器于接收到该第一请求与该第二请求时,分别发送分散控制信号以响应,并于执行完毕该第一请求与该第二请求时,分别发送非分散控制信号。
4.根据权利要求1所述的数据发送与接收系统,还包含:
第三处理器总线接口单元,耦接至该系统总线;
其中该存储器控制器于该第一请求与该第二请求完成执行前,可服务该第三处理器总线接口单元的第三请求以将数据写入该存储器。
5.一种适用于处理器与系统总线间以减少延迟的数据发送与接收方法,包含:
通过第一处理器总线接口单元发送第一请求至该系统总线;以及
通过第二处理器总线接口单元发送第二请求至该系统总线;
其中该第一请求与该第二请求是分别来自该处理器的不同管线阶段,
该第一处理器总线接口单元于指令获取阶段至存储器获取指令,该第二处理器总线接口单元于数据存取阶段存取数据至该存储器,且可于该第一请求未服务完成之前发送并开始处理该第二请求。
6.根据权利要求5所示的数据发送与接收方法,其中该第一处理器总线接口单元与该第二处理器总线接口单元可通过下列项目的组合耦接至该管线阶段:指令快取存储器、数据快取存储器与写回缓冲器。
7.根据权利要求5所示的数据发送与接收方法,其中该第一请求与该第二请求是通过该系统总线传送至存储器,以存取该存储器;该存储器接收到该第一请求与该第二请求时,分别发送分散控制信号作为响应,并于该第一请求与该第二请求的存取执行完毕时,分别发送非分散信号作为响应。
8.根据权利要求5所示的数据发送与接收方法,还包含:
通过第三处理器总线接口单元发送第三请求至该系统总线;以及
于该第二请求处理完成前开始处理该第三请求。
9.根据权利要求8所示的数据发送与接收方法,其中该第一请求、该第二请求与该第三请求通过该系统总线传送至存储器,以执行下列项目的组合:
写入数据至该存储器,自该存储器读取数据,自该存储器获取指令。
10.一种可减少延迟的计算机系统,包含:
处理器,具有包含至少一指令获取阶段与一数据存取阶段的核心管线;
第一总线接口单元,耦接至系统总线,于该指令获取阶段至存储器获取指令;以及
第二总线接口单元,耦接至系统总线,于该数据存取阶段存取数据至该存储器;
其中该第二总线接口单元可于该第一总线接口单元尚未完成指令获取之前,存取数据至该存储器。
11.根据权利要求10所述的计算机系统,还包含:
第三总线接口单元,耦接至系统总线,于该数据存取阶段存取该存储器;
其中该第二总线接口单元是于该数据存取阶段自该存储器读取数据,而该第三总线接口单元是于该数据存取阶段写入数据至该存储器。
12.根据权利要求11所述的计算机系统,还包含下列项目的组合:
指令快取存储器,耦接至该指令获取阶段,用以保留欲传送至该指令获取阶段的指令的快取,并代表该指令获取阶段通过该第一总线接口单元以及该系统总线自该存储器请求指令;
数据快取存储器,耦接至该数据存取阶段,用以保留欲传送至该数据存取阶段的数据的快取,并代表该数据存取阶段通过该第二总线接口单元与该系统总线自该存储器请求数据;以及
写回缓冲器,耦接至与该数据快取存储器,用以代表该数据存取阶段缓冲写入数据至该存储器的请求,并通过下列组合其中至少一者传送写入数据至该存储器的请求:该第二总线接口单元与该系统总线,以及该第三总线接口单元与该系统总线。
CNB2007100881983A 2006-08-04 2007-03-20 可减少延迟的数据传送与接收方法与系统 Active CN100549992C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/462,490 2006-08-04
US11/462,490 US20080034146A1 (en) 2006-08-04 2006-08-04 Systems and Methods for Transactions Between Processor and Memory

Publications (2)

Publication Number Publication Date
CN101021820A CN101021820A (zh) 2007-08-22
CN100549992C true CN100549992C (zh) 2009-10-14

Family

ID=38709593

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100881983A Active CN100549992C (zh) 2006-08-04 2007-03-20 可减少延迟的数据传送与接收方法与系统

Country Status (3)

Country Link
US (1) US20080034146A1 (zh)
CN (1) CN100549992C (zh)
TW (1) TWI358022B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727314B (zh) * 2009-11-24 2013-04-24 华为数字技术(成都)有限公司 一种数据处理方法以及处理器

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225120B2 (en) 2008-02-01 2012-07-17 International Business Machines Corporation Wake-and-go mechanism with data exclusivity
US8145849B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Wake-and-go mechanism with system bus response
US8612977B2 (en) * 2008-02-01 2013-12-17 International Business Machines Corporation Wake-and-go mechanism with software save of thread state
US8386822B2 (en) * 2008-02-01 2013-02-26 International Business Machines Corporation Wake-and-go mechanism with data monitoring
US8725992B2 (en) 2008-02-01 2014-05-13 International Business Machines Corporation Programming language exposing idiom calls to a programming idiom accelerator
US8250396B2 (en) * 2008-02-01 2012-08-21 International Business Machines Corporation Hardware wake-and-go mechanism for a data processing system
US8732683B2 (en) 2008-02-01 2014-05-20 International Business Machines Corporation Compiler providing idiom to idiom accelerator
US8452947B2 (en) * 2008-02-01 2013-05-28 International Business Machines Corporation Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms
US8015379B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Wake-and-go mechanism with exclusive system bus response
US8171476B2 (en) 2008-02-01 2012-05-01 International Business Machines Corporation Wake-and-go mechanism with prioritization of threads
US8312458B2 (en) 2008-02-01 2012-11-13 International Business Machines Corporation Central repository for wake-and-go mechanism
US8788795B2 (en) * 2008-02-01 2014-07-22 International Business Machines Corporation Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors
US8316218B2 (en) * 2008-02-01 2012-11-20 International Business Machines Corporation Look-ahead wake-and-go engine with speculative execution
US8516484B2 (en) 2008-02-01 2013-08-20 International Business Machines Corporation Wake-and-go mechanism for a data processing system
US8880853B2 (en) 2008-02-01 2014-11-04 International Business Machines Corporation CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock
US8341635B2 (en) 2008-02-01 2012-12-25 International Business Machines Corporation Hardware wake-and-go mechanism with look-ahead polling
US8640141B2 (en) 2008-02-01 2014-01-28 International Business Machines Corporation Wake-and-go mechanism with hardware private array
US8127080B2 (en) 2008-02-01 2012-02-28 International Business Machines Corporation Wake-and-go mechanism with system address bus transaction master
US8145805B2 (en) * 2008-06-09 2012-03-27 Emulex Design & Manufacturing Corporation Method for re-sequencing commands and data between a master and target devices utilizing parallel processing
US8886919B2 (en) 2009-04-16 2014-11-11 International Business Machines Corporation Remote update programming idiom accelerator with allocated processor resources
US8145723B2 (en) * 2009-04-16 2012-03-27 International Business Machines Corporation Complex remote update programming idiom accelerator
US8230201B2 (en) * 2009-04-16 2012-07-24 International Business Machines Corporation Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system
US8082315B2 (en) * 2009-04-16 2011-12-20 International Business Machines Corporation Programming idiom accelerator for remote update
CN102156684A (zh) * 2010-12-15 2011-08-17 成都市华为赛门铁克科技有限公司 接口延时保护方法、协处理器及数据处理系统
US9405688B2 (en) 2013-03-05 2016-08-02 Intel Corporation Method, apparatus, system for handling address conflicts in a distributed memory fabric architecture
CN114328311A (zh) * 2021-12-15 2022-04-12 珠海一微半导体股份有限公司 一种存储控制器架构、数据处理电路及数据处理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550988A (en) * 1994-03-01 1996-08-27 Intel Corporation Apparatus and method for performing error correction in a multi-processor system
JP2001043180A (ja) * 1999-08-03 2001-02-16 Mitsubishi Electric Corp マイクロプロセッサおよびそのための記憶装置
US6832280B2 (en) * 2001-08-10 2004-12-14 Freescale Semiconductor, Inc. Data processing system having an adaptive priority controller
US7007108B2 (en) * 2003-04-30 2006-02-28 Lsi Logic Corporation System method for use of hardware semaphores for resource release notification wherein messages comprises read-modify-write operation and address
US7130943B2 (en) * 2004-09-30 2006-10-31 Freescale Semiconductor, Inc. Data processing system with bus access retraction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727314B (zh) * 2009-11-24 2013-04-24 华为数字技术(成都)有限公司 一种数据处理方法以及处理器

Also Published As

Publication number Publication date
TWI358022B (en) 2012-02-11
US20080034146A1 (en) 2008-02-07
TW200809511A (en) 2008-02-16
CN101021820A (zh) 2007-08-22

Similar Documents

Publication Publication Date Title
CN100549992C (zh) 可减少延迟的数据传送与接收方法与系统
CN100472494C (zh) 支持多总线多类型存储器的内存仲裁实现系统和方法
KR970001919B1 (ko) 다수의 버스간의 정보 전송 시스템 및 방법
US20050289268A1 (en) Internal bus system
JP2000268006A (ja) マルチプロセッサシステム
CN101446931B (zh) 一种实现输入输出数据一致性的系统及方法
GB2499765A (en) Multicore system and core data reading method
US20060206663A1 (en) Disk array device and shared memory device thereof, and control program and control method of disk array device
US7996592B2 (en) Cross bar multipath resource controller system and method
US5944805A (en) System and method for transmitting data upon an address portion of a computer system bus during periods of maximum utilization of a data portion of the bus
US6584529B1 (en) Intermediate buffer control for improving throughput of split transaction interconnect
KR100264301B1 (ko) 컴퓨터시스템및컴퓨터시스템복합체
EP1187028A2 (en) Immediate grant bus arbiter for bus system
JPH0748197B2 (ja) データ・バスを確保する方法
US7409486B2 (en) Storage system, and storage control method
US7913013B2 (en) Semiconductor integrated circuit
CN100520754C (zh) 用于传送数据的数据处理设备以及方法
US7296109B1 (en) Buffer bypass circuit for reducing latency in information transfers to a bus
CN109992560B (zh) 一种通信方法及通信系统
US20080126642A1 (en) Memory Interface Circuit and Method
EP1191456B1 (en) A method of transferring data in a processing system
CN115328832B (zh) 一种基于pcie dma的数据调度系统与方法
US20230305973A1 (en) Mmi interface device and computing system based thereon
US20150032969A1 (en) Coherency control message flow
JPH0844661A (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