CN101013404A - 面向异构多核体系的分页式存储空间管理方法 - Google Patents
面向异构多核体系的分页式存储空间管理方法 Download PDFInfo
- Publication number
- CN101013404A CN101013404A CNA2007100669330A CN200710066933A CN101013404A CN 101013404 A CN101013404 A CN 101013404A CN A2007100669330 A CNA2007100669330 A CN A2007100669330A CN 200710066933 A CN200710066933 A CN 200710066933A CN 101013404 A CN101013404 A CN 101013404A
- Authority
- CN
- China
- Prior art keywords
- page
- address
- memory
- paging
- leaf
- 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种面向异构多核体系的分页式存储空间管理方法。这种方法采用对逻辑存储器和物理存储器进行分页的实现方式。通过构建一个虚拟页映射到物理页的页表。利用页表和每个核相关硬件设备相联存储器等的支持,实现逻辑地址到绝对地址的转换。它有利于操作系统在异构多核体系下对多道程序运行的实现,有利于充分利用计算机系统的存储器资源,有利于程序员更加简便的开发应用程序。
Description
技术领域
本发明涉及计算机操作系统领域,尤其涉及一种面向异构多核体系的分页式存储空间管理方法。
背景技术
存储空间管理是操作系统的重要组成部分,它负责管理计算机系统的存储器。存储器可分成主存储器(简称主存)和辅助存储器(简称辅存)两类。
主存储器的存储空间一般分中两部分:一部分是系统区,存放操作系统以及一些标准子程序,例行程序等;另一部分是用户区,存放用户的程序和数据等。存储管理主要是对主存储器中的用户区域进行管理。
计算机系统采用多道程序设计技术后,往往要在主存储器中同时存放多个作业的程序,而这些程序在主存储器中的位置是不能预先知道的,所以用户在编写程序时不能使用绝对地址。现代计算机的指令中地址部分所指示的地址通常是地址,逻辑地址可从0开始编号。用户按逻辑地址编写程序。当要把程序装入计算机时,首先,操作系统要为其分配一个合适的主存空间。由于逻辑地址经常与分配到的主存空间的绝对地址不一致,而处理器执行指令是按绝对地址进行的,所以必须把逻辑地址转换成绝对地址才能得到信息的真实存放处。把逻辑地址转换成绝对地址的工作称地址转换。
多个作业共享主存储器时,必须对主存储器中的程序和数据进行保护,并进行合理有效地调动,以达到充分发挥主存储器的效率。
为方便用户编制程序,使用户编写程序时不受主存储器实际容量的限制,可以采用一定的技术“扩充”主存储器容量,可使用得到比实际容量大的主存空间。
总之,存储管理的目的是要尽可能地方便用户和提高主存储器的效率。具体地说,存储管理有下面四个功能。
1)主存储器空间的分配和去配
要把作业装入主存时,必须按照规定的方式向操作系统提出申请,由存储管理进行具体分配。存储管理设置一张表格记录存储空间的分配情况,根据申请乾的要求按一定的策略分析存储空间的使用情况找出足够的空闲区域分配情况不能满足申请要求时,则让申请者处于等待主存资源的状态,直到有足够的
主存空间时再分配给他。
当主存储器中某个作业撤离或主动归还主存资源时,存储管理要收回它所占用的全部或部分存储空间,使它们成为空闲区域(也叫自由区),这时也要修改表格的有关项。收回存储区域的工作也称“去配”。
2)主存储器空间的共享
主存储器空间的共享为了提高主存空间的利率效率,所谓主存储器空间共享有两方面的含义:
●共享主存储器资源。采用多道程序设计技术使若干个程序同时进入主存储器,各自占用一定数量的存储空间,共同使用一个主存储器。
●共享主存储器的某些区域。若干个作业有共同的程序段或数据时,可将这些共同的程序段或数据存放在某个存储区域内,各作业执行时都可访问它们。
3)存储保护
主存储器中不仅有系统程序,而且还有若干道用户作业的程序。为了避免主存中的若干道程序相互干扰,必须对主存中的程序和数据进行保护。通常由硬件提供保护功能,软件配合实现。当要访问主存某一单元时,由硬件检查是否允许访问,若允许则执行,否则产生中断,由操作系统进行相应的处理。
最基本的保护措施是规定各道程序只能访问属于它的那些区域或存取公共区域中的信息,不过对公共的访问应该加以限制,一般说,一个程序执行时可能有下列三种情况:
●对属于自己主存区域中的今年既可读又可写;
●对公共区域中允许共享的信息或获得可使用的别的用户的信息,可读而不准修改;
●对未获得授权使用的信息,既不可读又不可写。
4)主存储器空间的扩充
在计算机硬件的支撑下,软硬件协作,可把磁盘等辅助存储器作为主存储器的扩充部分来使用。当一个大型的程序要装入主存时,可先把其中的一部分装入主存储器,其余部分存放在磁盘上,如果程序执行中需用不在主存中的信息时,由操作系统采用覆盖技术将其调入主存,这样,用户编制程序时还需考虑实际主存空间的容量,就他能使用一个足够的主存储器一样。这种主存空间的扩充大大地方便了用户,使他们在编制程序量可免去考虑繁杂的覆盖问题。
随着计算机技术的迅猛发展,在嵌入式领域涌现出越来越多的自定义的计算机体系结构,这也就是促使了对此类计算机体系结构的操作系统的存储器空间管理的特定需求。
传统的存储空间管理方法采用连续空间的分配管理方法,这种实现方式具有实现方式简单,管理方式明确等优点。但是这种管理方法在使用过程中容易出现内存空间碎片等问题,尤其对于嵌入式系统,内存等存储设备空间有限,所以如何有效的使用这些有限的空间就显得很重要。
发明内容
本发明的目的在于提供一种面向异构多核体系的分页式存储空间管理方法。
本发明解决技术问题所采用的技术方案是:
1)对虚拟存储器和物理存储器进行分页
I.分页存储器将主存分成大小相等的许多区,每个区称为一块;
II.编制程序的逻辑地址也分成页,页的大小与块的大小相等;
III.分页存储器的逻辑地址由两部分组成:虚页号和单元号;
2)页表的实现
I.页表的目的是把虚页映射到物理框页,从数学角度而言,页表是一个函数,它的参数是虚页号,结果是物理页框号;
II.通过使用页表把虚地址中的虚页号替换成页框号,从而为逻辑地址转换成绝对地址提供支持;
3)逻辑地址到绝对地址的转换
I.地址转换公式:块号×块长+单元号;
II.把逻辑地址中的单元号作为绝对地址中的低地址部分;
III.根据虚页号从表中查得的页框作为绝对地址中的高地址部分;
4)存储空间数据访问过程
I.根据逻辑地址的页号查找快表,若查到,则形成绝对地址;
II.如在快表中无登记,查找主存中的也页表,把相应页表项登入快表并形成绝对地址;
III.如在主存中没有要访问的页表,采用缺页中断方式从辅存中调入相应页表。
当访问页面数据访问发生缺页时的处理方法如下:
I.当主存中页面访问缺失时发生缺页中断,需要将页面换出,并通过页面调度调入新的页面;
II.页面调度采用时钟页面调度方法,通过循环检测访问位来查找最近最少访问的页面进行换出。
本发明具有的有益的效果是:通过在异构多核体系结构下实现分页式的虚拟存储方法。可以让计算机系统运行多个作业进程而共享同一片的存储器单元。同时对存储器中的程序和数据进行保护,各个作业能在多个处理核上各自运行,合理调度。有利于充分利用存储器的资源。同时通过软件设计和硬件的支持实现对数据的保护。
附图说明
图1分页式存储空间管理方法处理流程;
图2是分页式存储管理的地址转换方式;
图3是虚拟存储器和物理存储器进行分页;
图4是逻辑地址的格式;
图5是页表和作业表的格式。
具体实施方法
在现在操作系统中,用户都是按照逻辑地址编写程序,而程序员不用考虑计算机物理存储器的大小以及地址分配等过程。同时为了让操作系统支持多个应用程序作业能同时运行,进行合理有效的调度,并且保护各个作业程序的数据。我们采用了分页式存储管理的方法来实现这个需求。其实现方式整体流程如图1所示。下面对其几个实现细节进行阐述:
1)对虚拟存储器和物理存储器进行分页
逻辑地址是连续的。如图4逻辑地址由页号和单元号组成,由地址结构中的单元号决定了页面的大小,也就确定了主存分块的大小。
在进行存储分配时,总是以块为单位进行分配,一个作业的信息有多少页,那么在把它装入主存时就给它分配多少块。但是,分配给作业的主存块是可以不连续的,即作业的信息可按页分散存放在主存的空闲中,这就避免了为得到连续存储空间而进行的移动。如图3实现对虚拟存储器和物理存储器进行分页。
2)设计页表和作业表的格式
进行存储分配时,应为进入主存的每个用户作业建立一张页表,指出逻辑地址中页号与主存中块号的对应关系,页表的长度随作业的大小而定。同时页式存储管理系统包括一张作业表,将这些作业的页表进行登记,每个作业在作业表中有一个登记项。作业表和页表的格式如图5。
3)实现逻辑地址到绝对地址的转换
借助于硬件的地址转换结构,在作业执行过程中按页动态定位。调度程序在选择作业后,从作业表中的登记项中得到被选中作业的页表始址和长度,将其送入硬件设置的页表控制寄存器。地址转换时,只要从页表控制寄存器就就可以找到相应的页表,再按照逻辑地址中的页号查页表,得到对应的块号,根据关系式:
绝对地址=块号×块长+单元号
计算出欲访问的主存单元的地址。因此,虽然作业存放在若干个不连续的块中,但在作业执行中总是能按确切的地址进行存取。
图1给出了页式存储管理的地址转换和存储保护,根据地址转换公式:块号×块长+单元号,在实际进行地址转换时,只要把逻辑地址中的单元号作为绝对地址中的低地址部分,而根据页号从表中查得的块号作为绝对地址中的高地址部分,就组成了访问主存储器的绝对地址。
4)相联存储器中快表的实现
为了提高存取速度,设置一个专用的高速存储器,用来存放页表的一部分,这种高速存储器称为相联存储器,存放在相联存储器中的页表称快表。相联存储器的存取时间是小于主存的,但造价高,故一般都是小容量的。
根据程序执行局部性的特点,即它在一定时间内总是经常访问某些页,若把这些页登记在快表中,无疑地将大大加快指令的执行速度。
按逻辑地址中的页号查快表,若该页已登记在快表中,则由块号和单元号形成绝对地址;若快表中查不到对应页号,则再查主存中的页表而形成绝对地址,同时将该页登记到快表中。当快表填满后,又要在快表中登记新页时,则需在快表中按一定策略淘汰一个旧的登记项,最简单的策略是“先进先出”,即总是淘汰最先登记的那一页。
5)对各个进程作业的数据进行保护的方法的实现
相联存储器在提高存取速度以外,它还提供对各个作业进程之间的空间保护。如果进程访问了不属于它的空间,硬件相联存储器将报送一个中断给操作系统。
同时系统为每道作业设置一个保证键,为某作业分配主存时根据它的保护键在页表中建立键标志。程序执行时将程序状态字中的键和访问页的键进行核对,相符时才可访问该块。
Claims (2)
1.一种面向异构多核体系的分页式存储空间管理方法,其特征在于:
1)对虚拟存储器和物理存储器进行分页
I.分页存储器将主存分成大小相等的许多区,每个区称为一块;
II.编制程序的逻辑地址也分成页,页的大小与块的大小相等;
III.分页存储器的逻辑地址由两部分组成:虚页号和单元号;
2)页表的实现
I.页表的目的是把虚页映射到物理框页,从数学角度而言,页表是一个函数,它的参数是虚页号,结果是物理页框号;
II.通过使用页表把虚地址中的虚页号替换成页框号,从而为逻辑地址转换成绝对地址提供支持;
3)逻辑地址到绝对地址的转换
I.地址转换公式:块号×块长+单元号;
II.把逻辑地址中的单元号作为绝对地址中的低地址部分;
III.根据虚页号从表中查得的页框作为绝对地址中的高地址部分;
4)存储空间数据访问过程
I.根据逻辑地址的页号查找快表,若查到,则形成绝对地址;
II.如在快表中无登记,查找主存中的也页表,把相应页表项登入快表并形成绝对地址;
III.如在主存中没有要访问的页表,采用缺页中断方式从辅存中调入相应页表。
2、根据权利要求1所述的一种面向异构多核体系的分页式存储空间管理方法,其特征在于当访问页面数据访问发生缺页时的处理方法如下:
I.当主存中页面访问缺失时发生缺页中断,需要将页面换出,并通过页面调度调入新的页面;
II.页面调度采用时钟页面调度方法,通过循环检测访问位来查找最近最少访问的页面进行换出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100669330A CN101013404A (zh) | 2007-01-26 | 2007-01-26 | 面向异构多核体系的分页式存储空间管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100669330A CN101013404A (zh) | 2007-01-26 | 2007-01-26 | 面向异构多核体系的分页式存储空间管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101013404A true CN101013404A (zh) | 2007-08-08 |
Family
ID=38700931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100669330A Pending CN101013404A (zh) | 2007-01-26 | 2007-01-26 | 面向异构多核体系的分页式存储空间管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101013404A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515295B (zh) * | 2009-03-23 | 2010-12-01 | 浙江大学 | 片上硬件数据库的高速缓冲器支持实现方法 |
CN101645043B (zh) * | 2009-09-08 | 2012-01-04 | 成都市华为赛门铁克科技有限公司 | 写数据的方法、读数据的方法及存储设备 |
WO2016015583A1 (zh) * | 2014-07-31 | 2016-02-04 | 华为技术有限公司 | 一种内存管理方法、装置以及内存控制器 |
CN108139981A (zh) * | 2016-08-11 | 2018-06-08 | 华为技术有限公司 | 一种页表缓存tlb中表项的访问方法,及处理芯片 |
CN105630690B (zh) * | 2014-10-31 | 2018-10-12 | 华为技术有限公司 | 异构硬件中大数据处理的方法及装置 |
-
2007
- 2007-01-26 CN CNA2007100669330A patent/CN101013404A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515295B (zh) * | 2009-03-23 | 2010-12-01 | 浙江大学 | 片上硬件数据库的高速缓冲器支持实现方法 |
CN101645043B (zh) * | 2009-09-08 | 2012-01-04 | 成都市华为赛门铁克科技有限公司 | 写数据的方法、读数据的方法及存储设备 |
WO2016015583A1 (zh) * | 2014-07-31 | 2016-02-04 | 华为技术有限公司 | 一种内存管理方法、装置以及内存控制器 |
US10108553B2 (en) | 2014-07-31 | 2018-10-23 | Huawei Technologies Co., Ltd. | Memory management method and device and memory controller |
CN105630690B (zh) * | 2014-10-31 | 2018-10-12 | 华为技术有限公司 | 异构硬件中大数据处理的方法及装置 |
CN108139981A (zh) * | 2016-08-11 | 2018-06-08 | 华为技术有限公司 | 一种页表缓存tlb中表项的访问方法,及处理芯片 |
US10740247B2 (en) | 2016-08-11 | 2020-08-11 | Huawei Technologies Co., Ltd. | Method for accessing entry in translation lookaside buffer TLB and processing chip |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100527098C (zh) | 一种虚拟机管理器的动态内存映射方法 | |
CN101189575B (zh) | 定序器地址管理 | |
CN102460400B (zh) | 基于管理程序的本地和远程虚拟内存页面管理 | |
Marty et al. | Virtual hierarchies to support server consolidation | |
CN100555247C (zh) | 在多核/多线程处理器中高速缓存的公平共享 | |
Jacob et al. | Virtual memory: Issues of implementation | |
CN1538296B (zh) | 用于调度协处理器的处理的方法和系统 | |
CN101477495B (zh) | 分布式内存虚拟化技术的实现方法 | |
CN101403992B (zh) | 实现远程内存交换的方法、装置及系统 | |
CN104487953A (zh) | 用于层次型存储器系统的存储器管理 | |
CN103547993A (zh) | 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块 | |
CN103562866A (zh) | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 | |
CN103635875A (zh) | 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段 | |
CN103455129A (zh) | 计算机可读介质和计算处理装置 | |
KR102123711B1 (ko) | 공유 및 관리 메모리 통합 액세스 | |
CN104798061A (zh) | 在虚拟化环境中控制对存储器页面组的访问 | |
CN104346284B (zh) | 一种内存管理方法及内存管理设备 | |
CN101008922A (zh) | 面向异构多核体系的段页式存储空间管理方法 | |
CN103034593A (zh) | 面向众核处理器的片上锁变量全局编址存储方法及装置 | |
CN101013404A (zh) | 面向异构多核体系的分页式存储空间管理方法 | |
CN101008923A (zh) | 面向异构多核体系的分段式存储空间管理方法 | |
Milenkovic | Microprocessor memory management units | |
Petrov et al. | Towards effective embedded processors in codesigns: customizable partitioned caches | |
Wu et al. | DWARM: A wear-aware memory management scheme for in-memory file systems | |
CN103164348A (zh) | 一种多系统下对实时操作系统所占用内存的保护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |