CZ20032079A3 - Způsob a zařízení pro přenos přerušení z periferního zařízení na hostitelský počítačový systém - Google Patents

Způsob a zařízení pro přenos přerušení z periferního zařízení na hostitelský počítačový systém Download PDF

Info

Publication number
CZ20032079A3
CZ20032079A3 CZ20032079A CZ20032079A CZ20032079A3 CZ 20032079 A3 CZ20032079 A3 CZ 20032079A3 CZ 20032079 A CZ20032079 A CZ 20032079A CZ 20032079 A CZ20032079 A CZ 20032079A CZ 20032079 A3 CZ20032079 A3 CZ 20032079A3
Authority
CZ
Czechia
Prior art keywords
lcp
host computer
identifik
data
computer system
Prior art date
Application number
CZ20032079A
Other languages
English (en)
Inventor
Giora Biran
Tal Sostheim
Georgy Machulský
Claudiu Schiller
Original Assignee
International Business Machines Corporation
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 International Business Machines Corporation filed Critical International Business Machines Corporation
Publication of CZ20032079A3 publication Critical patent/CZ20032079A3/cs

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

120 00 Praha 2, Hálkova 2
ZPŮSOB A ZAŘÍZENÍ PRO PŘENOS PŘERUŠENÍ Z PERIFERNÍHO ZAŘÍZENÍ NA HOSTITELSKÝ POČÍTAČOVÝ SYSTÉM
Oblast techniky
Vynález se týká způsobu a zařízení pro přenos přerušení z periferního zařízení na hostitelský počítačový systém.
Dosavadní stav techniky
Konvenčně řešená síť pro zpracování dat obsahuje více hostitelských počítačových systémů a více připojených zařízení navzájem propojených intervenující síťovou architekturou, jako je např. architektura typu Ethernet. Síťová architektura obvykle obsahuje jeden nebo více datových přepínačů. Každý hostitelský počítačový systém a každé připojené zařízení tvoří uzel sítě pro zpracování dat. Každý hostitelský počítačový systém obvykle obsahuje více centrálních procesorových jednotek (CPU) a paměťového zařízení, navzájem propojených sběrnicí jako je např. sběrnice PCI. Ke sběrnici je připojen i síťový adaptér určený k zajištění datové komunikace mezi hostitelským počítačovým systémem a ostatními uzly sítě pro zpracování dat, a to prostřednictvím síťové architektury. Z hlediska zájmu na rychlé datové komunikaci mezi hostitelským systémem a sítí je žádoucí urychlit co přenos přerušení mezi síťovým adaptérem a počítačovým nejúčinněj i hostitelským počítačem.
86334 (2786334_CZ.doc) 15.9.2003 • ···· ·« ·· ·· ···· • · ·······
Podstata vynálezu
Je tudíž předmětem tohoto vynálezu zařízení pro přenos přerušení z periferního zařízení na hostitelský počítačový systém, přičemž toto zařízení obsahuje: vyrovnávací paměť určenou k ukládání indikátorů přerušení generovaných periferním zařízením a řadič, který jako odezvu na splnění určité, předem definované podmínky vygeneruje blok řídicích dat, který obsahuje úsek vlastních (užitečných) dat, přičemž přesune obsah vyrovnávací paměti do úseku vlastních dat v bloku řídicích dat, a odešle blok řídicích dat na hostitelský počítačový systém. Přednostně vyrovnávací paměť obsahuje vyrovnávací paměť typu FIFO (first in - first out).
Přednostně předem definovaná podmínka obsahuje určení toho, že došlo k naplnění vyrovnávací paměti. Předem definovaná podmínka může obsahovat určení toho, že došlo k uložení minimálního počtu předem definovaných indikátorů do vyrovnávací paměti a vypršela předem definovaná doba. Obdobně může předem definovaná podmínka obsahovat určení toho, že došlo k uložení alespoň jednoho indikátoru do vyrovnávací paměti a vypršela předem definovaná doba.
V upřednostňovaných provedeních tohoto vynálezu obsahuje blok řídicích dat hlavičku, mající identifikátor pro identifikaci ICB a čítač počtu indikací zahrnutých do úseku vlastních dat. Tato hlavička může zahrnovat i časové razítko.
Tento vynález se týká i periferního zařízení obsahujícího výše popsané zařízení a dále síťového rozhraní pro datovou komunikaci obsahující toto periferní zařízení. Tento vynález se týká i systému pro zpracování dat
86334 (2786334_CZ.doc) 15.9.2003
obsahujícího hostitelský systém vybavený pamětí, datovškomunikačním rozhraním pro datovou komunikaci mezi hostitelským počítačovým systémem a datově-komunikační sítí a výše popsaným zařízením pro řízení toku přerušení z datově-komunikačního rozhraní do paměti hostitelského počítačového systému.
Z jiného úhlu pohledu na tento vynález poskytuje tento vynález způsob pro přenos přerušení z periferního zařízení na hostitelský počítačový systém, přičemž tento způsob zahrnuje: ukládání přerušení generovaných periferním zařízením do vyrovnávací paměti; určení splnění předem definované podmínky a odezvou na splnění této předem definované podmínky vygenerování bloku řídicích dat, který obsahuje úsek vlastních dat, přičemž při této operaci se přesune obsah vyrovnávací paměti do úseku vlastních dat v bloku řídicích dat, a blok řídicích dat se odešle na hostitelský počítačový systém.
Vynález dále poskytuje způsob, kde určení splnění předem stanovené podmínky obsahuje určení skutečnosti, že je vyrovnávací paměť naplněna.
Vynález dále poskytuje způsob, kde určení splnění předem stanovené podmínky obsahuje určení skutečnosti, že došlo k uložení minimálního předem definovaného počtu indikátorů do vyrovnávací paměti a vypršela předem definovaná doba.
Vynález dále poskytuje způsob, kde určení splnění předem stanovené podmínky obsahuje určení skutečnosti, že došlo k uložení alespoň jednoho indikátoru do vyrovnávací paměti a vypršela předem definovaná doba.
86334 (2786334_CZ.doc) 15.9.2003 • ··· · ·· ·« • · · · ♦ ·
Vynález dále poskytuje způsob, kde blok řídicích dat obsahuje hlavičku představující identifikátor určený k identifikaci ICB a čítač počtu indikací zahrnutých do úseku vlastních dat.
Vynález dále poskytuje způsob, ve kterém vyrovnávací paměť obsahuje vyrovnávací paměť typu FIFO (first in - first out) .
Přehled obrázků na výkresech
Vynález bude blíže vysvětlen prostřednictvím konkrétních příkladů provedení znázorněných na výkresech, na
kterých představuje
obr. 1 blokové schéma příkladu sítě pro zpracování dat
obr. 2 blokové pro síť schéma karty adaptéru síťového rozhraní pro zpracování dat
obr. 3 blokové schéma příkladu hostitelského počítačového systému pro datovou síť
obr. 4 blokové System schéma příkladu systému Integrated on a Chip (ISOC) pro kartu adaptéru
síťového rozhraní obr. 5 další blokové schéma systému ISOC obr. 6 blokové schéma systému ISOC znázorňující informační tok systémem ISOC
86334 (2786334_CZ.doc) 15.9.2003 • ·
obr. 7 blokové schéma logické cesty pro vysílání systémem ISOC obr. 8 blokové schéma logické cesty pro příjem systémem
ISOC obr. 9A blokové schéma cyklické deskriptorové tabulky obr. 9B propojená sada deskriptorových tabulek obr. 10 blokové schéma virtuální vyrovnávací paměti a fyzické vyrovnávací paměti - čítače obr. 11 blokové schéma fronty ukončení obr. 12 blokové schéma vysílaného toku dat z hostitelského počítače do sítě obr. 13 další blokové schéma vysílaného toku dat z hostitelského počítače do sítě obr. 14 blokové schéma přijímaného toku dat hostitelským počítačem ze sítě obr. 15 další blokové schéma přijímaného toku dat, a to hostitelským počítačem ze sítě obr. 16 další blokové schéma systému ISOC obr. 17 tok přerušení mezi systémem ISOC a hostitelským počítačovým systémem
86334 (2786334_CZ.doc) 15.9.2003
4···
44 44 4444
4 4 4 4 4 ·
4 4 4 4 4 4
444444 4 4
4 4 4 4 4 4
44 44 44 obr. 18 blokové schéma části Interrupt Control Block
Příklady provedení vynálezu
S odkazem na obr. 1, vzorová síť pro zpracováni dat, představující provedení tohoto vynálezu, obsahuje více hostitelských počítačových systémů 10 a více připojených vzájemně propojených intervenující síťovou 30, jako je např. síťová architektura (InfiniBand je obchodní značka společnosti zařízení 20, architekturou InfiniBand
InfiniBand Trade Association)
Síťová architektura obvykle obsahuje více přepínačů 40 datové komunikace. Každý hostitelský zařízení 20 hostitelský počítačový tvoří uzel počítačový systém 10 a každé připojené sítě pro zpracování dat. Každý obsahuje obvykle více systém 10 centrálních procesorových jednotek 50 (CPU) a paměť 60, propojených sběrnicí 70, jako je např. sběrnice PCI. Ke sběrnici je připojen i síťový adaptér 80 určený k zajištění datové komunikace mezi hostitelským počítačovým systémem 10 a ostatními uzly v síti pro zpracování dat, a to prostřednictvím síťové architektury 30.
S odkazem na obr. 2, ve zvláště upřednostňovaném provedení tohoto vynálezu obsahuje síťový adaptér 80 zasouvatelné volitelné příslušenství - kartu vybavenou konektorem, jako je např. hranový konektor, který zjišťuje odstranitelné vložení/připojení karty do sběrnicové architektury 70 hostitelského počítačového systému 10. Zasouvatelné volitelné příslušenství - karta je osazena systémem 120 Application Specific Integrated Circuit (ASIC) nebo systémem 120 Intergated System on a Chip (ISOC), přičemž tento systém lze připojit ke sběrnici 70 přes
86334 (2786334_CZ.doc) 15.9.2003 • ·« · • · ··· · ·· · · • · · ···· ·· · • · ···· » · · • >7 · · · · ··· 4 4 4 4 4 · 4 · · · ···· •44 9 ···· ···· konektor 170, dále jedním nebo více paměťovými moduly 250 třetí úrovně připojenými k systému 120 ISOC, a propojovací prvek 260 připojenému k systému 120 ISOC za účelem zajištění datové komunikace mezi médiem síťové architektury 30 a systémem 120 ISOC. Propojovací prvek 260 poskytuje fyzické připojení k síťové architektuře 30. V některých provedeních tohoto vynálezu může být propojovací prvek 260 implementován jako samostatný systém ASIC. V některých provedeních tohoto vynálezu může být k implementaci propojovacího prvku 260 použito více součástek. Například pokud je síťová architektura 30 tvořena optickou sítí, propojovací prvek 260 může obsahovat synchronizační časovač řídicí samostatný optický vysílač. Paměť 250 může být implementována jako paměť typu SRAM, SDRAM nebo jako jejich kombinace. K implementaci paměti 250 mohou být využity i jiné typy paměti. Systém 120 ISOC obsahuje první a druhou paměť. Stručně popíšeme paměťový subsystém adaptéru 80 . Jak bude patrné z následujícího popisu, toto uspořádání poskytuje: vylepšený výkon distribuovaných aplikací pracujících nad sítí pro zpracování dat; vylepšenou škálovatelost systému; kompatibilitu s množstvím komunikačních protokolů; a menší požadavky na zpracování v hostitelském počítačovém systému. Podrobněji, toto uspořádání připouští koexistenci více komunikačních protokolů mezi adaptéry 80 a hostitelskými počítačovými systémy 120. Tyto komunikační protokoly mohou být využívány ve více aplikacích, mohou používat ten samý adaptér 80 a používat předdefinovanou sadu datových struktur, a tím zlepšit datové přenosy mezi hostitelským počítačovým systémem 10 a adaptérem 80. Počet aplikačních kanálů, které mohou být paralelně otevřeny, je omezen objemem paměťových zdrojů alokovaných pro adaptér 80 a nezávisí na výpočetním výkonu adaptéru. Jak vyplývá z následujícího textu, je vysoce kladně hodnoceno i to, že
86334 (2786334_CZ.doc) 15.9.2003
φ · φ φ φφφ φ φ φφφφφ φφ ···· koncept systému 120 ISOC integrace více součástek do jedné součástky integrovaného obvodu významné minimalizuje výrobní náklady a poskytuje vícenásobně použitelné stavební bloky. Dále je vysoce kladně hodnocena i skutečnost, že v jiných provedeních tohoto vynálezu mohou být prvky systému 12 0 ISOC implementovány samostatnými komponentami.
V následujícím popisu jsou termínem „Rámec označovány datové jednotky nebo zprávy přenášené mezi softwarem běžícím na hostitelském počítačovém systému 10 a adaptérem 80. Každý rámec obsahuje hlavičku rámce a vlastní data. Vlastní data mohou obsahovat uživatelská data, data hlavičky protokolu na vyšší úrovni, potvrzení, příkazy pro řízení toku dat a kombinace těchto dat. Obsah hlavičky rámce popíšeme ve stručnosti podrobněji. Adaptér 80 zpracovává pouze hlavičku rámce. Adaptér 80 může provést segmentaci hlavičky rámce na menší datové pakety, které jsou účinněji přenášeny prostřednictvím síťové architektury 30 . Tato fragmentace netransformuje vlastní data.
Ve zvláště upřednostňovaném provedení tohoto vynálezu jsou data přenášena síťovou architekturou 30 jako atomické jednotky, dále označované jako pakety. Každý paket obsahuje informaci o směrování, za kterou následuje hardwarová datová hlavička a vlastní data. V typickém příkladu provedení tohoto vynálezu je podporována velikost paketů až do velikosti 1024 bajtů. Rámce větší velikosti jsou fragmentovány na pakety o velikosti 1024 bajtů. Vysoce kladně je hodnocena ta skutečnost, že v jiných provedeních tohoto vynálezu může být podporována jiná velikost paketů.
V upřednostňovaném provedení tohoto vynálezu se komunikace mezi adaptérem 80 a aplikacemi běžícími na
86334 (2786334_CZ.doc) 15.9.2003
ΦΦ·· • · ··· ·
Φ» ΦΦ •J ···*· φ φ » • · · · · ··· Φ Φ φ _ β Jo 1 ·· · · · · » • *-· * ·· φφ ·· φφ hostitelském počítačovém systému 10 realizuje prostřednictvím architektury Logical Communication Port (LCP). Adaptér 80 obsahuje hierarchicky organizované paměti, které zajišťují optimalizaci čekací doby přístupu k různým vnitřním datovým strukturám. Tuto hierarchicky organizovanou paměť stručně popíšeme. V upřednostňovaných provedeních tohoto vynálezu adaptér 80 poskytuje oddělené cesty pro odcházející data (TX) určená pro síťovou architekturu 30 a pro přicházející data (RX) určená pro hostitelský počítačový systém 10. Každá cesta obsahuje vlastní stroj pro přenos dat, logiku pro zpracování hlaviček a rozhraní síťové architektury. Tyto cesty popíšeme ve stručnosti podrobněji.
S odkazem na obr. 3, architektura LCP definuje framework pro rozhraní mezi lokálními konzumenty běžícími i na hostitelském počítačovém systému 10 a adaptérem 80. Příkladem lokálních konzumentů mohou být aplikace nebo vlákna. Hostitelský počítačový systém 10 může být rozdělen na prostor 90 uživatelských aplikací a na prostor 110 jádra. Architektura LCP zajišťuje prostřednictvím logického portu každému lokálnímu konzumentovi přístup do síťové architektury 30 . K tomuto portu lze přistupovat přímo z prostoru 90 uživatelských aplikací. Ve zvláště upřednostňovaných provedeních tohoto vynálezu se o povolení přístupu stará hardwarový ochranný mechanismus. Před přenosem datových rámců je prováděna registrace LCP v prostoru 110 jádra. Architektura LCP nemusí definovat komunikační protokol. Místo toho architektura LCP definuje rozhraní mezi aplikacemi a adaptérem 80 pro přenos dat a řídicích příkazů. Komunikační protokol může být místo toho definován aplikací a kódem programu vykonávaným na adaptéru 80. Počet kanálů, které mohou být používány adaptérem 80 je omezen pouze velikostí paměti karty adaptéru
86334 (2786334_CZ.doc) 15.9.2003 • · určené k ukládání informací vztahujících se k LCP. Každý port LCP je programovatelný a lze naprogramovat tak, aby disponoval specifickou množinou vlastností. Tato množina vlastností se vybírá v souladu s konkrétním protokolem tak, aby co nejlépe podporovala přenos dat mezi pamětí 60 hostitelského počítačového systému 10 a adaptérem 80, Současně mohou být podporovány různé komunikační protokoly, přičemž každý protokol používá odlišný port LCP.
Architektura LCP obsahuje klienty 100 LCP Clients a správce 130 LCP Manager umístěných v prostoru 130 jádra, a jednoho nebo více kontextů 140 LCP Context umístěných v adaptéru 80.
Každý klient 100 LCP představuje jednosměrný aplikační koncový bod připojený k portu LCP. Klient 100 LCP může být umístěn v prostoru 90 uživatelských aplikací nebo v prostoru 110 jádra. Během operace každý klient 100 LCP generuje příkazy a data, které mají být přečteny z paměti 60 a přeneseny adaptérem 80 prostřednictvím kanálu TX LCP nebo přijímá data přenášená adaptérem 80 do paměti 60 prostřednictvím kanálu RX LCP.
Správce 130 LCP Manager je důvěryhodná komponenta, která obsluhuje požadavky na alokování a dealokování kanálu LCP a požadavky na registraci oblastí pro čtení/zápis v paměti 60 pro každý kanál. Správce 130 LCP Manager umožňuje aplikaci v prostoru uživatelských aplikací využívat zdroje adaptéru 80 bez toho, že by tím ovlivnila ostatní komunikační operace, aplikace nebo operační systém hostitelského počítačového systému 10.
Každý kontext 140 LCP Context je množina řídicích
86334 (2786334_CZ.doc) 15.9.2003
• ·
informací vyžadovaných adaptérem 80 k tomu, aby mohl poskytovat služby konkrétnímu klientovi 100 LCP. Kontext 140 LCP Context může zahrnovat atributy kanálu LCP, které zůstávají během doby existence kanálu konstantní, jako např. příkazy, ukazatelová struktura a definice popisovače vyrovnávací paměti. Kontext 140 LCP Context může také obsahovat informace o službě LCP specifické pro daný kanál LCP, jako je objem dat čekajících na službu, a následující přístupová adresa pro daný kanál LCP. Kontext 14 0 LCP Context je uložen v paměti adaptéru 80, a to s cílem zajistit rychlé přepínání kontextu LCP Context v okamžiku, kdy adaptér přeruší obsluhu jednoho kanálu a zahájí obsluhu jiného kanálu.
Klient 100 LCP Client vyžadující inicializaci portu LCP se obrátí na správce 130 LCP Manager s požadavkem alokování kanálu LCP. V tomto okamžiku dojde k určení atributů kanálu LCP a k předdefinování chování portu LCP a operací, které je klient 100 LCP Client oprávněn provádět ve spojení s portem LCP. Klientu 100 LCP Client je přidělena adresa, která bude používána pro přístup k adaptéru 80 jedinečným a zabezpečeným způsobem. Tato adresa je označována jako adresa Doorbe11 Addre s s.
Správce 130 LCP Manager je také zodpovědný za registraci oblastí paměti 60 hostitelského počítačového systému tak, aby byl umožněn překlad virtuální adresy na adresu fyzickou adaptérem 80, a tak, aby bylo umožněno klientům umístěným v prostoru uživatelských aplikací přistupovat k oblastem v paměti 60 hostitelského počítačového systému bez vměšování se do činnosti ostatních programů.
86334 (2786334_CZ.doc) 15.9.2003 > · · · • · • · · · · · • · · · ·
Každý klient 100 LCP Client může za běhu požadovat registraci nových vyrovnávacích pamětí a deregistraci existujících vyrovnávacích pamětí. Každá taková změna vyžaduje sekvenci výměny informací mezi klientem 100 LCP Client , správcem 130 LCP Manager a adaptérem 80.
Každému klientu 100 LCP Client je přiřazen kontext 140 LCP Context, který poskytuje všechny informace požadované adaptérem 80 k obsluze nevyřízeného požadavku zaslanému portem LCP k vykonání.
K inicializaci paměťových přenosů mezi klientem 100 LCP Client a adaptérem 80 a k inicializaci vysílání rámců připraví klient 100 LCP Client sadu deskriptorů obsahujících informace specifické pro danou operaci. Poté klient 100 LCP Client provede zápis I/O na adresu Doorbell Address namapovanou na adaptér 80 . Zápis na adresu Doorbell Address aktualizuje kontext 140 LCP Context na adaptéru 80, přičemž se přidá nový požadavek na vykonání.
Adaptér 80 rozhoduje mezi různými vysílacími porty LCP, které mají nevyřízené požadavky, a vybírá ten, který má být obsloužen v příštím kroku.
Při příjmu dat se pro přijímaný paket identifikují rámec a port LCP. Vygenerují se deskriptory, které definují operace vyžadované přijímacím portem LCP. Při vykonávání těchto příkazů strojem LCP adaptéru 80 se příchozí data ukládají do příslušné vyrovnávací paměti alokované pro příslušný kanál LCP v paměti 60 hostitelského počítačového systému 10.
Pro každý obsluhovaný kanál LCP zavede adaptér £0
86334 (2786334_CZ.doc) 15.9.2003 • * · · · ·
• · · · * ! *.
• « · ··· · · · j • · · · · · · .· ·· ·· ·· příslušné informace o kontextu LCP a použije tyto informace k vykonání požadovaných sad datových přenosů. Poté adaptér 80 pokračuje zpracováním následujícího vybraného kontextu 140 LCP Context.
S odkazem na obr. 4 a jak již bylo uvedeno výše, systém 120 ISOC obsahuje paměť 220 první úrovně a paměť 230 první úrovně a paměť 240 druhé úrovně a adaptér 80 dále obsahuje paměť 250 třetí úrovně. Paměti první, druhé a třetí úrovně tvoří paměťový subsystém 210 adaptéru 80. V upřednostňovaném provedení tohoto vynálezu systém 120 ISOC obsahuje procesor 150 TX (TX MPC) určený pro operace vysílání dat a procesor 160 (RX MCP) určený pro operace příjmu dat. Ve zvláště upřednostňovaných provedeních tohoto vynálezu jsou procesor 150 a procesor 160 implementovány mikroprocesory typu Reduced Instruction Set Computing (RISC), jako jsou např. mikroprocesory IBM PowerPC 405 RISC. Systém 120 ISOC obsahuje v rámci paměťového subsystému 210 kromě první a druhé paměti paměť 180 „cache pro ukládání dat a paměť a paměť 170 „cache pro ukládání instrukcí přiřazenou k procesoru 150 TX spolu s druhou pamětí 190 „cache pro ukládání dat a druhou pamětí 190 „cache pro ukládání instrukcí přiřazenou k procesoru 160 RX. Rozdíly mezi třemi úrovněmi pamětí spočívají ve velikosti těchto pamětí a v délce vybavovací doby. Jak bude stručně objasněno dále, paměťový subsystém 210 zajišťuje: plně vyhovující přístup k instrukcím a k datům, a to pro procesor 150 TX i pro procesor 160 RX; škálovatelnost a sdílení zdrojů mezi procesorem 150 TX a procesorem 160 RX, což je zajímavé z hlediska snížení výrobních nákladů.
Pamětí 220 (MjL) a 230 první úrovně obsahují paměťový prostor 220 TX-M1 a paměťový prostor 230 RX-M1. K paměti 220
86334 (2786334_CZ.doc) 15.9.2003 • ·
TX-Ml může přistupovat pouze procesor 150 TX a k paměti 230 RX-M1 může přistupovat pouze procesor 160 RX. Během operací se paměti 220 a 230 první úrovně používají k ukládání dočasných datových struktur, šablon hlaviček, zásobníků, apod. Obě paměti 220 a 230 první úrovně reagují na nulové čekací stavy. Každá z pamětí 220 a 230 první úrovně je připojena pouze k rozhraní pro přenos dat jednoho z odpovídajících procesorů 150 a 160; tyto paměti nejsou připojeny k rozhraním pro přenos instrukcí. Toto uspořádání zpřístupňuje kešovatelnou i nekešovatelnou paměť, přičemž současně zachovává efektivní přístup k datům uloženým v paměti 240 a v paměti 230 první úrovně.
Paměť 240 (M2.) druhé úrovně je sdílená paměť dostupná pro oba procesory 150 a 160, ostatní komponenty adaptéru 80 a hostitelský počítačový systém 10. Přístup k paměti 240 druhé úrovně je pomalejší než přístup k pamětem 220 a 230 první úrovně, protože paměť 240 druhé úrovně je přes sdílenou sběrnici používána více agenty. Paměť 250 třetí úrovně je také sdíleným zdrojem. V obzvláště upřednostňovaných provedeních tohoto vynálezu obsahuje adaptér 80 kartu počítačové periférie, na které jsou paměti 220 a 230 první úrovně a paměť 240 druhé úrovně integrovány v téže komponentě ASIC jako procesory 150 a 160. Sdílené paměti 240 a 250 se obecně používají k ukládání takových datových typů, které nevyžadují rychlé a časté přístupové cykly. Takové datové typy zahrnují kontexty 140 LCP Context a virtuální adresy překladových tabulek. Sdílené paměti 240 a 250 jsou připojeny k rozhraní pro přenos dat i k rozhraní pro přenos instrukcí procesorů 150 a 160.
Adaptér 80 obsluhuje samostatně vysílaný a přijímaný datový tok. Oddělení procesoru 150 pro vysílání od procesoru
86334 (2786334_CZ.doc) 15.9.2003 • ·
160 pro příjem snižuje režii při přepínání mezi úlohami; dále izoluje dočasné pracovní zatížení jedné cesty od dočasného pracovního zatížení druhé cesty ' a využívá dvou vestavěných procesorů ke zpracování přicházejícího a odcházejícího datového toku. S odkazem na obr. 5, obsahuje systém 120 ISOC logiku 280 cesty pro vysílání, logiku 290 cesty pro příjem a sdílenou logiku 300. Logika 280 cesty pro vysílání obsahuje stroj 310 LCP TX určený k dekódování specifických údajů pro každý kanál LCP a zachytávající příkazy týkající se portu LCP, které se mají vykonat; logiku 320 TX pro řízení přenosu rámců do adaptéru 80; výše uvedený procesor 150 TX určený ke správě rámců TX a paketů; výše uvedenou paměť 220 TX první úrovně určenou k ukládání instrukcí a dočasných datových struktur; a dále logiku určenou k asistenci procesoru 150 TX při správě datového toku a zpracovávání paketů, jako je např. fragmentace rámců na datové pakety při směrování. Procesor 150 TX zpracovává úlohu sériově na základě schématu, podle kterého se činnost procesoru přeruší pouze při výskytu výjimek nebo chyb. Paměť 220 TX první úrovně slouží procesoru 150 TX při komunikaci s logikou 320 TX. Logika 290 cesty pro příjem obsahuje linkovou logiku 340; hardware asistující výše uvedenému procesoru 160 RX při zpracování hlaviček přicházejících paketů a transformaci nebo skládání těchto paketů do rámců; výše uvedený procesor 160 RX určený ke zpracování rámců RX a paketů; výše uvedenou paměť 230 RX první úrovně určenou k ukládání instrukcí; logiku 350 RX pro řízení přenosu rámců ze síťové architektury 3 0; stroj 360 LCP RX určený k dekódování specifických údajů pro každý kanál LCP, ukládání přicházejících dat do dočasných datových struktur odpovídajících LCP a do paměti 60 hostitelského počítačového systému a přijímání a registraci ukazatele na prázdné vyrovnávací paměti když jsou klientem 100 LCP Client
86334 (2786334_CZ.doc) 15.9.2003 ·· ·· · * · · · * • · · · · • · 9 ··· · · • · · ·, ·· ·· poskytovány pro použití adaptérem 80. Procesor 160 RX zpracovává úlohy sériově na základě schématu, podle kterého se činnost procesoru 160 výjimek nebo chyb. Paměť
RX přeruší pouze při výskytu 230 RX první úrovně slouží procesoru 160 RX při komunikaci s logikou 350 RX.
Z důvodu snížení režie hostitelským počítačovým
Jak bylo uvedeno výše, přístup založený na systému ISOC umožňuje snížení výrobních nákladů spojených s výrobou adaptéru 80 a ostatních komponent systému, jako je např. deska a ostatní podpůrné moduly. Přístup založený na systému ISOC také zvyšuje jednoduchost adaptéru 80, a tudíž zvyšuje i jeho spolehlivost. Počet propojení mezi prvky systému 120 ISOC je efektivním způsobem neomezen. Takže je možné implementovat násobné cesty.
v důsledku zpracování dat systémem 10 jsou operace přenosu dat do a z paměti 60 hostitelského počítačového systému přednostně prováděny systémem 120 ISOC. Systém 120 ISOC také provádí zpracování hlaviček přicházejících a odcházejících paketů. Při vysílání systém 120 ISOC vytvoří hlavičku a směruje ji do síťové architektury 30. Při příjmu zpracuje hlavičku adaptér 80, aby určil její umístění v paměti systému. Paměti 220 a 230 první úrovně jsou paměti s nulovým poskytující procesoru datový prostor, tabulky a prostor pro dočasné ukládání dat upřednostňovaných provedeních tohoto vynálezu jsou logika 280 cesty pro vysílání, logika 290 cesty pro příjem a sdílená logika 300 sestaveny z malých logických prvků, nazývaných jádra. K označení těchto prvků je použit název jádro, neboť tyto prvky jsou navrženy jako individuální logické součástky, které mají samy o sobě vlastnosti, které umožňují jejich použití v různých aplikacích.
čekacím stavem např. zásobníky, Ve zvláště
86334 (2786334_CZ.doc) 15.9.2003 ·· • · • · ···· • · · • · · • ··· · • ·
Jak bylo vyznačeno výše, logika 280 cesty pro vysílání zodpovídá za zpracování vysílaných, resp. odcházejících rámců. Vysílání rámců inicializuje prostřednictvím sběrnice 70 centrální procesorová jednotka CPU, např. jednotka 50 CPU hostitelského počítačového systému 10. Systém 120 ISOC obsahuje logiku 370 sběrnicového rozhraní zajišťující komunikaci se sběrnicí 70 . Systém 120 ISOC také obsahuje přemosťovací logiku 390, která propojuje logiku 370 sběrnicového rozhraní s lokální procesorovou sběrnicí 390 systému 120 ISOC. Stroj 310 LCP TX zachytává příkazy a rámce z paměti 60 hostitelského počítačového systému. Procesor 150 TX zpracuje hlavičku každého rámce na formát vhodný pro vysílání ve formě datových paketů do síťové architektury. Logika 320 přenáší data bez modifikací. Linková logika 330 transformuje každý paket, který má být vysílán, do konečného tvaru pro vysílání do síťové architektury 30 . Linková logika 330 může obsahovat jeden nebo více portů, přičemž každý z nich může být připojen k síťové architektuře 30.
Jak bylo vyznačeno výše, logika 290 cesty pro příjem zodpovídá za zpracování přicházejících paketů. Nejprve jsou pakety přijmuty ze síťové architektury 3 0 a zpracovány linkovou logikou 340. Linková logika transformuje paket do tvaru hlavička - vlastní data. Aby bylo možné určit formát paketu a jeho umístění v paměti 60 hostitelského počítačového systému, je hlavička zpracovávána procesorem 230 RX. Linková logika 340 může obsahovat jeden nebo více portů, přičemž každý z nich je možné připojit k síťové architektuře 30. Stroj RX LCP zodpovídá za přenos dat do paměti 60 hostitelského počítačového systému prostřednictvím sběrnice 70.
Logika 280 cesty pro vysílání obsahuje paměť 400
86334 (2786334_CZ.doc) 15.9.2003 ·· ···· • · • · ·♦··
• · • · · • · ·
Headerln FIFO (first in, first out) určenou k předávání hlavičky mezi strojem 310 TX LCP a procesorem 220 TX. Logika 290 cesty pro příjem obsahuje paměť 410 HeaderOut FIFO (first in, first out) určenou k předávání hlavičky mezi strojem 360 RX LCP a procesorem 230 RX. Další paměti typu FIFO jsou poskytovány logikou 320 TX a logikou 350 RX. Tyto paměti FIFO a fronty ve stručnosti popíšeme.
Sdílená logika 300 obsahuje všechny logické prvky sdílené mezi logikou 280 cesty pro vysílání a logikou 290 cesty pro příjem. Tyto prvky obsahují výše uvedenou logiku 370 sběrnicového rozhraní, sběrnici 390 PLB, paměť 240 druhé úrovně a řadič 420 poskytující přístup ke vzdálené paměti 250 třetí úrovně. Logika 370 sběrnicového rozhraní pracuje nad sběrnicí 70 jako master i jako slavě. Ve funkci slavě umožňuje logika 370 sběrnicového rozhraní jednotce 50 CPU přistupovat k paměti 240 druhé úrovně, k paměti 250 druhé úrovně prostřednictvím řadiče 420 a dále konfigurovat registry a stavové registry systému 120 ISOC. Obecně mohou k těmto registrům přistupovat jednotka 50 CPU, procesor 150 TX a procesor 160 RX. Ve funkci master umožňuje logika 370 sběrnicového rozhraní stroji 310 TX LCP a stroji 360 RX LCP přistupovat k paměti 60 hostitelského počítačového systému. Na obrázku 5 označuje „M zapojení ve funkci master a „S zapojení ve funkci slavě.
S odkazem na obr. 6, tok paketů systémem 120 ISOC je obecně symetrický. Jinými slovy, obecná struktura toku je stejná ve směru vysílání i ve směru příjmu. Na systém 120 ISOC lze pohlížet jako na systém obsahující první logiku 440 rozhraní, první řídicí logiku 460, procesorovou logiku 480, druhou řídicí logiku 470 a druhou logiku 450 rozhraní. Pakety jsou zpracovávány následujícím způsobem:
86334 (2786334_CZ.doc) 15.9.2003 ·· ·*·· ····
A. Ve směru vysílání jsou informace přenášeny do systému 12 0 ISOC ze sběrnice 70 prostřednictvím první logiky 440 rozhraní. Ve směru příjmu jsou informace přenášený do systému 120 ISOC ze sběrnice 70 prostřednictvím druhé logiky 450 rozhraní.
B. Ve směru vysílání se informace přenesené do systému 120 ISOC prostřednictvím první logiky 440 rozhraní zpracovávají první řídicí logikou 460 . Ve směru příjmu se informace přenesené do systému 120 ISOC prostřednictvím druhé logiky 450 rozhraní zpracovávají druhou řídicí logikou 470.
C. Ve směru vysílání se hlavička rámce odcházejícího rámce extrahuje první řídicí logikou 460 a zpracovává procesorovou logikou 480. Procesorová logika 480 generuje instrukce pro druhou řídicí logiku 470 na základě hlavičky rámce. Vlastní data odcházejícího rámce se předávají druhé logice 470 rozhraní. Ve směru příjmu se hlavička rámce přicházejícího rámce extrahuje druhou řídicí logikou 470 a zpracovává procesorovou logikou 480. Procesorová logika 480 generuje instrukce pro první řídicí logiku 460 na základě hlavičky rámce. Vlastní data odcházejícího rámce se předávají první řídicí logice 460. V obou směrech procesor 480 nepracuje přímo s vlastními daty.
D. Ve směru vysílání zpracovává druhá řídicí logika 470 odcházející data podle instrukcí přijímaných od procesorové logiky 480. Ve směru vysílání zpracovává první řídicí logika 460 přicházející data podle instrukcí přijímaných od procesorové logiky 480.
86334 (2786334_CZ.doc) 15.9.2003 »9 »«·♦
• · · ·· ·· ·« »»
E. Ve směru vysílání se informace přenášejí přes druhou logiku 450 rozhraní na místo určení prostřednictvím síťové architektury 30. Ve směru příjmu se informace přenášejí přes první logiku rozhraní na místo určení prostřednictvím sběrnice 70.
Rozhraní pro software pracující na hostitelském počítačovém systému 10 je zobrazováno jako rozhraní 430. Obdobně rozhraní k mikrokódu pracujícím na procesorových vstupech a výstupech jsou zobrazována jako rozhraní 490 a rozhraní 500.
S odkazem na obr. 7 se nyní budeme věnovat podrobnějšímu popisu příkladu toku vysílaných dat systémem 120 ISOC. Systém 120 ISOC je možné rozdělit na doménu 510 kontextu LCP RX Context, rámcovou doménu 520 a síťovou doménu 530, a to na základě různých formátů informací zpracovávaných systémem 120 ISOC. Stroj 310 TX LCP obsahuje Paměť FIFO 550 pro ukládání požadavků LCP, logiku 560 pro přímý přístup do paměti (DMA, Data Memory Access), rámcovou logiku 580 a výše uvedenou logiku 140 kontextu LCP. FIFO 550 pro ukládání požadavků LCP, logika 560 pro přímý přístup do paměti (DMA, Data Memory Access) a logika 590 kontextu LCP TX Context jsou umístěny v doméně 510 kontextu LCP Context. Rámcová logika 580 je umístěna v rámcové doméně 520. Logika 320 TX, paměť 220 TX první úrovně a procesor 150 TX leží na hranici mezi rámcovou doménou 520 a síťovou doménou 530. Linková logika 330 TX je umístěna v síťové doméně 530. Ve zvláště upřednostňovaných provedeních tohoto vynálezu je FIFO 400 Headerln integrální součástí paměti 220 TX první úrovně. Obecně aplikace vykonávaná na hostitelském počítačovém systému 10 vytvoří rámec. Rámec je
86334 (2786334_CZ.doc) 15.9.2003 • · · · * » prostřednictvím kanálu LCP TX odeslán adaptéru 80. Postupné vzájemné ověřování mezi aplikací a adaptérem 80 předpokládá předchozí inicializaci provedenou správcem 130 LCP Manager. Aby klient 100 LCP Client přidal požadavek LCP Service Request, informuje adaptér 80, že jeden nebo více rámců, které mají být odeslány, jsou připraveny ke zpracování. To se provede zapsáním řídicího slova na adresu Doorbell Address. Adresy Doorbell Address se alokují takovým způsobem, že operace zápisu je převedena na fyzický cyklus zápisu na sběrnici 70, a to prostřednictvím adresy jedinečně přiřazené portu LCP a chráněné proti přístupu z ostatních procesů. Adaptér 80 detekuje operaci zápisu a zaznamená nový požadavek inkrementací položky udávající počet předchozích požadavků pro daného klienta 100 LCP Client. To je součástí příslušného kontextu LCP 140 Context. Aktualizuje se také seznam požadavků k obsloužení uložený v paměťovém subsystému 210 adaptéru 80. V jednoduchém případě používá rozhodování výše uvedené schéma FIFO 550 pro všechny kanály LCP s neobslouženými požadavky. Jakmile je jeden kanál LCP obsloužen, vyberen se další kanál LCP. Cyklus obsluhy začíná v okamžiku, kdy je odpovídající kontext LCP Context zaveden do stroje 310 TX LCP. Pak se přistoupí ke kontextu 140 LCP Context pro odvození atomických operací pro obsluhu kanálu LCP a pro stanovení parametrů pro tyto operace. Např. tyto atomické operace mohou záviset na atributech kanálu LCP zavedených v kontextu 140 LCP Context. Kompletní cyklus obsluhy obvykle zahrnuje sadu aktivit vykonávaných adaptérem 80 pro zachycení a vykonání více atomických deskriptorů vytvořených klientem 100 LCP Client. V případě kanálu LCP TX cyklus obsluhy obecně zahrnuje čtení rámců z paměti 60 hostitelského počítačového systému do paměťového subsystému 210 adaptéru 80 . Po ukončení se aktualizují všechny informace kontextu LCP Context, které vyžadují modifikaci
86334 (2786334_CZ.doc) 15.9.2003 » » • to • · • toto to • o 9 9 9 9 9 9 9
9 9 9 9 999 9 9 9 9
-22- to · 99 99999
999 9 99 ·· ·· ** (jinými slovy informace o službách LCP Service), v paměťovém subsystému 210 adaptéru 80. Obecně platí, že první akcí vykonanou adaptérem 80 v cyklu služby LCP Service je zachycení následujícího deskriptoru, který se má zpracovat.
Zpracování vysílaných rámců systémem 120 ISOC obvykle zahrnuje následující kroky:
A. Zachycení následujícího deskriptoru portu LCP.
Adresa následujícího deskriptoru, který má být zachycen, je uložena jako část kontextu 140 LCP Context kanálu. Adaptér 80 si přečte deskriptor z paměti 60 hostitelského počítačového systému a provede dekódování deskriptoru na základě atributů kanálu LCP. Deskriptor definuje velikost nové hlavičky rámců, velikost vlastních dat a umístění těchto položek.
B. Konverze virtuálních adres na adresy fyzické
Jestliže se aplikace odkazuje na datovou vyrovnávací paměť prostřednictvím virtuálních adres, musí adresa projít dodatečným procesem překladu adresy. V takovém případě je virtuální adresa používaná aplikací přeložena na fyzickou adresu použitelnou adaptérem 80 při přístupu do paměti 60 hostitelského počítačového systému. To se provádí sledováním hranic stránek a použitím informací o fyzickém umístění stránek zapsaných správcem 130 LCP Manager do paměťového subsystému 210 adaptéru 80. Překlad virtuálních adres na fyzické adresy slouží také jako bezpečnostní opatření v případech, kdy je tabulka deskriptorů vytvořená klientem 100 LCP Client, který neni důvěryhodný. To zabraňuje neautorizovanému přístupu do nesouvisejících oblastí paměti
86334 (2786334_CZ.doc) 15.9.2003
4 4 4 4 4 » · · • · · · · 4
- 23 - 4 4 4 4 4 4 • 44 4 444*4 • · 4 4 4 4 · i 9 ·*
60 hostitelského počítačového systému.
C. Čtení hlavičky rámce
Hlavička a vlastní data rámce TX jsou čtena
z vyrovnávací paměti umístěné v paměti 60 hostitelského
počítačového systému, a to s využitím fyzické adresace. Po dokončení načtení hlavičky nastaví adaptér 80 interní příznak indikující skutečnost, že může být zahájeno zpracování hlavičky procesorem 150 TX.
D. Čtení vlastních dat
Vlastní data jsou načítána z paměti 60 hostitelského počítačového systému a ukládána adaptérem 80 do FIFO 570. FIFO 570 pro ukládání dat je zobrazena na obrázku 7 umístěná v rámci logiky 320 TX. FIFO 570 může být také integrovanou součástí paměti 220 TX první úrovně. Transakce čtení dat pokračuje, dokud nejsou všechna data přenesena a uložena do paměťového subsystému 210 adaptéru 80. Po dokončení operace čtení následuje zaslání indikace stavu zpět klientu 100 LCP Client. Všimněte si, že zpracování hlavičky může začít ihned poté, jakmile je do FIFO 400 Headerln načtena hlavička. Není potřeba čekat, až budou načtena všechna data.
E. Zpracování hlavičky rámce
Zpracování hlavičky provádí procesor 150 TX. Zpracování hlavičky je závislé na protokolu a je spjato se zahrnutím informací o protokolu vně architektury LCP. Procesor 150 TX spustí mikrokód protokolové hlavičky, přičemž využívá směrovací tabulky a ostatní relavantní informace uložené do paměťového subsystému 210 adaptéru 80 během inicializační
86334 (2786334_CZ.doc) 15.9.2003 sekvence protokolu a směrování. Když procesor 150 TX obdrží indikaci skutečnosti, že v FIFO 400 Headerln čeká nová hlavička, zahájí proces zpracování hlavičky. Výsledkem zpracování hlavičky je jeden nebo více paketových hlaviček, které jsou ve tvaru, ve kterém mohou být vysílány do síťové architektury 30, přičemž tyto paketové hlavičky obsahují informace o směrování. Jestliže velikost vlastních dat přesahuje maximální velikost paketu povolenou síťovou architekturou 30, jsou vlastní data fragmentována, přičemž se generují paketové hlavičky, přičemž každá z těchto hlaviček se používá ve spojení s určitými datovými segmenty původních dat ke generování paketů přenášených do síťové architektury 30.
F. Ukládání paketových hlaviček pro vysílání do fronty
Příkaz definující počet slov tvořících hlavičku a počet slov pro vlastní data v rámci jednoho paketu a samotnou hlavičku paketu zapíše procesor 150 TX do FIFO 540 HeaderOut v paměti 220 první úrovně.
G. Slučování paketových hlaviček a paketových dat určených k vysílání
Vysílání paketu do síťové architektury 30 je spuštěno kdykoliv, když je připraven příkaz v paměti 540 FIFO HeaderOut a paměť 570 FIFO pro ukládání dat obsahuje dostatek dat k provedení vysílání příslušných paketů. K hlavičce a datům v každém paketu může být přidán kontrolní součet s redundancí CRC (Cyclic Redundancy Check). Každý kompletní paket je odeslán do síťové architektury 30 prostřednictvím linkové logiky 330 TX.
86334 (2786334_CZ-doc) 15.9.2003 • φ φφφφ
Proces vysílání jednoho rámce je dokončen tehdy, když jsou do síťové architektury 30 odeslána všechna data rámce, a to ve formě jednoho nebo více paketů. Pro každý rámec zpracovaný adaptérem 80 může být aplikaci vrácen stav prostřednictvím druhého klienta 100 LCP Client. Tento stav indikuje dokončení přenosu rámce z paměti 60 hostitelského počítačového systému do adaptéru 80, dokončení vlastního odeslání rámce nebo jiné stavy procesu vysílání.
V jakémkoliv okamžiku může adaptér 80 současně vykonávat jednu nebo více následujících akcí: vyhledání následujícího LCP, který je třeba obsloužit; inicializace služby pro kanál LCP A; vykonávání načítání DMA dat pro poslední rámec kanálu LCP B; zpracování hlavičky rámce a fragmentace pro kanál LCP C; a vysílání paketů pocházejících z kanálu LCP D.
S odkazem na obr. 8, následuje na příkladě ukázaný popis příjmu datových rámců aplikací s využitím portu LCP RX. Operace prováděné systémem 120 ISOC se mohou lišit v závislosti na typu protokolu podporovaného LCP. Postupné vzájmené ověřování mezi aplikací a adaptérem 80 předpokládá předchozí inicializaci provedenou správcem 130 LCP Manager. Stroj 360 LCP RX zahrnuje alokační logiku 620 LCP,, logiku 610 kontextu LCP RX Context a logiku 630 DMA, všechny umístěné v doméně 520 LCP. Procesor 160 RX, paměť 230 RX první úrovně a logika 350 RX leží na hranici mezi rámcovou doménou 520 a síťovou doménou 530. Linková logika 340 RX a asistenční paketová logika 600 jsou umístěny v síťové doméně 530. Ve zvláště upřednostňovaných provedeních tohoto vynálezu je FIFO 410 HeaderOut integrální součástí paměti 230 RX první úrovně. Rámce přijaté systémem 120 ISOC ze síťové architektury 3 0 se zapisují do vyrovnávací paměti
86334 (2786334_CZ.doc) 15.9.2003 • · · · · · • » • · » · · t · · • ·«·· W · · • tt 9 ····»· * * • · · · · · · · • « · · ♦ <· · · klienta LCP paměti 60 hostitelského počítačového systému. Dostupnost vyrovnávacích pamětí je určena klientem 100 LCP RX Client a je indikována adaptéru 80 z důvodu vkládání přicházejících datových rámců. Klient 100 LCP Client poskytuje vyrovnávací paměť zápisem na příjmovou adresu Dorbell Address v systému 120 ISOC, stejným způsobem, jaký byl popsán výše a jakým je logika ,280 cesty vysílání informována o nových rámcích, které jsou připraveny k odeslání. Registrová adresa Doorbell Address je alokována takovým způsobem, že operace zápisu je převedena na fyzický cyklus zápisu na sběrnici 70 . Adaptér 80 detekuje operaci zápisu a zaznamená nové poskytování oblastí prázdné paměti inkrementací položky udávající počet dostupných záznamů slov pro daného klienta 100 LCP Client. Počet dostupných slov je součástí příslušného kontextu LCP 140 Context. Kdykoliv aplikace dokončí zpracování přijatého rámce ve vyrovnávací paměti, zapíše to na adresu Doorbell Address. Tento cyklus zápisu se stará o indikaci počtu slov dostupných v nově dostupné paměti. Tímto číslem je inkrementován čítač kontextu LCP Context. Paket přijatý ze síťové architektury může být součástí většího rámce, který bude adaptérem 80 sestaven do spojitého prostoru v paměti 60 hostitelského počítačového systému. Zpracování přijímaných rámců systémem 120 ISOC obvykle zahrnuje následující kroky:
A. Oddělení paketové hlavičky a dat
Linková logika 340 překládá informace ze síťové architektury 30 do toku paketů. Každý přijatý paket je zpracováván linkovou logikou 340 RX tak, aby byla oddělena paketová hlavička od vlastních dat. Hlavička je uložena do FIFO 640 Headerln v paměti 230 RX první úrovně. Vlastní data jsou uložena do paměti 650 FIFO RX pro ukládání dat umístěné
86334 (2786334_CZ.doc) 15.9.2003
• « · · · M · · * · 9 99 9
• · « · · 9 9
• · « · • · 9 9 • · 9 1
• · • · · · o 9 • t * · « • · 9 • 9 9 9
v rámci logiky 350 RX. Paměť 650 FIFO RX pro ukládání dat může být také implementována v paměti 230 RX první úrovně.
B. Dekódování paketových hlaviček a generování hlavičky rámce LCP
Paketová hlavička je dekódována pro poskytnutí indikace identifikátoru ID rámce, ke kterému zpracovávaný paket patří, velikosti vlastních dat, a velikosti dat v rámci. Jakmile je paketová hlavička načtena do paměti 640 FIFO Headerln, je procesoru 160 RX zaslána indikace této události. Procesor RX zpracuje informace o paketové hlavičce a vygeneruje příkaz LCP obsahující informace potřebné pro přenos paketových dat. Takové informace obsahují adresu a délku paketu. Na konci zpracování hlavičky je do FIFO 410 HeaderOut zapsán deskriptor, případně sada deskriptorů, a je sepnuta indikace.
C. Přenos dat v kontextu RX LCP Context
Deskriptory jsou z FIFO 410 HeaderOut načteny do stroje 360 RX LCP, a poté dekódovány. Deskriptory obsahují číslo LCP, adresu paketu, délku dat paketu a zdrojovou adresu dat, která mají být přenesena do paměťového subsystému 210 adaptéru 80. Stroj 360 RX LCP využívá informace o kontextu LCP Context k vygenerování cílové fyzické adresy (nebo adres, pokud dojde k překročení rozsahu stránky), na kterou má být proveden zápis do paměti 60 hostitelského počítačového systému, a zahájí přenos DMA pro zápis dat.
D. DMA transakce realizované systémem ISOC
Systém 120 ISOC se snaží optimalizovat transakce na
86334 (2786334_CZ.doc) 15.9.2003 sběrnici 70 výběrem odpovídajících sběrnicových příkazů a prováděním co nejdelších sekvencí.
V jakémkoliv okamžiku může adaptér 80 současně vykonávat jednu nebo více následujících akcí: zpracování a alokace vyrovnávací paměti pro kanál LCP X; inicializace vnitřní služby zápisu dat pro kanál LCP A; vykonávání načítání DMA dat pro poslední rámec kanálu LCP B; zpracování části rámce pro paket z kanálu LCP C; a přijímání paketů pro kanál LCP D.
K minimalizaci režie procesoru 160 RX a procesoru 150 TX při zpracovávání paketů slouží paketová asistenční logika 600 sestávající z logiky fragmentace rámců, logiky pro výpočet kontrolního součtu a CRC a logiky pro zpracování multicastingu.
Nyní popíšeme detailně datový tok mezi strojem 310 TX LCP a strojem 360 RX LCP. Oba porty TX LCP a RX LCP používají vyrovnávací paměti přenos dat a deskriptorové struktury, které odkazují na tyto vyrovnávací paměti. Deskriptorové struktury se používají ke správě datových vyrovnávacích pamětí mezi poskytovatelem dat a konzumentem dat a k vracení prázdných datových vyrovnávacích pamětí, aby mohly být znovu použity poskytovatelem. Deskriptory odkazují na vyrovnávací paměti, a to buď v závislosti na jejich fyzické adrese nebo v závislosti na jejich virtuální adrese.
Kánaly TX LCP zodpovídají za přenos dat z paměti 60 hostitelského počítače do vyrovnávacích pamětí systému 120 ISOC. Ostatní vrstvy logiky zodpovídají za přenos dat z vyrovnávacích pamětí systému 120 ISOC do síťové architektury 30. Kanály RX LCP zodpovídají za přenos dat ze
86334 (2786334_CZ.doc) 15.9.2003 ·· ···· síťové architektury 30 do paměti 60 hostitelského počítače.
Stroj 310 TX LCP a stroj 3 60 RX LCP j sou schopny obsloužit relativně velký počet kanálů LCP. Každý kanál LCP má sadu parametrů, které obsahují informace specifické pro daný kanál LCP. Tyto informace obsahují konfiguraci kanálu, aktuální stav a status. Správce 130 LCP nastavuje kontext 140 LCP přiřazený kanálu během inicializace kanálu. Během kanálové operace je obsah kontextu LCP 140 aktualizován výhradně systémem 120 ISOC. Kontexty 140 se ukládají do kontextové tabulky paměťového subsystému 210 adaptéru 80. Přístup ke kontextu 140 LCP kanálu LCP se provádí podle čísla LCP. Kanály TX LCP a RX LCP používají různé kontextové struktury.
Vyrovnávací paměti pro přenos dat jsou realizovány jako vyhrazené oblasti v paměti 60 hostitelského počítačového systému 10. Data určená k vysílání jsou uložena ve vyrovnávacích pamětech pro vysílání. Stroj 310 TX LCP přenese data umístěná v těchto vyrovnávacích pamětech do vyrovnávacích pamětí systému 120 ISOC. Příchozí data přijímaná ze síťové architektury 30 jsou strojem 360 RX LCP přenášena do vyrovnávacích pamětí umístěných v paměti 60 hostitelského počítačového systému 10 . Vlastnictví vyrovnávacích pamětí je střídavě předáváno mezi hostitelským počítačovým systémem 10 a systémem 120 ISOC. Pořadí událostí v kanálech LCP TX je následující:
A. Software na hostitelském počítačovém systému 10 naplní vyrovnávací paměti umístěné v paměti 60 hostitelského počítačového systému 10 daty, která mají být vysílána ,Β. Software potvrdí systému 120 ISOC skutečnost, že jsou data ve vyrovnávací paměti připravena k vysílání;
86334 (2786334_CZ.doc) 15.9.2003
C. Systém 120 ISOC přečte data z vyrovnávací paměti; a
D. Systém 120 ISOC sdělí softwaru identifikaci vyrovnávacích pamětí hostitelského počítačového systému 10, jejichž obsah byl již načten a které mohou být znovu použity softwarem běžícím na hostitelském počítačovém systému 10 pro přenos nových dat.
Pořadí událostí v kanálech LCP RX je následující:
A. Software na hostitelském počítačovém systému 10 připraví vyrovnávací paměti, do kterých systém 120 ISOC může zapisovat přijímaná data;
B. Software potvrdí systému ISOC 120, že jsou v paměti 60 hostitelského počítačového systému připraveny volné vyrovnávací paměti;
C. Systém 120 ISOC zapíše data do vyrovnávací paměti; a
D. Systém 120 ISOC sdělí softwaru běžícím na hostitelském počítačovém systému 10 identifikaci vyrovnávacích pamětí, které byly naplněny přijatými daty, která mohou být zpracována tímto softwarem.
Když software provádí přípravu vyrovnávací paměti k použití systémem ISOC 120, informace o vyrovnávací paměti se předávají prostřednictvím adresy Doorbell Address. Informace vztahující se k vyrovnávacím pamětem používaným systémem 120 ISOC se vrací zpět softwaru prostřednictvím aktualizace statusu nebo prostřednictvím fronty ukončení. Pro kanály TX LCP vyrovnávací paměti obsahují data a hlavičky, které jsou přenášené strojem 310 TX LCP do systému 120 ISOC a zpracovávané na jeden nebo více paketů určených k vysílání do síťové architektury 30. Procesor 150 TX systému 120 ISOC používá hlavičku k vygenerování hlavičky paketu určeného k vysílání do síťové architektury 30. Pro kanály RX LCP jsou volné vyrovnávací paměti přiřazeny
86334 (2786334_CZ.doc) 15.9.2003 • A AAAA AAA • A »4 A AA A A A A A A A AA A AAA A
AAAA AA AA AA AA softwarem na hostitelském počítačovém systému 10 adaptéru (30.. Adaptér 80 naplní vyrovnávací paměti přicházejícími pakety.
Deskriptory mají definovány datové struktury známé jak systému 120 ISOC, tak softwaru na hostitelském počítačovém systému 10. Software používá deskriptory k přenosu řídicích informací do systému 120 ISOC. Řídicí informace mohou mít formu deskriptoru rámce, deskriptoru ukazatele nebo deskriptoru větve, a to v závislosti na požadované funkci. Deskriptorová logika softwaru a systému 120 ISOC generuje a modifikuje deskriptory v souladu s požadovanou mírou řízení.
Ve stručnosti tuto míru popíšeme. Deskriptor rámce obsahuje popis paketu (např. délku data délku hlavičky, atd.). Deskriptor ukazatele obsahuje popis umístění dat. Deskriptor větve obsahuje popis deskriptoru (např. linkové seznamy deskriptorů). Informace obsažené v deskriptorech používá software na hostitelském počítačovém systému 10 k řízení operací přenosu dat prováděných strojem 310 TX LCP a strojem 360 RX LCP. Informace určené ke zpracování rámců a generování hlavičky paketu TX jsou umístěné v hlavičce rámce. S odkazem na Obrázek 9k, deskriptory mohou být poskytovány ve formě jednoduché tabulky 700 s kontextem 140 LCP Context ukazujícím na hlavičku tabulky 700. S odkazem na Obrázek 9B, deskriptory mohou být umístěny ve struktuře propojených deskriptorových tabulek 720-740. Po inicializaci kanálu LCP ukazuje kontext 140 LCP na hlavičku první deskriptorové tabulky 720 ve struktuře. Deskriptory 750-770 větví se používají ke generování propojovaných seznamů tabulek 720-740, kde deskriptor 750-770 větve na konci deskriptorové tabulky ukazuje na začátek další tabulky 720740. S odkazem na Obrázek 9B, deskriptory větve mohou být používány i ke generování cyklických vyrovnávacích pamětí,
86334 (2786334_CZ.doc) 15.9.2003 • · · ·
- 32 kde deskriptor 710 větve na konci tabulky 700 odkazuje na začátek té samé tabulky 700. Cyklickou vyrovnávací paměť je možné používat v cestě pro příjem. V takovém případě je kontext 140 LCP Context inicializován tak, aby ukazoval na hlavičku vyrovnávací paměti. Tato vyrovnávací paměť se přeorganizuje když systém 120 ISOC dosáhne svého konce. Software na hostitelském počítačovém systému 10 může zapisovat deskriptory do paměti 60 hostitelského počítačového systému 10 (jak pro cestu pro vysílání, tak pro cestu pro příjem) nebo do paměti 250 adaptéru 80 (pouze pro cestu pro vysílání). Zápis deskriptorů do paměťového subsystému 210 adaptéru 80 zahrnuje operaci vstupu a výstupu softwaru běžícího na hostitelském počítačovém systému 10 adaptéru 80 a zabírá paměťový subsystém 210 adaptéru 80. Zápis deskriptorů do paměti 60 hostitelského počítačového systému 10 vyžaduje, aby adaptér 80 mohl přistupovat do paměti 60 hostitelského počítačového systému 10 kdykoliv, když potřebuje přečíst nový deskriptor. Umístění softwarových deskriptorů definuje správce 130 LCP manager nezávisle pro jednotlivé kanály LCP. Umístění deskriptorů je definováno v souladu s požadavkem optimalizace výkonu systému. Deskriptory poskytují při vytváření front flexibilitu.
Stroj 310 TX LCP a stroj 360 RX LCP používaj í pro přístup k deskriptorům v deskriptorových tabulkách a vyrovnávacích pamětech určených k ukládání dat adresy. Adresa může být buď fyzická nebo virtuální. Termín fyzická adresa označuje adresu, kterou může systém 120 ISOC předat sběrnici 70 ve tvaru, v jakém je. Termín virtuální adresa označuje adresu, která není fyzická a kterou používá software nebo mikrokód. Virtuální adresu je třeba mapovacím procesem transformovat na adresu fyzickou. Adresa používaná
86334 (2786334_CZ.doc) 15.9.2003 • · • · · 444444 4 4 • 44 4 4444 • 44 44 44 44 strojem 310 TX LCP a strojem 360 RX LCP může mít tyto různé zdroje dle následujícího seznamu: ukazatel v kontextu 140 LCP Context kanálu, ukazatel v deskriptorech připravených softwarem běžícím na hostitelském počítačovém systému 10, ukazatel v deskriptorech připravených procesorem 160 RX, a ukazatel v deskriptorech připravených procesorem 150 TX (používaný pro návrat zprávy o ukončení). Ukazatel může ukazovat na deskriptor nebo na vyrovnávací paměť pro ukládání dat. Každá adresa používaná strojem 310 TX LCP nebo strojem 360 RX LCP může být volitelně namapována na jinou adresu používanou jako fyzická adresa na sběrnici 70. Mapování adres provádějí stroj 310 TX LCP a stroj 360 RX LCP. Systém 120 ISOC používá lokální paměť 210 k ukládání překladových tabulek. Správce 130 LCP zapisuje během registrace paměti překladové tabulky do adaptéru 80. Mapování adres umožňuje používat virtuální adresaci pro vyrovnávací paměti nebo deskriptorové tabulky. Virtuální adresace umožňuje správu vyrovnávacích pamětí, které jsou fyzicky umístěny ve více stránkách. Mapování adres také umožňuje hostitelskému počítačovému systému, aby pracoval přímo s aplikacemi pomocí virtuálních adres bez požadavku na překladový procesor pro software.
S odkazem na obr. 10, který zobrazuje obraz 800 vyrovnávací paměti 880 tak, jak se jeví softwaru na hostitelském počítačovém systému 10. Obrázek zobrazuje i fyzické mapování 810 adres, které se používá pro přístup do paměti 60 hostitelského počítačového systému 10. Virtuální ukazatel 820 ukazuje na místo ve vyrovnávací paměti. Tato vyrovnávací paměť je ukázkou virtuální vyrovnávací paměti zabírající několik nesouvislých stránek 840-870 v paměti 60 hostitelského počítačového systému 10 . Stroj 310 TX LCP a stroj 360 RX LCP provádějí mapování překladem adresy podle
86334 (2786334_CZ.doc) 15.9.2003 φ··· ·· φφφφ
• · · · • φφφφφ překladové tabulky 830. Překladová tabulka obsahuje ukazatel-fyzickou adresu na začátek každé vyrovnávací paměti 840-870 namapované z virtuální vyrovnávací paměti 880. Mapování adres v adaptéru 80 umožňuje flexibilitu při mapování deskriptorů a datových vyrovnávacích pamětí v paměti 60 hostitelského počítačového systému 10 . Mapování adres v adaptéru 80 také umožňuje přímé připojení k softwarovým vyrovnávacím pamětem, které používají virtuální adresy, aniž by se po softwaru běžícím na hostitelském počítačovém systému 10 požadovalo, aby prováděl překlad adres na fyzické adresy.
Každý paket, který adaptér 80 zapíše do paměti 60 hostitelského počítačového systému 10 má přiřazený status. Status umožňuje synchronizaci mezi adaptérem 80 a softwarem na hostitelském počítačovém systému 10. Status se může používat k indikaci různé úrovně spolehlivosti paketů. Systém 120 ISOC poskytuje následující zpětně zapisované statuty: status Transmit DMA Completion indikuje skutečnost, že data v paketu TX byla načtena do adaptéru 80; status Reliable Transmission se vrací jako indikátor přenosu dat do síťové architektury 3 0; status Receive DMA Completion indikuje ukončení přenosu přijatých dat do paměti 60; status Reliable Reception indikuje příjem vyslaného paketu uzlem v síťové architektuře 30, kterému byl určen.
Deskriptor rámce TX obsahuje 2-bajtové pole udávající status. Zpětně zapsaný status znamená, že je status transakce zapsán zpět do deskriptoru. Status obsahuje bit ukončení, ke kterému může přistupovat software spuštěný na hostitelském počítačovém systému 10. Jestliže software spuštěný na hostitelském počítačovém systému 10 nalezne nastavený bit ukončení, může znovu použít vyrovnávací paměti
86334 (2786334_CZ.doc) 15.9.2003 • · · · • · ·· · · · přiřazené rámci definovanému příslušným deskriptorem rámce.
Fronta ukončení je implementována jako kanál RX LCP. Kanál LCP používaný frontou ukončení je flexibilní a má všechny vlastnosti, které lze implementovat pomocí kanálu RX LCP. Procesor 150 TX a procesor 160 RX generují zpětně zapisované statuty: status Reliable Transmission, status Reliable Reception, status Receive DMA Completion a status Transmit DMA Completion. V jiných situacích se používají jiné identifikace týkající se rámce. Např. v případě statutu Reliable Transmission procesor 150 TX přečte interní registry indikující status vysílání paketu. V případě statutu Reliable Reception získá procesor 160 indikaci ukončení ve formě přijatého paketu, který obsahuje potvrzení. V případě statutu Receive DMA Completion procesor 160 RX využívá informaci o ukončení rámce. V případě Reliable Reception statutu Transmit DMA Completion procesor 150 TX indikuje příjem rámce pro přenos v adaptéru 80. Frontu ukončení může používat jeden kanál TX LCP nebo RX LCP nebo ji může sdílet více kanálů. Mikrokód v adaptéru 80 aktualizuje frontu statutů inicializací deskriptoru rámce ve frontě příkazů stroje 360 RX LCP. S odkazem na obr. 11, status se přenáší do paměti 60 hostitelského počítačového systému 10 prostřednictvím statutu ukončení 900 LCP obsahujícím frontu 920 ukončení. Fronta 920 ukončení je souvislá (buď fyzicky nebo virtuálně) a je umístěná v paměti 60 hostitelského počítačového systému 10. Fronta ukončení může být umístěná například ve spojité vyrovnávací paměti. Položky 930 ve frontě ukončení mají přednostně pevnou velikost. Každá položka obsahuje ukazatel 940 na začátek vyrovnávací paměti 950 asociované s kanálem 910 LCP pro příjem. Vyrovnávací paměť je naplněna paketem 960, který je asociován se statutem ukončení.
86334 (2786334_CZ.doc) 15.9.2003 • · · • · · • · · · • ·· · ·· ··· ·
Postupné vzájemné ověřování mezi softwarem TX a adaptérem zahrnuje port TX LCP a port ukončení RX LCP. Každý přenosový kanál LCP obsahuje následující datové struktury:
Položka Doorbell Address, implementovaná jako v paměti mapovaná adresa, informuje adaptér 80 o inkrementálních požadavcích na zpracování deskriptorů a dat. Každý proces má jedinečný přístup k adrese mapované do jedné stránky paměti, která se používá pro přístup Doorbell.
Položka kontext LCP Context v paměťovém prostoru 210 adaptéru, která obsahuje atributy LCP a pole obsahující statut.
Struktura deskriptorů vysílání. Tato struktura může být umístěna na více fyzických stránkách umístěných v paměti 60 hostitelského počítačového systému 10. Jestliže se pro deskriptory používá virtuální adresace, používá se pro přechod z jedné stránky na druhou překladová tabulka. Jestliže se pro deskriptory používá fyzická adresace, jsou pro přechod z jedné stránky na druhou používány deskriptory větve. Deskriptory vysílání obsahují pole statutu, které může být po přenosu všech dat vztahujících se k deskriptoru do adaptéru 80 aktualizováno.
Vyrovnávací paměti pro vysílaná data zafixovaná v paměti 60 hostitelského počítačového systému 10 ukazují na deskriptory ukazatelů. Jestliže se pro vyrovnávací paměti používá virtuální adresace, provádí překladová tabulka konverzi ukazatele na fyzické adresy používané adaptérem 80 pro přístup k paměti 60 hostitelského počítačového systému 10.
86334 (2786334_CZ.doc) 15.9.2003 φφφφ * φ ·» φφ φφφφφφφ φ • φ φφφφ φφφ φ φ φφφ φφφ φφφ φ φφ φφ φφφφφ φφφφ φφ φφ φφ φφ φ φ φφφφ
Překladová tabulka a ochranné bloky v paměťovém prostoru 210 adaptéru se používaj í k mapování adres.
S odkazem na obr. 12, tok vysílaných paketů je realizován tak, že v kroku 1000 software 1020 na hostitelském počítačovém systému 10 naplní vyrovnávací paměť 1030 daty, která mají být vysílána. V kroku 1010 software 1020 aktualizuje deskriptory 1040. Deskriptory 1040 mohou být umístěny bud’ v paměti 60 hostitelského počítačového systému 10 nebo v paměťovém subsystému 210 adaptéru 80. V kroku 1050, software 1020 „zazvoní na adresu Doorbell Address, aby upozornili adaptér 80 na to, že nová data jsou připravena pro vysílání. V kroku 1060 adaptér 80 řídí obsluhu požadavků přicházejících z různých kanálů LCP. Jestliže kanál zvítězí v rozhodovacím procesu, přečte si adaptér 80 nový deskriptor 1040. V kroku 1070 si adaptér 80 načte data. V kroku 1080 se data vysílají do síťové architektury 30. V kroku 1090 se v deskriptorech 1040 nebo ve frontě ukončení aktualizuje status.
Kanál TX LCP může používat překlad adres při přístupu k datovým vyrovnávacím pamětem. V takovém případě je vyrovnávací paměť tvořena více stránkami paměti. Co se týče procesu, jsou tyto stránky v souvislém virtuálním paměťovém prostoru. Pokud ovšem vezmeme v úvahu i adaptér 80, mohou být tyto stránky uloženy v nesouvislém paměťovém prostoru. Struktura statutu ukončení obsahuje informace indikující status vysílaných rámců. To je implementováno jako oddělený kanál LCP. Deskriptor rámce, který je prvním deskriptorem pro každý rámec, obsahuje volitelné pole udávající status, které může být po přenosu rámce na adaptér 80 aktualizováno.
86334 (2786334_CZ.doc) 15.9.2003 • · · · ···· «· · · · · • · · · · · · • · « · · 9 · « · ··· · · 9 · • » · · 9 · 9 • 9 · · 9 9 · *
S odkazem na obr. 13, v příkladu toku dat kanálem LCP pro vysílání jsou deskriptory 1100 umístěny v paměti 60 hostitelského počítačového systému 10. Přístup k deskriptorům 1100 a vyrovnávacím pamětem 1110, ve kterých jsou uloženy pakety 1120, vyžaduje překlad adres dle překladové tabulky 1130 umístěné v adaptéru 80. Vyrovnávací paměti 1110 používají spojitý prostor ve virtuálním adresovém prostoru softwaru běžícím na hostitelském počítačovém systému 10. Každý rámec 1120 je popsán dvěma druhy deskriptorů: deskriptorem 1140 rámce poskytujícím informace týkající se paketů, a deskriptorem 1150 ukazatele, ukazujícím na vyrovnávací paměť 1110 obsahující data 1120. Každý paket obsahuje hlavičku 1160 a vlastní data 1170, umístěné v téže vyrovnávací paměti 1180.
Transakce 1190 zápisu na adresu Doorbell Address aktualizuje počet 1200 slov dostupných pro použití adaptérem 8J3. Tato informace se ukládá do kontextu 140 LCP Context. Kontext 140 LCP Context pro vysílání obsahuje ukazatel 1210 na začátek vyrovnávací paměti 1110 obsahující data, která mají být přenesena. Jestliže kanál LCP zvítězí v interním rozhodovacím procesu o výběru kanálu prováděným systémem 120 ISOC, systém 120 ISOC přečte deskriptory kanálu LC v souladu s ukazatelem 1210 uloženém v kontextu 140 LCP Context. Virtuální adresy, a to jak pro deskriptory 1100, tak pro vyrovnávací paměti 1110 kanálu LCP, jsou překládány na fyzické adresy podle překladové tabulky 1130 umístěné v paměťovém subsystému 210 adaptéru 80. Překladová tabulka 1130 je aktualizována správcem 140 LCP Manager během registrace vyrovnávacích pamětí. Systém 120 ISOC načte data a hlavičky rámců z vyrovnávacích pamětí 1110 do adaptéru 80. Hlavičky 1160 rámců jsou poté nahrazeny v systému 120 ISOC hlavičkou srozumitelnou pro síťovou architekturu 30.
86334 (2786334_CZ.doc) 15.9.2003
- 39 Hlavička paketu a odpovídající data se pak vyšlou do síťové architektury 30.
*«·· ·· 0000 • 0 · 000 · · • 0 · · ·· 0« • < 0 0 I ·0
Port RX LCP se používá pro přenos přicházejících dat ze systému 120 ISOC do paměti 60 hostitelského počítačového systému 10 používané softwarovou aplikací běžící na hostitelském počítačovém systému 10. Kanály RX LCP jsou plně řízeny prostřednictvím deskriptorů inicializovaným softwarem běžícím na hostitelském počítačovém systému 10. Kanály RX LCP používají jak deskriptory inicializované softwarem běžícím na hostitelském počítačovém systému 10, tak deskriptory inicializované systémem 120 ISOC. Deskriptory inicializované systémem 120 ISOC se používají k řízení činnosti kanálu LCP pro definování umístění přijatého rámce v paměti 60 hostitelského počítačového systému 10. Deskriptory inicializované softwarem běžícím na hostitelském počítačovém systému 10 mohou být použity k definování umístění vyrovnávacích pamětí, jestliže vyrovnávací paměti nebyly definovány mapováním v překladové tabulce. Při implementaci postupného vzájemného ověřování mezi softwarem na hostitelském počítačovém systému 10 a adaptérem 80 jsou přednostně použity dva kanály LCP: kanál RX LCP pro obsluhu přijímaných datových struktur a kanál LCP RX pro obsluhu fronty obsahující statuty ukončení. Status ukončení používá adaptér 80 k tomu, aby softwaru běžícím na hostitelském počítačovém systému 10 signalizoval skutečnost, že byl dokončen přenos rámců do paměti 60 hostitelského počítačového systému 10 . Položky jsou vkládány do struktury fronty ukončení sekvenčně (na po sobě jdoucí adresy). Každá položka statutu ukončení obsahuje adaptérem 80 označeno a softwarem pole, které je na hostitelském počítačovém systému 10 sdíleno jako kontrola toho, že vlastnictví položky bylo z adaptéru 80 přeneseno do softwaru
86334 (2786334_CZ.doc) 15.9.2003 • 9*9 »· ·ν«· • 4 *9 • β »·«···« · • · ·<····· • * · · · «·« « · · · 9 9 ·· Φ 9 9 9 9 <94 9 ·» ·· ·· ·· na hostitelském počítačovém systému 10. Více kanálů LCP může využívat jednu frontu obsahující statuty ukončení. Sdílení fronty obsahující statuty ukončení více kanály RX LCP zajišťuje systém 120 ISOC.
Kanál RX LCP vyžaduje informace pro indikaci cílové adresy přicházejícího paketu. Systém 120 ISOC disponuje dvěma mechanismy adresace pro nalezení umístění volných vyrovnávacích pamětí.
Režim přímé adresace se týká kanálů LCP, které nepoužívají deskriptory ukazatele jako odkazy na vyrovnávací paměť. Cílová adresa je definována buď mikrokódem v systému 120 ISIC nebo je načtena z kontextu 140 LCP Context.
Režim nepřímé adresace se týká kanálů LCP, které spravují ukazatele na datové vyrovnávací paměti v deskriptorových strukturách. Deskriptory jsou přednostně umístěny v paměti 60 hostitelského počítačového systému 10 paměti 60 hostitelského počítačového systému 10.
Přímá adresace podstatně zkracuje latenci při zpracování příchozího paketu adaptérem 80. Vyžaduje registraci vyrovnávací paměti správcem 130 LPC Manager, včetně uložení informace o překladu virtuálních adres na adresy fyzické v adaptéru 80. Software běžící na hostitelském počítačovém systému 10 zapisuje do dvou kanálů Doorbell, čímž indikuje počet slov přidaných do vyrovnávací paměti, které mohou být využity kanálem. V režimu přímé adresace se adresa cílové vyrovnávací paměti určuje následovně:
A. Adresa A je zpracovávána jako příkaz pro stroj
LCP.
86334 (2786334_CZ.doc) 15.9.2003 ···· ·· eto • · » ♦ » · * to •to · f · ··· · * · • 4 « · · v · r •toto to ·· ·· ··
B. (Volitelné) Adresa A je mapována na adresu A'.
C. Adresa A' (jestliže byl vykonán krok B) nebo adresa A (jestliže nebyl vykonán krok B) je bázovou adresou cílové vyrovnávací paměti.
V režimu nepřímé adresace používá adapter 80 deskriptory k nalezení adresy datové vyrovnávací paměti. Deskriptory jsou spravovány softwarem na hostitelském počítačovém systému 10. Termín „nepřímá je zde používán s cílem zdůraznit skutečnost, že adaptér 80 provádí kvůli určení cílové adresy načtení dodatkové informace. Adaptér 80 přistupuje k této informaci za běhu. Nepřímá adresace snižuje rozsah paměti adaptéru 80 vyžadovaný k uložení překladových tabulek. Deskriptory jsou typicky umístěny v paměti 60 hostitelského počítačového systému 10. V režimu nepřímé adresace se adresa cílové vyrovnávací paměti určuje následovně:
A. Adresa A je zpracovávána jako příkaz pro stroj LCP.
B. (Volitelné) Adresa A je mapována na adresu A'.
C. Adresa A' (jestliže byl vykonán krok B) nebo adresa A (jestliže nebyl vykonán krok B) je adresou deskriptoru ukazatele.
D. Z deskriptoru se načte ukazatel na vyrovnávací paměť, adresa B.
E. (Volitelné) Adresa B je mapována na adresu B'.
F. Adresa B' (jestliže byl vykonán krok E) nebo adresa B (jestliže nebyl vykonán krok E) je bázovou adresou cílové vyrovnávací paměti.
Každý kanál RX LCP používá následující datové struktury:
86334 (2786334_CZ.doc) 15.9.2003 • ♦♦·· ·
• ·· · • · o » • · · 9 · * 9 • *999
9 9 9 i* ·
Přístup k Doorbell, implementovaná jako adresa mapovaná do paměti; informuje adaptér 80 o dodatkových datech nebo deskriptorech dostupných adaptéru 80 pro zápis dat.
Položka kontext LCP Context v paměťovém prostoru 210 adaptéru 80, která obsahuje atributy LCP, stav, konfiguraci a pole obsahující statut.
Deskriptory ukazující na vyrovnávací paměti určené pro použití v režimu nepřímé adresace.
Vyrovnávací paměť ve spojitém virtuálním adresovém prostoru v paměti 60 hostitelského počítačového systému
10.
Překladová tabulka a ochranné bloky v paměťovém· prostoru 210 adaptéru pro mapování adres.
Tok paketu při příjmu závisí na následujících charakteristikách:
Přímý nebo nepřímý režim adresace.
V nepřímém režimu adresace jsou deskriptory umístěny v paměti 60 hostitelského počítačového systému 10.
V přímém režimu mapování adres může a nemusí být použito mapování adres během přístupu k deskriptorům.
Mapování adres může a nemusí být používáno při přístupu k vyrovnávacím pamětem.
V nepřímém režimu ochrana adres může a nemusí být používána během přístupu k deskriptorům.
Ochrana adres může a nemusí být používána během přístupu k vyrovnávacím pamětem.
86334 (2786334_CZ.doc) 15.9.2003 • e • · · · • *··· ·· ·· r, · · · · · « · · « i* o ···«··· e · e · > ··· e· · · • · * · « v·*· a £ » 4 · Φ (»9 9 9 »9
Tyto charakteristiky se nastavují pro každý kanál LCP jako část kontextu 140 kanálu během inicializace LCP.
S odkazem na obr. 14, tok přijímaných paketů zahrnuje v kroku 1300 přípravu volné vyrovnávací paměti 1320 pro přijímaná data prováděnou softwarem 1310 na hostitelském počítačovém systému 10. V kroku 1330 v nepřímém režimu adresace software 1310 na hostitelském počítačovém systému 10 aktualizuje deskriptory 1340. Deskriptory 1340 jsou umístěné v paměti 60 hostitelského počítačového systému 10. V kroku 1350 software na hostitelském počítačovém systému 10 „zazvoněním na Doorbell Address upozorní adaptér 80 na volný prostor ve vyrovnávacích pamětech. V nepřímém režimu adresace poskytuje Doorbell indikátory nových deskriptorů 1340. V přímém režimu adresace poskytuje Doorbell indikátory dodatečného volného prostoru ve vyrovnávacích pamětech. V této fázi je adaptér 80 připraven pro přenos přijímaných dat ze síťové architektury 30 do paměti 50 hostitelského počítačového systému 10 . Kroky 1300, 1330 a 1350 se opakují kdykoliv software 1310 na hostitelském počítačovém systému 10 přidá volné vyrovnávací paměti kanálu RX LCP. Systém 120 ISOC opakuje následující kroky pro každý přijatý paket. V kroku 1360 přijímá adaptér 80 data. V kroku 1370 v nepřímém režimu adresace čte adaptér 80 deskriptory 1340 ukazující na umístění volných vyrovnávacích pamětí 1320. V kroku 1380 se data a hlavičky zapisují do vyrovnávacích pamětí 1340. V kroku 13 90 se aktualizuje status ve frontě ukončení.
S odkazem na obr. 15, v příkladu toku dat kanálem LCP pro vysílání se nepoužívají deskriptory ukazatelů. Dále se nepoužívají překladové tabulky. Datové vyrovnávací paměti
86334 (2786334_CZ.doc) 15.9.2003 • 9 ·····♦· • · * · 9999*9 9 9
9 9 9 ····· •·· · 9 9 99 99 9 9
1400 používají spojitý prostor ve fyzickém adresovém prostoru na hostitelském počítačovém systému 10, přičemž používají vyrovnávací paměti 1400. Jak hlavička, tak vlastní data jsou zapisovány do vyrovnávací paměti 1400. Transakce 1410 zápisu na adresu Doorbell Address aktualizuje datový prostor, který je dostupný pro adaptér 80 jako využitelný. Informace jsou ukládány do kontextu 140 LCP Context. Kontext 140 LCP Context pro příjem/ukončení obsahuje ukazatel 1420 na začátek vyrovnávací paměti 1400 a offset 1430 následující/současné adresy použité pro zápis nových položek dat/ukončení. Když adaptér 80 přijme paket, inkrementuje offset 1430 na následující umístění paketu a aktualizuje údaj o dostupném prostoru pro ukládání dat. Do kanálu 1450 LCP se přidá položka 1440 ukončení po dokončení příjmu rámce, po vypršení času určeného pro příjem rámce (frame time-out) nebo při výskytu jakékoliv události týkající se rámců, která vyžaduje pozornost klienta 100 LCP Client. Položka 1440 ukončení obsahuje všechny informace, které klient 100 LCP Client potřebuje k lokalizaci rámce v datové vyrovnávací paměti 1400 LCP. Software na hostitelském počítačovém systému 10 používá pole umístěné v položce 1440 ukončení k rozpoznání toho, že mu bylo přiděleno vlastnictví položky 1440 ukončení.
Systém 120 ISOC umožňuje, aby byly kanály LCP používány pro přesun dat mezi paměťovým subsystémem 210 adaptéru 80 a pamětí 60 hostitelského počítačového systému 10. Po přenos dat z paměti 60 hostitelského počítačového systému 10 do adaptéru 80 se používá kanál pro vysílání. Pro přenos dat z adaptéru 80 do paměti 60 hostitelského počítačového systému 10 se používá kanál pro příjem. Při přenosu dat z paměti 60 hostitelského počítačového systému 10 do adaptéru 80 obsahuje deskriptor rámce cílovou adresu na
86334 (2786334_CZ.doc) 15.9.2003 «444 · · 4 4 ·· ···* • « · · · · » * · • ť *4 044444 · · • * ·4 · ·494
9·· Λ · 4 4· ·· * · sběrnici 340 systému 120 ISOC. Tato adresa definuje umístění vlastních dat. Hlavička paketu se přenáší obvyklým způsobem. To umožňuje nahrávání tabulek a kódu do paměťového prostoru systému 120 ISOC. Při přenosu dat z paměťového prostoru systému 120 ISOC do paměti 60 hostitelského počítačového systému 10 prostřednictvím kanálu inicializuje procesor 160 RX deskriptor. Tento deskriptor obsahuje informace o cílové adrese v paměti 60 hostitelského počítačového systému 10 a o zdrojové adrese.
S odkazem na obr. 16, obsahuje systém 120 ISOC, jak bylo uvedeno dříve, logiku 1500 RX a logiku 1510 TX. Logika 1500 RX obsahuje řadu registrů 1520-1540 určených k obsluze přerušení. Logika 1510 TX podobně obsahuje řadu registrů 1550-1570 určených k obsluze přerušení. Registry 1550-1570 logiky 1510 TX obsahují registr 1570 udávající status, registry 1560 masky přerušení a registry 1550 přerušení hostitelského počítačového systému 10. Registry 1520-1540 logiky 1500 RX obsahují registr 1540 udávající status, registry 1530 masky přerušení a registry 1520 přerušení hostitelského počítačového systéme 10 . Registry logiky 1510 TX a registry logiky 1500 RX jsou zapojeny podobným způsobem. Přerušení 1580 na úrovni systému 120 ISOC jsou přerušení směřovaná na hostitelský počítačový systém 10. Linka pro zpracování přerušení 1580 obsahuje logické OR na těch bitech registrů 1540 a 1570 udávajících status, které nejsou maskovány příslušnými registry 1530 nebo 1560, které obsahují masku přerušení. Tato přerušení mají následující původ vzniku: ukončení 1590 operace LCP; volání z procesoru 150 TX; volání z procesoru 160 RX; události detekované logikou 1510 TX a události detekované logikou 1500 RX. Volání z procesoru 150 TX a volání z procesoru 1500 RX jsou generována zápisem do příslušných registrů volání TX nebo
86334 (2786334_CZ.doc) 15.9.2003 • · · · · · • · · ·
-46-.
počítačového systému 10. hostitelskému počítačovému
RX. V logice 1510 TX registry 1560 masky přerušení řídí průchod přerušení z příslušných registrů 1540 udávajících statut do procesoru 150 TX a registry 1550 masky přerušení řídí průchod přerušení do hostitelského počítačového systému 10. Obdobně v logice 1500 RX registry 1530 masky přerušení řídí průchod přerušení z příslušných registrů 1540 udávajících statut do procesoru 160 RX a registry 1520 masky přerušení řídí průchod přerušení do hostitelského Toto uspořádání umožňuje systému 10 zpracovat všechna možná přerušení generovaná událostmi v systému 120 ISOC. Toto uspořádání umožňuje oznámit přerušením hostitelskému počítačovému systému 10 takové chyby, kdy není očekávána obsluha události mikrokódem v systému 120 ISOC, protože je úloha příliš komplikovaná na to, aby byla obsloužena mikrokódem, nebo v okamžiku výskytu chyby došlo k výpadku mikrokódu. Toto uspořádání rovněž umožňuje hostitelskému počítačovému systému 10 vykonávat dozor nad mikrokódem. V takovém případě je mikrokód zodpovědný za provádění akce, která následuje po oznámení chyby nebo události. Mikrokód vrací indikaci ukončení hostitelskému počítačovému systému 10 následně po obsluze výjimky. Přerušení pro procesor 150 TX se generuje jako logické OR nemaskovaných bitů registru 1570 udávajícího statut. Tento registr udávající statut je registrem přerušení na první úrovni, který nedefinuje podrobnosti příčiny vzniku přerušení. Procesor 150 TX si indikaci příčiny vzniku přerušení přečte z registru přerušení na druhé úrovni. Přerušení je smazáno zápisem čisté adresy do registru přerušení na druhé úrovni. Přerušení pro procesor 150 TX mají následující původ vzniku: všechna přerušení generovaná softwarem na hostitelském počítačovém systému £0; volání z procesoru 160 RX; události detekované logikou 1510 TX. Podobně přerušení pro procesor
86334 (2786334_CZ.doc) 15.9.2003 ·· · · »· · « · · · » · « ♦ » ♦ · · · ·«· • · · « ··»»·· * φ • * w · · · · ♦ · · * e · · < · · <· ·»
160 RX se generuje jako logické OR nemaskovaných bitů registru 1540 udávajícího statut. Tento registr udávající statut je registrem přerušení na první úrovni, který nedefinuje podrobnosti příčiny vzniku přerušení. Procesor 160 RX si indikaci příčiny vzniku přerušení přečte z registru přerušení na druhé úrovni. Přerušení je smazáno zápisem čisté adresy do registru přerušení na druhé úrovni. Přerušení pro procesor 160 RX mají následující původ vzniku: všechna přerušení generovaná softwarem na hostitelském počítačovém systému 10; volání z procesoru 150 TX; události detekované logikou 1500 RX.
V některých provedeních tohoto vynálezu může být procesor 150 TX dále zodpovědný za obsluhu chyb ohlašovaných logikou společnou kanálu pro vysílání a kanálu pro příjem. V jiných provedeních tohoto vynálezu může být procesor 160 RX zodpovědný za obsluhu chyb ohlašovaných sdílenou logikou.
V upřednostňovaných provedeních tohoto vynálezu se přerušení 1590 LCP předzpracovávají s cílem snížit výpočetní zatížení softwaru na hostitelském počítačovém systému 10. Informace o přerušení LCP se zapíší do pamětí 60 hostitelského počítačového systému 10 s cílem redukovat zpomalení softwaru způsobené opakovanými přístupy systému 120 ISOC. Vytváření nových indikátorů přerušení pro každý kanál LCP je blokována dokud není dokončena obsluha předchozích kanálových přerušení. Nyní si s odkazem na obr. 17 popíšeme podrobně zpracování přerušení LCP.
S odkazem na obr. 17, tok přerušení mezi systémem 120 ISOC a hostitelským počítačovým systémem 10 zahrnuje v kroku 1600 buď softwarovou aplikaci 1610 ve směru vysílání nebo procesor 160 RX ve směru příjmu provádějící nastavení bitu
86334 (2786334_CZ.doc) 15.9.2003
* • ··· 4 · • · 4 4 • 4 ·
* © • · 9 9
9 • · • ·· • · 9 9
9 * * 4 « A
« 4 · 4 · • » * ·
CompletionEventRequest v deskriptoru 1620, pro který je požadováno přerušení. Deskriptor 1620 se uloží do fronty deskriptorů 1630. V kroku 1640 po dokončení zpracování deskriptoru je indikace 1650 události ukončení odeslána do vyrovnávací paměti 1660 typu FIFO umístěné systému 120 ISOC, a to prostřednictvím řadiče přerušení systému 120 ISOC. V kontextu 140 LCP Context se nastaví bit EventMask. Indikátory události ukončení jsou uloženy ve frontě 1660 typu FIFO. V kroku 1670 po splnění předem definovaných podmínek, je systémem 120 ISOC na základě informací uložených v paměti 1660 typu FIFO vygenerován blok 1680 Interrupt Control Block (ICB). Stručně popíšeme předem definované podmínky. V kroku 1690 je blok 1680 ICB přenesen do pamětí 60 hostitelského počítačového systému 10 . Bloky 1680 ICB vygenerované systémem 120 ISOC jsou ukládány do formátované fronty 1700 v pamětí 60 hostitelského počítačového systému 10 . V kroku 1710 si Obslužná rutina 1720 přerušení v softwaru na hostitelském počítačovém systému 10 přečte blok 1680 ICB. V kroku 1730 Obslužná rutina 1720 přerušení odešle událost 1650 ukončení z bloku 1680 ICB do aplikace 1610. V kroku 1750 aplikace 1610 zapíše bit ClearEvenMask do registru Doorbell kanálu LCP a umožní tak příjem přerušení z kanálů.
Aktivní kanál LCP může během činnosti vygenerovat jednu nebo více událostí 1650 ukončení. Událost 1650 ukončení je vygenerována v okamžiku ukončení zpracování deskriptoru 1620, ve kterém je nastaven bit CompletionEventRequest. Operace vykonávaná systémem 120 ISOC po události ukončení se liší v závislosti na hodnotě bitu EventMask a bitu CompletionEvent v kontextu 140 LCP Context. Jestliže je bit EventMask smazán, odešle se indikace přerušení řadiči přerušení systému 120 ISOC a provede se nastavení bitu
86334 (2786334_CZ.doc) 15.9.2003 • «··· · · · · · · · · · • « · « «···«« · · • · · · · · · · · ««· » » »· *· * ·
EventMask systémem 120 ISOC. Jestliže je bit EventMask nastaven a bit CompletionEvent v daném kanálovém kontextu 140 LCP Context je smazán, není řadiči přerušení systému 120 ISOC odeslána indikace a provede se nastavení bitu EventMask systémem 120 ISOC. Jestliže jsou nastaveny oba bity - bit EventMask i bit CompletionEvent - v kanálovém kontextu 140 LCP Context, nebude provedena žádná akce. Bit EventMask se smaže během inicializace kanálu. Smaže se také poté, co se bit ClearEventMask zapíše do kontextu 140 kanálu prostřednictvím registru Doorbell.
Jestliže je bit CompletionEvent v kanálovém kontextu 140 LCP Context nastaven a bit masky je smazán díky nastavení bitu ClearEventMask v registru Doorbell, odešle se indikace přerušení řadiči přerušení systému 120 ISOC a provede se smazání bitu CompletionEvent systémem 120 ISOC. Události ukončení jsou zaznamenávány řadičem přerušení do paměti 1660 typu FIFO. Každá položka v paměti 1660 typu FIFO obsahuje pole pro popis čísla kanálu LCP generujícího událost.
Blok 1680 ICB je datová struktura přenášená systémem 120 ISOC do paměti 60 hostitelského počítačového systému 10 prostřednictvím dedikovaného kanálu LCP. S odkazem na obr. 18, obsahuje blok ICB dvě části - hlavičku a vlastní data. Hlavička obsahuje ve slově £ slovo udávající statut včetně indexu ICB identifikujícího blok 1680 ICB, a čítač platných přerušení LCP indikující počet přerušení v části vlastních dat, a dále časové razítko TOD (time of day) . Zbytek bloku 1680 obsahuje vlastní data. Vlastní data obsahují více polí, přičemž každé pole obsahuje identitu kanálu LCP, který indikuje událost ukončení. V příkladu na obr. 18 je každé pole dlouhé 2 bajty, přičemž v daném bloku
86334 (2786334_CZ.doc) 15.9.2003 • · · · • 4 • 4 ·· 4 444 4 4« 4
4 4444 44 4
4 «4 44*444 4 ·
- tX f) « 4 4 »4 4 4444 W 444 · »4 «4 44 44
1680 ICB je 28 polí. Je třeba zdůraznit, že v jiných provedeních tohoto vynálezu může být jiný počet polí, velikost bloku ICB nebo oboje.
Blok 1680 ICB je přenášen do paměti 60 hostitelského počítačového systému 10 prostřednictvím přístupu DMA. Tento přenos DMA bloku ICB je iniciován jednou z následujících událostí:
V paměti 1660 typu FIFO je minimálně předem definovaný počet indikátorů událostí ukončení a vypršela předem definovaná minimální doba.
V bloku 1680 je ICB je aspoň jedna událost a vypršela předem definovaná maximální doba.
Vyrovnávací paměť 1660 typu FIFO určená k ukládání přerušení je plná.
Blok 1680 ICB se zkopíruje na místo v paměti 60 hostitelského počítačového systému 10, na který ukazuje aktuální kontext 140 LCP Context kanálu LCP pro příjem přerušení. Po ukončení operace zápisu bloku ICB, nastaví systém 120 ISOC bit LCP Completion v příslušném registru přerušení. Nastavení bitu LCP Copmletion generuje maskovatelné přerušení. Bit LCP Completion je smazán po přečtení registru přerušení systému ISOC 120 hostitelským počítačovým systémem 10. Kanál ICB LCP Který přenáší blok 1680 ICB ze systému 120 ISOC do paměti 60 hostitelského počítačového systému 10 se chová stejně jako ostatní kanály LCP pro příjem. Podrobněji, kontexty 140 LCP Context a vyrovnávací paměti přiřazené kanálu LCP ICB inicializuje správce 130 LCP Manager; vyrovnávací paměti používané
86334 (2786334_CZ.doc) 15.9.2003 φφφφ φ φ φφφφ
- 51 - · φφ φφ φ φφφφ ♦ * φ « φφφφ φφ φ φ φφ φφφφφφ φ φ φ φφ φφφφφ φ φφ ·« φφ φφ kanálem LCP ICB mohou mít stejný formát s ostatními kanály LCP pro příjem; synchronizace mezi softwarem na hostitelském počítačovém systému 10 a systémem 120 ISOC se provádí nastavením nových slov ve volném paměťovém prostoru nebo deskriptorů vyrovnávacích pamětí prostřednictvím registru Doorbell, který je přiřazen ke kanálu. V některých provedeních podle tohoto vynálezu se kanál LCP ICB odlišuje od ostatních kanálů LCP, a to takto: kanál ICB nepoužívá schéma přerušení ICB; ukončení operace v tomto kanálu (zpracovávajícího deskriptor nebo přenášejícího blok 1680 ICB do paměti 60 hostitelského počítačového systému 10) může vygenerovat přerušení; kanál je spravován logikou umístěnou v systému 120 ISOC spíše než procesorem systému 120 ISOC.
Obslužná rutina 1720 přerušení systému 120 ISOC na hostitelském počítačovém systému 10 přečte registr přerušení systému 120 ISOC. Přečtení registru přerušení způsobí ukončení operace zápisu ICB do paměti 60 hostitelského počítačového monitorováno následuj ícího systému 10 . LCP sledováním paměti indexu bloku 1680
Completion může být 60 s cílem stanovení ICB při alternativním využívání kanálu přerušení. To je způsobeno tím, že blok ICB má pevně stanovené umístění, takže je možné předem stanovit umístění následujícího bloku ICB. Obslužná rutina 1740 přerušení zavolá aplikace 1610, které obslouží každý z kanálů indikujících událost 1650 ukončení. S cílem vyhnout se režii při zpracování ICB na hostitelském počítačovém systému 10 kanál LCP nemusí odesílat úplnou indikaci (prostřednictvím bloku 1680) dokud není smazán bit EventMask v kanálovém kontextu 140 LCP Context. Bit EventMask se smaže nastavením bitu ClearEventMask v registru Doorbell.
V upřednostňovaných provedeních tohoto vynálezu
86334 (2786334_CZ.doc) 15.9.2003 • · · ·
··♦· • · · * · ♦ • · · · · · · • · ··»··+ · · • · · · · * · •· «· ·» ·· popsaných výše' byl adaptér 80 připojen k jednotce 50 CPU a paměti 60 hostitelského počítačového systému 10 prostřednictvím sběrnice 70. V jiných provedeních tohoto vynálezu může být adaptér 80 integrován s hostitelským počítačovým systémem 10 nezávisle na sběrnici 70. Např. v jiném provedení tohoto vynálezu může být adaptér 80 integrován s hostitelským počítačovým systémem 10 prostřednictvím paměťového řadiče připojeného k paměti 60 hostitelského počítačového systému 10.
Mimo to v upřednostňovaných provedeních tohoto vynálezu popsaných výše byl adaptér 80 implementován ve formě zásuvné karty určené k zasunutí do hostitelského počítačového systému 10. Je třeba zdůraznit, že v jiných provedeních tohoto vynálezu popsaných výše jsou možné odlišné implementace adaptéru 80 . Adaptér 80 může být například umístěn na základní desce hostitelského počítačového systému 10, spolu s jednotkou 50 CPU a pamětí 60.
Zastupuj e:

Claims (16)

  1. PATENTOVÉ NÁROKY
    JUDr. Petr Kalenský advokát
    120 00 Praha 2, Hálkova 2 ··♦♦··· · .. · Λ χ
    ·..* Μ pravena strana • · · · · • ·
    1. Zařízení pro přenos přerušení z periferního zařízení na hostitelský počítačový systém, přičemž periferní zařízení obsahuje více portů, přičemž dále zařízení obsahuje: vyrovnávací paměť pro ukládání indikátorů přerušení generovaných na portech periferního zařízení; a řadič pro generování, odezvou na splnění určité, předem definované podmínky, bloku řídicích dat, který obsahuje jednak úsek vlastních dat mající více polí, přičemž každé pole odpovídá jinému z portů, a jednak hlavičku obsahující identifikátor pro identifikaci bloku řídicích dat, přičemž přesune obsah vyrovnávací paměti do úseku vlastních dat bloku řídicích dat a odešle blok řídicích dat na hostitelský počítačový systém prostřednictvím jednoho z portů.
  2. 2. Zařízení podle nároku 1, vyznačující se tím, že splnění předem stanovené podmínky obsahuje určení skutečnosti, že vyrovnávací paměť je plná.
  3. 3. Zařízení podle nároku 1, vyznačující se tím, že splnění předem stanovené podmínky obsahuje určení skutečnosti, že došlo k uloženi předem definovaného počtu indikátorů do vyrovnávací paměti a vypršela předem definovaná doba.
  4. 4. Zařízení podle nároku 1, vyznačující se tím, že splnění předem stanovené podmínky obsahuje určení skutečnosti, že došlo k uložení alespoň jednoho indikátoru do vyrovnávací paměti a vypršela předem definovaná doba.
    27 86334 (2786334_CZ.doc) 15.9.2003 • · · ·
    9 9 9
    9 9 9
    9 99 9
    9 9 < · * * %
    ·..· 'Upravená strana
  5. 5. Zařízení podle kteréhokoli z předcházejících nároků, vyznačující se tím, že blok řídicích dat obsahuje hlavičku obsahující čítač počtu indikací zahrnutých do úseku vlastních dat.
  6. 6. Zařízení podle kteréhokoli z předcházejících nároků, vyznačující se tím, že hlavička obsahuje časové razítko typu TOD (time of day).
  7. 7. Zařízení podle kteréhokoli z předcházejících nároků, vyznačující se tím, že vyrovnávací paměť obsahuje vyrovnávací paměť typu FIFO (first in - first out).
  8. 8. Periferní zařízení, obsahující zařízení podle kteréhokoliv z předchozích nároků.
  9. 9. Rozhraní datové komunikační sítě, obsahující zařízení podle nároku 8.
  10. 10. Systém pro zpracování dat obsahující hostitelský počítačový systém mající paměť, rozhráni datové komunikace pro přenos dat mezi hostitelským počítačovým systémem a sítí pro datovou komunikaci, a zařízení podle některého z nároků 1 až 6 pro řízení toku přerušení z rozhraní datové komunikace do paměti hostitelského počítačového systému.
  11. 11. Způsob pro přenos přerušení z periferního zařízení na hostitelský počítačový systém, přičemž periferní zařízení má více portů, přičemž způsob obsahuje: ukládání přerušení generovaných na portech periferního zařízení do vyrovnávací paměti; určení splnění předem definované podmínky a odezvou na splnění této předem definované podmínky vygenerování bloku řídicích dat obsahujícího úsek vlastních dat mající
    27 86334 (2786334_CZ.doc) 15.9.2003
    -: : '· : :··:·: : JJrtravená strana • ·» é · · · * ·« identifikátor pro idektifikaci bloku řídících dat, přesunutí obsahu vyrovnávací paměti do odpovídajících polí úseku vlastních dat, a odeslání bloku řídicích dat na hostitelský počítačový systém prostřednictvím jednoho z portů.
  12. 12. Způsob podle nároku 11, vyznačující se tím, že určení splnění předem stanovené podmínky obsahuje určení skutečnosti, že vyrovnávací paměť je plná.
  13. 13. Způsob podle nároku 11, vyznačující se tím, že určení splnění předem stanovené podmínky obsahuje určení skutečnosti, že došlo k uložení minimálního předem definovaného počtu indikátorů do vyrovnávací paměti a vypršela předem definovaná doba.
  14. 14. Způsob podle nároku 11, vyznačující se tím, že určení splnění předem stanovené podmínky obsahuje určení skutečnosti, že došlo k uložení alespoň jednoho indikátoru do vyrovnávací paměti a vypršela předem definovaná doba.
  15. 15. Způsob podle kteréhokoli předcházejícího nároku, vyznačující se tím, že blok řídicích dat obsahuje hlavičku obsahující čítač počtu indikací zahrnutých do úseku vlastních dat.
  16. 16. Způsob podle kteréhokoli předcházejícího nároku, vyznačující se tím, že vyrovnávací paměť obsahuje vyrovnávací paměť typu FIFO (first in - first out).
CZ20032079A 2001-01-31 2001-01-31 Způsob a zařízení pro přenos přerušení z periferního zařízení na hostitelský počítačový systém CZ20032079A3 (cs)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2001/000121 WO2002061590A1 (en) 2001-01-31 2001-01-31 Method and apparatus for transferring interrupts from a peripheral device to a host computer system

Publications (1)

Publication Number Publication Date
CZ20032079A3 true CZ20032079A3 (cs) 2003-12-17

Family

ID=11004036

Family Applications (1)

Application Number Title Priority Date Filing Date
CZ20032079A CZ20032079A3 (cs) 2001-01-31 2001-01-31 Způsob a zařízení pro přenos přerušení z periferního zařízení na hostitelský počítačový systém

Country Status (10)

Country Link
US (1) US20040054822A1 (cs)
EP (1) EP1358561A1 (cs)
JP (1) JP4317365B2 (cs)
KR (1) KR100640515B1 (cs)
CN (1) CN1256681C (cs)
CA (1) CA2432386A1 (cs)
CZ (1) CZ20032079A3 (cs)
HU (1) HUP0302843A3 (cs)
PL (1) PL363432A1 (cs)
WO (1) WO2002061590A1 (cs)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1312600C (zh) * 2003-07-09 2007-04-25 明基电通股份有限公司 用于减少对处理器的中断次数的控制装置及方法
US7342934B1 (en) * 2004-03-29 2008-03-11 Sun Microsystems, Inc. System and method for interleaving infiniband sends and RDMA read responses in a single receive queue
US7058738B2 (en) * 2004-04-28 2006-06-06 Microsoft Corporation Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices
US7721033B2 (en) * 2004-12-03 2010-05-18 Emulex Design & Manufacturing Corporation Interrupt notification block
CN100369021C (zh) * 2004-12-31 2008-02-13 英业达股份有限公司 计算机外设操作事件响应处理方法及系统
CN100557586C (zh) * 2005-06-01 2009-11-04 索尼株式会社 信息处理装置和信息处理方法
US7675931B1 (en) * 2005-11-08 2010-03-09 Altera Corporation Methods and apparatus for controlling multiple master/slave connections
US7676192B1 (en) * 2005-12-21 2010-03-09 Radio Shack, Corp. Radio scanner programmed from frequency database and method
TWI340982B (en) * 2006-03-30 2011-04-21 Silicon Image Inc Multi-port memory device having variable port speeds
JP4966238B2 (ja) * 2008-03-27 2012-07-04 株式会社東芝 タイマ制御装置、タイマ制御システム、タイマ制御方法およびタイマ制御プログラム
US9032100B2 (en) * 2008-04-03 2015-05-12 International Business Machines Corporation I/O hub-supported atomic I/O operations
JP4990250B2 (ja) * 2008-09-18 2012-08-01 株式会社日立産機システム 割込制御装置、割込制御システム、割込制御方法および割込制御プログラム
JP2011180653A (ja) * 2010-02-26 2011-09-15 Oki Joho Systems:Kk データ転送装置およびデータ転送方法
US8700819B2 (en) * 2011-03-09 2014-04-15 Apple Inc. Host device suspending communication link to client device based on client device notification
CN102123158A (zh) * 2011-04-11 2011-07-13 深圳市同洲软件有限公司 一种实现网络数据处理的方法和系统
US8364854B2 (en) * 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
GB2497528B (en) * 2011-12-12 2020-04-22 Nordic Semiconductor Asa Peripheral communication
US9542345B2 (en) * 2012-09-28 2017-01-10 Apple Inc. Interrupt suppression strategy
US8880756B1 (en) * 2013-07-01 2014-11-04 Atmel Corporation Direct memory access controller
US9246592B2 (en) * 2013-08-19 2016-01-26 International Business Machines Corporation Structured substrate for optical fiber alignment
US10095891B2 (en) * 2015-06-08 2018-10-09 Nuvoton Technology Corporation Secure access to peripheral devices over a bus
CN108197046A (zh) * 2017-12-30 2018-06-22 盛科网络(苏州)有限公司 一种实现原子操作的系统及方法
US11269803B1 (en) * 2020-12-01 2022-03-08 Quanta Computer Inc. Method and system for processor interposer to expansion devices
CN113342721B (zh) * 2021-07-06 2022-09-23 无锡众星微系统技术有限公司 存储控制器dma设计方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493021A (en) * 1981-04-03 1985-01-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Multicomputer communication system
US5185864A (en) * 1989-06-16 1993-02-09 International Business Machines Corporation Interrupt handling for a computing system with logical devices and interrupt reset
EP0414651A1 (en) * 1989-08-14 1991-02-27 International Business Machines Corporation Prolog interrupt processing
US5325536A (en) * 1989-12-07 1994-06-28 Motorola, Inc. Linking microprocessor interrupts arranged by processing requirements into separate queues into one interrupt processing routine for execution as one routine
JP3078000B2 (ja) * 1990-07-24 2000-08-21 三菱電機株式会社 情報処理装置
US5265255A (en) * 1990-09-24 1993-11-23 International Business Machines Corp. Personal computer system with interrupt controller
AU9043691A (en) * 1990-11-09 1992-06-11 Ast Research, Inc. Protected hot key function for microprocessor-based computer system
US5319753A (en) * 1992-09-29 1994-06-07 Zilog, Inc. Queued interrupt mechanism with supplementary command/status/message information
US5481724A (en) * 1993-04-06 1996-01-02 International Business Machines Corp. Peer to peer computer-interrupt handling
JPH07191899A (ja) * 1993-12-27 1995-07-28 Hitachi Ltd ファイル転送方法、データアクセス方法およびデータ書き込み方法
US5553293A (en) * 1994-12-09 1996-09-03 International Business Machines Corporation Interprocessor interrupt processing system
US5630059A (en) * 1995-02-06 1997-05-13 International Business Machines Corporation Expedited message transfer in a multi-nodal data processing system
FR2737590B1 (fr) * 1995-08-03 1997-10-17 Sgs Thomson Microelectronics Dispositif de gestion d'interruptions
US5708814A (en) * 1995-11-21 1998-01-13 Microsoft Corporation Method and apparatus for reducing the rate of interrupts by generating a single interrupt for a group of events
US5606703A (en) * 1995-12-06 1997-02-25 International Business Machines Corporation Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures
US5742791A (en) * 1996-02-14 1998-04-21 Advanced Micro Devices, Inc. Apparatus for detecting updates to instructions which are within an instruction processing pipeline of a microprocessor
US6070219A (en) * 1996-10-09 2000-05-30 Intel Corporation Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller
US6122700A (en) * 1997-06-26 2000-09-19 Ncr Corporation Apparatus and method for reducing interrupt density in computer systems by storing one or more interrupt events received at a first device in a memory and issuing an interrupt upon occurrence of a first predefined event
US6430183B1 (en) * 1997-09-18 2002-08-06 International Business Machines Corporation Data transmission system based upon orthogonal data stream mapping
US5968158A (en) * 1997-10-06 1999-10-19 International Business Machines Corporation Apparatus including a host processor and communications adapters interconnected with a bus, with improved transfer of interrupts between the adapters and host processor
US6178180B1 (en) * 1997-11-26 2001-01-23 International Business Machines Corp. Communications adapter for processing ATM and ISDN data
US6765685B1 (en) * 1999-01-22 2004-07-20 Ricoh Company, Ltd. Printing electronic documents with automatically interleaved separation sheets
US6715099B1 (en) * 1999-06-02 2004-03-30 Nortel Networks Limited High-availability architecture using high-speed pipes
US6493772B1 (en) * 1999-08-23 2002-12-10 International Business Machines Corporation System and method with guaranteed maximum command response time
EP1221099A4 (en) * 1999-09-08 2003-04-02 Mellanox Technologies Ltd REMOTE EVENT MANAGEMENT IN A PACKET SWITCHED NETWORK
US6618779B1 (en) * 2000-05-30 2003-09-09 Intel Corporation Method and apparatus for chaining interrupt service routines

Also Published As

Publication number Publication date
CN1256681C (zh) 2006-05-17
EP1358561A1 (en) 2003-11-05
HUP0302843A2 (hu) 2003-12-29
PL363432A1 (en) 2004-11-15
KR100640515B1 (ko) 2006-10-30
JP2004520646A (ja) 2004-07-08
HUP0302843A3 (en) 2004-08-30
US20040054822A1 (en) 2004-03-18
KR20040012716A (ko) 2004-02-11
JP4317365B2 (ja) 2009-08-19
CA2432386A1 (en) 2002-08-08
WO2002061590A1 (en) 2002-08-08
CN1507591A (zh) 2004-06-23

Similar Documents

Publication Publication Date Title
JP4755390B2 (ja) メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
CZ20032079A3 (cs) Způsob a zařízení pro přenos přerušení z periferního zařízení na hostitelský počítačový systém
JP4755391B2 (ja) メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
US7013353B2 (en) Host-fabric adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem
EP1228438B1 (en) System and method for managing connections between clients and a server
US20180375782A1 (en) Data buffering
EP1891787B1 (en) Data processing system
US8423675B2 (en) Data transfer, synchronising applications, and low latency networks
JPH08180001A (ja) 通信方式及び通信方法及びネットワークインタフェース
EP1302854B1 (en) Asynchronous Data transfer
EP1543658A2 (en) One shot rdma having a 2-bit state
US7292593B1 (en) Arrangement in a channel adapter for segregating transmit packet data in transmit buffers based on respective virtual lanes
US20020049875A1 (en) Data communications interfaces
US20020049878A1 (en) Data communications interfaces