本發明專利技術涉及一種在64k環境限制實現大單位結構存取的方法,其包含改變一大單位結構為多個子結構,其中每一子結構的一長度為小于64k;接著,利用自我測試內存管理器配置一大單位內存空間;以及將多個子結構存放于大單位內存空間之中,特別是位于1MB以上的內存空間。
【技術實現步驟摘要】
本專利技術是有關于一種數據存取的方法,且特別是有關于一種在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;接著, 利用自我測試內存管理器配置一大單位內存空間;以及將子結構存放于大單位內存空間之 中。 其中改變大單位結構為多個子結構的步驟包含拆解大單位結構為多個子結構,或 是切割大單位結構為子結構。其中自我測試內存管理器是在自我測試(POST)情形下配置 出大單位內存空間。此大單位內存空間較佳地為配置位于1MB以上內存空間的大單位內存 空間。 本方法還包含分別計算子結構的一起始位置,其包含有記錄大單位內存空間的起 始位置與分別記錄子結構的長度。此方法還包含有讀取一指定字段,其中包含計算指定字 段位于其所在的子結構中的一偏移值,疊加指定字段所在的子結構的起始位置與偏移值,3以得到讀取位置,最后,透過自我測試內存管理器讀取此指定字段。 本專利技術所提供的在,可透過自我測試 內存管理器將大單位結構改變為多個長度在64k以內的子結構,并將這些子結構存放在 1MB以上的內存空間之中,以不影響0PR0M程序的運作。并透過特殊的自我測試內存管理器 的讀取方法,直接讀取位于1MB以上的內存空間中的子結構的字段的值。附圖說明 為讓本專利技術的上述和其它目的、特征、優點與實施例能更明顯易懂,所附附圖的詳 細說明如下 圖1A與圖1B是應用本專利技術的一種第 一實施例的示意圖; 圖2是本專利技術的一種的第二實施例的示意圖; 流程圖 圖3是本專利技術的一種的第三實施例的圖4為此大單位結構存取時一實施例的示意圖5是本專利技術的;圖6為此大單位結構存取時另一實施例的示意圖。主要組件符號說明100 :大單位結構120、120':第二子結構200 ;大單位結構 220 :第二子結構310 346 :步驟410 :第一子結構 430 ;第三子結構H0、110':第一子結構130、 130':第三子結構210 :第一子結構 230 :第三子結構400 :大單位結構 420 :第二子結構432 :指定字段具體實施例方式以下將以附圖及詳細說明清楚說明本專利技術的精神,任何所屬
中具有通常知識者在了解本專利技術的較佳實施例后,當可由本專利技術所教示的技術,加以改變及修飾,其并 不脫離本專利技術的精神與范圍。 由于大單位結構無法直接地在如0PR0M或是DOS等64k的作業環境下進行存取, 因此,本專利技術便提出了一種可在,其可將此大 單位結構拆解成為多個長度小于64k的子結構,并透過自我測試內存管理器(POST memory manager ;PPM)配置出一大單位內存空間存放這些子結構,以有效地讀取大單位結構而不 會遇到堆疊的問題。 參照圖1A與圖1B,其是應用本專利技術的一種64k環境限制下實現大單位結構存取的 方法第一實施例的示意圖。圖1A為提供一大單位結構100,本實施例中的大單位結構100 的初始狀態為由多個子結構110、120、130所組合而成,其中第一子結構110中包含有第二子結構120,而第二子結構120中又包含有第三子結構130,因此,使得大單位結構100在宣 告時的長度極大,而無法在64k作業環境下直接存取。 圖lB中,本專利技術的在可對此大單位結 構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,其是本專利技術的一種的第二 實施例的示意圖。本實施例為將大單位結構200切割為多個子結構210、220、230,其中每一 個子結構210、220、230在切割的長度均小于64k,使這些子結構210、220、230可存放在64k 的作業環境的下。 透過前述兩個實施例的應用,不論是僅用其中之一或是透過兩者的搭配,本專利技術 的可將原本的大單位結構改變為多個長度在 64k之內的子結構,使這些子結構可直接地存放在64k的作業環境之中,而不會遇到堆疊的 問題。 參照圖3,其是本專利技術的一種的第三 實施例的流程圖。本實施例中,步驟310為改變大單位結構為多個子結構,其中每一個子 結構的長度均為小于64k。接著,步驟320為利用一自我測試內存管理器(POST memory manager ;PPM)配置一大單位內存空間,接著,步驟330為將這些長度小于64k的子結構存 放在此大單位內存空間之中。 步驟310中所述的改變大單位結構為多個子結構的長度在64k以內的子結構,或 是如第二實施例中所述的將大單位結構切割為多個長度在64k以內的子結構,又或者可結 合第一實施例與第二實施例,將大單位結構經過拆解與切割后,變成多個長度在64k的內 的子結構。 步驟320中,自我測試內存管理器(PPM)是在自我測試(power on self test ; POST)的情形下,特別是在big real mode的模式下,配置本文檔來自技高網...
【技術保護點】
一種64k環境限制下實現大單位結構存取的方法,其特征在于,包含:改變一大單位結構為多個子結構,其中每一子結構的一長度為小于64k;利用一自我測試內存管理器配置一大單位內存空間;以及將該多個子結構存放于該大單位內存空間。
【技術特征摘要】
一種64k環境限制下實現大單位結構存取的方法,其特征在于,包含改變一大單位結構為多個子結構,其中每一子結構的一長度為小于64k;利用一自我測試內存管理器配置一大單位內存空間;以及將該多個子結構存放于該大單位內存空間。2. 根據權利要求1所述的64k環境限制下實現大單位結構存取的方法,其特征在于,改 變一大單位結構為多個子結構的步驟包含拆解該大單位結構為該多個子結構。3. 根據權利要求l所述的64k環境限制下實現大單位結構存取的方法,其特征在于,改 變一大單位結構為多個子結構的步驟包含切割該大單位結構為該多個子結構。4. 根據權利要求l所述的64k環境限制下實現大單位結構存取的方法,其特征在于,該 自我測試內存管理器是在一自我測試情形下配置出該大單位內存空間。5. 根據權利要求l所述的64k環境限制下實現大單位結構存取的方法,其特征在于,配 置一大...
【專利技術屬性】
技術研發人員:陳重江,
申請(專利權)人:英業達股份有限公司,
類型:發明
國別省市:71[中國|臺灣]
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。