用于嵌入式系统的请求调页设备和方法

文档序号:6564498阅读:107来源:国知局
专利名称:用于嵌入式系统的请求调页设备和方法
技术领域
与本发明一致的设备和方法涉及用于嵌入式系统的请求调页,更具体地讲,涉及这样一种用于嵌入式系统的请求调页设备和方法,在将请求调页技术应用于使用支持请求调页的操作系统的系统或不使用操作系统的系统时,该设备和方法使得能够简单有效地使用请求调页技术。
背景技术
术语“请求调页”指的是这样一种技术在使用虚拟存储系统的操作系统中,将虚拟存储器分配给诸如硬盘的辅助存储装置,并应用户的请求将物理存储器映射到虚拟存储器,从而使得能够更加有效地使用有限的主存储器。尽管在诸如Linux和Windows的通用操作系统中使用请求调页,但是响应于应用程序所需的代码和数据的大小的增加,由于这种功能的机制复杂而导致大多数嵌入式系统中不支持这种功能。原因是每个存储系统本身与通用操作系统的操作密切相关。也就是说,除非使用支持请求调页的操作系统,否则在实践中难以实现请求调页。
图1A是示出在支持请求调页的操作系统中的现有技术的请求调页设备,该请求调页设备包括具有有限大小的物理存储器30、产生用于请求调页的虚拟存储空间的辅助存储装置40、作为应用程序的各个进程的虚拟地址空间10和20以及用于管理请求调页的操作系统50。当产生进程时,操作系统50在辅助存储装置40中产生用于各个进程的虚拟存储空间。其后,当所述进程尝试访问虚拟存储空间时,操作系统50将适当的空间分配给物理存储器30,从辅助存储装置40读取虚拟存储空间的内容,然后将所述内容映射到各个进程的虚拟地址空间10和20,从而执行应用程序。
在这种情况下,各个进程的虚拟地址空间10和20被分为核心区域和用户区域。在核心区域中,与载入操作系统50的代码和静态数据的空间大小相同的空间在物理存储器30中被保护。请求调页技术应用于所有剩余空间。因此,根据用户程序,请求调页技术处理所有代码和数据。
图1B是示出使用请求调页的现有技术的系统的示图,该系统包括应用程序90查看和使用的地址空间60、存在于系统中并具有有限大小的物理存储器70、存储应用程序的辅助存储装置80以及存储在辅助存储装置80中、被载入物理存储器70、然后被映射到地址空间60的应用程序90。
在所述系统中,整个存储空间被共用而没有被划分为对应于进程的区域。由于物理存储器70可没有改变地映射到地址空间60,所以大小比系统的物理存储器70的大小大的程序不被执行。通常,存储在辅助存储装置80中的应用程序90通过引导加载程序被载入物理存储器70,然后被执行。
为了在图1A的现有技术情况下应用请求调页,使用在操作系统级支持请求调页的方案,存在的问题是操作系统本身必须由另一操作系统取代。此外,由于用于嵌入式系统的大多数操作系统不支持用于各个任务的虚拟地址空间,所以难以将传统的请求调页方案引入到这些操作系统。或者,如果使用支持请求调页的操作系统,那么难以根据应用程序预测将由请求调页延迟处理的部分应用程序和由请求调页延迟所述部分应用程序的时刻。因此,存在的问题是难以将所述系统应用于需要实时响应的应用。
此外,在图1B的没有使用请求调页的现有技术的系统中,存在的问题是难以处理大小逐渐增加的代码和数据。此外,当在该系统中采用NAND闪存(即,不能被直接寻址的非易失性存储器)或硬盘的情况下执行存储在存储装置中的程序时,存在的问题是必须分配具有与所述程序的大小相应的大小的RAM。

