《针对同时待处理数据访问请求的数据冲突处理.pdf》由会员分享,可在线阅读,更多相关《针对同时待处理数据访问请求的数据冲突处理.pdf(24页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103106122 A(43)申请公布日 2013.05.15CN103106122A*CN103106122A*(21)申请号 201210290267.X(22)申请日 2012.08.0813/137,356 2011.08.08 USG06F 11/14(2006.01)G06F 3/06(2006.01)(71)申请人 ARM有限公司地址英国剑桥(72)发明人潘尼德拉库玛曼娜瓦詹姆师德加拉拉玛穆尔西古鲁普拉萨哈迈克尔艾伦菲利波(74)专利代理机构北京东方亿思知识产权代理有限责任公司 11258代理人宋鹤(54) 发明名称针对同时待处理数据访问请求的数据冲突处。
2、理(57) 摘要本发明公开了针对同时待处理数据访问请求的数据冲突处理。本发明公开了一种在一致性控制器中而非发起方设备中管理数据冲突的数据处理系统。该数据处理系统以两部分的形式处理写请求,以使得第一部分被发送并且当一致性控制器有空间接受数据时对所述第一部分做出响应,并且数据以及在写入之前的数据的状态作为写请求的第二部分被发送。当存在针对相同地址的同时待处理读和写时,一致性控制器通过不对写请求的第一部分做出响应来暂停写入,并且发起方设备继续处理针对所述写请求的地址处接收到的任何探测请求,而不管写请求正在等待处理的事实。当待处理读已完成时,一致性控制器将对写的第一部分做出响应,并且发起方设备将通过发。
3、送数据以及关于探测之后的数据状态的指示符来完成写入。然后,一致性控制器可以利用该信息根据需要更新存储器来避免任何可能的数据冲突。(30)优先权数据(51)Int.Cl.权利要求书4页 说明书11页 附图8页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书4页 说明书11页 附图8页(10)申请公布号 CN 103106122 ACN 103106122 A1/4页21.一种发起方设备,包括:用于生成数据访问请求的电路;用于存储数据和用于存储与所述数据相关联的状态指示符的数据存储设备,所述状态指示符指示以下状态中的至少一个状态:所述数据是无效的,所述数据是有效的且相同的值被存储。
4、在其它地方,以及所述数据是有效的并且是存储在其它地方的所述数据的版本的更新版本;至少一个端口,用于输出所述数据访问请求以经由一致性控制器传送给至少一个接收方设备,并用于接收来自所述一致性控制器的信号和数据访问请求;其中所述电路被配置为生成用于将存储在所述数据存储设备中的数据写入所述至少一个接收方设备中的一个的写请求,以及用于读取存储在所述至少一个接收方设备中的一个中的数据的读请求;所述电路被配置为按两个部分来生成所述写请求,第一部分包括关于写入要被执行的指示以及要被写入的所述数据的地址,而第二部分作为在所述至少一个端口处接收到数据接受担保的响应而被发送;其中所述发起方设备还包括控制电路,所述控。
5、制电路被配置为:响应于在所述至少一个端口处接收到探测请求,接受所述探测请求并控制所述探测请求被执行,而不管所述探测请求是否正在请求访问其第一部分已被输出但是尚未接收到数据接受担保的有待处理写请求的位置;以及响应于在所述至少一个端口处接收到所述数据接受担保并且响应于关于要被写入的所述数据是有效的并且是被存储在其它地方的所述数据的版本的更新版本的当前状态,输出所述数据和在所述数据被写入之前所述数据的所述当前状态作为写请求的所述第二部分。2.根据权利要求1所述的发起方设备,其中所述控制电路被配置为作为对所述探测请求被执行的响应,在合适的情况下更新与所述数据相关联的所述状态指示符,并且作为对所述探测请。
6、求的响应输出关于在所述更新之前和之后的所述状态指示符的指示以及所述数据。3.根据权利要求1所述的发起方设备,其中所述控制电路被配置为响应于在所述至少一个端口处接收到所述数据接受担保,生成和输出所述数据和在所述写入被执行之前所述数据的状态作为所述写请求的所述第二部分,而不管在所述写请求之前所述数据的所述状态如何。4.根据权利要求1所述的发起方设备,其中所述控制电路被配置为响应于在所述至少一个端口处接收到所述数据接受担保并且响应于在所述写入被执行之前所述数据为无效的所述状态,输出写取消请求作为所述写请求的所述第二部分。5.根据权利要求4所述的发起方设备,其中所述控制电路被配置为响应于在所述至少一个。
7、端口处接收到所述数据接受担保并且响应于在所述写的所述第二部分被执行之前所述数据是有效的并且相同的值被存储在其它地方的所述状态,输出写取消请求作为所述写请求的所述第二部分。6.根据权利要求1所述的发起方设备,其中写请求的所述第一部分的大小与读请求的大小相同。权 利 要 求 书CN 103106122 A2/4页37.一种用于保持存储在数据处理装置中的数据的数据一致性的一致性控制器,该数据处理装置包括至少一个发起方设备和至少一个接收方设备,所述一致性控制器包括:至少一个端口,用于接收来自所述至少一个发起方设备的数据访问请求并且用于将所述数据访问请求和探测请求发送给所述至少一个发起方设备和所述至少一。
8、个接收方设备中的至少一个;用于存储待处理数据访问请求的缓冲器;用于响应于所述数据访问请求生成所述探测请求的探测请求生成电路,所述探测请求用于确定要被访问的所述数据是否被本地存储在所述发起方设备和所述接收方设备中的一个或多个中;以及一致性控制电路,响应于接收到写请求的第一部分,通过不对所述写请求的所述第一部分做出响应来暂停所述写请求直到所述待处理读请求已完成为止,所述写请求的第一部分包括关于要对有待处理的读请求的地址执行写入的指示。8.根据权利要求7所述的一致性控制器,其中所述一致性控制电路响应于接收到指示所述读请求已完成的信号而对所述写请求的所述第一部分做出响应。9.根据权利要求8所述的一致性。
9、控制器,其中所述一致性控制电路响应于接收到包括数据和关于在所述写入之前所述数据的状态的指示的所述写请求的所述第二部分,如果所述状态指示所述数据是有效的并且是比存储在其它地方的所述数据的版本更新的版本,则将所述数据写入所述接收方设备。10.根据权利要求9所述的一致性控制器,其中所述一致性控制电路响应于接收到包括数据和关于所述数据的状态为无效的指示的所述写请求的所述第二部分,不再写入所述数据。11.根据权利要求10所述的一致性控制器,其中所述一致性控制电路响应于接收到包括数据和关于所述数据是有效的且与存储在其它地方的值相同的状态的指示的所述写请求的所述第二部分,不再写入所述数据。12.根据权利要求。
10、10所述的一致性控制器,其中所述一致性控制电路响应于接收到包括写请求取消指示的所述写请求的所述第二部分,释放预留的存储位置。13.根据权利要求7所述的一致性控制器,其中所述至少一个缓冲器中的所有存储位置在开始时能用于存储读请求和写请求,所述一致性控制电路被配置为当接受所述写请求的所述第一部分时预留用于所述写请求的所述第二部分的存储位置,并且利用指示所述存储位置被预留的数据接受担保响应对所述写请求的所述第一部分做出响应。14.一种数据处理系统,包括根据权利要求1的至少一个发起方设备、根据权利要求7的一致性控制器和至少一个接收方设备。15.一种用于在发起方设备内生成数据访问请求和处理探测请求的方法。
11、,包括:存储数据和存储与所述数据相关联的状态指示符,所述状态指示符指示以下状态中的至少一个状态:所述数据是有效的,所述数据被存储在其它地方,以及所述数据是比存储在其它地方的所述数据的版本更新的所述数据的版本;接收来自一致性控制器的信号和数据访问请求;生成用于将存储在所述数据存储设备中的数据写入至少一个接收方设备中的写请求,以及用于读取存储在所述至少一个接收方设备中的数据的读请求;其中权 利 要 求 书CN 103106122 A3/4页4所述写请求按两个部分被生成,第一部分包括关于写入要被执行的指示以及要被写入的所述数据的地址,而第二部分作为在所述至少一个端口处接收到数据接受担保的响应而被发送。
12、;并且作为对接收到探测请求的响应,接受所述探测请求并控制所述探测请求以相同的方式被执行,而不管所述探测请求是否正在请求访问其第一部分已被输出但是尚未接收到数据接受担保的有待处理写请求的位置;以及响应于接收到所述数据接受担保以及响应于要被写入的所述数据是有效的并且是被存储在其它地方的所述数据的版本的更新版本的状态,输出所述数据和在所述数据被写入之前所述数据的所述当前状态作为所述写请求的所述第二部分。16.根据权利要求15所述的方法,其中作为对在所述至少一个端口处接收到所述数据接受担保的响应,生成和输出所述数据和在所述写入被执行之前所述数据的状态作为所述写请求的所述第二部分,而不管在所述写请求之前。
13、的所述数据的状态如何。17.根据权利要求15所述的方法,其中作为对接收到所述数据接受担保的响应,并且作为对在所述写入被执行之前所述数据为无效的所述状态的响应,输出写取消请求作为所述写请求的所述第二部分。18.一种保持数据访问请求的一致性的方法,包括:接收来自至少一个发起方设备的数据访问请求;将所述数据访问请求和探测请求发送给所述至少一个发起方设备和所述至少一个接收方设备中的至少一个;存储待处理数据访问请求;响应于所述数据访问请求生成探测请求,所述探测请求用于确定要被访问的所述数据是否被本地存储在所述发起方设备和所述接收方设备中的一个或多个中;以及响应于接收到写请求的第一部分,通过不对所述写请求。
14、的所述第一部分做出响应来暂停所述写请求直到所述待处理读请求已完成,所述写请求的第一部分包括关于要对有待处理的读请求的地址执行写入的指示。19.一种发起方装置,包括:用于生成数据访问请求的电路装置;用于存储数据和存储与所述数据相关联的状态指示符的数据存储装置,所述状态指示符指示以下状态中的至少一个状态:所述数据是有效的,所述数据被存储在其它地方,以及所述数据是比存储在其它地方的所述数据的版本更新的所述数据的版本;至少一个端口装置,用于输出所述数据访问请求以经由一致性控制器传输给至少一个接收方设备,并用于接收来自所述一致性控制器的信号和数据访问请求;其中所述电路装置用于生成将存储在所述数据存储装置。
15、中的数据写入所述至少一个接收方设备中的一个的写请求,并且用于读取存储在所述至少一个接收方设备中的一个中的数据的读请求;所述电路装置用于按两个部分生成所述写请求,第一部分包括关于写入要被执行的指示以及要被写入的所述数据的地址,而第二部分作为在所述至少一个端口装置处接收到数据接受担保的响应而被发送;其中所述发起方装置还包括控制装置,用于响应于在所述至少一个端口装置处接收到探测权 利 要 求 书CN 103106122 A4/4页5请求,接受所述探测请求并控制所述探测请求以相同的方式被执行,不管所述探测请求是否正在请求访问其第一部分已被输出但是尚未接收到数据接受担保的有待处理写请求的位置;以及响应于。
16、在所述至少一个端口装置处接收到所述数据接受担保并且响应于要被写入的所述数据是有效的并且是被存储在其它地方的所述数据的版本的更新版本的状态,输出所述数据和在所述数据被写入之前的所述数据的所述当前状态作为所述写请求的所述第二部分。20.一种保持存储在数据处理装置中的数据的数据一致性的一致性控制装置,所述数据处理装置包括至少一个发起方设备和至少一个接收方设备,所述一致性控制装置包括:至少一个端口装置,用于接收来自所述至少一个发起方设备的数据访问请求并且用于将所述数据访问请求和探测请求发送给所述至少一个发起方设备和所述至少一个接收方设备中的至少一个;用于存储待处理数据访问请求的缓冲器装置;探测请求生成。
17、装置,用于响应于所述数据访问请求生成所述探测请求,所述探测请求用于确定要被访问的所述数据是否被本地存储在所述发起方设备和所述接收方设备中的一个或多个中;以及一致性控制装置,用于响应于接收到写请求的第一部分,通过不对所述写请求的所述第一部分做出响应来暂停所述写请求直到所述待处理读请求已完成为止,所述写请求的第一部分包括关于要对有待处理的读请求的地址执行写入的指示。权 利 要 求 书CN 103106122 A1/11页6针对同时待处理数据访问请求的数据冲突处理技术领域0001 本发明涉及数据处理的领域并且更具体地涉及保持数据一致性的领域。背景技术0002 在数据处理系统中,数据通常被本地存储在处。
18、理器中以提高数据访问速度。然而,这可能导致多个数据备份被保存,必须小心确保不同数据备份之间的数据一致性。因而,当本地存储数据时,状态指示符通常与数据一起被存储,该指示符指示数据备份是有效或无效备份、数据备份是干净的(即,数据备份与存储在存储器中的数据是相同版本)还是脏的(即,数据备份是比存储在存储器中的版本更新的版本)。在一些系统中可能有更多的指示符,例如指示数据备份是否是唯一的本地备份的数据唯一指示符,或者指示存在多于一个本地备份的共享指示符。0003 数据一致性被利用探测请求(snoop request)来保持,该探测请求响应于读请求探测本地数据存储以查看数据的最新版本被存储在什么地方。然。
19、后,该数据可以被获取并且与该数据相关联的状态指示符可以被更新。如果存储在本地存储设备中的数据备份是脏的,则在其从本地存储设备中被去除之前必须被写回到存储器中。0004 当对某个地址的读请求和已生成的探测还都未完成时对该地址的写请求被请求时,可能发生数据冲突。在传统系统中为了解决这个问题,对于有待处理写入的地址的探测响应被阻断,直到写入完成才能继续。这样会有如下缺点:需要足够大的缓存空间来确保写入的向前进行,因为如果写入不能进行,则可能会存在相互的资源依赖,可能导致死锁的情况。当系统规模随着更多的接收方和发起方而增大时,提供足够的缓存空间来确保写入向前进行的问题也变得更突出。这需要更多的功率和晶。
20、片面积。0005 希望在不过分增大功率消耗和晶片面积的情况下避免数据冲突。发明内容0006 本发明的第一方面提供了一种发起方设备,包括用于生成数据访问请求的电路;用于存储数据和用于存储与所述数据相关联的状态指示符的数据存储设备,所述状态指示符指示以下状态中的至少一个状态:所述数据是无效的,所述数据是有效的且相同的值被存储在其它地方,以及所述数据是有效的并且是存储在其它地方的所述数据的版本的更新版本;至少一个端口,用于输出所述数据访问请求以经由一致性控制器传送给至少一个接收设备,并用于接收来自所述一致性控制器的信号和数据访问请求;其中,所述电路被配置为生成用于将存储在所述数据存储设备中的数据写入。
21、所述至少一个接收方设备中的一个设备的写请求,以及用于读取存储在所述至少一个接收方设备中的一个设备中的数据的读请求;所述电路被配置为以两个部分生成所述写请求,第一部分包括关于写入要被执行以及要被写入的所述数据的地址的指示,而第二部分作为在所述至少一个端口处接收到数据接受担保的响应而被发送;其中所述发起方设备还包括控制电路,所述控制电路被配置为:响应于在所述至少一个端口处接收到探测请求,接受所述探测请求并控制所述探测请求被说 明 书CN 103106122 A2/11页7执行,不管所述探测请求是否正在请求访问有待处理写请求的位置,针对所述待处理写请求的所述第一部分已被输出并且针对所述待处理写请求尚。
22、未接收到数据接受担保;以及响应于在所述至少一个端口处接收到所述数据接受担保以及响应于关于要被写入的所述数据是有效的并且是被存储在其它地方的所述数据的版本的更新版本的当前状态,输出所述数据和在所述数据被写入之前的所述数据的所述当前状态作为数据写的所述第二部分。0007 本发明认识到在一些系统中按两个部分发送写请求可能是有利的。例如,在写请求被发送给远程接收方的情况下,接收方可能没有能力接受写请求。如果是这种情况,则写请求将需要被一次又一次地发送,并且可能不被接受。如果数据像平常一样与写请求一起被发送,则用于连续发送和重发所述写请求的带宽量会很大。在一些系统中,写请求可以按两个部分被发送以解决这个。
23、问题。第一部分提供关于请求是写请求的指示以及关于要被写入的地址的指示。写请求的第一部分将被接受,当确定了整个写请求可以被接受时响应被发送,并且作为对所述响应的响应,包括数据的写请求的第二部分被发送。这可能会增加写请求的延迟,但是写请求的完成性能不是很关键,使得这种延迟是可接受的。0008 因而,本发明利用这种两部分的写请求,第一部分指示数据要被写入特定地址,并且当对第一部分的响应已被接收确保了数据将被接受时,第二部分发送数据。这样防止在接收方不能接受请求的情况下附带有数据的请求被多次发送。0009 本发明还认识到在以这种两部分的方式实现数据写请求的系统中,可以相对简单地通过不对第一部分做出响应。
24、来暂停待处理数据写请求。因而,当存在待处理写请求时不用暂停探测响应,本发明的发起方设备以相同的方式处理探测请求,不管是否有针对相同地址的写请求正在等待处理。这意味着在写请求完成的同时待处理探测不被阻止,像现有技术中一样,并且保证写请求向前进行所需要的预留缓冲器空间是不需要的。0010 当针对相同地址的探测和写请求同时待处理时所引起的可能的数据冲突可以利用一致性控制器来处理,所述一致性控制器对探测请求做出响应并且写数据被发送给一致性控制器,至少在探测之后的数据是脏数据的情况下,关于数据的状态的信息以及数据本身也被发送给一致性控制器。0011 通过将状态信息与数据一起发送给一致性控制器,除了像不存。
25、在数据冲突一样对探测做出响应以外,一致性控制可以由一致性控制器管理,并且发起方设备不需要任何冲突检查电路,这节省了非常大的面积,尤其是在有很多发起方设备的大型系统中。0012 该系统的另一个优点是所创建的数据流是统一的,并且尽管可能有冲突,但是读、探测和写请求中的每一个请求一般都会完成。这使得建模和验证会很简单。0013 此外,由于暂停同时待处理请求中的一个请求而引起的附加延迟被添加给写请求而不是读请求,这是有利的,因为写请求的完成性能不是那么关键。0014 在一些实施例中,所述控制电路被配置为作为对所述探测请求被执行的响应,在合适的情况下更新与所述数据相关联的所述状态指示符,并且输出关于在所。
26、述更新前后的所述状态指示符的指示以及所述数据作为对所述探测请求的响应。0015 不管有没有可能的数据冲突,探测请求都以相同的方式被处理。因此,作为对探测的响应,数据与探测之前的数据状态和探测之后的数据状态一起被返回。0016 在一些实施例中,所述控制电路被配置为响应于在所述至少一个端口处接收到所述数据接受担保,生成和输出所述数据和在所述写请求的所述第二部分被执行之前的所述说 明 书CN 103106122 A3/11页8数据的状态作为所述写请求的所述第二部分,而不管在所述写请求之前的所述数据的所述状态如何。0017 虽然针对数据的状态指示符可能指示在一些情况下数据写入不需要被执行并且因而数据不。
27、需要被发送给一致性控制器,但是在所有这些情况下发送数据和数据状态都是有利的。虽然这可能导致不需要的多余信息被发送,但是这意味着不管数据状态如何发起方设备的行为都是统一的,这样使得逻辑电路和对该电路的验证更简单并且还生成统一的数据流。0018 在一些实施例中,所述控制电路被配置为响应于在所述至少一个端口处接收到所述数据接受担保以及响应于在所述写请求的所述第二部分被执行之前的所述数据为无效的所述状态,输出写取消请求作为所述数据写请求的所述第二部分。0019 在有一些探测之后的数据的状态下,写请求实际上可以被取消并且数据不需要被发送,并且在这些情况下,发送写取消请求作为数据写请求的第二部分可能是有利。
28、的。这样与发送数据和数据状态相比需要更少的带宽。在两部分的写请求中,写请求的第一部分指示请求即将到来并且当写请求的第一部分已被接受时响应被发送,因为这时保证数据可以被接受。这可能意味着用于该请求的存储位置被预留。如果是这种情况,明显很重要的是如果写请求不继续进行,则关于写请求已被取消的指示被发送以使得为该请求预留的任何存储位置以及与该请求相关联的数据可以被释放。在数据的状态在探测期间已变为无效的情况下,数据明显不需要再被写入,因而这是写入应当被取消的情况。0020 在一些实施例中,所述控制电路被配置为响应于在所述至少一个端口处接收到所述数据接受担保以及响应于在所述写请求的所述第二部分被执行之前。
29、的所述数据是有效的并且相同的值被存储在其它地方的所述状态,输出写取消请求作为所述数据写请求的所述第二部分。0021 除了数据为无效的情况以外,在数据是有效的又是干净的使得存在存储在其它地方的数据的相同版本的情况下,写入也不需要完成,虽然在这种情况下它可以完成。因而,在一些实施例中,发起方设备可以选择继续进行写入并发送数据和状态指示,而在其它实施例中,可以节省带宽而发送写取消请求。0022 在一些实施例中,写事务请求的所述第一部分的大小与读事务请求的大小相同。0023 将写请求分成两个部分的另一优点在于这些部分比较小并且第一部分可以被做成与读请求相同的大小,使得用于除了这些请求的逻辑更简单。00。
30、24 本发明的第二方面提供了一种用于保持存储在数据处理装置中的数据的数据一致性的一致性控制器,包括至少一个发起方设备和至少一个接收方设备,所述一致性控制器包括:至少一个端口,用于接收来自所述至少一个发起方设备的数据访问请求并且用于将所述数据访问请求和探测请求发送给所述至少一个发起方设备和所述至少一个接收方设备中的至少一个设备;用于存储待处理数据访问请求的缓冲器;用于响应于所述数据访问请求生成所述探测请求的探测请求生成电路,所述探测请求用于确定要被访问的所述数据是否被本地存储在所述发起方和接收方设备中的一个或多个设备中;以及一致性控制电路,响应于接收到写请求的第一部分,通过不对所述写请求的所述第。
31、一部分做出响应来暂停所述写请求,一直到所述待处理读请求已完成为止,所述写请求的第一部分包括关于写入要针对有待处理的读请求的地址被执行的指示。说 明 书CN 103106122 A4/11页90025 本发明认识到在以这种两个部分的方式实现数据写请求的系统中,可以通过不对第一部分做出响应来相对简单地暂停待处理数据写入。此外,还认识到如果作为对针对相同地址的待处理读/探测请求和待处理写请求之间的数据冲突的响应,暂停了写请求而不是探测请求,则读请求的延迟将不受影响,并且与保证存储写入的空间从而允许其进行相关联的缓冲要求将不会产生。0026 因此,根据本发明的一个方面的一致性控制器响应于检测到针对相同。
32、地址的待处理读请求而暂停待处理写请求,并且在允许写请求继续之前允许读请求完成。假设在至少一些情况下,响应于探测请求而发生的要被写入的数据的状态变化与任何被返回的数据一起被传输给一致性控制器,一致性控制器可以保持一致性并且一旦读取完成,就可以对写请求的第一部分做出响应,从而通知写入可以进行。0027 这具有以下优点:增加了写入的延迟而非读取的延迟,避免了与保证写入被确保向前进行相关联的缓冲要求,如果探测被暂停,这些缓冲要求就是必需的,并且还具有附加的优点,即因为读和写用相同的方式被处理,所以它们可以用相同的逻辑块来处理。0028 在一些实施例中,所述一致性控制电路响应于接收到指示所述读请求完成的。
33、信号而对所述写请求的所述第一部分做出响应。0029 一旦读请求已完成,一致性控制器将通过对写请求的第一部分做出响应来允许写请求继续进行。0030 在一些实施例中,所述一致性控制电路响应于接收到包括数据和关于在所述写请求之前所述数据的状态的指示的所述写请求的所述第二部分,如果所述状态指示所述数据是有效的并且是比存储在其它地方的所述数据的版本更新的版本,则将所述数据写入所述接收方设备。0031 当一致性控制电路接收到数据和数据状态时,它可以根据数据状态确定如何处理数据。因而,如果数据是有效的并且比存储在其它地方的数据的版本更新,则一致性控制器将继续将数据写入接收方设备。但是如果数据是无效的,则其将。
34、不再写入数据,而如果数据是有效的又是干净的(即,与存储在其它地方的值相同),则一致性控制器可以选择不再写入数据或者选择继续写入数据。后一种情况将需要更多的带宽,不过是一种统一的处理方式,可能在测试和验证系统时比较有利。0032 在一些情况下,不发送数据和关于数据状态的指示作为写请求的第二部分,而是写取消请求可以被发送,该请求指示数据的状态使得数据不需要被写回并且写请求将被取消。重要的是这个请求在对写请求的第一部分做出响应之前被发送,一致性控制器中可能已经为数据预留了存储位置。该写取消请求告知一致性控制器所述存储位置不再需要并且可以被释放以供其它请求使用。0033 在一些实施例中,所述至少一个缓。
35、冲器内的全部存储位置都可用于存储开始时的读和写请求,所述一致性控制电路被配置为当接受所述写请求的所述第一部分时为所述写请求的所述第二部分预留存储位置,并且利用指示所述存储位置被预留的数据接受担保响应对所述写请求的所述第一部分做出响应。0034 在作为对可能的数据冲突的响应探测请求被阻止的现有技术的系统中,重要的是写事务被确保进行以使得需要在探测请求可以继续之前完成的写入(造成死锁的情况)不被阻止。为了保证这一点,一致性控制器中的缓冲器具有专为待处理写事务预留的缓冲器说 明 书CN 103106122 A5/11页10中的存储位置。这样存在增大了这些设备中所需要的存储容量的缺点,这对于有很多这种。
36、设备的大型系统而言有非常大的影响。因为本发明阻止了写请求而非探测响应,所以按照这种方式不需要保证写入的向前进行,因而不需要在缓冲器中专为写入预留特定的存储位置。因此,在本发明的实施例中,缓冲器可用于开始的读和写请求,并且只有在当响应被给予写请求的第一部分的操作期间,缓冲器内的存储位置可以被暂时预留给写请求。因此,可以更高效地利用缓冲器,因为每个存储位置可被用于读、写或探测请求,并且缓冲器可以做得更小。0035 本发明的第三方面提供了一种数据处理系统,包括根据本发明的第一方面的至少一个发起方设备、根据本发明的第二方面的一致性控制器和至少一个接收方设备。0036 本发明的第四方面提供了一种用于在发。
37、起方设备内生成数据访问请求和处理探测请求的方法,包括:存储数据和存储与所述数据相关联的状态指示符,所述状态指示符指示以下状态中的至少一个状态:所述数据是有效的,所述数据被存储在其它地方以及所述数据是比存储在其它地方的所述数据的版本更新的所述数据的版本;接收来自一致性控制器的信号和数据访问请求;生成用于将存储在所述数据存储设备中的数据写入至少一个接收方设备中的写请求,以及用于读取存储在所述至少一个接收设备中的数据的读请求;其中所述写请求按两个部分被生成,第一部分包括关于写入要被执行以及要被写入的所述数据的地址的指示,而第二部分作为在所述至少一个端口处接收到数据接受担保的响应而被发送;并且作为对接。
38、收到探测请求的响应,接受所述探测请求并控制所述探测请求以相同的方式被执行,不管所述探测请求是否正在请求访问有待处理写请求的位置,针对所述待处理写请求的所述第一部分已被输出并且针对所述待处理写请求尚未接收到数据接受担保;以及响应于接收到所述数据接受担保以及响应于要被写入的所述数据是有效的并且是被存储在其它地方的所述数据的版本的更新版本的状态,输出所述数据和在所述数据被写入之前的所述数据的所述当前状态作为数据写的所述第二部分。0037 本发明的第五方面提供了一种保持数据访问请求的一致性的方法,包括:接收来自至少一个发起方设备的数据访问请求;将所述数据访问请求和探测请求发送给所述至少一个发起方设备和。
39、至少一个接收方设备中的至少一个设备;存储待处理数据访问请求;响应于所述数据访问请求生成探测请求,所述探测请求用于确定要被访问的所述数据是否被本地存储在所述发起方和接收方设备中的一个或多个设备中;以及响应于接收到写请求的第一部分,通过不对所述写请求的所述第一部分做出响应来暂停所述写请求,一直到所述待处理读请求已完成,所述写请求的第一部分包括关于写入要针对有待处理的读请求的地址被执行的指示。0038 本发明的第六方面提供了一种发起方装置,包括:用于生成数据访问请求的电路装置;用于存储数据和存储与所述数据相关联的状态指示符的数据存储装置,所述状态指示符指示以下状态中的至少一个状态:所述数据是有效的,所述数据被存储在其它地方以及所述数据是比存储在其它地方的所述数据的版本更新的所述数据的版本;至少一个端口装置,用于输出所述数据访问请求以经由一致性控制器传输给至少一个接收设备,并用于接收来自所述一致性控制器的信号和数据访问请求;其中所述电路装置用于生成将存储在所述数据存储装置中的数据写入所述至少一个接收方设备中的一个设备的写请求,以及用于读取存储在所述至少一个接收方设备中的一个设备中的数据的读请求;所述电路装置用说 明 书CN 103106122 A10。