CN111241009B - 一种数据反馈方法及装置 - Google Patents
一种数据反馈方法及装置 Download PDFInfo
- Publication number
- CN111241009B CN111241009B CN201911414620.9A CN201911414620A CN111241009B CN 111241009 B CN111241009 B CN 111241009B CN 201911414620 A CN201911414620 A CN 201911414620A CN 111241009 B CN111241009 B CN 111241009B
- Authority
- CN
- China
- Prior art keywords
- address
- data
- cache line
- tail
- mapped
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种数据反馈方法及装置。该方法包括:接收数据请求,所述数据请求中携带有待反馈数据的请求地址和请求长度;根据所述请求地址和所述请求长度,计算存有所述待反馈数据的至少一个内存单元的连续地址片段;从所述连续地址片段所映射的一个缓存行或两个缓存行中获取所述待反馈数据,并反馈所述待反馈数据。本发明可以提高速缓冲存储器的数据反馈效率。
Description
技术领域
本发明属于缓存技术领域,具体涉及一种数据反馈方法及装置。
背景技术
高速缓冲存储器是一种支持高速数据访问的存储器,高速缓冲存储器中所缓存的是最近访问过的数据;由于这些数据被再次访问的概率较高,因此,将这些数据从内存中取出并存储在高速缓冲存储器中,可以提高数据访问速度。其中,内存与高速缓冲存储器之间具有数据映射关系;具体的,内存中地址连续的多个内存单元可以映射在高速缓冲存储器的一个缓存行中;根据内存单元的地址,可以确定内存单元所映射的缓存行。
现有技术中,应用于高速缓冲存储器中的数据反馈方法包括:接收数据请求,该数据请求中携带有待反馈数据的请求地址,该请求地址具体为一个内存单元的地址;从该内存单元的地址所映射的一个缓存行中,获取并反馈该内存单元所映射的数据片段。
然而,现有的数据反馈方法中,高速缓冲存储器响应于每个数据请求,只能从一个缓存行中,选取一个内存单元所映射的数据片段进行反馈,使得数据反馈的效率较为低下,从而降低了数据访问速度。
发明内容
为了解决现有技术中存在的上述问题,本发明实施例提供了一种数据反馈方法及装置。
本发明要解决的技术问题通过以下技术方案实现:
第一方面,本发明实施例提供了一种数据反馈方法,应用于高速缓冲存储器,所述方法包括:
接收数据请求,所述数据请求中携带有待反馈数据的请求地址和请求长度;
根据所述请求地址和所述请求长度,计算存有所述待反馈数据的至少一个内存单元的连续地址片段;
从所述连续地址片段所映射的一个缓存行或两个缓存行中获取所述待反馈数据,并反馈所述待反馈数据。
在本发明的一个实施例中,所述根据所述请求地址和所述请求长度,计算存有所述待反馈数据的至少一个内存单元的连续地址片段,包括:
将所述请求地址作为存有所述待反馈数据的至少一个内存单元的连续地址片段的首地址;
计算所述首地址加上所述请求长度之后的尾地址;
将所述首地址和所述尾地址所指示的一段连续地址作为存有所述待反馈数据的至少一个内存单元的连续地址片段。
在本发明的一个实施例中,所述从所述连续地址片段所映射的一个缓存行或两个缓存行中获取所述待反馈数据,包括:
判断所述首地址所映射的一个缓存行和所述尾地址所映射的一个缓存行是否相同;
当判断结果为是时,从所述首地址和所述尾地址所共同映射的一个缓存行中获取所述待反馈数据;
当判断结果为否时,分别从所述首地址和所述尾地址各自映射的两个缓存行中获取所述待反馈数据。
在本发明的一个实施例中,所述从所述首地址和所述尾地址所共同映射的一个缓存行中获取所述待反馈数据,包括:
从所述首地址和所述尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为所述待反馈数据;
其中,所述第一地址片段的起始地址由所述首地址指出,截止地址由所述尾地址指出。
在本发明的一个实施例中,所述分别从所述首地址和所述尾地址各自映射的两个缓存行中获取所述待反馈数据,包括:
从所述首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从所述尾地址所映射的一个缓存行中,获取第三地址片段中的数据;
对所获取的两部分数据进行拼接,得到所述待反馈数据;
其中,所述第二地址片段的起始地址由所述首地址指出,截止地址为所述首地址所映射的一个缓存行的截止地址;所述第三地址片段的起始地址为所述尾地址所映射的一个缓存行的起始地址,截止地址由所述尾地址指出。
在本发明的一个实施例中,在从所述首地址和所述尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为所述待反馈数据之前,所述方法还包括:
判断所述首地址和所述尾地址所共同映射的一个缓存行是否命中;
当判断结果为是时,继续执行所述从首地址和所述尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为所述待反馈数据的步骤;
当判断结果为否时,从内存中获取所述首地址和所述尾地址所共同映射的一个缓存行内的所有数据,并根据所获取的数据生成所述首地址和所述尾地址所共同映射的一个缓存行。
在本发明的一个实施例中,在从所述首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从所述尾地址所映射的一个缓存行中,获取第三地址片段中的数据之前,所述方法还包括:
判断所述首地址所映射的一个缓存行以及所述尾地址所映射的一个缓存行是否均已命中;
当判断结果为是时,继续执行所述从所述首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从所述尾地址所映射的一个缓存行中,获取第三地址片段中的数据的步骤;
当判断结果为否时,针对所判断的未命中的每个缓存行,从内存中获取该缓存行内的所有数据,并根据所获取的数据,生成该缓存行。
在本发明的一个实施例中,所述对所获取的两部分数据进行拼接,得到所述待反馈数据,包括:
按照所述第二地址片段中的数据位于数据低位、所述第三地址片段中的数据位于数据高位的标准,对所获取的两部分数据进行拼接。
第二方面,本发明实施例提供了一种数据反馈装置,应用于高速缓冲存储器,所述装置包括:
请求接收模块,用于接收数据请求,所述数据请求中携带有待反馈数据的请求地址和请求长度;
地址计算模块,用于根据所述请求地址和所述请求长度,计算存有所述待反馈数据的至少一个内存单元的连续地址片段;
数据反馈模块,用于从所述连续地址片段所映射的一个缓存行或两个缓存行中获取所述待反馈数据,并反馈所述待反馈数据。
在本发明的一个实施例中,所述地址计算模块,具体用于:
将所述请求地址作为存有所述待反馈数据的至少一个内存单元的连续地址片段的首地址;
计算所述首地址加上所述请求长度之后的尾地址;
将所述首地址和所述尾地址所指示的一段连续地址作为存有所述待反馈数据的至少一个内存单元的连续地址片段。
在本发明的一个实施例中,所述数据反馈模块,包括:判断子模块、第一获取子模块以及第二获取子模块;
所述判断子模块,用于判断所述首地址所映射的一个缓存行和所述尾地址所映射的一个缓存行是否相同;当判断结果为是时,触发所述第一获取子模块;当判断结果为否时,触发所述第二获取子模块;
所述第一获取子模块,用于从所述首地址和所述尾地址所共同映射的一个缓存行中获取所述待反馈数据;
所述第一获取子模块,用于分别从所述首地址和所述尾地址各自映射的两个缓存行中获取所述待反馈数据。
在本发明的一个实施例中,所述第一获取子模块,具体用于:
从所述首地址和所述尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为所述待反馈数据;
其中,所述第一地址片段的起始地址由所述首地址指出,截止地址由所述尾地址指出。
在本发明的一个实施例中,所述第二获取子模块,具体用于:
从所述首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从所述尾地址所映射的一个缓存行中,获取第三地址片段中的数据;
对所获取的两部分数据进行拼接,得到所述待反馈数据;
其中,所述第二地址片段的起始地址由所述首地址指出,截止地址为所述首地址所映射的一个缓存行的截止地址;所述第三地址片段的起始地址为所述尾地址所映射的一个缓存行的起始地址,截止地址由所述尾地址指出。
在本发明的一个实施例中,所述装置还包括:第一命中判断模块和第一生成模块;
所述第一命中判断模块,用于在所述第一获取子模块从所述首地址和所述尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为所述待反馈数据之前,判断所述首地址和所述尾地址所共同映射的一个缓存行是否命中;当判断结果为是时,触发所述第一获取子模块;当判断结果为否时,触发所述第一生成模块;
所述第一生成模块,用于从内存中获取所述首地址和所述尾地址所共同映射的一个缓存行内的所有数据,并根据所获取的数据生成所述首地址和所述尾地址所共同映射的一个缓存行。
在本发明的一个实施例中,所述装置还包括:第二命中判断模块和第二生成模块;
所述第二命中判断模块,用于在所述第二获取子模块从所述首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从所述尾地址所映射的一个缓存行中,获取第三地址片段中的数据之前,判断所述首地址所映射的一个缓存行以及所述尾地址所映射的一个缓存行是否均已命中;当判断结果为是时,触发所述第二获取子模块;当判断结果为否时,触发所述第二生成模块;
所述第二生成模块,用于针对所判断的未命中的每个缓存行,从内存中获取该缓存行内的所有数据,并根据所获取的数据,生成该缓存行。
在本发明的一个实施例中,所述第二获取子模块,对所获取的两部分数据进行拼接,得到所述待反馈数据,包括:
按照所述第二地址片段中的数据位于数据低位、所述第三地址片段中的数据位于数据高位的标准,对所获取的两部分数据进行拼接。
本发明的有益效果:
本发明实施例提供的数据反馈方法中,高速缓冲存储器接收的数据请求中,携带有待反馈数据的请求地址和请求长度;高速缓冲存储器根据该请求地址和该请求长度,可以计算存有待反馈数据的至少一个内存单元的连续地址片段;然后,高速缓冲存储器便可以从该连续地址片段所映射的一个缓存行或两个缓存行中获取并反馈待反馈数据。这样,速缓冲存储器接收一次数据请求,可以反馈映射在缓存行内的多个内存单元乃至整个缓存行的数据;因此,本发明实施例提供的数据反馈方法提高了速缓冲存储器的数据反馈效率。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是内存与高速缓冲存储器的地址映射关系的示意图;
图2是本发明实施例提供的一种数据反馈方法的流程示意图;
图3是本发明实施例提供的一种数据反馈装置的结构示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
为了提高高速缓冲存储器的数据反馈效率,本发明实施例提供了一种数据反馈方法及装置。其中,本发明实施例提供的数据反馈方法的执行主体,可以为一种数据反馈装置,该装置应用于高速缓冲存储器中。其中,该高速缓冲存储器可以为电子设备中的高速缓冲存储器,该电子设备可以为台式计算机、便携式计算机、智能移动终端、服务器等。在此不作限定,任何可以实现本发明的电子设备,均属于本发明的保护范围。
为了方案清楚,使用图1对电子设备中的内存与高速缓冲存储器的地址映射关系进行简要说明。如图1所示,内存中的每个内存单元的地址分为high位、mid位以及low位。其中,high位用于标识内存单元所属的内存区域,位于同一内存区域中的内存单元的high位均是相同的。mid位用于标识内存单元具体映射的是哪一个缓存行;可以理解的是,位于同一内存区域但映射在不同缓存行中的内存单元,high位相同,mid位不相同;而位于同一内存区域且映射在同一缓存行中的内存单元,high位相同,mid也相同。low位用于标识内存单元在其所映射的缓存行中的偏移量;可以理解的是,每个缓存行中可以映射多个内存单元,根据任一内存单元的low位,可以定位到该内存单元映射在缓存行中的具体位置。
在图1中,高速缓冲存储器为一个n路组相连的高速缓冲存储器;也就是说,该高速缓冲存储器可以存有多组缓存行,每组缓存行具有n个缓存行,图1中示例性的示出了一组缓存行。此外,每个缓存行对应一个寄存器,该寄存器中存储的便是缓存到该缓存行的多个地址连续的内存单元的high位。
首先,对本发明实施例提供的数据反馈方法进行详细说明,如图2所示,该方法可以包括以下步骤:
S10:接收数据请求,该数据请求中携带有待反馈数据的请求地址和请求长度。
其中,数据请求可以是高速缓冲存储器对应的处理器所发出的,当然,并不局限此。
另外,请求地址可以是为内存中的任一内存单元的地址;这里,内存单元可以是内存在存储数据的时的最小单元,例如,字节;请求长度可以是小于或等于缓存行长度的任意长度;这里,请求长度和缓存行长度的单位均指的是内存单元的个数。可以理解的是,在请求地址的基础上,结合待反馈数据的请求长度,高速缓冲存储器可以反馈一个字节的数据、一个字的数据、一个双字的数据或者任意数量个字节的数据。
S20:根据请求地址和请求长度,计算存有待反馈数据的至少一个内存单元的连续地址片段。
可以理解的是,连续地址片段是多个地址连续的内存单元的地址所构成的片段;
其中,根据请求地址和请求长度,计算存有待反馈数据的至少一个内存单元的连续地址片段的具体实现方式存在多种。示例性的,在一种实现方式中,根据请求地址和请求长度,计算存有待反馈数据的至少一个内存单元的连续地址片段,可以包括:
将请求地址作为存有待反馈数据的至少一个内存单元的连续地址片段的首地址;
计算首地址加上请求长度之后的尾地址;
将首地址和尾地址所指示的一段连续地址作为存有待反馈数据的至少一个内存单元的连续地址片段。
在另一种实现方式中,根据请求地址和请求长度,计算存有待反馈数据的至少一个内存单元的连续地址片段,可以包括:
将请求地址作为存有待反馈数据的至少一个内存单元的连续地址片段的尾地址;
计算尾地址减去请求长度之后的首地址;
将首地址和尾地址所指示的一段连续地址作为存有待反馈数据的至少一个内存单元的连续地址片段。
可以理解的是,上述的首地址、尾地址以及连续地址片段,均指的是在内存侧的地址。也就是说,首地址、尾地址以及连续地址片段中的任一地址,均包含有上述的low位、mid位以及high位。
S30:从连续地址片段所映射的一个缓存行或两个缓存行中获取待反馈数据,并反馈待反馈数据。
可以理解的是,请求地址所对应的内存单元在缓存行中的映射位置,可以位于缓存行的起始地址、终止地址,或起始地址和终止地址之间的任一地址;因此,将请求地址作为首地址加上请求长度后所得到的尾地址,可能与首地址映射在同一个缓存行中,也可能并未与首地址映射在同一个缓存行中。
因此,从连续地址片段所映射的一个缓存行或两个缓存行中获取待反馈数据的具体实现方式可以包括:
判断首地址所映射的一个缓存行和尾地址所映射的一个缓存行是否相同;
当判断结果为是时,从首地址和尾地址所共同映射的一个缓存行中获取待反馈数据;
当判断结果为否时,分别从首地址和尾地址各自映射的两个缓存行中获取待反馈数据。
在实际应用中,可以根据首地址的mid位,确定首地址所映射的缓存行;根据尾地址的mid位,确定尾地址所映射的缓存行;也就是说,根据首地址和尾地址各自的mid位,便可以确定首地址所映射的一个缓存行和尾地址所映射的一个缓存行是否相同。当首地址和尾地址各自的mid位相同时,首地址和尾地址映射的是同一个缓存行;当首地址和尾地址各自的mid位不同时,首地址和尾地址则分别映射于不同的缓存行中。
可以理解的是,当得到判断结果后,便可以从相应的缓存行中获取待反馈数据。为了方案清楚及布局清晰,后续分别对从一个缓存行以及两个缓存行中获取待反馈数据的具体实现方式进行说明。
本发明实施例提供的数据反馈方法中,高速缓冲存储器接收的数据请求中,携带有待反馈数据的请求地址和请求长度;高速缓冲存储器根据该请求地址和该请求长度,可以计算存有待反馈数据的至少一个内存单元的连续地址片段;然后,高速缓冲存储器便可以从该连续地址片段所映射的一个缓存行或两个缓存行中获取并反馈待反馈数据。这样,速缓冲存储器接收一次数据请求,可以反馈映射在缓存行内的多个内存单元乃至整个缓存行的数据;因此,本发明实施例提供的数据反馈方法提高了速缓冲存储器的数据反馈效率。
为了方案清楚,下面分别对从一个缓存行以及两个缓存行中获取待反馈数据的具体实现方式进行说明。
首先,对从首地址和尾地址所共同映射的一个缓存行中获取待反馈数据的具体实现方式进行说明。示例性的,从首地址和尾地址所共同映射的一个缓存行中获取待反馈数据,可以包括:
从首地址和尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为待反馈数据;
其中,第一地址片段的起始地址由首地址指出,截止地址由尾地址指出。
这里,第一地址片段的起始地址由首地址指出,具体是由首地址中的low位指出;第一地址片段的截止地址由尾地址指出,具体是由尾地址中的low位指出。这里,low位的作用在于对缓存行所缓存的内存单元中的数据进行寻址。
然后,对分别从首地址和尾地址各自映射的两个缓存行中获取待反馈数据的具体实现方式进行说明。示例性的,分别从首地址和尾地址各自映射的两个缓存行中获取待反馈数据,可以包括:
从首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从尾地址所映射的一个缓存行中,获取第三地址片段中的数据;
对所获取的两部分数据进行拼接,得到待反馈数据;
其中,第二地址片段的起始地址由首地址指出,截止地址为首地址所映射的一个缓存行的截止地址;第三地址片段的起始地址为尾地址所映射的一个缓存行的起始地址,截止地址由尾地址指出。
这里,第二地址片段的起始地址由首地址指出,具体是由首地址中的low位指出;第三地址片段的截止地址由尾地址指出,具体是由尾地址中的low位指出。同理的,low位的作用在于对缓存行所缓存的内存单元中的数据进行寻址。
其中,对所获取的两部分数据进行拼接,得到待反馈数据的具体实现方式存在多种。示例性的,在一种实现方式中,对所获取的两部分数据进行拼接,得到待反馈数据,可以包括:
按照第二地址片段中的数据位于数据低位、第三地址片段中的数据位于数据高位的标准,对所获取的两部分数据进行拼接。
可以理解的是,在内存中,尾地址相对于首地址是较为高位的地址;因此,将首地址所指出的第二地址片段中的数据置于数据地位,将尾地址所指出的第三地址片段中的数据置于数据高位,可以保持数据在内存中原有的存储顺序。
当然,在另一种实现方式中,也可以按照第二地址片段中的数据位于数据高位、第三地址片段中的数据位于数据低位的标准,对所获取的两部分数据进行拼接。
另外,在从首地址和尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为待反馈数据之前,本发明实施例提供的数据反馈方法还可以包括:
判断首地址和尾地址所共同映射的一个缓存行是否命中;
当判断结果为是时,继续执行首地址和尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为待反馈数据的步骤;
当判断结果为否时,从内存中获取首地址和尾地址所共同映射的一个缓存行内的所有数据,并根据所获取的数据生成首地址和尾地址所共同映射的一个缓存行。
其中,判断首地址和尾地址所共同映射的一个缓存行是否命中,可以是判断首地址和尾地址所共同映射的一个缓存行,其对应的寄存器中存储的high位与首地址和尾地址中的high位是否一致;如果一致,则首地址和尾地址所共同映射的一个缓存行已命中,如果不一致,则未命中。
另外,当判断结果为否时,从内存中获取首地址和尾地址所共同映射的一个缓存行内的所有数据,具体可以是从内存中获取high位与首地址和尾地址的high位一致、且mid位与首地址和尾地址的mid位一致的所有内存单元中的数据。
可以理解的是,当生成首地址和尾地址所共同映射的一个缓存行后,高速缓冲存储器便可以继续从新生成的这个缓存行中,获取第一地址片段中的数据。
同理的,在从首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从尾地址所映射的一个缓存行中,获取第三地址片段中的数据之前,本发明实施例提供的数据反馈方法还可以包括:
判断首地址所映射的一个缓存行以及尾地址所映射的一个缓存行是否均已命中;
当判断结果为是时,继续执行从首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从尾地址所映射的一个缓存行中,获取第三地址片段中的数据的步骤;
当判断结果为否时,针对所判断的未命中的每个缓存行,从内存中获取该缓存行内的所有数据,并根据所获取的数据,生成该缓存行。
可以理解的是,这里的判断结果为否的情况可以包括三种;第一种情况,首地址所映射的一个缓存行未命中;第二种情况,尾地址所映射的一个缓存行未命中;第三种情况,两个缓存行中均未命中。
其中,判断首地址所映射的一个缓存行以及尾地址所映射的一个缓存行是否均已命中;可以分别判断首地址所映射的一个缓存行是否命中,以及尾地址所映射的一个缓存行是否命中。具体的,判断首地址所映射的一个缓存行,其对应的寄存器存储的high位与首地址中的high位是否一致;以及,判断尾地址所映射的一个缓存行,其对应的寄存器存储的high位与尾地址中的high位是否一致;如果均一致,则两个缓存行均已命中;否则,判定两个缓存行并未全部命中。
另外,当判断结果为否时,从内存中获取首地址映射的一个缓存行内的所有数据,具体可以是从内存中获取high位与首地址的high位一致、且mid位于首地址的mid位一致的所有内存单元中的数据;从内存中获取尾地址映射的一个缓存行内的所有数据,具体可以是从内存中获取high位与尾地址的high位一致、且mid位于尾地址的mid位一致的所有内存单元中的数据。
可以理解的是,当生成首地址映射的一个缓存行以及生成尾地址映射的一个缓存行后,高速缓冲存储器便可以继续从新生成的这两个缓存行中,分别获取第二地址片段中的数据和第三地址片段中的数据。
相应于上述的一种数据反馈方法,本发明实施例还提供了一种数据反馈装置,该装置应用于高速缓冲存储器中,如图3所示,该装置可以包括:
请求接收模块301,用于接收数据请求,所述数据请求中携带有待反馈数据的请求地址和请求长度;
地址计算模块302,用于根据所述请求地址和所述请求长度,计算存有所述待反馈数据的至少一个内存单元的连续地址片段;
数据反馈模块303,用于从所述连续地址片段所映射的一个缓存行或两个缓存行中获取所述待反馈数据,并反馈所述待反馈数据。
可选地,所述地址计算模块302,具体用于:
将所述请求地址作为存有所述待反馈数据的至少一个内存单元的连续地址片段的首地址;
计算所述首地址加上所述请求长度之后的尾地址;
将所述首地址和所述尾地址所指示的一段连续地址作为存有所述待反馈数据的至少一个内存单元的连续地址片段。
可选地,所述数据反馈模块303,包括:判断子模块、第一获取子模块以及第二获取子模块;
所述判断子模块,用于判断所述首地址所映射的一个缓存行和所述尾地址所映射的一个缓存行是否相同;当判断结果为是时,触发所述第一获取子模块;当判断结果为否时,触发所述第二获取子模块;
所述第一获取子模块,用于从所述首地址和所述尾地址所共同映射的一个缓存行中获取所述待反馈数据;
所述第一获取子模块,用于分别从所述首地址和所述尾地址各自映射的两个缓存行中获取所述待反馈数据。
可选地,所述第一获取子模块,具体用于:
从所述首地址和所述尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为所述待反馈数据;
其中,所述第一地址片段的起始地址由所述首地址指出,截止地址由所述尾地址指出。
可选地,所述第二获取子模块,具体用于:
从所述首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从所述尾地址所映射的一个缓存行中,获取第三地址片段中的数据;
对所获取的两部分数据进行拼接,得到所述待反馈数据;
其中,所述第二地址片段的起始地址由所述首地址指出,截止地址为所述首地址所映射的一个缓存行的截止地址;所述第三地址片段的起始地址为所述尾地址所映射的一个缓存行的起始地址,截止地址由所述尾地址指出。
可选地,所述装置还包括:第一命中判断模块和第一生成模块;
所述第一命中判断模块,用于在所述第一获取子模块从所述首地址和所述尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为所述待反馈数据之前,判断所述首地址和所述尾地址所共同映射的一个缓存行是否命中;当判断结果为是时,触发所述第一获取子模块;当判断结果为否时,触发所述第一生成模块;
所述第一生成模块,用于从内存中获取所述首地址和所述尾地址所共同映射的一个缓存行内的所有数据,并根据所获取的数据生成所述首地址和所述尾地址所共同映射的一个缓存行。
可选地,所述装置还包括:第二命中判断模块和第二生成模块;
所述第二命中判断模块,用于在所述第二获取子模块从所述首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从所述尾地址所映射的一个缓存行中,获取第三地址片段中的数据之前,判断所述首地址所映射的一个缓存行以及所述尾地址所映射的一个缓存行是否均已命中;当判断结果为是时,触发所述第二获取子模块;当判断结果为否时,触发所述第二生成模块;
所述第二生成模块,用于针对所判断的未命中的每个缓存行,从内存中获取该缓存行内的所有数据,并根据所获取的数据,生成该缓存行。
可选地,所述第二获取子模块,对所获取的两部分数据进行拼接,得到所述待反馈数据,包括:
按照所述第二地址片段中的数据位于数据低位、所述第三地址片段中的数据位于数据高位的标准,对所获取的两部分数据进行拼接。
本发明实施例提供的数据反馈装置接收的数据请求中,携带有待反馈数据的请求地址和请求长度;根据该请求地址和该请求长度,可以计算存有待反馈数据的至少一个内存单元的连续地址片段;然后,从该连续地址片段所映射的一个缓存行或两个缓存行中获取并反馈待反馈数据。这样,本发明实施例提供的数据反馈装置接收一次数据请求,可以反馈映射在缓存行内的多个内存单元乃至整个缓存行的数据;因此,本发明实施例提供的数据反馈装置提高了速缓冲存储器的数据反馈效率。
需要说明的是,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个模块可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本申请是参照本申请实施例的方法和装置的流程图和/或方框图来描述的。应理解可由计算机程序指令或预先搭建的硬件电路实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种数据反馈方法,其特征在于,应用于高速缓冲存储器,所述方法包括:
接收数据请求,所述数据请求中携带有待反馈数据的请求地址和请求长度;
根据所述请求地址和所述请求长度,计算存有所述待反馈数据的至少一个内存单元的连续地址片段;
从所述连续地址片段所映射的一个缓存行或两个缓存行中获取所述待反馈数据,并反馈所述待反馈数据;
其中,内存中的每个内存单元的地址分为high位、mid位以及low位;high位用于标识内存单元所属的内存区域,mid位用于标识内存单元具体映射的是哪一个缓存行,low位用于标识内存单元在其所映射的缓存行中的偏移量;
所述从所述连续地址片段所映射的一个缓存行或两个缓存行中获取所述待反馈数据,包括:
根据请求地址和请求长度确定首地址和尾地址;
根据首地址和尾地址各自的mid位,判断所述首地址所映射的一个缓存行和所述尾地址所映射的一个缓存行是否相同;
当首地址和尾地址各自的mid位相同时,则首地址和尾地址映射的是同一个缓存行;从所述首地址和所述尾地址所共同映射的一个缓存行中获取所述待反馈数据;
当首地址和尾地址各自的mid位不同时,则首地址和尾地址分别映射于不同的缓存行中,分别从所述首地址和所述尾地址各自映射的两个缓存行中获取所述待反馈数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述请求地址和所述请求长度,计算存有所述待反馈数据的至少一个内存单元的连续地址片段,包括:
将所述请求地址作为存有所述待反馈数据的至少一个内存单元的连续地址片段的首地址;
计算所述首地址加上所述请求长度之后的尾地址;
将所述首地址和所述尾地址所指示的一段连续地址作为存有所述待反馈数据的至少一个内存单元的连续地址片段。
3.根据权利要求1所述的方法,其特征在于,所述从所述首地址和所述尾地址所共同映射的一个缓存行中获取所述待反馈数据,包括:
从所述首地址和所述尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为所述待反馈数据;
其中,所述第一地址片段的起始地址由所述首地址指出,截止地址由所述尾地址指出。
4.根据权利要求1所述的方法,其特征在于,所述分别从所述首地址和所述尾地址各自映射的两个缓存行中获取所述待反馈数据,包括:
从所述首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从所述尾地址所映射的一个缓存行中,获取第三地址片段中的数据;
对所获取的两部分数据进行拼接,得到所述待反馈数据;
其中,所述第二地址片段的起始地址由所述首地址指出,截止地址为所述首地址所映射的一个缓存行的截止地址;所述第三地址片段的起始地址为所述尾地址所映射的一个缓存行的起始地址,截止地址由所述尾地址指出。
5.根据权利要求3所述的方法,其特征在于,在从所述首地址和所述尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为所述待反馈数据之前,所述方法还包括:
判断所述首地址和所述尾地址所共同映射的一个缓存行是否命中;
当判断结果为是时,继续执行从首地址和尾地址所共同映射的一个缓存行中,获取第一地址片段中的数据,作为所述待反馈数据的步骤;
当判断结果为否时,从内存中获取所述首地址和所述尾地址所共同映射的一个缓存行内的所有数据,并根据所获取的数据生成所述首地址和所述尾地址所共同映射的一个缓存行。
6.根据权利要求4所述的方法,其特征在于,在从所述首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从所述尾地址所映射的一个缓存行中,获取第三地址片段中的数据之前,所述方法还包括:
判断所述首地址所映射的一个缓存行以及所述尾地址所映射的一个缓存行是否均已命中;
当判断结果为是时,继续执行所述从所述首地址所映射的一个缓存行中,获取第二地址片段中的数据,并从所述尾地址所映射的一个缓存行中,获取第三地址片段中的数据的步骤;
当判断结果为否时,针对所判断的未命中的每个缓存行,从内存中获取该缓存行内的所有数据,并根据所获取的数据,生成该缓存行。
7.根据权利要求4所述的方法,其特征在于,所述对所获取的两部分数据进行拼接,得到所述待反馈数据,包括:
按照所述第二地址片段中的数据位于数据低位、所述第三地址片段中的数据位于数据高位的标准,对所获取的两部分数据进行拼接。
8.一种数据反馈装置,其特征在于,应用于高速缓冲存储器,所述装置包括:
请求接收模块,用于接收数据请求,所述数据请求中携带有待反馈数据的请求地址和请求长度;
地址计算模块,用于根据所述请求地址和所述请求长度,计算存有所述待反馈数据的至少一个内存单元的连续地址片段;
数据反馈模块,用于从所述连续地址片段所映射的一个缓存行或两个缓存行中获取所述待反馈数据,并反馈所述待反馈数据;
其中,内存中的每个内存单元的地址分为high位、mid位以及low位;high位用于标识内存单元所属的内存区域,mid位用于标识内存单元具体映射的是哪一个缓存行,low位用于标识内存单元在其所映射的缓存行中的偏移量;
所述从所述连续地址片段所映射的一个缓存行或两个缓存行中获取所述待反馈数据,包括:
根据请求地址和请求长度确定首地址和尾地址;
根据首地址和尾地址各自的mid位,判断所述首地址所映射的一个缓存行和所述尾地址所映射的一个缓存行是否相同;
当首地址和尾地址各自的mid位相同时,则首地址和尾地址映射的是同一个缓存行;从所述首地址和所述尾地址所共同映射的一个缓存行中获取所述待反馈数据;
当首地址和尾地址各自的mid位不同时,则首地址和尾地址分别映射于不同的缓存行中,分别从所述首地址和所述尾地址各自映射的两个缓存行中获取所述待反馈数据。
9.根据权利要求8所述的装置,其特征在于,所述地址计算模块,具体用于:
将所述请求地址作为存有所述待反馈数据的至少一个内存单元的连续地址片段的首地址;
计算所述首地址加上所述请求长度之后的尾地址;
将所述首地址和所述尾地址所指示的一段连续地址作为存有所述待反馈数据的至少一个内存单元的连续地址片段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911414620.9A CN111241009B (zh) | 2019-12-31 | 2019-12-31 | 一种数据反馈方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911414620.9A CN111241009B (zh) | 2019-12-31 | 2019-12-31 | 一种数据反馈方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111241009A CN111241009A (zh) | 2020-06-05 |
CN111241009B true CN111241009B (zh) | 2023-05-16 |
Family
ID=70866083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911414620.9A Active CN111241009B (zh) | 2019-12-31 | 2019-12-31 | 一种数据反馈方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111241009B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095116A (zh) * | 2014-05-19 | 2015-11-25 | 华为技术有限公司 | 缓存替换的方法、缓存控制器和处理器 |
CN105426322A (zh) * | 2015-12-31 | 2016-03-23 | 华为技术有限公司 | 一种数据的预取方法及装置 |
CN105893274A (zh) * | 2016-05-11 | 2016-08-24 | 华中科技大学 | 一种面向异构内存系统建立检查点的装置 |
CN109582214A (zh) * | 2017-09-29 | 2019-04-05 | 华为技术有限公司 | 数据访问方法以及计算机系统 |
CN109614348A (zh) * | 2017-09-13 | 2019-04-12 | Arm有限公司 | 缓存行状态 |
CN109952565A (zh) * | 2016-11-16 | 2019-06-28 | 华为技术有限公司 | 内存访问技术 |
WO2019127104A1 (zh) * | 2017-12-27 | 2019-07-04 | 华为技术有限公司 | 高速缓存中资源调整方法、数据访问方法及装置 |
CN110232030A (zh) * | 2019-06-12 | 2019-09-13 | 上海兆芯集成电路有限公司 | 多芯片系统及缓存处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8954672B2 (en) * | 2012-03-12 | 2015-02-10 | Advanced Micro Devices, Inc. | System and method for cache organization in row-based memories |
-
2019
- 2019-12-31 CN CN201911414620.9A patent/CN111241009B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095116A (zh) * | 2014-05-19 | 2015-11-25 | 华为技术有限公司 | 缓存替换的方法、缓存控制器和处理器 |
CN105426322A (zh) * | 2015-12-31 | 2016-03-23 | 华为技术有限公司 | 一种数据的预取方法及装置 |
CN105893274A (zh) * | 2016-05-11 | 2016-08-24 | 华中科技大学 | 一种面向异构内存系统建立检查点的装置 |
CN109952565A (zh) * | 2016-11-16 | 2019-06-28 | 华为技术有限公司 | 内存访问技术 |
CN109614348A (zh) * | 2017-09-13 | 2019-04-12 | Arm有限公司 | 缓存行状态 |
CN109582214A (zh) * | 2017-09-29 | 2019-04-05 | 华为技术有限公司 | 数据访问方法以及计算机系统 |
WO2019127104A1 (zh) * | 2017-12-27 | 2019-07-04 | 华为技术有限公司 | 高速缓存中资源调整方法、数据访问方法及装置 |
CN110232030A (zh) * | 2019-06-12 | 2019-09-13 | 上海兆芯集成电路有限公司 | 多芯片系统及缓存处理方法 |
Non-Patent Citations (1)
Title |
---|
朱贵宪 ; 魏胜利 ; .缓存―主存地址映射方式解析.电脑知识与技术.2018,(19),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111241009A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9767038B2 (en) | Systems and methods for accessing a unified translation lookaside buffer | |
KR101844521B1 (ko) | 크로스-페이지 프리페칭 방법, 장치, 및 시스템 | |
US6052697A (en) | Reorganization of collisions in a hash bucket of a hash table to improve system performance | |
US10565113B2 (en) | Methods and systems for managing synonyms in virtually indexed physically tagged caches | |
CN106126441B (zh) | 缓存、缓存数据项的方法 | |
US10397362B1 (en) | Combined cache-overflow memory structure | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
CN107066396A (zh) | 用于操作虚拟索引的物理标记的缓存的装置及方法 | |
US10152420B2 (en) | Multi-way set associative cache and processing method thereof | |
US10579522B2 (en) | Method and device for accessing a cache memory | |
CN111949572A (zh) | 页表条目合并方法、装置及电子设备 | |
KR102575913B1 (ko) | 비대칭 세트 결합된 캐시 | |
KR101095204B1 (ko) | 낮은-복잡도 명령 프리패치 시스템을 위한 방법 및 장치 | |
EP3553665A1 (en) | Non-volatile memory access method, device, and system | |
CN114201120B (zh) | 一种数据读写方法、装置及相关设备 | |
CN114036077B (zh) | 数据处理方法及相关装置 | |
CN114860627A (zh) | 基于地址信息动态生成页表的方法 | |
CN111241009B (zh) | 一种数据反馈方法及装置 | |
CN109254930B (zh) | 数据访问方法及装置 | |
US20230080105A1 (en) | Non-volatile storage controller with partial logical-to-physical (l2p) address translation table | |
CN112379929B (zh) | 一种指令替换方法、装置、处理器、电子设备及存储介质 | |
CN107861819B (zh) | 一种缓存组负载均衡的方法、装置和计算机可读存储介质 | |
CN110674170B (zh) | 基于链表逆序访问的数据缓存方法、装置、设备及介质 | |
CN112231241B (zh) | 一种数据读取方法和装置、计算机可读存储介质 | |
CN117331854B (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 |