CN104991869B - 一种微处理器存储管理方法 - Google Patents

一种微处理器存储管理方法 Download PDF

Info

Publication number
CN104991869B
CN104991869B CN201510460340.7A CN201510460340A CN104991869B CN 104991869 B CN104991869 B CN 104991869B CN 201510460340 A CN201510460340 A CN 201510460340A CN 104991869 B CN104991869 B CN 104991869B
Authority
CN
China
Prior art keywords
page
address
page table
register
table entry
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.)
Expired - Fee Related
Application number
CN201510460340.7A
Other languages
English (en)
Other versions
CN104991869A (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.)
Suzhou Xunsheng Information Technology Co ltd
Original Assignee
Chengdu Teng Yue Science And Technology 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 Chengdu Teng Yue Science And Technology Ltd filed Critical Chengdu Teng Yue Science And Technology Ltd
Priority to CN201510460340.7A priority Critical patent/CN104991869B/zh
Publication of CN104991869A publication Critical patent/CN104991869A/zh
Priority to PCT/CN2016/078067 priority patent/WO2017020600A1/zh
Application granted granted Critical
Publication of CN104991869B publication Critical patent/CN104991869B/zh
Expired - Fee Related 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

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

本发明公开了一种微处理器存储管理方法,每当进程引用逻辑地址,存储管理单元就到缓存索引存储单元中去查找,自动地先在"快表"中进行查表,如果找到则变换该片上缓存地址,如果没有找到则执行地址转换操作;将页帧号与逻辑地址中最后13位相加,得到物理地址,如果该物理地址在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,虚拟地址转换成功,如果该物理地址不在开始地址寄存器与结束地址寄存器范围内,微处理器产生地址转换出界异常。本发明提供了一种微处理器存储管理方法,加快了逻辑地址到物理地址的转换速度,操作***通过设置多任务保护开始地址寄存器与多任务保护结束地址寄存器,可防止用户程序的非法访问。

Description

