CN107832238A - 一种基于龙芯处理器平台的高速缓存作内存的方法 - Google Patents

一种基于龙芯处理器平台的高速缓存作内存的方法 Download PDF

Info

Publication number
CN107832238A
CN107832238A CN201710928637.0A CN201710928637A CN107832238A CN 107832238 A CN107832238 A CN 107832238A CN 201710928637 A CN201710928637 A CN 201710928637A CN 107832238 A CN107832238 A CN 107832238A
Authority
CN
China
Prior art keywords
cache
internal memory
memory
shared buffer
code
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
Application number
CN201710928637.0A
Other languages
English (en)
Other versions
CN107832238B (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.)
Jiangsu Aerospace Dragon Dream Information Technology Co Ltd
Original Assignee
Jiangsu Aerospace Dragon Dream Information Technology 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 Jiangsu Aerospace Dragon Dream Information Technology Co Ltd filed Critical Jiangsu Aerospace Dragon Dream Information Technology Co Ltd
Priority to CN201710928637.0A priority Critical patent/CN107832238B/zh
Publication of CN107832238A publication Critical patent/CN107832238A/zh
Application granted granted Critical
Publication of CN107832238B publication Critical patent/CN107832238B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1054Address 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 physically addressed

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)
  • Multi Processors (AREA)

Abstract

本发明公开了一种基于龙芯处理器平台的高速缓存作内存的方法,依次包括以下步骤:S1、保证CPU的各个核的同步和互斥;S2、根据需要锁一定容量的共享缓存作为内存使用;S3、从ROM上复制UEFI的SEC和PEI阶段所属的代码到步骤S2设置好的作为内存使用的共享缓存中;S4、设置栈和堆,从汇编环境跳转到共享缓存作为内存中的C环境继续执行代码;S5、执行SEC和PEI的相关代码并初始化系统内存;S6、系统内存初始化完成后,在执行流程从PEI进入DXE之前,解锁被步骤S2锁定的作为内存使用的共享缓存区域。该方法在龙芯处理器平台实现将高速缓存作内存使用。

Description

