CN106796561B - 将强有序写入事务桥接到弱有序域中的装置和相关设备、方法和计算机可读媒体 - Google Patents
将强有序写入事务桥接到弱有序域中的装置和相关设备、方法和计算机可读媒体 Download PDFInfo
- Publication number
- CN106796561B CN106796561B CN201580047332.8A CN201580047332A CN106796561B CN 106796561 B CN106796561 B CN 106796561B CN 201580047332 A CN201580047332 A CN 201580047332A CN 106796561 B CN106796561 B CN 106796561B
- Authority
- CN
- China
- Prior art keywords
- affairs
- write
- ordered
- strongly
- consumer devices
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4013—Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1621—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明揭示将强有序写入事务桥接到弱有序域中的装置、和相关设备、方法和计算机可读媒体。在一个方面中,主机桥接器装置经配置以从一或多个强有序产生者装置接收强有序写入事务。所述主机桥接器装置将所述强有序写入事务发布到弱有序域内的一或多个消费者装置。所述主机桥接器装置检测并非由所述一或多个消费者装置中的第一消费者装置接受的第一写入事务。对于在所述第一写入事务之后发布且由相应消费者装置接受的一或多个写入事务中的每一者,所述主机桥接器装置将取消消息发送到所述相应消费者装置。所述主机桥接器装置重放所述第一写入事务和在所述第一写入事务之后发布的所述一或多个写入事务。
Description
优先权要求
本申请案要求2014年9月12日申请的且名称为“将强有序写入事务桥接到弱有序域中的装置和相关设备、方法和计算机可读媒体(BRIDGING STRONGLY ORDERED WRITETRANSACTIONS TO DEVICES IN WEAKLY ORDERED DOMAINS,AND RELATED APPARATUSES,METHODS,AND COMPUTER-READABLE MEDIA)”的美国专利申请案序号14/484,624的优先权,所述美国专利申请案以全文引用的方式并入本文中。
技术领域
本发明的技术大体上涉及经由基于处理器的计算机系统中的总线互连件流水线化所发布写入事务。
背景技术
现代基于处理器的计算机系统(例如,含有基于外围组件互连(PCI)的互连件的计算机系统)常常包含可发布和/或接收一系列写入事务的一或多个外围装置。此些装置可一般被表征为属于“强有序”域或“弱有序”域。强有序域中的装置在其条件是在所有写入事务当中维持有序关系的规范下操作。所述有序关系提供在消费者装置处完成写入事务的顺序与写入事务由产生者装置发送的顺序相同。相比之下,弱有序域中的一系列写入事务并不具有任何固有顺序(在特殊情况下不存在,例如两个事务之间的地址重叠)。因此,在弱有序域中,系列中的写入事务到达消费者装置的顺序未必与发送写入事务的顺序相同。
当强有序域中的产生者装置(即,“强有序装置”)将一系列写入事务发送到弱有序域中的消费者装置(即,“弱有序装置”)时,所有写入事务在消费者装置被通知所述系列写入事务准备好消耗之前由消费者装置看见是至关重要的。然而,因为并不保证在弱有序域中写入事务的到达顺序,所以写入事务可不按其原始顺序而由消费者装置看见,此可能在一些情况下成为问题。举例来说,消费者装置可接收写入事务在已完成所述系列中的所有写入事务之前准备好消耗的通知。此可能归因于不完整或损坏的数据引起系统不稳定性。因此,用于在写入事务传递到弱有序域时提供写入事务的串行化有序关系的机构为必要的。
此项技术中已知的一个方法通过一次一个地发布写入事务和在发送出下一写入事务之前等待前一写入事务的完成来解决此要求。然而,此方法可能引起不可接受地长的数据传送时间,此可能不利地影响系统性能。另一已知方法提供一种经配置以通过检测写入事务的重试来提供对写入事务的流水线化且经进一步配置以重试所有后续写入事务的集中式系统仲裁器。在一些方法下,集中式系统仲裁器可自身负责代表接收装置按顺序再发布写入事务。虽然集中式系统仲裁器可确保写入事务当中的串行化有序关系,但是其无法在需要可需要同步地通信的多个分布式仲裁器的较大计算机系统中良好地按比例缩放。
发明内容
详细描述中所揭示的各方面包含将强有序写入事务桥接到弱有序域中的装置。还揭示相关设备、方法和计算机可读媒体。在这点上,提供一种包括主机桥接器装置的设备。所述主机桥接器装置经配置以从一或多个强有序产生者装置接收多个强有序写入事务。所述主机桥接器装置经进一步配置以向弱有序域内的一或多个消费者装置发布所述多个强有序写入事务。所述主机桥接器装置还经配置以检测所述多个强有序写入事务中并未由所述一或多个消费者装置中的第一消费者装置接受的第一写入事务。所述主机桥接器装置另外经配置以针对在所述第一写入事务之后发布且由所述一或多个消费者装置中的相应消费者装置接受的一或多个写入事务中的每一者而将取消消息发送到所述相应消费者装置。所述主机桥接器装置经进一步配置以重放所述第一写入事务和在所述第一写入事务之后发布的所述一或多个写入事务。
在另一方面中,提供一种包括主机桥接器装置的设备。所述主机桥接器装置包括用于从一或多个强有序产生者装置接收多个强有序写入事务的装置。所述主机桥接器装置进一步包括用于将所述多个强有序写入事务发布到弱有序域内的一或多个消费者装置的装置。所述主机桥接器装置还包括用于检测所述多个强有序写入事务中并未由所述一或多个消费者装置中的第一消费者装置接受的第一写入事务的装置。所述主机桥接器装置另外包括用于针对在所述第一写入事务之后发布且由所述一或多个消费者装置中的相应消费者装置接受的一或多个写入事务中的每一者而将取消消息发送到所述相应消费者装置的装置。所述主机桥接器装置进一步包括用于重放所述第一写入事务和在所述第一写入事务之后发布的所述一或多个写入事务的装置。
在另一方面中,提供一种用于将强有序写入事务桥接到弱有序域中的方法。所述方法包括由主机桥接器装置从一或多个强有序产生者装置接收多个强有序写入事务。所述方法进一步包括将所述多个强有序写入事务发布到弱有序域内的一或多个消费者装置。所述方法还包括检测所述多个强有序写入事务中并未由所述一或多个消费者装置中的第一消费者装置接受的第一写入事务。所述方法另外包括针对在所述第一写入事务之后发布且由所述一或多个消费者装置中的相应消费者装置接受的一或多个写入事务中的每一者而将取消消息发送到所述相应消费者装置。所述方法进一步包括重放所述第一写入事务和在所述第一写入事务之后发布的所述一或多个写入事务。
在另一方面中,提供一种非暂时性计算机可读媒体,其上存储有使得处理器从一或多个强有序产生者装置接收多个强有序写入事务的计算机可执行指令。所述计算机可执行指令进一步致使所述处理器将所述多个强有序写入事务发布到弱有序域内的一或多个消费者装置。所述计算机可执行指令还致使所述处理器检测所述多个强有序写入事务中并未由所述一或多个消费者装置中的第一消费者装置接受的第一写入事务。所述计算机可执行指令另外致使所述处理器针对在所述第一写入事务之后发布且由所述一或多个消费者装置中的相应消费者装置接受的一或多个写入事务中的每一者而将取消消息发送到所述相应消费者装置。所述计算机可执行指令进一步致使所述处理器重放所述第一写入事务和在所述第一写入事务之后发布的所述一或多个写入事务。
附图说明
图1是示范性基于处理器的计算机系统的框图,所述计算机系统包含经配置以将强有序写入事务桥接到弱有序域中的消费者装置的主机桥接器装置;
图2A到2C是说明图1的主机桥接器装置向消费者装置发布强有序写入事务、检测未被接受的写入事务和取消并重放写入事务和后续写入事务的框图;
图3是说明图1的主机桥接器装置的状态过渡的示范性状态机的图;
图4A和4B是说明用于将强有序写入事务桥接到弱有序域中的消费者装置的示范性程序的流程图;且
图5是可包含图1的主机桥接器装置的示范性基于处理器的系统的框图。
具体实施方式
现参考各图,描述本发明的若干示范性方面。词语“示范性”在本文中用于意指“充当实例、例子或说明”。本文中描述为“示范性”的任何方面未必理解为比其它方面优选或有利。
详细描述中所揭示的方面包含将强有序写入事务桥接到弱有序域中的装置。还揭示相关装置、方法和计算机可读媒体。在这点上,主机桥接器装置经配置以从一或多个强有序产生者装置接收多个强有序写入事务。主机桥接器装置经进一步配置以向弱有序域内的一或多个消费者装置发布多个强有序写入事务。主机桥接器装置还经配置以检测多个强有序写入事务中的并不由一或多个消费者装置中的第一消费者装置接受的第一写入事务。主机桥接器装置另外经配置以针对在第一写入事务之后发布且由一或多个消费者装置中的相应消费者装置接受的一或多个写入事务中的每一者而将取消消息发送到相应消费者装置。主机桥接器装置经进一步配置以重放第一写入事务和在第一写入事务之后发布的一或多个写入事务。
在这点上,图1说明示范性基于处理器的计算机系统10,其提供经配置以将强有序写入事务桥接到弱有序域中的消费者装置的主机桥接器装置12。基于处理器的计算机系统10可涵盖已知数字逻辑元件、半导体电路、处理核心、和/或存储器结构、以及其它元件或其组合中的任一者。本文中所描述的各方面并不限于任何特定元件布置,且所揭示的技术可容易地延展到半导体裸片或封装上的各种结构和布局。
应理解,如本文所使用,单个“写入事务”在一些方面中可包含多个相位。作为非限制性实例,写入事务可包含地址相位,其中主机桥接器装置12将写入事务的地址发送到消费者装置。地址相位可随后有数据相位紧接,其中数据由主机桥接器装置12发送以用于由处理器处理和/或由存储器装置存储。
图1中的基于处理器的计算机系统10包含一或多个产生者装置14(0)到14(X)(其中X≥0)。一或多个产生者装置14(0)到14(X)中的每一者经配置以产生一系列一或多个强有序写入事务(未展示),期望写入事务将按产生写入事务相同的顺序到达目的地。因此,可认为一或多个产生者装置14(0)到14(X)属于强有序域16。在一些方面中,一或多个产生者装置14(0)到14(X)可包括强有序外围装置,例如遵守外围组件互连(PCI)规范的外围装置或互连件。
基于处理器的计算机系统10还包含一或多个消费者装置18(0)到18(Y)(其中Y≥0)。一或多个消费者装置18(0)到18(Y)中的每一者经配置以按可能与产生写入事务的顺序不相关的顺序接收一系列写入事务。因此,一或多个消费者装置18(0)到18(Y)可被视为驻留在弱有序域20内。一些方面可提供一或多个消费者装置18(0)到18(Y)可包含用于消耗每一写入事务的数据的处理器和/或含有每一写入事务的数据的存储器装置。
可经由总线互连件(在图1中由双向箭头22和24表示)将写入事务从一或多个产生者装置14(0)到14(X)传达到一或多个消费者装置18(0)到18(Y)。当强有序域16中的产生者装置14中的一者将一系列强有序写入事务传达到弱有序域20中的消费者装置18中的一者时,必须在向消费者装置18通知所述系列写入事务准备好消耗之前接收所有写入事务。然而,因为并不保证在弱有序域20中写入事务的到达顺序,所以消费者装置18可不按其原始顺序接收写入事务,这可能归因于不完整或损坏的数据引起系统不稳定性。
因此,为了提供强有序写入事务到弱有序域20中的消费者装置18的桥接,提供主机桥接器装置12。主机桥接器装置12提供用于检测写入事务并不由消费者装置18接受的条件且用于取消和重放写入事务和所有随后所发送写入事务的机构。如图1中所见,主机桥接器装置12的一些方面可包含事务缓冲器26以用于存储从产生者装置14接收且将发布到消费者装置18的写入事务。事务缓冲器26可保存已发布但并未由消费者装置18接受的写入事务。主机桥接器装置12可因此确保按正确顺序将写入事务发布到弱有序域20中的消费者装置18,而不会招致不可接受的系统性能损失。
为了说明由图1中的主机桥接器装置12提供的桥接机构的操作,提供图2A到2C。图2A为展示图1的主机桥接器装置12向弱有序域20中的消费者装置18发布强有序写入事务的框图。图2B说明主机桥接器装置12检测未被接受的写入事务,且图2C展示主机桥接器装置12取消并重放写入事务和后续写入事务。为清楚起见,在描述图2A到2C时引用图1的元件。
在图2A中,主机桥接器装置12已经由由双向箭头22表示的总线互连件从强有序域16中的产生者装置14接收强有序写入事务28(0)到28(4)。在此实例中,假设按以下顺序发布强有序写入事务28:28(0)、28(1)、28(2)、28(3)和28(4)。因此,产生者装置14进行操作所依照的规范提供强有序写入事务28将由消费者装置18按那个顺序看见。
主机桥接器装置12将强有序写入事务28存储于事务缓冲器26中。主机桥接器装置12接着将每一强有序写入事务28发布到弱有序域20中的适当消费者装置18。如图2A中所见,主机桥接器装置12将强有序写入事务28(0)发布到消费者装置18(0),且将强有序写入事务28(1)发布到消费者装置18(Y)。主机桥接器装置12进一步将强有序写入事务28(2)发布到消费者装置18(1)、将强有序写入事务28(3)发布到消费者装置18(Y)且将强有序写入事务28(4)发布到消费者装置18(0)。
因为多种因素(例如,通信路径长度,作为非限制性实例),所以强有序写入事务28可由相应消费者装置18按不对应于发布强有序写入事务28的顺序的顺序看见。主机桥接器装置12因此经配置以分别从消费者装置18(0)到18(Y)接收指示发布强有序写入事务28的结果的信号。在图2A的实例中,接受响应30和32指示相应消费者装置18(0)和18(Y)对相应强有序写入事务28(0)和28(1)的地址相位和/或数据相位的接受。相比而言,由消费者装置18(1)发送的重试响应34指示强有序写入事务28(2)并未由消费者装置18(1)接受。因为强有序写入事务28(2)并未被接受而后续强有序写入事务28(3)和28(4)被接受,所以众所周知强有序写入事务28并未按其被发布的顺序被接收。
现参考图2B,为了维持强有序写入事务28的串行化,主机桥接器装置12必须“撤销”在强有序写入事务28(2)之后所发布的强有序写入事务28(3)和28(4)。为了这样做,主机桥接器装置12将“取消事务(CXL TXN)28(4)”的取消消息36发布到消费者装置18(0)。取消消息36向消费者装置18(0)指示先前所接受的强有序写入事务28(4)应由消费者装置18(0)丢弃或忽略。在一些方面中,取消消息36可包括对消费者装置18(0)的预计零长度数据的请求。一些方面可提供取消消息36可包括在强有序写入事务28(4)的数据相位期间具备写入事务数据的停用写入选通(未展示)。消费者装置18(0)在检测到停用写入选通之后即刻舍弃或忽略强有序写入事务28(4)。
以类似方式,主机桥接器装置12将“取消事务(CXL TXN)28(3)”的取消消息38发布到消费者装置18(Y)。取消消息38向消费者装置18(Y)指示先前所接受的强有序写入事务28(3)应由消费者装置18(Y)丢弃或忽略。
继续参考图2B,主机桥接器装置12确定图2A的强有序写入事务28(0)和28(1)都由其相应消费者装置18(0)和18(Y)接受。主机桥接器装置12还确定图2A的强有序写入事务28(0)和28(1)中两者都不受制于依赖性(例如,不依赖于先前被发布但未被接受的写入事务)。因此,在图2B中,主机桥接器装置12已去除先前存储于事务缓冲器26中的强有序写入事务28(0)和28(1)。在一些方面中,此可释放事务缓冲器26中的空间以允许从产生者装置14接收额外强有序写入事务28。
现转而参看图2C,主机桥接器装置12重放强有序写入事务28(2)和后续强有序写入事务28(3)和28(4)。主机桥接器装置12的一些方面可提供主机桥接器装置12通过将强有序写入事务28(2)重新发布到消费者装置18(1)、将强有序写入事务28(3)重新发布到消费者装置18(Y)和将强有序写入事务28(4)重新发布到消费者装置18(0)来重放强有序写入事务28(2)到28(4)。以此方式,可维持弱有序域20中的强有序写入事务28的串行化。
在一些方面中,图1的主机桥接器装置12的操作逻辑可包含用于跟踪每一待决的强有序写入事务28的状态的状态机。在这点上,图3展示对应于图2A到2C的强有序写入事务28中的一者且说明主机桥接器装置12内的状态过渡的示范性状态机40。应理解,主机桥接器装置12可维持多个状态机40,其各自表示强有序写入事务28中的一者的当前状态。应进一步理解,主机桥接器装置12的各方面可利用具有比图3中所说明的状态机多、少或与其不同的状态的其它状态机。在描述图3的状态机40时,为清楚起见引用图1和2A到2C的元件。
图3中的状态机40包含四个状态:成功(SUCCESS)状态42、重试(RETRY)状态44、重设(RESET)状态46和零长度写入(ZLW)状态48。当主机桥接器装置12为强有序写入事务28中的一者分配状态机40时,状态机40默认地在成功状态42中开始。状态机40以以下方式中的一者过渡脱离成功状态42:
如果对应于状态机40的强有序写入事务28并不由相应消费者装置18接受,那么状态机40过渡到重设状态46,如由箭头50指示;
如果对应于状态机40的强有序写入事务28在并不由其相应消费者装置18接受的任何先前强有序写入事务28之前由相应消费者装置18接受,那么状态机40过渡到ZLW状态48,如由箭头52指示;
如果先前强有序写入事务28在对应于状态机40的强有序写入事务28接收响应之前并未由其相应消费者装置18接受,那么状态机40过渡到重试状态44,如由箭头54指示;
否则,状态机40保持在成功状态42中,如由箭头56指示。
重试状态44指示必须取消并重放对应于状态机40的强有序写入事务28。状态机40可以以下方式中的一者过渡脱离重试状态44:
如果对应于状态机40的强有序写入事务28并不由相应消费者装置18接受,那么状态机40过渡到重设状态46,如由箭头58指示;
如果对应于状态机40的强有序写入事务28由相应消费者装置18接受,那么状态机40过渡到ZLW状态48,如由箭头60指示;
否则,状态机40保持在重试状态44中,如由箭头62指示。
ZLW状态48指示对应于状态机40的强有序写入事务28(例如,在写入事务的地址相位中)接收到成功响应,但必须被取消。因此,对应于状态机40的强有序写入事务28必须(例如,在写入事务的数据相位中)产生零字节数据并重新开始。状态机40可以以下方式中的一者过渡脱离ZLW状态48:
当对应于状态机40的强有序写入事务28完成产生零字节数据(未展示)时,状态机40过渡到重设状态46,如由箭头64指示;
否则,状态机40保持在ZLW状态48中,如由箭头65指示。
重设状态46致使重放对应于状态机40的强有序写入事务28。状态机40可通过在下一处理器时钟循环上过渡到成功状态42来过渡脱离重设状态46,如由箭头66指示。
为了说明用于将强有序写入事务桥接到弱有序域中的消费者装置的示范性程序,提供图4A和4B。图4A展示图1的主机桥接器装置12接收强有序写入事务28、将强有序写入事务28发布到弱有序域20、和必要时取消强有序写入事务28的操作。图4B说明重放强有序写入事务28和任选地清除主机桥接器装置12的事务缓冲器26的操作。
在图4A中,操作以主机桥接器装置12从一或多个强有序产生者装置14接收多个强有序写入事务28(框68)开始。如上文所提及,产生者装置14可包括强有序存储器装置或外围装置,例如遵守PCI规范的外围装置或互连件。在一些方面中,主机桥接器装置12可任选地将多个强有序写入事务28存储于事务缓冲器26中(框70)。主机桥接器装置12接着将强有序写入事务28发布到弱有序域20内的一或多个消费者装置18(框72)。作为非限制性实例,消费者装置18可包括弱有序存储器装置。
主机桥接器装置12接下来检测多个强有序写入事务28中并不由一或多个消费者装置18中的第一消费者装置18(1)接受的第一写入事务28(2)(框74)。一些方面可提供检测并不由第一消费者装置18(1)接受的第一写入事务28(2)可包含主机桥接器装置12从第一消费者装置18(1)接收重试响应34(框76)。对于在第一写入事务28(2)之后发布且由一或多个消费者装置18中的相应消费者装置18(Y)、18(0)接受的一或多个写入事务28(3)、28(4)中的每一者,主机桥接器装置12将取消消息38、36发送到相应消费者装置18(Y)、18(0)(框78)。在一些方面中,取消消息38、36可包括对相应消费者装置18(Y)、18(0)的预计零长度数据的请求(框80)。操作接着在图4B的框82处继续。
在图4B中,主机桥接器装置12接着重放第一写入事务28(2)和在第一写入事务28(2)之后所发布的一或多个写入事务28(3)、28(4)(框82)。以此方式,可在弱有序域20中维持强有序写入事务28的串行化。一些方面可提供主机桥接器装置12检测存储于事务缓冲器26中的多个强有序写入事务28中的第二写入事务28(0),所述第二写入事务由一或多个消费者装置18中的第二消费者装置18(0)接受且不受制于依赖性(框84)。主机桥接器装置12可随后从事务缓冲器26去除第二写入事务28(0)(框86)。
根据本文中所揭示的各方面将强有序写入事务桥接到弱有序域中的装置可在任何基于处理器的装置中提供或集成到所述装置中。实例包含(但不限于)机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器和便携式数字视频播放器。
在这点上,图5说明可使用图1中所说明的主机桥接器装置(HBD)12的基于处理器的系统88的实例。在这个实例中,基于处理器的系统88包含一或多个中央处理单元(CPU)90,其各自包含一或多个处理器92。CPU 90可具有耦合到处理器92以用于快速存取暂时存储数据的高速缓冲存储器94。CPU 90耦合到系统总线96,且可将基于处理器的系统88中所包含的主控装置与从属装置互相耦合。众所周知,CPU 90通过经由系统总线96交换地址、控制和数据信息而与这些其它装置通信。举例来说,CPU 90可将总线事务请求传达到可包含存储器控制器100和一或多个存储器单元102(0)到102(N)的存储器系统98。
其它主控装置和从属装置可连接到系统总线96。如图5中所说明,举例来说,这些装置可包含一或多个输入装置104、一或多个输出装置106、一或多个网络接口装置108和一或多个显示器控制器110。输入装置104可包含任何类型的输入装置,包含(但不限于)输入按键、开关、语音处理器等。输出装置106可包含任何类型的输出装置,包含(但不限于)音频、视频、其它视觉指示器等。网络接口装置108可以是经配置以允许将数据交换到网络112和从网络112交换数据的任何装置。网络112可以是任何类型的网络,包含(但不限于)有线或无线网络、专用或公用网络、局域网(LAN)、广域网(WLAN)和因特网。网络接口装置108可经配置以支持所要的任何类型的通信协议。
CPU 90还可经配置以经由系统总线96存取显示器控制器110来控制发送到一或多个显示器114的信息。显示器控制器110经由一或多个视频处理器116将信息发送到显示器114以进行显示,所述一或多个视频处理器将待显示的信息处理成适合于显示器114的格式。显示器114可包含任何类型的显示器,包含(但不限于)阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。
本文中所揭示的一些方面可提供图1的强有序域16包括图5的输入装置104、输出装置106、网络接口装置108和显示器控制器110中的一或多者。图1的弱有序域20可包括图5的系统总线96、存储器系统98和CPU 90。因此,主机桥接器装置12可操作以提供写入事务从强有序域16的装置到弱有序域20内的装置的桥接。作为非限制性实例,从输入装置104到存储器系统98的写入事务(未展示)可由主机桥接器装置12桥接。以此方式,主机桥接器装置12可确保来自强有序域16中的输入装置104的写入事务由弱有序域20中的存储器系统98按正确的顺序处理。
所属领域的技术人员将进一步了解,结合本文中所揭示的各方面所描述的各种说明性逻辑块、模块、电路和算法可被实施为电子硬件、存储于存储器或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或此两者的组合。作为实例,本文中所描述的主控装置和从属装置可用于任何电路、硬件组件、集成电路(IC)或IC芯片中。本文中所揭示的存储器可以是任何类型和大小的存储器,并且可经配置以存储所要的任何类型的信息。为清楚地说明此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路和步骤。如何实施此功能性取决于特定应用、设计选项和/或强加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解译为引起偏离本发明的范围。
结合本文中所揭示的各方面描述的各种说明性逻辑块、模块和电路可用以下各项来实施或执行:处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或经设计以执行本文中所描述的功能的其任何组合。处理器可以是微处理器,但在替代例中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置。
本文中所揭示的各方面可以硬件和存储于硬件中的指令来体现,且可驻留于(例如)随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动的磁盘、CD-ROM或此领域中已知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并且将信息写入到存储媒体。在替代例中,存储媒体可集成到处理器。处理器和存储媒体可驻留于ASIC中。ASIC可驻留在远程站中。在替代例中,处理器和存储媒体可作为离散组件驻留在远程站、基站或服务器中。
还应注意,描述本文中的示范性方面中的任一者中所描述的操作步骤是为了提供实例和论述。可以用除了所说明的序列之外的大量不同序列执行所描述的操作。另外,单个操作步骤中所描述的操作实际上可在许多不同步骤中执行。另外,可组合在示范性方面中所论述的一或多个操作步骤。应理解,如对于所属领域的技术人员将容易显而易见,流程图中所说明的操作步骤可以经受众多不同修改。所属领域的技术人员还将理解,可使用多种不同技术和技法中的任一者来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能引用的数据、指令、命令、信息、信号、位、符号和码片。
提供本发明的前述描述以使所属领域的技术人员能够制造或使用本发明。对本发明的各种修改对于所属领域的技术人员将容易显而易见,且本文中界定的一般原理可在不脱离本发明的精神或范围的情况下应用于其它变化形式。因此,本发明并不希望限于本文中所描述的实例和设计,而是应被赋予与本文中所揭示的原理和新颖特征相一致的最广范围。
Claims (20)
1.一种包括主机桥接器装置的设备,所述主机桥接器装置经配置以:
从一或多个强有序产生者装置接收多个强有序写入事务;
将所述多个强有序写入事务发布到弱有序域内的一或多个消费者装置;
检测所述多个强有序写入事务中并未由所述一或多个消费者装置中的第一消费者装置接受的第一写入事务;
对于在所述第一写入事务之后发布且由所述一或多个消费者装置中的相应消费者装置接受的一或多个写入事务中的每一者,将取消消息发送到所述相应消费者装置;以及
重放所述第一写入事务和在所述第一写入事务之后发布的所述一或多个写入事务。
2.根据权利要求1所述的设备,其包括经配置以存储所述多个强有序写入事务的事务缓冲器;
所述主机桥接器装置经配置以在将所述多个强有序写入事务发布到所述一或多个消费者装置之前将所述多个强有序写入事务存储于所述事务缓冲器中。
3.根据权利要求2所述的设备,其进一步经配置以:
检测存储于所述事务缓冲器中的所述多个强有序写入事务中的由所述一或多个消费者装置中的第二消费者装置接受且不受制于依赖性的第二写入事务;以及
从所述事务缓冲器去除所述第二写入事务。
4.根据权利要求1所述的设备,其经配置以通过从所述第一消费者装置接收重试响应来检测并未由所述第一消费者装置接受的所述第一写入事务。
5.根据权利要求1所述的设备,其经配置以通过向所述相应消费者装置发送预计零长度数据的请求来将所述取消消息发送到所述相应消费者装置。
6.根据权利要求1所述的设备,其经配置以从一或多个外围组件互连PCI产生者装置接收所述多个强有序写入事务。
7.根据权利要求1所述的设备,其集成到集成电路IC中。
8.根据权利要求1所述的设备,其集成到选自由以下各项组成的群组的装置中:机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、蜂窝式电话、便携式计算机、桌上型计算机、个人数字助理PDA、监视器、计算机监视器、电视、调谐器、卫星无线电、数字音乐播放器、便携式音乐播放器、数字视频播放器、数字视频光盘DVD播放器和便携式数字视频播放器。
9.一种包括主机桥接器装置的设备,所述主机桥接器装置包括:
用于从一或多个强有序产生者装置接收多个强有序写入事务的装置;
用于将所述多个强有序写入事务发布到弱有序域内的一或多个消费者装置的装置;
用于检测所述多个强有序写入事务中并未由所述一或多个消费者装置中的第一消费者装置接受的第一写入事务的装置;
用于针对在所述第一写入事务之后发布且由所述一或多个消费者装置中的相应消费者装置接受的一或多个写入事务中的每一者而将取消消息发送到所述相应消费者装置的装置;以及
用于重放所述第一写入事务和在所述第一写入事务之后发布的所述一或多个写入事务的装置。
10.一种用于将强有序写入事务桥接到弱有序域中的方法,所述方法包括:
由主机桥接器装置从一或多个强有序产生者装置接收多个强有序写入事务;
将所述多个强有序写入事务发布到弱有序域内的一或多个消费者装置;
检测所述多个强有序写入事务中并未由所述一或多个消费者装置中的第一消费者装置接受的第一写入事务;
对于在所述第一写入事务之后发布且由所述一或多个消费者装置中的相应消费者装置接受的一或多个写入事务中的每一者,将取消消息发送到所述相应消费者装置;以及
重放所述第一写入事务和在所述第一写入事务之后发布的所述一或多个写入事务。
11.根据权利要求10所述的方法,其进一步包括在将所述多个强有序写入事务发布到所述一或多个消费者装置之前将所述多个强有序写入事务存储于事务缓冲器中。
12.根据权利要求11所述的方法,其进一步包括:
检测存储于所述事务缓冲器中的所述多个强有序写入事务中的由所述一或多个消费者装置中的第二消费者装置接受且不受制于依赖性的第二写入事务;以及
从所述事务缓冲器去除所述第二写入事务。
13.根据权利要求10所述的方法,其中检测并未由所述第一消费者装置接受的所述第一写入事务包括从所述第一消费者装置接收重试响应。
14.根据权利要求10所述的方法,其中将所述取消消息发送到所述相应消费者装置包括向所述相应消费者装置发送预计零长度数据的请求。
15.根据权利要求10所述的方法,其中从所述一或多个强有序产生者装置接收所述多个强有序写入事务包括从一或多个外围组件互连PCI产生者装置接收所述多个强有序写入事务。
16.一种非暂时性计算机可读媒体,其上存储有使得处理器进行以下操作的计算机可执行指令:
从一或多个强有序产生者装置接收多个强有序写入事务;
将所述多个强有序写入事务发布到弱有序域内的一或多个消费者装置;
检测所述多个强有序写入事务中并未由所述一或多个消费者装置中的第一消费者装置接受的第一写入事务;
对于在所述第一写入事务之后发布且由所述一或多个消费者装置中的相应消费者装置接受的一或多个写入事务中的每一者,将取消消息发送到所述相应消费者装置;以及
重放所述第一写入事务和在所述第一写入事务之后发布的所述一或多个写入事务。
17.根据权利要求16所述的非暂时性计算机可读媒体,其上存储有进一步致使所述处理器在将所述多个强有序写入事务发布到所述一或多个消费者装置之前将所述多个强有序写入事务存储于事务缓冲器中的所述计算机可执行指令。
18.根据权利要求17所述的非暂时性计算机可读媒体,其上存储有进一步致使所述处理器执行以下操作的所述计算机可执行指令:
检测存储于所述事务缓冲器中的所述多个强有序写入事务中的由所述一或多个消费者装置中的第二消费者装置接受且不受制于依赖性的第二写入事务;以及
从所述事务缓冲器去除所述第二写入事务。
19.根据权利要求16所述的非暂时性计算机可读媒体,其上存储有致使所述处理器通过从所述第一消费者装置接收重试响应来检测并未由所述第一消费者装置接受的所述第一写入事务的所述计算机可执行指令。
20.根据权利要求16所述的非暂时性计算机可读媒体,其上存储有致使所述处理器通过向所述相应消费者装置发送预计零长度数据的请求来将所述取消消息发送到所述相应消费者装置的所述计算机可执行指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/484,624 | 2014-09-12 | ||
US14/484,624 US9594713B2 (en) | 2014-09-12 | 2014-09-12 | Bridging strongly ordered write transactions to devices in weakly ordered domains, and related apparatuses, methods, and computer-readable media |
PCT/US2015/047727 WO2016040034A1 (en) | 2014-09-12 | 2015-08-31 | Bridging strongly ordered write transactions to devices in weakly ordered domains, and related apparatuses, methods, and computer-readable media |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106796561A CN106796561A (zh) | 2017-05-31 |
CN106796561B true CN106796561B (zh) | 2018-08-28 |
Family
ID=54106004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580047332.8A Active CN106796561B (zh) | 2014-09-12 | 2015-08-31 | 将强有序写入事务桥接到弱有序域中的装置和相关设备、方法和计算机可读媒体 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9594713B2 (zh) |
EP (1) | EP3191971B1 (zh) |
JP (1) | JP6240809B2 (zh) |
KR (1) | KR101753906B1 (zh) |
CN (1) | CN106796561B (zh) |
WO (1) | WO2016040034A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10528253B2 (en) * | 2014-11-05 | 2020-01-07 | International Business Machines Corporation | Increased bandwidth of ordered stores in a non-uniform memory subsystem |
CN106445849B (zh) * | 2016-10-21 | 2019-05-28 | 郑州云海信息技术有限公司 | 一种多控制器中处理有序命令的方法 |
US10725955B2 (en) * | 2017-12-08 | 2020-07-28 | Arm Limited | Power control of inter-domain transaction bridge |
CN116940934A (zh) * | 2021-03-31 | 2023-10-24 | 华为技术有限公司 | 读写操作执行方法和SoC芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6175889B1 (en) * | 1998-10-21 | 2001-01-16 | Compaq Computer Corporation | Apparatus, method and system for a computer CPU and memory to high speed peripheral interconnect bridge having a plurality of physical buses with a single logical bus number |
CN101176083A (zh) * | 2005-03-23 | 2008-05-07 | 高通股份有限公司 | 在弱有序处理系统中强制执行强有序请求 |
CN101395574A (zh) * | 2006-03-10 | 2009-03-25 | 高通股份有限公司 | 存储器屏障总线命令的有效执行 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751986A (en) * | 1994-03-01 | 1998-05-12 | Intel Corporation | Computer system with self-consistent ordering mechanism |
US5835741A (en) * | 1996-12-31 | 1998-11-10 | Compaq Computer Corporation | Bus-to-bus bridge in computer system, with fast burst memory range |
US6088771A (en) * | 1997-10-24 | 2000-07-11 | Digital Equipment Corporation | Mechanism for reducing latency of memory barrier operations on a multiprocessor system |
US6370632B1 (en) * | 1997-11-18 | 2002-04-09 | Intrinsity, Inc. | Method and apparatus that enforces a regional memory model in hierarchical memory systems |
US6038646A (en) * | 1998-01-23 | 2000-03-14 | Sun Microsystems, Inc. | Method and apparatus for enforcing ordered execution of reads and writes across a memory interface |
US6405276B1 (en) * | 1998-12-10 | 2002-06-11 | International Business Machines Corporation | Selectively flushing buffered transactions in a bus bridge |
JP2001216259A (ja) * | 2000-02-04 | 2001-08-10 | Hitachi Ltd | マルチプロセッサシステム及びそのトランザックション制御方法 |
US6963967B1 (en) * | 2000-06-06 | 2005-11-08 | International Business Machines Corporation | System and method for enabling weak consistent storage advantage to a firmly consistent storage architecture |
US6631374B1 (en) | 2000-09-29 | 2003-10-07 | Oracle Corp. | System and method for providing fine-grained temporal database access |
US6754737B2 (en) | 2001-12-24 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect |
US7162546B2 (en) * | 2001-12-27 | 2007-01-09 | Intel Corporation | Reordering unrelated transactions from an ordered interface |
US7353301B2 (en) | 2004-10-29 | 2008-04-01 | Intel Corporation | Methodology and apparatus for implementing write combining |
US7500045B2 (en) * | 2005-03-23 | 2009-03-03 | Qualcomm Incorporated | Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system |
US7457905B2 (en) * | 2005-08-29 | 2008-11-25 | Lsi Corporation | Method for request transaction ordering in OCP bus to AXI bus bridge design |
US8019944B1 (en) * | 2005-09-28 | 2011-09-13 | Oracle America, Inc. | Checking for a memory ordering violation after a speculative cache write |
US7721023B2 (en) * | 2005-11-15 | 2010-05-18 | International Business Machines Corporation | I/O address translation method for specifying a relaxed ordering for I/O accesses |
JP4779010B2 (ja) * | 2006-02-27 | 2011-09-21 | 富士通株式会社 | バッファリング装置およびバッファリング方法 |
US7610458B2 (en) | 2006-04-25 | 2009-10-27 | International Business Machines Corporation | Data processing system, processor and method of data processing that support memory access according to diverse memory models |
US8645632B2 (en) * | 2009-02-04 | 2014-02-04 | Oracle America, Inc. | Speculative writestream transaction |
US8949500B2 (en) * | 2011-08-08 | 2015-02-03 | Lsi Corporation | Non-blocking processor bus bridge for network processors or the like |
CN102004709B (zh) * | 2009-08-31 | 2013-09-25 | 国际商业机器公司 | 处理器局部总线到高级可扩展接口之间的总线桥及映射方法 |
US8285908B2 (en) * | 2010-01-24 | 2012-10-09 | Freescale Semiconductor, Inc. | Bus bridge and method for interfacing out-of-order bus and multiple ordered buses |
JP5625737B2 (ja) | 2010-10-22 | 2014-11-19 | 富士通株式会社 | 転送装置、転送方法および転送プログラム |
US8782356B2 (en) | 2011-12-09 | 2014-07-15 | Qualcomm Incorporated | Auto-ordering of strongly ordered, device, and exclusive transactions across multiple memory regions |
US9229896B2 (en) * | 2012-12-21 | 2016-01-05 | Apple Inc. | Systems and methods for maintaining an order of read and write transactions in a computing system |
US9495318B2 (en) | 2013-11-25 | 2016-11-15 | Apple Inc. | Synchronizing transactions for a single master over multiple busses |
-
2014
- 2014-09-12 US US14/484,624 patent/US9594713B2/en active Active
-
2015
- 2015-08-31 CN CN201580047332.8A patent/CN106796561B/zh active Active
- 2015-08-31 KR KR1020177006443A patent/KR101753906B1/ko active IP Right Grant
- 2015-08-31 WO PCT/US2015/047727 patent/WO2016040034A1/en active Application Filing
- 2015-08-31 EP EP15763158.1A patent/EP3191971B1/en active Active
- 2015-08-31 JP JP2017511747A patent/JP6240809B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6175889B1 (en) * | 1998-10-21 | 2001-01-16 | Compaq Computer Corporation | Apparatus, method and system for a computer CPU and memory to high speed peripheral interconnect bridge having a plurality of physical buses with a single logical bus number |
CN101176083A (zh) * | 2005-03-23 | 2008-05-07 | 高通股份有限公司 | 在弱有序处理系统中强制执行强有序请求 |
CN101395574A (zh) * | 2006-03-10 | 2009-03-25 | 高通股份有限公司 | 存储器屏障总线命令的有效执行 |
Also Published As
Publication number | Publication date |
---|---|
EP3191971B1 (en) | 2020-01-01 |
KR101753906B1 (ko) | 2017-07-04 |
US20160077991A1 (en) | 2016-03-17 |
CN106796561A (zh) | 2017-05-31 |
KR20170046682A (ko) | 2017-05-02 |
WO2016040034A1 (en) | 2016-03-17 |
JP2017528827A (ja) | 2017-09-28 |
JP6240809B2 (ja) | 2017-11-29 |
EP3191971A1 (en) | 2017-07-19 |
US9594713B2 (en) | 2017-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106796561B (zh) | 将强有序写入事务桥接到弱有序域中的装置和相关设备、方法和计算机可读媒体 | |
AU2014318238B2 (en) | Ascertaining command completion in flash memories | |
AU2017223094B2 (en) | Bus bridge for translating requests between a module bus and an axi bus | |
CN107077443A (zh) | 用于动态枚举总线的预定义静态枚举 | |
KR20160053942A (ko) | 임베디드 메모리들에서의 커맨드 큐잉의 제공 | |
US20170278554A1 (en) | Providing memory training of dynamic random access memory (dram) systems using port-to-port loopbacks, and related methods, systems, and apparatuses | |
US20190004816A1 (en) | Systems and methods for heterogeneous system on a chip servers | |
CN108369519A (zh) | 在使用块-原子执行模型的基于处理器的系统中重放部分执行的指令块 | |
WO2016014239A1 (en) | ENFORCING LOOP-CARRIED DEPENDENCY (LCD) DURING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA | |
CN107408092B (zh) | 用于多端口物理层(phy)的锁相环(pll)的共享控制 | |
CN104335167A (zh) | 基于寄存器相关联偏好向执行管线发布指令以及相关指令处理电路、处理器系统、方法及计算机可读媒体 | |
US9946589B2 (en) | Structure for reducing power consumption for memory device | |
TWI816814B (zh) | 在以向量處理器為基礎之裝置中提供處理元件之可重組態融合的裝置、方法以及非暫時性電腦可讀媒體 | |
CN115210690A (zh) | 硬件微融合存储器操作的重命名 | |
US20190258486A1 (en) | Event-based branching for serial protocol processor-based devices | |
US20130326195A1 (en) | Preventing execution of parity-error-induced unpredictable instructions, and related processor systems, methods, and computer-readable media | |
JP2005115957A (ja) | システムオンチップ性能測定装置およびシステムオンチップ性能測定方法 | |
CN107209717A (zh) | 针对存储器元件的分叉存储器管理 | |
CN107533528A (zh) | 数据通道分配 | |
CN114356323A (zh) | 一种设备组态的界面布局方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |