首页> 中国专利> 嵌入式装置、嵌入式装置的存储器硬盘以及存取嵌入式装置的存储器硬盘的方法

嵌入式装置、嵌入式装置的存储器硬盘以及存取嵌入式装置的存储器硬盘的方法

摘要

本发明揭露了一种嵌入式装置、嵌入式装置的存储器硬盘以及存取嵌入式装置的存储器硬盘的方法。嵌入式装置包含:一处理单元,用来执行一操作系统;一第一存储器,用来供该处理单元存取执行该操作系统时所需的数据;一功能模块,用来执行一特定功能;一第二存储器,用来供该功能模块以直接存储器存取(DMA)的方式存取执行该特定功能时所需的数据;以及一存储器硬盘驱动模块,耦接该第一存储器及该第二存储器,将该第一存储器的一部分及该第二存储器整合为一存储器硬盘,并控制该存储器硬盘的存取。

著录项

  • 公开/公告号CN105022588A

    专利类型发明专利

  • 公开/公告日2015-11-04

    原文格式PDF

  • 申请/专利权人 晨星半导体股份有限公司;

    申请/专利号CN201410177297.9

  • 发明设计人 黄建兴;曾信雄;

    申请日2014-04-29

  • 分类号G06F3/06(20060101);G06F12/02(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人徐伟

  • 地址 中国台湾新竹县竹北市台元街26号4楼之1

  • 入库时间 2023-12-18 11:38:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-07

    专利权的转移 IPC(主分类):G06F3/06 登记生效日:20191218 变更前: 变更后: 申请日:20140429

    专利申请权、专利权的转移

  • 2018-06-22

    授权

    授权

  • 2015-12-02

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20140429

    实质审查的生效

  • 2015-11-04

    公开

    公开

说明书

技术领域

本发明是关于嵌入式装置的储存单元与存取储存单元的方法,尤其是关于嵌入式装置的存储器硬盘与存取存储器硬盘的方法。 

背景技术

一般而言,嵌入式系统常常使用效能较低的处理器、较小的系统存储器以及较小的储存单元等以节省成本,因此在硬件资源有限的情形下,设计者无不费尽心思妥善利用各种资源。一个嵌入式装置通常包含处理器可以直接存取的系统存储器,以及专属于嵌入式装置的某个功能模块的模块存储器(hardware IP memory)。系统存储器例如是动态随机存取存储器(dynamic random access memory,DRAM)。以一个智能型电视来说,其处理器存取系统存储器中的程序代码与数据来执行智能型电视的操作系统,电视讯号解调变模块(即上述的功能模块)包含一个专属的模块存储器,用来储存电视讯号解调变模块于执行解调变的功能时所需的程序代码与数据。模块存储器专属于其所属的功能模块,处理器无法直接对其做存取,因此当该电视讯号解调变模块处于闲置状态时(例如当智能型电视用来浏览网页),模块存储器便形成浪费。 

有些嵌入式装置会利用一般所谓的存储器硬盘(Ramdisk)技术将闲置的存储器模拟成额外的储存空间,以充分利用系统的资源。假设嵌入式装置具有闲置的第一功能模块(存取第一模块存储器以完成其功能)及第二功能模块(存取第二模块存储器以完成其功能),嵌入式装置的存储器硬盘驱动模块分别将第一模块存储器及第二模块存储器仿真成第一存储器硬盘以及第二存储器硬盘,并将其挂载(mount)在嵌入式装置的操作系统,以增加系统的资源。举例来说,当系统存储器不足时,操作系统便可将没有正在执行的进程(process)调换(swap)到存储器硬盘中,以空出更多的系统存储器给正在执行的进程。 存储器硬盘驱动模块对第一存储器硬盘及第二存储器硬盘各执行一个驱动程序,每个驱动程序中包含一个分页表(page table)来管理存储器硬盘,因此存储器硬盘驱动模块包含对应第一存储器硬盘的第一分页表及对应第二存储器硬盘的第二分页表。然而这样的储存空间利用方式有以下的缺点:(1)储存空间无法整合使用,造成每个存储器硬盘中有零碎的储存区块无法被有效率地使用;(2)当功能模块从闲置状态进入工作状态时,由其模块存储器所仿真成的存储器硬盘必须从操作系统卸载(unmount),而当其又回到闲置状态时,操作系统必须重新挂载其所对应的存储器硬盘,造成执行效率不佳;(3)当存储器硬盘储存的是经压缩的系统存储器的数据时,存储器硬盘的卸载程序必须先将压缩的数据解压缩后暂存至系统存储器(因为系统存储器无法储存压缩的数据),再将数据压缩后存至其它的存储器硬盘,而在系统存储器有限的情形下,将数据解压缩后暂存至系统存储器,将造成系统存储器很大的冲击,严重时操作系统会面临存储器不足(out of memory,OOM)的情况。 

发明内容

鉴于先前技术的不足,本发明的一目的在于提供一种嵌入式装置、一种嵌入式装置的存储器硬盘以及一种存取嵌入式装置的存储器硬盘的方法,以提升嵌入式装置的硬件资源的使用效率。 

本发明揭露了一种嵌入式装置,包含:一处理单元,用来执行一操作系统;一第一存储器,用来供该处理单元存取执行该操作系统时所需的数据;一功能模块,用来执行一特定功能;一第二存储器,用来供该功能模块以直接存储器存取的方式存取执行该特定功能时所需的数据;以及一存储器硬盘驱动模块,耦接该第一存储器及该第二存储器,将该第一存储器的一部分及该第二存储器整合为一存储器硬盘,并控制该存储器硬盘的存取。 

本发明另揭露了一种存取一嵌入式装置的一存储器硬盘的方法,该嵌入式装置包含一功能模块以及用来执行操作系统的一处理单元,该方法包含:提供一第一存储器,用于储存该处理单元执行该操作系统时所需的数据;提供一第二存储器,用于供该功能模块以直接存储器存取的方式存取执行该特定功能时所需的数据;将该第一存储器的一部分及该第二存储器整合为一存储器硬盘; 以及控制该存储器硬盘的存取。 

本发明另揭露了一种嵌入式装置的存储器硬盘,该嵌入式装置运行一操作系统,该存储器硬盘包含:一系统存储器的一部分,该系统存储器用于储存运行该操作系统时所需的数据;以及该嵌入式装置的一功能模块的模块存储器,该功能模块于执行其功能时以直接存储器存取的方式存取该模块存储器;其中,该存储器硬盘对该操作系统而言为一单一的储存设备。 

本发明的嵌入式装置、嵌入式装置的存储器硬盘以及存取嵌入式装置的存储器硬盘的方法能够将不同的存储器整合成单一的存储器硬盘,以便更有效地利用存储器仿真而成的存储器硬盘。相较于习知技术,当本发明的存储器硬盘的部分空间(例如由第一模块存储器所仿真而成)储存压缩的数据时,当该第一模块存储器所属的功能模块由闲置状态进入工作状态时,该第一模块存储器储存的压缩数据无须先解压缩再搬移,而是可以直接以压缩的状态搬移至存储器硬盘的其它空间(例如由第二模块存储器或系统存储器所仿真而成)中,以减少对系统存储器的冲击。 

有关本发明的特征、实作与功效,兹配合图式作较佳实施例详细说明如下。 

附图说明

图1为本发明的嵌入式装置的一实施例的示意图; 

图2为本发明一实施例的分页表与模块存储器的对应图; 

图3为本发明另一实施例的分页表与模块存储器的对应图; 

图4为本发明另一实施例的分页表与存储器的对应图; 

图5为本发明另一实施例的分页表与存储器的对应图; 

图6为本发明的存取嵌入式装置的存储器硬盘的方法的一实施例的流程图;以及 

图7为本发明的存储器硬盘驱动模块对存储器硬盘进行写入程序的示意图。 

具体实施方式

以下说明内容的技术用语系参照本技术领域的习惯用语,如本说明书对部 分用语有加以说明或定义,该部分用语的解释系以本说明书的说明或定义为准。 

本发明的揭露内容包含嵌入式装置、嵌入式装置的存储器硬盘与存取嵌入式装置的存储器硬盘的方法,能够更有效地利用嵌入式装置的硬件资源。在实施为可能的前提下,本技术领域具有通常知识者能够依本说明书的揭露内容来选择等效的组件或步骤来实现本发明,亦即本发明的实施并不限于后叙的实施例。由于本发明的嵌入式装置所包含的部分组件单独而言可能为已知组件,因此在不影响该装置发明的充分揭露及可实施性的前提下,以下说明对于已知组件的细节将予以节略。此外,本发明的存取嵌入式装置的存储器硬盘的方法可藉由本发明的嵌入式装置或其等效装置来执行,在不影响该方法发明的充分揭露及可实施性的前提下,以下方法发明的说明将着重于步骤内容而非硬件。 

请参阅图1,其系本发明的嵌入式装置的一实施例的示意图。嵌入式装置100包含处理单元110、系统存储器120、存储器硬盘驱动模块130、功能模块140、模块存储器145、功能模块150以及模块存储器155。处理单元110负责执行嵌入式装置100的操作系统,与操作系统相关的程序代码与数据储存在系统存储器120中。处理单元110藉由存储器管理单元(memory management unit,MMU)(未绘示)将系统存储器120的物理地址(physical address)转换为逻辑地址(logical memory)后,再利用逻辑地址来存取系统存储器120。存储器硬盘驱动模块130耦接处理单元110及系统存储器120,用来管理及驱动嵌入式装置100的存储器硬盘。处理单元110能够透过操作系统操作存储器硬盘驱动模块130的驱动程序来存取存储器硬盘。功能模块140及150负责完成嵌入式系统100的特定功能,例如嵌入式系统是一个智能型电视,具有收看电视与浏览网络的功能,则功能模块140可能是负责将电视讯号解调变的模块,而功能模块150可能是负责网络功能的模块。功能模块140及150有各自的模块存储器145及155,模块存储器145储存功能模块140在工作时所需的程序代码与数据,模块存储器155储存功能模块150在工作时所需的程序代码与数据。模块存储器145及155由多个物理地址连续的存储器单元组成,而且系统存储器120与模块存储器145及155可以对应同一硬件存储器模块的不同区段,或是各自对应独立的硬件存储器模块。模块存储器145及155为功能模块140及 150专属的存储器,功能模块140及150存取其各自的模块存储器145及155时不需透过处理单元110,而是以直接存储器存取(direct memory access,DMA)的方式基于模块存储器145及155的物理地址来对其存取。模块存储器145及155无法被嵌入式系统100的处理单元110直接使用,也就是说处理单元110在执行嵌入式装置100的操作系统时,即使系统存储器120已被进程与数据占满,处理单元110仍不会使用模块存储器145及155来直接储存与进程有关的程序代码与数据。 

在本发明的一个较佳的实施例中,当功能模块140及150不在工作状态时(即在闲置状态时),模块存储器145及155也处于闲置状态,处理单元110依据功能模块140及150的工作状态或闲置状态,通知存储器硬盘驱动模块130更新或管理其分页表,以适时地将模块存储器145及/或模块存储器155仿真成存储器硬盘。当功能模块140及150皆为闲置状态时,存储器硬盘驱动模块130以同一个驱动程序并依据同一个分页表来驱动模块存储器145及155,将两者仿真成嵌入式装置100的存储器硬盘,因此处理单元110透过操作系统来操作存储器硬盘驱动模块130的驱动程序,来对模块存储器145及155所仿真成的存储器硬盘进行存取时,只会见到单一且连续的存储器硬盘,也就是说对嵌入式装置100的操作系统而言,模块存储器145及155所仿真成的存储器硬盘为单一的硬件设备,操作系统只要对其所对应的设备档进行操作,便可存取该存储器硬盘。请参阅图2,其系本发明的一实施例的分页表与模块存储器的对应图。分页表210包含多个分页211,用来提供存储器硬盘的逻辑地址与物理地址的对应关系,因此处理单元110对存储器硬盘做存取时,实际上是透过存储器管理单元基于逻辑地址进行操作。假设模块存储器145的储存空间为20MB(约2x107个字节),且以4kB(约4x103个字节)为一个分页,则模块存储器145将对应到5000个分页211,而处理单元110的存储器管理单元便依据分页211来存取储存于模块存储器145中的数据。因为存储器硬盘驱动模块130以同一个驱动程序及同一个分页表210来存取模块存储器145及155,因此对嵌入式装置100的操作系统而言,模块存储器145及155所贡献的存储器硬盘为连续且单一的储存单元,在使用上便不会有破碎的储存空间,而不会造成储存空间的浪费。 

当嵌入式装置100接收到外部的控制讯号而改变其操作模式时,例如智能型电视由原本利用高分辨率多媒体接口(High Definition Multimedia Interface,HDMI)从外接的DVD播放器接收影音讯号,切换为网络浏览模式,则原本闲置中的网络功能模块的模块存储器155必须进入工作状态,此时存储器硬盘驱动模块130将模块存储器155中的数据搬移至模块存储器145,并且改变分页表210的内容,将原本指向模块存储器155的分页改为指向模块存储器145,更新后的分页表如图3所示。如此一来,对操作系统而言,只是存储器硬盘的储存空间发生变化(由原本的模块存储器145及155所组成,改为单独由模块存储器145所组成),并不影响其对存储器硬盘的存取。同理,当嵌入式系统100有其它的模块存储器由工作状态变为闲置状态时,也可以立即藉由更新分页表210或310的方式使新的闲置中的模块存储器加入存储器硬盘,使由模块存储器仿真而成的存储器硬盘空间变大。也就是说,当模块存储器加入/离开存储器硬盘时,存储器硬盘驱动模块130毋需对操作系统挂载/卸载存储器硬盘,而只需修改分页表,大大地增加嵌入式系统100的操作弹性。 

上述的存储器硬盘可以作为操作系统执行调换程序时的辅助储存空间,也就是当系统存储器120已满时,操作系统可以将闲置中的进程搬移至存储器硬盘中,以空出更多的空间给正在执行中的进程。当操作系统需要更多的系统存储器120时,在调换程序中处理单元110会先将准备存入存储器硬盘的数据先予以压缩,从而可以将更多的数据自系统存储器120调换至存储器硬盘。在本实施例中,当模块存储器155储存压缩的数据,而且功能模块150由闲置状态进入工作状态时,因为不需要将存储器硬盘卸载,所以存储器硬盘驱动模块130不需处理将模块存储器155中的压缩数据解压缩、存入系统存储器120、再将数据重新压缩后存回模块存储器145等复杂的程序,上述的过程将导致系统存储器120受到大量数据的冲击;相对的,存储器硬盘驱动模块130只要将模块存储器155中的压缩数据直接搬移至模块存储器145中,再更新分页表,使原本指向模块存储器155的分页改为指向模块存储器145即可,如图3的分页表310与模块存储器145的对应关系所示。此时模块存储器155已转为工作状态,而存储器硬盘仅包含模块存储器145。 

在另一个较佳的实施例中,存储器硬盘可以由系统存储器与模块存储器共 同组成。请参阅图4,其系本发明另一实施例的分页表与存储器的对应图。分页表410有多个分页411,一部分对应系统存储器120,一部分对应模块存储器145。更详细地说,系统存储器120可以区分为储存操作系统的程序代码及数据的第一区块以及其余用来储存各进程的程序代码及数据的第二区块,而仅有第二区块可以拿来仿真为存储器硬盘使用。虽然第二区块常常因为操作系统的操作而变得破碎(意即可供使用的存储器单元的物理地址变得不连续),但本发明仍可藉由管理分页表将破碎的存储器单元仿真成存储器硬盘。在另一个较佳的实施例中,存储器硬盘包含系统存储器120及两个以上的模块存储器,且系统存储器120与模块存储器145及155整合为单一的存储器硬盘,其分页表与系统存储器120及模块存储器145及155的对应关系如图5所示,分页表510的多个分页511部分对应至系统存储器120、部分对应至模块存储器145以及部分对应至模块存储器155。同样的,当嵌入式装置100的功能切换时,处理单元110依据功能模块140及150的工作状态通知存储器硬盘驱动模块130,存储器硬盘驱动模块130再依据通知更新或管理分页表510。综上所述,嵌入式装置100的存储器硬盘可以由系统存储器120及一个以上的模块存储器依比例组成,例如存储器硬盘40%的储存空间由系统存储器120提供,60%由模块存储器145提供;或是存储器硬盘20%的储存空间由系统存储器120提供,50%由模块存储器145提供以及30%由模块存储器155提供。再者,当压缩数据在任两个存储器之间移动时,仅需将压缩数据从来源存储器移至目标存储器即可,而不需将数据解压缩。与前揭的实施例类似,不论是系统存储器120与一个模块存储器仿真成单一存储器硬盘,或是系统存储器120与二个以上的模块存储器仿真成单一存储器硬盘,存储器硬盘驱动模块130皆利用一个驱动程序及一个分页表来管理该存储器硬盘,并且对嵌入式装置100的操作系统而言,只需操作同一个设备档便可存取该存储器硬盘。 

请参阅图6,其系本发明的存取嵌入式装置的存储器硬盘的方法的一实施例的流程图。除前述的嵌入式装置外,本发明亦相对应地揭露了一种存取嵌入式装置的存储器硬盘的方法,能将多个存储器(系统存储器及/或模块存储器)仿真成单一个存储器硬盘,并挂载至操作系统供嵌入式装置的处理单元存取。本方法由前揭嵌入式装置100或其等效装置来执行。如图6所示,本发明的一 实施例包含下列步骤: 

步骤S610:提供第一存储器及第二存储器。嵌入式装置100提供第一存储器及第二存储器以仿真成嵌入式装置的存储器硬盘。第一存储器可以是嵌入式装置100的系统存储器120,或是模块存储器145及155的其中之一,第二存储器可以是模块存储器145及155的其中之一。模块存储器145及155分别用来储存功能模块140及150于工作状态时所需的程序代码与数据; 

步骤S620:管理分页表,使该分页表指示该存储器硬盘包含第一存储器,以及使该分页表指示该存储器硬盘依据功能模块是否处于工作状态选择性地包含第二存储器。分页表如图2所示,记录存储器硬盘的逻辑地址与物理地址的对应关系。当模块存储器所属的功能模块处于工作状态时,该模块存储器不能被用来仿真成存储器硬盘,此时分页表中的分页不应该指向该模块存储器,也就是说此时存储器硬盘不包含该模块存储器;相对的,当模块存储器所属的功能模块处于闲置状态时,分页表中的分页便可指向该模块存储器,使该模块存储器成为存储器硬盘的一部分;以及 

步骤S630:依据分页表控制该存储器硬盘的存取。同一个分页表中的不同分页可以对应至不同的存储器,因此当依据同一分页表存取存储器硬盘时,第一存储器及第二存储器被视为同一个存储器硬盘,也就是说藉由同一分页表可以将第一存储器及第二存储器整合为单一的存储器硬盘,使嵌入式装置100的操作系统认为存在一个容量等于第一存储器的容量及第二存储器的容量的总合的存储器硬盘,而非存在两个容量较小的存储器硬盘。在读取程序中,先依据分页表找出存储器的物理地址,再从该地址读取数据;在写入程序中,于数据写入后,依据所写入的存储器位置更新分页表。更详细的说,在一个较佳的实施例中,当存储器硬盘由系统存储器及模块存储器共同组成时,在写入的程序中,会优先写入模块存储器,当模块存储器存满后,再写入系统存储器。如此可以更妥善利用闲置中的模块存储器,进一步提升嵌入式系统的效能。 

承上所述,当第一存储器为系统存储器120时,因为系统存储器120的某些部分储存操作系统的程序代码及数据,因此步骤S630仅将系统存储器120中没有储存操作系统的程序代码的部分存储器区块整合至存储器硬盘,而不将储存操作系统的程序代码及数据的部分整合至存储器硬盘。再者,不论是第一 存储器或第二存储器,当该存储器所的属的功能模块于工作状态,则该存储器不被包含至存储器硬盘中;相反的,当该存储器所的属的功能模块于闲置状态,该存储器才能被包含至存储器硬盘中。 

除了上述的步骤之外,本方法还包含以下的步骤:当功能模块的存储器储存压缩的数据,并且该功能模块从闲置状态进入工作状态时,将该压缩的数据在压缩的状态下移动至其它的存储器,并且于移动后再更新分页表。动作的细节与原理已详述于前揭的装置发明中,故不再赘述。此外,本方法还包含提供第三存储器,并将第三存储器仿真成该存储器硬盘。此时存储器硬盘由系统存储器及两个模块存储器所仿真而成,其组成的比例已示例于前揭的装置发明中,故不再赘述。 

请参阅图7,其系本发明的存储器硬盘驱动模块130对存储器硬盘进行写入程序的示意图。写入命令710可能由嵌入式装置100正在执行的应用程序所发出,处理单元110将写入命令710传送至存储器硬盘驱动模块130,存储器硬盘驱动模块130的驱动程序层720向存储器池(memory pool)层730要求一个储存空间,于是存储器池层730依据驱动程序层720的请求向物理存储器770取得一个储存空间,也就是存储器池740,储存空间的大小系以一个分页为单位(例如4kB),并且,存储器池740在取得物理存储器770的储存空间时会分别透过模块存储器映射区750及系统存储器映射区760来选择从模块存储器或从系统存储器产生储存空间。举例来说,若模块存储器的优先级高于系统存储器,则存储器池740先参考模块存储器映射区750来取得储存空间,当模块存储器用尽时,存储器池740才参考系统存储器映射区760来取得储存空间。当然,系统存储器的优先权亦可以高于模块存储器,或者依需求进行其它配置,例如说当系统存储器被使用特定比例以下时系统存储器具有较高优先权,当系统存储器被使用特定比例以上时则改为模块存储器具有较高优先权。在物理存储器770上取得储存空间后,将待写入的数据写入该储存空间,最后依据刚才写入的物理存储器的位置更新分页表780。相较于写入程序,读取程序更为简单,且本技术领域具有通常知识者可由写入程序推及,故不再赘述。 

由于本技术领域具有通常知识者可藉由图1的装置发明的揭露内容来了解图6的方法发明的实施细节与变化,因此,为避免赘文,在不影响该方法发 明的揭露要求及可实施性的前提下,重复的说明在此予以节略。请注意,前揭图标中,组件的形状、尺寸、比例以及步骤的顺序等仅为示意,系供本技术领域具有通常知识者了解本发明之用,非用以限制本发明。另外,本技术领域人士可依本发明的揭露内容及自身的需求选择性地实施任一实施例的部分或全部技术特征,或者选择性地实施多个实施例的部分或全部技术特征的组合,藉此增加本发明实施时的弹性。再者,前揭实施例虽以智能型电视为例,然此并非对本发明的限制,本技术领域人士可依本发明的揭露适当地将本发明应用于其它类型的嵌入式装置。 

虽然本发明的实施例如上所述,然而该些实施例并非用来限定本发明,本技术领域具有通常知识者可依据本发明的明示或隐含的内容对本发明的技术特征施以变化,凡此种种变化均可能属于本发明所寻求的专利保护范畴,换言之,本发明的专利保护范围须视本说明书的申请专利范围所界定者为准。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号