一种基于龙芯处理器平台的高速缓存作内存的方法
技术领域
本发明涉及一种高速缓存作内存的方法,特别是涉及一种基于龙芯处理器平台的高速缓存作内存的方法。
背景技术
CPU启动时通常从ROM(此处泛指ROM,EPROM,EERPOM,NORFlash)上取指执行,在内存(RAM)被初始化为可用之前,CPU要执行的指令都是从ROM上去获取的。ROM的XIP(eXecuteIn Place)属性带来了一定的便利性,也就是ROM已经具有了一部分RAM的特性,它上面的内容是可以被当成指令由CPU读取直接执行的。不过,ROM的只读属性以及读取速度较慢的特性,也给承载在上面的指令的书写带了一定的限制。由于ROM是只读的,这意味着没法开辟栈和堆等来写更新,所以,指令没法用C语言来编写,而只能用跟CPU架构非常密切的汇编语言来编写。在汇编语言中,一些临时读写用的变量就用CPU的寄存器来实现。相比较C语言,汇编语言的缺陷如下:第一,代码的可移植性差,比如,为了让内存尽早能工作而进行的内存训练算法的指令系列,如果用汇编编写,那意味着对于不同的CPU架构,都要用对应的汇编语言重新一遍。而C语言实现的内存训练算法几乎可以不作修改或者很少修改而移植到新的CPU架构平台;第二,汇编语言中寄存器实现的变量的数据结构比较简单,所以要实现一些复杂的功能,要么几乎不可能,要么也是破费周折;第三,汇编语言寄存器的管理也要特别小心,特别是寄存器覆盖的问题,一不小心就会因为寄存器覆盖而产生逻辑错误并且难于找到原因。
高速缓存(CACHE)其主要作用就是解决CPU与RAM沟通时的速度瓶颈。CACHE的工作就是将RAM中最近读写的一部分数据保留一个备份,使得这些数据能快速存取并返回给CPU。这就涉及到CACHE与RAM的数据读写一致性的问题。读CACHE的时候,当需要的数据暂时不在CACHE时,通过一定的规则,从RAM中读取数据到CACHE中,如果碰到CACHE已满的情况,还得考虑如何无效并刷回合适的CACHE中的某些空间;写CACHE的时候,要考虑何时把对应的数据也同步到RAM上。而从可以存储数据并且可以直接跟CPU打交道这个特性而言,两者没有质的区别,只是容量大小与速度快慢的量的区别,这就给高速缓存作内存(Cache AsRam)创造了物理条件。当然,基于不同的CPU架构,实现Cache As Ram的方法是不同的。
在X86架构下,Cache As Ram的实现主要基于控制寄存器0(Control Register 0-CR0)的位30,该位根据X86的CPU手册可知,即为Cache Disable(CD)位。CR0.CD的值为0时,则Cache使能,处在普通的工作模式下,即当读写不命中Cache行时,就会访问内存,并且填充对应的Cache行;当没有空闲的Cache行可以用时,Cache行里的内容会被刷回内存从而被其它内容替换掉。CR0.CD的值为1时,则Cache禁止,处在Cache禁止填充的模式,即,当读写不命中Cache行时,就会访问内存,但不会把访问的内存内容填充到Cache行中;在此种模式下,Cache永远不会被替换到内存中。也就是在Cache禁止的模式下,其Cache的行为已经很接近RAM了,可以把它看做一小段RAM使用,这就为X86平台上的Cache As Ram的实现提供了物理基础。
龙芯架构的CPU的Cache As Ram实现的物理基础,以LS3A1500系列CPU为例说明。LS3A1500芯片处理器采用含有三级缓存的存储层次,根据各级缓存与处理器运算流水线的距离,由近及远,依次为:第一级的指令缓存(Instruction-Cache,I-Cache)和数据缓存(Data-Cache,D-Cache),第二级的牺牲缓存(Victim-Cache,V-Cache),第三级的共享缓存(Shared-Cache,S-Cache)。其中I-Cache、D-Cache和V-Cache为每个处理器核私有,S-Cache为多核及I/O共享。处理器核通过芯片内部及芯片之间的互联网络访问S-Cache。
I-Cache中只存放处理器取指部件所需访问的内容,D-Cache中只存放处理器访存部件所需访问的内容。V-Cache和S-Cache均为混合Cache,既存放指令也存放数据。
I-Cache及D-Cache中的内容与V-Cache中的内容为互斥(exclusive)关系,即同一物理地址的内容存放在I-Cache或D-Cache中时就不再存放在V-Cache中。I-Cache、D-Cache及V-Cache中的内容与S-Cache中的内容为包含(inclusive)关系,即同一物理地址的内容,只要其存放在I-Cache、D-Cache或V-Cache中,就一定在S-Cache中也能找到一个相同物理地址的备份。
共享缓存(S-Cache)单体容量为1MB,采用16路组相联结构。除了采用LRU算法选择替换项外,共享缓存还支持缓存锁机制。共有两种锁Cache方式:一种是利用Cache15指令锁住一个Cache行;另一种是利用芯片配置寄存器中的共享缓存锁窗口机制锁住成片的物理地址空间。被锁住的内容一旦存入共享缓存后将不会再被替换出去,除非出现下面两种情况:(1)16路S-Cache中与被锁住Cache行同Index的所有Cache行均处于“锁住”状态,则所有Cache行的锁视同无效,仍按照LRU算法挑选替换项;(2)软件用Cache指令无效被“锁住”的Cache行。两种锁机制各有优劣点:采用Cache15指令的优点是可以直接使用虚地址进行锁Cache操作,且如果数据不在S-Cache中会将待锁的Cache行取回至S-Cache中再锁住,缺点是Cache锁住与释放操作均需要逐Cache行进行,存在一定的开销;采用锁窗口机制的优点是配置一次(写3个锁窗口配置寄存器)就可以锁住一大片连续的地址空间(理论上不超过S-Cache容量的15/16,即3.75MB),缺点是配置必须采用物理地址信息,需要操作系统内核的特殊支持,而且配置完之后并不能保证数据一定在S-Cache中。
通过芯片配置寄存器空间可以对共享Cache模块内部的四组锁窗口寄存器进行动态配置,但必须保证16路共享Cache中一定有一路不被锁住。每组窗口的大小可以根据mask进行调整,但不能超过整个共享Cache大小的3/4。
对于LS3A1500而言,利用S-Cache提供的锁机制,实际上就等效的得到了最多3.75M可用的物理RAM。这个在诸如以LS3A1500CPU为基础的主板上,当适配UEFI固件时,其在SEC阶段,还没来得及用内存训练算法初始化好内存,而想有内存使用的情况下,这最多3.75M的Cache型内存对于对资源需求不多的UEFI的SEC阶段而言,是非常有用的。
发明内容
本发明的目的是提供一种基于龙芯处理器平台的高速缓存作内存的方法,在龙芯处理器平台实现将高速缓存作内存使用。
本发明技术方案如下:一种基于龙芯处理器平台的高速缓存作内存的方法,依次包括以下步骤:
S1、保证CPU的各个核的同步和互斥;
S2、根据需要锁一定容量的共享缓存作为内存使用;
S3、从ROM上复制UEFI的SEC和PEI阶段所属的代码到步骤S2设置好的作为内存使用的共享缓存中;
S4、设置栈和堆,从汇编环境跳转到共享缓存作为内存中的C环境继续执行代码;
S5、执行SEC和PEI的相关代码并初始化系统内存;
S6、系统内存初始化完成后,在执行流程从PEI进入DXE之前,解锁被步骤S2锁定的作为内存使用的共享缓存区域。
进一步的,所述步骤S1中采用查询各个核的协处理器判定各个核编号,确定主核及闲置核,实现同步和互斥。
进一步的,步骤S2中锁定的共享缓存的虚拟地址基址对应系统内存512M以上的物理地址。
进一步的,SEC和PEI的编译时采用非位置无关代码并指定代码的虚拟地址与所挪到的被步骤S2锁定的共享缓存中的位置对应,实现步骤S4从汇编环境到共享缓存的无缝跳转。
进一步的,在进行所述步骤S2前初始化共享缓存。
进一步的,所述步骤S5的相关代码包括CPU和南北桥初始化代码。
本发明所提供的技术方案的优点在于:实现了在龙芯处理器平台将高速缓存作内存使用,并且避免了宕机风险。
具体实施方式
下面结合实施例对本发明作进一步说明,但不作为对本发明的限定。
本发明所采用的硬件平台基于龙芯3A1500处理器,软件平台基于UEFI的UDK2015,官方的UDK2015并没有龙芯CPU所属的MIPS体系架构的支持,所以此处的UDK2015是在官方的基础上修改加入了支持MIPS体系架构的代码。
本发明的高速缓存作内存的方法在上述平台的具体步骤是这样的:
LS3A1500是单NODE四CORE结构的CPU,上电后每个CORE都会从物理地址0X1FC00000开始的空间(龙芯物理地址分配会把此地址映射到可XIP的FLASH ROM上)去取指运行。对于固件而言,总体其软件架构相对简单,用不到4个CORE来同时运行,所以,代码最早的工作就是选取一个CORE(一般为CORE0)作为主CORE来执行后续功能,而其他的CORE则进行闲置处理,等到进入内核后再释放这些闲置处理的CORE,参与到内核的工作中。这就是所谓的各个CORE之间的互斥与同步,基本的方法是采用查询各个CORE的协处理器,来判定各个CORE的编号从而分门别类的跑不同的分支即可。
LS3A1500型号的CPU,S-Cache不需要特别的初始化,所以前面提到的通用步骤中的S-Cache的初始化在基于LS3A1500的主板平台可以省略。
参照LS3A1500CPU手册,配置相应的寄存器来锁定某一地址开始的一段S-Cache作为RAM来使用。具体而言,实际的配置是锁定了虚拟地址从0x9800000410000000开始,结束于0x9800000410200000的2M的地址空间用作RAM。理论上讲,如果只考虑在此段锁定的虚拟地址所代表的S-Cache的空间里面运行,那么,这虚拟地址段的选择是可以任意的。但是考虑到当真正的系统RAM可用的时候,如果还需要用到此段地址里面的代码,那么当解锁此段S-Cache后,需要将此段S-Cache中的代码刷回到对应的真正的系统RAM中去,需要的时候,CPU再去从系统RAM读取到S-Cache执行。因此结合LS3A1500CPU手册,以及后续阶段的地址映射配置的代码,可以知道,虚拟地址0x9800000410000000~0x9800000410200000正好落入了系统RAM 512M以上到514M的内存空间。这么做的理由是,系统RAM的物理地址0到256M是给UDK2015的DXE阶段用的,256M以上物理地址空间,基于龙芯平台的UDK2015规划中可以不用,也就是256M内存基本够用了。所以,如果锁定的S-Cache的空间正好也映射到此段空间的话,那么当把它里面的内容刷回到系统RAM的时候,如果时机掌握的不好,很容易覆盖原来系统RAM上属于DXE阶段的内容,造成几乎是莫名其妙的错误。而系统RAM上物理地址是256M到512M是空的,当两个内存控制器上都有内存,并且内存型号一样时,考虑到内存性能的最大发挥的需要,会引入Interleave的做法,就是尽可能从两个控制器的内存条上同时存取内容,从而加快内存访问速度。但这有个潜在的问题,就是有可能造成本来想映射到256M到512M物理地址的虚拟地址有部分会映射到跟0到256M的物理地址上去,同样会造成潜在的此段空间的系统RAM内容被覆盖的问题,解决方法就是保留不用256M到512M的物理系统RAM空间。所以,被锁定的S-Cache要被映射到系统RAM的物理地址是512M以上了。考虑到现在市面上的内存条容量至少在1G及以上,选择512M到514M物理的地址系统RAM空间,几乎可以保证此空间不会落空,避免S-Cache上内容刷出去的时候由于访问不到物理内存实体而造成潜在的宕机风险。
锁定好上述的2M的S-Cache段使其具有RAM属性以后,把部分UDK2015代码(SEC&PEI阶段的代码,这两个阶段相对简单,所以代码量也少,小段S-Cache放得下)从FLASH ROM上拷贝到此S-Cache段。UDK2015的SEC和PEI的编译时采用非PIC(位置无关代码),在编译时就指定好了代码的虚拟地址,并且正好凑准所挪到的被锁定的S-Cache中的位置,这样就可以无缝跳转到S-Cache中去执行SEC的部分代码和几乎整个的PEI的代码。
设置好栈顶以及可用Cache As Ram的虚拟地址的基址(0x9800000410000000)和大小(2M),从汇编环境跳转到共享缓存作为内从中的C环境继续执行代码
执行在Cache As Ram中的SEC和PEI的相关C代码,这些代码因不同平台而异,但都至少包括主板平台的CPU和南北桥的初始化代码以及内存训练代码来初始化系统RAM,使得系统RAM尽快可以使用,毕竟Cache As Ram容量有点小,对于大内存需求的一些功能模块,必须要用到真正的系统RAM。
当系统RAM可以用以后,在执行流程从PEI进入DXE之前,解锁之前被锁定的S-Cache区域,以便后面系统的执行有足够的普通S-Cache可用,保证后续程序的执行速度。

