64k环境限制下实现大单位结构存取的方法

文档序号:6468181阅读:155来源:国知局
专利名称:64k环境限制下实现大单位结构存取的方法
技术领域
本发明是有关于一种数据存取的方法,且特别是有关于一种在64k环境限制下的 数据存取的方法。
背景技术
由于Option R0M(0PR0M)或是DOS作业环境是属于16位的作业环境,其作业空间 的大小为2的16次方个位,即65536位,即64k的长度。由于程序的功能中的变量值多是 存放在堆叠中,但受限于作业环境的大小,在此种64k环境作业中的程序所存取的数据结 构也多限制在64k以内,以避免因重复堆叠的关系,而导致计算错误,使得我们无法取得堆 叠中结构的正确位置。 虽然过去使用者会尽量避免在64k作业环境中使用大于64k的数据结构,但若是 无可避免的需要在64k的作业环境下,如0PR0M或是DOS操作系统中,存取大单位结构(即 长度大于64k的结构)时,传统的做法多是将此大单位结构存在硬盘之中,当64k作业环境 下的程序需要此大单位结构中的某个字段(attribute)时,再去硬盘中存取此字段。
此种将大单位结构存在硬盘中,在需要时才去硬盘中存取的方法,虽可解决堆叠 时计算错误的问题,但会花费大量的输入输出(input/output ;10)时间,而若是将此大单 位结构直接写入64k的内存中,又会遇到前述的堆叠的问题。 因此,如何节省在64k作业环境下存取大单位结构时所花费的时间,且不因堆叠 而导致计算错误的情形,便成为一个相当重要的课题。

发明内容
因此本发明的目的在于提供一种64k环境限制下实现大单位结构存取的方法,用 以解决大单位结构存取时所遇到的堆叠问题。 本发明的另一 目的在于不透过硬盘存放64k作业环境中所使用的大单位结构,以 节省输入/输出所耗费的时间。 为了实现上述目的,本发明提出了一种在64k环境限制实现大单位结构存取的方 法,其包含改变一大单位结构为多个子结构,其中每一子结构的一长度为小于64k;接着, 利用自我测试内存管理器配置一大单位内存空间;以及将子结构存放于大单位内存空间之 中。 其中改变大单位结构为多个子结构的步骤包含拆解大单位结构为多个子结构,或 是切割大单位结构为子结构。其中自我测试内存管理器是在自我测试(POST)情形下配置 出大单位内存空间。此大单位内存空间较佳地为配置位于1MB以上内存空间的大单位内存 空间。 本方法还包含分别计算子结构的一起始位置,其包含有记录大单位内存空间的起 始位置与分别记录子结构的长度。此方法还包含有读取一指定字段,其中包含计算指定字 段位于其所在的子结构中的一偏移值,叠加指定字段所在的子结构的起始位置与偏移值,
3以得到读取位置,最后,透过自我测试内存管理器读取此指定字段。 本发明所提供的在64k环境限制下实现大单位结构存取的方法,可透过自我测试 内存管理器将大单位结构改变为多个长度在64k以内的子结构,并将这些子结构存放在 1MB以上的内存空间之中,以不影响0PR0M程序的运作。并透过特殊的自我测试内存管理器 的读取方法,直接读取位于1MB以上的内存空间中的子结构的字段的值。


为让本发明的上述和其它目的、特征、优点与实施例能更明显易懂,所附附图的详 细说明如下 图1A与图1B是应用本发明的一种64k环境限制下实现大单位结构存取的方法第 一实施例的示意图; 图2是本发明的一种64k环境限制下实现大单位结构存取的方法的第二实施例的
示意图;
流程图