一种微处理器存储管理方法
技术领域
本发明涉及一种微处理器存储管理方法。
背景技术
虚拟内存技术是对整个内存的抽象描述,可以理解成处理器为用户程序提供的虚拟地址的总和,相对于物理内存而言,它并不“真实的”存在,是因为现代操作***都提供了一种内存管理的抽象,即虚拟内存(virtual memory)。进程使用虚拟内存中的地址,由操作***协助相关硬件,把它“转换”成真正的物理地址。有了这样的抽象,一个进程就可以使用比真实物理地址大得多的地址空间,甚至多个进程可以使用相同的地址。
现实的计算机设备所拥有的主存是有限的,通过存储管理单元可以使进程拥有巨大逻辑地址。逻辑地址(logical address)指的是机器语言指令中,用来指定一个操作数或者是一条指令的地址。物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽象,内存的寻址方式并不是这样。所以,说它是“与地址总线相对应”更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。
目前的CPU储存管理单元大多采用分页管理,或者分段管理,或者二者兼而有之。大部分CPU使用分页存储管理,程序使用的逻辑地址需要转换成物理地址,在逻辑地址到物理地址的转换中会花费大量的CPU时钟周期。
发明内容
本发明的目的在于克服现有技术的不足,提供一种新型的微处理器存储管理方法,加快逻辑地址到物理地址的转换,操作***通过设置多任务保护开始地址寄存器与多任务保护结束地址寄存器,以防止用户程序的非法访问。
本发明的目的是通过以下技术方案来实现的:一种微处理器存储管理方法,页表属性如下:
所述微处理器的寄存器页长度为64位,高11位保留,中间40位为页帧号,低13位为页表属性项;
其中,第42-13位:页表索引在物理地址,即页帧号;
第12-1位:保留***使用;
第0位:页存在位p;
当页存在位P=0时,表示页不在内存中,留给操作***使用,用于定位到磁盘上页面的位置,若访问P=0的页面,则引发"缺页错误",由中断处理程序负责将磁盘上的页调入内存后,原进程才能继续运行;当页存在位P=1时,表示该页能够向物理地址转换;
在页表转换时需要用到的寄存器:
进程标识符寄存器:进程标识符由一个10位长的字段组成,由***为每一个进程机械地分配;操作***通过为每一个进程分配不同的进程标识符,存储管理单元在进行逻辑地址到物理地址转换时进程标识符第9位到0位在页目录寄存器所指示的页目录表中找到对应的页表项;
多任务保护开始地址寄存器:用于存放存储管理单元进行虚拟地址转换时最小的物理地址,多任务保护开始地址寄存器只能被核心程序访问和设置,非核心程序的访问和设置会使微处理器产生异常;
多任务保护结束地址寄存器:用于存放存储管理单元进行虚拟地址转换时最大的物理地址,多任务保护结束地址寄存器只能被核心程序访问和设置,非核心程序的访问和设置会使微处理器产生异常;
多任务保护使能寄存器:当该寄存器置位在地址转换时,存储管理单元会判断物理地址是不是在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,当存储管理单元把虚拟地址向物理地址转换时,存储管理单元会检测物理地址是否在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,否则产生页出界异常;
存储管理单元属性寄存器:该寄存器只能被程序读,而不能被更改,它反映的是微处理器使用的存储管理单元的版本号及功能数据;
页目录寄存器:用于存放页目录所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的页目录,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,***能够使用页面交换指令把需要的页面放到片上的缓存地址;
三级页表寄存器:用于存放三级页表所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的三级页表,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,***能够使用页面交换指令把需要的页面放到片上的缓存地址;
二级页表寄存器:用于存放二级页表所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的二级页表,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,***能够使用页面交换指令把需要的页面放到片上的缓存地址;
一级页表寄存器:用于存放一级页表所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的一级页表,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,***能够使用页面交换指令把需要的页面放到片上的缓存地址;
缓存索引存储单元:在微处理器核心每一级缓存的开始位置,设置一定数量的片上全相连映像与变换,能够进行全相连映像与变换并且该页面的内容能够被程序更改和访问,程序能够使用页面交换指令把需要的页面放到片上的缓存地址,然后使用片上存取指令将页面的值放到全相连查找单元对应项中,这样就能够使微处理器在虚拟地址转换时浪费更少的微处理器时钟周期,核心程序将地址转换经常用到的页目录和最近将要用的页表放到其中,能够使微处理器减少等待的时间;
缓存:缓存单元能够使用片上存取指令更改和访问,也能够使用页面交换指令把需要的页面放到片上的缓存地址或者主存中,操作***把即将需要使用到的页面通过页面交换指令放到片上,或者将该页面使用缓存交换指令放到主存中;
逻辑地址转换成物理地址的过程:
(1)每当进程引用一个逻辑地址,存储管理单元就到缓存索引存储单元中去查找,由存储管理单元自动地先在"快表"中进行查表,如果找到则变换该片上缓存地址,如果没有找到则执行逻辑地址转换成物理地址的操作;
(2)在分页机制下,每一个活动的进程,因为都使用其独立的逻辑地址,那么需要将它的页目录地址放到页目录寄存器中,然后建立起页目录表,需将该页目录表放到页目录缓存索引存储单元中;
(3)根据进程标识符第9位到0位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到三级页表地址;
(4)将找到的三级页表地址与三级页表寄存器比较,如果相同,则根据逻辑地址第42位到33位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到二级页表;
如果不相同,则根据三级页表地址到主存寻找,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到二级页表;
(5)将找到的二级页表地址与二级页表寄存器比较,如果相同,则根据逻辑地址第32位到23位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到一级页表;
如果不相同,则根据二级页表地址到主存寻找,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到一级页表;
(6)将找到的一级页表地址与一级页表寄存器比较,如果相同,则根据逻辑地址第22位到13位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为物理页帧号;
如果不相同,则根据一级页表地址到主存寻找,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为物理页帧号;
(7)将物理页帧号与逻辑地址中最后13位相加,得到物理地址,如果该物理地址在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,虚拟地址转换成功,如果该物理地址不在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,微处理器产生地址转换出界异常。
本发明的有益效果是:
1)传统处理器片上缓存的地址对程序并不是透明的,而本发明片上缓存的地址对程序透明,能够使程序更有效预测即将使用的数据。
2)大量使用片上缓存(cache),可以减少逻辑地址到物理地址的转换所花费的CPU时钟。储存管理单元把物理内存、片上cache分成页面相同大小的存储块管理单位,称为页,或者页面,逻辑地址变换可以将进程之间相互重叠的“逻辑地址”变换到不同的“物理地址”,从而避免了真正意义上的地址“冲突”,实现了进程之间的相互隔离。此外还能实现其它很多好处,因此现有操作***都采用地址变换进行内存管理,CPU内部为分页机制提供了硬件支持,以加快变换速度。操作***为进程建立从逻辑地址页到物理地址页的变换关系表,中间用到4种逻辑表,分别称为页目录,三级页表,二级页表和一级页表,表的大小都是8kb个字节。为了提高地址变换速度,在地址变换机构中增设一个具有并行查寻能力的特殊高速缓冲寄存器,称为"联想寄存器"(TLB,Translation Lookaside Buffer),用以存放当前片上存放的页。此时的地址变换过程是:在CPU给出逻辑地址后,由地址变换机构自动地先在"快表"中进行查表转换,若转换成功,则称为"命中",目前的"命中"率高达90%以上,使分页机制带来的性能损失降低到了可接收的程度。若在"快表"中进行查表转换失败,则进行一般的地址变换,概率小于10%。它的长度都是取2的13次方个字节,每一个页表项的长度都是64位,存储管理单元负责把一个逻辑地址最终翻译为一个物理地址。现有计算机CPU和主存之间在速度上存在的巨大差异,而存储管理单元把逻辑地址转换成物理地址,会多次的访问主存,从而花费大量的CPU时钟等待,所以在CPU和主存之间设置了一个高速、小容量(相对于主存)的缓存(cache),对于提高整个计算机性能有着重要的意义。
具体实施方式
下面进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
一种微处理器存储管理方法,页表属性如下:
所述微处理器的寄存器页长度为64位,高11位保留,中间40位为页帧号,低13位为页表属性项;
其中,第42-13位:页表索引在物理地址,即页帧号;
第12-1位:保留***使用;
第0位:页存在位p;
当页存在位P=0时,表示页不在内存中,留给操作***使用,用于定位到磁盘上页面的位置,若访问P=0的页面,则引发"缺页错误",由中断处理程序负责将磁盘上的页调入内存后,原进程才能继续运行;当页存在位P=1时,表示该页能够向物理地址转换;
在页表转换时需要用到的寄存器:
进程标识符寄存器:在该版本的进程标识符由一个10位长的字段组成,由***为每一个进程机械地分配;操作***通过为每一个进程分配不同的进程标识符,存储管理单元在进行逻辑地址到物理地址转换时进程标识符第9位到0位在页目录寄存器所指示的页目录表(页目录缓存索引存储单元)中找到对应的页表项;
多任务保护开始地址寄存器:用于存放存储管理单元进行虚拟地址转换时最小的物理地址,多任务保护开始地址寄存器只能被核心程序访问和设置,非核心程序的访问和设置会使微处理器产生异常;
多任务保护结束地址寄存器:用于存放存储管理单元进行虚拟地址转换时最大的物理地址,多任务保护结束地址寄存器只能被核心程序访问和设置,非核心程序的访问和设置会使微处理器产生异常;
多任务保护使能寄存器:当该寄存器置位在地址转换时,存储管理单元会判断物理地址是不是在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,当存储管理单元把虚拟地址向物理地址转换时,存储管理单元会检测物理地址是否在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,否则产生页出界异常;
存储管理单元属性寄存器:该寄存器只能被程序读,而不能被更改,它反映的是微处理器使用的存储管理单元的版本号、功能等数据;
页目录寄存器:用于存放页目录所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的页目录,其有一定数量的单位页面(8kb),并且该页面的内容能够被程序更改和访问(可以使用片上存取指令更改和访问),***能够使用页面交换指令把需要的页面放到片上的缓存地址;
三级页表寄存器:用于存放三级页表所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的三级页表,其有一定数量的单位页面(8kb),并且该页面的内容能够被程序更改和访问(可以使用片上存取指令更改和访问),***能够使用页面交换指令把需要的页面放到片上的缓存地址;
二级页表寄存器:用于存放二级页表所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的二级页表,其有一定数量的单位页面(8kb),并且该页面的内容能够被程序更改和访问(可以使用片上存取指令更改和访问),***能够使用页面交换指令把需要的页面放到片上的缓存地址;
一级页表寄存器:用于存放一级页表所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的一级页表,其有一定数量的单位页面(8kb),并且该页面的内容能够被程序更改和访问(可以使用片上存取指令更改和访问),***能够使用页面交换指令把需要的页面放到片上的缓存地址;
缓存索引存储单元:在微处理器核心每一级缓存的开始位置,设置一定数量的片上全相连映像与变换,能够进行全相连映像与变换并且该页面的内容能够被程序更改和访问,程序能够使用页面交换指令把需要的页面放到片上的缓存地址(传统处理器在片上的缓存的地址对程序并不是透明的,而我们在该处理器中对程序透明可以使程序更有效预测即将使用的数据),然后使用片上存取指令将页面的值放到全相连查找单元对应项中,这样就能够使微处理器在虚拟地址转换时浪费更少的微处理器时钟周期,核心程序将地址转换经常用到的页目录和最近将要用的页表放到其中,能够使微处理器减少等待的时间;
缓存:缓存单元能够使用片上存取指令更改和访问,也能够使用页面交换指令把需要的页面放到片上的缓存地址或者主存中,操作***把即将需要使用到的页面通过页面交换指令放到片上,或者将该页面使用缓存交换指令放到主存中;
逻辑地址转换成物理地址的过程:
(1)每当进程引用一个逻辑地址,存储管理单元就到缓存索引存储单元中去查找,由存储管理单元自动地先在"快表"中进行查表,如果找到则变换该片上缓存地址,如果没有找到则执行逻辑地址转换成物理地址的操作;
(2)在分页机制下,每一个活动的进程,因为都使用其独立的逻辑地址,那么需要将它的页目录地址放到页目录寄存器中,然后建立起页目录表,需将该页目录表放到页目录缓存索引存储单元中;(处理器使用分页模式时页目录可以是唯一的,也可以有多个页目录,但是我们使用多张页目录会产生一个严重的问题:在进程或者现场切换的时候会将处理器的片上的缓存全部更新,不然会产生无法预测的错误。同时处理器会花费大量的处理器时钟周期,所以我们更多的是希望使用单张一页目录表)。
(3)根据进程标识符第9位到0位在页目录寄存器所指示的页目录表(页目录缓存索引存储单元)中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到三级页表地址;
(4)将找到的三级页表地址与三级页表寄存器比较,如果相同,则根据逻辑地址第42位到33位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到二级页表;
如果不相同,则根据三级页表地址到主存寻找,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到二级页表;
(5)将找到的二级页表地址与二级页表寄存器比较,如果相同,则根据逻辑地址第32位到23位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到一级页表;
如果不相同,则根据二级页表地址到主存寻找,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到一级页表;
(6)将找到的一级页表地址与一级页表寄存器比较,如果相同,则根据逻辑地址第22位到13位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为物理页帧号。
如果不相同,则根据一级页表地址到主存寻找,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为物理页帧号。
(7)将物理页帧号与逻辑地址中最后13位相加,得到物理地址,如果该物理地址在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,虚拟地址转换成功,如果该物理地址不在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,微处理器产生地址转换出界异常。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (1)

