一种存储器管理方法

文档序号:6608374阅读:263来源:国知局
专利名称:一种存储器管理方法
技术领域
本发明是关于一种存储器管理方法,特别是关于一种配置保留区域的存储器管理方法。
背景技术
不论是早期的MS-DOS操作系统,还是近年由微软所开发的Windows操作系统,在进入操作系统前,所有计算机皆需要执行开机程序。
简单来说,在加载操作系统前,计算机的中央处理器(CPU)是从基本输入输出系统(BIOS)加载开机程序来执行,并且将基本输入输出系统中指令的数据结构或是其它数据存入延伸基本输入输出数据区域(Extend Bios DataArea)中。接着,外围装置比如说,显示卡、网络卡、或声卡等被启动与检测。在这些外围装置的固件中,指令的数据结构或是其它数据亦可存入延伸基本输入输出数据区域中。
一般而言,延伸基本输入输出数据区域的范围是位于系统存储器的地址A000:0至地址9000:0,其大小为64kb,操作系统并不会对这个保留区域进行存储器配置。
当这些外围装置检测完毕之后,中央处理器执行操作系统的程序代码并加载操作系统的数据于系统存储器中。在操作系统下,当需存取一个外围装置时,中央处理器根据储存于延伸基本输入输出数据区域内此外围装置的指令数据结构来建立操作指令以对此外围装置进行存取操作。
然而,若外围装置越来越多,则延伸基本输入输出数据区域恐将不足以储存数据。若依照前述的配置方法,则部分装置的数据会被存入至系统存储器中延伸基本输入输出数据区域以外的位置,导致这些数据可能被操作系统下其它的程序所覆写而流失,造成这些对应的外围装置将无法存取,严重时,更会使整个计算机无法正确地运作。
承上所述,如何保留足够的存储器空间以储存外围固件的数据,藉以改善已知延伸基本输入输出数据区域的空间不足的缺点,为计算机产业的一大课题。

发明内容
有鉴于上述课题,本发明的目的为提供一种存储器管理方法与计算器装置以保留足够的存储器空间以储存外围固件的数据。
本发明提供一种存储器管理方法,包含下列步骤自基本输入输出系统加载存储器配置初始码于系统存储器中;执行存储器配置初始码以从系统存储器的物理最高地址配置第一扩充区块,并储存第一外围固件的第一数据或基本输入输出系统的数据于第一扩充区块。
另外,本发明亦提供一种计算器装置,包含至少一外围固件、基本输入输出系统、系统存储器、及中央处理单元。其中,基本输入输出系统储存存储器配置初始码;中央处理单元自基本输入输出系统加载存储器配置初始码于系统存储器中,并执行存储器配置初始码以从系统存储器的物理最高地址配置至少一扩充区块,且储存外围固件的数据或基本输入输出系统的数据于扩充区块。
承上所述,因依据本发明的存储器管理方法与计算器装置中,是自系统存储器的物理最高地址来配置扩充区块,以取代已知的延伸基本输入输出数据区域,且可根据外围固件的个数以配置相对应数目的扩充区块,各扩充区块足以容纳用来存取各外围固件所需的数据。如此一来,便可改善已知延伸基本输入输出数据区域存储器空间不足的问题。