Claims (6)

1.一种基于龙芯处理器平台的高速缓存作内存的方法,其特征在于,依次包括以下步骤:
S1、保证CPU的各个核的同步和互斥;
S2、根据需要锁一定容量的共享缓存作为内存使用;
S3、从ROM上复制UEFI的SEC和PEI阶段所属的代码到步骤S2设置好的作为内存使用的共享缓存中;
S4、设置栈和堆,从汇编环境跳转到共享缓存作为内存中的C环境继续执行代码;
S5、执行SEC和PEI的相关代码并初始化系统内存;
S6、系统内存初始化完成后,在执行流程从PEI进入DXE之前,解锁被步骤S2锁定的作为内存使用的共享缓存区域。
2.根据权利要求1所述的基于龙芯处理器平台的高速缓存作内存的方法,其特征在于,所述步骤S1中采用查询各个核的协处理器判定各个核编号,确定主核及闲置核,实现同步和互斥。
3.根据权利要求1所述的基于龙芯处理器平台的高速缓存作内存的方法,其特征在于,步骤S2中锁定的共享缓存的虚拟地址基址对应系统内存512M以上的物理地址。
4.根据权利要求1所述的基于龙芯处理器平台的高速缓存作内存的方法,其特征在于,SEC和PEI的编译时采用非位置无关代码并指定代码的虚拟地址与所挪到的被步骤S2锁定的共享缓存中的位置对应,实现步骤S4从汇编环境到共享缓存的无缝跳转。
5.根据权利要求1所述的基于龙芯处理器平台的高速缓存作内存的方法,其特征在于,在进行所述步骤S2前初始化共享缓存。
6.根据权利要求1所述的基于龙芯处理器平台的高速缓存作内存的方法,其特征在于,所述步骤S5的相关代码包括CPU和南北桥初始化代码。
CN201710928637.0A 2017-10-09 2017-10-09 一种基于龙芯处理器平台的高速缓存作内存的方法 Active CN107832238B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710928637.0A CN107832238B (zh) 2017-10-09 2017-10-09 一种基于龙芯处理器平台的高速缓存作内存的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710928637.0A CN107832238B (zh) 2017-10-09 2017-10-09 一种基于龙芯处理器平台的高速缓存作内存的方法