1.一种微处理器存储管理方法,其特征在于:
页表属性如下:
所述微处理器的寄存器页长度为64位,高11位保留,中间40位为页帧号,低13位为页表属性项;
其中,第42-13位:页表索引在物理地址,即页帧号;
第12-1位:保留***使用;
第0位:页存在位p;
当页存在位P=0时,表示页不在内存中,留给操作***使用,用于定位到磁盘上页面的位置,若访问P=0的页面,则引发"缺页错误",由中断处理程序负责将磁盘上的页调入内存后,原进程才能继续运行;当页存在位P=1时,表示该页能够向物理地址转换;
在页表转换时需要用到的寄存器:
进程标识符寄存器:进程标识符由一个10位长的字段组成,由***为每一个进程机械地分配;操作***通过为每一个进程分配不同的进程标识符,存储管理单元在进行逻辑地址到物理地址转换时进程标识符第9位到0位在页目录寄存器所指示的页目录表中找到对应的页表项;
多任务保护开始地址寄存器:用于存放存储管理单元进行虚拟地址转换时最小的物理地址,多任务保护开始地址寄存器只能被核心程序访问和设置,非核心程序的访问和设置会使微处理器产生异常;
多任务保护结束地址寄存器:用于存放存储管理单元进行虚拟地址转换时最大的物理地址,多任务保护结束地址寄存器只能被核心程序访问和设置,非核心程序的访问和设置会使微处理器产生异常;
多任务保护使能寄存器:当该寄存器置位在地址转换时,存储管理单元会判断物理地址是不是在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,当存储管理单元把虚拟地址向物理地址转换时,存储管理单元会检测物理地址是否在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,否则产生页出界异常;
存储管理单元属性寄存器:该寄存器只能被程序读,而不能被更改,它反映的是微处理器使用的存储管理单元的版本号及功能数据;
页目录寄存器:用于存放页目录所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的页目录,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,***能够使用页面交换指令把需要的页面放到片上的缓存地址;
三级页表寄存器:用于存放三级页表所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的三级页表,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,***能够使用页面交换指令把需要的页面放到片上的缓存地址;
二级页表寄存器:用于存放二级页表所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的二级页表,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,***能够使用页面交换指令把需要的页面放到片上的缓存地址;
一级页表寄存器:用于存放一级页表所在的物理地址,该寄存器控制着微处理器核心的0级缓存,该缓存存放着当前CPU在使用的一级页表,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,***能够使用页面交换指令把需要的页面放到片上的缓存地址;
缓存索引存储单元:在微处理器核心每一级缓存的开始位置,设置一定数量的片上全相连映像与变换,能够进行全相连映像与变换并且该页面的内容能够被程序更改和访问,程序能够使用页面交换指令把需要的页面放到片上的缓存地址,然后使用片上存取指令将页面的值放到全相连查找单元对应项中,这样就能够使微处理器在虚拟地址转换时浪费更少的微处理器时钟周期,核心程序将地址转换经常用到的页目录和最近将要用的页表放到其中,能够使微处理器减少等待的时间;
缓存:缓存单元能够使用片上存取指令更改和访问,也能够使用页面交换指令把需要的页面放到片上的缓存地址或者主存中,操作***把即将需要使用到的页面通过页面交换指令放到片上,或者将该页面使用缓存交换指令放到主存中;
逻辑地址转换成物理地址的过程:
(1)每当进程引用一个逻辑地址,存储管理单元就到缓存索引存储单元中去查找,由存储管理单元自动地先在"快表"中进行查表,如果找到则变换该片上缓存地址,如果没有找到则执行逻辑地址转换成物理地址的操作;
(2)在分页机制下,每一个活动的进程,因为都使用其独立的逻辑地址,那么需要将它的页目录地址放到页目录寄存器中,然后建立起页目录表,需将该页目录表放到页目录缓存索引存储单元中;
(3)根据进程标识符第9位到0位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到三级页表地址;
(4)将找到的三级页表地址与三级页表寄存器比较,如果相同,则根据逻辑地址第42位到33位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到二级页表;
如果不相同,则根据三级页表地址到主存寻找,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到二级页表;
(5)将找到的二级页表地址与二级页表寄存器比较,如果相同,则根据逻辑地址第32位到23位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到一级页表;
如果不相同,则根据二级页表地址到主存寻找,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为页帧号,找到一级页表;
(6)将找到的一级页表地址与一级页表寄存器比较,如果相同,则根据逻辑地址第22位到13位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为物理页帧号;
如果不相同,则根据一级页表地址到主存寻找,如果页表项的第0位为0,表示该页表项无效,微处理器发出页不存在异常,由操作***来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第0位为1,则把找到的页表项高32位作为物理页帧号;
(7)将物理页帧号与逻辑地址中最后13位相加,得到物理地址,如果该物理地址在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,虚拟地址转换成功,如果该物理地址不在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,微处理器产生地址转换出界异常。
CN201510460340.7A 2015-07-31 2015-07-31 一种微处理器存储管理方法 Expired - Fee Related CN104991869B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510460340.7A CN104991869B (zh) 2015-07-31 2015-07-31 一种微处理器存储管理方法
PCT/CN2016/078067 WO2017020600A1 (zh) 2015-07-31 2016-03-31 一种微处理器存储管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510460340.7A CN104991869B (zh) 2015-07-31 2015-07-31 一种微处理器存储管理方法

