CN114063934A - 数据更新装置、方法及电子设备 - Google Patents
数据更新装置、方法及电子设备 Download PDFInfo
- Publication number
- CN114063934A CN114063934A CN202111501504.8A CN202111501504A CN114063934A CN 114063934 A CN114063934 A CN 114063934A CN 202111501504 A CN202111501504 A CN 202111501504A CN 114063934 A CN114063934 A CN 114063934A
- Authority
- CN
- China
- Prior art keywords
- physical address
- page table
- memory
- table entry
- mapping relationship
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000013507 mapping Methods 0.000 claims abstract description 351
- 238000013519 translation Methods 0.000 claims abstract description 235
- 238000012545 processing Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供了一种数据更新装置、方法及电子设备,涉及计算机技术领域。该方法包括:当确定模块接收到映射关系更新指令时,确定映射关系更新指令对应的第一映射关系的第一物理地址,通过存取单元将第一物理地址以及第一映射关系写入数据高速缓冲存储器的第一内存空间中,然后通过匹配模块将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配,若第二物理地址中包括第一物理地址,则通过更新模块中数据高速缓冲存储器和转译后备缓冲器之间的数据通路,使数据高速缓冲存储器可以对转译后备缓冲器中的映射关系进行更新,提高转译后备缓冲器页表项的更新效率和处理器性能。
Description
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种数据更新装置、方法及电子设备。
背景技术
在如今的计算机技术领域,程序访问的内存地址通常是虚拟地址,然后由操作系统将这个虚拟地址映射到适当的物理地址上。只需操作系统处理好虚拟地址到物理地址的映射关系,就可以保证不同程序访问的物理地址位于不同的区域,达到内存地址空间隔离的效果,可以解决早期计算机中程序直接访问物理地址而产生的许多缺陷。虚拟地址和物理地址的映射关系通常存储在页表中,页表通常分为多个级别,根据虚拟地址查询相应的物理地址时,需要一级一级查找,效率不高。
而转译后备缓冲器(Translation Lookaside Buffer,TLB)的出现可以一定程度上提升映射关系的查找效率,改进了虚拟地址到物理地址的转译速度。转译后备缓冲器本质是一块高速缓冲存储器(Cache),存储了虚拟地址和物理地址之间的映射关系。当收到来自程序的虚拟地址后,可以优先在转译后备缓冲器中进行寻址,若查找到虚拟地址对应的物理地址,可以直接访问该物理地址。
但在转译后备缓冲器的使用过程中,当内存中存在虚拟地址和物理地址之间新的映射关系时,会出现内存和转译后备缓冲器中数据不一致的情况,目前的处理方式是将转译后备缓冲器中存在的所有映射关系都无效化处理,然后基于内存中的映射关系重新在转译后备缓冲器中存储映射关系,该过程耗时较长,效率降低。
发明内容
本申请实施例的目的旨在能解决转译后备缓冲器中数据更新效率的问题。
第一方面,提供了一种数据更新装置,该装置包括:
确定模块,用于当接收到映射关系更新指令时,确定映射关系更新指令对应的第一映射关系的第一物理地址;第一物理地址为内存中的映射关系更新后,第一映射关系在内存中的存储地址;
存取单元,用于将第一物理地址以及第一映射关系写入数据高速缓冲存储器的第一存储空间中;
匹配模块,用于将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配;第二物理地址为转译后备缓冲器中每个页表项在内存中对应的存储地址,转译后备缓冲器中存储有转译后备缓冲器中每个页表项对应的第二物理地址;
更新模块,用于若第二物理地址中包括第一物理地址,则通过数据高速缓冲存储器基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新。
在第一方面的可选实施例中,数据更新装置还包括:
第一初始化模块,用于获取第一数据处理请求,第一数据处理请求包含第一数据处理请求对应的第一虚拟地址;在转译后备缓冲器中查找第一虚拟地址对应的第二映射关系;
第二初始化模块,用于若转译后备缓冲器中不存在第一虚拟地址对应的第二映射关系,则在内存中确定出第一虚拟地址对应的目标页表项,目标页表项是用于存储第二映射关系的页表项;
第三初始化模块,用于将第二映射关系和目标页表项在内存中的物理地址存储在转译后备缓冲器中,并将目标页表项在内存中的物理地址存储在数据高速缓冲存储器的第二存储空间中。
在第一方面的可选实施例中,第三初始化模块在将第二映射关系和目标页表项在内存中的物理地址存储在转译后备缓冲器中,并将目标页表项在内存中的物理地址存储在数据高速缓冲存储器的第二存储空间中时,用于:
通过页表遍历单元读取内存中与第一虚拟地址对应的第二映射关系和目标页表项在内存中的物理地址;
通过页表遍历单元将第二映射关系写入转译后备缓冲器的页表项中,将目标页表项在内存中的物理地址作为转译后备缓冲器中记录第二映射关系的页表项对应的第二物理地址,并将记录第二映射关系的页表项对应的第二物理地址与记录第二映射关系的页表项在转译后备缓冲器中关联存储;
通过页表遍历单元将第二物理地址写入数据高速缓冲存储器的第二存储空间中。
在第一方面的可选实施例中,数据更新装置还包括物理地址存储模块,物理地址存储模块具体包括用于组成数据高速缓冲存储器的第二存储空间的预设数量的寄存器,预设数量与转译后备缓冲器中页表项的数量相同;
预设数量的寄存器用于存储转译后备缓冲器中每个页表项在内存中的物理地址。
在第一方面的可选实施例中,更新模块具体包括:
设置在数据高速缓冲存储器和转译后备缓冲器之间的数据通路;通过数据通路,高速缓冲存储器将第一映射关系传输给转译后备缓冲器,以基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新。
第二方面,提供了一种数据更新方法,该方法包括:
当接收到映射关系更新指令时,确定映射关系更新指令对应的第一映射关系的第一物理地址;第一物理地址为内存中的映射关系更新后,第一映射关系在内存中的存储地址;
通过存取单元将第一物理地址以及第一映射关系写入数据高速缓冲存储器的第一存储空间中;
将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配;第二物理地址为转译后备缓冲器中每个页表项在内存中对应的存储地址,转译后备缓冲器中存储有转译后备缓冲器中每个页表项对应的第二物理地址;
若第二存储空间存储的第二物理地址中包括第一物理地址,则通过数据高速缓冲存储器基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新。
在第二方面的可选实施例中,数据更新方法还包括:
获取第一数据处理请求,第一数据处理请求包含第一数据处理请求对应的第一虚拟地址;
在转译后备缓冲器中查找第一虚拟地址对应的第二映射关系;
若转译后备缓冲器中不存在第一虚拟地址对应的第二映射关系,则在内存中确定出第一虚拟地址对应的目标页表项,目标页表项是用于存储第二映射关系的页表项;
将第二映射关系和目标页表项在内存中的物理地址存储在转译后备缓冲器中,并将目标页表项在内存中的物理地址存储在数据高速缓冲存储器的第二存储空间中。
在第二方面的可选实施例中,将第二映射关系和目标页表项在内存中的物理地址存储在转译后备缓冲器中,并将目标页表项在内存中的物理地址存储在数据高速缓冲存储器的第二存储空间中,包括:
通过页表遍历单元读取内存中与第一虚拟地址对应的第二映射关系和目标页表项在内存中的物理地址;
通过页表遍历单元将第二映射关系写入转译后备缓冲器的页表项中,将目标页表项在内存中的物理地址作为转译后备缓冲器中记录第二映射关系的页表项对应的第二物理地址,并将记录第二映射关系的页表项对应的第二物理地址与记录第二映射关系的页表项在转译后备缓冲器中关联存储;
通过页表遍历单元将第二物理地址写入数据高速缓冲存储器的第二存储空间中。
在第二方面的可选实施例中,数据高速缓冲存储器的第二存储空间由预设数量的寄存器组成,预设数量与转译后备缓冲器中页表项的数量相同;方法,还包括:
将转译后备缓冲器中每个页表项在内存中的物理地址存储在第二存储空间的寄存器中。
在第二方面的可选实施例中,数据高速缓冲存储器和转译后备缓冲器之间存在数据通路;通过数据高速缓冲存储器基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新,包括:
通过数据通路,高速缓冲存储器将第一映射关系传输给转译后备缓冲器,以基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新。
第三方面,提供了一种电子设备,该电子设备包括上述数据更新装置,用于实现上述任一实施例的数据更新方法。
上述的数据更新装置,当确定模块接收到映射关系更新指令时,确定映射关系更新指令对应的第一映射关系的第一物理地址,通过存取单元将第一物理地址以及第一映射关系写入数据高速缓冲存储器的第一内存空间中,然后通过匹配模块将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配,若第二存储空间存储的第二物理地址中包括第一物理地址,则通过更新模块中预先在数据高速缓冲存储器和转译后备缓冲器之间的数据通路,使数据高速缓冲存储器可以基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新,实现转译后备缓冲器中的映射关系与内存中的映射关系保持一致,提高了转译后备缓冲器页表项的更新效率,同时提升了处理器性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据更新装置的结构示意图;
图2为本申请实施例提供的一种数据更新方法中的在转译后备缓冲器里增加地址域的示意图;
图3为本申请实施例提供的一种数据更新方法中的匹配第一物理地址和第二物理地址的示意图;
图4为本申请实施例提供的一种数据更新装置的结构示意图;
图5为本申请实施例提供的一种数据更新方法的流程示意图;
图6为本申请实施例提供的一种数据更新方法的流程示意图;
图7为本申请实施例提供的一种数据更新电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”指示实现为“A”,或者实现为“A”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
高速缓冲存储器(Cache),是位于CPU(central processing unit,中央处理器)和主存储器DRAM(Dynamic Random Access Memory,动态随机存取存储器)之间,规模较小,但速度很高的存储器,通常由SRAM(Static Random Access Memory,静态存储器)组成。它是位于CPU与内存间的一种容量较小但速度很高的存储器。CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。
内存,是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据,是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。
双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDR),SDRAM是Synchronous Dynamic Random Access Memory(同步动态随机存取存储器)的缩写,DDR内存是在SDRAM内存基础上发展而来的,具有双倍数据传输率的SDRAM,其数据传输速度为系统时钟频率的两倍,由于速度增加,其传输性能优于传统的SDRAM。
物理地址(physical address),放在寻址总线上的地址。放在寻址总线上,如果是读,电路根据这个地址每位的值就将相应地址的物理内存中的数据放到数据总线中传输。如果是写,电路根据这个地址每位的值就在相应地址的物理内存中放入数据总线上的内容。其中,物理内存是以字节(8位)为单位编址的。
虚拟地址(virtual address),也称为逻辑地址,CPU启动保护模式后,程序运行在虚拟地址空间中。虚拟地址与虚拟内存相关联,虚拟内存是计算机系统内存管理的一种技术,可以使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存。
基于分页机制的虚拟内存中,每个进程可以有4GB的虚拟地址空间,4GB的虚拟地址空间可以被分成了固定大小的页,每一页或者被映射到物理内存,或者被映射到硬盘上的交换文件中,或者没有映射任何东西。
CPU把虚拟地址转换成物理地址的信息存放在叫做页目录和页表的结构里。
页表,一个页表的大小通常为4K字节,放在一个物理页中。由1024个4字节的页表项组成。页表项的大小为4个字节(32bit),所以一个页表中有1024个页表项。页表中的每一项的内容(每项4个字节,32bit)高20bit用来放一个物理页的物理地址,低12bit放着一些标志。
在现代高性能处理器中,处理器送出的地址一般为虚拟地址,可以经过TLB将虚拟地址转换为物理地址,从而访问外设。当内存中存在虚拟地址和物理地址之间新的映射关系时,一般通过软件形式的解决方案,执行SFENCE指令(store fence,存储屏障指令),对TLB中存储的所有映射关系进行无效(flush)处理,然后TLB重新基于内存中的映射关系重新在TLB中记录映射关系,完成对TLB中数据的更新。然而,TLB中的映射并不都是无效的,一般情况下,只是当前发生异常的映射关系是无效的,在软件形式的解决方案中对TLB中存储的所有映射关系进行无效(flush)处理,可能会导致更多的异常,影响程序的执行效率。并且,SFENCE指令会导致发生TLB未命中,需要重新在TLB中记录映射关系,而重新在TLB中记录映射关系的过程耗时较长,若在TLB中重新录入映射关系时与存取单元发生请求冲突,消耗的时钟周期会更多,将进一步影响应用程序的执行效率。
本申请提供的数据更新装置、方法及电子设备,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本申请实施例中提供了一种数据更新装置,如图1所示,该数据更新装置10可以包括:确定模块101、写入模块102、匹配模块103以及更新模块104,其中,
确定模块101,用于当接收到映射关系更新指令时,确定映射关系更新指令对应的第一映射关系的第一物理地址。其中,第一物理地址为内存中的映射关系更新后,第一映射关系在内存中的存储地址。
本申请实施例中提供了一种可能的实现方式,当软件需要更改内存中的映射关系时,CPU发出映射关系更新指令,需要将第一映射关系更新到内存中,此时可以由内存管理单元分配第一映射关系在内存中的第一物理地址,即第一物理地址为第一映射关系将在内存中的存储地址,在内存中的存储地址可以理解为更新后,内存中存储第一映射关系的页表项在内存中的物理地址。
本申请实施例中还提供了一种可能的实现方式,可以在检测出内存中存在新增加的页表项时,确定出新增加页表项所记录的第一映射关系在内存中的第一物理地址,具体的,可以对内存中的页表项进行检测,当检测到内存中存在新增加的页表项时,进一步确定出新增加的页表在内存中的存储地址(物理地址),将该存储地址作为第一物理地址。其中,页可以是将一个进程的逻辑地址空间划分后得到的若干个大小相等的片(或块),页框可以是把内存空间划分后得到的与页面相同大小的若干个存储块。而页表可以用于记录页和页框之间的对应关系,起索引作用,页表可以包括多个页表项,每个页表项可以记录一对页和页框之间的对应关系。在内存中存在新增加的页表项,则可以表示内存中新增加了页和页框至今的对应关系。
操作系统在执行存储器管理职能时,可以采用基本分页存储管理方式,用固定大小的页(Page)来描述逻辑地址(虚拟地址)空间,同时用相同大小的页框(Frame)来描述物理内存空间,由操作系统实现从逻辑页到物理页框的页面映射(即虚拟地址到物理地址之间的转换),并负责对所有页的管理和进程运行的控制。具体的,页可以有对应的页号,页框也可以有对应的页框号(物理块号),页号到页框号的地址映射过程即是逻辑地址转换为物理地址的过程。
在本申请实施例中,页表中的页表项中记录的虚拟地址和物理地址之间的映射关系可以理解为页和页框之间的对应关系,页号到页框号的地址映射过程即是逻辑地址(虚拟地址)转换为物理地址的过程。
本申请实施例中,对于检测内存中是否存在新增加的页表项的具体实现方式不做限定。比如,可以通过按照一定的时间间隔对内存中的页表项进行检测,来确定内存中是否存在新增加的页表项,例如,通过比较上一时段和当前时段的页表项扫描结果,对内存中的页表项进行周期性检测,若当前时刻内存中的页表项相较于上一时刻新增加了页表项,则确定出该新增加的页表项在内存中的存储地址,并将该存储地址作为第一物理地址。
存取单元102,用于将第一物理地址以及第一映射关系写入数据高速缓冲存储器的第一存储空间中。
其中,CPU和主存DDR中可以存在多级高速缓冲存储器(Cache),一般分为三级,分别是L1、L2和L3,不同级别的高速缓存提供不同的性能,例如,L1是为了更快的速度访问而优化过的,它采用了更多、更复杂以及更大的晶体管,从而更加昂贵和更加耗电;L2相对来说是为提供更大的容量优化的,用了更少、更简单的晶体管,从而相对便宜和省电,以此类推。
CPU可以有2个L1级别的Cache,分别为指令高速缓冲存储器(Instruction Cache,iCache)和数据高速缓冲存储器(Data Cache,dCache)。
在本申请实施例中,可以通过存取单元LSU(Load Store Unit)将第一物理地址以及新增加的页表项所记录的第一映射关系写入数据高速缓冲存储器(即dCache)的第一存储空间中。
其中,可以将数据高速缓冲存储器的存储空间划分为至少两块,第一存储空间和第二存储空间,可以在第一存储空间中存储第一物理地址和新增加的页表项所记录的第一映射关系;第二存储空间可以用于记录TLB中各个页表项在内存中的存储地址,关于第二存储空间的使用方法以及在本申请中所起的作用见后文详细说明。
存取单元LSU与数据存储器相连,可以对数据存储器进行读写,将第一物理地址以及新增加的页表项所记录的第一映射关系写入数据高速缓冲存储器(即dCache)的第一存储空间中。其中,第一物理地址可以为内存中的映射关系更新后,第一映射关系在内存中的存储地址,而第一映射关系可以是需要更新到内存和转译后备缓冲器中的新增加的虚拟地址和物理地址之间新的映射关系。
匹配模块103,用于将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配;第二物理地址为转译后备缓冲器转译后备缓冲器中每个页表项在内存中对应的存储地址,转译后备缓冲器中存储有转译后备缓冲器中每个页表项对应的第二物理地址。
更新模块104,用于若第二存储空间存储的第二物理地址中包括第一物理地址,则通过数据高速缓冲存储器基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新。
本申请的实施例中,转译后备缓冲器还存储有其所存储的每个页表项对应的第二物理地址,一个页表项对应的第二物理地址指的是该页表项在内存中的存储地址,也就是该页表项的存储位置。
在本申请实施例中,第一物理地址存储在数据高速缓冲存储器的第一存储空间中,可以通过将第一物理地址和与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配,来判断转译后备缓冲器中是否有在内存中的存储地址是第一物理地址的页表项,如果上述第二存储空间中存储的第二物理地址包含第一物理地址,则表明转译后备缓冲器中包含在内存中的存储地址是第一物理地址的页表项,需要对该页表项所记录的虚拟地址和物理地址之间的映射关系进行更新,以使转译后备缓冲器中存储的映射关系和内存中的映射关系保持一致。
在本申请实施例中,数据更新装置还可以包括物理地址存储模块,物理地址存储模块具体可以包括用于组成数据高速缓冲存储器的第二存储空间的预设数量的寄存器,其中,预设数量可以与转译后备缓冲器中页表项的数量相同。
数据高速缓冲存储器的第二存储空间可以由与转译后备缓冲器中页表项的数量相同的寄存器组成,并且,可以将预设数量的寄存器称为寄存器堆。数据高速缓冲存储器的第二存储空间可以存储转译后备缓冲器中所有页表项对应的第二物理地址,当寄存器的预设数量与转译后备缓冲器中页表项的数量相同时,寄存器可以与转译后备缓冲器中的页表项一一对应,分别存储转译后备缓冲器中每个页表项对应的第二物理地址。
在具体实施例中,本申请所提供的数据更新装置,可以在数据高速缓冲存储器中增加寄存器堆对应的硬件部件,以实现在数据高速缓冲存储器中增加由预设数量的寄存器构成的第二存储空间,可以在第二存储空间中存储转译后备缓冲器中所有页表项对应的第二物理地址,也可以只存储转译后备缓冲器中部分页表项对应的第二物理地址。
在本申请实施例中,转译后备缓冲器中可以存在存储映射关系的页表,该页表可以包含整个空间内所有页的入口(entry),内部包含的映射机制可以使应用程序能判断某个虚拟地址在其自己的进程空间或地址空间内,并且能够高效地将其转换为真实的物理地址以访问内存。转译后备缓冲器的页表中的每个页表项可以对应于一个页的入口,每个入口包含相应页的物理地址。
作为一个示例,可以如图2所示,在转译后备缓冲器的页表中新增加一个地址域。页表A为现有技术中的转译后备缓冲器页表,页表B为应用本申请中的数据更新方法时转译后备缓冲器可选的页表体现形式。可以将页表A的每一行看作为一个页表项,有效域(vaild)通常是1位,代表该页表项是否是有效的,若该页表项内部存在映射关系时,该页表项无效。标志域(tag)用来校验该页表项是否是CPU要访问的存储单元。而数据域中可以存储虚拟地址和物理地址之间的映射关系。
当在页表中增加一列作为地址域得到页表B时,每个页表项都有对应的地址域,而地址域可以用于存储转译后备缓冲器中每个页表项在内存中的存储地址(物理地址)。例如,“地址域d1”中记录的是由“有效域a1”、“标志域b1”和“数据域d1”构成的页表项在内存中的物理地址(第二物理地址)。
在一个示例中,匹配示意图可以如图3所示。可以将第一物理地址与数据高速缓冲存储器的预设数量的寄存器中存储的第二物理地址进行匹配,若第二存储空间存储的第二物理地址中包括第一物理地址,则通过数据高速缓冲存储器基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新。
在本申请实施例中,将第一物理地址和与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配后,若第二存储空间存储的第二物理地址中存在与第一物理地址相匹配的地址,则可以通过数据高速缓冲存储器,基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新,更新可以是将转译后备缓冲器中第一物理地址对应的页表项记录的映射关系更改为第一映射关系。
其中,第二存储空间存储的第二物理地址与第一物理地址相匹配,是指第二存储空间中的各第二物理地址中存在与第一物理地址相同的第二物理地址,即第二存储空间存储的第二物理地址中包括第一物理地址。
若第二存储空间存储的第二物理地址与第一物理地址均不匹配,说明转译后备缓冲器中不存在内存的存储地址为第一物理地址的页表项,无需对转译后备缓冲器进行更新,可以停止数据更新流程。
在本申请的技术方案中,当第二存储空间存储的第二物理地址中包括第一物理地址时,由于第二存储空间中的第二物理地址与转译后备缓冲器中的第二物理地址一致,则转译后备缓冲器中的第二物理地址也包括第一物理地址,可以用转译后备缓冲器中的第二物理地址定位出转译后备缓冲器中需要更新的页表项,具体而言,转译后备缓冲器中与第一物理地址相同的第二物理地址对应的页表项即需要进行更新的页表项。
在本申请实施例中,更新模块可以具体包括:设置在数据高速缓冲存储器和转译后备缓冲器之间的数据通路;通过数据通路,高速缓冲存储器将第一映射关系传输给转译后备缓冲器,以基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新。
具体的,通过数据高速缓冲存储器基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新,可以包括如下步骤:
在实际实施时,可以在转译后备缓冲器和数据高速缓冲存储器之间建立数据通路,通过该数据通路,高速缓冲存储器将第一映射关系传输给转译后备缓冲器,以基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新,其中,可以为预先设置数据高速缓冲存储器和转译后备缓冲器之间的数据通路。更新可以是将转译后备缓冲器中第一物理地址对应的页表项记录的映射关系更改为第一映射关系。
上述实施例中的数据更新装置,当确定模块接收到映射关系更新指令时,确定映射关系更新指令对应的第一映射关系的第一物理地址,通过存取单元将第一物理地址以及第一映射关系写入数据高速缓冲存储器的第一内存空间中,然后通过匹配模块将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配,若第二存储空间存储的第二物理地址中包括第一物理地址,则通过更新模块中预先在数据高速缓冲存储器和转译后备缓冲器之间的数据通路,使数据高速缓冲存储器可以基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新,实现转译后备缓冲器中的映射关系与内存中的映射关系保持一致,提高了转译后备缓冲器页表项的更新效率,同时提升了处理器性能。
本申请实施例中提供了一种可能的实现方式,数据更新装置还包括:
第一初始化模块,用于获取第一数据处理请求,第一数据处理请求包含第一数据处理请求对应的第一虚拟地址;在转译后备缓冲器中查找第一虚拟地址对应的第二映射关系;
第二初始化模块,用于若转译后备缓冲器中不存在第一虚拟地址对应的第二映射关系,则在内存中确定出第一虚拟地址对应的目标页表项,目标页表项是用于存储第二映射关系的页表项;
第三初始化模块,用于将第二映射关系和目标页表项在内存中的物理地址存储在转译后备缓冲器中,并将目标页表项在内存中的物理地址存储在数据高速缓冲存储器的第二存储空间中。
本申请实施例中还提供了另一种可能的实现方式,数据更新装置还包括:
第一初始化模块,用于获取第一数据处理请求,第一数据处理请求包含第一数据处理请求对应的第一虚拟地址;在转译后备缓冲器中查找第一虚拟地址对应的第二映射关系;
第四初始化模块,用于当转译后备缓冲器中不存在第一虚拟地址对应的第二映射关系,则通过页表遍历单元确定出第一虚拟地址对应的第二映射关系、以及第二映射关系在内存中的物理地址;其中页表遍历单元(page table walker,PTW)是内存管理单元的一部分,可以由页表遍历单元接收第一虚拟地址并遍历页表树,生成相应的物理地址;
第五初始化模块,用于通过页表遍历单元将第二映射关系和第二映射关系在内存中的物理地址存储在转译后备缓冲器中,并将第二映射关系在内存中的物理地址存储在数据高速缓冲存储器的第二存储空间中。
在一个示例中,以如何将一个虚拟地址对应的映射关系记录进转译后备缓冲器中为例,假设存在虚拟地址A,首先,CPU向转译后备缓冲器发送虚拟地址A,因转译后备缓冲器还未完成初始化过程,将会发生转译后备缓冲器未命中。
CPU再将虚拟地址发送至页表遍历单元,页表遍历单元是内存管理单元的一部分,由页表遍历单元根据虚拟地址A对应的映射关系A在内存中的存储地址,从内存中取出映射关系A,并将映射关系A和映射关系A在内存中的存储地址写入转译后备缓冲器中。
具体的,由于内存在数据高速缓冲存储器(即dCache)的下游,当页表遍历单元需要从内存中取映射关系A时,经过数据高速缓冲存储器,此时,数据高速缓冲存储器可以抓取页表遍历单元中映射关系A在内存中的存储地址,并记录于高速缓冲存储器的寄存器中。页表遍历单元从内存中取出映射关系A后,将映射关系A和映射关系A在内存中的存储地址写入转译后备缓冲器中。
以此类推,针对每个转译后备缓冲器初始化时需要写入转译后备缓冲器中的映射关系可以按上述流程写入转译后备缓冲器,并且将该映射关系在内存中的存储地址写入转译后备缓冲器相应的地址域中,直到完成转译后备缓冲器初始化流程。
可以理解的是,在本申请实施例中,对转译后备缓冲器进行初始化时,实际是转译后备缓冲器将内存中的映射关系记录在转译后备缓冲器的页表项中。具体初始化方案为:根据数据处理请求确定出第一虚拟地址,可以在转译后备缓冲器中查找第一虚拟地址对应的映射关系,由于转译后备缓冲器还未完成初始化,转译后备缓冲器中的页表项还未记录第一虚拟地址对应的映射关系,可以从内存中获取第一虚拟地址对应的第二映射关系,并确定出内存中记录第二映射关系的目标页表项在内存中的物理地址,然后将第二映射关系记录在转译后备缓冲器的页表项中,并将目标页表项在内存中的物理地址与转译后备缓冲器中记录第二映射关系的页表项进行关联存储,具体的,是将目标页表项在内存中的物理地址写入转译后备缓冲器中与记录第二映射关系的页表项对应的地址域中。
其中,还可以将目标页表项在内存中的物理地址存储在数据高速缓冲存储器的第二存储空间中。
在一些实施例中,数据更新装置还可以包括物理地址存储模块,物理地址存储模块具体包括用于组成数据高速缓冲存储器的第二存储空间的预设数量的寄存器,其中,预设数量可以与转译后备缓冲器中页表项的数量相同,预设数量的寄存器可以用于存储转译后备缓冲器中每个页表项在内存中的物理地址。
在本申请实施例中,第三初始化模块在将第二映射关系和目标页表项在内存中的物理地址存储在转译后备缓冲器中,并将目标页表项在内存中的物理地址存储在数据高速缓冲存储器的第二存储空间中时,可以用于:
(1)通过页表遍历单元读取内存中与第一虚拟地址对应的第二映射关系和目标页表项在内存中的物理地址;
(2)通过页表遍历单元将第二映射关系写入转译后备缓冲器的页表项中,将目标页表项在内存中的物理地址作为转译后备缓冲器中记录第二映射关系的页表项对应的第二物理地址,并将记录第二映射关系的页表项对应的第二物理地址与记录第二映射关系的页表项在转译后备缓冲器中关联存储;其中,关联存储可以是将记录第二映射关系的页表项对应的第二物理地址写入转译后备缓冲器中记录第二映射关系的页表项对应的地址域中;
(3)通过页表遍历单元将第二物理地址写入数据高速缓冲存储器的第二存储空间中;当数据高速缓冲存储器的第二存储空间由预设数量的寄存器组成时,可以通过存取单元将第二物理地址写入寄存器中。
在本申请实施例中,在进行转译后备缓冲器初始化时,由于转译后备缓冲器初始页表为空白页表,会持续发生转译后备缓冲器未命中,即针对每一虚拟地址,转译后备缓冲器首次接收到该虚拟地址时,均无法在转译后备缓冲器中查询到相关的映射关系,需要从内存中获取该虚拟地址对应的映射关系,并获取相应的第二物理地址与映射关系一起写入转译后备缓冲器中,第二物理地址会写入转译后备缓冲器中记录映射关系的页表项对应的地址域中。同时,会将该第二物理地址写入数据高速缓冲存储器的第二存储空间中。当转译后备缓冲器初始化完成时,转译后备缓冲器中的所有地址域里记录的第二物理地址均被写入数据高速缓冲存储器的第二存储空间中。
其中,由于内存在数据高速缓冲存储器(即dCache)的下游,当页表遍历单元需要从内存中读取第二映射关系时,会经过数据高速缓冲存储器,此时,数据高速缓冲存储器可以抓取页表遍历单元中的第二映射关系在内存中的存储地址(因为页表遍历单元需要从内存中读取第二映射关系,页表遍历单元中会存有第二映射关系在内存中的地址),并记录于高速缓冲存储器的寄存器中。页表遍历单元从内存中取出第二映射关系后,将第二映射关系和第二映射关系在内存中的存储地址写入转译后备缓冲器中。
作为一种可选的实施方式,第二存储空间可以包括预设数量的寄存器,并且预设数量与转译后备缓冲器中页表项的数量相等,寄存器与转译后备缓冲器中的页表项一一对应,每个寄存器分别记录了转译后备缓冲器中每个页表项对应的地址域中的第二物理地址。转译后备缓冲器初始化完成后,转译后备缓冲器的页表项中存储中了多个映射关系,针对每一映射关系,转译后备缓冲器中存在相应的地址域,用于存储该映射关系在内存中的存储地址。而高速缓冲存储器的寄存器中也相应存储了映射关系在内存中的存储地址,当寄存器的数量与转译后备缓冲器中页表项的数量一致时,寄存器中存储的地址与转译后备缓冲器地址域中存储的地址一一对应。
可以将第一映射关系对应的第一物理地址与数据高速缓存高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配,若第二存储空间存储的第二物理地址中包括第一物理地址,则可以通过数据高速缓冲存储器基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新。
在本申请的技术方案中,当第二存储空间存储的第二物理地址中包括第一物理地址时,说明转译后备缓冲器中的第二物理地址也包括第一物理地址,可以用转译后备缓冲器中的第二物理地址定位出转译后备缓冲器中需要更新的页表项,具体而言,转译后备缓冲器中与第一物理地址相同的第二物理地址对应的页表项即需要进行更新的页表项。
可选的,可以在转译后备缓冲器完成初始化之后,再对数据高速缓冲存储器的第二存储空间中的寄存器进行填写。具体的,寄存器可以只记录转译后备缓冲器初始化完成后,再次发生转译后备缓冲器未命中时,转译后备缓冲器从内存中获取到的新的映射关系在内存中对应的第二物理地址,即可以只记录转译后备缓冲器初始化完成后,再发生转译后备缓冲器未命中对应的第二物理地址,节省数据高速缓冲存储器中的计算资源和存储空间。
图4中展示出了本申请可选实施例中提供的一种数据更新装置的结构示意图,如图4所示,所述数据更新装置可以包括存取单元401、数据高速缓冲存储器402、内存管理单元403以及转译后备缓冲器404。可以在数据高速缓冲存储器和转译后备缓冲器之间建立数据通路,以实现本申请所提供的数据更新方法。
其中,内存管理单元可以包括页表遍历单元(page table walker,PTW),当指令访问一个虚拟地址,分段硬件(segmentation hardware)通过添加分段基地址(segmentbase)将虚拟地址转换成一个线性地址(linear address),然后可以由页表遍历单元接收线性地址并遍历页表树,生成相应的物理地址。
其余模块在前文中均有叙述,此处不再重复。
本申请实施例提供了一种数据更新方法,如图5所示,该方法包括:
步骤S501,当接收到映射关系更新指令时,确定映射关系更新指令对应的第一映射关系的第一物理地址;第一物理地址为内存中的映射关系更新后,第一映射关系在内存中的存储地址;
步骤S502,通过存取单元将第一物理地址以及第一映射关系写入数据高速缓冲存储器的第一存储空间中;
步骤S503,将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配;第二物理地址为转译后备缓冲器中每个页表项在内存中对应的存储地址,转译后备缓冲器中存储有转译后备缓冲器中每个页表项对应的第二物理地址;
步骤S504,若第二存储空间存储的第二物理地址中包括第一物理地址,则通过数据高速缓冲存储器基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新。
上述的数据更新方法,当接收到映射关系更新指令时,确定映射关系更新指令对应的第一映射关系的第一物理地址,通过存取单元LSU将第一物理地址以及第一映射关系写入数据高速缓冲存储器的第一内存空间中,然后将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配,若第二存储空间存储的第二物理地址中包括第一物理地址,则通过预先在数据高速缓冲存储器和转译后备缓冲器之间的数据通路,使数据高速缓冲存储器可以基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新,实现转译后备缓冲器中的映射关系与内存中的映射关系保持一致,提高了转译后备缓冲器页表项的更新效率,同时提升了处理器性能。
本申请实施例中提供的数据更新方法,该方法可以应用于任何基于上述映射关系来访问虚拟地址对应的物理地址的电子设备中,该电子设备可以包括但不限于终端、服务器等。本技术领域技术人员可以理解,这里所使用的“终端”可以是个人计算机、手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、MID(Mobile Internet Device,移动互联网设备)等。
在本申请实施例中,数据更新方法还包括:
获取第一数据处理请求,第一数据处理请求包含第一数据处理请求对应的第一虚拟地址;
在转译后备缓冲器中查找第一虚拟地址对应的第二映射关系;
若转译后备缓冲器中不存在第一虚拟地址对应的第二映射关系,则在内存中确定出第一虚拟地址对应的目标页表项,目标页表项是用于存储第二映射关系的页表项;
将第二映射关系和目标页表项在内存中的物理地址存储在转译后备缓冲器中,并将目标页表项在内存中的物理地址存储在数据高速缓冲存储器的第二存储空间中。
在本申请实施例中,将第二映射关系和目标页表项在内存中的物理地址存储在转译后备缓冲器中,并将目标页表项在内存中的物理地址存储在数据高速缓冲存储器的第二存储空间中,包括:
通过页表遍历单元读取内存中与第一虚拟地址对应的第二映射关系和目标页表项在内存中的物理地址;
通过页表遍历单元将第二映射关系写入转译后备缓冲器的页表项中,将目标页表项在内存中的物理地址作为转译后备缓冲器中记录第二映射关系的页表项对应的第二物理地址,并将记录第二映射关系的页表项对应的第二物理地址与记录第二映射关系的页表项在转译后备缓冲器中关联存储;
通过页表遍历单元将第二物理地址写入数据高速缓冲存储器的第二存储空间中。
在本申请实施例中,数据高速缓冲存储器的第二存储空间由预设数量的寄存器组成,预设数量与转译后备缓冲器中页表项的数量相同;方法,还包括:
将转译后备缓冲器中每个页表项在内存中的物理地址存储在第二存储空间的寄存器中。
在本申请实施例中,数据高速缓冲存储器和转译后备缓冲器之间存在数据通路;通过数据高速缓冲存储器基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新,包括:
通过数据通路,高速缓冲存储器将第一映射关系传输给转译后备缓冲器,以基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新。
本申请实施例中提供了一种可能的实现方式,将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配,可以包括如下步骤:将第一物理地址与数据高速缓冲存储器中预设数量的寄存器中存储的第二物理地址进行匹配。
同时,本申请提供的数据更新方法还可以包括:通过存取单元,将内存中的第一物理地址对应的页表项中的映射关系更新为第一映射关系。
具体的,当软件想要修改内存中的映射关系时,通过存取单元将新的映射关系(即第一映射关系)写入内存,由于内存在数据高速缓冲存储器下游,存取单元传入的映射关系以及映射关系在内存中的地址会经过数据高速缓冲存储器,可以将存取单元传入的该映射关系在内存中的地址(即第一物理地址)与数据高速缓冲存储器寄存器中的地址(即第二物理地址)进行匹配,若寄存器中存在与存取单元传入的地址相匹配的地址,则可以将存取单元传入的第一物理地址以及第一映射关系经过数据高速缓冲存储器后再传入内存,更改内存中第一物理地址对应的页表项中的映射关系。
在本申请实施例中,在数据高速缓冲存储器和转译后备缓冲器之间建立了数据通路,当地址匹配成功时,可以通过数据通路直接对转译后备缓冲器中需要更新的页表项进行更新,在具体应用场景中,转译后备缓冲器可能先于内存完成更新映射关系,本申请极大提升了对转译后备缓冲器的更新效率。
本申请实施例中还提供了另一种可能的实现方式,本申请所提供的数据更新方法,还可以包括如下步骤:
获取第二数据处理请求,第二数据处理请求包括第二数据处理请求对应的第二虚拟地址;
在转译后备缓冲器中查找第二虚拟地址对应的物理地址;
若转译后备缓冲器中存在第二虚拟地址对应的物理地址,则基于第二虚拟地址对应的物理地址获取第二数据处理请求对应的目标数据;
若转译后备缓冲器中不存在第二虚拟地址对应的物理地址,则从内存中获取第二虚拟地址对应的物理地址,基于内存中存储的第二虚拟地址对应的物理地址对第二数据处理请求进行处理。
第二数据处理请求可以包括读数据请求或者写数据请求,对第二数据处理请求进行相应的处理可以包括获取请求对应的数据或者在指定的内存空间写入相应的数据。
此外,可以将从内存中获取的第二虚拟地址对应的物理地址作为第一物理地址,将第一物理地址与数据高速缓存高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配,以执行本申请的数据更新方法,实现对转译后备缓冲器进行更新。
在本申请实施例中,若内存中不存在第二虚拟地址对应的物理地址,该方法还包括:
(1)从预设的存储设备中获取第二虚拟地址对应的缺页数据,将缺页数据存储在内存中,并建立第二虚拟地址对应的第三映射关系。其中,预设的存储设备可以是硬盘,当内存中不存在第二虚拟地址对应的物理地址时,则发生缺页异常(page fault),可以从硬盘中获取第二虚拟地址对应的缺页数据,将缺页数据存储在内存中,并通过MMU(MemoryManagement Unit,内存管理单元)建立第二虚拟地址对应的第三映射关系。
(2)在内存中增加新的页表项以记录第二虚拟地址对应的第三映射关系,将第三映射关系作为新增加的页表项所记录的第一映射关系。
在本申请实施例中,可以在内存中增加新的页表项记录第二虚拟地址对应的第三映射关系,也可以直接将内存中空白(或处于无效状态)的页表项中的数据更新为第三映射关系。可以将第三映射关系作为新增加的页表项记录的第一映射关系,当检测到内存中新增加的页表项时,确定出新增加的页表项在内存中的第一物理地址,并通过存取单元将第一物理地址以及新增加的页表项所记录的第一映射关系(即上文中的第三映射关系)写入数据高速缓存高速缓冲存储器的第一存储空间中。
将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配;第二物理地址为转译后备缓冲器转译后备缓冲器中每个页表项在内存中对应的存储地址,转译后备缓冲器中存储有转译后备缓冲器中每个页表项对应的第二物理地址。
若第二存储空间存储的第二物理地址中包括第一物理地址,则通过数据高速缓冲存储器基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新。
在一个示例中,可以通过仿真实验,比较现有技术方案中通过软件方式更新TLB所需的时钟周期和本申请提供的数据更新方法所需的时钟周期。比较结果如表1所示:
表1
其中,实现方案A为现有技术中通过软件方式更新TLB所需的时钟周期,实现方案B为本申请提供的数据更新方法所需的时钟周期。当内存中存在新的映射关系时,实现方案A中,若以最快的路径进行运算,软件处理之后,大概需要6个时钟周期能读取到内存中的映射关系。而本申请提供的数据更新方法,可以实现在2个时钟周期时就能读取到内存中新增的映射关系,提升了处理器性能。
在上述实施例中,当接收到映射关系更新指令时,确定映射关系更新指令对应的第一映射关系的第一物理地址,通过存取单元将第一物理地址以及第一映射关系写入数据高速缓冲存储器的第一内存空间中,然后将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配,若第二存储空间存储的第二物理地址中包括第一物理地址,则通过预先在数据高速缓冲存储器和转译后备缓冲器之间的数据通路,使数据高速缓冲存储器可以基于第一映射关系对转译后备缓冲器中第一物理地址对应的页表项记录的映射关系进行更新,实现转译后备缓冲器中的映射关系与内存中的映射关系保持一致,提高了转译后备缓冲器页表项的更新效率,同时提升了处理器性能。
为了更清楚阐释本申请的数据更新方法,以下将结合具体的可选实施例对数据更新方法进行进一步说明。
本可选实施例提供的数据更新方法,如图6所示,可以包括如下步骤:
步骤S601,获取第一数据处理请求,第一数据处理请求包含第一数据处理请求对应的第一虚拟地址;在TLB(转译后备缓冲器)中查找第一虚拟地址对应的第二映射关系;
步骤S602,当TLB中不存在第一虚拟地址对应的第二映射关系,则在内存中确定出第一虚拟地址对应的目标页表项;目标页表项是用于存储第二映射关系的页表项;
步骤S603,页表遍历单元PTW读取内存中与第一虚拟地址对应的第二映射关系和目标页表项在所述内存中的物理地址;
步骤S604,通过PTW将第二映射关系写入TLB的页表项中,将目标页表项在内存中的物理地址作为TLB中记录第二映射关系的页表项对应的第二物理地址,并将记录第二映射关系的页表项对应的第二物理地址与记录第二映射关系的页表项在TLB中关联存储;
步骤S605,通过PTW将第二物理地址写入数据高速缓冲存储器的第二存储空间中;数据高速缓冲存储器的第二存储空间可以由预设数量的寄存器组成,预设数量可以与TLB中页表项的数量相同;
步骤S606,当接收到映射关系更新指令时,确定所述映射关系更新指令对应的第一映射关系的第一物理地址;
步骤S607,通过存取单元LSU将第一物理地址以及新增加的页表项所记录的第一映射关系写入数据高速缓冲存储器的第一存储空间中;
步骤S608,将第一物理地址与数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配;第二物理地址为转译后备缓冲器TLB中每个页表项在内存中对应的存储地址,TLB中存储有TLB中每个页表项对应的第二物理地址;
步骤S609,若第二存储空间存储的第二物理地址中包括第一物理地址,则通过数据高速缓冲存储器基于第一映射关系对TLB中第一物理地址对应的页表项记录的映射关系进行更新;其中,数据高速缓冲存储器和TLB之间存在数据通路,可以通过数据通路,高速缓冲存储器将第一映射关系传输给TLB,以基于第一映射关系对TLB中第一物理地址对应的页表项记录的映射关系进行更新。
本申请实施例中提供了一种可能的实现方式,具体的,本申请所提供的数据更新方法可以包括如下步骤:
第一步,对TLB中的页表项进行初始化。
以如何将一个虚拟地址对应的映射关系记录进TLB中为例,假设存在虚拟地址A,首先,CPU向TLB发送虚拟地址A,因TLB还未完成初始化过程,将会发生TLB未命中。
CPU再将虚拟地址发送至PTW,PTW是内存管理单元的一部分,由PTW根据虚拟地址A从内存中取出虚拟地址A对应的映射关系,并将映射关系以及映射关系在内存中的物理地址写入TLB中。
具体的,由于内存在数据高速缓冲存储器(即dCache)的下游,当PTW需要从内存中取映射关系A时,经过数据高速缓冲存储器,此时,数据高速缓冲存储器可以抓取PTW中映射关系A在内存中的存储地址,并记录于高速缓冲存储器的寄存器中。PTW从内存中取出映射关系A后,将映射关系A和映射关系A在内存中的存储地址写入TLB中。
以此类推,针对每个TLB初始化时需要写入TLB中的映射关系可以按上述流程写入TLB,并且将该映射关系在内存中的存储地址写入TLB相应的地址域中,直到完成TLB初始化流程。
TLB初始化完成后,TLB的页表项中存储中了多个映射关系,针对每一映射关系,TLB中存在相应的地址域,用于存储该映射关系在内存中的存储地址。而高速缓冲存储器的寄存器中也相应存储了映射关系在内存中的存储地址,寄存器的数量与TLB中页表项的数量一致,寄存器中存储的地址与TLB地址域中存储的地址一一对应。
第二步,若软件想要修改内存中的映射关系,则需要通过LSU进行修改。
具体的,当软件想要修改内存中的映射关系时,通过LSU将新的映射关系写入内存,由于内存在数据高速缓冲存储器下游,LSU传入的映射关系以及映射关系在内存中的地址会经过数据高速缓冲存储器,可以将LSU传入的该映射关系在内存中的地址与数据高速缓冲存储器寄存器中的地址进行匹配,若寄存器中存在与LSU传入的地址相匹配的地址,则说明LSU中包含新的映射关系。LSU传入的地址以及映射关系经过数据高速缓冲存储器后更改内存中相应的映射关系。
第三步,通过数据高速缓冲存储器和TLB之间的数据通路,更新TLB中的映射关系。
具体的,当寄存器中存在与LSU传入的地址相匹配的地址时,说明LSU中包含新的映射关系。假设,寄存器中存在与LSU传入的地址一致的地址A,由于寄存器中存储的地址与TLB新增的地址域中存储的地址一一对应,可以根据地址A,确定出TLB中存储的哪个映射关系需要更新。可以通过数据高速缓冲存储器和TLB之间的数据通路,将TLB中在内存中的存储地址为地址A的映射关系更新为新的映射关系。
可以理解的是,本申请提出的数据更新方法,通过在数据高速缓冲存储器和TLB之间建立数据通路,直接由数据高速缓冲存储器将LSU传入的新的映射关系传输到TLB中,以实现对TLB进行及时的更新。相较于现有方案,本申请提出的数据更新方法避免了更新内存中的映射关系时,对TLB中的所有映射关系进行无效化,使TLB要重新录入所有映射关系,耗时较长,效率较低,实现了通过数据通路,快速地更新TLB中需要更新的映射关系,保持TLB中的映射关系与内存一致。
在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备7000包括:处理器7001和存储器7003。其中,处理器7001和存储器7003相连,如通过总线7002相连。可选地,电子设备7000还可以包括收发器7004,收发器7004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器7004不限于一个,该电子设备7000的结构并不构成对本申请实施例的限定。
处理器7001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器7001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线7002可包括一通路,在上述组件之间传送信息。总线7002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线7002可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器7003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器7003用于存储执行本申请实施例的计算机程序,并由处理器7001来控制执行。处理器7001用于执行存储器7003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于诸如移动电话、笔记本电脑、PAD等等移动终端以及诸如数字TV、台式计算机等等固定终端。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (11)
1.一种数据更新装置,其特征在于,包括:
确定模块,用于当接收到映射关系更新指令时,确定所述映射关系更新指令对应的第一映射关系的第一物理地址;所述第一物理地址为内存中的映射关系更新后,所述第一映射关系在内存中的存储地址;
存取单元,用于将所述第一物理地址以及所述第一映射关系写入数据高速缓冲存储器的第一存储空间中;
匹配模块,用于将所述第一物理地址与所述数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配;所述第二物理地址为转译后备缓冲器中每个页表项在所述内存中对应的存储地址,所述转译后备缓冲器中存储有所述转译后备缓冲器中每个页表项对应的第二物理地址;
更新模块,用于若所述第二物理地址中包括所述第一物理地址,则通过所述数据高速缓冲存储器基于所述第一映射关系对所述转译后备缓冲器中所述第一物理地址对应的页表项记录的映射关系进行更新。
2.根据权利要求1所述的装置,其特征在于,所述数据更新装置还包括:
第一初始化模块,用于获取第一数据处理请求,所述第一数据处理请求包含所述第一数据处理请求对应的第一虚拟地址;在所述转译后备缓冲器中查找所述第一虚拟地址对应的第二映射关系;
第二初始化模块,用于若所述转译后备缓冲器中不存在所述第一虚拟地址对应的第二映射关系,则在所述内存中确定出所述第一虚拟地址对应的目标页表项,所述目标页表项是用于存储所述第二映射关系的页表项;
第三初始化模块,用于将所述第二映射关系和所述目标页表项在所述内存中的物理地址存储在所述转译后备缓冲器中,并将所述目标页表项在所述内存中的物理地址存储在所述数据高速缓冲存储器的第二存储空间中。
3.根据权利要求1所述的装置,其特征在于,所述第三初始化模块在将所述第二映射关系和所述目标页表项在所述内存中的物理地址存储在所述转译后备缓冲器中,并将所述目标页表项在所述内存中的物理地址存储在所述数据高速缓冲存储器的第二存储空间中时,用于:
通过页表遍历单元读取所述内存中与所述第一虚拟地址对应的第二映射关系和所述目标页表项在所述内存中的物理地址;
通过所述页表遍历单元将所述第二映射关系写入所述转译后备缓冲器的页表项中,将所述目标页表项在所述内存中的物理地址作为所述转译后备缓冲器中记录所述第二映射关系的页表项对应的第二物理地址,并将记录所述第二映射关系的页表项对应的第二物理地址与所述记录所述第二映射关系的页表项在所述转译后备缓冲器中关联存储;
通过所述页表遍历单元将所述第二物理地址写入所述数据高速缓冲存储器的第二存储空间中。
4.根据权利要求1或2所述的装置,其特征在于,所述数据更新装置还包括物理地址存储模块,所述物理地址存储模块具体包括用于组成所述数据高速缓冲存储器的第二存储空间的预设数量的寄存器,所述预设数量与所述转译后备缓冲器中页表项的数量相同;
所述预设数量的寄存器用于存储所述转译后备缓冲器中每个页表项在所述内存中的物理地址。
5.根据权利要求1-3任一项所述的装置,其特征在于,所述更新模块具体包括:
设置在数据高速缓冲存储器和所述转译后备缓冲器之间的数据通路;通过所述数据通路,所述高速缓冲存储器将所述第一映射关系传输给所述转译后备缓冲器,以基于所述第一映射关系对所述转译后备缓冲器中所述第一物理地址对应的页表项记录的映射关系进行更新。
6.一种数据更新方法,其特征在于,包括:
当接收到映射关系更新指令时,确定所述映射关系更新指令对应的第一映射关系的第一物理地址;所述第一物理地址为内存中的映射关系更新后,所述第一映射关系在内存中的存储地址;
通过存取单元将所述第一物理地址以及所述第一映射关系写入数据高速缓冲存储器的第一存储空间中;
将所述第一物理地址与所述数据高速缓冲存储器的第二存储空间存储的第二物理地址进行匹配;所述第二物理地址为转译后备缓冲器中每个页表项在所述内存中对应的存储地址,所述转译后备缓冲器中存储有所述转译后备缓冲器中每个页表项对应的第二物理地址;
若所述第二存储空间存储的第二物理地址中包括所述第一物理地址,则通过所述数据高速缓冲存储器基于所述第一映射关系对所述转译后备缓冲器中所述第一物理地址对应的页表项记录的映射关系进行更新。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取第一数据处理请求,所述第一数据处理请求包含所述第一数据处理请求对应的第一虚拟地址;
在所述转译后备缓冲器中查找所述第一虚拟地址对应的第二映射关系;
若所述转译后备缓冲器中不存在所述第一虚拟地址对应的第二映射关系,则在所述内存中确定出所述第一虚拟地址对应的目标页表项,所述目标页表项是用于存储所述第二映射关系的页表项;
将所述第二映射关系和所述目标页表项在所述内存中的物理地址存储在所述转译后备缓冲器中,并将所述目标页表项在所述内存中的物理地址存储在所述数据高速缓冲存储器的第二存储空间中。
8.根据权利要求7所述的方法,其特征在于,所述将所述第二映射关系和所述目标页表项在所述内存中的物理地址存储在所述转译后备缓冲器中,并将所述目标页表项在所述内存中的物理地址存储在所述数据高速缓冲存储器的第二存储空间中,包括:
通过页表遍历单元读取所述内存中与所述第一虚拟地址对应的第二映射关系和所述目标页表项在所述内存中的物理地址;
通过所述页表遍历单元将所述第二映射关系写入所述转译后备缓冲器的页表项中,将所述目标页表项在所述内存中的物理地址作为所述转译后备缓冲器中记录所述第二映射关系的页表项对应的第二物理地址,并将记录所述第二映射关系的页表项对应的第二物理地址与所述记录所述第二映射关系的页表项在所述转译后备缓冲器中关联存储;
通过所述页表遍历单元将所述第二物理地址写入所述数据高速缓冲存储器的第二存储空间中。
9.根据权利要求6或7所述的方法,其特征在于,所述数据高速缓冲存储器的第二存储空间由预设数量的寄存器组成,所述预设数量与所述转译后备缓冲器中页表项的数量相同;所述方法,还包括:
将所述转译后备缓冲器中每个页表项在所述内存中的物理地址存储在所述第二存储空间的寄存器中。
10.根据权利要求6至8任一项所述的方法,其特征在于,所述数据高速缓冲存储器和所述转译后备缓冲器之间存在数据通路;所述通过所述数据高速缓冲存储器基于所述第一映射关系对所述转译后备缓冲器中所述第一物理地址对应的页表项记录的映射关系进行更新,包括:
通过所述数据通路,所述高速缓冲存储器将所述第一映射关系传输给所述转译后备缓冲器,以基于所述第一映射关系对所述转译后备缓冲器中所述第一物理地址对应的页表项记录的映射关系进行更新。
11.一种电子设备,包括如权利要求1-5任一项所述的数据更新装置,其特征在于,所述电子设备用于实现权利要求6-10任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111501504.8A CN114063934B (zh) | 2021-12-09 | 2021-12-09 | 数据更新装置、方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111501504.8A CN114063934B (zh) | 2021-12-09 | 2021-12-09 | 数据更新装置、方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114063934A true CN114063934A (zh) | 2022-02-18 |
CN114063934B CN114063934B (zh) | 2023-11-03 |
Family
ID=80229014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111501504.8A Active CN114063934B (zh) | 2021-12-09 | 2021-12-09 | 数据更新装置、方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114063934B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114647516A (zh) * | 2022-05-20 | 2022-06-21 | 沐曦集成电路(上海)有限公司 | 基于多输入单输出的fifo结构的gpu数据处理系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783912A (zh) * | 2016-08-26 | 2018-03-09 | 北京中科寒武纪科技有限公司 | 一种支持多数据流的tlb装置和tlb模块的更新方法 |
CN112540939A (zh) * | 2019-09-23 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 存储管理装置、存储管理方法、处理器和计算机系统 |
-
2021
- 2021-12-09 CN CN202111501504.8A patent/CN114063934B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783912A (zh) * | 2016-08-26 | 2018-03-09 | 北京中科寒武纪科技有限公司 | 一种支持多数据流的tlb装置和tlb模块的更新方法 |
CN112540939A (zh) * | 2019-09-23 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 存储管理装置、存储管理方法、处理器和计算机系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114647516A (zh) * | 2022-05-20 | 2022-06-21 | 沐曦集成电路(上海)有限公司 | 基于多输入单输出的fifo结构的gpu数据处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114063934B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210374069A1 (en) | Method, system, and apparatus for page sizing extension | |
US7089398B2 (en) | Address translation using a page size tag | |
US11474951B2 (en) | Memory management unit, address translation method, and processor | |
US9405703B2 (en) | Translation lookaside buffer | |
US20210089470A1 (en) | Address translation methods and systems | |
US5530823A (en) | Hit enhancement circuit for page-table-look-aside-buffer | |
US9996474B2 (en) | Multiple stage memory management | |
CN109219804B (zh) | 非易失内存访问方法、装置和系统 | |
US7472227B2 (en) | Invalidating multiple address cache entries | |
CN110196757A (zh) | 虚拟机的tlb填写方法、装置及存储介质 | |
US20220244870A1 (en) | Dynamic memory coherency biasing techniques | |
US8352709B1 (en) | Direct memory access techniques that include caching segmentation data | |
CN114328295A (zh) | 存储管理装置、处理器、相关装置和相关方法 | |
CN115481054A (zh) | 数据处理方法、装置及系统、系统级soc芯片及计算机设备 | |
WO2005078590A2 (en) | Address conversion technique in a context switching environment | |
CN114063934B (zh) | 数据更新装置、方法及电子设备 | |
JPH1091521A (ja) | 二重ディレクトリー仮想キャッシュ及びその制御方法 | |
US10140217B1 (en) | Link consistency in a hierarchical TLB with concurrent table walks | |
CN112631961B (zh) | 一种内存管理单元、地址转译方法以及处理器 | |
CN111966608A (zh) | 一种外存储器的直接内存储器访问方法和装置 | |
CN115080464B (zh) | 数据处理方法和数据处理装置 | |
US8788789B2 (en) | Power filter in data translation look-aside buffer based on an input linear address | |
CN116795740A (zh) | 数据存取方法、装置、处理器、计算机系统及存储介质 | |
JPH0266653A (ja) | ワンチップキャッシュメモリ | |
JPH0685155B2 (ja) | ワンチップキャッシュメモリ |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100176 Room 101, 1f, building 3, yard 18, Kechuang 10th Street, Beijing Economic and Technological Development Zone, Beijing Applicant after: Beijing yisiwei Computing Technology Co.,Ltd. Address before: 100176 Room 101, 1f, building 3, yard 18, Kechuang 10th Street, Beijing Economic and Technological Development Zone, Beijing Applicant before: Beijing yisiwei Computing Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |