数据处理装置和方法与流程



1.本技术涉及计算机技术领域,具体而言,本技术涉及一种数据处理装置和方法。


背景技术:



2.在中央处理器(central processing unit,简称cpu)的设计中,加载使用延时(load to use latency)是一项重要指标,直接影响到cpu的性能。
3.因此,为了提高cpu的性能,降低cache访问过程中的时延是亟待解决的问题。


技术实现要素:



4.本技术实施例提供了一种数据处理装置和方法。
5.根据本技术实施例的第一方面,提供了一种数据处理装置,包括:
6.处理器核,其发出数据访问请求;
7.高速缓存的控制器,其用于在接收到数据访问请求时,在所述高速缓存中查询高速缓存标签,并将查询的标签与数据访问请求的地址进行比较,以推测是否命中,若推测结果为命中,则直接访问所述高速缓存读取数据并返回给所述处理器核,
8.其中,在推测是否命中的阶段进行对标签的校准和高速缓存的实际命中判断,以及在将数据返回给所述处理器核的阶段进行所述数据的校准。
9.在一个可能的实现方式中,所述控制器,其还用于:
10.若高速缓存的实际命中判断为否,则确定推测结果错误,取消向所述高速缓存发出的数据访问请求。
11.在又一个可能的实现方式中,所述控制器,其还用于:
12.若推测结果为未命中,且高速缓存的实际命中判断为是,则确定推测结果错误,在进行高速缓存的实际命中判断后的阶段访问所述高速缓存读取数据并返回给所述处理器核。
13.在另一个可能的实现方式中,所述控制器,其还用于:
14.若进行数据校准的结果为存在数据错误信息,,向所述处理器核发送第一信号,其中,所述第一信号用于表征返回给所述处理器核的数据有误;
15.对返回给所述处理器核的数据进行修正,并向所述处理器核重发正确的数据。
16.在另一个可能的实现方式中,所述控制器,其还用于:
17.若进行数据校准的结果为大于1bit的数据错误信息,向所述处理器核发送第二信号,其中,所述第二信号用于表征返回给所述处理器核的数据有误且不可修正。
18.根据本技术实施例的第二方面,提供了一种数据处理方法,该方法包括:
19.根据接收到的数据访问请求,在高速缓存中查询高速缓存标签;
20.将查询的标签与数据访问请求的地址进行比较,以推测是否命中;
21.若推测结果为命中,则直接访问所述高速缓存读取数据并返回给处理器核;
22.其中,在推测是否命中的阶段进行对标签的校准和高速缓存的实际命中判断,以
及在将数据返回给处理器核的阶段进行所述数据的校准。
23.在一个可能的实现方式中,还包括:
24.若高速缓存的实际命中判断为否,则确定推测结果错误,取消向所述高速缓存发出的数据访问请求。
25.在又一个可能的实现方式中,还包括:
26.若推测结果为未命中,且高速缓存的实际命中判断为是,则确定推测结果错误,在进行高速缓存的实际命中判断后的阶段访问所述高速缓存读取数据并返回给所述处理器核。
27.在另一个可能的实现方式中,还包括:
28.若进行数据校准的结果为存在数据错误信息,向所述处理器核发送第一信号,其中,所述第一信号用于表征返回给所述处理器核的数据有误;
29.对返回给所述处理器核的数据进行修正,并向所述处理器核重发正确的数据。
30.在另一个可能的实现方式中,还包括:
31.若进行数据校准的结果为大于1bit的数据错误信息,向所述处理器核发送第二信号,其中,所述第二信号用于表征返回给所述处理器核的数据有误且不可修正。
32.本技术实施例中,通过比较数据访问请求的地址和获取的标签,推测是否命中,且在推测命中的情况下,直接进行数据读取,可以有效降低因进行ecc校准带来的延时,从而提高cpu的性能。
附图说明
33.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
34.图1为本技术实施例提供的一种数据处理方法的结构示意图;
35.图2为本技术另一实施例提供的一种数据处理方法的流程示意图;
36.图3为实现本技术实施例提供的一种数据处理方法的流水线的示意图;
37.图4为本技术另一实施例提供的一种数据处理方法的流程示意图;
38.图5为本技术实施例提供的一种数据处理装置的结构示意图。
具体实施方式
39.下面结合本技术中的附图描述本技术的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本技术实施例的技术方案的示例性描述,对本技术实施例的技术方案不构成限制。
40.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
41.为了在提高cpu时钟频率的同时降低延时,处理器核(core)访问cache的过程中:在查询缓存标签(cache tag)时,则要对从标签内存中读出的标签进行ecc校准并修正,这样才能保证读到的标签是正确的,进而基于查询到的标签判断是否命中(hit)。
42.如果命中则去数据内存(data ram)中读取数据,如果失败(miss)则去下级cache(如:l3 cache或系统cache)中读取数据,并将读取到的数据返回给处理器核。在读取数据
时,要对从数据内存中读出的数据进行ecc校准并修正,这样才能保证读到的数据是正确的。
43.但是,ecc校准并修正是一个延时较高的逻辑,通常需要1~2个时钟周期(cycle)才能完成。而在现有设计中,由于必须经过ecc校准,加载使用延时中就包含了ecc校准引入的延时,进而影响了cpu的性能。
44.因此,为了提高cpu的性能,降低cache访问过程中的时延是亟待解决的问题。
45.针对现有技术中存在的上述技术问题,本技术实施例提供了一种数据处理装置和方法。
46.首先、对本技术实施例的相关技术进行描述。
47.1、cache
48.cache是位于cpu和dram(dynamic random access memory,动态随机存取存储器)主存之间的缓存存储器,其规模较小,但速度很高,通常由sram(static random access memory,静态存储器)组成。cache的功能是提高cpu数据输入输出的速率。cpu的通用寄存器的速度远高于主存,当cpu直接从主存中存取数据时要等待一定时间周期,而cache则可以保存cpu刚用过或循环使用的一部分数据,如果cpu需要再次使用该部分数据时可从cache中直接调用,这样就避免了重复存取数据,减少了cpu的等待时间,因而提高了系统的效率。
49.多级cache包括l1 cache(一级高速缓存器)和l2 cache(二级高速缓存器),以及l3 cache(三级高速缓存器),其中,l1 cache主要是集成在cpu内部,l2 cache集成在主板上或是cpu上。l1 cache包括l1i-cache(一级指令高速缓存器)和l1 d-cache(一级数据高速缓存器),其中,l1 i-cache负责存储指令,l1 d-cache负责存储数据。两者的区别是l1 d-cache中的数据可以写回,l1 i-cache中的数据是只读的。
50.2、错误检查和纠正(error correcting code,简称ecc)校准
51.内存是一种电子器件,在其工作过程中难免会出现错误,而对于稳定性要求高的用户来说,内存错误可能会引起致命性的问题。内存错误根据其原因还可分为硬错误和软错误。硬错误是由于硬件的损害或缺陷造成的,因此数据总是不正确,此类错误是无法纠正的;软错误是随机出现的,例如在内存附近突然出现电子干扰等因素都可能造成内存软错误的发生。
52.为了能检测和纠正内存软错误,提出了一种ecc校准技术,这种技术与奇偶校准(parity)不同的是如果数据位是8位,则需要增加5位来进行ecc错误检查和纠正,数据位每增加一倍,ecc只增加一位检验位,也就是说当数据位为16位时ecc位为6位,32位时ecc位为7位,数据位为64位时ecc位为8位,依此类推,数据位每增加一倍,ecc位只增加一位。总之,在内存中ecc能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且ecc具有自动更正的能力,可以将parity无法检查出来的错误位查出并将错误修正。
53.其次,下面通过对几个示例性实施方式的描述,对本技术实施例的技术方案以及本技术的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
54.图1为本技术实施例提供的一种数据处理方法的流程示意图。如图1所示的方法包
括:
55.s1、根据接收到的数据访问请求,在高速缓存中查询高速缓存标签。
56.s2、将查询的标签与数据访问请求的地址进行比较,以推测是否命中。
57.s3、若推测结果为命中,则直接访问高速缓存读取数据并返回给处理器核。
58.其中,在推测是否命中的阶段进行对标签的校准和高速缓存的实际命中判断,以及在将数据返回给处理器核的阶段进行数据的校准。
59.本技术实施例中,通过比较数据访问请求的地址和获取的标签,推测是否命中,且在推测命中的情况下,直接进行数据读取,可以有效降低因进行ecc校准带来的延时,从而提高cpu的性能。
60.在一些实施例中,上述方法还可以包括:
61.s4(图中未示出)、若高速缓存的实际命中判断为否,则确定推测结果错误,取消向高速缓存发出的数据访问请求。
62.本技术实施例中,通过在推测是否命中的阶段进行对高速缓存的实际命中判断,并基于高速缓存的实际命中判断为否的结果,确定推测命中结果有误,以便取消向高速缓存发出的数据访问请求,避免误操作。
63.在另一些实施例中,上述方法还可以包括:
64.s5(图中未示出)、若推测结果为未命中,且高速缓存的实际命中判断为是,则确定推测结果错误,在进行高速缓存的实际命中判断后的阶段访问高速缓存读取数据并返回给处理器核。
65.本技术实施例中,通过在推测是否命中的阶段进行对高速缓存的实际命中判断,在推测结果未命中的情况下,基于高速缓存的实际命中判断为是的结果,确定推测命中结果有误,以便在高速缓存的实际命中判断后的阶段访问高速缓存读取数据并返回给处理器核,确保可以读取到数据。
66.在另一些实施例中,上述方法还可以包括:
67.s6(图中未示出)、若进行数据校准的结果为存在数据错误信息,向处理器核发送第一信号,其中,第一信号用于表征返回给处理器核的数据有误。
68.s7(图中未示出)、对返回给处理器核的数据进行修正,并向处理器核重发正确的数据。
69.本技术实施例中,通过在将数据返回给处理器核的阶段进行该数据的校准,且在数据校准的结果为1bit的数据错误信息,向处理器核发送用于表征返回给处理器核的数据有误的第一信号,并对返回给处理器核的数据进行修正后向处理器核重发正确的数据,从而确保读取数据的正确性。
70.在另一些实施例中,上述方法还可以包括:
71.s8(图中未示出)、若进行数据校准的结果为大于1bit的数据错误信息,向处理器核发送第二信号,其中,第二信号用于表征返回给处理器核的数据有误且不可修正。
72.本技术实施例中,通过在将数据返回给处理器核的阶段进行该数据的校准,且在数据校准的结果为大于1bit的数据错误信息,向处理器核发送用于表征返回给处理器核的数据有误且不可修正的第二信号,以便通知处理器核无法读取正确的数据。
73.图2为本技术另一实施例提供的一种数据处理方法的流程示意图。如图2所示的方
法包括:
74.s101、标签流水线基于来自处理器核的数据访问请求获取标签。
75.s102、在第一时钟周期内,根据数据访问请求和获取的标签,确定第一命中结果。
76.s103、若第一命中结果为命中二级高速缓存器l2 cache,在第一时钟周期内向数据流水线发送数据访问请求。
77.s104、数据流水线在第三时钟周期内将读取到的数据返回给处理器核。
78.其中,标签流水线用于基于来自处理器核的数据访问请求获取标签内存中的标签,并基于获取的标签将该数据访问请求传送到数据流水线。数据流水线用于基于数据访问请求将数据内存中的数据传送到处理器核。
79.在该实施例中,标签流水线在基于来自处理器核的数据访问请求获取标签后,若在第一时钟周期内,根据数据访问请求和获取的标签,确定第一命中结果为命中l2 cache,则在该第一时钟周期内向数据流水线发送数据访问请求,并且数据流水线在第三时钟周期内将读取到的数据返回给处理器核。通过根据数据访问请求和获取的标签,确定推测的命中结果,且在推测命中的情况下,直接进行数据读取,可以有效降低因进行ecc校准带来的延时,从而提高cpu的性能。
80.在一些实施例中,步骤s102具体可以包括:将数据访问请求对应的地址与获取的标签中的地址进行比较,确定第一命中结果。
81.具体的,将数据访问请求对应的地址与获取的标签中的地址进行比较,若二者一致,则确定第一命中结果为命中(hit),否则,确定第一命中结果为未命中(miss)。
82.本技术实施例中提供了一种可能的实现方式,在确定第一命中结果后,方法还包括:
83.s105(图中未示出)、在第一时钟周期内,对标签进行校准,得到第二命中结果。
84.s106(图中未示出)、若第一命中结果和第二命中结果相同,且均为命中l2 cache,确定不执行在第二时钟周期内向数据流水线发送数据访问请求的操作。
85.s107(图中未示出)、若第一命中结果和第二命中结果不同,确定第一命中结果错误,并执行相应操作。
86.具体的,在该实施例中,在根据数据访问请求和获取的标签,确定推测的命中结果后,需要对获取的标签进行ecc校准,根据校准结果确定真实的命中结果,即第二命中结果,再将推测的第一命中结果和真实的第二命中结果进行比较,确定要执行的相应操作。
87.如果第一命中结果和第二命中结果相同,且均为命中,则确定不执行在第二时钟周期(第一时钟周期的下一个时钟周期)内向数据流水线发送数据访问请求的操作。也就是说,基于推测的第一命中结果已经在第一时钟周期内给数据流水线发送了数据访问请求,则在第一时钟周期的下一个时钟周期内不再给数据流水线发起数据访问请求,从而可以有效降低因ecc校准带入的延时。
88.如果第一命中结果和第二命中结果不同,确定第一命中结果错误,并执行相应操作。也就是说,推测的第一命中结果与真实的第二命中结果不同,则说明推测的第一命中结果是错误的,则需要执行一些操作,以对基于错误的推测命中结果进行的数据读取的过程进行修正。
89.在一种可能的实现方案中,步骤s107具体可以包括:
90.若第一命中结果为命中l2 cache,第二命中结果为未命中l2 cache,取消在第一时钟周期内发送的数据访问请求;
91.若第一命中结果为未命中l2 cache,第二命中结果为命中l2 cache,确定在第二时钟周期内向数据流水线发送数据访问请求。
92.具体的,在该实施例中,如果推测的第一命中结果为命中,真实的第二命中结果为未命中,则说明推测的命中结果错误,且实际上未命中,需要取消在第一时钟周期内发送的数据访问请求。如果推测的第一命中结果为未命中,真实的第二命中结果为命中,则说明推测的命中结果错误,且实际上命中了,需要在第一时钟周期的下一个时钟周期(即第二时钟周期)内向数据流水线发送数据访问请求,以读取数据。
93.需要说明的是,上述ecc校准的过程,可以采用现有相关技术来实现,为了描述的简洁,在此不再赘述。
94.本技术实施例中提供了一种可能的实现方式,在步骤104之后,还可以包括:
95.s108(图中未示出)、数据流水线在第三时钟周期内,对读取的数据进行校准,得到校准结果。
96.s109(图中未示出)、根据校准结果,确定在第四时钟周期内要执行的操作。
97.具体的,在该实施例中,数据流水线在第三周期内读取数据并返回给处理器核之后,还需要对读取的数据进行ecc校准,并基于校准结果确定在第四时钟周期(第三时钟周期的下一个时钟周期)内要执行的相应操作。
98.也就是说,在该实施例中,为了确保基于推测的命中结果,由数据流水线返回给处理器核的数据的正确性,需要对读取的数据进行ecc校准,并基于校准结果确定是否要执行一些操作,以对基于读取错误的数据进行修正。
99.本技术实施例中提供了一种可能的实现方式,步骤s109具体可以包括:
100.若校准结果为1bit的错误信息,确定在第四时钟周期内向处理器核发送第一信号,其中,第一信号用于表征在第三时钟周期内返回给处理器核的数据有误。
101.对在第三时钟周期内返回给处理器核的数据进行修正,并在第五时钟周期内向处理器核重发正确的数据。
102.具体的,在该实施例中,如果对读取的数据进行ecc校准后的结果为1bit的错误,则需要在第三时钟周期的下一个时钟周期(即第四时钟周期)内向处理器核发送,用于表征在第三时钟周期内返回给处理器核的数据有误的信号,并对该数据进行修正后,在第四时钟周期的下一个时钟周期(即第五时钟周期)内向处理器核重新发送修正后的正确的数据。
103.本技术实施例中提供了另一种可能的实现方式,步骤s109具体可以包括:若校准结果为大于1bit的错误信息,确定在第四时钟周期内向处理器核发送第二信号。其中,第二信号用于表征在第三时钟周期内返回给处理器核的数据有误且不可修正。
104.具体的,在该实施例中,如果对读取的数据进行ecc校准后的结果为大于1bit的错误,则需要在第三时钟周期的下一个时钟周期(即第四时钟周期)内向处理器核发送,用于表征在第三时钟周期内返回给处理器核的数据有误且不可修正的信号,以通知处理器核此前返回的数据是错误的。
105.下面结合图3和图4对本技术实施例的技术方案进行详细的描述。其中,图3为实现本技术实施例提供的一种用于数据处理的流水线的示意图。如图3所示,横向为标签流水线
(tag pipeline),分为标签仲裁(tarb)、t1、t2以及t3四个流水线(pipeline)。纵向为数据流水线(data pipeline),分为数据仲裁(darb)、d1、d2、d3、d4以及d5六个pipeline。
106.图4为本技术另一实施例提供的一种数据处理方法的流程示意图。如图4所示,该方法包括:
107.s201、读请求(可以对应上文中的数据访问请求)到达l2 cache后在标签流水线的tarb流水线阶段访问tag ram。
108.s202、在t1流水线阶段从tag ram中读出标签数据,并在读出标签后打一拍到t2,即触发下一个时钟周期,进入t2流水线阶段。
109.s203、在t2流水线阶段(可以对应上文中的第一时钟周期)直接将读请求的地址与读取的标签数据中的标签进行比较,提前得到一个推测性的命中结果(可以对应上文中的第一命中结果),可以称为预测命中(prediction hit,简写为pred_hit)。
110.s204、判断pred_hit是否为命中。若是,则执行步骤s205,若否,则执行步骤s206。
111.s205、如果pred_hit=1(即pred_hit为命中),就暂且认为l2是命中的,直接向数据流水线发起读请求以读取数据(data)。
112.现有设计方案中,在t2流水线阶段要对读取的标签(tag)进行ecc校准,然后才能判断命中与否(结果为hit或miss)。在该实施例的方案中,在ecc校准之前直接用请求的地址和tag进行比较,提前得到一个推测性的命中结果,如果pred_hit=1,就暂且认为l2是命中的,直接去读data,从而可以有效的降低因ecc校准带来的延时。
113.s206、在t2流水线阶段要对读取的标签(tag)进行ecc校准,以得到真实的命中结果hit(可以对应上文中的第二命中结果),并在完成ecc校准后打一拍到t3,即触发下一个时钟周期,进入t3流水线阶段。
114.s207、在t3流水线阶段(可以对应上文中的第二时钟周期),比较第一命中结果和第二命中结果,并根据比较结果,确定要执行的相应操作。
115.具体的,在该实施例中,如果pre_hit=1且hit=1,说明推测的hit是正确的,t3流水线阶段就不再给data pipe发起读请求。如果pre_hit=1且hit=0,说明推测的hit是错误的,此时要取消掉t2流水线阶段发起的read请求。如果pre_hit=0且hit=1,说明推测的hit是错误的,t3流水线阶段给data pipe发起读请求。
116.s208、数据流水线的darb流水线阶段根据读请求开始读数据内存(data ram)。
117.需要说明的是,因为l2 cache的data ram一般较大,在d2流水线阶段才能读出数据,且d2流水线阶段没有多余的时间做更多的事情,只能打一拍到d3,即触发下一个时钟周期,进入d3流水线阶段。
118.s209、在d3流水线阶段(可以对应上文中的第三时钟周期)把data提前返回给core。
119.现有设计方案中,在d3流水线阶段始对data进行ecc校准,得到正确的data后,在d5流水线阶段才把data提前返回给core。在该实施例的方案中,在ecc校准之前直接在d3把data提前返回给core。因此,相比现有的方案,可以缩短2个时钟周期的延时。
120.s210、在d3流水线阶段对数据进行ecc校准,根据校准结果,确定d4流水线阶段给core发起的信号。
121.具体的,在该实施例中,如果d3流水线阶段进行ecc校准后发现1bit ecc错误,那
么就在d4阶段给core发起重发(resend)信号(可以对应上文中的第一信号),表示之前的data有误,在下一拍(即下一个时钟周期)会重新发送正确的data给core。于是在d4阶段(可以对应上文中的第四时钟周期)完成对1bit data错误的修正,然后打一拍到d5(可以对应上文中的第五时钟周期)返回给core。
122.如果d3流水线阶段进行ecc校准后发现1bit以上ecc错误,此时ecc算法已没能力修正data,只能在d4阶段给core发起错误信号(可以对应上文中的第二信号),表示之前的data有误且不可修正。
123.结合上述具体流程,从图3中可以看出,本技术实施例的设计利用推测hit的方式在t2阶段就发起对data的访问,比现有设计在t3阶段读data快了1个时钟周期。然后利用提前返回data的方式在d3阶段就把data返回给core,比现有设计在d5返回data快了2个时钟周期。因此,一共缩短了3个时钟周期的延时,从而让本技术实施例的设计中l2 hit延时减少到5个时钟周期(现有设计中l2 hit延时为8个时钟周期)。
124.由于l2 cache命中率高且ecc出现错误的几率比较低,所以本技术的方案在绝大多数load场景中可以减少延时,提高cpu的性能。
125.综上,本技术实施例中的方案,利用推测命中的方式绕开了tag ecc校准,利用提前返回data的方式绕开了data ecc校准,有效的缩短了l2hit延时。同时,通过取消读请求和/或重发数据的方式,在提高cpu性能的同时又保证了所读取数据的正确性。
126.图5为本技术实施例提供的一种数据处理装置的结构意图。如图5所示的装置包括:处理器核10和高速缓存20及其的控制器30,其中,
127.处理器核10发出数据访问请求。高速缓存的控制器30用于在接收到处理器核10发出的数据访问请求时,在高速缓存20中查询高速缓存标签,并将查询的标签与数据访问请求的地址进行比较,以推测是否命中,若推测结果为命中,则直接访问高速缓存20读取数据并返回给处理器核10。
128.其中,在推测是否命中的阶段进行对标签的校准和高速缓存的实际命中判断,以及在将数据返回给处理器核的阶段进行数据的校准。
129.在该实施例中,通过比较数据访问请求的地址和获取的标签,推测是否命中,且在推测命中的情况下,直接进行数据读取,可以有效降低因进行ecc校准带来的延时,从而提高cpu的性能。
130.在一些实施例中,控制器30还用于:若高速缓存的实际命中判断为否,则确定推测结果错误,取消向高速缓存20发出的数据访问请求。
131.在另一些实施例中,控制器30还用于:若推测结果为未命中,且高速缓存的实际命中判断为是,则确定推测结果错误,在进行高速缓存的实际命中判断后的阶段访问高速缓存20读取数据并返回给处理器核10。
132.在另一些实施例中,控制器30还用于:若进行数据校准的结果为存在数据错误信息,向处理器核10发送第一信号,其中,该第一信号用于表征返回给处理器核10的数据有误,对返回给处理器核10的数据进行修正,并向处理器核10重发正确的数据。
133.在另一些实施例中,控制器30还用于:若进行数据校准的结果为大于1bit的数据错误信息,向处理器核10发送第二信号,其中,该第二信号用于表征返回给处理器核10的数据有误且不可修正。
134.本技术实施例的装置可执行本技术实施例提供的数据处理方法,其实现原理和能够达到的效果相类似,本技术各实施例的装置中的各元件所执行的动作是与本技术各实施例的方法中的步骤相对应的,对于装置的各元件的详细功能描述具体可以参见前文中的数据处理方法中的描述,此处不再赘述。
135.需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
136.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
137.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
138.应该理解的是,虽然本技术实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本技术实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本技术实施例对此不限制。
139.以上所述仅是本技术部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的方案技术构思的前提下,采用基于本技术技术思想的其他类似实施手段,同样属于本技术实施例的保护范畴。