Publications (2)

Publication Number Publication Date
CN104991869A CN104991869A (zh) 2015-10-21
CN104991869B true CN104991869B (zh) 2017-11-10

Family

ID=54303685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510460340.7A Expired - Fee Related CN104991869B (zh) 2015-07-31 2015-07-31 一种微处理器存储管理方法

Country Status (2)

Country Link
CN (1) CN104991869B (zh)
WO (1) WO2017020600A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104991869B (zh) * 2015-07-31 2017-11-10 成都腾悦科技有限公司 一种微处理器存储管理方法
US9996361B2 (en) * 2015-12-23 2018-06-12 Intel Corporation Byte and nibble sort instructions that produce sorted destination register and destination index mapping
CN108491716B (zh) * 2018-01-29 2021-11-12 中国电子科技网络信息安全有限公司 一种基于物理页地址分析的虚拟机内存隔离性检测方法
KR102400977B1 (ko) * 2020-05-29 2022-05-25 성균관대학교산학협력단 프로세서를 통한 페이지 폴트 처리 방법
CN112416437B (zh) * 2020-12-02 2023-04-21 海光信息技术股份有限公司 信息处理方法、信息处理装置和电子设备
CN114201444B (zh) * 2021-12-06 2023-11-14 海飞科(南京)信息技术有限公司 用于存储管理的方法、介质、程序产品、***和装置
CN114610653B (zh) * 2022-05-10 2022-08-05 沐曦集成电路(上海)有限公司 基于gpu内存的地址请求方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489058A (zh) * 2002-10-10 2004-04-14 �Ҵ���˾ 管理数据处理器***中虚拟化的物理存储器的方法和***
CN1794209A (zh) * 2006-01-17 2006-06-28 浙江大学 Java操作***中段页式虚拟存储***的实现方法
CN101008922A (zh) * 2007-01-26 2007-08-01 浙江大学 面向异构多核体系的段页式存储空间管理方法
CN102866958A (zh) * 2012-09-07 2013-01-09 北京君正集成电路股份有限公司 一种离散内存访问的方法及装置
CN103150521A (zh) * 2013-03-07 2013-06-12 周海林 一种高性能微处理器寄存器及其内存地址弹性保护方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572349B2 (en) * 2006-01-31 2013-10-29 Agere Systems Llc Processor with programmable configuration of logical-to-physical address translation on a per-client basis
JP2010165251A (ja) * 2009-01-16 2010-07-29 Toshiba Corp 情報処理装置及びプロセッサ並びに情報処理方法
KR20140122564A (ko) * 2013-04-10 2014-10-20 삼성전자주식회사 프로세서에서 레지스터의 물리 주소 산출 장치 및 방법
CN104991869B (zh) * 2015-07-31 2017-11-10 成都腾悦科技有限公司 一种微处理器存储管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489058A (zh) * 2002-10-10 2004-04-14 �Ҵ���˾ 管理数据处理器***中虚拟化的物理存储器的方法和***
CN1794209A (zh) * 2006-01-17 2006-06-28 浙江大学 Java操作***中段页式虚拟存储***的实现方法
CN101008922A (zh) * 2007-01-26 2007-08-01 浙江大学 面向异构多核体系的段页式存储空间管理方法
CN102866958A (zh) * 2012-09-07 2013-01-09 北京君正集成电路股份有限公司 一种离散内存访问的方法及装置
CN103150521A (zh) * 2013-03-07 2013-06-12 周海林 一种高性能微处理器寄存器及其内存地址弹性保护方法

