CN112416437B - 信息处理方法、信息处理装置和电子设备 - Google Patents
信息处理方法、信息处理装置和电子设备 Download PDFInfo
- Publication number
- CN112416437B CN112416437B CN202011403656.XA CN202011403656A CN112416437B CN 112416437 B CN112416437 B CN 112416437B CN 202011403656 A CN202011403656 A CN 202011403656A CN 112416437 B CN112416437 B CN 112416437B
- Authority
- CN
- China
- Prior art keywords
- address
- predicted
- virtual address
- level cache
- cache
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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
Abstract
一种信息处理方法、信息处理装置、电子设备。该信息处理方法包括:获取历史读取请求的读取信息,历史读取请求指示在历史时刻处理器核请求读取的第一存储信息,读取信息包括第一存储信息的历史虚拟地址和历史物理地址;根据历史虚拟地址,预测处理器核在未来时刻请求读取的第二存储信息所在的预测虚拟地址;判断预测虚拟地址与历史虚拟地址是否在同一个虚拟地址页中;响应于预测虚拟地址与历史虚拟地址在同一个虚拟地址页中,根据历史虚拟地址、历史物理地址和预测虚拟地址确定第一预测物理地址;以及将第一预测物理地址中存储的第二存储信息缓存到处理器的第一级缓存。该信息处理方法可以提高预先提取信息的时效性。
Description
技术领域
本公开的实施例涉及一种信息处理方法、信息处理装置和电子设备。
背景技术
指令数据预取是提升高性能中央处理单元(CPU)的性能的关键技术之一。缓存只能保存CPU核最近访问过的数据。当读取从未被访问的数据或是由于缓存大小限制被踢出的数据时,CPU核仍然需要等待数十甚至上百个时钟周期,造成性能损失。指令与数据预取能够根据数据访问规律来提前预取即将被使用的数据,从而减少CPU核等待数据的时钟周期,并提升CPU整体性能。
发明内容
本公开至少一个实施例提供一种信息处理方法,包括:获取历史读取请求的读取信息,历史读取请求由处理器的处理器核发送,历史读取请求指示在历史时刻处理器核请求读取第一存储信息,读取信息包括第一存储信息的历史虚拟地址和历史物理地址,历史物理地址与历史虚拟地址相对应;根据历史虚拟地址,预测处理器核在未来时刻请求读取的第二存储信息所在的预测虚拟地址;判断预测虚拟地址与历史虚拟地址是否在同一个虚拟地址页中;响应于预测虚拟地址与历史虚拟地址在同一个虚拟地址页中,根据历史虚拟地址、历史物理地址和预测虚拟地址确定第一预测物理地址,第一预测物理地址与预测虚拟地址相对应;以及将第一预测物理地址中存储的第二存储信息缓存到处理器的第一级缓存,处理器包括多级缓存,第一级缓存为多级缓存中与处理器核电连接并且与处理器核直接传输数据的缓存。
例如,在本公开一实施例提供的信息处理方法中,响应于预测虚拟地址与历史虚拟地址在同一个虚拟地址页中,根据历史虚拟地址、历史物理地址和预测虚拟地址确定第一预测物理地址,包括:响应于预测虚拟地址与历史虚拟地址在同一个虚拟地址页中,将预测虚拟地址与历史虚拟地址之间的偏移量与历史物理地址的和作为第一预测物理地址。
例如,在本公开一实施例提供的信息处理方法中,多级缓存至少还包括第二级缓存,第二级缓存为与第一级缓存电连接并且通过第一级缓存与处理器核传输数据的缓存,第一级缓存存储第一级存储信息,第二级缓存存储第二级存储信息,第二级存储信息至少包括第一级存储信息,第二级缓存中还包括状态信息,状态信息指示第二级存储信息是否位于第一级缓存中,第二存储信息位于多级缓存中或者内存中。
例如,在本公开一实施例提供的信息处理方法中,处理器还包括第一级缓存预取器和地址缓存,将第一预测物理地址中存储的第二存储信息缓存到处理器的第一级缓存,包括:第一级缓存预取器根据第一预测物理地址生成第一预取请求,并且发送第一预取请求以使第一预取请求到达地址缓存;地址缓存向第二级缓存发送第一预取请求;第二级缓存响应于第一预取请求,确定第一级缓存中是否已经缓存了第一预测物理地址对应的第二存储信息;响应于第一级缓存已经缓存了第一预测物理地址对应的第二存储信息,第二级缓存通知地址缓存丢弃第一预取请求;响应于第一级缓存未缓存第一预测物理地址对应的第二存储信息,第二级缓存提取第一预测物理地址对应的第二存储信息,并且向地址缓存发送提取的第二存储信息,使得地址缓存向第一级缓存发送提取的第二存储信息以使第二存储信息缓存在第一级缓存中。
例如,在本公开一实施例提供的信息处理方法中,第一级缓存预取器根据第一预测物理地址生成第一预取请求,并且发送第一预取请求以使第一预取请求到达地址缓存,包括:第一级缓存预取器向预取队列发送第一预取请求,以通过预取队列存储第一预取请求;以及响应于地址缓存存在空闲空间,预取队列向地址缓存发送第一预取请求。
例如,在本公开一实施例提供的信息处理方法中,第一级缓存预取器根据第一预测物理地址生成第一预取请求,并且发送第一预取请求以使第一预取请求到达地址缓存,还包括:响应于预取队列的存储空间被占满,丢弃第一预取请求,或者用第一预取请求替换预取队列中的其他预取请求。
例如,在本公开一实施例提供的信息处理方法中,处理器还包括地址翻译流水线,方法还包括:响应于预测虚拟地址与历史虚拟地址不在同一个虚拟地址页中,通过地址翻译流水线对预测虚拟地址进行地址翻译而获得第二预测物理地址。
例如,本公开一实施例提供的信息处理方法还包括:地址翻译流水线根据第二预测物理地址生成第二预取请求并确定第一级缓存中是否已经缓存了第二预测物理地址对应的第二存储信息;响应于第一级缓存中已经缓存了第二预测物理地址对应的第二存储信息,丢弃第二预取请求;响应于第一级缓存中未缓存第二预测物理地址对应的第二存储信息,向地址缓存发送第二预取请求,使得地址缓存向第二级缓存发送第二预取请求;第二级缓存响应于第二预取请求提取第二预测物理地址对应的第二存储信息,并且向地址缓存发送提取的第二存储信息,使得地址缓存向第一级缓存发送提取的第二存储信息。
例如,在本公开一实施例提供的信息处理方法中,在预测虚拟地址为多个,并且多个预测虚拟地址在同一个虚拟地址页内的情形,响应于预测虚拟地址与历史虚拟地址不在同一个虚拟地址页中,通过所述地址翻译流水线对预测虚拟地址进行地址翻译而获得第二预测物理地址,包括:响应于多个预测虚拟地址均不与历史虚拟地址在同一个虚拟地址页中,通过所述地址翻译流水线对多个预测虚拟地址中被选择的预测虚拟地址进行地址翻译而获得第二预测物理地址;以及根据被选择的预测虚拟地址对应的第二预测物理地址,确定多个预测虚拟地址中除被选择的预测虚拟地址之外的其他预测虚拟地址对应的第二预测物理地址。
例如,在本公开一实施例提供的信息处理方法中,被选择的预测虚拟地址为第一级缓存预取器预测的多个预测虚拟地址中最先被处理器访问的预测虚拟地址。
例如,在本公开一实施例提供的信息处理方法中,预取队列与地址翻译流水线共用地址缓存的同一个接口,或者预取队列和地址翻译流水线分别占用地址缓存中不同的接口。
例如,在本公开一实施例提供的信息处理方法中,判断预测虚拟地址与历史虚拟地址是否在同一个虚拟地址页中,包括:确定历史虚拟地址所在的虚拟地址页的页面的大小;以及基于虚拟地址页的页面的大小,判断预测虚拟地址与历史虚拟地址是否在同一个虚拟地址页中。
本公开至少一个实施例还提供一种信息处理装置,包括:获取单元,配置为获取历史读取请求的读取信息,历史读取请求由处理器的处理器核发送,历史读取请求指示在历史时刻处理器核请求读取第一存储信息,读取信息包括第一存储信息的历史虚拟地址和历史物理地址,历史物理地址与历史虚拟地址相对应;预测单元,配置为根据历史虚拟地址,预测处理器核在未来时刻请求读取的第二存储信息所在的预测虚拟地址;判断单元,配置为判断预测虚拟地址与历史虚拟地址是否在同一个虚拟地址页中;以及地址确定单元,配置为响应于预测虚拟地址与历史虚拟地址在同一个虚拟地址页中,根据历史虚拟地址、历史物理地址和预测虚拟地址确定第一预测物理地址,第一预测物理地址与预测虚拟地址相对应;以及处理单元,配置为将第一预测物理地址中存储的第二存储信息缓存到处理器的第一级缓存,处理器包括多级缓存,第一级缓存为多级缓存中与处理器核电连接并且与处理器核直接传输数据的缓存。
本公开至少一个实施例还提供一种电子设备,包括:处理器,处理器用于实现本公开任一实施例提供的信息处理方法的指令。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了CPU核读取指令或者数据的示意性流程图;
图2示出了一种利用第一级缓存预取器预取数据信息的示意性流程图;
图3示出了本公开至少一个实施例提供的一种信息处理方法的流程图;
图4A示出了图3所示的信息处理方法中步骤S350的一个实施例的流程示意图;
图4B示出了本公开至少一个实施例提供的信息处理方法的示意性流程图;
图4C示出了本公开至少一个实施例提供的另一种信息处理方法的示意性流程图;
图5示出了本公开至少一个实施例提供的另一种信息处理方法的流程图;
图6示出了本公开至少一个实施例提供的一种信息处理装置的示意框图;
图7为本公开一些实施例提供的一种电子设备的示意框图;以及
图8为本公开一些实施例提供的另一种电子设备的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在通常的CPU架构中,程序的指令与数据都保存在内存中,而CPU核运行频率远远高于内存运行频率。因此,从内存获取数据或者指令需要上百个CPU核时钟,这往往会造成CPU核由于无法继续运行相关指令而空转,造成性能损失。因此,现代高性能CPU核都包含多级缓存架构来保存最近被访问的数据,同时利用预取器发现CPU数据访问的规律,来提前预取即将被访问的数据、指令到缓存中。如果预取的是指令,则称为指令预取器,如果预取的是数据,则称为数据预取器。根据目标缓存位置,可以分为L1(第一级缓存)预取器、L2(第二级缓存)预取器以及LLC(Last Level Cache,最后一级缓存)预取器等。L1预取器将指令或者数据预取到第一级缓存,L2预取器将指令或者数据预取到第二级缓存,LLC预取器将指令或者数据预取到最后一级缓存。
L1预取器例如又可以包括L1I(L1 Instruction,L1指令)预取器和L1D(L1 Data,L1数据)预取器。L1I预取器用于预取指令,L1D预取器用于预取数据。需要理解的是,在本文中的预取器可以是L1I预取器,也可以是L1D预取器。
另外,现代操作系统往往支持多个进程同时运行。为了简化多进程管理与增强安全性,应用程序使用的是一段完整的虚拟地址,比如32比特应用程序最多有2^32=4GB的虚拟地址空间可供使用。虚拟地址空间会被映射为多个内存页面,每个内存页面有自己的物理存储地址。例如一段连续的虚拟地址被映射到一个内存页面,在本公开中,这段连续的虚拟地址被称为虚拟地址页面。
程序访问指令、数据时,必须先将它们的虚拟地址翻译为物理地址,并检测程序的访问是否合法,然后去内存或者缓存中获得相应数据传递给CPU核。从虚拟地址到物理地址的转换过程称为地址翻译。虚拟地址到物理地址的映射关系存储于内存的表格中,访问这些内存中的表格同样需要上百个时钟。为了减少这些内存访问,CPU核内部使用多级的缓存来保存最近被使用的映射,这些特定的缓存被称为表格后备缓存(Table LookasideBuffer,TLB)。
图1示出了CPU核读取指令或者数据的示意性流程图。
如图1所示,CPU核读取指令或者数据包括步骤S110~S180。
步骤S110:CPU核给出需要读取的指令或数据的虚拟地址。
步骤S120:利用地址翻译流水线将虚拟地址翻译为物理地址,并且确定第一级缓存是否缓存有该物理地址对应的指令或数据。在CPU中可以包括将虚拟地址翻译为物理地址的地址翻译流水线。地址翻译流水线例如可以包括按照运算逻辑执行操作的逻辑电路,逻辑电路按照运算逻辑执行一系列操作可以将虚拟地址翻译为物理地址。
例如,地址翻译流水线可以通过访问TLB缓存的虚拟地址到物理地址的映射关系将虚拟地址翻译为物理地址。
例如,可以是地址翻译流水线向第一级缓存发送获取第一级缓存中多个标签的请求,该多个标签中的每个标签可以是对第一级缓存中缓存的物理地址进行哈希运算得到的。然后,地址翻译流水线可以将该物理地址进行哈希运算得到哈希值,并且将哈希值与从第一级缓存中获取的多个标签进行对比。如果多个标签中包含该哈希值,则表明第一级缓存中缓存有该物理地址对应的指令或数据。如果多个标签中不包含该哈希值,则表明第一级缓存未缓存有该物理地址对应的指令或数据。
如果第一级缓存中缓存了该物理地址对应的指令或数据,则执行步骤S130和步骤S140。如果第一级缓存未缓存该物理地址对应的指令或数据,则执行步骤S150~S180。
步骤S130:向第一级缓存发送读取请求。
步骤S140:第一级缓存响应于读取请求,从第一级缓存中取出该物理地址对应的指令或数据,并且向CPU核发送该物理地址对应的指令或数据,以响应上述读取请求。
步骤S150:向地址缓存申请一个存储空间,该存储空间用于存储读取请求的相关信息。地址缓存,例如可以是Missing Address Buffer(简称为MAB)或者Missing StatusHandling Register(简称为MSHR)。
MAB或者MSHR可以用于在第一级缓存未缓存读取请求或者预取请求所请求读取的指令或数据的情况下,缓存该读取请求的相关信息。也就是,当一个读取请求或者预取请求所请求的指令或数据不在第一级缓存中的情况下,需要向下一级缓存请求时,该读取请求或者预取请求的相关信息可以被保存在MAB中,直到下一级缓存返回该读取请求或者预取请求的数据信息。
例如在步骤S150,可以是向MAB申请MAB项,使得MAB分配一个存储空间,并且向MAB发送上述读取请求。
步骤S160:MAB向第二级缓存发送读取请求。
步骤S170:第二级缓存获取该物理地址对应的指令或者数据,并将该物理地址对应的指令或者数据返回给MAB。
步骤S180:MAB向第一级缓存发送该物理地址对应的指令或者数据,使得该物理地址对应的指令或者数据到达第一级缓存,以便第一级缓存执行步骤S40,即向CPU核发送该物理地址对应的指令或者数据。
图2示出了一种利用第一级缓存预取器预取数据信息的示意性流程图。
如图2所示,利用第一级缓存预取器预取数据信息可以包括步骤S210~S240和S260~S290。
步骤S210:CPU核给出需要读取的指令或数据的虚拟地址。
步骤S220:利用地址翻译流水线将虚拟地址翻译为物理地址,并且向第一级缓存和第一级缓存预取器发送包括物理地址的读取请求,使得第一级缓存预取器将虚拟地址作为历史虚拟地址并利用历史虚拟地址进行训练而得到预测虚拟地址,以及使得第一级缓存响应读取请求,向CPU核返回该物理地址对应的指令或者数据。
步骤S230:第一级缓存预取器对所有历史虚拟地址或者部分历史虚拟地址进行训练,从而预测出CPU核未来获取的指令或者数据的预测虚拟地址。
步骤S240:对预测虚拟地址进行地址翻译而得到预测物理地址,从而根据预测物理地址生成预取请求,以及确定第一级缓存是否缓存有该预测物理地址对应的指令或数据。该步骤S240与上文参考图1描述的步骤S120类似,在此不再赘述。
如果第一级缓存中缓存了该预测物理地址对应的指令或数据,则丢弃预取请求。
如果第一级缓存未缓存该物理地址对应的指令或数据,则执行步骤S260。
步骤S260:向地址缓存例如MAB申请一个MAB项,使得MAB分配MAB项,并且向MAB发送上述预取请求。
步骤S270:MAB向第二级缓存发送预取请求。
步骤S280:第二级缓存获取该预测物理地址对应的指令或者数据,并将该预测物理地址对应的指令或者数据返回给MAB。
步骤S290:MAB向第一级缓存发送该物理地址对应的指令或者数据,使得该预测物理地址对应的指令或者数据缓存于第一级缓存中。
如图1和图2所示,在高性能CPU中,第一级缓存预取器预测出的预测虚拟地址对应的指令或者数据的预取过程(以下简称“预取”)与CPU核发出的虚拟地址对应的指令或者数据的正常读取过程(以下简称“正常读取”)共享地址翻译流水线。在高频率、高性能CPU中,该地址翻译流水线可能是多级的。由于预取比正常读取的优先级低,一个预取有可能需要等待多个时钟周期才能够进入地址翻译流水线,并且地址翻译自身也需要多个流水时钟周期,这样一个预取需要多个时钟才能够发给下一级缓存。而预取往往是有时效性的,相对应的CPU核访问往往很快就会发生,地址翻译造成的时延往往会造成预取数据过晚到达第一级缓存,从而造成预取无效。
本公开至少一实施例提供一种信息处理方法、信息处理装置和电子设备。该信息处理方法可以根据历史物理地址确定预测物理地址,而无需通过地址翻译流水线来得到预测物理地址,从而可以降低地址翻译对预取造成的时延,提高预取的时效性。
图3示出了本公开至少一个实施例提供的一种信息处理方法的流程图。如图3所示,该信息处理方法包括步骤S310-步骤S350。
步骤S310:获取历史读取请求的读取信息。历史读取请求由处理器的处理器核发送,历史读取请求指示在历史时刻处理器核请求读取的第一存储信息,读取信息包括第一存储信息的历史虚拟地址和历史物理地址,历史物理地址与历史虚拟地址相对应。
步骤S320:根据历史虚拟地址,预测处理器核在未来时刻请求读取的第二存储信息所在的预测虚拟地址。
步骤S330:判断预测虚拟地址与历史虚拟地址是否在同一个虚拟地址页中。
步骤S340:响应于预测虚拟地址与历史虚拟地址在同一个虚拟地址页中,根据历史虚拟地址、历史物理地址和预测虚拟地址确定第一预测物理地址。第一预测物理地址与预测虚拟地址相对应。
步骤S350:将第一预测物理地址中存储的第二存储信息缓存到处理器的第一级缓存。
例如,处理器包括多级缓存,第一级缓存为多级缓存中与处理器核电连接并且与处理器核直接传输数据的缓存。
在预测虚拟地址与历史虚拟地址在同一个虚拟地址页的情形下,该信息处理方法可以根据历史虚拟地址对应的历史物理地址来确定预测虚拟地址对应的第一预测物理地址,这样不需要对预测虚拟地址进行地址翻译,从而至少部分地避免了地址翻译带来的时延,提高了预取的有效性。另外,由于正常指令和数据读取往往需要与预取共享地址翻译流水线,因此该信息处理方法在减少预取的地址翻译的同时也减少了正常读取的地址读取时延,并且降低了预取地址翻译所需要的功耗。
对于步骤S310,历史读取请求,例如可以是CPU核在历史时刻发出的包括历史虚拟地址的读取请求。历史读取请求的读取信息,例如可以包括历史虚拟地址和历史物理地址。历史物理地址例如可以是通过对历史虚拟地址进行地址翻译而得到的。
例如,可以是CPU核将每一个读取请求发给地址翻译流水线,地址翻译流水线依次处理每一个读取请求,以将每一个读取请求中的虚拟地址翻译为物理地址。然后地址翻译流水线向第一级缓存预取器发送每一个读取请求对应的虚拟地址、物理地址以及其他信息。这些读取请求作为历史读取请求,读取请求对应的虚拟地址作为历史虚拟地址,历史虚拟地址翻译得到的物理地址作为历史物理地址,以便第一级缓存预取器利用历史虚拟地址进行训练。在步骤S310中,例如可以是由第一级缓存接收来自地址翻译流水线的读取信息。
需要理解的是,虽然在上述描述中是以预取器为第一级缓存预取器为例进行描述的,但是并不意味着本公开的方法只适用于第一级缓存预取器,本公开的方法适用于使用虚拟地址进行训练的任何预取器。
第一存储信息,例如可以是CPU核在历史时刻请求读取的指令或者数据。
对于步骤S320,例如可以是第一级缓存预取器对历史虚拟地址进行训练而得到历史虚拟地址的规律,从而根据规律预测CPU核即将访问的预测虚拟地址,该预测虚拟地址对应的预测物理地址中存储有第二存储信息。
例如,历史虚拟地址包括0X0000 0000、0X0000 0002、0X0000 0004、0X0000 0006,那么第一级缓存预取器可以预测CPU核即将访问的预测虚拟地址为0X0000 0008。
对第一级缓存预取器或者其他预取器(以下简称“预取器”)而言,使用历史虚拟地址训练而获得CPU核的访问规律相对于使用历史物理地址有以下好处。1、虚拟地址无需经过地址翻译就可以被预取器使用。2、使用虚拟地址来训练预取器可以发现跨内存页面的读取规律。而由于虚拟地址连续的两个虚拟地址页面有可能被分配为不连续的物理地址,使用物理地址训练的预取器只能检测一个内存页面内的读取规律,从而限制了其发现的规律的准确性与有效性。3、预取器使用虚拟地址进行训练可以生成跨内存页面的预取。而使用物理地址进行训练的预取器无法生成一个未被训练到的内存页面的物理地址。
对于步骤S330,例如可以确定历史虚拟地址所在的虚拟地址页的页面的大小,以及基于虚拟地址页的页面的大小,判断预测虚拟地址与历史虚拟地址是否在同一个虚拟地址页中。
例如可以根据虚拟地址页的页面大小,确定每个虚拟地址页的地址范围,从而判断历史虚拟地址与预测虚拟地址是否在同一个地址范围内。若在同一个地址范围内,则判断预测虚拟地址和历史虚拟地址在同一个虚拟地址页中。
例如,虚拟地址从0开始编号,可以根据虚拟地址页的页面大小确定右移的参考位数,从而根据右移的参考位数,将预测虚拟地址右移并将历史虚拟地址右移。若预测虚拟地址右移和历史虚拟地址右移后得到的两个值相同,那么预测虚拟地址和历史虚拟地址在同一个虚拟地址页中。
例如,虚拟地址从0开始编号,并且虚拟地址页的页面大小为4KB,由于2的12次方等于4KB,因此可以比较预测虚拟地址右移12位和历史虚拟地址右移12位得到的值是否相等来确定预测虚拟地址与历史虚拟地址是否在同一个虚拟地址页中。若预测虚拟地址右移12位和历史虚拟地址右移12位得到的值相等,则可以确定预测虚拟地址与历史虚拟地址在同一个虚拟地址页中。
需要理解的是,虽然在上述实施例中虚拟地址页的页面大小为4KB,但是本公开不局限于4KB的虚拟地址页面。如果一个系统可以支持多个虚拟地址页面的页面大小,那么可以在训练预取器时,将相应页面的大小发送给预取器,使得预取器根据该页面大小来判断历史虚拟地址和预测虚拟地址是否在同一个虚拟地址页面中,这样可以进一步地增加不需要进行地址翻译的预取请求的百分比,提高本公开提供的信息处理方法的应用范围和性能。
对于步骤S340,如果预测虚拟地址与历史虚拟地址在同一个虚拟地址页中,则可以根据历史虚拟地址、历史物理地址和预测虚拟地址确定第一预测物理地址。
在本公开的一些实施例中,例如可以将所述预测虚拟地址与所述历史虚拟地址之间的偏移量与所述历史物理地址的和作为所述第一预测物理地址。即,可以根据如下的公式来计算得到第一预测物理地址。
PPA=HPA+(PVA-HVA)
其中,PPA表示第一预测物理地址,HPA表示历史物理地址,PVA表示预测虚拟地址,HVA表示历史虚拟地址。
利用上述公式可以非常简单地计算出预测虚拟地址的第一预测物理地址,从而至少部分地省去了地址翻译的过程。
对于步骤S350,处理器例如可以包括第一级缓存、第二级缓存、……、最后一级缓存。第一级缓存可以是与CPU核电连接,并且可以与CPU核直接传输数据的缓存。第二级缓存例如为与所述第一级缓存电连接并且通过所述第一级缓存与所述处理器核传输数据的缓存。第一级缓存、第二级缓存、……、最后一级缓存的存储容量可以依次递增,读取速度依次递减,到CPU核的距离也依次递增。例如第一级缓存可以在位置上最接近CPU核、存储容量最小以及读取速度最快。
在本公开的一些实施例中,第二级缓存是包含缓存(Inclusive cache)。即,第二级缓存中存储的第二级存储信息至少包括第一级缓存存储的第一级存储信息。第二级缓存中还包括状态信息。例如,第一级缓存中包括的第一级存储信息为存储信息A和存储信息B,若第二级缓存为包含缓存,则第二级存储信息至少包括存储信息A、存储信息B。第二级存储信息在包括存储信息A、存储信息B的基础上,例如还可以包括存储信息C、存储信息D等。
状态信息指示第二级存储信息是否位于第一级缓存中,第二存储信息位于多级缓存中或者内存中。例如,第二级存储信息包括存储信息A、存储信息B和存储信息C,则第二级缓存中包括存储信息A、存储信息B和存储信息C各自的状态信息,该状态信息可以指示存储信息A、存储信息B和存储信息C是否缓存在第一级缓存中。
在本公开的一些实施例中,第二存储信息可以是数据也可以是指令。第二存储信息可以存储在处理器的多级缓存中的任意一级缓存,第二存储信息也可能存储在内存中。例如,若第二存储信息存储于第二级缓存中,则从第二级缓存中提取第二存储信息并缓存到第一级缓存。若第二存储信息存储于第三级缓存中,则第二级缓存从第三级缓存中提取第二存储信息并缓存到第一级缓存。
图4A示出了图3所示的信息处理方法中步骤S350的一个实施例的流程示意图。
如图4A所示,步骤S350可以包括步骤S351~S355。在图4A所示的实施例中,处理器除可以包括CPU核、第一级缓存和第二级缓存外,还可以包括第一级缓存预取器和地址缓存(即,MAB)。
步骤S351:第一级缓存预取器根据第一预测物理地址生成第一预取请求,并且发送第一预取请求以使第一预取请求到达地址缓存。
第一预取请求,例如可以包括第一预测物理地址。地址缓存例如可以为MAB。
步骤S352:地址缓存向第二级缓存发送第一预取请求。
例如可以是MAB向第二级缓存发送第一预取请求。
步骤S353:第二级缓存响应于第一预取请求,确定第一级缓存中是否已经缓存了第一预测物理地址对应的第二存储信息。
第二级缓存例如可以是包含缓存,即,第二级缓存中存储的第二级存储信息至少包括第一级缓存存储的第一级存储信息,并且第二级缓存中还包括状态信息。状态信息指示第二级存储信息是否位于第一级缓存中,第二存储信息位于多级缓存中或者内存中。
在本公开的一些实施例中,第二级缓存例如可以包括逻辑电路,该逻辑电路可以获取第二级缓存中的状态信息,并且判断第二存储信息的状态信息或者第一预测物理地址的状态信息是否等于参考值。该参考值可以是本领域技术人员根据实际需求而设定的,例如可以为0或1等。以参考值为1表示第二级存储信息位于第一级缓存中为例来举例说明步骤S355。例如逻辑电路可以从第二级缓存中确定第二存储信息的状态信息,然后逻辑电路可以将状态信息与参考值1进行比较,若状态信息等于1,则确定第一级缓存中已经缓存了第二存储信息,若状态信息不等于1,则确定第一级缓存中未缓存第二存储信息。
步骤S354:响应于第一级缓存已经缓存了第一预测物理地址对应的第二存储信息,第二级缓存通知地址缓存丢弃第一预取请求。
例如,在第二级缓存确定第一级缓存已经缓存了第一预测物理地址的情况下,第二级缓存向MAB发送通知消息,以通知MAB丢弃第一预取请求。
步骤S355:响应于第一级缓存未缓存第一预测物理地址对应的第二存储信息,第二级缓存提取第一预测物理地址对应的第二存储信息,并且向地址缓存发送提取的第二存储信息,使得地址缓存向第一级缓存发送提取的第二存储信息以使第二存储信息缓存在第一级缓存中。
在图4A所描述的实施例中,由第二级缓存确定第一级缓存中是否已经缓存了第一预测物理地址对应的第二存储信息,而不是由地址翻译流水线确定第一级缓存是否缓存了第二存储信息,从而节省了地址翻译流水线和第一级缓存的资源。
图4B示出了本公开至少一实施例提供的信息处理方法的示意性流程图。下面结合图4B对上文参考图3和图4A描述的信息处理方法进行说明。
如图4B所示,该信息处理方法可以包括如下操作。
步骤S410:CPU核给出需要读取的指令或数据的虚拟地址。该虚拟地址例如为前述的历史虚拟地址。
步骤S420:利用地址翻译流水线将虚拟地址翻译为物理地址,并且向第一级缓存预取器发送包括物理地址的读取请求,使得第一级缓存预取器对将所述虚拟地址作为历史虚拟地址并利用历史虚拟地址进行训练而得到预测虚拟地址。该物理地址可以作为历史物理地址使用。
步骤S410和步骤S420可以为第一缓存预取器获取历史读取请求的读取信息的过程。例如可以按照上文图3描述的步骤S310来执行,在此不再赘述。
步骤S430:第一级缓存预取器对所有历史物理地址或者部分历史物理地址进行训练,从而预测出CPU核在未来时刻获取的指令或者数据的预测虚拟地址。例如可以按照上文图3描述的步骤S320来执行,在此不再赘述。
步骤S440:判断预测虚拟地址与历史虚拟地址是否在同一个虚拟地址页中。例如可以按照上文图3描述的步骤S330来执行,在此不再赘述。
步骤S450:响应于预测虚拟地址与所述历史虚拟地址在同一个虚拟地址页中,根据历史虚拟地址、历史物理地址和预测虚拟地址确定第一预测物理地址。
步骤S460:第一级缓存预取器根据第一预测物理地址生成第一预取请求,并且向MAB发送该第一预取请求。例如可以执行上文图4A描述的步骤S351,在此不再赘述。
步骤S470:MAB向第二级缓存发送第一预取请求。例如可以执行上文图4A描述的步骤S352,在此不再赘述。
步骤S480:第二级缓存响应于所述第一预取请求,确定第一级缓存中是否已经缓存了第一预测物理地址对应的第二存储信息。例如可以执行上文图4A描述的步骤S353,在此不再赘述。
步骤S490:如果第二级缓存确定第一级缓存已经缓存了第二存储信息,则第二级缓存通知MAB丢弃第一预取请求,例如可以执行上文图4A描述的步骤S354,在此不再赘述。或者,如果第二级缓存确定第一级缓存未缓存第二存储信息,第二级缓存可以从自身或者其他缓存或者内存提取第二存储信息,并且向MAB发送提取的第二存储信息,例如可以执行上文图4A描述的步骤S355,在此不再赘述。
步骤S500:MAB响应于接收到来自第二级缓存的第二存储信息,向第一级缓存发送第二存储信息,以使第二存储信息缓存在第一级缓存中。
图4C示出了本公开至少一实施例提供的另一种信息处理方法的示意性流程图。
如图4C所示,该信息处理方法除了描述了上文参考图4B中的步骤S460进一步可以包括步骤S461和步骤S462之外,其他的步骤与上文参考图4B描述的步骤基本相同。
步骤S461:第一级缓存预取器向预取队列发送第一预取请求,以通过预取队列存储第一预取请求。
步骤S462:响应于地址缓存存在空闲空间,预取队列向地址缓存发送第一预取请求。
该信息处理方法在第一级缓存预取器与MAB之间增加了一个预取队列。当MAB连续多个时钟都接收来自地址翻译流水线的读取请求或者预取请求时,预取队列可以缓存无需地址翻译的预取,待MAB可以接收时再把这些预取发送过去,从而至少部分地避免了由于MAB存储空间被占满而造成的预取丢失。
在本公开的一些实施例中,本领域技术人员可以根据实际情况来设置预取队列的大小。
在本公开的一些实施例中,第一级缓存预取器根据第一预测物理地址生成第一预取请求,并且发送第一预取请求以使第一预取请求到达地址缓存,还包括:响应于预取队列的存储空间被占满,丢弃第一预取请求,或者用第一预取请求替换预取队列中的其他预取请求。
例如,可以用第一预取请求替换排在预取队列末尾的至少一个其他预取请求。
在本公开的另一些实施例中,第一级缓存预取器也可以不通过预取队列向MAB发送第一预取请求,而是第一级缓存预取器直接向MAB发送第一预取请求。
图5示出了本公开至少一实施例提供的另一种信息处理方法的流程图。
如图5所示,该信息处理方法在前述图3描述的方法的基础上还可以包括步骤S510。
步骤S510:响应于预测虚拟地址与历史虚拟地址不在同一个虚拟地址页中,通过地址翻译流水线对预测虚拟地址进行地址翻译而获得第二预测物理地址。
如图4B或者图4C所示,例如在第一级缓存预取器确定预测虚拟地址与历史虚拟地址不在同一个虚拟地址页中的情况下,第一级缓存预取器可以执行步骤S401。步骤S401例如可以包括向地址翻译流水线发送该预测虚拟地址,使得地址翻译流水线对预测虚拟地址进行翻译。
在本公开的一些实施例中,向地址翻译流水线发送该预测虚拟地址,例如可以是第一级缓存预取器根据预测虚拟地址生成包含预测虚拟地址的预取请求,并且向地址翻译流水线发送该包含预测虚拟地址的预取请求,以由地址翻译流水线对预测虚拟地址进行地址翻译。
在本公开的另一些实施例中,如图5所示,该信息处理方法还可以包括步骤S520~S550。
步骤S520:地址翻译流水线根据第二预测物理地址生成第二预取请求,并确定第一级缓存中是否已经缓存了第二预测物理地址对应的第二存储信息。
例如,地址翻译流水线在将预测虚拟地址翻译为第二预测物理地址,并且根据第二预测物理地址生成第二预取请求,并且确定第一级缓存中是否已经缓存了第二预测物理地址对应的第二存储信息。
确定第一级缓存中是否已经缓存了第二预测物理地址对应的第二存储信息,例如可以是地址翻译流水线向第一级缓存发送获取第一级缓存存储的多个标签的请求,该多个标签中的每个标签可以是对第一级缓存中缓存的物理地址进行哈希运算得到的。然后,地址翻译流水线可以将该第二预测物理地址进行哈希运算得到哈希值,并且将哈希值与从第一级缓存中获取的多个标签进行对比。如果多个标签中包含该哈希值,则表明第一级缓存中缓存有该第二预测物理地址对应的指令或数据。如果多个标签中不包含该哈希值,则表明第一级缓存未缓存有该第二预测物理地址对应的指令或数据。
步骤S530:响应于第一级缓存中已经缓存了第二预测物理地址对应的第二存储信息,丢弃所述第二预测物理地址对应的第二预取请求。
例如,如果第二级缓存确定第一级缓存中已经缓存了第二预测物理地址对应的指令或者数据,则丢弃第二预取请求。
步骤S540:响应于第一级缓存中未缓存第二预测物理地址对应的第二存储信息,向地址缓存发送第二预取请求,使得地址缓存向第二级缓存发送第二预取请求。
例如,如果第二级缓存确定第一级缓存未缓存第二预测物理地址对应的指令或者数据,则向MAB发送第二预取请求,使得MAB向第二级缓存发送第二预取请求。
步骤S550:第二级缓存响应于第二预取请求提取第二预测物理地址对应的第二存储信息,并且向地址缓存发送提取的第二存储信息,使得地址缓存向第一级缓存发送提取的第二存储信息。
例如,第二级缓存提取第二预测物理地址对应的第二存储信息,并且向MAB发送第二存储信息,使得MAB向第一级缓存发送第二存储信息。
下面结合图4C对上文参考图5中的步骤S520~S550进行说明。
如图4C所示,例如在第一级缓存预取器确定预测虚拟地址与历史虚拟地址不在同一个虚拟地址页中的情况下,第一级缓存预取器执行步骤S401,即,向地址翻译流水线发送包含预测虚拟地址的预取请求,使得地址翻译流水线对预测虚拟地址进行翻译。
地址翻译流水线响应于接收到来自第一级缓存预取器包含预测虚拟地址的预取请求,对该预测虚拟地址进行翻译而得到第二预测物理地址,并且根据第二预测物理地址生成第二预取请求。
在执行步骤S401之后,例如可以是地址翻译流水线确定第一级缓存中是否已经缓存了第二预测物理地址对应的第二存储信息。例如可以执行上文参考图5描述的步骤S520,在此不再赘述。
接下来,如果第一级缓存中已经缓存了第二预测物理地址对应的第二存储信息,则丢弃第二预测物理地址对应的第二预取请求。例如可以执行上文参考图5描述的步骤S530,在此不再赘述。
如图4C所示,如果第一级缓存中未缓存第二预测物理地址对应的第二存储信息,可以执行步骤S402。步骤S402,例如可以是向MAB发送包含第二预测物理地址的第二预取请求,使得MAB向第二级缓存发送包含第二预测物理地址的第二预取请求。例如可以执行上文参考图5描述的步骤S540,在此不再赘述。
如图4C所示,MAB响应于接收到来自地址翻译流水线的第二预取请求,执行操作S470,即,向第二级缓存发送该第二预取请求。
如图4C所示,第二级缓存响应于第二预取请求提取第二预测物理地址对应的第二存储信息,并且执行步骤S490,即,向MAB发送提取的第二存储信息,使得MAB向第一级缓存发送提取的第二存储信息。
在本公开的一些实施例中,在预测虚拟地址为多个并且多个预测虚拟地址在同一个虚拟地址页内的情形中,响应于预测虚拟地址与历史虚拟地址不在同一个虚拟地址页中,对所述预测虚拟地址进行地址翻译而获得所述第二预测物理地址,包括:响应于多个预测虚拟地址均不与历史虚拟地址在同一个虚拟地址页中,对多个预测虚拟地址中被选择的预测虚拟地址进行地址翻译而获得第二预测物理地址,以及根据被选择的预测虚拟地址对应的第二预测物理地址,确定多个预测虚拟地址中除被选择的预测虚拟地址之外的其他预测虚拟地址对应的第二预测物理地址。
如果多个连续预取对应的预测虚拟地址都在同一虚拟地址页面中,但是不和任何历史虚拟地址在同一页面,那么可以只对该多个连续预取中的第一个预取进行地址翻译,并将该请求的预测物理地址发送给预取器,这样之后访问该虚拟地址页面的预取则无需再次进行地址翻译。
例如,第一级缓存预取器预测出CPU核未来要读取的预测虚拟地址包括0X00000008、0X0000 000B和0X0000 000D,并且可以确定0X0000 0008、0X0000 000B和0X0000000D在同一个虚拟地址页中,那么可以从0X00000008、0X0000 000B和0X0000 000D中选择一个预测虚拟地址进行地址翻译而获得被选择的预测虚拟地址的第二预测物理地址。例如被选择的预测虚拟地址为0X0000 0008,可以利用地址翻译流水线对0X0000 0008进行地址翻译而得到0X0000 0008对应的物理地址。然后根据0X0000 0008对应的物理地址来计算0X0000 000B和0X0000 000D分别对应的物理地址。例如可以计算目标预测虚拟地址与被选择的预测虚拟地址之间的偏移量,将该偏移量与被选择的预测物理地址的和作为目标预测虚拟地址对应的物理地址。以目标预测虚拟地址为0X0000 000B,被选择的预测虚拟地址为0X0000 0008为例来说明上述计算方法。0X0000 000B的物理地址等于0X0000 000B与0X0000 0008之间的偏移量加上0X0000 0008对应的物理地址。
在本公开的一些实施例中,被选择的预测虚拟地址可以为该多个预测虚拟地址中的任意一个。在本公开的另一些实施例中,被选择的预测虚拟地址为第一级缓存预取器预测的多个预测虚拟地址中最先被处理器核访问的预测虚拟地址,或者是多个预测虚拟地址中,第一级缓存预取器第一个预测到的预测虚拟地址。
在本公开的一些实施例中,预取队列与地址翻译流水线共用地址缓存的同一个接口,从而可以节约接口资源。或者,在本公开的另一些实施例中,预取队列和地址翻译流水线分别占用地址缓存中不同的接口。例如可以在处理器中增加一个预取队列独占的MAB接口,以降低预取时延。
在本公开的一些实施例中,由于第一预取请求可以更快地发给MAB,并且已经在第一级缓存中应该被丢弃的第一预取请求占用MAB资源数个时钟周期,直到第二级缓存告知MAB该第一预取请求对应的第二存储信息已经在第一级缓存里,因此MAB的压力会增加。为了缓解MAB的压力,例如可以适当地增加地址缓存(即,MAB)的空间大小,或者调整第一级缓存预取器发送第一预取请求的策略,使得第一缓存预取器发出的第一预取请求的数量减少。
图6示出了本公开至少一个实施例提供的一种信息处理装置600的示意框图。
例如,如图6所示,该信息处理装置600包括获取单元610、预测单元620、判断单元630、地址确定单元640和处理单元650。
获取单元610配置为获取历史读取请求的读取信息。历史读取请求由处理器的处理器核发送。历史读取请求指示在历史时刻处理器核请求读取第一存储信息。读取信息包括第一存储信息的历史虚拟地址和历史物理地址,历史物理地址与历史虚拟地址相对应。获取单元610例如可以执行图3描述的步骤S310,在此不再赘述。
预测单元620配置为根据历史虚拟地址,预测处理器核在未来时刻请求读取的第二存储信息所在的预测虚拟地址。第二确定单元620例如可以执行图3描述的步骤S320,在此不再赘述。
判断单元630配置判断预测虚拟地址与历史虚拟地址是否在同一个虚拟地址页中。判断单元630例如可以执行图3描述的步骤S330。
地址确定单元640配置为响应于预测虚拟地址与历史虚拟地址在同一个虚拟地址页中,根据历史虚拟地址、历史物理地址和预测虚拟地址确定第一预测物理地址。第一预测物理地址与预测虚拟地址相对应。地址确定单元640例如可以执行图3描述的步骤S340,在此不再赘述。
处理单元650配置为将第一预测物理地址中存储的第二存储信息缓存到处理器的第一级缓存。处理器包括多级缓存,第一级缓存为多级缓存中与处理器核电连接并且与处理器核直接传输数据的缓存。处理单元650例如可以执行图3描述的步骤S350,在此不再赘述。
例如,获取单元610、预测单元620、判断单元630、地址确定单元640和处理单元650可以为硬件、软件、固件以及它们的任意可行的组合。例如,获取单元610、预测单元620、判断单元630、地址确定单元640和处理单元650可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,信息处理装置600的各个单元与前述的信息处理方法的各个步骤对应,关于信息处理装置600的具体功能可以参考关于信息处理方法的相关描述,此处不再赘述。图6所示的信息处理装置600的组件和结构只是示例性的,而非限制性的,根据需要,该信息处理装置600还可以包括其他组件和结构。
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器,处理器用于实现上述的信息处理方法。该电子设备可以至少部分地避免地址翻译带来的时延,提高了预取的有效性。另外,由于正常指令和数据读取往往需要与预取共享地址翻译流水线,因此该信息处理方法在减少预取的地址翻译的同时也减少了正常读取的地址读取时延,并且降低了预取地址翻译所需要的功耗。
图7为本公开一些实施例提供的一种电子设备的示意框图。如图7所示,该电子设备700包括处理器710。处理器710运行时可以执行上文所述的信息处理方法中的一个或多个步骤。
例如,处理器710可以是中央处理单元(CPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器710可以为通用处理器或专用处理器,可以控制电子设备700中的其它组件以执行期望的功能。
需要说明的是,本公开的实施例中,电子设备700的具体功能和技术效果可以参考上文中关于信息处理方法的描述,此处不再赘述。
图8为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备800例如适于用来实施本公开实施例提供的信息处理方法。电子设备800可以是终端设备等。需要注意的是,图8示出的电子设备800仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800可以包括处理装置(例如中央处理器)810,其可以根据存储在只读存储器(ROM)820中的程序或者从存储装置880加载到随机访问存储器(RAM)830中的程序而执行各种适当的动作和处理。在RAM 830中,还存储有电子设备800操作所需的各种程序和数据。处理装置810、ROM 820以及RAM 830通过总线840彼此相连。输入/输出(I/O)接口850也连接至总线840。
通常,以下装置可以连接至I/O接口850:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置860;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置870;包括例如磁带、硬盘等的存储装置880;以及通信装置890。通信装置890可以允许电子设备800与其他电子设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备800,但应理解的是,并不要求实施或具备所有示出的装置,电子设备800可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,处理装置810可以执行上述信息处理方法,可以实现本公开实施例提供的信息处理方法中限定的功能。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种信息处理方法,包括:
获取历史读取请求的读取信息,其中,所述历史读取请求由处理器的处理器核发送,所述历史读取请求指示在历史时刻所述处理器核请求读取第一存储信息,所述读取信息包括所述第一存储信息的历史虚拟地址和历史物理地址,所述历史物理地址与所述历史虚拟地址相对应;
根据所述历史虚拟地址,预测所述处理器核在未来时刻请求读取的第二存储信息所在的预测虚拟地址;
判断所述预测虚拟地址与所述历史虚拟地址是否在同一个虚拟地址页中;
响应于所述预测虚拟地址与所述历史虚拟地址在同一个虚拟地址页中,根据所述历史虚拟地址、所述历史物理地址和所述预测虚拟地址确定第一预测物理地址,其中,所述第一预测物理地址与所述预测虚拟地址相对应;以及
将所述第一预测物理地址中存储的第二存储信息缓存到所述处理器的第一级缓存,其中,所述处理器包括多级缓存,所述第一级缓存为所述多级缓存中与所述处理器核电连接并且与所述处理器核直接传输数据的缓存。
2.根据权利要求1所述的方法,其中,响应于所述预测虚拟地址与所述历史虚拟地址在同一个虚拟地址页中,根据所述历史虚拟地址、所述历史物理地址和所述预测虚拟地址确定所述第一预测物理地址,包括:
响应于所述预测虚拟地址与所述历史虚拟地址在同一个虚拟地址页中,将所述预测虚拟地址与所述历史虚拟地址之间的偏移量与所述历史物理地址的和作为所述第一预测物理地址。
3.根据权利要求1所述的方法,其中,所述多级缓存至少还包括第二级缓存,所述第二级缓存为与所述第一级缓存电连接并且通过所述第一级缓存与所述处理器核传输数据的缓存,所述第一级缓存存储第一级存储信息,所述第二级缓存存储第二级存储信息,所述第二级存储信息至少包括所述第一级存储信息,
所述第二级缓存中还包括状态信息,所述状态信息指示所述第二级存储信息是否位于所述第一级缓存中,所述第二存储信息位于所述多级缓存中或者内存中。
4.根据权利要求3所述的方法,其中,所述处理器还包括第一级缓存预取器和地址缓存,
将所述第一预测物理地址中存储的第二存储信息缓存到所述处理器的第一级缓存,包括:
所述第一级缓存预取器根据所述第一预测物理地址生成第一预取请求,并且发送所述第一预取请求以使所述第一预取请求到达所述地址缓存;
所述地址缓存向所述第二级缓存发送所述第一预取请求;
所述第二级缓存响应于所述第一预取请求,确定所述第一级缓存中是否已经缓存了所述第一预测物理地址对应的第二存储信息;
响应于所述第一级缓存已经缓存了所述第一预测物理地址对应的第二存储信息,所述第二级缓存通知所述地址缓存丢弃所述第一预取请求;以及
响应于所述第一级缓存未缓存所述第一预测物理地址对应的第二存储信息,所述第二级缓存提取所述第一预测物理地址对应的第二存储信息,并且向所述地址缓存发送提取的所述第二存储信息,使得所述地址缓存向所述第一级缓存发送提取的所述第二存储信息以使所述第二存储信息缓存在所述第一级缓存中。
5.根据权利要求4所述的方法,其中,所述第一级缓存预取器根据所述第一预测物理地址生成所述第一预取请求,并且发送所述第一预取请求以使所述第一预取请求到达所述地址缓存,包括:
所述第一级缓存预取器向预取队列发送所述第一预取请求,以通过所述预取队列存储所述第一预取请求;以及
响应于所述地址缓存存在空闲空间,所述预取队列向所述地址缓存发送所述第一预取请求。
6.根据权利要求5所述的方法,其中,所述第一级缓存预取器根据所述第一预测物理地址生成所述第一预取请求,并且发送所述第一预取请求以使所述第一预取请求到达所述地址缓存,还包括:
响应于所述预取队列的存储空间被占满,丢弃所述第一预取请求,或者用所述第一预取请求替换所述预取队列中的其他预取请求。
7.根据权利要求6所述的方法,其中,所述处理器还包括地址翻译流水线,所述方法还包括:
响应于所述预测虚拟地址与所述历史虚拟地址不在同一个虚拟地址页中,通过所述地址翻译流水线对所述预测虚拟地址进行地址翻译而获得第二预测物理地址。
8.根据权利要求7所述的方法,还包括:
所述地址翻译流水线根据所述第二预测物理地址生成第二预取请求,并确定所述第一级缓存中是否已经缓存了所述第二预测物理地址对应的第二存储信息;
响应于所述第一级缓存中已经缓存了所述第二预测物理地址对应的第二存储信息,丢弃所述第二预取请求;
响应于所述第一级缓存中未缓存所述第二预测物理地址对应的第二存储信息,向所述地址缓存发送所述第二预取请求,使得所述地址缓存向所述第二级缓存发送所述第二预取请求;以及
所述第二级缓存响应于所述第二预取请求提取所述第二预测物理地址对应的第二存储信息,并且向所述地址缓存发送提取的所述第二存储信息,使得所述地址缓存向所述第一级缓存发送提取的所述第二存储信息。
9.根据权利要求7所述的方法,其中,在所述预测虚拟地址为多个,并且多个所述预测虚拟地址在同一个虚拟地址页内的情形,响应于所述预测虚拟地址与所述历史虚拟地址不在同一个虚拟地址页中,通过所述地址翻译流水线对所述预测虚拟地址进行地址翻译而获得所述第二预测物理地址,包括:
响应于多个所述预测虚拟地址均不与所述历史虚拟地址在同一个虚拟地址页中,通过所述地址翻译流水线对多个所述预测虚拟地址中被选择的预测虚拟地址进行地址翻译而获得所述第二预测物理地址;以及
根据所述被选择的预测虚拟地址对应的第二预测物理地址,确定多个所述预测虚拟地址中除所述被选择的预测虚拟地址之外的其他预测虚拟地址对应的第二预测物理地址。
10.根据权利要求9所述的方法,其中,所述被选择的预测虚拟地址为所述第一级缓存预取器预测的多个预测虚拟地址中最先被所述处理器访问的预测虚拟地址。
11.根据权利要求7所述的方法,其中,所述预取队列与所述地址翻译流水线共用所述地址缓存的同一个接口,或者所述预取队列和所述地址翻译流水线分别占用所述地址缓存中不同的接口。
12.根据权利要求1-11任一所述的方法,其中,判断所述预测虚拟地址与所述历史虚拟地址是否在同一个虚拟地址页中,包括:
确定所述历史虚拟地址所在的虚拟地址页的页面的大小;以及
基于所述虚拟地址页的页面的大小,判断所述预测虚拟地址与所述历史虚拟地址是否在同一个虚拟地址页中。
13.一种信息处理装置,包括:
获取单元,配置为获取历史读取请求的读取信息,其中,所述历史读取请求由处理器的处理器核发送,所述历史读取请求指示在历史时刻所述处理器核请求读取第一存储信息,所述读取信息包括所述第一存储信息的历史虚拟地址和历史物理地址,所述历史物理地址与所述历史虚拟地址相对应;
预测单元,配置为根据所述历史虚拟地址,预测所述处理器核在未来时刻请求读取的第二存储信息所在的预测虚拟地址;
判断单元,配置为判断所述预测虚拟地址与所述历史虚拟地址是否在同一个虚拟地址页中;
地址确定单元,配置为响应于所述预测虚拟地址与所述历史虚拟地址在同一个虚拟地址页中,根据所述历史虚拟地址、所述历史物理地址和所述预测虚拟地址确定第一预测物理地址,其中,所述第一预测物理地址与所述预测虚拟地址相对应;以及
处理单元,配置为将所述第一预测物理地址中存储的第二存储信息缓存到所述处理器的第一级缓存,其中,所述处理器包括多级缓存,所述第一级缓存为所述多级缓存中与所述处理器核电连接并且与所述处理器核直接传输数据的缓存。
14.一种电子设备,包括处理器,其中,所述处理器用于实现权利要求1-12任一项所述的信息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011403656.XA CN112416437B (zh) | 2020-12-02 | 2020-12-02 | 信息处理方法、信息处理装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011403656.XA CN112416437B (zh) | 2020-12-02 | 2020-12-02 | 信息处理方法、信息处理装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416437A CN112416437A (zh) | 2021-02-26 |
CN112416437B true CN112416437B (zh) | 2023-04-21 |
Family
ID=74830308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011403656.XA Active CN112416437B (zh) | 2020-12-02 | 2020-12-02 | 信息处理方法、信息处理装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416437B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760783B (zh) * | 2021-09-09 | 2023-03-24 | 海光信息技术股份有限公司 | 联合偏移预取方法、装置、计算设备和可读存储介质 |
CN114065947B (zh) * | 2021-11-15 | 2022-07-22 | 深圳大学 | 一种数据访问推测方法、装置、存储介质及电子设备 |
CN114218132B (zh) * | 2021-12-14 | 2023-03-24 | 海光信息技术股份有限公司 | 信息预取方法、处理器、电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169429A (zh) * | 2010-03-29 | 2011-08-31 | 威盛电子股份有限公司 | 预取单元、数据预取方法以及微处理器 |
CN102722451A (zh) * | 2012-06-25 | 2012-10-10 | 杭州中天微系统有限公司 | 采用物理地址预测访问高速缓存的装置 |
CN102736988A (zh) * | 2011-04-12 | 2012-10-17 | 索尼公司 | 存储器管理装置、存储器管理方法和控制程序 |
CN103984526A (zh) * | 2013-02-07 | 2014-08-13 | 上海芯豪微电子有限公司 | 一种指令处理系统及方法 |
CN104133780A (zh) * | 2013-05-02 | 2014-11-05 | 华为技术有限公司 | 一种跨页预取方法、装置及系统 |
CN104991869A (zh) * | 2015-07-31 | 2015-10-21 | 成都腾悦科技有限公司 | 一种微处理器存储管理方法 |
CN110389911A (zh) * | 2018-04-23 | 2019-10-29 | 珠海全志科技股份有限公司 | 一种设备内存管理单元的预取方法、装置及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8417915B2 (en) * | 2005-08-05 | 2013-04-09 | Arm Limited | Alias management within a virtually indexed and physically tagged cache memory |
US9122613B2 (en) * | 2013-03-07 | 2015-09-01 | Arm Limited | Prefetching of data and instructions in a data processing apparatus |
GB2571536B (en) * | 2018-02-28 | 2020-03-11 | Imagination Tech Ltd | Coherency manager |
-
2020
- 2020-12-02 CN CN202011403656.XA patent/CN112416437B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169429A (zh) * | 2010-03-29 | 2011-08-31 | 威盛电子股份有限公司 | 预取单元、数据预取方法以及微处理器 |
CN102736988A (zh) * | 2011-04-12 | 2012-10-17 | 索尼公司 | 存储器管理装置、存储器管理方法和控制程序 |
CN102722451A (zh) * | 2012-06-25 | 2012-10-10 | 杭州中天微系统有限公司 | 采用物理地址预测访问高速缓存的装置 |
CN103984526A (zh) * | 2013-02-07 | 2014-08-13 | 上海芯豪微电子有限公司 | 一种指令处理系统及方法 |
CN104133780A (zh) * | 2013-05-02 | 2014-11-05 | 华为技术有限公司 | 一种跨页预取方法、装置及系统 |
CN104991869A (zh) * | 2015-07-31 | 2015-10-21 | 成都腾悦科技有限公司 | 一种微处理器存储管理方法 |
CN110389911A (zh) * | 2018-04-23 | 2019-10-29 | 珠海全志科技股份有限公司 | 一种设备内存管理单元的预取方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112416437A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112416437B (zh) | 信息处理方法、信息处理装置和电子设备 | |
US9280474B2 (en) | Adaptive data prefetching | |
US20120072667A1 (en) | Variable line size prefetcher for multiple memory requestors | |
US9563562B2 (en) | Page crossing prefetches | |
JP4451717B2 (ja) | 情報処理装置および情報処理方法 | |
CN112416817B (zh) | 预取方法、信息处理装置、设备以及存储介质 | |
US10114761B2 (en) | Sharing translation lookaside buffer resources for different traffic classes | |
CN115292214A (zh) | 页表预测方法、存储访问操作方法、电子装置和电子设备 | |
CN114238167B (zh) | 信息预取方法、处理器、电子设备 | |
CN114925001A (zh) | 处理器、页表预取方法、电子设备 | |
KR102482516B1 (ko) | 메모리 어드레스 변환 | |
CN112416436B (zh) | 信息处理方法、信息处理装置和电子设备 | |
CN112612728B (zh) | 缓存管理方法及装置、设备 | |
CN108874691B (zh) | 数据预取方法和内存控制器 | |
CN116680214A (zh) | 一种数据访问方法、可读存储介质及电子设备 | |
US20190179758A1 (en) | Cache to cache data transfer acceleration techniques | |
US8255632B2 (en) | Pre-fetch control apparatus | |
US11494300B2 (en) | Page table walker with page table entry (PTE) physical address prediction | |
CN115098410A (zh) | 处理器、用于处理器的数据处理方法及电子设备 | |
US11048637B2 (en) | High-frequency and low-power L1 cache and associated access technique | |
EP3332329B1 (en) | Device and method for prefetching content to a cache memory | |
CN114281720B (zh) | 处理器、用于处理器的地址翻译方法、电子设备 | |
CN114218132B (zh) | 信息预取方法、处理器、电子设备 | |
CN114238176B (zh) | 处理器、用于处理器的地址翻译方法、电子设备 | |
CN111198827B (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 |