SE521609C2 - Buffertminne, buffertkontrollenhet och en metod för att hantera köer i en ATM-växel - Google Patents

Buffertminne, buffertkontrollenhet och en metod för att hantera köer i en ATM-växel

Info

Publication number
SE521609C2
SE521609C2 SE9803694A SE9803694A SE521609C2 SE 521609 C2 SE521609 C2 SE 521609C2 SE 9803694 A SE9803694 A SE 9803694A SE 9803694 A SE9803694 A SE 9803694A SE 521609 C2 SE521609 C2 SE 521609C2
Authority
SE
Sweden
Prior art keywords
queue
cell
buffer memory
pointer
data
Prior art date
Application number
SE9803694A
Other languages
English (en)
Other versions
SE9803694L (sv
SE9803694D0 (sv
Inventor
Per Andersson
Jonas Alowersson
Patrik Sundstroem
Bertil Roslund
Original Assignee
Switchcore 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 Switchcore Ab filed Critical Switchcore Ab
Priority to SE9803694A priority Critical patent/SE521609C2/sv
Publication of SE9803694D0 publication Critical patent/SE9803694D0/sv
Priority to US09/428,285 priority patent/US6754742B1/en
Publication of SE9803694L publication Critical patent/SE9803694L/sv
Publication of SE521609C2 publication Critical patent/SE521609C2/sv

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

25 30 35 tvi/i men vw.- i u 'x 2 Andra kännetecken hos uppfinningen är angivna i de underordnade kraven.
Kortfattad beskrivning av ritningarna Uppfinningen beskrivs nu mera i detalj med hänvisningar till de föredragna utföringsformerna, angivna endast som exempel, och illustrerade av de åtföljande ritriingama i vilka: figurl är ett buffertminne enligt uppfinningen, och figur 2 visar tre steg av bufferthanteringsalgoritmen.
Detaljerad beskrivning av föredragna utföringsforrner Föreliggande uppfinning avser ett buffertminne som kan användas i en ATM- växel. Datapaket, eller celler, transporteras genom en växel i ett antal kanaler, här åtta kanaler. I växelns käma finns det ett buffertrninne, genom vilket alla cellerna transporteras. Växelns arbete styrs av en buffertkontrollenhet. För att minimera växelns komplexitet är det önskvärt att ha endast en läs- och en skrivport på buffertminnet. Detta medför att en cykel har en läs- och en skrivoperation vilket medför en hög arbetsfrekvens (ungefär 188 MHz), och en fördröjning som kräver att minnet är pipelinat. Ett pipelinat minne kan hantera ett antal celler samtidigt, emedan det tar ett antal cykler innan en cell har passerat minnet.
ATM-växeln kräver att en läs- och en skrivoperation utförs varje cykel. Om ingen data finns att skicka, skickas idle-celler. I föreliggande uppfinning fylls frilistor med idle-celler och används för att tillhandahålla dessa idle-celler.
Eftersom minnet är pipelinat, kräver bufferten två frilistor så att en är tillgänglig när den andra uppdateras.
Först är det behjälpligt att förklara mekanismema i kösystemet. Buffertminnet omfattar rader av bitar arrangerat i ett kösystem. Generellt består ett kösystem av minst två köer. En kö består i sin tur av en länkad lista av element, som var för sig innehåller ett datafält och en pekare till nästa element. I föreliggande uppfinning motsvarar ett element, en rad. Varje tillgängligt element tillhör en kö. Det sista elementet i varje kö är reserverat för att emottaga en cell. Med andra ord, pekaren på det sista elementet pekar på en rad tillgänglig för skrivning.
Minnet innehåller tio köer, en kö för varje kanal (åtta i det här fallet) och två frilistor, som förklaras nedan. ATM-växeln innehåller en kontrollenhet som håller reda på huvud och svans för respektive kö, alltså adressen till första respektive sista elementet i varje kö.
En cellaecess innefattar endast en läsning, eller en s "'i'v'ning, av hela cellen. En operation innefattar exakt en ”lägg till” och en ”ta bort”. En ”ta bort” innefattar läsning av exakt en cell, och uppdatering av köhuvudet. En ”lägg till” innefattar 10 15 20 25 30 35 skrivning av exakt en cell, och uppdatering av kösvansen. Mekanismen är skräddarsydd för ett minne som tillåter endast en läsning och en skrivning per cykel.
I en föredragen utföringsform är buffertminnet organiserat som 256*(424+8) SRAM-celler (Static Random Access Memory), som visas i figur 1. Detta utrymme används för att hålla tio köer, en för varje inkommande kanal och två med fiia celler, som är fyllda med idle-celler. De åtta bitarna som ligger efter ATM-cellen används som pekare till nästa cell i kön. Minnet kan utföra en läsning och en skrivning under en cykel hos buffertkontrollenheten.
Buffertminnets totala storlek kan varieras, och beror på tillgänglig plats på chippet. Principiellt är inte kölängden begränsad, och minnet utnyttjas mer effektivt på grund av trafikens statistiska natur genom att inte reservera plats för varje kanal.
Kölängden kan emellertid begränsas för att förhindra att en kanal blockerar hela minnet, men teoretiskt delar alla kanalerna allt minne.
Buffertkontrollenhetens algoritm är väldigt enkel, och den grundläggande idén är att varje kö har reserverat en rad i minnet för nästa cell som skall skrivas.
Algoritmen fungerar enligt följande under en cykel, d v s en läs- och en skrivoperation.
Läsoperation Alla åtta kanalema läses av i tur och ordning efter data att sända. Titta på kön för aktuell kanal. Finns det någon data, plocka den första cellen och sänd den, om inte så plocka en idle-cell från aktuell fiilista och sänd den.
Plocka bort raden som nyss sänts från kön, d v s uppdatera huvudet för aktuell kö.
Spara adressen till raden som just lästs och nu är ledig.
Skrivoperation Skriv en inkommande cell i den reserverade raden hos avsedd kanalkö om det är data, eller hos en frilista om det är en idle-cell. Kösvansen uppdateras genom att skriva den sparade adressen till den lediga raden i pekarfältet på den tidigare reserverade raden, vilket på detta sätt reserverar den fria raden till att skrivas som nästa element i kön.
Ett exempel på algoritmen ges med referens till figur 2. Utköerna representeras av huvud- och svanspekare. Pekarna för kanal 0 pekar på första och sista elementet i kön, och mellanliggande element länkas ihop av pekare i respektive element som illustreras av vinklade pilar. Det visas att kanal 0 innehåller tre element, av vilka det sista är den köns reserverade element eller rad.
På samma sätt representeras även frilistoma av huvud- respektive svanspekare, medan boxen ”ledig” innehåller pekaren till det element som nyss skickats. 10 15 Figur 2 visar de steg som utförs när en idle-cell kommer in och en datacell skall skickas på kanal O. Således är kön till kanal 0 inte tom, vid steg 1 i figur 2, och raden som indikeras av köhuvudet läses.
I steg 2 i figur 2, lediggörs raden som just blivit läst, och huvudpekaren till utkön uppdateras till att referera till nästa element. Samtidigt så lagras adressen till den nyss lediggjorda raden som visas av den streckade pilen.
I steg 3 i figur 2, skrivs den inkommande cellen (idle-cell) i den reserverade raden som refereras till av den aktuella frilistans svanspekare och pekarfältet i densamma rad uppdateras till att peka på den ny reserverade raden, den lediggj orda raden läggs i slutet och blir den nya reserverade raden.
En fackman på området inser att uppfinningen kan implementeras i andra utföringsforrner utan att avvika från andan och den väsentliga karaktären av densamma. De presenterade utföringsformema är därför endast att anses som illustrativa och inte begränsade. Uppfinningens omfattning anges av bifogade krav snarare än den föregående beskrivningen och alla ändringar som faller inom betydelsen och omfattningen av ekvivalenter därtill avses att omfattas av kraven.

Claims (12)

10 l5 20 25 30 35 521 ._ ö (289 PATENTKRAV
1. l. Buffertminne organiserat i rader för att teinporärt lagra data och anordnat att hålla ett antal köer, en för varje kanal och åtminstone en kö benämnd frilista som innehåller idle-celler, kännetecknat av att det är organiserat som en matris som innehåller ett antal rader, varvid varje rad innehåller en cell med data och ett antal bitar pekardata, vilket pekardata pekar på nästa cell i kön och av att den sista raden av varje kö är tillgänglig för nästa cell som ska skrivas.
2. Buffertminne enligt krav l, kännetecknat av att två trilistor fyllda med idle-celler används.
3. Buffertminne enligt krav 1 eller 2, kännetecknat av att det är organiserat som en matris av RAM-celler. företrädesvis SRAM-celler.
4. Bufferminne enligt något av föregående krav, kännetecknat av att det används för att hålla tio köer.
5. Buffertminne enligt något av föregående krav, kännetecknat av att det är organiserat som en matris som innehåller 256 rader, varvid varje rad innehåller 424 bitar data respektive 8 bitar pekardata.
6. Metod för köhantering i ett buffertmiiiiie för att hålla ett antal köer, en för varje kanal och åtminstone en kö benämnd frilista som innehåller idle-celler, vilket buffertminne är organiserat som en matris som innehåller ett antal rader, varvid varje rad innehåller en cell med data och ett antal bitar pekardata, vilket pekardata pekar på nästa cell i kön och den sista raden av varje kö är tillgänglig för nästa cell som ska skrivas, kännetecknad av att en accesscykel innehåller två pekaroperationer: läsning: uppdatera en huvudpekare till en kö; skrivning: uppdatera en svanspekare till en kö.
7. Metod enligt krav 6, kännetecknad av att huvudpekaren till respektive kö som undergår en läsning uppdateras från att peka på den tidigare första raden till att peka på nästa rad i kön, medan att svanspekaren till respektive kö som undergår en skrivning uppdateras från att peka på den tidigare lediga raden till att peka på nästa rad i kön som nu är tillgänglig för att skrivas.
8. Metod enligt krav 7, kännetecknad av stegen: att titta på kön för aktuell kanal. att, om kön innehåller något data, ta den första cellen och sända den, annars ta en idle-cell från aktuell frilista och sända den, att avlägsna raden som innehöll cellen som just sändes från kön, att lagra adressen till den just sända raden, att skriva en inkommande cell i den reserverade raden hos lämplig kanalkö, i fallet datacell, eller frilista, i fallet idle-cell, och 10 (_ F71 i v ...å tfn (fl .J w att skriva den lagrade adressen till den fria raden i pekartälten hos den tidigare reserverade raden, vilket således reserverar den fria raden som ska skrivas som nästa element i kön.
9. Metod enligt krav 6, 7 eller 8, kännetecknad av att den är implementerad som en algoritm i en buffertkontrollenhet.
10. Buffertkontrollenhet För att kontrollera minnesaecesser i ett buffertminne avsett att temporärt lagra data och anordnat att liâlla ett antal köer, en för varje kanal och åtminstone en kö benämnd frilista som innehåller idle-celler, och organiserat som en matris som innehåller ett antal rader, varvid varje rad innehåller en cell med data och ett antal bitar pekardata, vilket pekardata pekar på nästa cell i kön och den sista raden av varje kö är tillgänglig för nästa cell som ska skrivas, kännetecknad av att den utför en läsning och en skrivning i buflertminnet under en cykel hos buffertkontrollenheten.
11. 1 1. Buffertkontrollenhet enligt krav 10. kšinnetecknad av att läsningen av buffertminnet sker med pipelineteknik för att kunna använda en hög arbetsfrekvens, t ex 188 MHz
12. Buffertkontrollenheten enligt krav 1 l, lcännetecknad av att två frilistor användes for att kunna tillhandahålla pipelineteknik. varvid en tirilista arbetar medan den andra uppdateras.
SE9803694A 1998-10-28 1998-10-28 Buffertminne, buffertkontrollenhet och en metod för att hantera köer i en ATM-växel SE521609C2 (sv)

Priority Applications (2)

Application Number Priority Date Filing Date Title
SE9803694A SE521609C2 (sv) 1998-10-28 1998-10-28 Buffertminne, buffertkontrollenhet och en metod för att hantera köer i en ATM-växel
US09/428,285 US6754742B1 (en) 1998-10-28 1999-10-27 Queue management system having one read and one write per cycle by using free queues

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9803694A SE521609C2 (sv) 1998-10-28 1998-10-28 Buffertminne, buffertkontrollenhet och en metod för att hantera köer i en ATM-växel

Publications (3)

Publication Number Publication Date
SE9803694D0 SE9803694D0 (sv) 1998-10-28
SE9803694L SE9803694L (sv) 2000-04-29
SE521609C2 true SE521609C2 (sv) 2003-11-18

Family

ID=20413114

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9803694A SE521609C2 (sv) 1998-10-28 1998-10-28 Buffertminne, buffertkontrollenhet och en metod för att hantera köer i en ATM-växel

Country Status (2)

Country Link
US (1) US6754742B1 (sv)
SE (1) SE521609C2 (sv)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10015683B4 (de) * 2000-03-29 2006-07-13 Infineon Technologies Ag Datenübertragungsspeicher
US7889750B1 (en) * 2004-04-28 2011-02-15 Extreme Networks, Inc. Method of extending default fixed number of processing cycles in pipelined packet processor architecture
US7555579B2 (en) * 2004-05-21 2009-06-30 Nortel Networks Limited Implementing FIFOs in shared memory using linked lists and interleaved linked lists
JP2006115315A (ja) * 2004-10-15 2006-04-27 Fujitsu Ltd データ転送方法及びデータ転送装置
WO2012169032A1 (ja) * 2011-06-09 2012-12-13 富士通株式会社 バッファ装置,バッファ制御装置,及びバッファ制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02117243A (ja) 1988-10-27 1990-05-01 Toshiba Corp パケット通信装置
EP0471051B1 (de) 1990-03-02 1994-10-19 Ascom Tech Ag Steuereinheit für den zentralspeicher eines atm-knotens
JPH05336153A (ja) * 1992-05-29 1993-12-17 Matsushita Electric Ind Co Ltd セル転送キュー構成方式およびセル転送キュー回路
US5390184A (en) * 1993-09-30 1995-02-14 Northern Telecom Limited Flexible scheduling mechanism for ATM switches
JP2922119B2 (ja) * 1994-09-01 1999-07-19 沖電気工業株式会社 帯域規制装置及びパケット通信装置
US5828903A (en) 1994-09-30 1998-10-27 Intel Corporation System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
US6088736A (en) * 1995-07-19 2000-07-11 Fujitsu Network Communications, Inc. Joint flow control mechanism in a telecommunications network
JP3156752B2 (ja) * 1996-02-09 2001-04-16 日本電気株式会社 Atmスイッチ装置及びその制御方法
US6128303A (en) * 1996-05-09 2000-10-03 Maker Communications, Inc. Asynchronous transfer mode cell processing system with scoreboard scheduling
GB9618131D0 (en) 1996-08-30 1996-10-09 Sgs Thomson Microelectronics Improvements in or relating to an ATM switch
US6137807A (en) * 1997-12-05 2000-10-24 Whittaker Corporation Dual bank queue memory and queue control system

Also Published As

Publication number Publication date
US6754742B1 (en) 2004-06-22
SE9803694L (sv) 2000-04-29
SE9803694D0 (sv) 1998-10-28

Similar Documents

Publication Publication Date Title
EP0118446B1 (en) First-in, first-out (fifo) memory configuration for queue storage
CA2287041C (en) Memory for information search through prefix analysis, in particular for building routing tables for nodes of high speed communication networks, such as the internet network
US5825767A (en) ATM switch with input and output ports
US6320859B1 (en) Early availability of forwarding control information
EP1036360A1 (en) Shared memory control using multiple linked lists with pointers, status flags, memory block counters and parity
JPH08214000A (ja) Atmネットワークにおけるマルチキャストする方法と装置
CN1351784A (zh) 管理多个异步传输模式的信元队列的方法和装置
US7126959B2 (en) High-speed packet memory
US7352766B2 (en) High-speed memory having a modular structure
EP0746823B1 (en) Bit mapping apparatus and method
US20100290466A1 (en) Routing of data streams
US6310875B1 (en) Method and apparatus for port memory multicast common memory switches
US8661223B1 (en) Buffer management architecture
JP3735396B2 (ja) Atmセルをマルチキャストする方法と装置
SE521609C2 (sv) Buffertminne, buffertkontrollenhet och en metod för att hantera köer i en ATM-växel
US6633961B2 (en) Buffer apparatus with data insertion control function, insertion data controlling method, and data insertion apparatus with data insertion control function
US7733888B2 (en) Pointer allocation by prime numbers
EP2341440B1 (en) Memory block reclaiming judging apparatus and memory block managing system
US7142547B2 (en) Scheduling device and cell communication device
KR20000074195A (ko) 다중 경로 비동기 전송 모드 스위치를 위한 고속 셀 순서 처리장치 및 방법
US7417986B1 (en) Shared buffer switch interface
US20240126595A1 (en) Method and apparatus for managing a queue and queue management device
JPH06284453A (ja) Atmセルスイッチ
US6465989B1 (en) Apparatus for integrating switch ports in an ATM switching system
JP2923892B1 (ja) Atmセル挿入方式および方法

Legal Events

Date Code Title Description
NUG Patent has lapsed