图1为依据本发明实施例的一种计算器装置的示意图;图2为应用本发明实施例存储器管理方法的系统存储器配置图;图3为依据本发明实施例存储器管理方法的流程图;以及图4为应用本发明实施例存储器管理方法的系统存储器配置图。
元件标号说明1计算器装置11外围装置111第一外围装置112第二外围装置
11(N+1)第N+1外围装置12基本输入输出系统13系统存储器130延伸基本输入输出数据区域131第一扩充区块131a第一标头区块131b第一数据区块132第二扩充区块132a第二标头区块132b第二数据区块133第三扩充区块133a第三标头区块133b第三数据区块13N第N扩充区块13Na第N标头区块13Nb第N数据区块13(N+1)第N+1扩充区块13(N+1)a第N+1标头区块13(N+1)b第N+1数据区块14中央处理器S01~S05存储器管理方法步骤Addr2第二扩充区块的起始地址Addr3第三扩充区块的起始地址Addr4第四扩充区块的起始地址AddrN+1第N+1扩充区块的起始地址具体实施方式
以下将参照相关图式,说明依据本发明较佳实施例的存储器管理方法与计算器装置。
请参考图1所示,计算器装置1包含外围装置11、基本输入输出系统12、系统存储器13、以及中央处理器14等元件,计算器装置1为个人计算机、服务器、准系统等等。
通常计算机1在加载操作系统前需执行开机程序以检测计算机1的外围装置11,之后方进入操作系统。基本输入输出系统12储存存储器配置初始码,在开机过程中,中央处理单元14执行存储器配置初始码以从系统存储器13的物理最高地址配置至少一扩充区决,并储存外围固件的数据于扩充区块,外围固件举例来说可以是外围装置11中固件。
请参考图2所示,图2为应用本发明较佳实施例存储器管理方法的系统存储器13配置图。
前述执行存储器配置初始码后配置的扩充区块系标记为131,扩充区块131可储存外围装置11固件中的数据,此数据是记录用来存取外围装置11的指令格式或数据结构。另外,扩充区块131包含有标头区块131a及数据区块131b。于本实例中,数据区块131b储存此外围装置11固件中的数据,其大小是根据外围装置11所需而定。标头区块131a记录整个扩充区块131的总长度。
当电子计算装置1已加载操作系统之后,便可运用扩充区块131所储存的数据来建立存取外围装置111的指令。
除此之外,扩充区块131亦可先用来储存BIOS的数据,之后可接在扩充区块131旁再配置另一个扩充区块来储存外围装置的固件数据。如何配置多个扩充区块将于以下实施例中说明。
上文针对电子计算装置1的其中一个外围装置来作说明,但是,通常电子计算装置1包含多个外围装置,比如说,显示卡、声卡、或网络卡,因此,以下将说明,当电子计算装置具有N+1个外围装置时存储器管理方法如何运作。
请同时参考图3及图4所示,图3为依据本发明较佳实施例管理方法的流程图。此存储器管理方法是用于N+1个外围装置的情况,其包含有下列步骤S01~S06,图1的中央处理器14可执行以下步骤以便在存储器中配置扩充区块S01加载存储器配置初始码S02配置扩充区块S03储存外围固件的数据S04是否配置下一扩充区块,若步骤S04为是,则返回步骤S02以配置下一扩充区块。
S05若步骤S04为否,则结束配置存储器。
存储器配置初始码被加载后是被中央处理器14执行,以便从系统存储器13的物理最高地址(Top_mem)开始配置足够数量的扩充区块来储存各外围装置固件的数据结构或指令格式。
然后,执行第一次的步骤S02~S04以便从系统存储器13的物理最高地址(Top_mem)配置第一扩充区块131(步骤S02),并储存第一个外围装置11固件中的数据。接着,执行完第二次的步骤S02~S04以便从系统存储器13的物理最高地址减去第一扩充区块131长度之处来配置第二扩充区块132,第二扩充区块132用以储存第二个外围装置112的固件的第二数据。若有N+1个外围装置,则前述步骤S02~S04将执行N+1次,并于第N+1次时来配置第N+1个扩充区块,第N+1个扩充区块13(N+1)用以储存第N+1个外围装置11的固件的数据,第N+1个扩充区块的起始地址可由式1所计算出,其中Addr1、AddrN以及AddrN+1分别为第1、第N以及第N+1个扩充区块的起始地址AddrN+1=Top_mem-∑i=0N(Lenthi+1)(式1),其中Lenthi+1为第i+1个扩充区块长度;也就是说,这些扩充区块是从物理最高地址依序往低地址相邻排列,各区块的开头是物理最高地址减去的前全部扩充区块的总长度。
举例来说,在本实施例中,各个扩充区块具有标头区块及数据区块。因此在步骤S02中,配置扩充区块之前,每一扩充区块的标头区块被读取以得知每一扩充区块的长度,且每一扩充区的长度被加总,再以物理最高地址减去所有扩充区块的总长度,并由此处的地址为起始再配置另一扩充区块。
例如要配置第N+1个扩充区块则须先将第1至第N个扩充区块的长度加总以得到总长度,再以物理最高地址减去第1至第N个扩充区块的总长度以得到第N+1个扩充区块的起始地址,并于此起始地址配置第N+1个扩充区块。
另外,在步骤S05之后系继续开机程序,计算器装置便可加载操作系统。当操作系统询问系统存储器的大小时,中央处理器执行BIOS的存储器大小程序来响应,该程序是将物理最高地址减去所有的扩充区块长度来作为响应,因此,操作系统看到的系统存储器大小将是排除扩充区块的区域,并不会对扩充区块的存储器部分进行配置。
再者,配置各扩充区域时,可一并将各扩充区域与各外围装置的对应表储存于原始的延伸基本输入输出数据区域130中,若操作系统或其它程序、软硬件装置等需欲存取外围装置时,操作系统收到中断指令之后便呼叫服务例程,此服务例程可依据该对应表至对应的扩充区块中读取外围装置的指令格式或数据结构,并响应此外围装置的数据至操作系统。操作系统根据外围装置的指令格式或数据结构建立存取外围装置的指令,以便存取此外围装置。
此外,在另一实施例中,于第一次执行步骤S02来配置扩充区块时仅需于在第一扩充区块的标头区块储存所有扩充区块长度,如此一来,其它扩充区块无需具有标头区块来储存每一扩充区块的长度。接着,在后续执行步骤S02时读取第一标头区块以得知所有扩充区块的总长度,因此便可在物理最高地址减去总长度之处来配置另一新增的扩充区块。配置完新增的扩充区块后,随即更新第一标头区块所储存的所有扩充区块的总长度。
当操作系统询问系统存储器的大小时,存储器大小程序是将物理最高地址减去第一标头区块所记录的长度来作为响应,因此,操作系统看到的系统存储器大小将是排除扩充区块的区域,并不会对扩充区块的存储器部分进行配置。
承上所述,因依据本发明的存储器管理方式,是自系统存储器的物理最高地址配置扩充区块,以取代已知的延伸基本输入输出数据区域,且可根据外围固件的个数以配置相对应数目的扩充区块,各扩充区块足以容纳用来存取各外围固件所需的数据。如此一来,可改善已知延伸基本输入输出数据区域存储器空间不足的问题。
以上所述仅为举例性,而非为限制性者。任何未脱离本发明的精神与范畴,而对其进行的等效修改或变更,均应包含于所附的权利要求范围中。
权利要求
1.一种存储器管理方法,包含自基本输入输出系统加载存储器配置初始码于系统存储器中;执行该存储器配置初始码以从该系统存储器的物理最高地址配置第一扩充区块,并储存第一外围固件的第一数据或该基本输入输出系统的数据于该第一扩充区块。
2.根据权利要求1所述的存储器管理方法,其中该加载步骤是储存该初始码于该系统存储器的延伸基本输入输出数据区域。
3.根据权利要求1所述的存储器管理方法,其中该第一扩充区块包含第一标头区块及第一数据区块,其中该第一标头区块记录该第一数据区块的长度,该第一数据区块记录该第一外围固件的该第一数据或该基本输入输出系统的数据。
4.根据权利要求1所述的存储器管理方法,还包括再次执行该存储器配置初始码,将该物理最高地址减去该第一扩充区块的长度来产生配置地址,并于该配置地址配置第二扩充区块,且储存第二外围固件的第二数据或该基本输入输出系统的数据于该第二扩充区块。
5.根据权利要求4所述的存储器管理方法,其中该第二扩充区块包含第二标头区块及第二数据区块,其中该第二标头区块记录该第二数据区块的长度,该第二数据区块记录该第二外围固件的该第二数据或该基本输入输出系统的数据。
6.根据权利要求1所述的存储器管理方法,其中该第一扩充区块至第N扩充区块是已配置于该系统存储器中,该方法还包括再次执行该存储器配置初始码,将该物理最高地址减去该第一扩充区块至第N扩充区块的总长度来产生配置地址,并于该配置地址配置第N+1扩充区块,且储存第N+1外围固件的第N+1数据或该基本输入输出系统的数据于该第N+1扩充区块。
7.根据权利要求6所述的存储器管理方法,其中该第N+1扩充区块包含第N+1标头区块及第N+1数据区块,其中该第N+1标头区块记录该第N+1数据区块的长度,该第N+1数据区块记录该第N+1外围固件的该第N+1数据或该基本输入输出系统的数据。
8.根据权利要求3所述的存储器管理方法,还包括再次执行该存储器配置初始码,将该物理最高地址减去该第一扩充区块的长度来产生配置地址,于该配置地址配置第二扩充区块,并将该第一扩充区块与该第二扩充区块的总长度记录于该第一扩充区块的该第一标头区块,且储存第二外围固件的第二数据或该基本输入输出系统的数据于该第二扩充区块。
9.根据权利要求3所述的存储器管理方法,还包括再次执行该存储器配置初始码,将该物理最高地址减去该第一扩充区块至第N扩充区块的总长度来产生配置地址,于该配置地址配置第N+1扩充区块,并将该第一扩充区块至该第N+1扩充区块的总长度记录于于该第一扩充区决的该第一标头区块,且储存第N+1外围固件的第N+1数据或该基本输入输出系统的数据于该第N+1扩充区块。
10.根据权利要求1所述的存储器管理方法,当系统服务被呼叫之后,该方法还包括读取该第一扩充区块内该第一外围固件的该第一数据;以及根据该第一数据建立操作指令以对该第一外围固件执行该操作指令。
全文摘要
一种存储器管理方法,包含下列步骤自基本输入输出系统加载存储器配置初始码于系统存储器中;执行存储器配置初始码以从系统存储器的物理最高地址配置第一扩充区块,并储存第一外围固件的第一数据或基本输入输出系统的数据于第一扩充区块。另外,本发明亦揭露一种计算器装置。
文档编号G06F9/445GK101021798SQ20071009183
公开日2007年8月22日 申请日期2007年3月23日 优先权日2007年3月23日
发明者陈仁杰 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1