Also Published As

Publication number Publication date
CN104991869A (zh) 2015-10-21
WO2017020600A1 (zh) 2017-02-09

Similar Documents

Publication Publication Date Title
CN104991869B (zh) 一种微处理器存储管理方法
US10310987B2 (en) Systems and methods for accessing a unified translation lookaside buffer
US8296547B2 (en) Loading entries into a TLB in hardware via indirect TLB entries
TWI531912B (zh) 具有用於多上下文計算引擎的轉譯後備緩衝之處理器、用於致能多執行緒以存取於處理器中之資源之系統和方法
US8688953B2 (en) Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities
CN104346294B (zh) 基于多级缓存的数据读/写方法、装置和计算机***
US8799621B2 (en) Translation table control
US4774653A (en) Hybrid hardware/software method and apparatus for virtual memory address translation using primary and secondary translation buffers
JP5680179B2 (ja) 仮想化処理システムにおけるアドレスマッピング
US6073226A (en) System and method for minimizing page tables in virtual memory systems
CN110196757B (zh) 虚拟机的tlb填写方法、装置及存储介质
US20050193160A1 (en) Database System Providing Methodology for Extended Memory Support
US8335908B2 (en) Data processing apparatus for storing address translations
JPH04352256A (ja) メモリ空間を節約する方法および装置
CN106560798A (zh) 一种内存访问方法、装置及计算机***
EP4227814A1 (en) Method and apparatus for solving address ambiguity problem of cache
CN113836054A (zh) 用于gpu的内存页管理方法和内存页转换方法
CN111241012A (zh) 支持多级页表的tlb架构
Esteve et al. Exploiting parallelization on address translation: shared page walk cache
Bhattacharjee et al. Modern VM Hardware Stack
WO2023064590A1 (en) Software indirection level for address translation sharing
WO2023064609A1 (en) Translation tagging for address translation caching
Fukunaga et al. Practical use of two kinds of Huge Page
JPH03252745A (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180423

Address after: 610000 Chengdu, Sichuan, China (Sichuan) free trade pilot area, Chengdu high tech Zone, 666 Jincheng Avenue 4, 20 floor 6.

Patentee after: CHENGDU CHANGMING INFORMATION TECHNOLOGY Co.,Ltd.

Address before: West high tech Zone Fucheng Road in Chengdu city of Sichuan Province in 610000 399, 9 13 storey building No. 6

Patentee before: CHENGDU TENYUM TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191119

Address after: 313000 1-B, building 1, No. 656, Qixing Road, high tech Zone, Wuxing District, Huzhou City, Zhejiang Province

Patentee after: Huzhou Qiqi Electromechanical Technology Co.,Ltd.

Address before: 610000 No.6, 20 / F, building 4, NO.666, Jincheng Avenue, Chengdu high tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu City, Sichuan Province

Patentee before: CHENGDU CHANGMING INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210702

Address after: 215000 9 Guangda Road, high tech Zone, Suzhou City, Jiangsu Province

Patentee after: Suzhou Xunsheng Information Technology Co.,Ltd.

Address before: 313000 1-B, building 1, No. 656 Qixing Road, high tech Zone, Wuxing District, Huzhou City, Zhejiang Province

Patentee before: Huzhou Qiqi Electromechanical Technology Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171110