SE502719C2 - Fault tolerant queue system for buffering data in packet switch - Google Patents

Fault tolerant queue system for buffering data in packet switch

Info

Publication number
SE502719C2
SE502719C2 SE9501980A SE9501980A SE502719C2 SE 502719 C2 SE502719 C2 SE 502719C2 SE 9501980 A SE9501980 A SE 9501980A SE 9501980 A SE9501980 A SE 9501980A SE 502719 C2 SE502719 C2 SE 502719C2
Authority
SE
Sweden
Prior art keywords
pointer
pointers
test
buffer memory
list
Prior art date
Application number
SE9501980A
Other languages
Swedish (sv)
Other versions
SE9501980L (en
SE9501980D0 (en
Inventor
Tord Haulin
Original Assignee
Ellemtel Utvecklings Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ellemtel Utvecklings Ab filed Critical Ellemtel Utvecklings Ab
Priority to SE9501980A priority Critical patent/SE502719C2/en
Publication of SE9501980L publication Critical patent/SE9501980L/en
Publication of SE9501980D0 publication Critical patent/SE9501980D0/en
Publication of SE502719C2 publication Critical patent/SE502719C2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The queue system selects storing positions in a memory (2), performs write operations (4) on the storing positions from an on-line maintained idle list (6) of addresses to free storing positions in the memory. The system calculates addresses for collecting (8) data earlier stored in memory. The storing positions are exposed to a test procedure (16) which is performed periodically on each storing position in idle cycles during operation of the system. The result of the test procedure is used for maintenance of the idle list (6). The addresses selected for test are released from system use as controlled by the system. The test of a storing position may be performed after awaiting for it to have been released from use by the system, and return to system use is performed only if the storing position, only if the storing position stands the test.

Description

502 719 2 hjälp av andra medel för att permanent rekonfigurera kretsen på fabriken. 502 719 2 using other means to permanently reconfigure the circuit at the factory.

Provning sker för att bestämma vilka kretsar som kräver reparation. Om tillverkningsfel uppträder och är av ett slag, som kan repareras genom inkoppling av reservkretsar, bestäms typen av tillverkningsfel och reparationen genomförs.Testing is done to determine which circuits require repair. If manufacturing defects occur and are of a type that can be repaired by connecting spare circuits, the type of manufacturing defects is determined and the repair is carried out.

Vid halvledarminnen utan redundans bestäms mappning mellan adress och fysisk position i minnet under konstruktion av minnet. Vid halvledarminnen med redundans inställs denna mappning delvis under konstruktionen, och slutförs under tillverkning när felaktiga minnesställen skall repareras.For semiconductor memories without redundancy, mapping between address and physical position in memory is determined during construction of the memory. For semiconductor memories with redundancy, this mapping is set in part during construction, and is completed during manufacture when incorrect memory locations are to be repaired.

Vid diskminnen används en provningsprocedur, innan disken tas i bruk, under en formateringsoperation för att bestämma vilka sektorer på disken som kan användas. Syftet är att kunna använda en disk med dåliga sektorer. Den felhypotes, från vilken man utgår, är att vissa positioner på disken kan vara dåliga på grund av att tillverkningen ej är perfekt. Uppdel- ningen i bra och dåliga sektorer kan ske under formateringspro- cessen och antas ej behöva ändras. Risken för diskadresserings- fel behöver ej beaktas under formateringsproceduren.For disk memories, a test procedure is used, before the disk is used, during a formatting operation to determine which sectors of the disk can be used. The purpose is to be able to use a disk with bad sectors. The error hypothesis, from which one assumes, is that certain positions on the disk may be bad due to the fact that the manufacture is not perfect. The division into good and bad sectors can take place during the formatting process and is not assumed to need to be changed. The risk of disk addressing errors does not need to be considered during the formatting procedure.

I vissa system används felkorrigeringskoder (ECC = Error Correcting Codes) för att åstadkomma feltolerans mot bitfel under drift. Dessa under drift uppträdande fel kan vara mjuka eller hårda fel, dvs temporära störningar eller fasta fel.Some systems use Error Correcting Codes (ECCs) to provide fault tolerance to bit errors during operation. These faults that occur during operation can be soft or hard faults, ie temporary faults or fixed faults.

Antalet bitar som kan korrigeras i varje ord är begränsat. Den oftast använda koden kan korrigera enkelbitfel och detektera dubbelbitfel. Nyligen har det visats att en kombination av felkorrigeringskoder och reservrader ger ett feltoleranssystem, som har en mycket höggradig reparerbarhet av tillverkningsfel i halvledarminnen, jfr IEEE transactions on computers vol. 41 #9 sep 1992, pp 1078-1087.The number of bits that can be corrected in each word is limited. The most commonly used code can correct single bit errors and detect double bit errors. Recently, it has been shown that a combination of error correction codes and spare lines provides a fault tolerance system, which has a very high degree of repairability of manufacturing defects in semiconductor memories, cf. IEEE transactions on computers vol. 41 # 9 Sep 1992, pp 1078-1087.

Reparation av anordningar innan de lämnar tillverkningen kräver provningsapparatur och utrustning för säkringsprogram- mering (varaktig förändring av förbindelser i en elektrisk krets för att påverka dess funktion - eng. fuse or antifuse), på tillverkningslinjen i fabriken, samt en tillverkningspro- cess, som innefattar säkringskomponenter. Detta innebär ökade kostnader på grund av förlängning av tillverkningscykeln.Repair of devices before leaving production requires test equipment and fuse programming equipment (permanent change of connections in an electrical circuit to affect its function - fuse or antifuse), on the production line in the factory, and a manufacturing process, which includes fuse components. This means increased costs due to the extension of the manufacturing cycle.

Graden av framgång med reparationsoperationerna begränsas av 502 719 3 att de bygger på användningen av reservrader- och kolumner, samt inflexibiliteten med avseende på hantering av spridda punktfel.The degree of success of the repair operations is limited by the fact that they are based on the use of spare rows and columns, as well as the inflexibility with regard to the handling of scattered point errors.

Utnyttjande av felkorrigeringskoder tar hand om de spridda punktfelen. För full effektivitet krävs emellertid kombination med någon sort av system med redundanta rader. Enligt teknikens ståndpunkt innebär detta säkringsprogrammering och provning innan kretsarna lämnar fabriken.Utilization of error correction codes takes care of the scattered point errors. For full efficiency, however, combination with some kind of system with redundant lines is required. According to the state of the art, this involves fuse programming and testing before the circuits leave the factory.

US 4,049,956 utgör exempel på teknikens ståndpunkt vad avser felupptäckt under drift, och beskriver övervakning av ett minne arbetande i en tidsmultiplexmod. Inkommande dataord lagras temporärt i respektive steg hos ett flerstegsminne och utläses därifrån för vidare bearbetning. Provningen utförs utan att minnet tas ur normal verksamhet. Minnet består av n antal steg, vilka periodiskt adresseras i en återkommande scannings- cykel av n tidsluckor, i vilka binära ord inskrivs och utläses från respektive steg. Ord inskrivna i ett minnessteg utläses i den omedelbart påföljande cykeln. Felfunktioner detekteras via paritetscheckningar.US 4,049,956 is an example of the state of the art regarding error detection during operation, and describes monitoring of a memory operating in a time division multiplex mode. Incoming data words are temporarily stored in the respective stages of a multi-stage memory and are read from there for further processing. The test is performed without removing the memory from normal operation. The memory consists of n number of steps, which are periodically addressed in a recurring scanning cycle of n time slots, in which binary words are written in and read out from each step. Words written in a memory step are read out in the immediately following cycle. Malfunctions are detected via parity checks.

US 3,863,227 beskriver val och provning av vart och ett av individuella elektroniska styrelement, som används för access av de olika kärnelementen i ett kärnminne, medan minnet är "on- line". Det rör sig sålunda om "on-line"-provning av ett minnes- system, men inte av de i minnet ingående minneslagringselemen- ten. Ingen använding av paritetskontroller beskrivs.US 3,863,227 describes the selection and testing of each of individual electronic control elements used for accessing the various core elements of a core memory, while the memory is "online". It is thus an "on-line" test of a memory system, but not of the memory storage elements included in the memory. No use of parity checks is described.

US 5,016,248 beskriver ett kösystem för pakettrafik utan omnämnande av eventuell initialisering eller underhåll.US 5,016,248 describes a queuing system for packet traffic without mentioning any initialization or maintenance.

Redogörelse för uppfinningen.Disclosure of the invention.

Ett första syfte med föreliggande uppfinning är att åstad- komma feltolerans genom ett löpande underhåll av pekarhante- ringen i ett kösystem med dynamisk indirekt adressering så att systemet alltid har förmågan att återställa en korrekt upp- sättning pekare oberoende av vilket tillstånd systemet har hamnat i.A first object of the present invention is to achieve fault tolerance through a continuous maintenance of the pointer handling in a queuing system with dynamic indirect addressing so that the system always has the ability to restore a correct set of pointers regardless of the condition the system has ended up in.

Ett andra syfte är att uppnå feltolerans mot fel i minnen, som kan uppstå under drift av systemet.A second object is to achieve fault tolerance against errors in memories, which can occur during operation of the system.

Ett tredje syfte med uppfinningen är att förbättra utbytet vid tillverkning av stora halvledarminnen genom organisering och användning av redundanta kretsar på ett nytt sätt. Genom 502 719 4 utnyttjande av feltolerans kan minnen med smärre tillverknings- fel ändå fungera felfritt och behöver ej kasseras. Genom lämplig inställning av kassationströskeln under provningspro- ceduren, så att reservkapacitet kvarstår, kan minneshanterings- systemet även återhämta sig från fel som uppträder under drift.A third object of the invention is to improve the yield in the manufacture of large semiconductor memories by organizing and using redundant circuits in a new way. By utilizing fault tolerance, memories with minor manufacturing defects can still function faultlessly and do not need to be discarded. By appropriately setting the disposal threshold during the test procedure, so that reserve capacity remains, the memory management system can also recover from errors that occur during operation.

Enligt uppfinningen uppnås ovanstående syften helt eller delvis på följande sätt.According to the invention, the above objects are achieved in whole or in part in the following manner.

Vid ett kösystem av inledningsvis angivet slag finns det enligt en första aspekt av uppfinningen en underhållsfunktion som kontinuerligt säkerställer att systemet innehåller en och endast en pekare till varje giltig paketplats i buffertminnet.In a queuing system of the type initially indicated, according to a first aspect of the invention, there is a maintenance function which continuously ensures that the system contains one and only one pointer to each valid packet location in the buffer memory.

Vid ett kösystem av likaledes inledningsvis angivet slag hanteras enligt en andra aspekt av uppfinningen multipla kopior av samma pekare på ett kontrollerat sätt genom användning av en multipekarlista där antalet i systemet ingående kopior av respektive pekare registreras, och där en underhållsfunktion kontrollerar att antalet kopior av en pekare stämmer överens med det värde som finns registrerat i multipekarlistan för respektive pekare.In a queuing system of the kind also initially indicated, according to a second aspect of the invention, multiple copies of the same pointer are handled in a controlled manner by using a multiple pointer list where the number of copies of respective pointers in the system is recorded, and where a maintenance function checks pointer corresponds to the value registered in the multi-pointer list for each pointer.

Föredragna och/eller fördelaktiga utföringsformer av uppfinningen har därvid, av skäl som kommer att framgå av nedanstående närmare beskrivning, erhållit de i respektive underkrav angivna kännetecknen.Preferred and / or advantageous embodiments of the invention have thereby, for reasons which will appear from the following detailed description, obtained the features stated in the respective subclaims.

Minneshanteringssystemet enligt uppfinningen åstadkommer dynamisk tolerans för tillverkningsfel när systemet är i drift.The memory management system of the invention provides dynamic tolerance for manufacturing defects when the system is in operation.

Provning och reparation genom rekonfigurering i fabriken krävs ej. Provning sker efter fullbordad tillverkning för att be- stämma huruvida minnet har tillräcklig lagringskapacitet eller inte för den avsedda tillämpningen.Testing and repair by factory reconfiguration is not required. Testing takes place after completed production to determine whether the memory has sufficient storage capacity or not for the intended application.

Figurbeskrivning.Figure description.

Uppfinningen skall nu beskrivas närmare med hänvisning till ett på bifogade ritning visat utföringsexempel, varvid fig. 1 mycket schematiskt åskådliggör ett kösystem enligt uppfinningen, fig. 2 delvis i blockschemaform visar en utföringsform av en paketväljare, vid vilken uppfinningens olika aspekter tillämpas, fig. 3 visar ett flödesschema över huvudarbetsmoder in- gående i en underhållsfunktion för provning av adresspekare och 502 719 5 buffertminnespositioner vid paketväljaren enligt fig. 2, samt fig. 4-7 visar flödesscheman för respektive moder i fig. 3.The invention will now be described in more detail with reference to an exemplary embodiment shown in the accompanying drawing, in which Fig. 1 very schematically illustrates a queuing system according to the invention, Fig. 2 partly in block diagram form shows an embodiment of a package selector, in which different aspects of the invention are applied; shows a flow chart of main working mode included in a maintenance function for testing address pointers and buffer memory positions at the packet selector of Fig. 2, and Figs. 4-7 show flow charts for each mode in Fig. 3.

Föredragna utföringsformer.Preferred embodiments.

I fig. 1 åskådliggörs mycket schematiskt ett kösystem för val av lagringspositioner i ett dataminne 2 för utförande av skrivoperationer, pil 4, på dessa från en on-line underhållen lediglista 6 av adresser till lediga lagringspositioner i minnet 2, samt kalkylering av adresser för att hämta, pil 8, tidigare i minnet 2 lagrade data. Sistnämnda adresser överförs, pil 10, till listor 12 över använt lagringsutrymme i minnet 2.Fig. 1 very schematically illustrates a queuing system for selecting storage positions in a data memory 2 for performing write operations, arrow 4, on these from an on-line maintained free list 6 of addresses to free storage positions in the memory 2, and calculating addresses for retrieve, arrow 8, data previously stored in memory 2. The latter addresses are transferred, arrow 10, to lists 12 of used storage space in memory 2.

Minnets lagringspositioner underkastas med hjälp av en testlogik 14 en provningsprocedur, som genomförs periodiskt, pil 16, på varje lagringsposition under lediga cykler under drift av systemet. De för provning avsedda positionerna väljs, pil 18, med hjälp av de i listorna 12 ingående adresserna, varvid de utvalda positionerna styrt av systemet frigörs från systemanvändning. Resultatet av provningen används för underhåll, pil 20, av lediglistan 6.The storage positions of the memory are subjected by means of a test logic 14 to a test procedure, which is carried out periodically, arrow 16, at each storage position during idle cycles during operation of the system. The positions to be tested are selected, arrow 18, by means of the addresses included in the lists 12, whereby the selected positions controlled by the system are released from system use. The result of the test is used for maintenance, arrow 20, of the vacancy list 6.

Provningen av en lagringsposition kan ske efter avvaktan av att den skall friges från bruk av systemet. Alternativt kan adresser till för provning avsedda lagringspositioner frigöras genom kopiering av innehållet hos en sådan, för provning avsedd lagringsposition till en ledig och felfri, ny lagringsposition.The testing of a storage position can take place after waiting for it to be released from use of the system. Alternatively, addresses of test storage locations can be released by copying the contents of such a test storage location to a free and error-free new storage location.

Adresskalkyleringen omriktas därpå för användning av denna nya lagringsposition.The address calculation is then redirected to use this new storage location.

I båda fallen återförs slutligen provad lagringsposition till systembruk, dvs till lediglistan 6, endast om den klarar provningen. Lagringspositioner som inte klarat provningen omprovas vid tillfällen då hela det minnesblock, som innehåller lagringspositionen ifråga, frigörs från användning i systemet.In both cases, the tested storage position is finally returned to system use, ie to the free list 6, only if it passes the test. Storage positions that have not passed the test are retested at times when the entire memory block containing the storage position in question is released from use in the system.

Minnesprovningslogiken 14 för genomförande av provningen av en given lagringsposition kan företrädesvis arbeta i två moder.The memory test logic 14 for performing the test of a given storage position may preferably operate in two modes.

I den första moden provas alla adresser i en av logiken styrd off-line-provning, under vilken räkning sker av antalet lagringspositioner med rättningsbara fel, och där befintliga icke rättningsbara fel indikeras.In the first mode, all addresses are tested in a logic-controlled off-line test, during which the number of storage positions with correctable errors is calculated, and where existing non-correctable errors are indicated.

Vid denna komponentprovning utförs ett fullständigt minne- sprov med exempelvis s.k. "march patterns", jfr t.ex. "Using March Tests to Test SRAMS", AD J van de Goor, IEEE Design & 5Û2 719 6 Tests of Computers, March 93, vol 10, no 1, and "Built in Self Diagnosis for Repairable Embedded RAM:S, Robert Trenter et al, IEEE Design & Tests of Computers, June 93, vol 10, no 2. Detta görs för att sortera bort icke fungerande kretsar. Eftersom kösystemet enligt uppfinningen erbjuder ett visst mått av feltolerans, kan även kretsar med felaktiga lagringspositioner klassas som korrekta. Därför registreras antalet fel under provningen. Om antalet fel är lägre än den uppsatta kassations- tröskeln godkänns komponenten.In this component test, a complete memory test is performed with, for example, so-called "march patterns", cf. "Using March Tests to Test SRAMS", AD J van de Goor, IEEE Design & 5Û2 719 6 Tests of Computers, March 93, vol 10, no 1, and "Built in Self Diagnosis for Repairable Embedded RAM: S, Robert Trenter et al, IEEE Design & Tests of Computers, June 93, vol 10, no 2. This is done to sort out non-functioning circuits.Because the queuing system according to the invention offers a certain degree of fault tolerance, circuits with incorrect storage positions can also be classified as correct. If the number of errors is lower than the set rejection threshold, the component is approved.

I den andra moden, som verkar on-line, kontrollerar logiken 20 endast data till det för tillfället provade minnesstället, och andra lagringspositioner bringas att arbeta med data under normal drift adresstyrt av systemet.In the second mode, which operates on-line, the logic 20 only checks data to the currently tested memory location, and other storage positions are made to work with data during normal operation address controlled by the system.

En utföringsform av uppfinningen skall nu beskrivas mera detaljerat. Med hänvisning till fig. 2, skrivs i en typ av paketväljare ett inkommande paket, efter analys av innehållet i paketets huvud i en analysfunktion 30, in på en lagringsposi- tion i ett för de anländande paketen gemensamt buffertminne 32.An embodiment of the invention will now be described in more detail. Referring to Fig. 2, in a type of packet selector, an incoming packet, after analyzing the contents of the packet header in an analysis function 30, is written to a storage position in a buffer memory 32 common to the arriving packets.

Buffertminnet 32 visas schematiskt med ett inkommande paket- flöde 34 och ett antal utkanaler 36.1...36.n för utgående paketflöden från väljaren. Flödet av data till analysfunktionen 30 för att möjliggöra dess funktion har därvid betecknats med 34'. Inskrivningen sker med ledning av en adresslista 38, vilken innehåller adresspekare, vilka pekar till motsvarande lediga lagringspositioner i buffertminnet 32. Denna adresslista benämns nedan i korthet även "lediglista". Analysfunktionen 30 beordrar närmare bestämt med signal enligt pil 39 lediglistan 38 dels att tillhandahålla en pekare för ett aktuellt paket, och dels att efter inskrivning, signalerad enligt pil 40 från lediglistan 38 till buffertminnet 32, av paketet i buffert- minnet med ledning av pekaren, överföra den senare till ett pekarkösystem innehållande ett antal fifo-pekarköer 44, en för varje utgång 36. Pekaren flyttas således närmare bestämt enligt pil 42 från lediglistan 38 till en fifo-pekarkö 44.n för en väljarutgång 36.n, som utvalts för paketet med ledning av analysen av innehållet i dess huvud. Valet av pekarkö sker genom en styrsignal 45 från analysfunktionen 30 till aktuell pekarkö.The buffer memory 32 is shown schematically with an incoming packet flow 34 and a number of output channels 36.1 ... 36.n for outgoing packet flows from the selector. The flow of data to the analysis function 30 to enable its function has then been denoted by 34 '. The entry is made on the basis of an address list 38, which contains address pointers, which point to the corresponding free storage positions in the buffer memory 32. This address list is hereinafter briefly also referred to as "free list". More specifically, the analysis function 30 commands with a signal according to arrow 39 the free list 38 partly to provide a pointer for a current packet, and partly that after writing, signaled according to arrow 40 from the free list 38 to the buffer memory 32, of the packet in the buffer memory guided by the pointer. transfer the latter to a pointer queue system containing a number of fifo pointer queues 44, one for each output 36. Thus, more specifically, according to arrow 42, the pointer is moved from vacancy list 38 to a fifo pointer queue 44.n for a selector output 36.n selected for the packet with the guidance of the analysis of the contents of its head. The selection of the pointer queue takes place through a control signal 45 from the analysis function 30 to the current pointer queue.

Ett inkommande pakets huvud kan innehålla flera 502 719 7 destinationsadresser, dvs paketets innehåll skall skickas till flera väljarutgångar. I detta fall kopieras pekaren till den utvalda lagringspositionen i buffertminnet 32 så att lika många pekare som det aktuella antalet väljarutgångar erhålles. Nedan används även benämningen "multipelpekare" för en pekare i en sådan uppsättning pekare, som pekar till samma lagringsposition i buffertminnet 32. Dessa multipelpekare leds till varsin av pekarköerna för de aktuella utgångarna.An incoming packet header can contain several destination addresses, ie the contents of the packet must be sent to several selector outputs. In this case, the pointer is copied to the selected storage position in the buffer memory 32 so that as many pointers as the current number of selector outputs are obtained. Hereinafter, the term "multiple pointer" is also used for a pointer in such a set of pointers, which points to the same storage position in the buffer memory 32. These multiple pointers are routed to each of the pointer queues for the current outputs.

När en pekare, dvs. en enstaka pekare eller en multipel- pekare, hamnat först i sin fifo-kö 44.n, läses det av pekaren utpekade datapaketet enligt pil 46.n med ledning av pekaren ut från sin lagringsposition i buffertminnet 32 till den aktuella utgången 36.n.When a pointer, ie. a single pointer or a multiple pointer, ended up first in its fifo queue 44.n, the data packet designated by the pointer is read according to arrow 46.n with guidance of the pointer from its storage position in the buffer memory 32 to the current output 36.n.

Pekaren återleds enligt pilar 48 och 50 därefter till lediglistan 38 via en nedan närmare beskriven underhållsfunk- tion 52, som övervakar pekare, som återförs till lediglistan 38. Närmare bestämt flyttas pekaren till lediglistan om den ej utväljs för test av underhållsfunktionen 52.The pointer is then returned according to arrows 48 and 50 to the vacancy list 38 via a maintenance function 52 described in more detail below, which monitors pointers which are returned to the vacancy list 38. More specifically, the pointer is moved to the vacancy list if it is not selected for testing the maintenance function 52.

I underhållsfunktionen 52 hanteras kopior av samma pekare på ett kontrollerat sätt. Detta sker närmare bestämt genom användning av en i underhållsfunktionen 52 ingående multi- pekarlista 56 där antalet i systemet ingående kopior av respek- tive pekare registreras, varvid underhållsfunktionen 52 kontrollerar att antalet kopior av en pekare stämmer överens med det värde som finns registrerat i multipekarlistan 56 för respektive pekare.In maintenance function 52, copies of the same pointer are handled in a controlled manner. More specifically, this is done by using a multi-pointer list 56 included in the maintenance function 52, where the number of copies of respective pointers in the system is registered, the maintenance function 52 checking that the number of copies of a pointer corresponds to the value registered in the multi-pointer list 56. for each pointer.

I nedan mer detaljerade beskrivning av utföringsformer av uppfinningen används benämningen x på en pekare under test, där x tillhör mängden av alla pekare. I motsvarighet härtill be- tecknas den buffertminnesposition i buffertminnet 32, som ut- pekas av pekaren x, med B(x).In the following more detailed description of embodiments of the invention, the term x is used on a pointer during test, where x belongs to the set of all pointers. Correspondingly, the buffer memory position in the buffer memory 32 designated by the pointer x is denoted by B (x).

Underhållsfunktionen 52 utför, på nedan närmare beskrivet sätt, provning av buffertminnespositioner B(x). För detta ända- mål överförs pekaren x till en testlogik 58 för buffertminnet 32 enligt pil 60'. Resultatet av testoperationen på buffert- minnespositionen B(x) signaleras från testlogiken 58 till underhållsfunktionen 52 enligt pil 60".The maintenance function 52 performs, in the manner described in more detail below, testing of buffer memory positions B (x). For this purpose, the pointer x is transferred to a test logic 58 for the buffer memory 32 according to arrow 60 '. The result of the test operation at the buffer memory position B (x) is signaled from the test logic 58 to the maintenance function 52 according to arrow 60 ".

Det kommer likaledes att framgå närmare av den följande beskrivningen att om denna provning indikerar felfunktion hos 502 719 8 en minnesposition spärras motsvarande pekare ut från användning i systemet och tillförs en spärrlista 62, som likaledes ingår i underhållsfunktionen 52. Listorna för multipelt använda, och utspärrade pekare kan även kombineras till en lista.It will also be apparent from the following description that if this test indicates a malfunction of a memory location, the corresponding pointer is blocked from use in the system and a block list 62 is added, which is also included in the maintenance function 52. The lists for multiple use, and blocked pointers can also be combined into a list.

Närmare bestämt kontrollerar underhållsfunktionen 52 cykliskt alla pekarna och tillhörande buffertplatser, en i sänder, föregånget av en initieringsprocedur. Med "alla" pekare avses här alla pekare som skall finnas i systemet, dvs pekare, som befinner sig i lediglistan 38, i utköerna 44, i multi- pekarlistan 56 och i spärrlistan 62. Under initieringsproce- duren tas varje pekarvärde, ett i sänder, ur drift för att dels kontrollera att kösystemets 38, 44 hantering av pekaren är korrekt och dels för att kontrollera den datalagringsarea B(x) i buffertminnet 32, som identifieras av pekaren i fråga.More specifically, the maintenance function 52 cyclically checks all the pointers and associated buffer locations, one at a time, preceded by an initialization procedure. "All" pointers here refer to all pointers that must be in the system, ie pointers that are in the free list 38, in the queues 44, in the multi-pointer list 56 and in the block list 62. During the initialization procedure, each pointer value is taken, one at a time. , out of operation to check that the handling of the pointer 38, 44 by the pointer is correct and to check the data storage area B (x) in the buffer memory 32, which is identified by the pointer in question.

Under initieringsproceduren töms kösystemet 38, 44 på pekaren under test och alla eventuella kopior av densamma, varefter kontroll sker av att antalet funna kopior stämmer överens med värdet i multipekarlistan 56 för pekaren under test.During the initialization procedure, the queue system 38, 44 of the pointer during the test and all possible copies thereof are emptied, after which it is checked that the number of copies found corresponds to the value in the multipoint list 56 for the pointer during the test.

Underhållsfunktionen 52 kan därefter arbeta enligt en enda eller flera arbetsmoder. Oavsett vilket alternativ som gäller utgör initieringsproceduren första moment i varje sådan arbets- mode.The maintenance function 52 can then operate according to a single or multiple operating modes. Regardless of which alternative applies, the initiation procedure is the first step in any such work mode.

Med hänvisning till fig. 3 kan det vid en utföringsform av fallet flera arbetsmoder finnas fyra nivåer 70, 72, 74 och 76 av underhållsfunktionen 52. Den lägsta nivån 70 benämns nedan "Pekarkonditionering" och befattar sig endast med cirkulationen av pekare. De andra tre är utvidgade med olika läs/skriv-prov- ningar av buffertminnet 32.Referring to Fig. 3, in one embodiment of the multi-mode case, there may be four levels 70, 72, 74 and 76 of the maintenance function 52. The lowest level 70 is hereinafter referred to as "Pointer Conditioning" and deals only with the circulation of pointers. The other three are extended with different read / write tests of the buffer memory 32.

Som nämnts, töms under initieringsproceduren kösystemet 38, 44 på alla eventuella kopior av pekaren x. I icke-realtids- system kan detta åstadkommas på många olika sätt. I realtids- system är man i allmänhet hänvisad till att arbeta endast med pekare som returneras till lediglistan 38.As mentioned, during the initialization procedure, the queue system 38, 44 is emptied of all possible copies of the pointer x. In non-real-time systems, this can be accomplished in many different ways. In real-time systems, one is generally referred to work only with pointers that are returned to the vacancy list 38.

För att tömma ett realtidskösystem av ovan beskrivet slag på pekaren x måste först lediglistan 38 tömmas på alla eventu- ella kopior av den. Detta sker genom att filtrera ut pekaren x från flödet 48 av returnerade pekare, moment 78 i fig. 4-7, så att den hindras från att skrivas in på lediglistan 38. Denna 502 719 9 utfiltrering möjliggörs närmare bestämt genom att underhålls- funktionen 52 enligt pil 78' avger en signal till lediglistan 38 att sätta markör för den pekare, som för tillfället är sist i lediglistan. Med en signal 78" erhåller därefter underhålls- funktionen 52 information om att markören kommit längst fram i lediglistan 38. När alla pekare som fanns i lediglistan 38 vid filtreringens början, utgetts till ut-köerna 44, är lediglistan 38 med säkerhet tömd på alla pekare x.To empty a real-time queue system of the type described above on the pointer x, the free list 38 must first be emptied of all possible copies of it. This is done by filtering out the pointer x from the flow 48 of returned pointers, steps 78 in Figs. 4-7, so that it is prevented from being entered on the free list 38. This filtering out is more precisely made possible by the maintenance function 52 according to arrow 78 ', a signal to the vacancy list 38 to set the cursor for the pointer, which is currently last in the vacancy list. With a signal 78 ", the maintenance function 52 then receives information that the cursor has reached the front of the free list 38. When all pointers that were in the free list 38 at the beginning of the filtering have been issued to the out queues 44, the free list 38 is safely emptied of all pointers x.

Därefter måste ut-köerna 44 tömmas på eventuella kopior av pekaren x. Denna tömning möjliggörs närmare bestämt genom att underhållsfunktionen 52 enligt pil 79' avger en signal till utköerna 44 att sätta markör för de pekare, som för tillfället är sist i respektive utkö. Med en signal enligt pil 79" erhåller därefter underhållsfunktionen 52 information från utköerna att de sålunda markerade pekarna hamnat först i resp. kö. Sålunda inväntar underhållsfunktionen 52, under fortsatt utfiltrering av pekare x från flödet 48 av returnerade pekare, att de pekare som låg sist i ut-köerna 44 då tömningen av lediglistan 38 fullbordats, skall hamna först i kön. När den långsammaste kön uppfyllt detta kriterium är systemet tömt på pekaren x. Därefter kontrolleras, moment 80 i fig. 5-7, att antalet returnerade pekare stämmer överens med värdet för pekare x i multipekarlistan 56. Om detta ej är fallet, genereras en pekarfelsignal. Denna felsignal leder till något olika åtgärder beroende på vilken underhållsmode som exekveras.Thereafter, the out queues 44 must be emptied of any copies of the pointer x. This emptying is made possible in particular by the maintenance function 52 according to arrow 79 'giving a signal to the out queues 44 to mark the pointers which are currently last in each out queue. With a signal according to arrow 79 ", the maintenance function 52 then receives information from the queues that the pointers thus marked ended up first in the respective queue. Thus, while continuing to filter out pointer x from the flow 48 of returned pointers, the maintenance function 52 waits for the pointers that were last in the out queues 44 when the emptying of the free list 38 has been completed, must end up first in the queue.When the slowest queue meets this criterion, the system is emptied of the pointer x.Then check, step 80 in Fig. 5-7, that the number of returned pointers matches with the value of pointer xi in the multipoker list 56. If this is not the case, a pointer error signal is generated, which error signal leads to slightly different actions depending on the maintenance mode being executed.

I alla moder utom moden "Pekarkonditionering" spärras pekarvär- det ut och en ej närmare visad felräknare stegas upp, moment 82 i fig. 5-7. Om fler än ett antal a fel påträffas, moment 84 i fig. 5-7, avbryts pågående underhållsmode, felräknaren noll- ställs och hopp sker till moden "Pekarkonditionering", pil 86 i fig. 5-7. a är den önskade graden av tolerans mot fel i multi- pekarlistan 56. I moden "Pekarkonditionering" leder pekarfel- signalen inte till någon åtgärd, jfr fig. 4.In all modes except the "Pointer Conditioning" mode, the pointer value is locked out and an error counter (not shown) is stepped up, step 82 in Fig. 5-7. If more than a number of errors are encountered, step 84 in Figs. 5-7, the ongoing maintenance mode is interrupted, the error counter is reset and jumps to the "Pointer Conditioning" mode, arrow 86 in Figs. 5-7. a is the desired degree of tolerance to error in the multi-pointer list 56. In the "Pointer conditioning" mode, the pointer error signal does not lead to any action, cf. Fig. 4.

Vid start av systemet bör en korrekt pekaruppsättning göras tillgänglig för kösystemet så snabbt som möjligt. Därför initi- eras proceduren "Pekarkonditionering". Detta kan ske antingen som resultat av att pekarfel uppträder enligt ovan, eller genom aktivering genom en extern signal. Med pekarfel avses här och fortsättningsvis att, såsom ovan beskrivits, antalet under 502 719 10 initieringsproceduren returnerade kopior av en pekare inte överensstämmer med det för pekaren ifråga angivna antalet i multipekarlistan. Så snart som en pekare har blivit kontrol- lerad införs den i lediglistan 38 och kan användas för köande paket.When starting the system, a correct pointer set should be made available to the queuing system as soon as possible. Therefore, the "Pointer Conditioning" procedure is initiated. This can happen either as a result of pointer errors occurring as above, or by activation by an external signal. By pointer error is meant herein and hereinafter that, as described above, the number of copies of a pointer returned during the initialization procedure does not correspond to the number specified for the pointer in question in the multi-pointer list. As soon as a pointer has been checked, it is entered in the free list 38 and can be used for queuing packages.

När alla pekare har konditionerats exekveras nästa under- hållsnivå 72, nedan även benämnd "Snabbtest", för alla pekarna.When all pointers have been conditioned, the next maintenance level 72, hereinafter also referred to as "Quick Test", is executed for all pointers.

Därefter övergår underhållsfunktionen 52 till underhållsnivå 74, nedan även benämnd "Fulltest", varpå exekvering påbörjas av underhållsnivå 76 "Fulltest med omtest" som är det löpande drifttillståndet, vilket dock kan avbrytas om pekarfel uppträ- der.Thereafter, the maintenance function 52 transitions to maintenance level 74, hereinafter also referred to as "Full test", after which execution is started by maintenance level 76 "Full test with re-test" which is the current operating condition, which can, however, be interrupted if pointer errors occur.

Om fler felaktiga pekare (multipla eller förlorade pekare) än a upptäcks, kommer underhållsfunktionen 52, såsom likaledes beskrivits ovan, alltid att återstarta med "Pekarkonditione- ring", oberoende av vilken av de övriga underhållsmoderna som exekveras. Detta antyds i fig. 3, liksom i fig. 5-7, med pilarna 86.If more erroneous pointers (multiple or lost pointers) than a are detected, the maintenance function 52, as also described above, will always restart with "Pointer Conditioning", regardless of which of the other maintenance modes is executed. This is indicated in Fig. 3, as in Figs. 5-7, by the arrows 86.

Moden 70 "Pekarkonditionering" återför, med hänvisning till fig. 4, moment 88, varje pekare x till lediglistan 38, åter- ställer värdet i multipekarlistan 56 till “inga multipelko- pior", samt i spärrlistan 62 till "ingen utspärrning“. När sista pekare behandlats, jfr moment 90, nollställs pekarfel- räknaren, moment 92. Moden 70 övergår därefter i moden 72, pil 94.Mode 70 "Pointer Conditioning" returns, with reference to Fig. 4, step 88, each pointer x to the free list 38, resets the value in the multiple pointer list 56 to "no multiple copies", and in the block list 62 to "no cut-out". When the last pointer has been processed, cf. step 90, the pointer error counter, step 92, is reset. Mode 70 then changes to mode 72, arrow 94.

Moden 72 "Snabbtest" aktiveras således, med hänvisning till fig. 5, av att den första moden 70 genomlöpts för alla pekare.Mode 72 "Quick test" is thus activated, with reference to Fig. 5, by having the first mode 70 run through for all pointers.

Initieringsproceduren utförs därpå åter på pekarna och ett enkelt skriv- och lästest on-line, moment 96, utförs på buf- fertminnespositioner B(x), som identifieras av pekare x. Om så anses erforderligt kan detta test utföras efter köande med låg eller lägsta prioritet bland de operationer, som kan utföras på buffertminnet. Resultatet av skriv- och lästesten används så att aktuell pekare returneras till lediglistan 38 om provningen gav korrekt resultat, men spärras ut från användning i systemet och införs i spärrlistan 62 om provningen indikerar felfunktion inom området som identifieras av pekaren i fråga. Efter sista pekare övergår provningen till moden 74, jfr moment 98 och pil 100. 502 719 ll Till skillnad mot den tidigare ovan beskrivna off-line provningen, där testlogiken 14 i fig. 1 styr och kontrollerar allt data och alla adresser till minnet, har testlogiken 58 i fig. 2 vid on-line provning endast skriv- och läsrättigheter till de adresspositioner som frigjorts från systemanvändning genom initieringsproceduren, där systemet töms på ett pekarvär- de. Vidare är testlogiken i allt vad som beskrivs fortsätt- ningsvis, hänvisad till att arbeta endast då inga högre priori- terade systemoperationer mot minnet är aktuella. I det enkla skriv- och lästestet i moden 72 enligt fig. 5 skrivs först ett första bitmönster in i de adresspositioner som identifieras av den frigjorda pekaren. Så snart detta skett läses dessa positioner för att kontrollera att minnescellerna kan lagra detta första bitmönster. Därefter repeteras förloppet en andra gång, denna gång med ett andra bitmönster som är inversen av det första mönstret. Om läsdata ej motsvarar skrivdatat genereras signalen 60" i fig. 2 i form av en felsignal.The initialization procedure is then performed again on the pointers and a simple on-line write and read test, step 96, is performed on buffer memory positions B (x), which are identified by the pointer x. If deemed necessary, this test can be performed after queuing with low or lowest priority among the operations that can be performed on the buffer memory. The result of the write and read test is used so that the current pointer is returned to the free list 38 if the test gave the correct result, but is blocked from use in the system and entered in the block list 62 if the test indicates a malfunction in the area identified by the pointer in question. After the last pointer, the test switches to mode 74, cf. step 98 and arrow 100. 502 719 ll Unlike the off-line test previously described above, where the test logic 14 in Fig. 1 controls and checks all data and all addresses to the memory, the test logic 58 in Fig. 2 in on-line testing only writes and read permissions to the address positions freed from system use by the initialization procedure, where the system is emptied at a pointer value. Furthermore, in all that is described below, the test logic is referred to work only when no higher-priority system operations against memory are relevant. In the simple write and read test in the mode 72 of Fig. 5, a first bit pattern is first written into the address positions identified by the released pointer. As soon as this is done, these positions are read to check that the memory cells can store this first bit pattern. Then the process is repeated a second time, this time with a second bit pattern which is the inverse of the first pattern. If the read data does not correspond to the write data, the signal 60 "in Fig. 2 is generated in the form of an error signal.

Den tredje arbetsmoden 74 "Fulltest" aktiveras, med hän- visning till fig. 6, av att den andra moden 72 genomlöpts för alla pekare och inleds med att initieringsproceduren utförs ånyo på de av moden 72 icke utspärrade pekarna. Därefter köas en buffertminnesprovning, för detektering av typer av felfunk- tioner, som ej upptäcks av den enkla skriv- och lästesten i den andra arbetsmoden, upp med lägsta prioritet för utförande på de buffertminnespositioner B(x), vilka ej är utspärrade, jfr moment 102 och 104. Därvid exerceras, dvs skrivs och läses, dessa minnespositioner med provningsdata, medan samtliga övriga, icke utspärrade buffertminnespositioner exerceras, dvs skrivs och läses, med systemdata under provningen för varje utspärrad pekare. Resultatet av provningen används så att peka- ren returneras till lediglistan 38 om buffertminnesprovningen gav korrekt resultat, men spärras ut från användning i systemet och införs i spärrlistan 62 om buffertminnesprovningen in- dikerar felfunktion hos det område som identifieras av pekaren.The third operating mode 74 "Full test" is activated, with reference to Fig. 6, by the fact that the second mode 72 has been run through for all pointers and begins with the initialization procedure being performed again on the pointers not blocked by mode 72. Then a buffer memory test, for detecting types of malfunctions, which are not detected by the simple write and read test in the second working mode, is queued up with the lowest priority for execution at the buffer memory positions B (x), which are not blocked, cf. 102 and 104. In this case, these memory positions are exercised, ie written and read, with test data, while all other, non-blocked buffer memory positions are exercised, ie written and read, with system data during the test for each blocked pointer. The result of the test is used so that the pointer is returned to the free list 38 if the buffer memory test gave the correct result, but is blocked from use in the system and entered in the block list 62 if the buffer memory test indicates a malfunction of the area identified by the pointer.

Efter sista pekare övergår provningen till moden 76, jfr moment 106 och pil 108.After the last pointer, the test switches to mode 76, cf. step 106 and arrow 108.

Vid fullständig on-line provning enligt den tredje arbets- moden 74 skall också fel i adresseringslogiken upptäckas. Nor- malt kräver detta att data skilt från datat i minnespositionen 502 719 12 B(x) inskrivs i samtliga andra adresser. Enligt uppfinningen skrivs systemdata in och läses ut från de andra icke utspärrade positionerna. Detta fyller samma funktion som det styrda datat vid tidigare ovan beskrivna off-line test. Den risk som finns för att ett adresseringsfel undgår upptäckt genom att systemet råkar skriva in samma data som testlogiken använder för testet, på en adress som har ett adressavkodningsfel som överlappar minnespositionerna under test, minimeras genom att alla tester kontinuerligt upprepas, och en felupptäckt räcker för att spärra ut pekaren. Testlogiken inväntar därför att systemdata inskrivits i alla övriga använda positioner innan läskontrollen utförs.In the case of complete on-line testing according to the third working mode 74, errors in the addressing logic must also be detected. Normally, this requires that data separate from the data in the memory position 502 719 12 B (x) be entered in all other addresses. According to the invention, system data is written in and read out from the other non-blocked positions. This fulfills the same function as the controlled data in the off-line tests previously described above. The risk of an addressing error being detected by the system accidentally entering the same data that the test logic uses for the test, at an address that has an address decoding error that overlaps the memory positions during testing, is minimized by continuously repeating all tests, and one error detection is sufficient. to block the pointer. The test logic therefore waits for system data to be entered in all other positions used before the read check is performed.

Den fjärde arbetsmoden 76 "Fulltest med omtest" aktiveras således, med hänvisning till fig. 7, av att den tredje moden 74 genomlöpts för alla pekare. Även de tidigare utspärrade pekarna accepteras därpå för provning, genom att nämnda initieringspro- cedur utövas cykliskt för samtliga pekare, en i sänder. Därpå appliceras en buffertminnesprovning av samma slag som i den tredje moden på icke utspärrade pekare, moment 110 och 112.The fourth operating mode 76 "Full test with retest" is thus activated, with reference to Fig. 7, by having the third mode 74 run through for all pointers. The previously blocked pointers are then also accepted for testing, by the said initiation procedure being performed cyclically for all pointers, one at a time. Then a buffer memory test of the same kind as in the third mode is applied to non-blocked pointers, steps 110 and 112.

Tidigare utspärrade pekare underkastas samma typ av buffert- minnesprovning villkorat med att varje provningsdataoperation hålls kvar i kön så länge systemdata finns lagrat någonstans i det buffertminnessegment som innehåller den lagringsarea B(x), vilken identifieras av den tidigare utspärrade pekaren x, moment 114. Resultatet av provningen används på samma sätt som i den tredje moden för icke utspärrade pekare och underkända provningar av tidigare utspärrade pekare, medan tidigare utspärrade pekare returneras till lediglistan 38 först efter att ha godkänts i ett antal konsekutiva provningar som definieras av ett gränsvärdesantal ß.Previously blocked pointers are subjected to the same type of buffer memory test provided that each test data operation is retained in the queue as long as system data is stored somewhere in the buffer memory segment containing the storage area B (x) identified by the previously blocked pointer x, step 114. The result of the test is used in the same way as in the third mode for non-blocked pointers and failed tests of previously blocked pointers, while previously blocked pointers are returned to the vacancy list 38 only after passing a number of consecutive tests defined by a limit value ß.

Den fjärde arbetsmoden 76 bygger på insikten att i kontinuerlig drift måste också den risken beaktas att adres- seringsfel från minnespositionen under test kan korrumpera systemdata. Därför tillåts ingen skrivning från testlogiken i tidigare utspärrade positioner förrän hela det segment inom vilket adresseringsfel kan uppstå, har tömts på systemdata.The fourth mode of operation 76 is based on the insight that in continuous operation the risk must also be taken into account that addressing errors from the memory position during testing can corrupt system data. Therefore, no writing from the test logic is allowed in previously barred positions until the entire segment within which addressing errors can occur has been emptied of system data.

Därefter inväntas, som i den tredje arbetsmoden, skrivning med systemdata i alla andra positioner. Eftersom även läsopera- tioner kan korrumpera data i felaktiga minnen, inväntas ånyo 502 719 13 tömning av systemdata från minnessegmentet innan läskontroll utföres på de buffertpositioner, som identifieras av den tidigare utspärrade pekaren, nu under förnyad test.Then, as in the third mode of operation, writing with system data in all other positions is expected. Since even read operations can corrupt data in erroneous memories, emptying of system data from the memory segment is again expected before read control is performed on the buffer positions identified by the previously blocked pointer, now under retest.

Vid en utföringsform av fallet en enda arbetsmode rör det sig väsentligen om en sammanslagning av de två sista arbets- moderna enligt fig. 6 och 7.In an embodiment of the case a single working mode, it is essentially a merging of the last two working modes according to Figs. 6 and 7.

Närmare bestämt köas efter initieringsproceduren en prov- ning för buffertminnet 32 upp med lägsta prioritet för utföran- de på buffertminnespositioner, som identifieras av icke ut- spärrade pekare, jfr moment 102 och 104 i fig. 6. Dessa minnes- positioner exerceras med provningsdata. Samtliga övriga, icke utspärrade buffertminnespositioner exerceras med systemdata under provningsproceduren. Därefter används resultatet av provningen så att pekaren returneras till lediglistan 38 om buffertminnesprovningen gav korrekt resultat, men spärras ut från användning i systemet om buffertminnesprovningen indikerar felfunktion hos det område som definieras av pekaren.More specifically, after the initialization procedure, a test for the buffer memory 32 is queued up with the lowest priority for execution on buffer memory positions, which are identified by unlocked pointers, cf. steps 102 and 104 in Fig. 6. These memory positions are exercised with test data. All other, non-excluded buffer memory locations are exercised with system data during the test procedure. Thereafter, the result of the test is used so that the pointer is returned to the free list 38 if the buffer memory test gave the correct result, but is blocked from use in the system if the buffer memory test indicates malfunction of the area defined by the pointer.

Spärrade pekare tillförs spärrlistan 62 och underkastas samma typ av buffertminnesprovning villkorat med att varje provningsdataoperation hålls kvar i kön så länge systemdata finns lagrat någonstans i det buffertminnessegment som in- nehåller de positioner som identifieras av spärrade pekare, jfr moment 114 i fig. 7. Därefter används resultatet av provningen så att pekaren returneras till lediglistan 38 om buffertminnes- provningen gav korrekt resultat. Utspärrade pekare däremot returneras till lediglistan 38 först efter att ha godkänts i ett antal konsekutiva provningar, större än gränsvärdet ß.Blocked pointers are added to block list 62 and subjected to the same type of buffer memory test provided that each test data operation is retained in the queue as long as system data is stored somewhere in the buffer memory segment containing the positions identified by blocked pointers, cf. step 114 in Fig. 7. the result of the test is used so that the pointer is returned to the free list 38 if the buffer memory test gave the correct result. Blocked pointers, on the other hand, are returned to the vacancy list 38 only after having been approved in a number of consecutive tests, greater than the limit value ß.

Claims (13)

502 719 14 Patentkrav.502 719 14 Patent claims. 1. Kösystem för buffertering av data i en paketväljare med gemensamt buffertminne (32) för en eller flera utportar från väljaren, vilket system använder ett antal pekare som identifi- erar lagringspositioner i buffertminnet, och där pekarna flyttas mellan olika logiska listor (38,44,56,62) för att markera vilken operation som skall utföras med datat i den utpekade buffertpositionen, kännetecknat av en underhålls- funktion (52) som kontinuerligt säkerställer att systemet innehåller en och endast en pekare till varje giltig paketplats i buffertminnet (32).A queuing system for buffering data in a packet selector with a common buffer memory (32) for one or more outputs from the selector, which system uses a number of pointers which identify storage positions in the buffer memory, and where the pointers are moved between different logical lists (38,44 , 56,62) to mark which operation is to be performed with the data in the designated buffer position, characterized by a maintenance function (52) which continuously ensures that the system contains one and only one pointer to each valid packet location in the buffer memory (32). 2. Kösystem för buffertering av data i en paketväljare med gemensamt buffertminne (34) för en eller flera utportar från väljaren, vilket använder ett antal pekare som identifierar lagringspositioner i buffertminnet, och där pekarna flyttas mellan olika logiska listor (38,44,56,62) för att markera vilken operation som skall utföras med datat i den utpekade buffertpositionen, kännetecknat av att kopior av samma pekare hanteras på ett kontrollerat sätt genom användning av en multipekarlista (56) där antalet i systemet ingående kopior av respektive pekare registreras, och där en underhållsfunktion (52) kontrollerar att antalet kopior av en pekare stämmer överens med det värde som finns registrerat i multipekarlistan (56) för respektive pekare.Queue system for buffering data in a packet selector with common buffer memory (34) for one or more outputs from the selector, which uses a number of pointers which identify storage positions in the buffer memory, and where the pointers are moved between different logical lists (38,44,56, 62) to mark which operation is to be performed with the data in the designated buffer position, characterized in that copies of the same pointer are handled in a controlled manner by using a multiple pointer list (56) where the number of copies of each pointer included in the system is recorded, and where a maintenance function (52) checks that the number of copies of a pointer matches the value recorded in the multipoint list (56) for each pointer. 3. Kösystem enligt krav 2, kännetecknat av att förutom multipekarlistan (56) används följande logiska listor för respektive pekarkategorier: lediglista (38) för lediga pekare, utkö-listor (44) för köade pekare i kö till utportar, samt spärrlistor (62) för utspärrade pekare.Queue system according to Claim 2, characterized in that in addition to the multiple pointer list (56), the following logical lists are used for the respective pointer categories: free list (38) for free pointers, queue lists (44) for queued pointers in queue for outputs, and blocking lists (62) for blocked pointers. 4. Kösystem enligt krav 3, kännetecknat av att underhålls- funktionen (52) cykliskt kontrollerar alla pekarna och till- hörande buffertplatser, en i sänder, föregånget av en initie- ringsprocedur varunder pekaren tas ur drift genom att filtrera ut pekaren från strömmen av pekare, som från utkö-listorna (44) returneras till lediglistan (38), tills kösystemet tömts på varje kopia av pekaren ifråga, varefter 502 719 15 antalet returnerade kopior av pekaren ifråga jämförs med värdet i multipekarlistan (56).Queue system according to claim 3, characterized in that the maintenance function (52) cyclically checks all the pointers and associated buffer locations, one at a time, preceded by an initialization procedure during which the pointer is taken out of operation by filtering out the pointer from the stream of pointers. , which is returned from the queue lists (44) to the vacancy list (38), until the queue system is emptied of each copy of the pointer in question, after which the number of returned copies of the pointer in question is compared with the value in the multipoint list (56). 5. Kösystem enligt krav 4, kännetecknat av att underhålls- funktionen har en första arbetsmod som efter initieringsproce- duren, och aktiverad av att som resultat av nämnda initieringsprocedur fler än ett bestämt gränsvärdestal pekare påträffats, vilkas respektive kopieantal ej stämmer med värdet i multipekarlistan för pekaren ifråga, eller en yttre signal, återför pekarna till lediglistan (38), återställer värdet i multipekarlistan (56) till inga multipelkopior, samt i spärr- listan (62) anger ingen utspärrning av pekare.Queue system according to claim 4, characterized in that the maintenance function has a first mode of operation which after the initialization procedure, and activated by the result of said initialization procedure more than a certain limit number of pointers are found, the respective number of copies does not match the value the pointer in question, or an external signal, returns the pointers to the free list (38), resets the value in the multiplier list (56) to no multiple copies, and in the block list (62) indicates no blocking of pointers. 6. Kösystem enligt krav 1 och 4, kännetecknat av att underhållsfunktionen har en första arbetsmod som efter ini- tieringsproceduren, och aktiverad av att som resultat av nämnda initieringsprocedur fler än ett bestämt gränsvärdesantal förlorade eller multipla pekare påträffats, eller en yttre signal, återför en kopia av varje pekare till lediglistan (38), och i spärrlistan (62) anger ingen utspärrning av pekare.Queuing system according to claims 1 and 4, characterized in that the maintenance function has a first mode of operation which after the initialization procedure, and activated by the result of said initialization procedure more than a certain number of lost or multiple pointers is found, or an external signal, returns a copy of each pointer to the free list (38), and in the bar list (62) no pointer bar is indicated. 7. Kösystem enligt krav 5 eller 6, kännetecknat av att underhållsfunktionen (52) har endast en ytterligare arbetsmod.Queuing system according to claim 5 or 6, characterized in that the maintenance function (52) has only one additional mode of operation. 8. Kösystem enligt krav 7, kännetecknat av att underhålls- funktionen har en andra arbetsmod aktiverad av att den första moden genomlöpts för alla pekare, varpå initieringsproceduren åter utförs på varje pekare, en i sänder, och en buffertminnes- provning köas upp med låg prioritet på icke utspärrade minnes- positioner som identifieras av pekaren ifråga, medan samtliga övriga icke utspärrade minnespositioner exerceras med system- data under provningen, och där resultatet av minnesprovningen används så att pekaren returneras till lediglistan (38) om buffertminnesprovningen gav korrekt resultat, men spärras ut från användning i systemet om buffertminnesprovningen indikerar felfunktion hos det område som definieras av pekaren, de spärrade pekarna underkastas en andra buffertminnesprov- ning av samma typ som den första villkorat med att varje provningsdataoperation hålls kvar i kön så länge systemdata finns lagrat någonstans i det buffertminnessegment som in- nehåller de positioner som identifieras av spärrade pekare, 5Û2 719 16 resultatet av den andra provningen används så att pekaren returneras till lediglistan (38) om provningen gav korrekt resultat, medan utspärrade pekare returneras till lediglistan först efter att ha godkänts i ett antal konsekutiva provningar, som överstiger ett andra gränsvärdesantal ß.Queue system according to claim 7, characterized in that the maintenance function has a second mode of operation activated by passing the first mode for all pointers, whereupon the initialization procedure is performed again on each pointer, one at a time, and a buffer memory test is queued with low priority on unlocked memory positions identified by the pointer in question, while all other unlocked memory positions are exercised with system data during the test, and where the result of the memory test is used so that the pointer is returned to the free list (38) if the buffer memory test gave the correct result, but blocked from use in the system if the buffer memory test indicates malfunction of the area defined by the pointer, the blocked pointers are subjected to a second buffer memory test of the same type as the first provided that each test data operation is retained in the queue as long as system data is stored somewhere in the buffer memory segment. contains the positions as idea The result of the second test is used so that the pointer is returned to the free list (38) if the test gave the correct result, while blocked pointers are returned to the free list only after passing a number of consecutive tests exceeding a second. limit value number ß. 9. Kösystem enligt krav 3 eller 4, kännetecknat av att underhållsfunktionen (52) har ett antal olika arbetsmoder.Queuing system according to claim 3 or 4, characterized in that the maintenance function (52) has a number of different operating modes. 10. Kösystem enligt krav 6, kännetecknat av att underhålls- funktionen har en andra arbetsmod aktiverad av att den första moden genomlöpts för alla pekare, varpå initieringsproceduren åter utförs på pekarna, ett enkelt skriv- och lästest köas upp för utförande på buffertminnespositioner som identifieras av pekare, vilkas påträffade kopieantal ej överensstämmer med värdet i multi- pekarlistan, resultatet av skriv- och lästesten används så att aktuell pekare returneras till lediglistan om provningen gav korrekt resultat, men spärras ut från användning i systemet om prov- ningen indikerar felfunktion inom området som identiferas av pekaren ifråga.Queue system according to claim 6, characterized in that the maintenance function has a second mode of operation activated by the first mode being passed for all pointers, whereupon the initialization procedure is performed again on the pointers, a simple write and read test is queued for execution on buffer memory positions identified by pointers, the number of copies found does not match the value in the multi-pointer list, the result of the write and read test is used so that the current pointer is returned to the free list if the test gave correct results, but is blocked from use in the system if the test indicates malfunction in the area. identified by the pointer in question. 11. Kösystem enligt krav 9, kännetecknat av att underhålls- funktionen har en tredje arbetsmod aktiverad av att den andra moden genomlöpts för alla pekare, varpå initieringsproceduren utförs ånyo på de icke utspärrade pekarna, en buffertminnesprovning för detektering av typer av felfunktioner, som ej upptäcks av det enkla skriv- och lästes- tet i den andra arbetsmoden, köas upp för utförande på de buffertminnespositioner som identifieras av den initierade pekaren, varvid dessa minnespositioner exerceras med provnings- data, medan samtliga övriga, icke utspärrade buffertminnesposi- tioner exerceras med systemdata under provningen för varje utspärrad pekare, resultatet av provningen används så att pekaren returneras till lediglistan om buffertminnesprovningen gav korrekt resul- tat, men spärras ut från användning i systemet om buffert- minnesprovningen indikerar felfunktion hos det område som identifieras av pekaren.Queue system according to claim 9, characterized in that the maintenance function has a third mode of operation activated by the second mode being passed for all pointers, whereupon the initialization procedure is performed again on the non-blocked pointers, a buffer memory test for detecting types of malfunctions not detected of the simple write and read test in the second mode of operation is queued for execution at the buffer memory positions identified by the initiated pointer, these memory positions being exercised with test data, while all other, non-excluded buffer memory positions are exercised with system data during the test for each blocked pointer, the result of the test is used so that the pointer is returned to the free list if the buffer memory test gave the correct result, but is blocked from use in the system if the buffer memory test indicates malfunction of the area identified by the pointer. 12. Kösystem enligt krav 11, kännetecknat av att under- 502 719 17 hållsfunktionen har en fjärde arbetsmod aktiverad av att den tredje moden genomlöpts för alla pekare, varpå även de tidigare utspärrade pekarna accepteras för prov- ning, genom att nämnda initieringsprocedur utövas cykliskt för samtliga pekare, en i sänder, en buffertminnesprovning av samma slag som i den tredje moden appliceras på icke utspärrade pekare, medan tidigare utspärrade pekare underkastas samma typ av buffertminnesprov- ning villkorat med att varje provningsdataoperation hålls kvar i kön så länge systemdata finns lagrat någonstans i det buf- fertminnessegment som innehåller de positioner som identifieras av den tidigare utspärrade pekaren ifråga, resultatet av provningen används på samma sätt som i den tredje moden för icke utspärrade pekare och underkända prov- ningar av tidigare utspärrade pekare, medan tidigare utspärrade pekare returneras till lediglistan först efter att ha godkänts i ett antal konsekutiva provningar som definieras av ett gränsvärdesantal.Queue system according to claim 11, characterized in that the maintenance function has a fourth operating mode activated by passing the third mode for all pointers, whereupon also the previously blocked pointers are accepted for testing, by performing said initiation procedure cyclically for all pointers, one at a time, a buffer memory test of the same type as in the third mode is applied to non-blocked pointers, while previously blocked pointers are subjected to the same type of buffer memory test provided that each test data operation is retained in the queue as long as system data is stored somewhere in the buffer memory segment containing the positions identified by the previously blocked pointer in question, the test result is used in the same way as in the third mode for non-blocked pointers and failed tests of previously blocked pointers, while previously blocked pointers are returned to the free list only after being approved in a number of consecutive a tests defined by a limit number. 13. Kösystem enligt något av krav 3-4 eller 6-12, känne- tecknat av att listorna för multipelt använda, och utspärrade pekare kombineras till en lista.Queue system according to one of Claims 3 to 4 or 6 to 12, characterized in that the lists for multiple use and blocked pointers are combined into one list.
SE9501980A 1995-05-30 1995-05-30 Fault tolerant queue system for buffering data in packet switch SE502719C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SE9501980A SE502719C2 (en) 1995-05-30 1995-05-30 Fault tolerant queue system for buffering data in packet switch

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9501980A SE502719C2 (en) 1995-05-30 1995-05-30 Fault tolerant queue system for buffering data in packet switch

Publications (3)

Publication Number Publication Date
SE9501980L SE9501980L (en) 1995-05-30
SE9501980D0 SE9501980D0 (en) 1995-05-30
SE502719C2 true SE502719C2 (en) 1995-12-11

Family

ID=20398460

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9501980A SE502719C2 (en) 1995-05-30 1995-05-30 Fault tolerant queue system for buffering data in packet switch

Country Status (1)

Country Link
SE (1) SE502719C2 (en)

Also Published As

Publication number Publication date
SE9501980L (en) 1995-05-30
SE9501980D0 (en) 1995-05-30

Similar Documents

Publication Publication Date Title
SE502576C2 (en) Fault tolerant queuing system
CN102084430B (en) Method and apparatus for repairing high capacity/high bandwidth memory devices
KR100331139B1 (en) Method and apparatus for correcting a multilevel cell memory by using error locating codes
US9389954B2 (en) Memory redundancy to replace addresses with multiple errors
KR100993493B1 (en) Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
CN100545817C (en) Be used to improve the data management technique of data reliability
US20060069851A1 (en) Integrated circuit memory devices that support detection of write errors occuring during power failures and methods of operating same
JP2000173289A5 (en)
JP2005174462A (en) Semiconductor memory device
JP2000311497A (en) Semiconductor memory
EP0689695A1 (en) Fault tolerant memory system
JP3222083B2 (en) Shared memory controller
EP0637034B1 (en) Method for detecting faulty elements of a redundancy semiconductor memory
SE502719C2 (en) Fault tolerant queue system for buffering data in packet switch
JP3563362B2 (en) Method for testing the function of a memory cell of an integrated memory and integrated memory
US7437627B2 (en) Method and test device for determining a repair solution for a memory module
JPH07321795A (en) Buffer address management method
JPS6233626B2 (en)
US8108740B2 (en) Method for operating a memory device
JPH06282385A (en) Storage controller and information processing system provided with this controller
JP4286731B2 (en) Buffer device and buffer fault diagnosis method
CN103514058B (en) The treatment process of a kind of data failure, equipment and system
SU1117715A1 (en) Storage with checking and correcting errors
JPS59231798A (en) Data processor
JPH0312757A (en) Memory card

Legal Events

Date Code Title Description
NUG Patent has lapsed