发明内容
本发明提供了一种用于嵌入式系统的请求调页设备和方法,在该请求调页设备和方法中,可将请求调页技术使用在使用支持请求调页的操作系统的系统和使用不支持请求调页的操作系统的系统中。
根据本发明的一方面,提供了一种用于嵌入式系统的请求调页设备,该设备包括非易失性存储装置,存储通过请求调页处理的代码和数据;物理存储器,处理从非易失性存储装置读取的关于请求页的信息;请求调页窗口,产生所述页错误(fault),因而使请求调页发生,请求调页窗口是存储在非易失性存储装置中的应用程序所引用的地址空间的一部分;和请求调页管理器,处理请求调页窗口中产生的页错误。
可将物理存储器的一部分分配给请求调页管理器,请求调页管理器产生用于执行请求调页的请求调页存储池。
请求调页存储池可包括帧缓冲器,被映射到请求调页窗口中的虚拟存储空间;存储器转换表,将关于映射的信息通知给存储管理单元(MMU);和帧缓冲器列表,即,用于管理帧缓冲器的数据结构。
请求调页管理器可包括接口模块,初始化请求调页管理器,并激活存储管理单元;页高速缓冲管理模块,响应于接口模块的请求对帧缓冲器和帧缓冲器列表进行初始化;和页错误处理模块,确定在请求调页窗口的区域中是否产生了激活的存储管理单元产生的页错误,从而处理页错误。
接口模块可包括应用程序接口(API),从应用程序接收产生请求调页窗口的请求和信息;存储器转换表产生单元,从请求调页存储池向其分配存储器,并且存储器转换表产生单元产生用于请求调页窗口的区域的存储器转换表;页错误处理程序安装单元,将页错误处理模块注册在中央处理单元(CPU)中;和存储管理单元控制单元,控制存储管理单元调用注册的页错误处理模块。在这种情况下,所述信息可包括关于请求调页窗口占据的空间的大小和地址的信息、关于请求调页存储池的大小的信息和关于存储在非易失性存储装置中的代码和数据的位置的信息。
所述非易失性存储装置可以是NAND闪存。
根据本发明的另一方面,提供了一种用于嵌入式系统的请求调页方法,该方法包括响应于存储在非易失性存储装置中的应用程序的请求,产生请求调页窗口,所述请求调页窗口是发生请求调页的区域;对用于处理请求调页窗口中产生的页错误的请求调页管理器进行初始化,从而激活存储管理单元;当请求调页窗口中产生页错误时,使用激活的存储管理单元来调用向CPU注册的页错误处理模块;使用调用的页错误处理模块来确定请求调页窗口中是否产生页错误;如果请求调页窗口中产生了页错误,那么在页错误处理模块处理页错误。
初始化请求调页管理器的步骤可包括从应用程序接收产生请求调页窗口的请求和信息;由操作系统分配存储器,并产生用于请求调页窗口的区域的存储器转换表;向CPU注册页错误处理模块,页错误处理模块在产生页错误中断时被执行;和激活调用注册的页错误处理模块的存储管理单元。在这种情况下,所述信息可包括关于请求调页窗口占据的空间的大小和地址的信息、关于被请求执行请求调页的存储器的大小的信息和关于存储在非易失性存储装置中的代码和数据的位置的信息。
处理页错误的步骤可包括如果请求调页窗口中产生了页错误,那么将请求调页存储池内的帧缓冲器分配给请求调页管理器;页错误处理模块使用帧缓冲器从非易失性存储装置读取页;根据读取的页来修改存储器转换表。


