用于实时应用的嵌入式存储器管理方案的制作方法_2

文档序号:9383074阅读:来源:国知局
器管理方案是使用动态存储器分配来完成的。动态存储器分配是通过以下来是实现的:使用动态存储器管理器以及控制该管理器首先确定对于分配到程序的可用的存储器设备的类型和对于在每个类型的存储器设备中分配可用的空间的量。当实时程序被调用或者被嵌入式系统或不同的外围设备所需要时,动态存储器管理器确定将由特定计算机程序所需要的存储器设备的类型和由该程序需要的存储器空间的量。还确定在该程序所需要的特定类型的存储器设备中实际上可用且可以被分配给用于供计算机程序所使用的程序的空间。如果在特定类型的存储器设备中可以被分配给特定程序的存储器空间的量大于或等于由计算机程序所需要的存储器空间的量,则动态存储器管理器将由程序所请求的计算机数据加载到所需要类型的存储器设备中以及使计算机或CPU能够使用来自该存储器设备的数据来执行该程序。
[0018]和在现有技术嵌入式系统中使用的静态存储器分配不同,本文公开的装置和方法可以动态地将数据段分配给最佳存储器设备以便向系统或外围设备提供服务来最好地服务于基于程序的关键程度的需求。
[0019]如果由特定程序所需要的特定类型的存储器设备中可用的存储器空间的量小于由计算机程序所需要的存储器空间的量,则动态存储器管理器继续确定在更慢的或第二类型的存储器设备中可用的空间。如果在更慢的第二类型的存储器设备中可用的存储器空间的量大于或等于在更快类型的存储器设备中由计算机程序所需要的存储器空间的量,则动态存储器管理器加载程序或允许程序使用来自第二类型存储器设备的数据。然后可以至少使用稍微更慢的第二类型的存储器设备来执行该程序。
[0020]图3是描绘了在嵌入式计算机系统中管理存储器以使得实时应用(程序)能够共享它们需要的存储器设备的类型以及可能消除或降低实际需求的高速存储器的量的方案或方法的流程图。在图3中描绘的“emalloc”函数301的语法与现有技术malloc函数的语法略有不同。和在图2中描绘的malloc方法步骤不同,在步骤302处,动态存储器管理器(诸如在图4中示出的那一个)首先确定构成嵌入式系统的各种类型的存储器设备。在步骤302处执行的确定优选地被实现为简单地读取(典型地存储在存储器中的)表格中的条目。
[0021]在步骤302处确定可用存储器设备的类型之后,在步骤304处,确定在emalloc变元中请求的特定类型的设备中的未被使用且因此可用于供程序所使用的位置,并且将其与在emalloc变元(即在emalloc变元中的“大小”参数)中所需要的存储器的量相比较。
[0022]如果在emalloc变元中指定的存储器的量是在emalloc变元中指定的存储器设备的类型中可用的,则依靠emalloc编译器命令由程序所请求的存储器分配由动态存储器管理器来分配。在步骤308处,在特定类型的设备中程序请求存储块的地址被返回。然后加载该程序并且从该存储器设备执行该程序。
[0023]仍然参考图3,存储器管理方案与现有技术不同的是,如果在步骤304处执行的测试失败,即在所请求类型的设备中可用的存储器是不充足的或者所请求的存储器类型在系统中不存在,则该方法继续进行到步骤310,在那里做出是否可能存在可用的其他类型存储器的确定,程序可以被加载到所述可用的其他类型存储器中并且在其中被执行。如果存在其他类型的存储器,步骤312、302和304确定所请求的存储器的量是否可以被加载到次最佳类型的存储器设备(通常是次最快类型的存储器)中。如果不存在其他存储器设备,方法300在步骤314处失败并且返回空指针,其指示程序不能够被加载到任何存储器中。
[0024]图4是配置有动态存储器管理器402的嵌入式计算机系统400的框图,所述动态存储器管理器402被配置成执行在图3中所描绘且在以上所描述的步骤。
[0025]可以以软件或硬件来实现的动态存储器管理器402经由常规总线412操作地耦合到CPU 404和存储器设备406、408和410。各种外围设备414也经由总线412耦合到CPU404。
[0026]图5是动态存储器管理器500的框图。处理器或CPU 502耦合到一个或多个非临时性存储器设备504,诸如是上文所描述的存储器设备并且其存储可以被处理器/CPU 502执行的程序指令506、508。当执行指令时,这些指令使处理器/CPU 502来实行图3中描绘的且在上文描述的步骤。
[0027]如本文中所使用的,总线被认为是在计算机系统中电气并联的导线的集合,其形成用于控制信号、地址信息和数据的传输路径。在图5中,常规的地址/数据/控制总线502。总线510使处理器/CPU能够与各种外围设备进行通信,各种外围设备为了简洁起见在图5中被省略。
[0028]前述描述是为了说明目的。本发明的真实范围在随附的权利要求中被阐述。
【主权项】
1.一种将要由处理器执行的计算机程序的数据段分配给从位于耦合到处理器的多个不同类型的可用存储器设备中的多个区域中选择的存储器区域的方法,该方法包括: 确定要由计算机程序使用的第一类型的存储器设备; 确定由计算机程序所需要的存储器空间的量; 确定在第一类型的存储器设备中可用的空间,所述空间能够被分配以供计算机程序所使用; 如果在第一类型的存储器设备中能够被分配给第一程序的存储器空间的量大于或等于由计算机程序所需要的存储器空间的量,则将计算机程序加载到第一类型的存储器设备中;以及 使用来自第一类型的存储器设备的数据段来执行所述计算机程序。2.根据权利要求1所述的方法,进一步包括:确定耦合到处理器的不同类型的存储器设备。3.根据权利要求2所述的方法,其中多个不同类型的存储器设备耦合到处理器,该方法进一步包括: 如果在第一类型的存储器设备中可用的存储器空间的量小于由计算机程序所需要的存储器空间的量,则确定在第二类型的存储器设备中可用的空间以供程序使用; 如果在第二类型的存储器设备中可用的存储器空间的量大于或等于由计算机程序所需要的存储器空间的量,则将该程序加载到第二类型的存储器设备中;以及 使用来自第二类型的存储器设备的数据段来执行该程序。4.根据权利要求3所述的方法,其中第一类型的存储器设备比第二类型的存储器设备更快。5.一种用于动态地将存储器分配给非临时性存储器设备的存储器管理器,该存储器管理器包括: 存储器类型确定器,其耦合到第一和第二不同类型的存储器设备,该存储器类型确定器被配置成确定其所耦合到的存储器设备的类型并且确定在每个类型的存储器设备中的程序可使用空间;以及 存储器大小分配器,其被配置成响应于由程序进行的用以在特定类型的存储器设备中分配第一程序可使用空间的请求来在所述特定类型的存储器设备中分配所述第一程序可使用空间。6.根据权利要求1所述的存储器管理器,其中所述存储器类型确定器和存储器大小分配器包括: 处理器;以及 存储器设备,其耦合到该处理器并且存储程序指令,所述程序指令当被执行时使该处理器: 确定处理器所耦合到的存储器设备的类型;以及 响应于由在处理器上运行的程序进行的请求来在耦合到处理器的特定类型的存储器设备中分配程序可使用空间。7.根据权利要求2所述的存储器管理器,其中该处理器包括实时控制系统。8.根据权利要求3所述的存储器管理器,其中该处理器操作地耦合到由处理器控制的多个外围设备。9.根据权利要求1所述的存储器管理器,其中第一类型的存储器设备比第二类型的存储器设备更快。
【专利摘要】存储器在嵌入式计算机系统中被动态地共享或分配。首先确定作为该系统的一部分的存储器的类型。其后,确定可用于供使用的存储器的量。根据所需要的空间的量来确定由程序或应用所需要的存储器的类型。如果在第一类型的所请求的存储器中可以被分配给程序的存储器空间的量大于或至少等于由计算机程序所需要的存储器空间的量,那么该程序被加载到可用存储器中。如果所请求类型的储器不可用或者没有足够的所请求的存储器可用,如果在其他类型的存储器设备中的一个或多个中存在充足的空间,则考虑和使用该其他类型的存储器设备。
【IPC分类】G06F12/08
【公开号】CN105103138
【申请号】CN201480019761
【发明人】B.乔施
【申请人】大陆汽车系统公司
【公开日】2015年11月25日
【申请日】2014年4月1日
【公告号】DE112014001815T5, US20140304485, WO2014165514A1
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1