專利名稱:容錯隊列系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明按照第一方面涉及一個為執(zhí)行從一聯(lián)機(jī)維護(hù)的空閑地址表往存儲器中自由存儲位置寫操作而在存儲器中選擇位置的隊列系統(tǒng)。該隊列系統(tǒng)也為收集早先存儲在存儲器中的數(shù)據(jù)計算地址。
按照第二和第三方面,本發(fā)明涉及一個在帶有用于一個或多個交換端口的公共緩沖器存儲器的包交換機(jī)中緩沖存儲數(shù)據(jù)的隊列系統(tǒng)。該系統(tǒng)使用一些表示緩沖器存儲器中存儲位置的指針。這些指針在不同的邏輯表間移動來指明對在所指的緩沖器位置的數(shù)據(jù)要執(zhí)行的操作。
本發(fā)明進(jìn)一步還涉及分別測試與上面指出的種類的隊列系統(tǒng)有關(guān)的存儲位置和指針的方法。
相關(guān)技術(shù)的敘述當(dāng)在計算機(jī)和其它設(shè)備中使用存儲器時,地址計算確定為存儲一定數(shù)據(jù)要使用的物理位置。最簡單的直接尋址、確定和計算要使用哪一地址是在程序編譯時執(zhí)行的,或與具有固定程序的設(shè)備的硬件設(shè)計有關(guān)。間接尋址和鏈接表是更為靈活的尋址方法的例子。這里,地址信息存儲在其它地址位置或計數(shù)器等等中。因此地址計算并不固定,而是在執(zhí)行時變化,以適應(yīng)存儲的數(shù)據(jù)的數(shù)量和格式。
帶直接尋址的簡單的先進(jìn)先出(FIFO)存儲器最常以一種增量寫和讀地址的計數(shù)器實(shí)現(xiàn),或在它們最簡單的形式中以在移位寄存器中的固定地址實(shí)現(xiàn)。關(guān)于動態(tài)間接尋址,使用也存儲在存儲器中的地址指針。在系統(tǒng)起動時,這些指針被初始化以便得到一組系統(tǒng)以之工作的有效的指針。因而系統(tǒng)的功能依賴于該指針的初始化在運(yùn)行時不被破壞。指針值中的位錯誤導(dǎo)致系統(tǒng)中持續(xù)的故障。對可靠性要求很高的連續(xù)操作的系統(tǒng)這是一個問題。
大半導(dǎo)體存儲器傳統(tǒng)地裝備有冗余以改善制造產(chǎn)量。此間的冗余指的是行和列的備用電路,其可以連接到電路上以取代正常的電路。這可以通過熔斷熔絲或在工廠中永久性地對電路重新布線的其它方法獲得。
進(jìn)行測試以決定需要修復(fù)的電路。如果出現(xiàn)制造錯誤而且它們能夠通過把備用電路連接到電路上而修復(fù),則確定制造錯誤的類型并進(jìn)行修復(fù)。
對不帶冗余的半導(dǎo)體存儲器,地址和存儲器中的物理位置的映射是在設(shè)計該存儲器時確定的。對帶冗余的半導(dǎo)體存儲器,這種映射部分地在設(shè)計時設(shè)定,而當(dāng)有錯誤的存儲器位置要進(jìn)行修復(fù)時在制造時完成。
在盤式存儲器的場合,在把該盤投入運(yùn)行前為確定在盤上可以使用的區(qū)段的格式化操作時要使用測試過程。其目標(biāo)是能夠使用帶有壞區(qū)段的盤。所用的錯誤假設(shè)是盤上一定的位置可能由于制造不完美而損壞。區(qū)分好的和壞的扇區(qū)可以在格式化過程中進(jìn)行且可認(rèn)為不需改變。在格式化過程中盤地址錯誤的風(fēng)險不需考慮。
在一定的系統(tǒng)中使用錯誤校正碼(ECC)來獲得對運(yùn)行時的位錯誤的容錯性能。這些在運(yùn)行時出現(xiàn)的錯誤可以是軟的或硬的,亦即暫時干擾或固定錯誤。在每一字中能夠被改正的位的數(shù)目是確定的。最常使用的碼可以改正單位錯誤和檢測雙位錯誤。最近表明,錯誤改正碼和備用行的結(jié)合提供一容錯系統(tǒng),其具有很高程度的半導(dǎo)體存儲器制造錯誤的修復(fù)性,參見IEEE計算機(jī)學(xué)報,第41卷9號,1992年9月,1078-1087頁。
設(shè)備在離開制造之前對它的修復(fù)在工廠的生產(chǎn)線上需要測試裝置和熔絲編程(為影響其功能而對電路連接的持久改變-也叫熔絲或抗熔絲)及包含熔絲在內(nèi)的制造工藝。這意味著由于延長了的制造周期而增加了成本。對于修復(fù)操作的成功程度由下述事實(shí)限制,即它們是基于使用備件行和列,和相對于處理零星單個的錯誤的不靈活性。
使用糾錯碼處理分離的單個錯誤。然而為充分的效率起見,需要與帶冗余行的一些種類的系統(tǒng)結(jié)合。按照現(xiàn)有技術(shù)的狀態(tài)這意味著熔絲編程和在電路離開制造廠前測試。
美國專利4049956提供現(xiàn)有技術(shù)狀態(tài)的一個例子,它涉及運(yùn)行時錯誤檢測和敘述工作在時分多路復(fù)用方式下的存儲器的管理。到來的數(shù)據(jù)字暫時存儲在一多級(step)存儲器的各自的級中并為以后的修正而讀出。進(jìn)行測試時不需把存儲器從正常運(yùn)行中取出。該存儲器由若干n級組成,它們周期地在n個時隙的一個重復(fù)掃描周期被尋址,在該時隙內(nèi)二進(jìn)制字寫入各自的級中或從其中讀出。寫入存儲器級的字在緊隨的下一周期被讀出。通過奇偶校驗檢測故障。
美國專利3863227敘述每一單個的電子控制元件的選擇和測試,這些控制元件用于當(dāng)存儲器聯(lián)機(jī)時存取在一核心存儲器中不同的核心元件。因而存在一個存儲器系統(tǒng)聯(lián)機(jī)測試的問題,而不是存儲包含在存儲器中的元素的存儲器的測試。也未敘述使用奇偶校驗。美國專利5016248敘述一用于包傳輸?shù)呐抨犗到y(tǒng),而未提及初始化或維護(hù)。
概述本發(fā)明的第一目的是通過持續(xù)地維護(hù)在帶有動態(tài)間接尋址的隊列系統(tǒng)中的指針處理而提供容錯性能,使得該系統(tǒng)總有能力復(fù)位一組正確的指針而獨(dú)立于系統(tǒng)結(jié)束時的狀態(tài)。
第二目的是獲得對在系統(tǒng)運(yùn)行時可能出現(xiàn)的存儲器錯誤的容錯性能。
本發(fā)明的第三目的是通過以一新的方式組織和使用冗余電路而改善大半導(dǎo)體存儲器的制造產(chǎn)量。通過使用容錯技術(shù),帶有小的制造錯誤的存儲器可以以正確方式運(yùn)行而不必拒絕。通過在測試過程適當(dāng)?shù)卦O(shè)定拒絕水平以便維持備件容量,存儲器管理系統(tǒng)也可能從在運(yùn)行時出現(xiàn)的錯誤中恢復(fù)。
按照本發(fā)明,上面提到的目的以下面的方式全部或部分地實(shí)現(xiàn)。
在按照以引言方式指出的第一方面的隊列系統(tǒng)中,存儲位置暴露于一測試過程,其在系統(tǒng)操作時的空閑周期對每一存儲位置周期地執(zhí)行。該過程的結(jié)果用于維護(hù)空閑表。為測試選擇的地址從由系統(tǒng)控制的系統(tǒng)使用中釋放。
在一個實(shí)施例中存儲位置的測試是在等待其從系統(tǒng)的使用中釋放后執(zhí)行的,并僅在該存儲位置通過測試后才執(zhí)行返回到系統(tǒng)使用。
在另一實(shí)施例中,相對于存儲位置的地址通過把要測試的存儲位置的內(nèi)容拷貝到一自由和無錯誤的位置而釋放。于是地址計算重新導(dǎo)向使用該新的存儲位置。最后僅在其通過測試后被測試的存儲位置才返回到系統(tǒng)使用。
在再一個實(shí)施例中,未通過測試的存儲位置在當(dāng)包含所談?wù)摰拇鎯ξ恢玫恼麄€存儲器塊從系統(tǒng)使用中釋放時重新測試。
在再一個實(shí)施例中,為執(zhí)行一確定的存儲位置的測試的存儲器測試邏輯以第一方式運(yùn)行,其中所有的地址在由測試邏輯控制的脫機(jī)測試中測試,其間執(zhí)行對帶可修正錯誤的存儲位置的計數(shù)和指明在其中存在的不可修正的錯誤,以及在第二方式的聯(lián)機(jī)方式運(yùn)行,其間存儲器測試邏輯只檢查被測試的存儲器位置的數(shù)據(jù),而其它存儲位置被送去以在正常運(yùn)行時的數(shù)據(jù)運(yùn)行,其地址由系統(tǒng)控制。
在按照以引言方式指出的第二方面的隊列系統(tǒng)中,維護(hù)功能連續(xù)地保證該系統(tǒng)對在緩沖器存儲器中的每一有效包位置包含一個并且只包含一個指針。
在按照以引言方式指出的第三方面的隊列系統(tǒng)中,同一指針的拷貝通過使用一多重指針表而以一受控方式處理,在該多重指針表中記錄有包含在各自指針的系統(tǒng)中的拷貝數(shù),和在其中維護(hù)功能檢查一指針的拷貝的數(shù)目是否與在各自指針的多重指針表中記錄的數(shù)值相符。
在第一實(shí)施例中,除多重指針表之外還使用下面各自的指針類別的邏輯表空閑指針的空閑表、對輸出端口隊列中的排隊指針的輸出隊列表、和被封鎖指針的封鎖表。維護(hù)功能周期地檢查所有的指針和附屬緩沖器位置,每次一個,由一初始化過程先導(dǎo)。在這一過程中,該指針通過從指針流中被濾除而從操作中取出,其從輸出隊列表返回到空閑表,直到該隊列系統(tǒng)清空所談?wù)摰闹羔樀拿恳豢截?,于是比較返回的所談?wù)摰闹羔樀目截惖臄?shù)目與在多重指針表中的數(shù)值。
在這一實(shí)施例的第一進(jìn)一步的發(fā)展中維護(hù)功能具有第一運(yùn)行方式,其在初始化過程之后,并要么由下述事實(shí)激發(fā),即作為所述初始化過程的結(jié)果找到多于一確定限制數(shù)目的指針,其各自的拷貝數(shù)與所提到的指針在多重指針表中記錄的數(shù)值不符;或者由一外部信號激發(fā),而把這些指針返回到空閑表,把在多重指針表中的數(shù)值復(fù)位為無多重拷貝,和在封鎖表中指明無指針被封鎖。
在第二進(jìn)一步的發(fā)展中該維護(hù)功能具有第一運(yùn)行方式,其在初始化過程之后,并要么由下述事實(shí)激發(fā),即多于一確定限制數(shù)目的丟失指針或多重指針作為所述初始化過程的結(jié)果而發(fā)現(xiàn);或者由一外部信號激發(fā),而把每一指針的拷貝返回到空閑表,和在封鎖表中指明無指針被封鎖。
該維護(hù)功能可能僅有一另外的運(yùn)行方式,亦即第二方式。在該場合下,這一第二運(yùn)行方式由第一維護(hù)方式遍歷所有指針而激發(fā)。于是,對每一指針再一次執(zhí)行初始化過程,每次一個,同時,緩沖器存儲器測試以低的優(yōu)先級在由所談?wù)摰闹羔槝?biāo)識的非封鎖存儲器位置上排隊。所有其它非封鎖的存儲器位置在測試時以系統(tǒng)數(shù)據(jù)進(jìn)行。該存儲器測試的結(jié)果用于給空閑表返回該指針,如果緩沖器存儲器測試給出一正確的結(jié)果的話;但是如果緩沖器存儲器測試指出由該指針定義的區(qū)域故障的話該指針在系統(tǒng)中被封鎖。被封鎖的指針暴露給第二緩沖器存儲器測試,在隊列中維護(hù)由每一測試數(shù)據(jù)操作調(diào)整的和第一個同樣類型的該測試,只要系統(tǒng)數(shù)據(jù)存儲在包含由被封鎖的指針標(biāo)識的位置的緩沖器存儲器段中的某處。第二測試的結(jié)果用于返回指針到空閑表,如果該測試給出正確的結(jié)果的話;而被封鎖的指針在超過一第二限制數(shù)的數(shù)目的連續(xù)測試中被認(rèn)可后首次返回到空閑表。
維護(hù)功能有一些不同的運(yùn)行方式的情況中,它可以有由第一方式運(yùn)行遍歷所有指針而激發(fā)的第二運(yùn)行方式,之后初始化過程再次對指針執(zhí)行。一簡單的寫和讀測試排隊在其拷貝數(shù)與在多重指針表中記錄的數(shù)值不符的指針?biāo)鶚?biāo)識的緩沖器存儲器位置執(zhí)行。寫和讀測試的結(jié)果用于將所談?wù)摰闹羔樂祷氐娇臻e表,如果該測試給出正確結(jié)果的話;但如果該測試指出由所談?wù)摰闹羔槝?biāo)識的區(qū)域之內(nèi)有故障的話,封鎖該指針使其不在系統(tǒng)中使用,。
第三運(yùn)行方式由第二方式運(yùn)行遍歷所有指針而激發(fā),于是初始化過程再次在非封鎖的指針上執(zhí)行。為檢測在第二運(yùn)行方式中由簡單的寫和讀測試未檢測到的類型的故障的緩沖器存儲器測試被排隊,以在由初始化過的指針標(biāo)識的緩沖器存儲器位置上執(zhí)行。所述存儲器位置由測試數(shù)據(jù)進(jìn)行,而所有其它的非封鎖的緩沖器存儲器位置在測試每一封鎖的指針期間以系統(tǒng)數(shù)據(jù)進(jìn)行。該測試的結(jié)果用于返回該指針到空閑表,如果該緩沖器存儲器測試給出一正確結(jié)果的話;但是,如果該緩沖器存儲器測試指出在由該指針標(biāo)識的區(qū)域有故障的話,封鎖該指針使其不在系統(tǒng)中使用。
第四運(yùn)行方式由第三方式運(yùn)行遍歷所有的指針而激發(fā),于是同樣早先封鎖的指針通過對所有指針周期地、一次一個執(zhí)行所述初始化過程被接受測試。和在第三方式中同一類型的存儲器測試被應(yīng)用于非封鎖指針,而早先封鎖的指針暴露給同一類型的緩沖器存儲器測試,在隊列中維護(hù)由每一測試數(shù)據(jù)操作調(diào)整的該緩沖器存儲器測試,只要系統(tǒng)數(shù)據(jù)存儲在包含由所談?wù)摰脑缦确怄i的指針?biāo)鶚?biāo)識的位置的緩沖器存儲器段的某處。測試結(jié)果以和在第三方式下同樣的方式用于為非封鎖指針和早先封鎖的指針的非接受測試,而早先封鎖的指針在經(jīng)過由一限制數(shù)定義的數(shù)目的連續(xù)測試合格后首先返回到空閑表。
按照本發(fā)明的的存儲器管理系統(tǒng)在系統(tǒng)運(yùn)行時提供動態(tài)的對制造錯誤的容錯性能,不需在工廠中通過重新配置來測試和修復(fù)。在制造完成后進(jìn)行測試以確定該存儲器是否為打算的應(yīng)用有足夠的存儲容量。
附圖的簡要說明下面參考示于附圖中的一實(shí)施例更嚴(yán)密地敘述本發(fā)明,附圖中
圖1非常原理地示出一按照本發(fā)明的一個方面的隊列系統(tǒng);圖2部分地以框圖形式示出一包交換的實(shí)施例,其中使用了本發(fā)明的不同方面;圖3表示包含在維護(hù)功能中的主運(yùn)行方式的一流程圖,其用于測試在按照圖2的包交換中的地址指針和緩沖器存儲器位置;和圖4-7表示圖3的各自的方式的流程圖。
實(shí)施例的詳細(xì)說明圖1非常原理地示出為從一聯(lián)機(jī)維護(hù)的地址空閑表6向存儲器2中的自由存儲位置上執(zhí)行寫操作(箭頭4)而在數(shù)據(jù)存儲器2中選擇存儲位置、和為收集(箭頭8)早先存儲在存儲器2中的數(shù)據(jù)而進(jìn)行地址計算的一個隊列系統(tǒng)。最后提到的地址被傳輸(箭頭10)到存儲器2中使用過的存儲空間的表12。
按照本發(fā)明的第一方面,存儲器的存儲器位置借助于測試邏輯14經(jīng)歷一測試過程,其周期地(箭頭16)在系統(tǒng)運(yùn)行時的空閑周期中對每一存儲位置執(zhí)行。要被測試的位置借助于在表12中包含的地址選擇(箭頭18),被選擇的位置從被系統(tǒng)控制的系統(tǒng)使用中釋放。測試結(jié)果用于維護(hù)空閑表6(箭頭20)。
存儲位置的測試可以在等待其從系統(tǒng)使用釋放后執(zhí)行。可選的另外方案為指向要被測試的存儲位置的地址可以由拷貝這一要被測試的存儲位置的內(nèi)容到一自由而無錯誤的新存儲位置而釋放。地址計算隨即被重新導(dǎo)向為使用這一新的存儲位置。
在這兩種場合下,僅當(dāng)其通過測試后被測試的存儲位置最終返回系統(tǒng)使用,亦即返回到空閑表6。未經(jīng)過測試的存儲位置在當(dāng)包含所談?wù)摰拇鎯ζ魑恢玫乃写鎯ζ鲏K從系統(tǒng)使用釋放時重新測試。
為執(zhí)行對給定存儲器位置測試的存儲器測試邏輯14可優(yōu)選操作于兩種方式。
在第一方式下所有的地址在一種由該邏輯控制的脫機(jī)測試中測試,在此期間帶有可修正錯誤的存儲位置的數(shù)目被計數(shù),而其中存在的不可修正的錯誤被標(biāo)識。
在該部件測試期間,一完整的存儲器測試以例如所謂的“垮步方式”(march pattern)執(zhí)行,參見例如“使用跨步測試來測試SRAMS”(ADJvandeGoor,IEEE“計算機(jī)設(shè)計和測試”,93年3月,第10卷,第1號)和“為可修復(fù)嵌入RAM用的內(nèi)部自診斷”(S,RobertTrenter,等,IEEE″計算機(jī)設(shè)計和測試”,93年6月,第10卷,第2號)。這為消除不可操作電路而施行。由于按照本發(fā)明的隊列系統(tǒng)提供一定量的容錯性能,所以帶有錯誤存儲位置的電路也可以歸為正確一類。因此錯誤數(shù)目在測試時被記錄。如果錯誤數(shù)目小于設(shè)定的拒絕門限,則該部件被接受。
在第二方式中,作用于聯(lián)機(jī)方式,邏輯20僅監(jiān)視正被測試的到存儲器位置的數(shù)據(jù),而其它存儲位置被強(qiáng)迫以在正常運(yùn)行時的數(shù)據(jù)運(yùn)行,其地址由系統(tǒng)控制。
現(xiàn)在更詳細(xì)地敘述本發(fā)明的一個實(shí)施例。在一類包交換中,參照圖2,到達(dá)的包在分析功能30分析包的頭部中的內(nèi)容后被寫入到對到達(dá)的包公共的緩沖器存儲器32中的存儲位置,緩沖器存儲器對到達(dá)的包是共同的。緩沖器存儲器32以到達(dá)包流34和一些離開該交換的包流的輸出信道36.1、...、36.n示意性地表示。到啟動該功能的分析功能30的數(shù)據(jù)流由34’表示。
寫操作由包含指向相應(yīng)于在緩沖器存儲器32中的空閑存儲位置的地址指針的一地址表38指導(dǎo)執(zhí)行。該地址表在下面也簡短地稱為“空閑表”。更具體地,分析功能30以一信號,按照箭頭39,指示空閑表38一方面為所談?wù)摰陌峁┲羔?,和另一方面,在按照從空閑表38到緩沖器存儲器32的箭頭40指示的,把該包寫入由該指針指向的緩沖器存儲器后,把該指針傳輸?shù)桨恍〧IFO指針隊列44的指針隊列系統(tǒng),每一輸出36有一指針隊列。
更具體地,該指針于是按照箭頭42從空閑表38移動到一FIFO指針隊列44.n用于交換輸出36.n,其為由分析該包的頭部的內(nèi)容而指向的包而選擇。指針隊列的選擇由從分析功能30到所談?wù)摰闹羔橁犃械目刂菩盘?5執(zhí)行。
到達(dá)的包的頭部可能包含幾個目的地址,亦即該包的內(nèi)容可能送往幾個交換輸出。在這種場合,該指針被拷貝到在緩沖器存儲器32中選擇的存儲位置以便獲得和所談?wù)摰慕粨Q輸出的數(shù)目同樣多的指針。下面也為在這樣一組指向緩沖器存儲器32中的同一存儲位置的指針中的一個指針使用“多重指針”這一名稱。這些多重指針被指向所談?wù)摰妮敵龅拿恳粋€指針隊列。
當(dāng)一個指針,亦即一單指針或一多重指針,作為在其FIFO隊列44.n中第一個出現(xiàn)時,由該指針指向的數(shù)據(jù)包,按照箭頭44.n和由該指針的指向,從在緩沖器存儲器32中它的存儲位置讀取到所談?wù)摰妮敵?6.n中。
其后該指針按照箭頭48和50通過維護(hù)功能52重新導(dǎo)向空閑表38。維護(hù)功能52在下面將更為周密地敘述,它監(jiān)視要返回到空閑表38中的指針。更具體地,如果指針未被維護(hù)功能52選擇測試的話,它將移動到空閑表中。
在維護(hù)功能52中同一指針的拷貝以一受控方式管理。更具體地,這通過使用包含在維護(hù)功能52中的一多重指針表56而執(zhí)行,在該表中記錄有包含在系統(tǒng)中的各自的指針的拷貝數(shù)。維護(hù)功能52也檢查一指針的拷貝數(shù)與在多重指針表56中為各自指針記錄的數(shù)值是否相符。
在下面對本發(fā)明的實(shí)施例更為詳細(xì)的敘述中使用名稱X表示正被測試的指針,這里X屬于所有指針的集合。相應(yīng)地,由指針X指向的在緩沖器存儲器32中的緩沖器存儲器位置用B(X)表示。
維護(hù)功能52以在下面更仔細(xì)地敘述的方式執(zhí)行緩沖器存儲器位置B(X)的測試。為此目的,指針X按照箭頭60’傳輸?shù)骄彌_器存儲器32的測試邏輯58。對緩沖器存儲器位置B(X)的測試操作的結(jié)果按照箭頭60”從測試邏輯58給維護(hù)功能52發(fā)信號。
從下面的敘述中同樣更為仔細(xì)地看出,如果這一測試指出一存儲器位置故障的話,則相應(yīng)的指針將被封鎖以在系統(tǒng)中使用,并提供給同樣包含在維護(hù)功能52中的一封鎖表62。多重和被封鎖的指針的表也可能結(jié)合為一張表。
更具體地,該維護(hù)功能52周期地檢查所有的指針和附屬的緩沖器位置,每次一個,由一初始化過程先導(dǎo)。這里用“所有的”指針一詞指的是將存在于系統(tǒng)中,亦即包含在空閑表38中、輸出隊列44中、多重指針表56中和封鎖表62中的所有指針。在初始化過程中,每一指針值,每次一個,從運(yùn)行中取出一方面檢查隊列系統(tǒng)38、44的指針處理是否正確,另一方面檢查由所談?wù)摰闹羔槝?biāo)識的、在緩沖器存儲器32中的數(shù)據(jù)存儲區(qū)B(X)。
在初始化過程期間,隊列系統(tǒng)38、44清空在測試下的指針和其所有拷貝,如果有的話,然后檢查發(fā)現(xiàn)的拷貝數(shù)是否等于在多重指針表56中為在測試下的指針記錄的數(shù)值。
維護(hù)功能52可以在其后按照一種或幾種運(yùn)行方式運(yùn)行。不管選擇何種方式,初始化過程是每一這種運(yùn)行方式的第一步。
參考圖3和在有幾種運(yùn)行方式的場合的一個實(shí)施例中,維護(hù)功能可能有四級70、72、74和76。最低級70稱為“指針調(diào)整”和只導(dǎo)向指針的循環(huán)。其它三級擴(kuò)展為對緩沖器存儲器32的不同的讀/寫測試。
如同已經(jīng)提到的,隊列系統(tǒng)38、44在初始化過程清空指針X的所有的拷貝,如果有的話。在非實(shí)時系統(tǒng)中,這可以以幾種不同的方式獲得。在實(shí)時系統(tǒng)中,通常縮減為一種,僅處理正被返回到空閑表38的指針。
為清空上面敘述的類型的實(shí)時隊列系統(tǒng)的指針X,空閑表38必須首先清空其中所有的拷貝,如果有的話。這是通過從返回指針流48中濾除指針X而執(zhí)行的,在圖4-7中的步驟78,以便阻止其被寫入空閑表38中。更具體地,該濾除是這樣啟動的,維護(hù)功能52按照箭頭78’給空閑表38發(fā)出一信號,為在當(dāng)時空閑表中最后一個指針置一指示符。借助于信號78”,維護(hù)功能52隨后獲得該指示符到達(dá)空閑表38中最前方位置的信息。當(dāng)在濾除步驟的開始時在空閑表38中存在的所有指針被供給輸出隊列44時,空閑表38肯定清空了所有的指針X。
之后,輸出隊列44必須清空指針X的拷貝,如果有的話。這種清空是,更具體地,通過維護(hù)功能52按照箭頭79’發(fā)出一信號到輸出隊列44而啟動的,為在當(dāng)時在各自的輸出隊列中的最后一個指針置一指示符。維護(hù)功能52以按照箭頭79”的信號隨后從輸出隊列獲得信息如此標(biāo)識的指針在各自的隊列中首次終止。于是維護(hù)功能52一方面繼續(xù)從返回指針流48濾除指針X,同時等待在空閑表38的清空結(jié)束時位于輸出隊列44中最后的指針在隊列中首次終止。當(dāng)最慢的隊列符合這一判據(jù)時,系統(tǒng)已清空了指針X。
之后,在圖5-7中的步驟80,檢查返回指針數(shù)是否與在多重指針表56中指針X的值相符。如果不是這樣的話,產(chǎn)生一指針錯誤信號。這個錯誤信號以某種不同的措施終止,這取決于被執(zhí)行的維護(hù)方式。在除“指針調(diào)整”方式之外的所有方式中,指針值被封鎖而錯誤計數(shù)器(未示出)增量,圖5-7中的步驟82。如果多于α個錯誤被發(fā)現(xiàn),在圖5-7中的步驟84,當(dāng)前維護(hù)方式終止,錯誤計數(shù)器置為零并跳轉(zhuǎn)到方式“指針調(diào)整”,在圖5-7中的箭頭86。α是對在多重指針表56中的錯誤希望的容忍程度。在“指針調(diào)整”方式中指針錯誤信號不以任何措施終止,參見圖4。
在系統(tǒng)起動時,必須使一正確的指針組盡快地對隊列系統(tǒng)可用。因此,“指針調(diào)整”過程被起動。這可以既由按照上面的指針錯誤出現(xiàn)的結(jié)果而執(zhí)行,也可由外部信號的激發(fā)執(zhí)行。這里以及以后所說的指針錯誤意思是,如同上面敘述的,在初始化過程期間返回指針的拷貝數(shù)與在多重指針表中為所談?wù)摰闹羔標(biāo)愂龅臄?shù)目不符。指針一經(jīng)檢查,其即被引入空閑表38和可以被用于包的排隊。
當(dāng)調(diào)整了所有的指針后對所有的指針執(zhí)行維護(hù)級72,下面也稱為“快速測試”。其后維護(hù)功能52進(jìn)入維護(hù)級74,下面也稱為“全測試”,然后開始執(zhí)行維護(hù)級76“帶重新測試的全測試”,其為當(dāng)前可運(yùn)行的狀態(tài),然而它可以在指針錯誤出現(xiàn)時被中斷。
如果多于α的幾個錯誤的指針(多重或丟失指針)被檢測到,維護(hù)功能52總是以“指針調(diào)整”重新起動,正如上面類似地敘述的那樣,而不依賴于正在執(zhí)行的其它維護(hù)功能,這在圖3中,以及圖5-7中由箭頭86指出。
參考圖4,方式70“指針調(diào)整”在步驟88把每一指針X返回到空閑表38,把多重指針表56中的值復(fù)位為“無多重拷貝”,和在封鎖表62中復(fù)位到“無封鎖”。當(dāng)最后一個指針被處理,參見步驟90,指針錯誤計數(shù)器置為零,步驟92。隨后方式70結(jié)束在方式72中,箭頭94。
方式72“快測試”于是由第一方式70運(yùn)行遍歷所有的指針而被起動,參考圖5。然后對所有指針執(zhí)行初始化過程和對由指針X標(biāo)識的緩沖器存儲器位置B(X)執(zhí)行一簡單的寫和讀聯(lián)機(jī)測試,步驟96。如果發(fā)現(xiàn)需要的話,這一測試可以以低的或最低的優(yōu)先級在可以對緩沖器存儲器執(zhí)行的操作之中排隊后執(zhí)行。
寫和讀測試的結(jié)果用于返回當(dāng)今指針到空閑表38,如果該測試給出一正確結(jié)果的話;但是封鎖其在系統(tǒng)中使用并將其引入封鎖表62,如果測試指出由所談?wù)摰闹羔槝?biāo)識的區(qū)域內(nèi)故障的話。在最后的指針后,測試進(jìn)入方式74,參見步驟98和箭頭100。
和在早先上面敘述的脫機(jī)測試相比,其中圖1中的測試邏輯14控制和檢查存儲器的所有數(shù)據(jù)和所有地址,在圖2中聯(lián)機(jī)測試的測試邏輯58僅具有對那些地址位置的寫和讀的權(quán)利,這些地址位置由初始化過程從系統(tǒng)使用釋放,其中系統(tǒng)清空一指針值。對于今后每一件敘述的,僅當(dāng)無更高優(yōu)先級的對存儲器的系統(tǒng)操作來到時,該測試邏輯才被強(qiáng)迫操作。
在按照圖5的方式72中的簡單的寫和讀測試中一第一位模式被寫入由被釋放的指針標(biāo)識的地址位置中。一旦這點(diǎn)執(zhí)行以后,這些位置被讀取以測試該存儲單元能夠存儲這一第一位模式。于是該過程重復(fù)第二次,這一次以第二位模式為第一模式的逆。如果讀取的數(shù)據(jù)與寫的數(shù)據(jù)不相對應(yīng),則以一錯誤信號的形式產(chǎn)生圖2中的信號60”。
參考圖6,第三運(yùn)行方式74“全測試”由第二方式72運(yùn)行遍歷所有指針運(yùn)行以后被激發(fā),并以對未由方式72封鎖的指針執(zhí)行初始化過程重新開始。于是一緩沖器存儲器測試以最低優(yōu)先級排隊對未被封鎖的緩沖器存儲器位置B(X)執(zhí)行,以檢測未在第二運(yùn)行方式中由簡單寫和讀測試檢測到的故障,參見步驟102和104。對這些存儲器位置以測試數(shù)據(jù)寫和讀進(jìn)行測試,而對所有其它未被封鎖的緩沖器存儲器位置在為每一被封鎖的指針測試期間以系統(tǒng)數(shù)據(jù)寫和讀進(jìn)行測試。
該測試的結(jié)果用于返回該指針到空閑表38,如果該緩沖器存儲器測試給出一正確結(jié)果的話;但是如果該緩沖器存儲器測試指出由該指針標(biāo)識的區(qū)域內(nèi)故障的話,封鎖該指針使其不在系統(tǒng)中使用并將其引入封鎖表62。在最后的指針之后,測試進(jìn)入方式76,參見步驟106和箭頭108。
在按照第三運(yùn)行方式74的完全聯(lián)機(jī)測試的場合下,尋址邏輯的錯誤也將被檢測。一般這需要將不同于在存儲器位置B(X)中的數(shù)據(jù)的數(shù)據(jù)寫到所有其它的地址中。按照本發(fā)明,系統(tǒng)數(shù)據(jù)寫入其它非封鎖位置和從其中讀出。這實(shí)現(xiàn)了在早先敘述的脫機(jī)測試中和受控數(shù)據(jù)同樣的功能。由系統(tǒng)恰好把和測試邏輯使用來測試的數(shù)據(jù)同樣的數(shù)據(jù)寫入在測試下的具有地址解碼錯誤重迭存儲器位置的地址而造成的尋址錯誤被漏于發(fā)現(xiàn)的風(fēng)險由連續(xù)重復(fù)所有的測試和由足以封鎖該指針的一個錯誤檢測而最小化。因此該測試邏輯等待系統(tǒng)數(shù)據(jù)在讀檢查執(zhí)行之前被寫入所有其它使用的位置。
第四運(yùn)行方式76“帶重新測試的全測試”于是由第三方式74運(yùn)行遍歷所有指針這一事實(shí)而激發(fā),參考圖7。先前封鎖的指針也因此被接受由所述對所有指針周期地,每次一個,執(zhí)行的初始化過程測試。于是對非封鎖指針施行和第三方式中同樣類型的緩沖器存儲器測試,步驟110和112。早先封鎖的指針經(jīng)受同樣類型的由在隊列中保持的每一測試數(shù)據(jù)操作而規(guī)定的緩沖器存儲器測試,只要有系統(tǒng)數(shù)據(jù)存儲在包含存儲區(qū)B(X)的緩沖器存儲器段的某一處,其由早先封鎖的指針X標(biāo)識,步驟114。該測試結(jié)果以和在第三方式中同樣的方式用于非封鎖指針和早先封鎖的指針的不允許測試,而早先封鎖的指針直到在由限制值β定義的一定數(shù)目的連續(xù)測試中被接受后才返回到空閑表38。
第四運(yùn)行方式76是基于對下述事實(shí)的理解,在連續(xù)的操作中,也必須考慮在測試下的存儲器位置的尋址錯誤可能破壞系統(tǒng)數(shù)據(jù)的風(fēng)險。因此,在尋址錯誤可能發(fā)生的整個段清空系統(tǒng)數(shù)據(jù)以前不允許從測試邏輯往早先封鎖的位置寫數(shù)據(jù)。其后等待在所有其它位置寫入系統(tǒng)數(shù)據(jù),就像在第三運(yùn)行方式中一樣。因為所有的讀操作可能破壞出錯的存儲器中的數(shù)據(jù),所以在讀檢驗對由早先封鎖的、而現(xiàn)在處于更新的測試下的指針標(biāo)識的緩沖器位置執(zhí)行之前再次等待從存儲器段清空系統(tǒng)數(shù)據(jù)。
在單運(yùn)行方式的場合的一個實(shí)施例中,基本上有合并按照圖6和7的最后兩種運(yùn)行方式的問題。
更具體地,緩沖器存儲器32的測試在初始化過程后以最低優(yōu)先級為在由非封鎖指針標(biāo)識的緩沖器存儲器位置上執(zhí)行而排隊,參見圖6中步驟102和104。這些存儲器位置以測試數(shù)據(jù)進(jìn)行。所有其它非封鎖緩沖器存儲器位置在測試過程中以系統(tǒng)數(shù)據(jù)進(jìn)行。其后測試結(jié)果以下述方式使用即該指針返回到空閑表38,如果緩沖器存儲器測試給出正確結(jié)果的話;但如果緩沖器存儲器測試指出在由該指針定義的區(qū)域故障的話,封鎖該指針不在系統(tǒng)中使用,被封鎖的指針供給封鎖表62和經(jīng)受由在隊列中維護(hù)的每一測試數(shù)據(jù)操作規(guī)定的同一類型的緩沖器存儲器測試,只要系統(tǒng)數(shù)據(jù)存儲在包含由被封鎖的指針標(biāo)識的位置的緩沖器存儲器段的某一處,參見圖7中步驟114。其后,使用測試結(jié)果以便在緩沖器存儲器測試給出一正確結(jié)果時把該指針返回空閑表38。被封鎖的指針在大于限制值β數(shù)目的連續(xù)測試中被接受以后首次返回到空閑表38中。
權(quán)利要求
1.為執(zhí)行從一聯(lián)機(jī)維護(hù)的空閑地址表(6)往存儲器中自由存儲位置執(zhí)行寫操作(4)而在存儲器(2)中選擇存儲位置,和收集(8)早先存儲在存儲器中的數(shù)據(jù)而計算地址的一隊列系統(tǒng),其特征在于,存儲位置暴露于一測試過程(16),其在系統(tǒng)運(yùn)行期間在空閑周期中周期地對每一存儲位置執(zhí)行,和其結(jié)果用于維護(hù)空閑表(6),為測試而選擇的地址由系統(tǒng)使用中釋放,其由系統(tǒng)控制。
2.按照權(quán)利要求1的系統(tǒng),其特征在于,存儲位置(34)的測試在等待其由系統(tǒng)使用釋放之后執(zhí)行,和僅在存儲位置通過該測試才執(zhí)行到系統(tǒng)使用的返回。
3.按照權(quán)利要求1的系統(tǒng),其特征在于,指向存儲位置的地址由把要測試的存儲位置的內(nèi)容拷貝到一自由而無錯誤的存儲位置而釋放,于是地址計算重新導(dǎo)向使用新的存儲地址,最終只將經(jīng)受住測試的受測試位置返回給系統(tǒng)使用。
4.按照權(quán)利要求1的系統(tǒng),其特征在于,未通過測試的存儲位置在當(dāng)包含所談?wù)摰拇鎯ξ恢玫恼麄€存儲器塊從系統(tǒng)使用釋放時重新測試。
5.按照權(quán)利要求1的系統(tǒng),其特征在于,使為執(zhí)行一確定的存儲位置的測試的存儲器測試邏輯運(yùn)行在第一方式,其中所有的地址以由測試邏輯控制的脫機(jī)測試方式測試,在此期間,帶可改正錯誤的存儲位置的數(shù)目被計數(shù)和對其中存在的不可改正的錯誤加以標(biāo)識,和在第二聯(lián)機(jī)方式,在此期間存儲器測試邏輯僅檢查正被測試的存儲器位置的數(shù)據(jù),而其它存儲位置被送去以在正常運(yùn)行時的數(shù)據(jù)運(yùn)行,其地址由系統(tǒng)控制。
6.為在帶有為一個或多個交換輸出端口的公共緩沖器存儲器(32)的包交換中緩存數(shù)據(jù)的隊列系統(tǒng),所述系統(tǒng)使用一些標(biāo)識緩沖器存儲器中存儲位置的指針,和在其中這些指針在不同的邏輯表(38、44、56、62)之間移動來指明在所指的緩沖器位置的數(shù)據(jù)要執(zhí)行的操作,其特征在于一維護(hù)功能(52),其連續(xù)地保證該系統(tǒng)對每一在緩沖器存儲器(32)中有效的包位置包含一個而且只包含一個指針。
7.為在帶有為一個或多個交換輸出端口的公共緩沖器存儲器(32)的包交換中緩存數(shù)據(jù)的隊列系統(tǒng),所述系統(tǒng)使用一些標(biāo)識緩沖器存儲器中存儲位置的指針,和在其中這些指針在不同的邏輯表(38、44、56、62)之間移動來指明在所指的緩沖器位置的數(shù)據(jù)要執(zhí)行的操作,其特征在于,同一指針的拷貝以一受控方式通過使用一多重指針表(56)而管理,在多重指針表中記錄有包含在系統(tǒng)中的各自指針的拷貝數(shù)目,和在其中一維護(hù)功能(52)檢查一指針的拷貝 數(shù)是否與為該各自的指針記錄在多重指針表(56)中的數(shù)值相符。
8.按照權(quán)利要求7的隊列系統(tǒng),其特征在于,除多重指針表(56)之外,還使用下面的各自指針類別的邏輯表空閑指針的空閑表(38)、在輸出端口隊列中的排隊指針的輸出隊列表(44)、和封鎖指針的封鎖表(62)。
9.按照權(quán)利要求8的隊列系統(tǒng),其特征在于,維護(hù)功能(52)周期地檢查所有指針和附屬的緩沖器位置,每次一個,以一初始化過程先導(dǎo),其中通過從指針流中濾除該指針將其從運(yùn)行中取出,這些指針從輸出隊列表(44)返回到空閑表(38),直到該對列系統(tǒng)清空所談?wù)摰闹羔樀拿恳豢截?,然后比較正被討論的指針的拷貝的返回數(shù)與在多重指針表(56)中的值。
10.按照權(quán)利要求9的隊列系統(tǒng),其特征在于,該維護(hù)功能具有第一運(yùn)行方式,其在初始化過程后,并或者由下述事實(shí)激發(fā),即作為所述初始化過程的結(jié)果而發(fā)現(xiàn)大于一確定限制數(shù)目的指針數(shù),它們各自的拷貝數(shù)與在多重指針表中為所談?wù)摰闹羔樀臄?shù)值不符,或者由一外部信號激發(fā),而把該指針返回到空閑表(38)、把在多重指針表(56)中的數(shù)值復(fù)位到無多重拷貝、和在封鎖表(62)中表明無指針被封鎖。
11.按照權(quán)利要求6和9的隊列系統(tǒng),其特征在于,該維護(hù)功能具有第一運(yùn)行方式,其在初始化過程后,并或者由下述事實(shí)激發(fā),即作為所述初始化過程的結(jié)果而發(fā)現(xiàn)大于一確定限制數(shù)目的丟失或多重指針,或者由一外部信號激發(fā),而把每一指針的一個拷貝返回到空閑表(38),和在封鎖表(62)中指明無指針被封鎖。
12.按照權(quán)利要求10或11的隊列系統(tǒng),其特征在于維護(hù)功能(52)僅有一個另外的運(yùn)行方式。
13.按照權(quán)利要求12的隊列系統(tǒng),其特征在于,維護(hù)功能有一第二運(yùn)行方式,其由第一維護(hù)方式運(yùn)行遍歷所有指針而激發(fā),然后初始化過程再次對每一指針執(zhí)行,每次一個,而緩沖器存儲器測試以低的優(yōu)先級對由所談?wù)摰闹羔槝?biāo)識的非封鎖存儲器位置排隊,而所有其它非封鎖的存儲器位置在測試時以系統(tǒng)數(shù)據(jù)進(jìn)行,和其中存儲器測試結(jié)果用于返回該指針到空閑表(38),如果該緩沖器存儲器測試給出一正確結(jié)果的話;而如果該緩沖器存儲器測試指出由該指針定義的區(qū)域內(nèi)故障的話,封鎖該指針使其不在系統(tǒng)中使用,被封鎖的指針暴露給和第一緩沖器存儲器測試同樣類型的第二緩沖器存儲器測試,其由在隊列中維護(hù)的每一測試數(shù)據(jù)操作規(guī)定,只要系統(tǒng)數(shù)據(jù)存儲在包含由被封鎖的指針標(biāo)識的位置的緩沖器存儲器段的某處,第二測試的結(jié)果用于返回該指針到空閑表(38),如果該測試給出一正確結(jié)果的話;而被封鎖的指針在超過一第二限制數(shù)的數(shù)目的連續(xù)測試中認(rèn)可后首先返回到空閑表。
14.按照權(quán)利要求8或9的隊列系統(tǒng),其特征在于,該維護(hù)功能(52)有一些不同的運(yùn)行方式。
15.按照權(quán)利要求11的隊列系統(tǒng),其特征在于,該維護(hù)功能有一由第一方式運(yùn)行遍歷所有指針而激發(fā)的第二運(yùn)行方式,然后該初始化過程對這些指針再次執(zhí)行,一簡單的寫和讀測試排隊,等待對由其拷貝數(shù)與在多重指針表中記錄的數(shù)值不符的指針?biāo)鶚?biāo)識的緩沖器存儲器位置的執(zhí)行,該寫和讀測試的結(jié)果用于將所談?wù)摰闹羔樂祷氐娇臻e表,如果該測試給出一正確結(jié)果的話;但如果該測試指出由所談?wù)摰闹羔槝?biāo)識的區(qū)域內(nèi)故障的話,封鎖該指針使其不在系統(tǒng)中使用,
16.按照權(quán)利要求15的隊列系統(tǒng),其特征在于,該維護(hù)功能有一第三運(yùn)行方式,其由第二方式運(yùn)行遍歷所有指針而激發(fā),于是該初始化過程對非封鎖指針再次執(zhí)行,為檢測在第二運(yùn)行方式中由簡單的寫和讀測試未檢測到的故障類型的緩沖器存儲器測試排隊,等待在由初始化過的指針?biāo)鶚?biāo)識的緩沖器存儲器位置執(zhí)行,所述存儲器位置以測試數(shù)據(jù)進(jìn)行,而所有其它非封鎖緩沖器存儲器位置在對每一封鎖的指針測試期間以系統(tǒng)數(shù)據(jù)進(jìn)行,該測試的結(jié)果用于返回指針到空閑表,如果該緩沖器存儲器測試給出一正確結(jié)果;但如果該緩沖器存儲器測試指出在由該指針標(biāo)識的區(qū)域內(nèi)故障的話,封鎖該指針使其不在系統(tǒng)中使用,
17.按照權(quán)利要求16的隊列系統(tǒng),其特征在于,該維護(hù)功能有一第四運(yùn)行方式,其由第三方式運(yùn)行遍歷所有指針而激發(fā),于是早先封鎖的指針通過對所有指針周期地執(zhí)行所述初始化過程,一次一個,也被接受測試,和在第三方式中同樣類型的緩沖器存儲器測試應(yīng)用于非封鎖指針,而早先封鎖的指針暴露給同一類型的由在隊列中維護(hù)的每一測試數(shù)據(jù)操作規(guī)定的緩沖器存儲器測試,只要系統(tǒng)數(shù)據(jù)存儲在包含有由所談?wù)摰脑缦确怄i的指針?biāo)鶚?biāo)識的位置的緩沖器存儲器段的某處,該測試的結(jié)果以和第三方式中同樣的方式用于非封鎖指針和早先封鎖的指針的未驗收測試,而早先封鎖的指針在經(jīng)過由一限制數(shù)定義的一些連續(xù)測試合格后首先返回空閑表。
18.按照權(quán)利要求8-9或11-17中的任何一個的隊列系統(tǒng),其特征在于,多重指針和封鎖指針?biāo)玫谋砗隙鵀橐弧?br>
19.在為執(zhí)行從一聯(lián)機(jī)維護(hù)的空閑地址表往存儲器中自由存儲位置執(zhí)行寫操作而在存儲器中選擇存儲位置,和為收集早先存儲在存儲器中的數(shù)據(jù)而計算地址的一隊列系統(tǒng)中測試所述存儲位置的一種方法,包括從系統(tǒng)控制的系統(tǒng)使用中釋放為測試選擇的地址,把選擇的存儲位置暴露給在系統(tǒng)運(yùn)行時的空閑周期周期地對每一存儲位置測試的過程,和為維護(hù)所述空閑表使用所述測試過程的結(jié)果。
20.按照權(quán)利要求19的方法,包括在等待存儲位置由系統(tǒng)使用釋放以后執(zhí)行對其的測試,和僅當(dāng)該存儲位置通過測試后返回該存儲位置到系統(tǒng)使用。
21.按照權(quán)利要求19的方法,包括通過把要測試的存儲位置的內(nèi)容拷貝到一自由而無錯誤的存儲位置而釋放指向該存儲位置的地址,重新引導(dǎo)由新存儲位置使用的地址計算,和僅當(dāng)被測試的存儲位置通過測試后返回其到系統(tǒng)使用。
22.按照權(quán)利要求19的方法,包括當(dāng)包含所談?wù)摰拇鎯ξ恢玫恼麄€存儲器塊從系統(tǒng)使用中釋放時重新測試未通過測試的存儲位置。
23.按照權(quán)利要求19的方法,包括a)執(zhí)行一確定存儲位置的測試,這是通過在第一運(yùn)行方式中以由測試邏輯控制的脫機(jī)測試方式測試所有地址,在所述測試期間計數(shù)有可修復(fù)錯誤的存儲位置的數(shù)目,和標(biāo)明不可修復(fù)錯誤,而進(jìn)行的;b)在第二聯(lián)機(jī)方式中只檢查正被測試的存儲器位置的數(shù)據(jù),和強(qiáng)迫其它存儲位置以正常運(yùn)行時的數(shù)據(jù)運(yùn)行,其地址由系統(tǒng)控制。
24.在帶有為一個或多個交換輸出端口的公共緩沖器存儲器的包交換中緩存數(shù)據(jù)的隊列系統(tǒng)中,所述系統(tǒng)使用一些標(biāo)識緩沖器存儲器中存儲位置的指針,和在其中這些指針在不同的邏輯表之間移動來指明在所指的緩沖器位置的數(shù)據(jù)要執(zhí)行的操作,一種管理所述指針的方法,包括連續(xù)地保證系統(tǒng)對在緩沖器存儲器中的每一有效包位置包含一個且只包含一個指針。
25.在帶有為一個或多個交換輸出端口的公共緩沖器存儲器的包交換中緩存數(shù)據(jù)的隊列系統(tǒng)中,所述系統(tǒng)使用一些標(biāo)識緩沖器存儲器中存儲位置的指針,和在其中這些指針在不同的邏輯表之間移動來指明在所指的緩沖器位置的數(shù)據(jù)要執(zhí)行的操作,一種管理所述指針的方法,包括通過以一種在多重指針表中記錄包含在系統(tǒng)中各自指針的拷貝數(shù)的受控方式管理同一指針的拷貝,和檢查一指針的拷貝數(shù)與在多重指針表中為該各自指針記錄的數(shù)值是否相符。
26.按照權(quán)利要求25的方法,包括除多重指針表外使用下面各自指針類別的邏輯表空閑指針的空閑表,在輸出端口隊列中排隊指針的輸出隊列表,和封鎖的指針的封鎖表。
27.按照權(quán)利要求26的方法,包括a)通過從輸出隊列表返回到空閑表的指針流中濾除每一指針而使其從運(yùn)行中取出,把所有指針暴露給初始化過程,直到該隊列系統(tǒng)清空正被討論的指針的每一拷貝,和比較正被討論的指針的返回拷貝數(shù)與在多重指針表中的數(shù)值,以及,在所述初始化過程后,b)循環(huán)檢查所有指針和附屬的緩沖器位置,每次一個。
28.按照權(quán)利要求27的方法,包括在所述初始化過程后執(zhí)行第一運(yùn)行方式,其,或者由下述事實(shí)激發(fā),即作為所述初始化過程的結(jié)果而發(fā)現(xiàn)大于一確定限制的指針數(shù),它們各自的拷貝數(shù)與在多重指針表中所談?wù)摰闹羔樀臄?shù)值不符,或者由一外部信號激發(fā),包括返回這些指針到空閑表、將多重指針表中的數(shù)值復(fù)位到無多重拷貝、和在封鎖表中指明無指針被封鎖的步驟。
29.按照權(quán)利要求24或27的方法,包括在所述初始化過程后執(zhí)行第一運(yùn)行方式,其,或者由下述事實(shí)激發(fā),即作為所述初始化過程的結(jié)果而發(fā)現(xiàn)大于一確定限制數(shù)目的丟失或多重指針,或者由一外部信號激發(fā),包括把每一指針的一個拷貝返回到空閑表、和在封鎖表中指明無指針被封鎖的步驟。
30.按照權(quán)利要求28或29的方法,包括執(zhí)行由第一維護(hù)方式運(yùn)行遍歷所有指針而激發(fā)的第二運(yùn)行方式,和包括下述步驟對每一指針,每次一個,再次執(zhí)行初始化過程,以低的優(yōu)先級對由所談?wù)摰闹羔槝?biāo)識的非封鎖存儲器位置進(jìn)行緩沖器存儲器測試而排隊,對所有其它非封鎖的存儲器位置在測試時以系統(tǒng)數(shù)據(jù)進(jìn)行,使用該存儲器測試結(jié)果返回該指針到空閑表,如果該緩沖器存儲器測試給出一正確結(jié)果的話;而如果該緩沖器存儲器測試指出由該指針定義的區(qū)域內(nèi)故障的話,封鎖該指針使其不在系統(tǒng)中使用,暴露被封鎖的指針給和第一緩沖器存儲器測試同樣類型的第二緩沖器存儲器測試,通過維護(hù)隊列中每一測試數(shù)據(jù)的操作而加以調(diào)整,只要系統(tǒng)數(shù)據(jù)存儲在包含由被封鎖的指針標(biāo)識的位置的緩沖器存儲器段的某處,使用第二測試的結(jié)果返回該指針到空閑表,如果該測試給出一正確結(jié)果的話;而把被封鎖的指針在超過一第二限制數(shù)的數(shù)目的連續(xù)測試中認(rèn)可后首先返回到空閑表。
31.按照權(quán)利要求29的方法,包括執(zhí)行由第一方式運(yùn)行遍歷所有指針而激發(fā)的第二運(yùn)行方式,和包括下述步驟對這些指針再次執(zhí)行初始化過程,為一簡單的寫和讀測試排隊,等待對由其拷貝數(shù)與在多重指針表中記錄的數(shù)值不符的指針?biāo)鶚?biāo)識的緩沖器存儲器位置的執(zhí)行,使用該寫和讀測試的結(jié)果返回所談?wù)摰闹羔樀娇臻e表,如果該測試給出一正確結(jié)果的話;但如果該測試指出由所談?wù)摰闹羔槝?biāo)識的區(qū)域內(nèi)故障的話,封鎖該指針使其不在系統(tǒng)中使用,。
32.按照權(quán)利要求31的方法,包括執(zhí)行由第二方式運(yùn)行遍歷所有指針而激發(fā)的第三運(yùn)行方式,對非封鎖指針再次執(zhí)行初始化過程,為檢測在第二運(yùn)行方式中由簡單的寫和讀測試未檢測到的故障類型的緩沖器存儲器測試排隊,等待在由初始化過的指針?biāo)鶚?biāo)識的緩沖器存儲器位置執(zhí)行,所述緩沖器存儲器測試包括的步驟有以測試數(shù)據(jù)測試這些存儲器位置,和在對每一封鎖的指針測試期間以系統(tǒng)數(shù)據(jù)測試所有其它非封鎖緩沖器存儲器位置,使用該測試的結(jié)果返回指針到空閑表,如果該緩沖器存儲器測試給出一正確結(jié)果的話;但如果該緩沖器存儲器測試指出在由該指針標(biāo)識的區(qū)域內(nèi)故障的話,封鎖該指針使其不在系統(tǒng)中使用。
33.按照權(quán)利要求32的方法,包括執(zhí)行由第三方式運(yùn)行遍歷所有指針而激發(fā)的第四運(yùn)行方式,和包括的步驟有通過對所有指針周期地執(zhí)行所述初始化過程,一次一個,接受早先封鎖的指針進(jìn)行測試,把和在第三方式中同樣類型的緩沖器存儲器測試應(yīng)用于非封鎖指針,和把早先封鎖的指針暴露給同一類型的通過維護(hù)隊列中的每一測試數(shù)據(jù)操作加以調(diào)整的緩沖器存儲器測試,只要系統(tǒng)數(shù)據(jù)存儲在包含有由所談?wù)摰脑缦确怄i的指針?biāo)鶚?biāo)識的位置的緩沖器存儲器段的某處,以和第三方式中同樣的方式為非封鎖指針和早先封鎖的指針的非驗收測試使用該測試的結(jié)果,和在經(jīng)過由一限制數(shù)定義的數(shù)目的連續(xù)測試合格后首次把早先封鎖的指針返回空閑表。
全文摘要
本發(fā)明涉及在帶有為一個或多個交換端口的公共緩沖器存儲器(32)的包交換中緩沖數(shù)據(jù)的一容錯隊列系統(tǒng),所述系統(tǒng)使用一些標(biāo)識緩沖器存儲器中的存儲位置的指針。同一指針的多重拷貝通過使用一多重指針表(56)以受控方式管理,在多重指針表中記錄有包含在系統(tǒng)中各自指針的拷貝的數(shù)目。維護(hù)功能(52)檢查一指針的拷貝數(shù)是否與在多重指針表(56)中為各自指針記錄的數(shù)值一致。維護(hù)功能(52)周期地檢查所有指針和附屬的緩沖器位置,每次一個。此前要執(zhí)行初始化過程,其間通過從指針流中濾除指針而將其從運(yùn)行中取出,直到該隊列系統(tǒng)清空所談?wù)摰闹羔樀拿恳豢截?,指針流中的指針從為在隊列中的排隊指針到存儲器的輸出端口的輸出隊列?44)返回到空閑表(38)。然后比較所談?wù)摰闹羔樀姆祷乜截悢?shù)與在多重指針表(56)中的數(shù)值。維護(hù)功能然后可以按照一個或多個運(yùn)行方式執(zhí)行循環(huán)控制。
文檔編號G11C29/00GK1136354SQ9419428
公開日1996年11月20日 申請日期1994年11月23日 優(yōu)先權(quán)日1993年11月26日
發(fā)明者T·L·郝林 申請人:艾利森電話股份有限公司