CN109254930B - 数据访问方法及装置 - Google Patents

数据访问方法及装置 Download PDF

Info

Publication number
CN109254930B
CN109254930B CN201710571483.4A CN201710571483A CN109254930B CN 109254930 B CN109254930 B CN 109254930B CN 201710571483 A CN201710571483 A CN 201710571483A CN 109254930 B CN109254930 B CN 109254930B
Authority
CN
China
Prior art keywords
address
bit
virtual address
index bit
virtual
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
Application number
CN201710571483.4A
Other languages
English (en)
Other versions
CN109254930A (zh
Inventor
李琪
崔鲁平
熊礼文
徐志通
孙璐
陈俊锐
余谓为
李又麟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710571483.4A priority Critical patent/CN109254930B/zh
Priority to PCT/CN2018/095565 priority patent/WO2019011311A1/zh
Publication of CN109254930A publication Critical patent/CN109254930A/zh
Application granted granted Critical
Publication of CN109254930B publication Critical patent/CN109254930B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

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

数据访问方法及装置
技术领域
本公开涉及存储技术领域,特别涉及一种数据访问方法及装置。
背景技术
在大数据的背景下,存储技术发展迅速,缓存以其读写效率高的优势备受关注。当设备接收到某一应用的数据访问指令时,可以根据指令指示的数据地址优先在缓存中查询数据,以快速访问到数据。一般地,软件操作的数据地址都是虚拟地址(Virtual Address,VA),而数据实际是存储在以物理地址(Physical Address,PA)进行索引的存储器中,因此,在访问数据时还需要进行虚拟地址到物理地址的转换。
在数据访问的过程中,可以将数据访问指令携带的基地址和偏移地址相加,得到虚拟地址,并根据地址映射关系,查询该虚拟地址对应的物理地址的高位,由于虚拟地址的低位和物理地址的低位相同,该地址映射关系通常为虚拟地址的高位与物理地址的高位之间的映射关系,则查询过程相当于:比较基地址和偏移地址的和值的高位与地址映射关系中的虚拟地址的高位,如果二者相同,则获取该虚拟地址的高位对应的物理地址的高位。进而,对物理地址的高位与虚拟地址的低位进行组合可以得到完整的物理地址,然后,提取该物理地址中的索引位和标签位,根据索引位在缓存中查询与该索引位对应的至少一个标签,并通过比较确定该至少一个标签中与该标签位相同的标签,进而访问该相同的标签对应的数据。其中,物理地址可以由标签位、索引位和偏移位构成,这三类地址位按照高位到低位的顺序排列。
在实现本公开的过程中,发明人发现现有技术至少存在以下问题:
上述数据访问过程的处理级数多,导致数据访问耗时长。
发明内容
为了解决现有技术的问题,本公开实施例提供了一种数据访问方法及装置。所述技术方案如下:
第一方面,提供了一种数据访问方法,所述方法包括:
根据数据访问指令携带的基地址和偏移地址,获取待访问数据的虚拟地址;
根据所述虚拟地址的高位,查询与所述虚拟地址对应的物理地址的高位;
对所述物理地址的高位中的第一索引位与所述虚拟地址中的第二索引位进行组合,得到所述物理地址的索引位,所述第二索引位是指所述虚拟地址中与所述物理地址的索引位对应的地址位,所述第一索引位是指所述物理地址的索引位中除所述第二索引位以外的地址位;
根据所述物理地址的索引位和标签位,进行数据访问。
本公开实施例通过在查询到物理地址的高位时,基于物理地址的低位与虚拟地址的低位相同的特征,直接将物理地址的高位中的第一索引位与虚拟地址的低位中的第二索引位组合直接得到索引位,进而基于得到的索引位进行数据访问,省略了获取完整的物理地址步骤以及再将物理地址拆分为所需的标签位或索引位的过程,简化了处理级数,使得数据访问的耗时更短。
在第一方面的第一种可能实现方式中,所述对所述物理地址的高位中的第一索引位与所述虚拟地址中的第二索引位进行组合,得到所述物理地址的索引位,包括:
根据所述物理地址的索引位的位置范围,在所述物理地址的高位中确定所述第一索引位;
在所述虚拟地址的低位中确定所述第二索引位;
对所述第一索引位与所述第二索引位进行组合,得到所述物理地址的索引位。
在第一方面的第二种可能实现方式中,在根据数据访问指令携带的基地址和偏移地址,获取待访问数据的虚拟地址的过程中,根据所述虚拟地址的高位,查询与所述虚拟地址对应的物理地址的高位。
该实现方式中,为了进一步降低数据访问的耗时,将原有的串行处理步骤转化为并行处理步骤,进一步简化了处理级数更少,降低了数据访问的耗时。
在第一方面的第三种可能实现方式中,所述在根据数据访问指令携带的基地址和偏移地址,获取待访问数据的虚拟地址的过程中,根据所述虚拟地址的高位,查询与所述虚拟地址对应的物理地址的高位,包括:
对于至少一个待比较虚拟地址中的每个待比较虚拟地址,对所述基地址、所述偏移地址以及所述待比较虚拟地址中的数值位进行运算,得到比较结果,所述比较结果用于指示所述基地址、所述偏移地址的和值与被比较的虚拟地址是否相同;
获取目标比较结果对应的物理地址的高位,所述目标比较结果用于指示所述基地址、所述偏移地址的和值与被比较的虚拟地址相同。
该实现方式中,提供了并行进行获取虚拟地址的过程以及查询物理地址的过程的具体方式,通过将基地址、偏移地址和待比较虚拟地址中的数值位进行运算,可以直接得到比较结果,而无需先计算出虚拟地址,再进行虚拟地址与物理地址的比较,从而降低了数据访问的耗时。
在第一方面的第四种可能实现方式中,所述对于至少一个待比较虚拟地址中的每个待比较虚拟地址,对所述基地址、所述偏移地址以及所述待比较虚拟地址中的数值位进行运算,得到比较结果,包括:
通过快速加法比较器FAC,对于每个待比较虚拟地址,对所述基地址、所述偏移地址以及所述待比较虚拟地址中的数值位进行运算,得到比较结果。
该实现方式中,通过FAC得到比较结果,计算过程中的每个参数都可以由已知的其他参数表示,不需要考虑由当前的进位值与上一个进行值相关所产生的递推关系,在计算每个位置上的比较结果时所需的参数都无需等待其他位置上的计算过程得到,使得各个位置上的比较结果的计算过程相互之间不受限制,可以并行进行,从而提高了计算效率,进而降低了数据访问的耗时。
第二方面,提供了一种数据访问装置,所述装置包括至少一个模块,该至少一个模块用于实现上述第一方面或第一方面中任意一种可能实现方式所提供的数据访问方法。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述第一方面或第一方面中任意一种可能实现方式所提供的数据访问方法。
第四方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述第一方面或第一方面中任意一种可能实现方式所提供的数据访问方法。
其中,数据访问指令用于访问电子设备已存储的数据,可以在任一应用需求电子设备中已存储的数据时触发。
基地址是指待访问数据所在的虚拟地址空间中的起始地址,偏移地址是指待访问数据相对所在的虚拟地址空间中的起始地址的偏移地址。基地址和偏移地址用于共同确定一个虚拟地址。例如,数据访问指令中的基地址为0x40000,偏移地址为0x1000,则虚拟地址为0x401000。
虚拟地址的高位是指该虚拟地址与对应的物理地址之间不同的地址位,一般为虚拟地址中的最高位到最低位之前某一位之间的地址位。在进行数据访问时,采用的虚拟地址的高位的位置范围可以根据页表大小确定,不同的页表大小对应的虚拟地址的高位的位置范围是不同的。本公开实施例对页表大小以及虚拟地址的高位具体为哪几位不做限定。例如,虚拟地址的地址位数为32,页表大小为4KB(212字节),则虚拟地址的低12位与物理地址的低12位相同,采用的虚拟地址的高位为虚拟地址的高20位(20=32-12)。
物理地址的数值位按照功能可以划分为索引位(index)、标签位(tag)和块偏移位(block offset);
物理地址的标签位用于指示待访问数据在缓存中所在行的数据块(block)的标签,是指物理地址的最高位到最低位之前的某一位之间的地址位;
物理地址的块偏移位用于在缓存中的数据块中定位出待访问数据,是指物理地址的最高位之后的某一位到最低位之间的地址位;
物理地址的索引位用于指示待访问数据在缓存中所在行(line)的索引,是指物理地址中除标签位和块偏移位以外的地址位。
本公开实施例不限定物理地址的哪几位划分为索引位、标签位或块偏移位,可以根据缓存需求进行设置。例如,物理地址为32位,0-5位为块偏移位,6-12位为索引位,13-31位为标签位。在索引位与物理地址的高位以及物理地址的低位均有重叠的情况下,索引位中的一部分可以根据物理地址的高位指示,由于物理地址的低位与虚拟地址的低位相同,索引位中的另一部分可以根据虚拟地址的低位指示。
附图说明
图1A是本公开实施例提供的一种数据访问方法的实施环境示意图;
图1B是本公开实施例提供的一种页表项的示意图;
图2是本公开实施例提供的一种电子设备200的框图;
图3是本公开实施例提供的一种数据访问方法的流程图;
图4是本公开实施例提供的一种快速加法比较器的逻辑电路图;
图5是本公开实施例提供的一种数据访问的流程图;
图6是本公开实施例提供的一种数据访问装置的框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
图1A是本公开实施例提供的一种数据访问方法的实施环境示意图。参见图1A,该实施环境中包括处理器101,缓存102,该缓存102包括翻译后备缓冲器103(TranslationLookaside Buffer,TLB)、缓存标签存储器104(cache tag ram)和缓存数据存储器105(cache data ram)。其中,缓存102用于存储处理器101待处理或已经处理过的数据。本发明实施例中,缓存102的组织方式为物理地址索引物理地址标签(Physical Index PhysicalTag,PIPT),也就是说,基于物理地址的标签位和索引位进行数据访问。TLB103用于存储页表,并以页表中的页表项记录地址映射关系,该地址映射关系用于指示虚拟地址的高位与物理地址的高位之间的映射关系。缓存标签存储器104用于存储缓存中数据的标签;缓存数据存储器105用于存储缓存中的数据。处理器101用于执行数据访问指令,在TLB103中进行虚拟地址到物理地址的转换,在缓存102中进行数据访问。参见图1B,本公开实施例提供了一种页表项的示意图,每个页表项中的PA[44:13]表示一个物理地址的13-44位,处理器101基于虚拟地址的高位查询对应的页表项,并将对应的页表项中的PA[44:13]作为与该虚拟地址的高位对应的物理地址的高位。
图2是本公开实施例提供的一种电子设备200的框图。参见图2,该电子设备200包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现图3实施例中的数据访问方法。还可以包括通信接口、总线、输入输出接口和显示设备,其中,处理器、存储器、输入输出接口、显示设备和通信接口通过总线完成相互间的通信。
存储器可以包括高速随机存取存储器(作为缓存),还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器和输入输出接口对存储器的访问。总线是连接所描述的元素的电路并且在这些元素之间实现传输。例如,处理器通过总线从其它元素接收到命令,解码接收到的命令,根据解码的命令执行计算或数据处理。存储器可以包括程序模块,例如内核(kernel),中间件(middleware),应用程序编程接口(Application ProgrammingInterface,API)和应用。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。输入输出接口转发用户通过输入输出设备(例如感应器、键盘、触摸屏)输入的命令或数据。显示设备显示各种信息给用户。通信接口将该电子设备200与其它网络设备、用户设备、网络进行连接。例如,通信接口可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(Wireless Fidelity,WiFi),蓝牙(Bluetooth,BT),近距离无线通信技术(Near Field Communication,NFC),全球卫星定位系统(Global Positioning System,GPS)和蜂窝通信(cellular communication)(例如,长期演进技术(Long Term Evolution,LTE),长期演进技术的后续演进(Long TermEvolution–Advanced,LTE-A),码分多址(Code Division Multiple Access,CDMA),宽带码分多址(Wideband CDMA,WCDMA),通用移动通信系统(Universal MobileTelecommunication System,UMTS),无线宽带接入(Wireless Broadband,WiBro)和全球移动通讯系统(Global System for Mobile communication,GSM)。有线通信可以包括以下至少一种:通用串行总线(Universal Serial Bus,USB),高清晰度多媒体接口(HighDefinition Multimedia Interface,HDMI),异步传输标准接口(Recommended Standard232,RS-232),和普通老式电话业务(Plain Old Telephone Service,POTS)。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。电子设备200可以通过通信接口连接网络,电子设备200和其它网络设备通信所用的协议可以被应用、应用程序编程接口(Application Programming Interface,API)、中间件、内核和通信接口至少一个支持。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条指令、至少一段程序、代码集或指令集的存储器,上述至少一条指令、至少一段程序、代码集或指令集可由服务器中的处理器加载并执行以完成上述证书管理系统中证书中心服务器或区块链节点的功能。例如,计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random-Access Memory,RAM)、只读光盘(Compact Disc Read-OnlyMemory,CD-ROM)、磁带、软盘和光数据存储设备等。
图3是本公开实施例提供的一种数据访问方法的流程图。参见图3,该方法可以应用于任一设置有缓存的电子设备,例如,终端或服务器等,包括以下步骤:
301、电子设备根据数据访问指令携带的基地址和偏移地址,获取待访问数据的虚拟地址。
该步骤中,当电子设备接收到数据访问指令时,可以提取数据访问指令中的基地址和偏移地址,将基地址和偏移地址相加,得到虚拟地址。
302、电子设备根据虚拟地址的高位,查询与虚拟地址对应的物理地址的高位。
该步骤中,电子设备可以根据虚拟地址的高位的位置范围,提取虚拟地址的高位,将该虚拟地址的高位与页表中各个虚拟地址的高位进行比较,如果某一虚拟地址的高位与该虚拟地址的高位相同,则获取该虚拟地址的高位对应的物理地址的高位。
需要说明的是,本公开实施例不限定上述步骤301和302的执行时序,例如,电子设备可以串行进行步骤301和302,具体地,可以先采用加法器,计算基地址的数值位与偏移地址的数值位的和值,得到虚拟地址,再采用数值比较器将虚拟地址的高位与地址映射关系中的任一虚拟地址的高位进行比较,如果虚拟地址的高位中的每一数值位均与该虚拟地址的高位中相应位置的数值位相同,则获取该虚拟地址的高位对应的物理地址的高位。
需要说明的是,实际的计算过程和比较过程都是以二进制数进行逻辑运算的过程,如采用全加器的计算过程中,是将基地址和偏移地址相应位置上的两个数值位进行逻辑异或运算,将得到的数值与上一次计算得到的进位值进行逻辑异或运算,得到虚拟地址的一个数值位,并将基地址、偏移地址和上一次计算得到的进位值中任两个值进行逻辑与运算后,得到三个中间值,再将这三个中间值进行逻辑或运算得到本次计算的进位值,继续进行下一个数值位的计算,直到得到虚拟地址的各个数值位。如比较过程中,依据同或逻辑运算原理,相同的数值位的同或结果为1,不同的数值位的同或结果为0,因此是将虚拟地址的数值位与待比较虚拟地址相应位置上的数值位进行同或逻辑运算,得到的一个数值位可以直接表示进行同或的两个数值位是否相同,结果为1时表示相同,结果为0时表示不同,如果结果全部为1,说明虚拟地址的高位与被比较的虚拟地址的高位相同,则获取到该被比较的虚拟地址的高位对应的物理地址的高位,否则,可以忽略该比较结果。其中,待比较虚拟地址的高位是指页表中所存储的虚拟地址的高位。
又例如,为了提高数据访问效率,电子设备也可以并行进行步骤301和302,也即是,在根据数据访问指令携带的基地址和偏移地址,获取待访问数据的虚拟地址的过程中,根据虚拟地址的高位,查询与虚拟地址对应的物理地址的高位。电子设备并行进行步骤301和302也相当于同时执行加法器和数值比较器的功能。具体实施时,对于至少一个待比较虚拟地址中的每个待比较虚拟地址,电子设备可以对基地址、偏移地址以及待比较虚拟地址中的数值位进行运算,得到比较结果,比较结果用于指示基地址、偏移地址的和值与被比较的虚拟地址是否相同;获取目标比较结果对应的物理地址的高位,目标比较结果用于指示基地址、偏移地址的和值与被比较的虚拟地址相同。
上述具体实施过程中,电子设备可以按照已设置的逻辑运算关系,对基地址、偏移地址以及该待比较虚拟地址的数值位进行逻辑运算,将得到的每个数值位作为比较结果中一个位置上的数值位,如果任一位置上的数值位均指示该位置上进行比较的数值位相同,则将该比较结果作为目标比较结果,获取该被比较的虚拟地址的高位对应的物理地址的高位。
在一种可选方式中,电子设备可以通过快速加法比较器(Fast AdderComparator,FAC),对于每个待比较虚拟地址,对基地址、偏移地址以及待比较虚拟地址中的数值位进行运算,得到该比较结果。
该可选方式中,FAC的逻辑电路图如图4所示,该逻辑电路中涉及的每个参数的表达式如下:
Figure BDA0001349790060000061
gi=ai∧bi
Figure BDA0001349790060000062
Figure BDA0001349790060000063
Figure BDA0001349790060000064
Figure BDA0001349790060000065
其中,ai为基地址的第i个数值位,bi为偏移地址的第i个数值位,ki为待比较虚拟地址的第i个数值位,pi、gi、vi和wi均为基于ai和bi表示zi的中间变量,zi为虚拟地址与待比较虚拟地址在第i个位置上的数值位的比较结果,Z为虚拟地址的高位与待比较虚拟地址的高位的比较结果,i为非负整数。基于该比较结果,电子设备可以获取到目标比较结果对应的物理地址的高位,具体获取过程与上述获取物理地址的高位的过程同理。
基于上述参数的表达式可以看出,每个参数都可以由已知的其他参数表示,相比于上述加法器和数值比较器的结合,不需要考虑由当前的进位值与上一个进行值相关所产生的递推关系,在计算每个位置上的比较结果时所需的参数都无需等待其他位置上的计算过程得到,使得各个位置上的比较结果的计算过程相互之间不受限制,可以并行进行,从而提高了计算效率。
需要说明的是,由于FAC直接得到目标比较结果,不会直接输出虚拟地址,因此在基于FAC获取物理地址的高位的同时,可以基于另一加法器(如,串行加法器或超前进位加法器)计算得到该虚拟地址。
303、电子设备对物理地址的高位中的第一索引位与虚拟地址中的第二索引位进行组合,得到物理地址的索引位,第二索引位是指虚拟地址中与物理地址的索引位对应的地址位,第一索引位是指物理地址的索引位中除第二索引位以外的地址位。
该步骤中,电子设备可以根据物理地址的索引位的位置范围,在物理地址的高位中确定第一索引位;在虚拟地址的低位中确定第二索引位;对第一索引位与第二索引位进行组合,得到物理地址的索引位。其中,物理地址的索引位的位置范围根据缓存大小和缓存组织结构确定。该组合过程中,以物理地址的索引位为物理地址的6-12位,且该电子设备的处理器应用4KB页表为例,物理地址的0-11位与虚拟地址的0-11位相同,则第一索引位为6-11位,电子设备可以直接由虚拟地址的6-11位得到,第二索引位为第12位,可以从查询到的物理地址的第12位得到,进而组合得到完整的索引位。
304、电子设备根据物理地址的索引位和标签位,进行数据访问。
根据索引位在缓存中查询与该索引位对应的至少一个标签,并将该至少一个标签中的每个标签与该标签位进行比较,确定出与该标签位相同的标签,进而访问该相同的标签所对应的数据。在比较过程中,既可以并行地进行比较,也可以串行地进行比较,本公开实施例对此不做限定。
在实际的应用场景中,标签通常存储在缓存标签存储器中,数据通常存储在缓存数据存储器中,因此电子设备实际是在缓存标签存储器中查询标签,并比较出与标签位相同的标签时(也即是缓存命中时),进一步在缓存数据存储器中访问该标签对应的数据。
需要说明的是,如果未比较出与标签位相同的标签(也即是缓存未命中),电子设备也可以根据物理地址在内存中进行数据访问,并将访问到的数据存储到缓存中,以便于提高后续对该数据的访问效率。
依据上述数据访问过程,参见图5,本公开实施例提供了一种数据访问的流程图。该数据访问的流程中,包括三个步骤:步骤一、处理器基于FAC在TLB中并行进行获取虚拟地址以及查询对应的物理地址的过程,以确定出物理地址的高位,同时,可以基于传统加法器获取虚拟地址的低位,将物理地址的高位中的第一索引位和虚拟地址的低位中的第二索引位进行组合得到物理地址的索引位;步骤二、处理器基于物理地址的索引位在缓存标签存储器中查询对应的至少一个标签,并与基于FAC在页表中得到的物理地址的标签位进行比较;步骤三、根据缓存命中结果,进行数据访问。
本公开实施例通过在查询到物理地址的高位时,基于物理地址的低位与虚拟地址的低位相同的特征,直接将物理地址的高位中的第一索引位与虚拟地址的低位中的第二索引位组合直接得到索引位,进而基于得到的索引位进行数据访问,省略了获取完整的物理地址步骤以及再将物理地址拆分为所需的标签位或索引位的过程,简化了处理级数,使得数据访问的耗时更短。
图6是本公开实施例提供的一种数据访问装置的框图。参见图6,该装置包括:
处理模块601,用于执行上述步骤301和302所涉及的过程;
处理模块601,用于执行上述步骤301和302所涉及的过程;
组合模块602,用于执行上述步骤303所涉及的过程;
数据访问模块603,用于执行上述步骤304所涉及的过程。
在一种可能实现方式中,组合模块602用于:根据物理地址的索引位的位置范围,在物理地址的高位中确定第一索引位;在虚拟地址的低位中确定第二索引位;对第一索引位与第二索引位进行组合,得到物理地址的索引位。
在一种可能实现方式中,处理模块601用于在根据数据访问指令携带的基地址和偏移地址,获取待访问数据的虚拟地址的过程中,根据虚拟地址的高位,查询与虚拟地址对应的物理地址的高位。
在一种可能实现方式中,处理模块601用于:对于至少一个待比较虚拟地址中的每个待比较虚拟地址,对基地址、偏移地址以及待比较虚拟地址中的数值位进行运算,得到比较结果,比较结果用于指示基地址、偏移地址的和值与被比较的虚拟地址是否相同;获取目标比较结果对应的物理地址的高位,目标比较结果用于指示基地址、偏移地址的和值与被比较的虚拟地址相同。
在一种可能实现方式中,处理模块601用于:通过快速加法比较器FAC,对于每个待比较虚拟地址,对基地址、偏移地址以及待比较虚拟地址中的数值位进行运算,得到比较结果。
本公开实施例通过在查询到物理地址的高位时,基于物理地址的低位与虚拟地址的低位相同的特征,直接将物理地址的高位中的第一索引位与虚拟地址的低位中的第二索引位组合直接得到索引位,进而基于得到的索引位进行数据访问,省略了获取完整的物理地址步骤以及再将物理地址拆分为所需的标签位或索引位的过程,简化了处理级数,使得数据访问的耗时更短。
需要说明的是:上述实施例提供的数据访问装置在访问数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据访问装置与数据访问方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (11)

1.一种数据访问方法,其特征在于,所述方法包括:
根据数据访问指令携带的基地址和偏移地址,获取待访问数据的虚拟地址;
根据所述虚拟地址的高位,查询与所述虚拟地址对应的物理地址的高位;
对所述物理地址的高位中的第一索引位与所述虚拟地址中的第二索引位进行组合,得到所述物理地址的索引位,所述第二索引位是指所述虚拟地址中与所述物理地址的索引位对应的地址位,所述第一索引位是指所述物理地址的索引位中除所述第二索引位以外的地址位;
根据所述物理地址的索引位和标签位,进行数据访问。
2.根据权利要求1所述的方法,其特征在于,所述对所述物理地址的高位中的第一索引位与所述虚拟地址中的第二索引位进行组合,得到所述物理地址的索引位,包括:
根据所述物理地址的索引位的位置范围,在所述物理地址的高位中确定所述第一索引位;
在所述虚拟地址的低位中确定所述第二索引位;
对所述第一索引位与所述第二索引位进行组合,得到所述物理地址的索引位。
3.根据权利要求1所述的方法,其特征在于,在根据数据访问指令携带的基地址和偏移地址,获取待访问数据的虚拟地址的过程中,根据所述虚拟地址的高位,查询与所述虚拟地址对应的物理地址的高位。
4.根据权利要求3所述的方法,其特征在于,所述在根据数据访问指令携带的基地址和偏移地址,获取待访问数据的虚拟地址的过程中,根据所述虚拟地址的高位,查询与所述虚拟地址对应的物理地址的高位,包括:
对于至少一个待比较虚拟地址中的每个待比较虚拟地址,对所述基地址、所述偏移地址以及所述待比较虚拟地址中的数值位进行运算,得到比较结果,所述比较结果用于指示所述基地址、所述偏移地址的和值与被比较的虚拟地址是否相同;
获取目标比较结果对应的物理地址的高位,所述目标比较结果用于指示所述基地址、所述偏移地址的和值与被比较的虚拟地址相同。
5.根据权利要求4所述的方法,其特征在于,所述对于至少一个待比较虚拟地址中的每个待比较虚拟地址,对所述基地址、所述偏移地址以及所述待比较虚拟地址中的数值位进行运算,得到比较结果,包括:
通过快速加法比较器FAC,对于每个待比较虚拟地址,对所述基地址、所述偏移地址以及所述待比较虚拟地址中的数值位进行运算,得到比较结果。
6.一种数据访问装置,其特征在于,所述装置包括:
处理模块,用于根据数据访问指令携带的基地址和偏移地址,获取待访问数据的虚拟地址;
所述处理模块,用于根据所述虚拟地址的高位,查询与所述虚拟地址对应的物理地址的高位;
组合模块,用于对所述物理地址的高位中的第一索引位与所述虚拟地址中的第二索引位进行组合,得到所述物理地址的索引位,所述第二索引位是指所述虚拟地址中与所述物理地址的索引位对应的地址位,所述第一索引位是指所述物理地址的索引位中除所述第二索引位以外的地址位;
数据访问模块,用于根据所述物理地址的索引位和标签位,进行数据访问。
7.根据权利要求6所述的装置,其特征在于,所述组合模块用于:
根据所述物理地址的索引位的位置范围,在所述物理地址的高位中确定所述第一索引位;
在所述虚拟地址的低位中确定所述第二索引位;
对所述第一索引位与所述第二索引位进行组合,得到所述物理地址的索引位。
8.根据权利要求6所述的装置,其特征在于,所述处理模块用于在根据数据访问指令携带的基地址和偏移地址,获取待访问数据的虚拟地址的过程中,根据所述虚拟地址的高位,查询与所述虚拟地址对应的物理地址的高位。
9.根据权利要求8所述的装置,其特征在于,所述处理模块用于:
对于至少一个待比较虚拟地址中的每个待比较虚拟地址,对所述基地址、所述偏移地址以及所述待比较虚拟地址中的数值位进行运算,得到比较结果,所述比较结果用于指示所述基地址、所述偏移地址的和值与被比较的虚拟地址是否相同;
获取目标比较结果对应的物理地址的高位,所述目标比较结果用于指示所述基地址、所述偏移地址的和值与被比较的虚拟地址相同。
10.根据权利要求9所述的装置,其特征在于,所述处理模块用于:
通过快速加法比较器FAC,对于每个待比较虚拟地址,对所述基地址、所述偏移地址以及所述待比较虚拟地址中的数值位进行运算,得到比较结果。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至权利要求5中任一项所述的数据访问方法。
CN201710571483.4A 2017-07-13 2017-07-13 数据访问方法及装置 Active CN109254930B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710571483.4A CN109254930B (zh) 2017-07-13 2017-07-13 数据访问方法及装置
PCT/CN2018/095565 WO2019011311A1 (zh) 2017-07-13 2018-07-13 数据访问方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710571483.4A CN109254930B (zh) 2017-07-13 2017-07-13 数据访问方法及装置

Publications (2)

Publication Number Publication Date
CN109254930A CN109254930A (zh) 2019-01-22
CN109254930B true CN109254930B (zh) 2020-06-26

Family

ID=65002262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710571483.4A Active CN109254930B (zh) 2017-07-13 2017-07-13 数据访问方法及装置

Country Status (2)

Country Link
CN (1) CN109254930B (zh)
WO (1) WO2019011311A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115964084A (zh) * 2021-10-12 2023-04-14 深圳市中兴微电子技术有限公司 数据交互方法、电子设备、存储介质
CN113656330B (zh) * 2021-10-20 2022-02-15 北京微核芯科技有限公司 确定访问地址的方法和装置
CN116360859B (zh) * 2023-03-31 2024-01-26 摩尔线程智能科技(北京)有限责任公司 电源域的访问方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446186B1 (en) * 1999-10-27 2002-09-03 Nvidia Corporation Method, apparatus and article of manufacture for mapping physical memory in a virtual address system
CN101840373A (zh) * 2010-01-28 2010-09-22 北京握奇数据系统有限公司 数据操作方法及装置、寻址方法及装置
CN103810111A (zh) * 2012-11-08 2014-05-21 国际商业机器公司 有源存储器件中的地址生成的方法及其处理元件

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446186B1 (en) * 1999-10-27 2002-09-03 Nvidia Corporation Method, apparatus and article of manufacture for mapping physical memory in a virtual address system
CN101840373A (zh) * 2010-01-28 2010-09-22 北京握奇数据系统有限公司 数据操作方法及装置、寻址方法及装置
CN103810111A (zh) * 2012-11-08 2014-05-21 国际商业机器公司 有源存储器件中的地址生成的方法及其处理元件

Also Published As

Publication number Publication date
WO2019011311A1 (zh) 2019-01-17
CN109254930A (zh) 2019-01-22

Similar Documents

Publication Publication Date Title
CN108255958B (zh) 数据查询方法、装置和存储介质
US20160055088A1 (en) Cross-page prefetching method, apparatus, and system
CN109254930B (zh) 数据访问方法及装置
US10579522B2 (en) Method and device for accessing a cache memory
CN108153757A (zh) 一种哈希表管理的方法和装置
US20110145542A1 (en) Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups
JPH03194632A (ja) 変換予見にもとづくキャッシュアクセス
US10846338B2 (en) Data processing device, data processing method, and non-transitory computer readable medium
CN112905111A (zh) 数据缓存的方法和数据缓存的装置
CN111723113A (zh) 业务数据的分布式缓存方法、装置、终端设备及存储介质
CN114860627B (zh) 基于地址信息动态生成页表的方法
US20100106936A1 (en) Calculator and TLB control method
CN114527938A (zh) 一种基于固态硬盘的数据读取方法、系统、介质及设备
CN110572451A (zh) 一种数据处理的方法、装置及存储介质
CN112559386A (zh) 提升ssd性能的方法、装置、计算机设备及存储介质
CN111803917A (zh) 资源的处理方法和装置
CN109684303B (zh) 通信码归属地查询方法、装置、计算机设备和存储介质
US11256630B2 (en) Cache address mapping method and related device
CN105389270A (zh) 一种提高片上系统指令缓存命中率的系统及其方法
CN107861890B (zh) 访存处理方法、装置及电子设备
CN112199400B (zh) 用于数据处理的方法和装置
CN115357779A (zh) 一种数据处理方法、装置、系统、电子设备及存储介质
WO2019062067A1 (zh) 用户界面单元测试方法、装置、可读存储介质及设备
CN114896177A (zh) 数据存储管理方法、装置、设备、介质和产品
CN111767311A (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