Publications (2)

Publication Number Publication Date
CN107832238A true CN107832238A (zh) 2018-03-23
CN107832238B CN107832238B (zh) 2021-08-31

Family

ID=61647924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710928637.0A Active CN107832238B (zh) 2017-10-09 2017-10-09 一种基于龙芯处理器平台的高速缓存作内存的方法

Country Status (1)

Country Link
CN (1) CN107832238B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109240847A (zh) * 2018-09-27 2019-01-18 郑州云海信息技术有限公司 一种post过程中内存错误上报方法、装置、终端及存储介质
CN109725943A (zh) * 2018-12-27 2019-05-07 龙芯中科技术有限公司 一种程序跳转方法、装置、电子设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101571843A (zh) * 2008-04-29 2009-11-04 国际商业机器公司 在多核处理器中动态共享高速缓存的方法、设备和系统
CN1894662B (zh) * 2002-11-15 2010-05-26 英特尔公司 作为用于执行引导码的ram的处理器缓存存储器
CN102169446A (zh) * 2011-05-16 2011-08-31 北京北大众志微系统科技有限责任公司 一种基于开源系统基本输入输出系统的bios系统和方法
CN103034510A (zh) * 2012-10-26 2013-04-10 中国航天科工集团第二研究院七〇六所 可按需要动态调整的uefi bios快速安全启动方法
CN103377063A (zh) * 2012-04-28 2013-10-30 国际商业机器公司 从遗留操作系统环境恢复到uefi预启动环境的方法和系统
CN103473095A (zh) * 2013-09-10 2013-12-25 江苏中科梦兰电子科技有限公司 Cpu二级缓存的加速初始化方法
US20140325197A1 (en) * 2013-04-25 2014-10-30 Insyde Software Corp. Specialized boot path for speeding up resume from sleep state
CN105302765A (zh) * 2014-07-22 2016-02-03 电信科学技术研究院 一种系统级芯片及其内存访问管理方法
CN105814548A (zh) * 2014-07-14 2016-07-27 上海兆芯集成电路有限公司 具有使用不同编索引方案的主高速缓存器和溢出高速缓存器的高速缓存器系统
US9563437B2 (en) * 2014-06-27 2017-02-07 Intel Corporation Technologies for pre-memory phase initialization of a computing device
CN106471478A (zh) * 2014-06-24 2017-03-01 Arm 有限公司 用于在非易失性数据存储设备内以原子的方式执行多个写事务的设备控制器和方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1894662B (zh) * 2002-11-15 2010-05-26 英特尔公司 作为用于执行引导码的ram的处理器缓存存储器
CN101571843A (zh) * 2008-04-29 2009-11-04 国际商业机器公司 在多核处理器中动态共享高速缓存的方法、设备和系统
CN102169446A (zh) * 2011-05-16 2011-08-31 北京北大众志微系统科技有限责任公司 一种基于开源系统基本输入输出系统的bios系统和方法
CN103377063A (zh) * 2012-04-28 2013-10-30 国际商业机器公司 从遗留操作系统环境恢复到uefi预启动环境的方法和系统
CN103034510A (zh) * 2012-10-26 2013-04-10 中国航天科工集团第二研究院七〇六所 可按需要动态调整的uefi bios快速安全启动方法
US20140325197A1 (en) * 2013-04-25 2014-10-30 Insyde Software Corp. Specialized boot path for speeding up resume from sleep state
CN103473095A (zh) * 2013-09-10 2013-12-25 江苏中科梦兰电子科技有限公司 Cpu二级缓存的加速初始化方法
CN106471478A (zh) * 2014-06-24 2017-03-01 Arm 有限公司 用于在非易失性数据存储设备内以原子的方式执行多个写事务的设备控制器和方法
US9563437B2 (en) * 2014-06-27 2017-02-07 Intel Corporation Technologies for pre-memory phase initialization of a computing device
CN105814548A (zh) * 2014-07-14 2016-07-27 上海兆芯集成电路有限公司 具有使用不同编索引方案的主高速缓存器和溢出高速缓存器的高速缓存器系统
CN105302765A (zh) * 2014-07-22 2016-02-03 电信科学技术研究院 一种系统级芯片及其内存访问管理方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GJQ_1988: "(转)UEFI系统的启动过程", 《HTTPS://BLOG.CSDN.NET》 *
王锴等: "HyperSpector:基于UEFI的VMM动态可信监控基的设计与实现", 《网络与信息安全学报》 *
韩德强等: "《基于ARM平台的UEFI开发与移植》", 《电子技术应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109240847A (zh) * 2018-09-27 2019-01-18 郑州云海信息技术有限公司 一种post过程中内存错误上报方法、装置、终端及存储介质
CN109725943A (zh) * 2018-12-27 2019-05-07 龙芯中科技术有限公司 一种程序跳转方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN107832238B (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
US9405595B2 (en) Synchronizing multiple threads efficiently
US10403333B2 (en) Memory controller with flexible address decoding
US7426626B2 (en) TLB lock indicator
CN102841865B (zh) 高性能缓存系统和方法
US5276833A (en) Data cache management system with test mode using index registers and CAS disable and posted write disable
CN101111819B (zh) 用于页内程序计数器相对或绝对地址转移指令的转换后备缓冲器(tlb)访问抑制
CN101425020A (zh) 对mmu仿真进行加速的方法、装置和全系统仿真器
US8499123B1 (en) Multi-stage pipeline for cache access
US8359438B2 (en) Memory banking system and method to increase memory bandwidth via parallel read and write operations
US20200250364A1 (en) Address Generators for Verifying Integrated Circuit Hardware Designs for Cache Memory
CN102662869B (zh) 虚拟机中的内存访问方法和装置及查找器
CN107111550A (zh) 通过选择性页遗漏转换预取隐藏程序存储器控制器中转换遗漏时延
CN107851037A (zh) 在使用带锁定和未锁定的非易失存储器的共享存储器中的硬件事务存储的一致性协议
CN107704324B (zh) 一种面向多核确定性的基于硬件的内存隔离方法
CN109582214A (zh) 数据访问方法以及计算机系统
TW201945940A (zh) 隨機標籤設定指令
CN107832238A (zh) 一种基于龙芯处理器平台的高速缓存作内存的方法
US9268714B2 (en) Validation of cache locking using instruction fetch and execution
Petrov et al. Towards effective embedded processors in codesigns: customizable partitioned caches
Van Lunteren et al. Coherently attached programmable near-memory acceleration platform and its application to stencil processing
CN107977577A (zh) 访存指令访问检测方法及装置
CN109408301A (zh) 一种pmon下基于龙芯64位处理器的内存测试方法
van Schaik et al. Reverse engineering hardware page table caches using side-channel attacks on the mmu
Starostin et al. Correct microkernel primitives
CN113986775A (zh) 一种risc-v cpu验证中页表项生成方法、系统及装置

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