图3是本发明的一种64k环境限制下实现大单位结构存取的方法的第三实施例的
图4为此大单位结构存取时一实施例的示意图5是本发明的64k环境限制下实现大单位结构存取的方法;
图6为此大单位结构存取时另一实施例的示意图。
主要组件符号说明
100 :大单位结构
120、120':第二子结构
200 ;大单位结构 220 :第二子结构
310 346 :步骤
410 :第一子结构 430 ;第三子结构
H0、110':第一子结构
130、 130':第三子结构
210 :第一子结构 230 :第三子结构
400 :大单位结构 420 :第二子结构
432 :指定字段
具体实施例方式
以下将以附图及详细说明清楚说明本发明的精神,任何所属技术领域中具有通常
知识者在了解本发明的较佳实施例后,当可由本发明所教示的技术,加以改变及修饰,其并 不脱离本发明的精神与范围。 由于大单位结构无法直接地在如0PR0M或是DOS等64k的作业环境下进行存取, 因此,本发明便提出了一种可在64k环境限制下实现大单位结构存取的方法,其可将此大 单位结构拆解成为多个长度小于64k的子结构,并透过自我测试内存管理器(POST memory manager ;PPM)配置出一大单位内存空间存放这些子结构,以有效地读取大单位结构而不 会遇到堆叠的问题。 参照图1A与图1B,其是应用本发明的一种64k环境限制下实现大单位结构存取的 方法第一实施例的示意图。图1A为提供一大单位结构100,本实施例中的大单位结构100 的初始状态为由多个子结构110、120、130所组合而成,其中第一子结构110中包含有第二子结构120,而第二子结构120中又包含有第三子结构130,因此,使得大单位结构100在宣 告时的长度极大,而无法在64k作业环境下直接存取。 图lB中,本发明的在64k环境限制下实现大单位结构存取的方法可对此大单位结 构100进行拆解,以在宣告时将大单位结构100拆解为多个子结构。其中,第三子结构130' 被独立拆解出来,拆解后的第二子结构120,已经不包含第三子结构130'。同样地,拆解后 的第一子结构110'也不包含第二子结构120'。如此一来,程序可分别对拆解之后的第一子 结构110'、第二子结构120'、与第三子结构130'进行宣告。 其中,拆解后的第一子结构110'、第二子结构120'、与第三子结构130'的长度大 小较佳地为在拆解之后均小于64k,以符合在64k环境限制中的堆叠的规定,使第一子结构 110'、第二子结构120'、与第三子结构130'可存放在64k的作业环境之中。若是第一子结 构110'、第二子结构120'、与第三子结构130'在拆解后的大小仍大于64k,则可透过本发明 的第二实施例,将其长度进一步地限制在64k之中。 参照图2,其是本发明的一种64k环境限制下实现大单位结构存取的方法的第二 实施例的示意图。本实施例为将大单位结构200切割为多个子结构210、220、230,其中每一 个子结构210、220、230在切割的长度均小于64k,使这些子结构210、220、230可存放在64k 的作业环境的下。 透过前述两个实施例的应用,不论是仅用其中之一或是透过两者的搭配,本发明 的64k环境限制下实现大单位结构存取的方法可将原本的大单位结构改变为多个长度在 64k之内的子结构,使这些子结构可直接地存放在64k的作业环境之中,而不会遇到堆叠的 问题。 参照图3,其是本发明的一种64k环境限制下实现大单位结构存取的方法的第三 实施例的流程图。本实施例中,步骤310为改变大单位结构为多个子结构,其中每一个子 结构的长度均为小于64k。接着,步骤320为利用一自我测试内存管理器(POST memory manager ;PPM)配置一大单位内存空间,接着,步骤330为将这些长度小于64k的子结构存 放在此大单位内存空间之中。 步骤310中所述的改变大单位结构为多个子结构的长度在64k以内的子结构,或 是如第二实施例中所述的将大单位结构切割为多个长度在64k以内的子结构,又或者可结 合第一实施例与第二实施例,将大单位结构经过拆解与切割后,变成多个长度在64k的内 的子结构。 步骤320中,自我测试内存管理器(PPM)是在自我测试(power on self test ; POST)的情形下,特别是在big real mode的模式下,配置出此大单位内存空间。此大单位 内存空间较佳地为位于1MB以上的内存空间。而OPROM在一般进行自我测试的程序在执行 时多是位于1MB以下的内存空间,因此,此大单位结构所存放的位置不会占用OPROM程序在 执行时所处在的1MB以下内存空间。 步骤330中,还包含回传所分配的内存的起始位置,并据此计算每一个子结构的 起始位置。如图4所示的此大单位结构存取时的示意图。此大单位结构400可转换为多个 子结构410、420、430,这些子结构410、420、430为透过自我测试内存管理器(P匪)存放在 1MB以上的内存空间。其中,大单位结构400所存放的大单位内存空间的起始位置即为第一 子结构410的起始位置,而第二子结构420的起始位置即为第一子结构410的起始位置加上第一子结构410的大小,而第三子结构430的起始位置则为第二子结构420的起始位置 加上第二子结构420的大小。 参照图5,其是本发明的64k环境限制下实现大单位结构存取的方法,其中还包含 步骤340的读取一指定字段。同时参照图6,假设本次读取的指定字段432为位于第三子结 构430之中,步骤342则包含有计算此指定字段432位于第三子结构430中的一偏移值,接 着,步骤344为叠加第三子结构430的起始位置与此偏移值,即第一子结构410的起始位置 加上第一子结构410的大小,再加上第二子结构420的大小,再加上偏移值,以得到指定字 段432 —读取位置。最后,步骤346为根据此读取位置读取指定字段432中的数据。
由上述本发明较佳实施例可知,应用本发明具有下列优点。本发明所提供的在64k
环境限制下实现大单位结构存取的方法,可透过自我测试内存管理器将大单位结构改变为 多个长度在64k以内的子结构,并将这些子结构存放在1MB以上的内存空间之中,以不影响 0PR0M程序的运作。并透过特殊的自我测试内存管理器的读取方法,直接读取位于1MB以上 的内存空间中的子结构的字段的值。 虽然本发明已以一较佳实施例揭露如上,然其并非用以限定本发明,任何熟悉此 技术的人员,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保 护范围当视后附的权利要求书所界定的范围为准。
权利要求
一种64k环境限制下实现大单位结构存取的方法,其特征在于,包含改变一大单位结构为多个子结构,其中每一子结构的一长度为小于64k;利用一自我测试内存管理器配置一大单位内存空间;以及将该多个子结构存放于该大单位内存空间。
2. 根据权利要求1所述的64k环境限制下实现大单位结构存取的方法,其特征在于,改 变一大单位结构为多个子结构的步骤包含拆解该大单位结构为该多个子结构。
3. 根据权利要求l所述的64k环境限制下实现大单位结构存取的方法,其特征在于,改 变一大单位结构为多个子结构的步骤包含切割该大单位结构为该多个子结构。
4. 根据权利要求l所述的64k环境限制下实现大单位结构存取的方法,其特征在于,该 自我测试内存管理器是在一自我测试情形下配置出该大单位内存空间。
5. 根据权利要求l所述的64k环境限制下实现大单位结构存取的方法,其特征在于,配 置一大单位内存空间的步骤包含利用该自我测试内存管理器配置位于1MB以上内存空间 的该大单位内存空间。
6. 根据权利要求l所述的64k环境限制下实现大单位结构存取的方法,其特征在于,还包含分别计算该多个子结构的一起始位置。
7. 根据权利要求6所述的64k环境限制下实现大单位结构存取的方法,其特征在于,包 含记录该大单位内存空间的一起始位置与分别记录该多个子结构的一长度。
8. 根据权利要求1所述的64k环境限制下实现大单位结构存取的方法,其特征在于,还包含读取一指定字段。
9. 根据权利要求8所述的64k环境限制下实现大单位结构存取的方法,其特征在于,还包含计算该指定字段位于其所在的该子结构中的一偏移值。
10. 根据权利要求9所述的64k环境限制实现大单位结构存取的方法,其特征在于,还包含叠加该指定字段所在的该子结构的一起始位置与该偏移值,以得到一读取位置。
全文摘要
本发明涉及一种在64k环境限制实现大单位结构存取的方法,其包含改变一大单位结构为多个子结构,其中每一子结构的一长度为小于64k;接着,利用自我测试内存管理器配置一大单位内存空间;以及将多个子结构存放于大单位内存空间之中,特别是位于1MB以上的内存空间。
文档编号G06F9/34GK101739240SQ200810179120
公开日2010年6月16日 申请日期2008年11月25日 优先权日2008年11月25日
发明者陈重江 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1