在存储器部件之间保持数据一致性的方法和系统技术方案

技术编号:2871322 阅读:158 留言:0更新日期:2012-04-11 18:40
一种数据处理系统,包含:    具有处理器和存储器克隆体的处理器芯片;    具有各存储器部件的存储器子系统;    互连所述存储器子系统和所述处理器芯片的装置;    在所述存储器子系统内保持数据一致性并且还控制数据克隆操作所影响的所述存储器子系统内的所有数据线的一致状态的一致性协议。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般涉及数据处理系统,具体地说,涉及数据处理系统的处理器内的一致性操作。更具体地说,本专利技术涉及在与数据处理系统的架构上的“裸”写操作有关的数据克隆操作期间保持一致性方法和系统。
技术介绍
对于更快速和硬件不太密集的数据处理和数据运算的需要一直是数据处理系统领域中发生的各种改进背后的驱动力。近来的趋势是更快速、更小并且更复杂处理器的出现,以及多处理器结构的实现,所述多处理器结构能够使多个互连的处理器同时执行指定任务的多个部分。除了多处理器结构的实现之外,还开发出了具有便于更有效地访问存储器的分布式存储器系统的系统。另外,实现了基于开关的互连(或者接线器(switch)),以代替传统的总线互连。分布式存储器使得数据能够被保存在多个独立的存储器模块中,并且增强多处理器结构中的存储器访问。基于开关的互连使处理系统的各个组件彼此直接连接,从而在组件之间提供更快速/更直接的通信和数据传输。图1是图解说明具有分布式存储器和基于开关的互连(接线器)的传统多处理器系统的方框图。如图所示,多处理器数据处理系统100包括通过接线器103彼此互连,并与其它系统组件互连的多个处理器芯片101A-101D。其它系统组件包括分布式存储器105、107(具有相关的存储器控制器106、108),和输入/输出(I/O)组件104。其它组件(未示出)也可通过接线器103与图解说明的组件互连。处理器芯片101A-101D分别包括顺序标记为P1-PN的两个处理器核心(处理器)。除了处理器P1-PN之外,处理器芯片101A-101D包括和处理器P1-PN一起控制数据处理系统100内的处理操作的其它组件/逻辑电路。图1图解说明了一个这种组件,硬件引擎111,其功能后面说明。在如图1所示的多处理器数据处理系统中,多个处理器(或者处理器操作)通常可访问一个或多个存储器/存储模块,存储器一般被处理资源共享。由于每个处理资源可独立行动,因此系统内会出现对共享存储资源的竞争。例如,当第一处理器正在访问特定的存储器地址时,第二处理器可能试图对该存储器地址进行写(或读)操作。如果在先的访问正在进行中时,产生后一访问请求,那么必须延迟或阻止后面的请求,直到在先请求完成为止。从而,为了把数据写入特定的存储器位置(或者地址)或者从特定的存储器位置(或地址)读取数据,在读/写操作完全完成之前,处理器必须获得关于该特定存储器地址的锁定。这消除了当系统不知不觉地处理不正确(例如陈旧)数据时,可能发生的错误。另外,借助更快速、更复杂的多处理器系统,多个数据请求可同时发出,并存在于不同的完成阶段中。除了关心一致性之外,处理器必须确保特定的数据块未被改变操作顺序。例如,如果处理器P1要求对位于地址A的数据决进行写操作,处理器P2必须读取同一数据块,并且如果在程序序列中读操作在写操作之前,那么重要的是保持这两个操作的顺序,以便获得正确的结果。数据处理系统的标准操作要求处理组件(及其它组件)对数据的访问和移动或处理。数据通常保存在存储器中,并且利用执行程序代码的特定处理器发出的命令,被访问/读取、取回(retrieve)、处理、保存/写入和/或仅仅被移动。数据移动操作不涉及对数据的数值/内容的改变/修改。相反,数据移动操作把数据从具有第一物理地址的一个存储器位置转移到具有不同物理地址的另一位置。在分布式存储器系统中,数据可从一个存储模块转移到另一存储模块,不过单一存储器/存储模块内的移动也是可能的。为了实现目前系统中的任意一种移动,完成下述步骤(1)处理器引擎发出装入和保存指令,这导致高速缓冲存储器线(cacheline)(“CL”)读取内容通过接线器/互连,从处理器芯片被传送给存储器控制器;(2)存储器控制器获得关于目的地存储器位置的锁定;(3)(存储器控制器)向处理器分配锁定目的地存储器位置;(4)通过接线器/互连,把数据从存储器(源地址)发送给处理器芯片(引擎);(5)通过接线器/互连,把数据从处理器引擎发送给目的地位置的存储器控制器;(6)把数据写入目的地位置;和(7)为其它处理器释放目的地的锁定(lock)。该过程中固有的是即使当利用接线器时,把数据从源存储器位置转移到处理器芯片,随后从处理器芯片转移到目的地存储器位置的固定等待时间。一般来说,每个装入和保存操作移动一个8字节的数据块。为了完成该移动,需要高速缓冲存储器的滚动,转换后备缓冲器(translation look-aside buffer)(TLB)的利用来实现有效读取地址转换,还需要利用处理器及其它硬件资源来接收和转发数据。至少一个处理器系统制造商已引入硬件加速装入线路和存储线路,和TLB一起在高速缓冲存储器线上实现字节级的同步操作。现在利用图1图解说明处理器P1从存储器中的一个区域/位置(即物理地址)向另一区域/位置的数据移动。如图1中及识别路径1和2的方向箭所示,在数据移动操作中,通过把数据放在沿着数据路径1的总线(或者接线器103)上,数据从存储器105中的地址位置A移动到处理器芯片101A。随后通过接线器103,沿着数据路径2,数据从处理器芯片101A被发送给存储器107内的所需地址位置B。目前(及在前的)系统利用硬件引擎(即硬件模型)和/或软件编程模型(或者接口)完成上述数据移动操作。在硬件引擎实现中,利用虚拟地址,硬件引擎111控制数据移动操作,并接收正被移动的数据。硬件引擎111(也称为硬件加速器)启动锁定获得过程,所述过程在开始数据的移动之前,获得关于源存储器地址和目的地存储器地址的锁定,以避免多个处理器同时访问位于该存储器地址的数据。不是把数据直接发送到处理器,数据被发送给硬件引擎111。硬件引擎111利用高速缓冲存储器线读取,并以流水线方式实现要完成的写入。就软件编程模型来说,软件把位置A和位置B通知处理器硬件,处理器硬件随后完成该移动。在该过程中,可利用真实地址(即不是虚拟地址)。因此,可消除前述硬件模型需要的进行虚拟地址-真实地址转换(或历史模式匹配)所需的其它时间。另外在软件模型中,地址可包括偏移量(例如地址B可偏移几个字节)。处理器P1为实现数据移动操作而执行的典型伪代码序列如下LOCK DST;锁定目的地LOCK SRC;锁定源LD A(Byte 0);AB0(4B或8B数量)ST B(Byte 0);BB0(4B/8B)INC ;增加字节数CMP ;比较,看是否完成BC ;如果未完成,则转移SYNC;实现同步RL LOCK ;释放锁定字节数(B0、B1、B2)等被递增,直到由地址A识别的存储区内保存的所有数据被移动到由地址B识别的存储区为止。锁定和释放操作由存储器控制器和总线仲裁器(arbiter)执行,总线仲裁器向被授予锁定的请求处理器分配对特定地址的临时访问和控制。在数据移动操作之后,在处理器P1能够重新开始处理其它后续操作之前,处理器P1必须接收指示所有数据已被物理移动到存储器位置B的完成响应(或信号)。这确保在处理单元之间存在一致性,并且数据一致性被保持。完成信号是对SYNC操作的响应,SYNC操作是在数据移动操作之后,由处理器P1在架构(fabric)上发布,以确保所有处理器接收数据移动操作的通知(及确认)。从而,在图1中,处理器P1发出本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:拉维·K·阿瑞米利本杰曼·L·古德曼朱蒂·B·卓讷尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1