技术特征:


1.一种数据处理装置,其中,包括:处理器核,其发出数据访问请求;高速缓存的控制器,其用于在接收到数据访问请求时,在所述高速缓存中查询高速缓存标签,并将查询的标签与数据访问请求的地址进行比较,以推测是否命中,若推测结果为命中,则直接访问所述高速缓存读取数据并返回给所述处理器核,其中,在推测是否命中的阶段进行对标签的校准和高速缓存的实际命中判断,以及在将数据返回给所述处理器核的阶段进行所述数据的校准。2.根据权利要求1所述的装置,其中,所述控制器,其还用于:若高速缓存的实际命中判断为否,则确定推测结果错误,取消向所述高速缓存发出的数据访问请求。3.根据权利要求1所述的装置,其中,所述控制器,其还用于:若推测结果为未命中,且高速缓存的实际命中判断为是,则确定推测结果错误,在进行高速缓存的实际命中判断后的阶段访问所述高速缓存读取数据并返回给所述处理器核。4.根据权利要求1或3所述的装置,其中,所述控制器,其还用于:若进行数据校准的结果为存在数据错误信息,向所述处理器核发送第一信号,其中,所述第一信号用于表征返回给所述处理器核的数据有误;对返回给所述处理器核的数据进行修正,并向所述处理器核重发正确的数据。5.根据权利要求1或3所述的装置,其中,所述控制器,其还用于:若进行数据校准的结果为大于1bit的数据错误信息,向所述处理器核发送第二信号,其中,所述第二信号用于表征返回给所述处理器核的数据有误且不可修正。6.一种数据处理方法,其中,包括:根据接收到的数据访问请求,在高速缓存中查询高速缓存标签;将查询的标签与数据访问请求的地址进行比较,以推测是否命中;若推测结果为命中,则直接访问所述高速缓存读取数据并返回给处理器核;其中,在推测是否命中的阶段进行对标签的校准和高速缓存的实际命中判断,以及在将数据返回给处理器核的阶段进行所述数据的校准。7.根据权利要求6所述的方法,其中,还包括:若高速缓存的实际命中判断为否,则确定推测结果错误,取消向所述高速缓存发出的数据访问请求。8.根据权利要求6所述的方法,其中,还包括:若推测结果为未命中,且高速缓存的实际命中判断为是,则确定推测结果错误,在进行高速缓存的实际命中判断后的阶段访问所述高速缓存读取数据并返回给所述处理器核。9.根据权利要求6或8所述的方法,其中,还包括:若进行数据校准的结果为存在数据错误信息,向所述处理器核发送第一信号,其中,所述第一信号用于表征返回给所述处理器核的数据有误;对返回给所述处理器核的数据进行修正,并向所述处理器核重发正确的数据。10.根据权利要求6或8所述的方法,其中,还包括:若进行数据校准的结果为大于1bit的数据错误信息,向所述处理器核发送第二信号,其中,所述第二信号用于表征返回给所述处理器核的数据有误且不可修正。

技术总结


本申请实施例提供了一种数据处理装置和方法,涉及计算机技术领域。该装置包括:处理器核,其发出数据访问请求;高速缓存的控制器,其用于在接收到数据访问请求时,在所述高速缓存中查询高速缓存标签,并将查询的标签与数据访问请求的地址进行比较,以推测是否命中,若推测结果为命中,则直接访问所述高速缓存读取数据并返回给所述处理器核,其中,在推测是否命中的阶段进行对标签的校准和高速缓存的实际命中判断,以及在将数据返回给所述处理器核的阶段进行所述数据的校准。本申请实施例的方案,通过比较数据访问请求的地址和获取的标签,推测是否命中,且在推测命中的情况下,直接进行数据读取,可以有效降低因进行ECC校准带来的延时,从而提高CPU的性能。从而提高CPU的性能。从而提高CPU的性能。


技术研发人员:

韩新辉 姚永斌

受保护的技术使用者:

北京奕斯伟计算技术股份有限公司

技术研发日:

2022.09.20

技术公布日:

2022/12/23

本文发布于:2024-09-23 03:27:27,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/45343.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   处理器   所述   高速缓存
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议