通过下面结合附图对示例性实施例进行的详细描述,本发明的上述和其它方面将会被更加清楚地理解,其中图1A是示出在支持请求调页的操作系统中的现有技术的请求调页设备的示图;图1B是示出没有使用请求调页的现有技术的系统的示图;图2是示出根据本发明示例性实施例的用于嵌入式系统的请求调页设备的构思的框图;图3是示出根据本发明示例性实施例的作为请求调页设备的结构的一部分的请求调页管理器和物理存储器的结构的示图;图4是示出根据本发明示例性实施例的作为请求调页设备的结构的一部分的接口模块的结构的示图;图5是示出根据本发明示例性实施例的用于嵌入式系统的请求调页方法的构思的流程图;和图6是示出根据示例性实施例的初始化请求调页管理器的处理的流程图。
具体实施例方式
通过下面结合附图对示例性实施例进行的详细描述,本发明的各方面将变得更加清楚。然而,本发明不限于示例性实施例,而是可以以各种方式被实现。提供示例性实施例以使本公开完整,并使本领域普通技术人员理解本发明的范围。贯穿附图,将使用相同的标号来表示相同或相似的部件。
以下将参照框图或流程图来详细描述用于嵌入式系统的请求调页设备和方法。
图2是示出根据本发明示例性实施例的用于嵌入式系统的请求调页设备的构思的框图。该用于嵌入式系统的请求调页设备包括地址空间110内的请求调页窗口100、物理存储器200、非易失性存储装置300和请求调页管理器400。
非易失性存储装置300是用于存储可以进行请求调页的代码和数据的空间,即使电源被断开,非易失性存储装置300也能保持存储在其中的信息,从而当重新供电时可再使用存储的信息,非易失性存储装置300表示闪存、只读存储器(ROM)、磁带或磁盘。
更具体地讲,闪存能够自由地存储和删除数据,并且根据其内部配置被分为NOR闪存或NAND闪存。NOR闪存具有其单元彼此并联的配置,而NAND闪存具有其单元彼此串联的配置。NAND闪存可具有比NOR闪存低的制造成本,并且能够实现比NOR闪存高的容量,而NOR闪存可具有比NAND闪存短的数据访问时间和比NAND闪存好的数据稳定性。然而,示例性实施例不需要这些方面,并且没有这些方面也可以预见示例性实施例。
在示例性实施例中,NAND闪存可用作非易失性存储装置300,以实现允许嵌入式系统的应用程序直接控制请求调页功能的优点。
物理存储器200是处理从非易失性存储装置300读取的关于请求页的信息的存储器类型。RAM通常用作物理存储器200。
请求调页窗口100是存储在非易失性存储装置300中的应用程序所查看和引用的地址空间110的一部分。请求调页窗口100是产生读取的页的页错误从而使请求调页发生的区域。可以不管操作系统而由用户程序产生请求调页窗口100。为此,请求调页管理器400在应用程序级被初始化,并且请求调页窗口100注册在请求调页管理器400中。由于这种注册过程可以重复多次,所以可以同时使用多个请求调页窗口100。在请求调页窗口100的注册完成之后,请求调页管理器400被请求激活请求调页窗口100,因此,请求调页窗口100被激活。
请求调页管理器400用于处理从请求调页窗口100产生的页错误。图3详细示出请求调页管理器400的结构,图3是示出请求调页管理器400和请求调页存储池200A的结构的示图,该结构是请求调页设备的结构的一部分。从物理存储器200将该存储器的一部分分配给请求调页管理器400,请求调页管理器400产生用于执行请求调页的请求调页存储池200A。
请求调页存储池200A包括帧缓冲器220,由映射到请求调页窗口100内的虚拟存储空间的物理存储器形成;存储器转换表210,将关于映射的信息通知给存储管理单元(MMU)500;和帧缓冲器列表230,是用于管理帧缓冲器220的数据结构。此外,请求调页管理器400包括接口模块410、页高速缓冲管理模块420和页错误处理模块430。
必须由独立于操作系统的应用程序产生请求调页窗口100。为了使用请求调页设备处理页错误,必须初始化请求调页管理器400。接口模块410执行有关功能,从而激活存储管理单元。
页高速缓冲管理模块420用于应接口模块410的请求对帧缓冲器220和帧缓冲器列表230进行初始化。结果,产生帧缓冲器220和帧缓冲器列表230。
页错误处理模块430是一种由激活的存储管理单元调用的页错误处理程序。当产生页错误中断时,页错误处理模块430用于确定是否在请求调页窗口100的区域中产生了所述中断并处理页错误。
如参照图4所述,接口模块410可负责初始化处理,其中,对示例性实施例的设备执行初始化处理以执行请求调页功能。
图4是示出接口模块410的结构的示图,该结构是请求调页管理器的结构的一部分。应用程序接口(API)412执行接收应用程序对产生请求调页窗口100的请求和信息的功能。在这种情况下,所述信息包括关于请求调页窗口100的大小和地址的信息、关于请求调页存储池200A的大小的信息和关于存储在非易失性存储装置300中的代码和数据的位置的信息。
存储器转换表产生单元414用于从请求调页存储池200A分配存储器,并产生用于请求调页窗口100的区域的存储器转换表210。在这种情况下,操作根据存储管理单元500是否已被激活而变化。
如果存储管理单元500已停止,那么请求调页管理器400必须重新更新用于整个地址空间的存储器转换表210,并向中央处理单元(CPU)注册存储器转换表210。这样做的原因是因为,对于存储管理单元500的激活而言,存储器转换表210总是必需的。然而,如果存储管理单元500已经被激活,那么这意味着对整个地址空间而言向系统注册的存储器转换表210已经存在,因此请求调页管理器400不必重新更新整个表。不管存储管理单元500是否被激活,在以上处理完成之后,存在用于整个地址空间的存储器转换表210。
现在,必须修改用于请求调页窗口100的区域的存储器转换表210以产生页错误中断。如果可由CPU识别的特定值被输入存储器转换表210,那么当从相应的存储器读取数据或者将数据写入相应的存储器时产生页错误中断。也就是说,该处理是初始化存储器转换表210以在请求调页窗口100的区域中产生页错误中断的处理。
页错误处理程序安装单元416用于向CPU注册页错误处理模块430。如果产生了页错误中断,那么存储管理单元调用被称为页错误处理程序并向CPU注册的特定程序(routine)。由于页错误处理模块430执行相应于页错误处理程序的功能,所以页错误处理模块430必须已经向CPU注册。MMU控制单元418用于控制调用注册的页错误处理模块430的存储管理单元500。
诸如“模块”和“表”的在示例性实施例中使用的术语“单元”表示诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)的软件和硬件组件。所述模块执行功能。然而,这并不是说所述模块限于软件或硬件。所述模块可以被配置为存在于可寻址存储介质中,并且可被配置为在一个或多个处理单元上执行。例如,所述模块可包括诸如软件组件、面向对象的软件组件、类组件和任务组件的组件、进程、函数、属性、程序、子程序、程序代码段、驱动程序、固件、微码、电路、数据、数据库、数据结构、表、数组和参数。所述组件和模块提供的功能可用较少量的组件和模块来组合,或者可被分成另外的组件和模块。此外,可将所述组件和模块实现为在装置内的一个或多个CPU上执行。
以下将参照图5和图6来描述执行根据本发明示例性实施例的请求调页方法的过程。图5是示出根据本发明示例性实施例的用于嵌入式系统的请求调页方法的构思的流程图,图6是示出初始化请求调页管理器的处理的流程图。
首先,在操作S110,应存储在非易失性存储装置300中的应用程序的请求,产生请求调页窗口100,即,产生请求调页的区域。其后,在操作S120,对用于处理从请求调页窗口100产生的页错误的请求调页管理器400进行初始化,从而激活存储管理单元500。
将参照图6来详细描述以上初始化处理。首先,在操作S122,用户使用的应用程序请求请求调页管理器400在虚拟地址空间110中产生请求调页窗口100。在这种情况下,应用程序将信息移交给请求调页管理器400。也就是说,关于请求调页窗口100占据的虚拟地址空间110的大小和地址的信息、关于被请求执行请求调页的请求调页存储池200A的大小的信息和关于存储在非易失性存储装置300中的代码和数据的位置的信息被移交。
当产生请求调页窗口100时,操作系统分配存储器,并且在操作S124,产生用于请求调页窗口100的区域的存储器转换表。在操作S126,向CPU注册页错误处理模块430,然后在操作S128,激活用于调用注册的页错误处理模块430的存储管理单元500,从而完成初始化,其中,页错误处理模块430是当产生页错误中断时用于处理页错误中断的处理程序。
同时,在操作S130,当初始化处理完成之后在请求调页窗口100中产生页错误时,使用激活的存储管理单元500来调用页错误处理模块430,其中,页错误处理模块430是向CPU注册的页错误处理程序。
在操作S140,调用的页错误处理模块430确定是否在请求调页窗口100中产生了页错误。如果请求调页窗口100中产生了页错误,那么在操作S150,页错误处理模块430执行处理页错误的操作。如果没有在请求调页窗口100中而是在另一区域中产生了页错误,那么在操作S160,使用现有的注册的页错误处理程序来处理页错误。
以下更详细地描述操作S150。如果请求调页窗口100中产生了页错误,那么请求调页存储池200A内的帧缓冲器220被分配给请求调页管理器400,并且页错误处理模块430使用分配的帧缓冲器220从非易失性存储装置300中读取页。根据读取的页来修改存储器转换表。以上详细描述的非易失性存储装置300可以是NAND闪存。
现有技术的操作系统使用请求调页技术来管理用于进程的全部空间,而示例性实施例中提出的请求调页窗口分配应用程序使用的物理存储空间的一部分,因此可以采用请求调页技术。可如在现有技术的物理存储器系统中一样,使用除了请求调页窗口的区域以外的空间。对于为请求调页窗口的区域设置的存储器的部分,使用有限大小的物理存储器来访问存储在大容量的非易失性存储装置中的代码和数据。由于应用程序起仅对请求调页窗口设置应用程序的全部存储空间的一部分的主要作用,所以可容易地将代码分为将在请求调页窗口中执行的代码或必须保证快速响应时间的代码。因此,本请求调页技术还可使用在使用现有技术的实时操作系统的应用程序中。
同时,本领域技术人员会清楚,本发明的范围包括存储用于在计算机上执行上述用于嵌入式系统的请求调页方法的程序代码的计算机可读记录介质。
根据示例性实施例的用于嵌入式系统的请求调页设备和方法,可存在的优点是请求调页技术可以容易地使用在使用不支持请求调页的操作系统的系统和缺少操作系统的系统中。此外,根据示例性实施例,可以组件形式提供请求调页管理器。因此,可在应用程序级而不是操作系统级自由和直接地控制请求调页功能。因此,由于可减小系统对主存储器的使用,所以可减少有关产品的制造成本。然而,实践本发明不需要前述优点,可以按不脱离本发明范围的方式来实践本发明而没有前述优点。
示例性实施例的效果不限于上述效果,本领域技术人员从权利要求中可以清楚地理解以上没有描述的其它效果。
尽管为示例性的目的公开了本发明的示例性实施例,但是本领域技术人员应该理解,在不脱离如权利要求中所公开的本发明的精神和范围的情况下,可以进行各种修改、添加和替换。
权利要求
1.一种用于嵌入式系统的请求调页设备,包括非易失性存储装置,存储配置为通过请求调页处理的代码和数据;物理存储器,处理关于请求页的信息,所述信息从非易失性存储装置读取;请求调页窗口,产生请求页错误,因而使请求调页发生,请求调页窗口是存储在非易失性存储装置中的应用程序所引用的地址空间的一部分;请求调页管理器,处理在请求调页窗口中产生的页错误。
2.如权利要求1所述的请求调页设备,其中,物理存储器的一部分被分配给请求调页管理器,请求调页管理器产生执行请求调页的请求调页存储池。
3.如权利要求2所述的请求调页设备,其中,请求调页存储池包括帧缓冲器,被映射到请求调页窗口中的虚拟存储空间;存储器转换表,将关于映射的信息通知给存储管理单元;帧缓冲器列表,用于管理帧缓冲器。
4.如权利要求3所述的请求调页设备,其中,请求调页管理器包括接口模块,初始化请求调页管理器,并激活存储管理单元;页高速缓冲管理模块,响应于接口模块的请求,对帧缓冲器和帧缓冲器列表进行初始化;页错误处理模块,确定在请求调页窗口的区域中是否产生了激活的存储管理单元产生的页错误,从而处理所述页错误。
5.如权利要求4所述的请求调页设备,其中,接口模块包括应用程序接口,从应用程序接收产生请求调页窗口的请求和信息;存储器转换表产生单元,从请求调页存储池向其分配存储器,并且存储器转换表产生单元产生用于请求调页窗口的区域的存储器转换表;页错误处理程序安装单元,将页错误处理模块注册在中央处理单元中;存储管理单元控制单元,控制存储管理单元调用注册的页错误处理模块。
6.如权利要求5所述的请求调页设备,其中,从应用程序接收的信息包括关于被请求调页窗口占据的空间的大小和地址的信息、关于请求调页存储池的大小的信息和关于存储在非易失性存储装置中的代码和数据的位置的信息。
7.如权利要求1所述的请求调页设备,其中,所述非易失性存储装置是NAND闪存。
8.一种用于嵌入式系统的请求调页方法,包括响应于存储在非易失性存储装置中的应用程序的请求,产生请求调页窗口,所述请求调页窗口是发生请求调页的区域;对用于处理请求调页窗口中产生的页错误的请求调页管理器进行初始化,以激活存储管理单元;当请求调页窗口中产生页错误时,使用激活的存储管理单元来调用向中央处理单元注册的页错误处理模块;使用调用的页错误处理模块来确定请求调页窗口中是否产生页错误;如果请求调页窗口中产生了页错误,那么通过页错误处理模块来处理页错误。
9.如权利要求8所述的请求调页方法,其中,对请求调页管理器进行初始化的步骤包括从应用程序接收产生请求调页窗口的请求和信息;由操作系统分配存储器,并产生用于请求调页窗口的区域的存储器转换表;向CPU注册页错误处理模块,页错误处理模块在产生页错误中断的情况下被执行;激活调用注册的页错误处理模块的存储管理单元。
10.如权利要求9所述的请求调页方法,其中,所述信息包括关于请求调页窗口占据的空间的大小和地址的信息、关于被请求执行请求调页的存储器的大小的信息和关于存储在非易失性存储装置中的代码和数据的位置的信息。
11.如权利要求9所述的请求调页方法,其中,处理页错误的步骤包括如果请求调页窗口中产生了页错误,那么将请求调页存储池内的帧缓冲器分配给请求调页管理器;页错误处理模块使用帧缓冲器从非易失性存储装置读取页;根据读取的页来修改存储器转换表。
12.如权利要求8所述的请求调页方法,其中,所述非易失性存储装置是NAND闪存。
13.一种存储用于执行请求调页方法的程序代码的计算机可读记录介质,所述方法包括响应于存储在非易失性存储装置中的应用程序的请求,产生请求调页窗口,所述请求调页窗口是发生请求调页的区域;对用于处理请求调页窗口中产生的页错误的请求调页管理器进行初始化,以激活存储管理单元;当请求调页窗口中产生页错误时,使用激活的存储管理单元来调用向中央处理单元注册的页错误处理模块;使用调用的页错误处理模块来确定请求调页窗口中是否产生页错误;如果请求调页窗口中产生了页错误,那么通过页错误处理模块来处理页错误。
14.如权利要求13所述的计算机可读介质,其中,对请求调页管理器进行初始化的步骤包括从应用程序接收产生请求调页窗口的请求和信息;由操作系统分配存储器,并产生用于请求调页窗口的区域的存储器转换表;向CPU注册页错误处理模块,页错误处理模块在产生页错误中断的情况下被执行;激活调用注册的页错误处理模块的存储管理单元。
15.如权利要求14所述的计算机可读介质,其中,所述信息包括关于请求调页窗口占据的空间的大小和地址的信息、关于被请求执行请求调页的存储器的大小的信息和关于存储在非易失性存储装置中的代码和数据的位置的信息。
16.如权利要求14所述的计算机可读介质,其中,处理页错误的步骤包括如果请求调页窗口中产生了页错误,那么将请求调页存储池内的帧缓冲器分配给请求调页管理器;页错误处理模块使用帧缓冲器从非易失性存储装置读取页;根据读取的页来修改存储器转换表。
17.如权利要求13所述的计算机可读介质,其中,所述非易失性存储装置是NAND闪存。
全文摘要
提供了一种用于嵌入式系统的请求调页设备和方法。所述请求调页设备包括非易失性存储装置、物理存储器、请求调页窗口和请求调页管理器。非易失性存储装置存储通过请求调页处理的代码和数据。物理存储器处理从非易失性存储装置读取的关于请求页的信息。请求调页窗口产生所述页错误,因而使请求调页发生。请求调页窗口是存储在非易失性存储装置中的应用程序所引用的地址空间的一部分。请求调页管理器处理在请求调页窗口中产生的页错误。
文档编号G06F12/08GK1991796SQ20061016925
公开日2007年7月4日 申请日期2006年12月21日 优先权日2005年12月27日
发明者金晓俊, 印至, 咸东勋 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1