NL194564C - Intelligente multiprocessorcel voor een netwerk dat voorziet in waarneming, communicaties in twee richtingen en besturing. - Google Patents

Intelligente multiprocessorcel voor een netwerk dat voorziet in waarneming, communicaties in twee richtingen en besturing. Download PDF

Info

Publication number
NL194564C
NL194564C NL8821040A NL8821040A NL194564C NL 194564 C NL194564 C NL 194564C NL 8821040 A NL8821040 A NL 8821040A NL 8821040 A NL8821040 A NL 8821040A NL 194564 C NL194564 C NL 194564C
Authority
NL
Netherlands
Prior art keywords
cell
bit
register
group
memory
Prior art date
Application number
NL8821040A
Other languages
English (en)
Other versions
NL194564B (nl
NL8821040A (nl
Original Assignee
Echelon Systems
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 Echelon Systems filed Critical Echelon Systems
Publication of NL8821040A publication Critical patent/NL8821040A/nl
Publication of NL194564B publication Critical patent/NL194564B/nl
Application granted granted Critical
Publication of NL194564C publication Critical patent/NL194564C/nl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Peptides Or Proteins (AREA)
  • Logic Circuits (AREA)
  • Agricultural Chemicals And Associated Chemicals (AREA)
  • Multi Processors (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

1 194564 • Intelligente multiprocessorcel voor een netwerk dat voorziet in waarneming, communicaties in twee * richtingen en besturing
De uitvinding heeft betrekking op een cel voor gebruik in een communicatie- en besturingsnetwerk, 5 omvattende: (A) invoer- en uitvoerorganen die zijn gekoppeld aan het netwerk voor het verschaffen van een van de functies van waarnemen, communicatie, en besturing; (B) een geheugen; en (C) een aantal processoren, waarbij het aantal gekoppeld is aan het geheugen en aan de invoer- en 10 uitvoerorganen, waarbij het aantal processoren omvat: (1) een rekenkundige logische eenheid (ALU) die door de processoren gedeeld wordt; (2) een aantal registergroepen, waarbij uitgangssignalen van de registergroepen gekoppeld zijn aan de ALU, waarbij een uitgangssignaal van de ALU gekoppeld is aan het geheugen, en waarbij een uitgangssignaal van het geheugen als een ingangssignaal gekoppeld is aan de registergroepen; en 15 (3) besturingsorganen voor het verschaffen van besturingssignalen.
Een dergelijke cel is bekend uit het Amerikaanse octrooi 3.916.383. In het hierin beschreven multiproces-sorcomputersysteem zijn het aantal processoren als één geheel gevormd binnen in een centrale verwerkings-eenheid. Dit bekende computersysteem voert meerdere gegevens verwerkende functies gelijktijdig uit door de centrale verwerkingseenheid op basis van tijdsegmentering (’’time slicing”) te gebruiken. De bekende 20 inrichting is weliswaar een multiprocessorsysteem, echter dit vormt een enkele centrale verwerkingseenheid die meerdere processen onder tijdsegmentering uitvoert. Een probleem hierbij is dat een centrale eenheid nodig is voor toewijzen van faciliteiten.
Een ander probleem is dat met een dergelijke processor diverse processen niet simultaan door de registers het ALU en geheugen uitgevoerd kunnen worden. De uitvinding heeft onder meer tot doel deze 25 problemen ten minste gedeeltelijk op te lossen. De uitvinding betreft daartoe een cel voor gebruik in een communicatie- en besturingsnetwerk, met het kenmerk, dat het aantal processoren processoren zijn voor het gelijktijdig uitvoeren van een aantal processen, waarbij (2) elke registergroep behoort bij een betreffende processor, en waarbij elk van de registergroepen omvat: (a) een basiswijzerregister voor het opslaan van een geheugenbasiswijzer voor een betreffende processor; 30 (b) een instructiewijzerregister voor het opslaan van een geheugenwijzer die wijst naar een instructie voor een betreffende processor; (c) een instructieregister voor het opslaan een instructie voor een betreffende processor; (d) een stapelwijzerregister voor het opslaan van een geheugenstapelwijzer voor een betreffende processor; en 35 (e) een terugkeerwijzerregister voor het opslaan van een geheugenterugkeerwijzer voor een betreffende processor; en (3) de besturingsorganen besturingsorganen zijn voor het verschaffen van besturingssignalen voor het gelijktijdig overbrengen van gegevens van één van de registergroepen naar de ALU, terwijl gelijktijdig gegevens die behoren bij een andere registergroep van de ALU naar het geheugen overgebracht worden, 40 en terwijl gelijktijdig gegevens die behoren bij een andere registergroep van het geheugen overgebracht worden, waarbij de besturingsorganen gekoppeld zijn met de registergroepen, waarbij de besturingsorganen omvatten: (a) een aantal tellers die behoren bij de instructieregisters; (b) schakelingsorganen voor het verschaffen van initiële instellingen aan de tellers, waarbij de schakelings-45 organen gekoppeld zijn om de instructies die opgeslagen zijn in de instructieregisters te ontvangen; (c) een logische matrix die gekoppeld is om de inhoud van de tellers en de instructies die opgeslagen zijn in de instructieregisters als invoersignalen te ontvangen; en (d) vertragingsorganen voor het vertragen van een aantal uitgangssignalen van de logische matrix, waarbij uitgangssignalen van de logische matrix en de vertragingsmiddelen besturingssignalen omvatten.
50 Door de indeling van de registergroepen en de besturingsorganen is het mogelijk door middel van meerdere processoren parallelle taken uit te voeren.
Bij voorkeur wordt de cel volgens de uitvinding gekenmerkt door klokorganen voor het klokken van de tellers voor kleine instructiecycli.
Bij voorkeur is elke registergroep gekoppeld aan de invoer- en uitvoerorganen, en kan elke registergroep 55 onafhankelijk communiceren met de invoer- en uitvoerorganen.
Bij voorkeur omvatten de schakelingsorganen een tweede logische matrix die de instructies als invoersignalen ontvangt, waarbij de uitvoersignalen van de tweede logische matrix de initiële instellingen 194564 2 zijn, en waarbij elke initiële instelling het aantal cycli voorstelt dat nodig is om een betreffende instructie uit te voeren.
Bij voorkeur omvatten de vertragingsmiddelen een aantal registers.
Bij voorkeur schuift de ALU een 4-bits groep naar links of naar rechts wanneer ten minste één van de 5 instructieregisters een vooraf bepaalde instructie bevat.
Bij voorkeur is er een directe signaalverbinding tussen ieder instructiewijzerregister en de ALU.
Bij voorkeur omvat het geheugen een slechts uitleesbaar geheugen (ROM), een willekeurig toegankelijk geheugen (RAM), en een elektrisch programmeerbaar geheugen (EEPROM) omvat.
Beschreven wordt een netwerk dat voorziet in waarneming, communicaties en besturing. Een veelheid 10 van intelligente cellen die elk een geïntegreerde schakeling omvatten die een processor en een invoer/ uitvoer-sectie heeft, wordt gekoppeld aan het netwerk. Elk van de programmeerbare cellen ontvangt bij vervaardiging een uniek identificatienummer (48 bits) dat permanent verblijft binnenin de cel. De cellen kunnen worden gekoppeld aan verschillende media zoals voedingslijnen, paarsgewijs ineengedraaid, radiofrequent, infrarood, ultrasoon, optisch coaxiaal, enzovoort, teneinde een netwerk te vormen.
15 Netwerken worden van elkander onderscheiden door stelselidentificatienummers (ID’s). Groepen van cellen binnenin elk netwerk worden gevormd om bepaalde functies uit te voeren en zij worden geïdentificeerd door groep ID’s. Communicaties komen voor binnenin het netwerk door gebruik van de stelsel-, groep- en cel-ID’s. Sommige cellen (melders) zijn de taak van waarneming toegewezen, bijvoorbeeld de toestand van een schakelaar, en andere (luisteraars) de taak van besturing, bijvoorbeeld besturing van licht. 20 Cellen kunnen meervoudige taken uitvoeren en worden leden van meervoudige groepen en zij kunnen bijvoorbeeld werkzaam zijn als een herhaler voor een groep en een luisteraar in een andere groep. Bij het vervaardigen zijn de cellen identiek met uitzondering van de cel-ID; zij worden geprogrammeerd om specifieke taken voor een bepaalde groep of groepen uit te voeren.
De voorkeursuitvoering van de cel omvat een multiprocessor en meervoudige l/O-subsecties waar welke 25 processor dan ook kan communiceren met welke l/O-subsectie dan ook. Dit maakt de doorlopende uitvoering van een programma mogelijk zonder potentiële onderbrekingen die worden veroorzaakt door verbindingen met de l/O-sectie. De l/O-sectie omvat programmeerbare A-in-D en programmeerbare D-in-A omzetters alsmede andere schakelingen voor andere bedrijfsmodi.
Het netwerkprotocol verschaft een grote flexibiliteit en staat bijvoorbeeld toe dat groepen worden 30 gevormd en/of gewijzigd nadat de cellen zijn geplaatst. Zoals zal blijken wordt de intelligentie voor het netwerk gedistribueerd over de cellen. In het algemeen is het netwerk licht belast, ofschoon voorzieningen worden gemaakt voor een wedijversituatie en andere toestanden die kunnen optreden. De communicatie tussen de cellen in het algemeen is geoptimaliseerd voor het uitvoeren van de aan groepen toegewezen functies in plaats van voor verzending van gegevens die niet samenhangen met de besturingsfunctie van 35 het netwerk. Om deze reden zijn de pakketten die de berichten overdragen betrekkelijk kort in vergelijking met Ethernet, Arpa, Apple Talk, x-25 en vele andere breedbandige en gegevenscommunicatiestelsels.
Andere aspecten van het uitgevonden netwerk en de cel zullen duidelijk worden uit de gedetailleerde beschrijving van de uitvinding.
40 KORTE BESCHRIJVING VAN DE TEKENINGEN
Figuur 1 is een blokschema dat een kenmerkende toepassing van de onderhavige uitvinding illustreert; figuur 2 is een schematische voorstelling die wordt gebruikt om het groeperen van cellen te illustreren; figuur 3 is een ander blokschema dat soortgelijk is aan figuur 2, dat wordt gebruikt om het groeperen van cellen te illustreren; 45 figuur 4 is een schematische voorstelling die wordt gebruikt om subkanalen te beschrijven; figuur 5 is een schematische voorstelling die een veelheid van cellen illustreert; figuur 6 is een tabel die de pakketopmaak illustreert; figuur 7 is een tabel die het designatielijstgedeelte van de pakketopmaak van figuur 6 illustreert; figuur 8 illustreert een reeks stappen die worden gebruikt bij het vormen van een groep cellen; 50 figuur 9 is een tabel die de codetoewijzingen voor de drie-uit-zes codering illustreert; figuur 10 is een blokschema van de communicatie- en besturingscel; figuur 11 is een blokschema van een gedeelte van de instructiedecoderingslogica die wordt gebruikt binnen de processor van de cel van figuur 10; figuur 12 is een gedetailleerd blokschema van het proces volgens figuur 10; 55 figuur 13 is een timing-diagram voor de processor van figuur 10; dit diagram toont ook vergrendelaars en registers die worden gebruikt om de pijplijnmethode die wordt toegepast door de cel te verschaffen; figuur 14 is een blokschema dat de huidige voorkeursuitvoering van de drie-uit-zes codeerder illustreert; 3 194564 - figuur 15 is een blokschema dat de huidige voorkeursuitvoering van de drie-uit-zes decodeerder toont; figuur 16 is een blokschema dat de huidige voorkeursuitvoering van het drie-uit-zes codeverifieerorgaan toont; figuur 17 is een elektrisch schema van de buffersectie van één van de l/O-secties; 5 figuur 18 is een elektrisch schema van de tel- en timing-functies voor een l/O-subsectie; figuur 19 is een elektrisch schema van de besturings- en toestandsmachine voor een l/O-sectie; figuur 20 is een elektrisch schema voor het monster- en houdorgaan dat is verbonden met de l/O-subsecties; figuur 21 illustreert het netwerk dat is gevormd binnen een l/O-subsectie teneinde een digitaal-in-analoog 10 omzetting uit te voeren; figuur 22 illustreert het netwerk dat is gevormd binnen een l/O-sectie voor een analoog-in-digitaal omzetting; figuur 23 is een elektrisch schema dat een l/O-subsectie toont; figuur 24 is een toestandsdiagram dat wordt gebruikt voor de l/O-subsecties en voor transmissiewedijver-15 situaties; figuur 25 is een toestandsdiagram voor het verbindingsniveau ARQ; figuur 26 is een toestandsdiagram voor hoofdstationverbindingen; figuur 27 is een toestandsdiagram voor secundaire stationverbindingen; figuur 28 is een blokschema voor een groepeerorgaan; 20 figuur 29 is een diagram dat de vorm toont waarin het stelsel-ID wordt gecodeerd voor transmissie door het pakket en wordt gecodeerd binnen een cel; figuur 30 is een diagram dat wordt gebruikt om de werking van de invoer/uitvoer-sectie en het semafoor-register te beschrijven.
25 Beschreven worden een inrichting en een werkwijze voor het verschaffen van communicaties, waarneming en besturing in een netwerk. Wanneer het netwerk een veelheid van intelligente cellen bevat, zijn de cellen in het algemeen programmeerbare organen op een enkele chip voor besturing op afstand, waarneming en communicatie, die, wanneer onderling verbonden (via verscheidene media) met andere cellen, een gedistribueerde waarneming, communicatie, besturing en netwerkconfiguratie-intelligentie, configuratie en 30 besturing hebben. Het stelsel omvat een netwerk van cellen die zijn georganiseerd van een hiërarchie die is gebaseerd op communicatievereisten. Cellen zijn georganiseerd in werk-”groepen” onafhankelijk van de netwerkhiërarchie. Groepen cellen worden in het algemeen gebruikt om een groepfunctie uit te voeren.
Deze functie wordt uitgevoerd door de toewijzing van taken aan cellen binnen groepen. Cellen communiceren, besturen en nemen informatie waar. In het algemeen heeft elke cel een uniek idenficatienummer en 35 voert de cel informatieverwerkende taken uit zoals: communicatieprotocol in twee richtingen, invoer/uitvoer, pakketverwerking en analoog en digitaal waarnemen en besturen. In het algemeen heeft het stelsel dat bestaat uit de cellen het kenmerk van het opslaan van netwerkconfiguratie-informatie die wordt gedistribueerd over het stelsel; en het brengt over automatisch gerouteerde berichten over cellen. Elk stelsel heeft ook een unieke identificatie (ID) die in de huidige voorkeursuitvoering 48 bits is. Bovendien bevat het 40 veelzijdig programmeerbare invoer/uitvoer I/O schakelingen met digitale veelzijdige programmering om cellen in te richten voor specifiek waarnemen, communicatie, besturing en I/O, analoog I/O, communicatie I/O en communicatiebitsnelheidwaarneming.
In de volgende beschrijving worden talrijke specifieke details uiteengezet zoals specifieke frequenties, enzovoort, teneinde een goed begrip van de onderhavige uitvinding te verschaffen. Het zal echter voor hen 45 die terzake kundig zijn duidelijk zijn dat deze details niet worden vereist om de uitvinding te praktiseren. In andere gevallen worden welbekende schakelingen, werkwijzen en dergelijke niet in details uiteengezet teneinde niet onnodig de onderhavige uitvinding te versluieren.
; In figuur 1 is een eenvoudige, kenmerkende toepassing getoond in huis, waarbij de schakelaar 22 wordt gebruikt om het licht 23 te besturen.
50 De opstelling 20 omvat een cel 27 die is verbonden met de schakelaar 22. De cel is ook verbonden met een zendontvanger 29 die gegevens koppelt aan de lijnen 24 en 25. Voeding ten behoeve van de ! zendontvanger en de cel wordt verschaft vanuit de voeding 30 die vermogen ontvangt vanuit de lijnen 24 en 25. In dit voorbeeld zijn de lijnen 24 en 25 een gebruikelijke huishoudelijke bedrading (bijvoorbeeld 110 volt wisselspanning) en de voeding 30 een 5-volts gelijkspanningsvoeding. De cel 27 is bij voorkeur een 55 geïntegreerde schakeling die meer in detail wordt beschreven beginnende met figuur 10. De zendontvanger 29 kan één van de vele bekende organen zijn voor het ontvangen en verzenden van digitale gegevens en voert zoals thans wordt beoogd geen verwerking uit van verzonden gegevens. De gehele opstelling 20 kan 194564 4 klein genoeg zijn om te passen binnen een gebruikelijke elektrische wandcontactdoos die gewoonlijk een elektrische schakelaar bevat.
De opstelling 21 kan wederom klein genoeg zijn om te passen binnen een kenmerkende elektrische uitvoerdoos en omvat een voeding 31 en een zendontvanger 33 die identiek in bouw kunnen zijn aan de 5 voeding 30 en respectievelijk de zendontvanger 29. Deze cel 28 wordt gekoppeld aan de zendontvanger 30 en voeding 29 evenals de spoelbekrachtigde vermogensschakelaar 32. De cel 28 kan identiek zijn aan de cel 27 met uitzondering van de programmering en een identificatienummer dat verderop zal worden besproken. Een uitgangssignaal vanuit de cel 28 bestuurt de spoel 32 om een vermogensschakelaar te bedienen die op zijn beurt de verlichting 23 verbindt met de voedingslijnen 34 en 35. De cel 28 kan, zoals 10 zal blijken, een digitaal of een analoog uitgangssignaal verschaffen dat een reostaat (niet getoond) of dergelijke kan besturen, waardoor aldus het dimmen van de verlichting 23 mogelijk is.
De verbreking 26 in de voedingslijnen 24 en 25 wordt gebruikt om aan te geven dat de voedingslijnen 24 en 25 niet noodzakelijkerwijze op dezelfde schakeling als de voedingslijnen 34 of 35 zijn. Zoals zal blijken behoeft de zendontvanger 29 niet noodzakelijkerwijs rechtstreeks met de zendontvanger 33 te communice-15 ren, maar kan in plaats daarvan een communicatie tussen de zendontvangers een verbinding vereisen via een andere cel en een zendontvanger die pakketten die zijn verzonden tussen de opstellingen 20 en 21 herhaalt.
In figuur 1 communiceren de zendontvangers 29 en 33 via voedingslijnen. De zendontvangers kunnen met elkaar communiceren op talrijke verschillende wijze over ontelbare media en bij elke bandsnelheid. Zij 20 kunnen bijvoorbeeld elk radiofrequente of microgolffrequente signalen uitzenden en ontvangen via antennes. De zendontvangers zouden kunnen zijn verbonden met communicatielijnen, zoals een gebruikelijk ineengedraaid paar van optische vezelkabel en aldus met elkaar communiceren onafhankelijk van de voedingslijnen. Andere bekende communicatiemedia kunnen worden toegepast tussen de zendontvangers zoals infrarode of ultrasone uitzendingen. Kenmerkende transmissiesnelheden zijn 10 kilobits per seconde 25 (KBPS) voor voedingslijnen. Veel hogere transmissiesnelheden zijn mogelijk in geval van radiofrequentie, infrarood, ineengedraaide paren, optische vezelverbindingen en andere media.
De cel 27 neemt het openen of het sluiten van de schakelaar 22 waar, maakt vervolgens een pakket gereed dat een bericht omvat dat de toestand van de schakelaar 22 initieert; het pakket wordt overgedragen naar de cel 28 via zendontvanger 29, lijnen 24 en 25, lijnen 34 en 35 en zendontvanger 33. De cel 28 30 bevestigd het bericht door een pakket naar de cel 27 te retourneren en reageert ook op het bericht dat wordt ontvangen door de verlichting 23 aan of uit te schakelen door de spoelgestuurde vermogensschakelaar 32 te bedienen.
Elke cel heeft een uniek 48-bits identificatienummer (ID-nummer), soms aangeduid als het celadres. In de huidige voorkeursuitvoering ontvangt elke cel als onderdeel van het vervaardigingsproces dit permanente 35 en unieke ID-nummer. (Na vervaardiging kan het niet worden gewijzigd.) Zoals zal worden begrepen zal met ongeveer 24® mogelijke ID-nummers, elke cel een uniek ID-nummer hebben ongeacht hoe groot een netwerk wordt voor praktische doeleinden, of ongeacht hoeveel netwerken onderling worden verbonden. Het groepeerorgaan heeft dan toegang tot de afzonderlijke cel-ID's en wijst een stelsel-ID toe aan elke cel. Bovendien richt het groepeerorgaan de cellen in in groepen om groepgerelateerde functies uit te voeren.
40 Ten behoeve van de illustratie volgens figuur 1, is de cel 27 aangeduid als ”A” om aan te geven dat zijn hoofdfunctie is "melden”, dat wil zeggen verzenden van de toestand van schakelaar 22 op de netwerk-communicatielijnen 24 en 24 en 34 en 35. Anderzijds is de cel 28 aangeduid met de letter "L", aangezien zijn hoofdfunctie in figuur 1 is om te "luisteren” naar het netwerk en in het bijzonder te luisteren naar berichten vanuit de cel 27. In daaropvolgende figuren worden de ”A” en "L” aanduidingen gebruikt in het 45 bijzonder in samenhang met een groepformatie van meervoudige cellen om een melderopstelling aan te duiden, zoals de opstelling 20, en een luisteraaropstelling, zoals de opstelling 21. Ten behoeve van de bespreking wordt soms naar de cellen zelf verwezen doordat zij gegevens zenden of ontvangen, zonder te verwijzen naar zendontvangers. (In sommige gevallen kunnen de zendontvangers een eenvoudig passief netwerk of eenvoudige draden zijn die zijn gekoppeld aan de invoer/uitvoer van een cel op een lijn. Zoals 50 zal blijken kan de l/O-sectie van de cellen uitgangssignalen verschaffen die een ineengedraaid paar of dergelijke kunnen aandrijven. Aldus kunnen de cellen zelf werkzaam zijn als een zendontvanger voor sommige media).
De cellen 27 en 28 zoals hierna zullen worden beschreven, zijn processoren die multiprocessorkenmer-ken hebben. Zij kunnen voor of na het installeren worden geprogrammeerd om hun verlangde functie uit te 55 voeren, zoals een melder of een luisteraar en voor het groeperen van combinaties.
5 194564
NETWERKORGANISATIES EN DEFINITIES A. DEFINITIES
Cel: Een cel is een intelligent, programmeerbaar element of elementen die besturing op afstand, waarne-5 ming en/of communicaties verschaffen, en die, wanneer onderling verbonden met andere dergelijke elementen, een communicatie*, besturing- en waarnemingsnetwerk of -stelsel met gedistribueerde intelligentie vormen.
Melder: Een melder is een bron van groepberichten.
Luisteraar: Een luisteraar is een put van groepberichten. (Een melder kan in sommige gevallen om 10 toestandinformatie verzoeken van een luisteraar.)
Herhaler: Een herhaler is een cel die in aanvulling op andere functies pakketten leest vanuit een medium en deze opnieuw uitzendt.
Groep: Een verzameling cellen die gezamenlijk werken ten behoeve van een gemeenschappelijke functie (bijvoorbeeld een schakelaar die een verzameling lichten bestuurt) wordt aangeduid als een "groep”.
15 In figuur 2 heeft de groep 37 een melder 37a. Luisteraars 37b en 37c en een luisteraar 40. Een groep 38 bevat een melder 38a, luisteraars 38b en 38c en de luisteraar 40. Figuur 2 illustreert dat een enkele cel (cel 40) een luisteraar in twee groepen kan zijn. Indien een melder 37a een lichtschakelfunctie heeft, kan deze lichten via de cellen 37b, 37c en 40 besturen. Op soortgelijke wijze kan een schakelaar die is verbonden met een melder 38a lichten besturen via de cellen 37c, 37b en 40.
20 In figuur 3 omvat een groep 42 melders 44, 45 en luisteraars 46 en 47. De groep 43 deelt de cel 44 met de groep 42, echter is de cel 44 een luisteraar voor de groep 43. De groep 41 deelt de cel 47 met de groep 42; cel 47 is een melder voor de groep 41 en kan bijvoorbeeld aan de luisteraar 48 van groep 41 melden.
De cel 47 is ook werkzaam als een luisteraar voor een groep 42. Een enkele cel zoals is getoond kan een melder voor één groep zijn en een luisteraar voor een andere groep (de cellen worden geprogrammeerd om 25 deze functies uit te voeren, zoals zal worden besproken). Evenwel kan, zoals thans wordt beoogd, een enkele cel niet voor meer dan één groep melden.
(In de huidige voorkeuruitvoering heeft elke cel drie invoer/uitvoerparen lijnen en een selectielijn. Elk paar deelt een gemeenschappelijke verzameling systeemelementen. De lijnen kunnen onafhankelijk voor sommige functies worden gebruikt wanneer de vereiste gedeelde systeemelementen niet in conflict 30 verkeren. In andere functies worden de lijnen gebruikt als paren. In dit voorbeeld wordt een paar leidingen vanaf de cel 27 gekoppeld aan een lichtschakelaar en een ander paar wordt gebruikt voor communicaties vanuit de melder, de cel 27.)
Subkanaal: In figuur 4 wordt een eerste aantal cellen getoond dat communiceert via een gemeenschappelijk medium, zoals een ineengedraaid paar 50 (de cellen worden getoond als ”C”, melders als ”A” en 35 luisteraars als ”L”). Dit (bijvoorbeeld ineengedraaid paar 50) wordt omschreven als een subkanaal, dat wil zeggen een verzameling cellen die alle rechtstreeks met elkaar communiceren over hetzelfde medium. Een uitzending door welk lid van het subkanaal dan ook, zoals de cel 49, zal worden gehoord door alle leden van dat subkanaal via het getwiste paar 50.
Kanaal: Een kanaal omvat twee of meer subkanalen wanneer alle cellen communiceren onder gebruik-40 making van hetzelfde medium. In figuur 4 wordt een ander aantal cellen getoond dat is gekoppeld aan een getwist paar 52 dat een ander subkanaal vormt. Veronderstel dat cellen 56 en 57 communiceren met elkaar via een getwist paar 72. Zij vormen nog een ander subkanaal. De cellen die zijn verbonden met de getwiste paren 50, 52 en 72 omvatten een enkel kanaal. Het is mogelijk dat de getwiste paren 50, 52 en 72 één doorlopend getwist paar zijn met één subkanaal 50 zo ver verwijderd van het tweede subkanaal 52 dat de 45 enige communicatie tussen subkanalen is over het gedeelte van het getwiste paar 72 dat loopt tussen de cellen 56 en 57. In dit geval zijn de cellen 56 en 57 aangewezen als "herhaler" in aanvulling op welke andere functie zij kunnen hebben (bijvoorbeeld melder of luisteraar).
Een groep 55 is geïllustreerd in figuur 4, waarbij de groep een melder en een luisteraar omvat in de twee verschillende subkanalen. Een andere groep 75 is weergegeven, waarbij deze groep een melder op één 50 subkanaal 51 en een subkanaal 52 omvat, waarbij de subkanalen geen deel uitmaken van dezelfde kanalen aangezien zij verschillende media gebruiken.
Poortweg: Een poortweg leest pakketten vanuit twee verschillende media en zendt deze opnieuw rond. Een cel kan een poortweg zijn. Communicaties tussen kanalen verlopen via poortweg 54.
In figuur 4 is een aanvullend subkanaal dat de cel 58 omvat gekoppeld aan een ander medium 51, 55 bijvoorbeeld een gemeenschappelijke voedingslijn. De cel 58 is verbonden met een kanaalpoortweg 54 die op zijn beurt communiceert met het getwiste paar 52. De poortweg 54 behoeft niet noodzakelijkerwijze hetzij een melder- hetzij een luisteraarfunctie uit te voeren, maar kan in plaats daarvan ten behoeve van de 194564 6 geïllustreerde uitvoering alleen een kanaalpoortwegfunctie uitvoeren door een communicatie te verschaffen tussen twee verschillende media.
Subnetwerk: Een subnetwerk omvat alle cellen die dezelfde stelsel identificatie (stelsel-ID) hebben. Bijvoorbeeld kunnen alle cellen in een enkele gezinshuis dezelfde stelsel-ID hebben. Bijgevolg kunnen de 5 kanalen van figuur 4 onderdeel zijn van hetzelfde subnetwerk omdat zij dezelfde stelsel-ID delen.
Volledig netwerk: Een volledig netwerk kan een aantal subnetwerken omvatten die elk een verschillende stelsel-ID hebben; een communicatieprocessor wordt gebruikt voor het uitwisselen van pakketten tussen subnetwerken. De communicatieprocessor vertaalt pakketten die hun stelsel-ID wisselen, adressering en andere informatie. Twee fabrieksgebouwen kunnen elk hun eigen stelsel-ID hebben, maar een besturing 10 tussen die twee wordt toegepast door het wisselen van stelsel-ID’s. (Het woord ’’netwerk” wordt in deze aanvrage gebruikt in zijn meer algemene betekenis en verwijst dientengevolge naar andere netwerken dan een ’’volledig netwerk” zoals in deze paragraaf is gedefinieerd.)
Andere termen die verderop worden gebruikt zijn:
Tasterpakket: Een pakket gerouteerd door stroming die routeringsinformatie verzameld wanneer deze 15 door het netwerk passeert.
Groepeerorgaan: Een orgaan dat routebepaling bestuurt tussen cellen, cellen aan groepen toewijst en een functie toewijst aan groepsleden.
Wedijver: De toestand die bestaat wanneer twee of meer cellen trachten een uitzending te verzenden op hetzelfde subkanaal op hetzelfde ogenblik en hun signalen interfereren.
20
B. GROEPFORMATIE
1. Cellen toegewezen aan een groep door een postinstallatiegroeporgaan.
Veronderstel dat het aantal cellen dat is getoond in figuur 5 alle zijn verbonden om te communiceren over de voedingslijnen in een huis en deel uitmaken van hetzelfde kanaal. Veronderstel voorts dat een cel, 25 melder 60, moet worden gegroepeerd met de luisteraar 65. De lijnen tussen de cellen, zoals de lijn 59, worden gebruikt om aan te geven welke van de cellen rechtstreeks met elkaar kunnen communiceren, bijvoorbeeld melder 60 en cel 61 kunnen met elkaar communiceren. (Cellen 61, 62, 63, 64 en 66 kunnen natuurlijk melders of luisteraars in andere groepen zijn, maar zijn ten behoeve van de toelichting getoond als "C" in figuur.) Omdat melder 60 en de cellen 61, 62 en 63 alle met elkaar communiceren zijn zij op 30 hetzelfde subkanaal. Op soortgelijke wijze zijn de cellen 62, 64, 65 en 66 een ander subkanaal. (Er zijn andere subkanalen in figuur 5). Belangrijk is echter dat de melder 60 en de luisteraar in verschillende subkanalen van het kanaal van figuur 5 zijn en er zijn talrijke routes waarlangs een bericht kan worden doorgegeven vanuit de melder 60 naar de luisteraar 65, bijvoorbeeld via cellen 61 en 64 of via cellen 62 en 64, enzovoort.
35 Opgemerkt zij dat ofschoon alle cellen op hetzelfde voedingsstelsel van een huis verkeren, zij niet rechtstreeks met elkaar kunnen communiceren. Bijvoorbeeld kan de melder 60 op een schakeling zijn die slechts is gekoppeld aan de luisteraar 65 via een draad met grote lengte, welke draad over de lengte van een huis loopt en een lage impedantie-verzamelrail van een schakelingonderbrekerpaneel. De hoogfrequente communicatieberichten kunnen voldoende worden verzwakt door dit pad om rechtstreekse 40 communicaties tussen cellen te verhinderen, ofschoon zij ruimtelijk dicht bij elkaar zijn.
Voor de volgende beschrijving wordt verondersteld dat elke cel zonder te interfereren met de uitzending van andere cellen kan uitzenden. Dat wil zeggen dat berichten niet met elkaar interferes Het geval waarbij enige wedijver optreedt wordt behandeld onder de protocolsectie van deze aanvrage.
In een uitvoering wordt de groep van de melder 60 en de luisteraar 65 gevormd door gebruik te maken 45 van het groepeerorgaan dat is getoond in figuur 28. Opgemerkt zij dat voordat deze groep wordt gevormd, de melder 60 en de luisteraar 65 gewone cellen zijn, die niet aangewezen zijn om een melder of een luisteraar te zijn. Aan elk groepeerorgaan kan een unieke 48-bits stelsel-ID worden toegewezen tijdens de vervaardiging. (In de huidige voorkeursuitvoering wordt een 48-bits nummer gebruikt). In de huidige voorkeursuitvoering is een cel ingesloten bij elk groepeerorgaan. De cel-ID wordt de stelsei-ID. Dit 50 waarborgt dat elk stelsel een unieke stelsel-ID heeft. Bijvoorbeeld heeft elk huis zijn eigen ’’groepeer”-orgaan en derhalve zijn eigen stelsel-ID voor de subnetwerken die worden gebruikt in het huis. Deze stelsel-ID wordt gebruikt in celpakketten voor het subnetwerk. In dit voorbeeld heeft het groepeerorgaan de cel-ID’s van de cellen 60 en 65 beschikbaar. (Verscheidene werkwijzen voor het verkrijgen van cel-ID's zullen verderop worden beschreven.) 55 Het groepeerorgaan wordt verbonden met de cel 60 door te communiceren via één van zijn drie paren invoer/uitvoer (l/0)-lijnen van de cel (of de selectiepen) en het groepeerorgaan leest het 48-bits ID-nummer van de cel 60. (Verschillende werkwijzen voor het bepalen van de cel-ID’s worden in de volgende paragraaf 7 194564 beschreven.) Het groepeerorgaan wekt vervolgens een willekeurig binair bitnummer op dat in de huidige voorkeursuitvoering 10-bits is. Dit nummer is werkzaam als een groepidentificatienummer (ook aangeduid als het groepadres) voor de groep die de melder 60 en de luisteraar 65 omvat. Het groepeerorgaan controleert dit nummer tegen andere groep-ID’s die het eerder heeft toegewezen om vast te stellen of de 5 groep-ID eerder is gebruikt. Indien deze eerder is gebruikt, wekt het een ander nummer op. (Een enkel groepeerorgaan volgt bijvoorbeeld alle groep-ID’s die zijn toegewezen in een enkel huis.) Het groepeerorgaan programmeert de cel 60, waarbij deze wordt aangewezen als een melder.
Het groepeerorgaan kan veroorzaken dat de melder 60 het groepnummer in een speciaal pakket rondzendt dat alle cellen in het netwerk vraagt het bericht te bevestigen indien zij zijn aangewezen als een 10 lid van deze groep. Dit is een andere wijze om te verifiëren dat de groep-ID niet is gebruikt.
Het groepeerorgaan bepaalt nu het ID-nummer van de cel 65. Dit kan worden uitgevoerd door het groepeerorgaan rechtstreeks met de cel 65 te verbinden, zelfs voordat de cel wordt geïnstalleerd of door andere werkwijzen die in de volgende paragraaf worden besproken. (Aan een cel en een groep kunnen ASCII-namen worden toegewezen, bijvoorbeeld "portieklicht” (celnaam) en "buitenlichten” (groepnaam)). Dit 15 wordt gebruikt om een sectie van cel-ID’s of groep-ID’s mogelijk te maken door toegang te hebben tot de ASCII-naam.
Nu veroorzaakt het groepeerorgaan dat de melder 60 een tasterpakket uitzendt. Het tasterpakket bevat de ID van de cel 65. Het pakket geeft alle cellen die het pakket ontvangen de opdracht dit te herhalen en geeft de cel 65 de opdracht het pakket te bevestigen. Elke cel die het tasterpakket ontvangt herhaalt dit en 20 voegt aan het herhaalde pakket zijn eigen ID-nummer toe. Elke cel herhaalt slechts het pakket eenmaal (het mechanisme om te verhinderen dat een tasterpakket meer dan eens wordt herhaald, wordt verderop beschreven.)
De cel 65 ontvangt het tasterpakket via talrijke routes, waaronder die welke in het diagram het meest direct lijken (via cel 62) en die welke langer zijn, bijvoorbeeld via de cellen 61 en 64. Verondersteld wordt 25 dat het eerste tasterpakket dat arriveert bij de cel 65 de meest directe route nam en bijgevolg de voorkeursroutering is. (Veronderstel dat dit via de cel 62 is). De cel 65 ontvangt een pakket dat aangeeft dat het tasterpakket door de cel 60 werd verzonden, herhaald door de cel 62 en bedoeld voor de cel 65. De andere tasterpakketten die worden ontvangen door de cel 65 na dit eerste pakket, worden terzijde gelegd door de cel 65.
30 De cel 65 verzendt nu een bevestiging terug naar de melder 60. Dit pakket omvat de routering van het tasterpakket (bijvoorbeeld herhaald door de cel 62). Het pakket geeft de cel 62 de opdracht het pakket te herhalen om zijn ontvangst te bevestigen.
Nadat de melder 60 het bevestigingspakket voor de cel 65 ontvangt, bepaalt deze dat de cel 62 een herhaler moet zijn. De groepeerorganen veroorzaken dat de melder 60 een herhalertoewijzingspakket zendt 35 dat het unieke ID-nummer van de cel 62 bevat, het groepnummer en een bericht dat de cel 62 informeert dat aan deze een herhalerfunctie voor de groep is toegewezen. Dit veroorzaakt dat de cel 62 al die pakketten herhaald voor de groep die meldercel 60 en 65 omvat. Een ander bericht wordt vanuit de melder 60 verzonden onder de besturing van het groeporgaan herhaald door de cel 62, waarbij de cel 65 wordt aangewezen als een luisteraar, waardoor deze reageert op berichten voor de groep (de cel 65 wordt een 40 groepslid.) Het groepeerorgaan wijst aan leden een lidnummer toe dat wordt opgeslagen door lidcellen.
De hierboven beschreven groepformatie is getoond in figuur 8 door stappen of blokken 68 tot en met 72. Blok 68 illustreert het uitzenden van het tasterpakket (bijvoorbeeld cel 60 verzendt het eerste tasterpakket naar alle cellen). Het pakket omvat het adres van een bestemmingscel. Wanneer het pakket door het netwerk gaat, het pakket en verzamelt het de ID-nummers van die cellen die het pakket herhalen (blok 69). 45 Blok 70 toont de bevestiging (antwoord) aan het tasterpakket vanuit de bestemmingscel (bijvoorbeeld cel 65). Dit pakket zendt de ID-nummers van de herhalers die zijn opgenomen in het eerste ontvangen tasterpakket terug. Herhalertoewijzingspakketten worden uitgezonden door de melder, hetgeen veroorzaakt dat elke herhaler pakketten opnieuw rondzendt voor de groep; dit is getoond door blok 71. Tenslotte, zoals is getoond door het blok 72, wordt de bestemmingscel, zoals de cel 65, aangewezen als een luisteraar.
50 2. Cellen toegewezen aan een groep door een pre-installatiegroepeerorgaan Er kunnen verschillende typen pre-installatiegroepeerorganen zijn, zie bijvoorbeeld figuur 28 voor een orgaan dat kan worden gebruikt. Een type is een orgaan dat een fabrikant gebruikt om cellen vooraf aan groepen toe te wijzen. Een ander type pre-installatiegroepeerorgaan is er een die een detailhandelaar of 55 een andere celverkoper kan gebruiken om cellen aan groepen toe te wijzen voorafgaande aan een installatie.
Een groepeerorgaan wijst een cel toe aan een groep en wijst de celfunctie(s) toe voor die groep. Het 194564 8 groepeerorgaan kan ook een stelsel-ID toewijzen aan de cel. De stelsel-ID die zijn toegewezen door een pre-installatiegroepeerorgaan is niet noodzakelijkerwijze een unieke stelsel-ID. (Postinstallatiegroepeer-organen wijzen een unieke stelsel-ID toe aan elk stelsel.)
Een werkwijze die kan worden gebruikt door pre-installatiegroepeerorganen om een stelsel-ID op te 5 wekken is door een stelsel-ID te kiezen uit een reeks van 48-bits adres- en stelsel-ID-nummers die zijn gereserveerd voor gebruik als pre-installatiestelsel-ID’s. Net als de cel-ID’s in het bereik 1-1023 zijn gereserveerd voor gebruik als groep-ID's en groepadressen, kunnen de cel-ID's in het bereik 1024-2047 worden gereserveerd voor gebruik als pre-installatiestelsel-ID’s.
Het is wenselijk dat groepeerorganen en andere netwerkbesturingsorganen in staat zijn pre-10 installatiestelsel-ID’s te identificeren tegenover postinstallatiestelsel-ID’s. Omdat postinstallatiestelsel-ID’s worden opgewekt door het kopiëren van een cel-ID, moeten cel-ID’s niet worden toegewezen in het bereik dat is gereserveerd voor pre-installatiestelsel-ID’s. Dientengevolge moeten ID-nummers in dat bereik niet worden toegewezen aan cellen als cel-ID’s.
Cellen kunnen worden verkocht in verzamelingen die vooraf zijn toegewezen aan een groep door de 15 fabrikant. Het type pre-installatiegroepeerorgaan dat wordt gebruikt door de fabrikant wijst cellen toe aan groepen door de geschikte codes in het niet-vluchtige geheugen van de cel te schrijven. De gebruiker kan een dergelijke verzameling cellen installeren en deze zal werkzaam zijn zonder een toewijzing door een postinstallatiegroepeerorgaan, mits de verzameling cellen kan communiceren via een enkel subkanaal.
Een gebruiker kan cellen aan een groep toewijzen op het ogenblik dat cellen worden gekocht of op elk 20 ander tijdstip voorafgaand aan de installatie. Dergelijke cellen worden, in afwijking van het eerder besproken geval, niet aan groepen toegewezen door de fabrikant en worden niet-toegewezen cellen genoemd. Niet toegewezen cellen hebben alle dezelfde stelsel-ID, een stelsel-ID-nummer dat is gereserveerd voor gebruik uitsluitend door niet toegewezen cellen.
De gebruiker wijst een verzameling cellen toe aan een groep door gebruik te maken van een pre-25 installatiegroepeerorgaan dat verschillend kan zijn van het pre-installatiegroepeerorgaan dat wordt gebruikt door een fabrikant.
Op kenmerkende wijze zal een dergelijk groepeerorgaan werkzaam zijn op één cel op een tijdstip. De bediener geeft het groepeerorgaan de opdracht een nieuwe groep-ID en stelsel-ID op te wekken en vervolgens wordt elke cel op zijn beurt verbonden met het orgaan. De bediener geeft het groepeerorgaan 30 de opdracht een cel aan de groep toe te wijzen terwijl de cel is verbonden met het groepeerorgaan. Het groepeerorgaan wijst cellen dezelfde groep-ID en stelsel-ID totdat het de opdracht ontvangt van de bediener om een nieuwe groep-ID en stelsel-ID op te wekken.
De gebruiker kan een dergelijke verzameling cellen installeren en deze zal werkzaam zijn zonder gebruik van een postinstallatiegroepeerorgaan, met de verzameling cellen kunnen communiceren via een enkel 35 subkanaal.
3. Groepering niet-toegewezen cellen en zelf-toewijzing na installatie
Niet-toegewezen cellen kunnen een groep vormen en zichzelf toewijzen aan de groep na installatie op de volgende wijze.
40 De eerste meldercel die wordt gestimuleerd via zijn sensoringang (bijvoorbeeld een lichtschakelaar) bestuurt het groepformatieproces. Deze kiest een stelsel-ID-nummer willekeurig uit het bereik van stelsel-ID-nummers die zijn gereserveerd voor pre-installatiegroepeerorganen. Hij kiest een groep-ID-nummer willekeurig. Vervolgens zendt hij het groep-ID-nummer in een pakket uit dat om een antwoord verzoekt vanuit elke cel die lid is van die groep.
45 Indien de zendende cel een dergelijk antwoord ontvangt, kiest deze willekeurig een andere groep-ID. De cel gaat voort met dit proces van selecteren van een willekeurige groep-ID en het testen om te zien of dit reeds in gebruik is totdat een groep-ID wordt gevonden dat niet in gebruik is in het stelsel waarin wordt gewerkt.
Systeemgekozen configuratie-informatie van een niet-toegewezen cel die is geprogrammeerd in de 50 fabriek identificeert zijn functie als hetzij een luisteraar hetzij een melder. Indien de niet-toegewezen cel een melder is, wacht deze op een stimulering van zijn waarnemingsingang, en wanneer deze wordt gestimuleerd, zendt de cel een pakket dat is geadresseerd aan een groep.
Indien een niet-toegewezen cel een luisteraar is, luistert deze na inbedrijfstelling voor een pakket. De cel neemt de groep-ID van het eerste pakket dat deze ontvangt en wijst zichzelf toe aan die groep. De cel 55 zendt vervolgens een antwoord naar de meldercel. Dit antwoord is niet uitsluitend een bevestigingspakket; het is een pakket dat de cel identificeert als een luisteraar in de groep en het pakket moet worden bevestigd door de melder. Dit waarborgt dat alle luisteraaridentificatiepakketten bij de melder zullen aankomen, ook al 9 194564 zal er wedijver en botsingen zijn in het proces.
De cel die de groepmelding verzendt, stelt een lijst van groepsleden samen wanneer elk antwoord binnenkomt. De cel zendt vervolgens een pakket naar elke luisteraar dat aan die luisteraar een groeplid-nummer toewijst.
5 4. Niet-toegewezen cellen die zich aansluiten bij een reeds bestaande groep na installatie Niet-toegewezen cellen kunnen worden toegevoegd aan bestaande stelsels en worden toegewezen aan een groep op een wijze die soortgelijk is aan de werkwijze die hierboven is beschreven in paragraaf 3. Een luisteraar sluit zich aan bij het stelsel en een groep door dezelfde werkwijze als in de bovenstaande 10 paragraaf 3.
In het bovenstaande voorbeeld wacht de melder om te worden gestimuleerd via zijn waarnemingsingang. Een niet-toegewezen melder wacht op zijn eerste sensoringangsstimulatie of zijn eerst ontvangen pakket. Van deze twee gebeurtenissen bepaalt de gebeurtenis die het eerst optreedt de daaropvolgende acties van de meldercel.
15 Indien de cel eerst wordt gestimuleerd, bestuurt deze een groepformatieproces juist zoals in het bovenstaande voorbeeld. Indien de meldercel eerst een groeppakket ontvangt, sluit deze zich aan bij die groep als een melder. Vervolgens zendt de cel een pakket naar de groepmelder, waarbij wordt verzocht om configuratie-informatie over de groep (groepomvang, aantal melders, enzovoort) en om de toewijzing van een groepslidnummer.
20 C. WERKWIJZEN VOOR HET IDENTIFICEREN VAN EEN CEL VOOR HET GROEPEREN Opdat een groepeerorgaan de stappen die vereist zijn om een groep te vormen of om een cel aan een groep toe te voegen doorloopt, moet het de ID’s van de aan de groep toe te voegen cellen kennen. Het groeporgaan gebruikt vervolgens deze cel-ID’s om opdrachten aan de cellen te adresseren gedurende het 25 groeperingsproces. De werkwijzen die een gebruiker van een groepeerorgaan kan gebruiken om de cel-ID’s te verkrijgen worden hieronder opgesomd. Merk op dat de bevoegdheid van een groepeerorgaan of een ander besturingsorgaan om met een cel te communiceren in het hiernavolgende voorbeeld kan worden beperkt door veiligheidsprocedures, indien gebruikt. De veiligheidsprocedures, beperkingen ten aanzien van communicaties en veiligheidsniveaus zijn niet kritisch voor de onderhavige uitvinding. In het volgende 30 voorbeeld wordt verondersteld dat er geen veiligheidsprocedures zijn geplaatst. In het bijzonder kan het voor een groepeerorgaan onmogelijk zijn te communiceren met geïnstalleerde cellen totdat het groepeerorgaan de stelselsleutel (stelsel-ID en codeersleutels) heeft.
1. Rechtstreekse verbinding met de cel 35 Het groepeerorgaan kan met een l/O-lijn van het celpakket zijn verbonden en vervolgens een bericht naar de cel verzenden waarbij om zijn ID wordt verzocht. Een fysieke verbinding kan worden gebruikt om een cel-ID te vinden hetzij voordat hetzij nadat de cel is geïnstalleerd. Bekende organen kunnen worden gebruikt (bijvoorbeeld een smeltelement of een geprogrammeerde blokkeeropdracht) om een gebruiker in staat te stellen deze functie te blokkeren in een geïnstalleerde cel om de veiligheid van het stelsel te beschermen.
40 2. Selectie van de cel door gebruik van een speciale pen
De gebruiker kan het groepeerorgaan of enig ander selectie-orgaan gebruiken om op fysieke wijze de cel te selecteren door een celingangspen te stimuleren die is aangewezen om de selectiefunctie te bedienen. Het groepeerorgaan communiceert met de cel via de normale communicatiekanalen en zendt een rondzendings-45 bericht waarbij alle geselecteerde cellen worden verzocht met hun ID te antwoorden. Slechts één cel wordt geselecteerd zodat slechts die cel zal antwoorden op het verzoek. Een fysieke selectie kan worden gebruikt om een cel-ID te vinden hetzij voordat hetzij nadat de cel is geïnstalleerd. Wederom kan in een orgaan zijn voorzien om een gebruiker in staat te stellen deze voorziening te blokkeren om de veiligheid van het stelsel te beschermen.
50 3. Opvraag alle namen van eerder gegroepeerde cellen
In dit voorbeeld wordt verondersteld dat de ASCII "groepen” en ”cellen”-namen eerder zijn toegewezen aan de cellen. Voor deze werkwijze vraagt het groepeerorgaan van de cellen in een stelsel om hun groep- en celnaam (ASCII-naam) door te geven. De gebruiker neemt de lijst van groepnamen door onder gebruikma-55 king van het groepeerorgaan. De gebruiker selecteert de naam van de groep waarvan wordt gedacht dat deze de doelcel bevat. Het groepeerorgaan geeft de namen weer van alle cellen binnen de groep en hun toegewezen taken (melder, luisteraar, herhaler). De gebruiker selecteert de naam van de cel waarvan wordt 194564 10 gedacht dat deze de doelcel is.
Indien de geselecteerde cel een melder is, roept het groepeerorgaan de gebruiker op de melder te activeren door zijn ingang te stimuleren. Indien de cel bijvoorbeeld is verbonden met een lichtschakelaar, schakelt de gebruiker de schakelaar aan en uit. De cel zendt melderpakketten naar de groep. Het 5 groepeerorgaan luistert naar het communicatiekanaal en komt de groep- en lidnummers of andere codes van de geactiveerde melders te weten.
Indien de geselecteerde cel een luisteraarcel is, zendt het groepeerorgaan pakketten naar de cel (gebruik makende van de groep- en lidnummers voor het adresseren), waarbij de opdracht wordt gegeven zijn uitgang te doen omklappen. Bijvoorbeeld zal, indien de cel licht bestuurt, het licht aan en uit flitsen. Dit stelt 10 de gebruiker in staat te verifiëren dat hij de juiste cel heeft geselecteerd.
Het groepeerorgaan zendt een pakket (gebruik makende van groepen lidnummers voor het adresseren) naar de doelcel met een opdracht voor de doelcel om zijn cel-ID terug te zenden. Het groepeerorgaan kent nu de doel-ID en kan verdergaan met het groeptoewijzingsproces.
Namen opvragen wordt gebruikt om een cel-ID te vinden voordat of nadat de cel is geïnstalleerd.
15 4. Stimuleren van een groep
Deze werkwijze wordt gebruikt in een netwerk waarin groep- en cel-ASCII-namen zijn toegewezen. De gebruiker geeft het groepeerorgaan de opdracht op de volgende groepmelding te wachten. Vervolgens stimuleert de gebruiker de melder in de van belang zijnde groep. Indien bijvoorbeeld de melder een 20 lichtschakelaar is, werpt de gebruiker de schakelaar om. Het groepeerorgaan hoort het meldingspakket en neemt hieruit de groep-ID.
De gebruiker kan verifiëren dat deze groep-ID voor de gewenste groep is door te veroorzaken dat het groepeerorgaan pakketten naar alle groepluisteraars zendt waarbij hen de opdracht wordt gegeven hun uitgangen om te klappen. De gebruiker verifieert dat het de gewenste groep is door de acties van de 25 luisteraars zelf (bijvoorbeeld indien de groep bestaat uit lichtbesturingen, flitst het licht) te observeren.
Onder gebruikmaking van die groep-ID, zendt het groepeerorgaan nu een pakket uit naar de groep, waarbij elke cel wordt verzocht met zijn celnaam te antwoorden totdat de van belang zijnde cel is gevonden. De gebruiker selecteert die naam en het groepeerorgaan kan, die cel-ID wetende, verdergaan met het groeptoewijzingsproces.
30 Indien een gebruiker kiest, kan de ID van de cel worden geverifieerd voordat verder wordt gegaan met de groepeerprocedure. De volgende procedure wordt gebruikt om te verifiëren dat de ID voor de doelcel is.
Indien de geselecteerde cel een melder is, roept het groepeerorgaan de gebruiker op de melder te activeren door zijn ingang te stimuleren. Is de cel bijvoorbeeld verbonden met een lichtschakelaar, dan schakelt de gebruiker de schakelaar aan en uit. Het groepeerorgaan is dan in staat om het groepadres en 35 lidnummer van de cel te weten te komen.
Indien de geselecteerde cel een luisteraar is, zendt het groepeerorgaan pakketten naar de cel (gebruik makende van de groep- en lidnummers, voor het adresseren), waarbij de opdracht wordt gegeven zijn uitgang te doen omklappen. Indien, de cel bijvoorbeeld licht bestuurt, zal het licht aan en uit flitsen. Dit stelt de gebruiker in staat te verifiëren dat hij de juiste cel heeft geselecteerd.
40 5. Stimuleren van een melder
Deze werkwijze wordt gebruikt in een netwerk waarin geen groep- of cel-ASCII-namen zijn toegewezen maar waarbij melders en luisteraars zijn toegewezen. Het groepeerorgaan zendt een pakket uit naar alle cellen in het netwerk, waarbij de opdracht wordt gegeven dat elke melder bij de volgende keer dat hij wordt 45 gestimuleerd een pakket uitzendt dat zijn ID bevat. Het groepeerorgaan roept vervolgens de gebruiker op de melder te stimuleren door zijn waargenomen orgaan te activeren; bijvoorbeeld het inschakelen van een lichtschakelaar voor een lichtschakelaarmelder. Aangezien de gebruiker slechts één melder zal stimuleren, zal het groepeerorgaan slechts één pakket met een cel-ID ontvangen.
Er is een kans dat een andere meldercel zal worden gestimuleerd op hetzelfde ogenblik. Misschien dat 50 iemand anders een lichtschakelaar omschakelt of dat een temperatuursensor een temperatuurverandering detecteert. De gebruiker zou willen kunnen verifiëren dat de ontvangen ID voor de juiste cel is. Om te verifiëren dat de cel-ID de juiste is, voert de gebruiker het melderstimuleerproces een tweede maal uit en verifieert dat dezelfde resultaten optreden.
55 6. Omklappen van een luisteraar
Deze werkwijze wordt gebruikt in een netwerk waarin geen groep- of celnamen is toegewezen. Het groepeerorgaan zendt een pakket uit dat cellen die luisteraars zijn oproept op met hun ID te antwoorden.
11 194564
Het groepeerorgaan moet het aantal cellen dat antwoordt beperken, zodat het pakket een ID-bitmasker bevat om antwoorden te beperken tot een deelverzameling van de mogelijke cel-ID’s. Wanneer het groepeerorgaan een lijst van iuisteraar-ID’s heeft gevormd, stelt het de gebruiker in staat om elke luisteraar te doen omklappen, waardoor wordt veroorzaakt dat de luisteraarcel zijn uitgang in en uitschakelt. De 5 gebruiker neemt de lijst van luisteraarcellen door totdat hij observeert dat de doelcel zijn uitgang omklapt.
De gebruiker heeft dan de cel voor het groepeerorgaan geïdentificeerd en kan voortgaan met de groepeer-operatie.
D. PAKKETOPMAAK
10 Elk pakket dat wordt uitgezonden door een cel bevat een aantal velden. Bijvoorbeeld is een opmaak die wordt gebruikt voor groepmeldingen getoond in figuur 6. Andere pakketopmaken zijn uiteengezet in appendix A. Elk pakket begint met een aanhef die wordt gebruikt voor het synchroniseren van de ingangs-schakelingen (bitsynchronisatie) van ontvangende cellen. De specifieke aanhefcode die wordt gebruikt in de huidige voorkeursuitvoering wordt beschreven als deel van de drie-uit-zes combinatorische codes (figuur 9). 15 Elk van de pakketten begint en eindigt met een vlagveld van 6 bits. De vlagveldcode wordt ook in figuur 9 beschreven.
Thans heeft het de voorkeur dat elke cel het gehele pakket inleest, een cyclische redundantiecode-berekening (CRC) uitvoert op het pakket met uitzondering van het wedijvertimerveld en het resultaat vergelijkt met het CRC-veld van het ontvangen pakket. De ALU 102 van figuur 12 heeft hardware voor het 20 berekenen van de pakket-CRC en CRC-registers 130 voor het opslaan van tussenresultaten. Indien voor een binnenkomend pakket de pakket-CRC niet kan worden geverifieerd, wordt het pakket verworpen. Het CRC-veld van het pakket is 16 bits zoals berekend, vervolgens omgezet in 24-bits velden voor een verzending in een drie-uit-zes code onder gebruikmaking van de codering volgens figuur 9. (Voor de rest van de bespreking van pakketvelden in deze paragraaf, wordt de veldlengte beschreven voorafgaande aan 25 het coderen met de drie-uit-zes combinatorische codes van figuur 9.) In de huidige voorkeursuitvoering is de CRC een CCITT-standaardalgoritme (X16 + X12 + Xs + 1).
De stelsel-ID is een 32-bits veld, zoals thans de voorkeur heeft. De andere 16 bits van de 48-bits stelsel-ID worden opgenomen in de CRC-berekening maar niet verzonden als deel van het pakket 30 (figuur 29).
Het verbindingsadresveld is een 48-bits veld. Wanneer dit veld geheel nul is, wordt het pakket geïnterpreteerd als een over het stelsel verspreide uitzending waarop door alle cellen wordt gereageerd. Bijvoorbeeld heeft een tasterpakket een alle-nul veld voor het verbindingsadres. Groepadressen worden opgenomen in het verbindingsadres. Voor groepadressen zijn de eerste 38 bits nul en de resterende 10 bits 35 bevatten het groepadres. (De cel-ID-nummers die worden toegewezen in de fabriek zoals eerder vermeld zijn gelegen in het bereik van 1024 tot 248. omdat 210 adressen voor groepen worden gereserveerd.) Het verbindingsadres is, in sommige gevallen, een individueel celadres. (Bijvoorbeeld wanneer een cel de taak wordt toegewezen van herhaler of luisteraar.)
De wedijver-timer is een 10-bits veld met 6 aanvullende bits voor een CRC-veld (of een andere 40 controlesom) dat wordt gebruikt om de 10 bits van het timer-veld te verifiëren. Elke cel die een pakket herhaalt reageert op dit veld indien de cel moet wachten met het verzenden van het pakket. Indien pakketten worden verzonden door andere cellen, moet een cel wachten met het verzenden van zijn pakket, waarbij de wachttijd wordt aangegeven door een neerwaartse telling van het wedijver-timerveld. De snelheid waarmee dit veld wordt afgeteld kan worden geprogrammeerd in een cel en deze snelheid is een functie 45 van het type netwerk. Het veld start met een constante die kan worden gekozen door het type netwerk. Elke cel die het pakket herhaald, telt af vanaf het getal in het veld op het tijdstip waarop het pakket worden ontvangen. Dientengevolge weerspiegelt, indien een pakket viermaal wordt herhaald en indien elk van de vier betrokken cellen wachten op uitzending, het aantal in het wedijverveld de som van de wachttijden die is afgetrokken van een constante (bijvoorbeeld alle enen). Wanneer het wedijvertimerveld alle-nul bereikt, legt 50 de cel die wacht op verzending van het pakket het pakket terzijde in plaats vein dit te verzenden. Dit voorkomt dat oudere pakketten aankomen en worden geïnterpreteerd als zijnde een nieuw pakket.
Zoals vermeld heeft de wedijver-timer zijn eigen 6-bits CRC-veld. Indien het wedijver-timerveld zou zijn opgenomen in de pakket-CRC, zou de pakket-CRC niet kunnen worden berekend totdat een pakket werkelijk kon worden uitgezonden. Dit zal·vele berekeningen in de laatste enkele microseconden vooraf-55 gaande aan een verzending vereisen. Om dit probleem te vermijden wordt een gescheiden CRC-veld gebruikt voor het wedijver-timerveld. Indien het wedijver-timerveld niet door zijn 6-bits CRC kan worden geverifieerd, wordt het pakket terzijde gelegd.
194564 12
Het sprongtelstandveld registreert het aantal sprongen of heruitzendingen die een pakket neemt alvorens bij zijn bestemming te arriveren. Dit 4-bits veld begint met een getal dat het maximale aantal heruitzendingen is dat is toegestaan voor een specifiek pakket en het wordt stapsgewijs verlaagd door elke cel die een pakket herhaald. Bijvoorbeeld is in een pakket dat ontstaat in een groepmelder, de beginnende "sprong”-5 telstand het maximale aantal heruitzendingen die het pakket moet ondergaan om alle cellen in een groep te bereiken. Wanneer dit veld geheel nul wordt, wordt het pakket terzijde gelegd door de cel in plaats van opnieuw te worden uitgezonden. Dientengevolge zijn zestien sprongen of heruitzendingen de limiet zoals thans is geïmplementeerd.
Het verbindingsbesturingsveld verschaft het verbindingsprotocol en bestaat uit 8 bits. Dit veld wordt in 10 een hiernavolgende paragraaf besproken die andere lagen van het protocol betreft.
Het willekeurige/pseudo-willekeurige getalveld bevat een 8-bits willekeurig getal dat wordt opgewekt voor elk pakket door de cel die het pakket oorspronkelijk uitzendt. Dit getal wordt niet opnieuw opgewekt wanneer een pakket wordt herhaald. Dit getal wordt gebruikt zoals zal worden beschreven in samenhang met figuur 8 om het opnieuw uitzenden van tasterpakketten te beperken; het kan ook worden gebruikt in 15 samenhang met een codering waarbij het gehele pakket moet worden gecodeerd.
Het netwerkbesturingsveld (4 bits) geeft het routeringstype of pakkettype aan, bijvoorbeeld netwerk-besturing, groepbericht, tasterbericht, enzovoort.
Het bronadresveld (variabele afmeting) bevat bijvoorbeeld het 48-bits ID-nummer van de cel waarin een pakket ontstaat. Voor een tasterpakket bevat dit veld het ID-nummer van de melder. Voor een bevestiging 20 bevat het veld de ID van de luisteraar. Voor een pakket dat is geadresseerd aan een groep bevat dit veld het groepslidnummer van de broncel.
De bestemmingslijst wordt beschreven in samenhang met figuur 7.
Het berichtveld is variabel is lengte en bevat het specifieke bericht dat wordt uitgezonden door het pakket. Kenmerkende berichten zijn opgenomen in appendix B. In het geval van een tasterpakket bevat het 25 veld de routering, dat wil zeggen van elke herhalende cel wordt zijn ID-nummer in dit veld opgenomen. De berichten zullen, wanneer eenmaal een groep is gevormd, door een melder 60 worden gebruikt om een luisteraar 65 te vertellen een lichtorgaan in te schakelen, enzovoort.
Het coderingsveld, indien gebruikt, bevat 16 bits die worden gebruikt om de authenticiteit van een gecodeerd pakket te verifiëren, waarbij op kenmerkende wijze dit gedeelte van een pakket niet wordt 30 gewijzigd wanneer een pakket wordt herhaald. Welbekende coderingstechnieken kunnen worden gebruikt.
De accolade 99 van figuur 6 geeft het gedeelte van een pakket weer dat ongewijzigd blijft wanneer een pakket wordt herhaald. Deze velden worden gebruikt om het herhalen te beperken, zoals zal worden beschreven in samenhang met figuur 8.
Het bestemmingslijstveld van het pakket van figuur 6 is getoond in figuur 7. De bestemmingslijst begint 35 met een 4-bits veld dat het aantal leden in een groep aangeeft dat is aangewezen om een bericht in het pakket te ontvangen. Dientengevolge kan het pakket worden gericht tot aan 16 leden van een groep. Het nummer van elk van de leden binnen de groep wordt vervolgens verzonden in daaropvolgende 8-bits velden. Het groepnummer dat is opgenomen in het verbindingsadres en het lidnummer dat is opgenomen in de bestemmingslijst vormen een adres dat wordt gebruikt om berichten over te dragen wanneer de groep 40 eenmaal is gevormd. Indien het bestemmingsnummer nul is, wordt het pakket aan alle leden van de groep geadresseerd. Voor sommige pakkettypen bevat dit veld de ID van de ontvangende cel (zie appendix A).
E. MECHANISME TER VOORKOMING VAN HET OPNIEUW RONDZENDEN VAN BEPAALDE PAKKETTEN
45 Zoals eerder is vermeld worden de tasterpakketten slechts eenmaal herhaald door elk van de cellen nadat het pakket in eerste instantie wordt uitgezonden. Een speciaal mechanisme dat is geprogrammeerd in elk van de cellen stelt de cellen in staat om pakketten te herkennen die deze recentelijk heeft herhaald.
Eerst zij in de herinnering geroepen dat wanneer elke cel een pakket uitzendt of opnieuw uitzendt, deze een pakket-CRC-veld berekent dat voorafgaat aan de eindvlag. Voor pakketten die worden herhaald is een 50 nieuwe CRC vereist aangezien ten minste de sprongtelstand zal veranderen, hetgeen een nieuw pakket-CRC-veld voor het pakket vereist. Dit CRC-veld is verschillend van het CRC-veld dat wordt besproken in de volgende paragraaf.
Wanneer elk pakket dat herhaling vereist wordt ontvangen, wordt een herhaler-CRC-nummer berekend voor de velden die zich uitstrekken vanaf het begin van de verbindingsbesturing tot het einde van de 55 bestemmingslijst, zoals is aangegeven door de accolade 99 in figuur 6. Wanneer een cel een pakket opnieuw uitzendt, slaat de cel de 16-bits herhaler-CRC-resultaten op in een circulatielijst van dergelijke nummers indien hetzelfde nummer niet reeds is opgeslagen. Het pakket wordt echter slechts herhaald 13 194564 indien de circulatielijst de herhaler-CRC-resultaten die zijn berekend voor het veld 99, niet bevat.
Bijgevolg wordt wanneer een pakket dat herhaling vereist wordt ontvangen, de CRC voor het veld 99 berekend. Dit is weergegeven door blok 73a in figuur 8. Dit nummer wordt vergeleken met een lijst van 8 nummers die zijn opgeslagen in het RAM dat is opgenomen in de cel, zoals aangeduid door blok 73b.
5 Indien het nummer niet worden gevonden onder de opgeslagen nummers, worden de nieuwe herhaler-CRC-resultaten opgeslagen, zoals aangegeven door blok 73c en het pakket wordt herhaald. Anderzijds, indien het nummer wordt gevonden, wordt dan het pakket niet herhaald. Zoals thans geïmplementeerd, worden 8 nummers opgeslagen in een circulatielijst, dat wil zeggen de oudste nummers worden terzijde geschoven wanneer nieuwe worden berekend.
10 Het gebruik van de herhaler-CRC-berekening die is verbonden met het veld 99 en het gebruik van de circulatielijst zullen het herhalen van een eerder opnieuw uitgezonden pakket voorkomen. Merk op dat zelfs wanneer een melder dezelfde opeenvolging van berichtend doorlopend opnieuw uitzendt, zoals bijvoorbeeld zou optreden bij het doorlopend in en uitschakelen van een lichtorgaan, een cel die is aangewezen als herhaler hetzelfde bericht opnieuw zal uitzenden aangezien het pakket dat berichten bevat verschillend 15 blijkt. Dit is waar omdat het willekeurige getal dat is uitgezonden met elk van de identieke berichten waarschijnlijk verschillend zal zijn. Echter, in het geval waarbij een cel hetzelfde bericht ontvangt dat binnen hetzelfde veld 99 (hetzelfde willekeurige getal) is opgenomen, zal het pakket met zijn bericht niet opnieuw worden uitgezonden. Dit is in het bijzonder waar voor tasterpakketten. Aldus sterven, voor het bevestigen van groepen zoals hierboven besproken, de zendtasterpakketten snel uit in het netwerk, aangezien zij in het 20 andere geval voor een zekere tijdsperiode terugkomen, hetgeen onnodig verkeer in het netwerk veroorzaakt.
F. DRIE-UIT-ZES COMBINA TORISCHCODEREN
In vele netwerken waarbij gebruik wordt gemaakt van de synchrone uitzending van digitale gegevens wordt 25 coderen toegepast om timing-informatie in de datastroom in te bedden. Een op grote schaal toegepaste codeerwerkwijze is de Manchester-codering. Manchester of een andere codering kan worden gebruikt om de hierboven beschreven pakketten te coderen, echter heeft de codering die hierna wordt beschreven thans de voorkeur.
Een drie-uit-zes combinatorische codering wordt gebruikt om gegevens voor een verzending te coderen 30 in de huidige voorkeursuitvoering. Alle gegevens worden gegroepeerd in 4-bits groepen ("nibbles”) en voor elk zo’n groep worden 6 bits verzonden. Deze 6 bits hebben altijd 3 enen en 3 nullen. De uitzending van 3 enen en 3 nullen In een zekere combinatie met elke 6 bits maakt het mogelijk dat de ingangsschakelingen van de cellen snel worden gesynchroniseerd (bit synch) en om byte-gesynchroniseerd te worden, zoals zal worden besproken in samenhang met de l/O-sectie. Ook worden, eenmaal gesynchroniseerd (uit de 35 vrijlopende modus) de overgangen van de binnenkomende bitstroom gebruikt om een synchronisatie te handhaven.
De rechterkolom van figuur 9 geeft een overzicht van de 20 mogelijke combinaties van 6-bits patronen waarbij 3 van de bits enen zijn en 3 van de bits nullen. In de linker kolom wordt het corresponderende 4-bits patroon dat wordt toegewezen aan het drie-uit-zes-patroon getoond. Indien de cel bijvoorbeeld de groep 40 0111 moet verzenden, wordt deze omgezet in het bitsegment 010011 alvorens te worden uitgezonden. Op soortgelijke wijze wordt 0000 omgezet in 011010 alvorens te worden verzonden. Wanneer een cel de 6-bits patronen ontvangt, zet deze hen terug om in de corresponderende 4-bits patronen.
Er zijn 20 drie-uit-zes patronen en slechts 16 mogelijke 4-bits combinaties. Bijgevolg hebben 4 drie-uit-zes patronen geen corresponderende 4-bits patroontoewijzingen. Het drie-uit-zes patroon 010101 wordt 45 gebruikt als een aanhef voor alle pakketten. De vlaggen voor alle pakketten zijn 101010. De aanhef- en vlagpatronen zijn in het bijzonder geschikt om te worden gebruikt door de ingangsschakelingen om een gegevenssynchronisatie te vestigen, aangezien zij overgangen hebben herhaald met de basisgegevens-snelheid. De 2 drie-uit-zes patronen die niet zijn toegewezen kunnen voor speciale omstandigheden en instructies worden gebruikt.
50 Dientengevolge bereidt een cel een pakket voor in het algemeen in een geheel aantal bytes en aan elke 4-bits groep wordt een 6-bits patroon toegewezen voor uitzending. De aanhef en vlaggen worden vervolgens toegevoegd. De schakelingen voor het omzetten van het 4-bits patroon naar de 6-bits patronen en omgekeerd voor het omzetten van de 6-bits patronen in de 4-bits patronen, worden getoond in de figuren 14 en 15.
194564 14
COMMUNICATIE* EN BESTURINGSCEL
A. OVERZICHT VAN DE CEL
Onder verwijzing naar figuur 10 omvat elke cel een multiprocessor 100, een invoer/uitvoersectie 107-110, een geheugen 115 en bijbehorende timingschakelingen die meer specifiek zijn getoond als een oscillator 5 112 en een timinggenerator 111. Ook is weergegeven een spanningspomp 116 die wordt gebruikt bij het geheugen 115. Deze cel wordt met gebruikelijke geïntegreerde schakelingen gerealiseerd. Bijvoorbeeld kan de multiprocessor 100 zijn vervaardigd door gebruik te maken van poortmatrixtechnologie, zoals beschreven in het Amerikaanse octrooi 4.642.487. De voorkeursuitvoering van de cel omvat het gebruik van CMOS-technologie, waarbij de gehele cel van figuur 10 op een enkel siliciumsubstraat als een geïntegreerde 10 schakeling wordt vervaardigd. (De multiprocessor 100 wordt soms aangeduid in het enkelvoud, ofschoon, zoals zal worden beschreven, sprake is van een multiprocessor, meer specifiek vier processoren).
De multiprocessor 100 is een stapel-georiënteerde processor met vier verzamelingen registers 101, die invoer verschaffen aan een rekenkundige logische eenheid (ALU) 102. De ALU 102 omvat twee gescheiden ALU’s in de huidige voorkeursuitvoering.
15 Het geheugen 115 verschaft een opslag voor een totaal van 64 kilobits in de huidige voorkeursuitvoering ofschoon deze specifieke afmeting niet kritisch is. Een gedeelte van het geheugen wordt gebruikt voor het opslaan van instructies (ROM-code 115a). Het volgende gedeelte van het geheugen is een willekeurig toegankelijk geheugen 115b dat een aantal gebruikelijke statische geheugencellen (dynamische cellen kunnen worden gebruikt) omvat. Het derde gedeelte van het geheugen omvat een elektrische wisbaar en 20 elektrisch programmeerbaar uitleesgeheugen (EEPROM) 115c. In de huidige voorkeursuitvoering past het EEPROM 115c geheugenorganen toe met zwevende poorten. Deze organen vereisen een hogere spanning (hoger dan de normale bedrijfsspanning) voor het programmeren en het wissen. Deze hogere potentiaal wordt verschaft vanuit een spanningspomp 116 op de chip. De gehele adresruimte voor het geheugen 115 wordt geadresseerd via de ALU 102a die een deel is van de ALU 102.
25 Het ROM 115a slaat de routines op die worden gebruikt voor het implementeren van de verscheidene lagen van het protocol dat wordt besproken in deze aanvrage. Dit ROM slaat ook routines op die nodig zijn voor het programmeren van het EEPROM 115c. Het toepassingsprogramma voor het plafonneren wordt opgeslagen in ROM 115a en is, in het algemeen, een routine die werkt als een ’’toestandsmachine” die wordt aangedreven door variabelen in het EEPROM 115c en RAM 115b. RAM 115b slaat communicatie-30 variabelen en berichten, toepassingsvariabelen, en ”toestandsmachine”-descriptoren op. De cel-ID, de stelsel-ID en communicatie- en toepassingsparameters (bijvoorbeeld groepnummer, lidnummer, melder/ herhaler/luisteraar-toewijzingen) worden opgeslagen in het EEPROM 115c. Het gedeelte van het EEPROM 115c dat de cel-ID opslaat is tegen schrijven beschermd, dat wil zeggen wanneer eenmaal geprogrammeerd met de cel-ID, kan het niet opnieuw worden geprogrammeerd.
35 De invoer/uitvoersectie van de cel omvat vier subsecties 107, 108, 109 en 110. Drie van deze subsecties 107, 108 en 109 hebben respectievelijke leidingen 103,104 en 105 voor het communiceren met een netwerk en/of het besturen of waarnemen van organen die zijn verbonden met de cel. De resterende subsectie 110 heeft een enkele selectiepen 106 die kan worden gebruikt om opdrachten in te lezen zoals gebruikt om de cel-ID te bepalen. Zoals thans geïmplementeerd, wordt de subsectie 110 in hoofdzaak 40 gebruikt voor timing en tellen. De invoer/uitvoersectie wordt geadresseerd door de processor via een toegewijde adresruimte, en verschijnt bijgevolg effectief in de processor als geheugenruimte. Elke l/O-subsectie kan worden gekoppeld aan elk van de subprocessoren. Deze voorziening, tezamen met de multiprocessorarchitectuur van de processor 100, voorziet in het continue (niet onderbroken) bedrijf van de processor. De l/O-sectie kan zijn vervaardigd uit welbekende schakelingen; de huidige voorkeursuitvoering 45 is getoond in de figuren 17 tot en met 23.
De cel van figuur 10 omvat ook een oscillator 112 en een timing-generator 111, waarbij de laatste voorziet in timingsignalen die in het bijzonder worden vereist voor de pijplijnmethode die is getoond in figuur 13. Een werking bij een 16 MHz snelheid voor de fasen 1-4 van figuur 13 heeft thans de voorkeur, waardoor een 4 MHz lage instructiecyclussnelheid wordt verschaft. Andere welbekende lijnen die zijn 50 verbonden met de cel volgens figuur 10 zijn niet weergegeven (bijvoorbeeld voeding).
Alle elementen van de cel die samenhangen met figuur 10 zijn in de voorkeursuitvoering ondergebracht op een enkele halfgeleiderchip zoals is vermeld.
B. PROCESSOR
55 De huidige voorkeursuitvoering van de processor 100 is getoond in figuur 12 en omvat een aantal registers die communiceren met twee ALU’s 102a en 102b. (Andere processorarchitecturen kunnen worden gebruikt zoals die welke een ”register”-gebaseerd stelsel kent, alsmede andere ALU- en geheugeninrichtingen.) De 15 194564 adres-ALU 102a verschaft adressen voor het geheugen 115 en voor het toegang hebben tot de l/O-subsecties. De gegevens-ALU 102b verschaft gegevens voor het geheugen en de l/O-sectie. De geheugen-uitgang in het algemeen is gekoppeld aan de processorregisters via registers 146 naar DBUS 223.
De 16-bits ABUS 220 verschaft een invoer aan de adres-ALU 102a. De basiswijzerregisters 118, 5 effectieve adresregisters 119 en de instructiewijzerregister 120 worden gekoppeld aan deze bus. (In de rechterbenedenhoek van de symbolen die worden gebruikt om deze registers aan te geven, is een pijl getoond met een aanduiding ”x4”. Hiermee wordt aangeduid dat bijvoorbeeld het basiswijzerregister 4 diep is, meer specifiek dat het basiswijzerregister 4 16-bits registers omvat, één voor elke processor. Dit geldt ook voor de effectieve adresregisters en de instructiewijzerregisters.) De BBUS 221 verschaft maximaal een 10 12-bits invoer aan de ALU 102a of een 8-bits invoer aan de gegevens-ALU 102b via register 142. De 4-dieps bovenstapelftop of stock”)-registers 122, stapelwijzerregisters 123, terugkeerwijzerregisters 124 en instructieregisters 125 worden gekoppeld aan de BBUS.
De OBUS 222 verschaft de andere 8-bits invoer aan de ALU 102 via register 143. De CBUS is gekoppeld aan de instructiestapelregister 120, de 4-dieps bovenstapelregisters 122, de vier overloop(”carry”)-15 vlaggen 129 en de 4-dieps CRC-registers 130 en de 4-dieps volgende(”next”)-registers 131.
De MBUS, die is gekoppeld aan de uitgang van het geheugen, kan gegevens ontvangen vanuit de uitgang van de ALU 102 via register 145b of vanuit het geheugen of de l/O-secties (107-110). Deze bus via register 146 en de DBUS 223 verschaffen invoer aan de registers 118,119,120,122, 123, 124,125,130, 131 en aan de overloopvlaggen 129.
20 Er is een 16-bits pad 132 vanuit de uitgang van de adres-ALU 102a naar de registers 120. De ALU 102b omvat schakelingen voor het uitvoeren van CRC-berekeningen. Deze schakelingen zijn rechtstreeks verbonden met de CRC-registers 130 via de tweerichtingslijnen 133. De bovenstapelregisters 122 zijn verbonden met de volgende registers 131 via lijnen 138. Deze lijnen maken het mogelijk de inhoud van register 122 te verplaatsen naar binnen de registers 131 of de inhoud van register 131 te verplaatsen naar 25 binnen de registers 122. Zoals thans geïmplementeerd is een (gelijktijdige) verwisseling van gegevens in twee richtingen tussen deze registers niet geïmplementeerd. Vier bits van gegevens vanuit de uitgang van het geheugen kunnen rechtstreeks worden teruggezonden naar hetzij de instructiewijzerregisters 120 of de instructieregisters 125 via lijnen 139.
Het pijplijnen (registers 141, 142, 143, 145 en 146) van gegevens en adressen tussen de registers ALU, 30 geheugen en hun bijbehorende bussen wordt beschreven in samenhang met figuur 13.
De gegevens in welke stapelwijzerregister 123 dan ook of welke van de terugkeerwijzerregisters 124 dan ook kunnen rechtstreeks stapsgewijs worden verhoogd of verlaagd door schakeling 127.
Beide ALU's 102a en 102b kunnen elk van hun invoeren naar hun uitvoeraansluitingen doorgeven, zij kunnen hun invoeren stapsgewijs verhogen en optellen. ALU 102b voorziet, behalve in optellen, in 35 aftrekken, schuiven, het stellen van overloopvlaggen 124 (wanneer passend), een EN-functie, een OF-functie, een exclusief OF-functie en in enencomplementrekenkunde. De ALU 102b in een enkele stap kan ook de inhoud van volgende-registers 131 en CRC-registers 130 (via paden 222 en 133) combineren en deze combineren met de inhoud van de bovenstapelregisters 122 om het volgende nummer dat wordt gebruikt in de CRC-berekeningen te verschaffen. Bovendien voert ALU 102b een standaardschuifoperatie 40 uit en verschaft hij een speciale 4-bits groep voorziening die het mogelijk maakt de lagere of hogere 4-bits te verschuiven naar respectievelijk een hogere of lagere 4-bits. Ook voert ALU 102b een drie-uit-zes-codering of decodering uit, zoals beschreven in paragraaf F.
In de voorkeursuitvoering met een enkele halfgeleiderchip voor een cel zijn er basiscontactvlakken op de chip voor voeding en aarde en alle l/O-pennen A en B en de "uitlees”-pen 106 (subsecties 107,108, 109 45 en 110, figuur 12). Deze contactvlakken worden gebruikt voor een verbinding met pakketpennen voor een goedkoop basispakket.
In aanvulling op de basiscontactvlakken zal in de huidige voorkeursuitvoering aanvullende vlakken zijn voorzien met verbindingen met de ADBUS 224 en de MBUS 225 van figuur 12. In een besturingscontact-vlak kan zijn voorzien om een inwendig geheugen te blokkeren. Door het activeren van het besturings-50 contact wordt het interne geheugen geblokkeerd en worden de gegevens via ADBUS en MBUS gebruikt door de processoren. Dit maakt het gebruik mogelijk van een geheugen dat buiten de cel is. Verondersteld wordt dat de aanvullende contactvlakken niet beschikbaar kunnen zijn voor gebruik wanneer de cel in een goedkope behuizing is. Tot deze aanvullende contacten kan toegang worden verkregen door wafeltaster-contacten of vanuit pennen in behuizingen die meer dan het minimale aantal pennen hebben.
55 De cel zoals vervaardigd vereist een startprogramma. Bij het tasten van de wafel wordt het externe geheugen voor diverse doeleinden gébruikt, waaronder het testen van de cel. Een ander gebruik is het verschaffen van een programma om de cel-ID in het EEPROM te schrijven tijdens het fabricageproces. Elke 194564 16 vereiste EEPROM-instructie om vermogensvoordeel mogelijk te maken wanneer de cel later in gebruik wordt gesteld, kan op dit ogenblik worden toegevoegd. Startprogramma’s en testprogramma’s zijn welbekend in de techniek.
5 C. PROCESSORBEDRIJF
In het algemeen treden geheugenophaaloperaties op wanneer de ALU 102a een geheugenadres verschaft. Het geheugenadres is op kenmerkende wijze een basisadres of dergelijke op de ABUS vanuit één van de basispunten in registers 118, effectieve adresregisters 119 of instructiewijzerregister 120 gecombineerd met een voorinstelling op de BBUS vanuit het stapelwijzerregister 123, terugkeerwijzerregister 124, bovenstapel-10 registers 122 of de instructieregisters 125.
Ofschoon in de huidige voorkeursuitvoering de processor werkzaam is met de uitgang van het geheugen gekoppeld aan de DBUS 223 via register 146, zal de processor ook kunnen worden geïmplementeerd waarbij gegevens rechtstreeks worden gekoppeld aan de ingang van ALU 102b. Ook kan de functie die wordt uitgevoerd door een aantal van de andere registers, zoals de effectieve adresregisters 119, worden 15 uitgevoerd door andere registers, ofschoon het gebruik van de effectieve adresregisters en bijvoorbeeld de CRC-registers de werking van de processor verbeteren.
In het algemeen wordt voor een geheugenadressering een basiswijzer verschaft door één van de registers 118,119 of 120 met een voorinstelling vanuit één van de registers 122, 123,124 of 125. De adres-ALU 120a verschaft deze adressen. Ook is de ALU 120b in het algemeen van invloed op de inhoud 20 van het bovenstapel- en volgende-register; er zijn uitzonderingen, bijvoorbeeld kan het instructieregister een rechtstreekse invoer aan de ALU 102b verschaffen. Specifieke adresseringsinstructies en andere instructies worden hieronder beschreven.
D. MUL TIPROCESSORBEDRUF
25 De processor is effectief een multiprocessor (vier processoren) vanwege de meervoudige registers en de pijplijnwerkwijze die hierna zal worden beschreven in samenhang met figuur 13. Zoals vermeld is een voordeel voor dit multiprocessorbedrijf dat geen onderbrekingen worden vereist, in het bijzonder om ingangs- en uitgangssignalen te behandelen. Het multiprocessorbedrijf wordt verkregen zonder het gebruik van gescheiden ALU’s voor elke processor. In de huidige voorkeursuitvoering worden opmaakbesparingen 30 verkregen door twee ALU’s (102a en 102b) te gebruiken, ofschoon slechts één van de ALU’s werkzaam is op een gegeven tijdstip. (Merk op dat de BBUS een invoer verschaft voor de beide ALU’s.) Bijgevolg kan het multiprocessorbedrijf volgens de onderhavige uitvinding worden verkregen onder gebruikmaking van een enkele ALU.
Het verwerkingsstelsel heeft vier processoren die een adres-ALU, een gegevens-ALU en een geheugen 35 gemeenschappelijk hebben. Een kleine basiscyclus neemt vier klokcycli voor elke processor. De ALU’s nemen één klokcyclus en het geheugen neemt één klokcyclus. De kleine cycli voor elke processor worden verschoven met één klokcyclus, zodat elke processor eenmaal per kleine basiscycius toegang heeft tot het geheugen en de ALU’s. Omdat elke processor zijn eigen registerverzameling heeft, kan deze onafhankelijk met zijn normale snelheid lopen. Het stelsel voegt aldus vier processoren parallel volgens de pijplijn-40 werkwijze.
Elke register in figuur 12 is verbonden met één uit vier groepen registers en elke groep vergemakkelijkt het multiprocessorbedrijf en is verbonden met een processor (1-4) van figuur 13. Elk van de vier groepen omvat een basiswijzerregister, een effectief adresregister, een instructiewijzerregister, een bovenstapel-register, een stapelwijzerregister, een terugkeerwijzerregister, een instructieregister, een CRC-register, een 45 volgende-register en een overloopvlag. Elke samenhangende groep registers correspondeert met één van de vier processoren. Elke processor voert instructies uit in kleine cycli, waarbij elke kleine cyclus bestaat uit vier klokcycli. Tijdens de eerste klokcyclus zal een processor de geschikte registers op de ABUS, BBUS en CBUS poorten. In de volgende klokcyclus zullen de ALU’s actief zijn bij het opwekken van gegevens vanuit hun ingangen van de ABUS, BBUS en CBUS. Het geheugen of een I/O zal actief zal gedurende de derde 50 klokcyclus waarbij het adres afkomstig is van de ALU 102a en gegevens hetzij worden verschaft door het geheugen of de ALU 102b. De vierde en laatste klokcyclus zal de resultaten vanuit het geheugen of de ALU 102b poorten in het geschikte register via de DBUS.
Een processor kan worden beschouwd als een golf van gegevens die door de hierboven beschreven opeenvolging propageert.
55 Bij elke stap worden de tussenresultaten geklokt in een verzameling pijplijnregisters. Door gebruikmaking van deze pijplijnregisters is het mogelijk de afzonderlijke stappen in de opeenvolging te scheiden en bijgevolg is het mogelijk gelijktijdig vier uitvoerende stappen te hebben. De vier processoren kunnen 17 194564 werkzaam zijn zonder met elkaar te interfereren, ook al delen zij de ALU’s, het geheugen, I/O en vele besturingsschakelingen.
De besturing van een processor met de pijplijnwerkwijze wordt het best begrepen aan de hand van figuur 11. Voor elke processor is er een 3-bits teller en een instructieregister. Deze zijn getoond in figuur 11 5 als tellers 137a tot 137d, die elk zijn verbonden met één van de instructieregisters, respectievelijk 125a tot 125d. Elk van de instructieregisters wordt geladen via de DBUS. Wanneer een instructieregister wordt geladen, wordt de instructie gekoppeld aan een PLA 212. Deze PLA bepaalt uit de instructie hoeveel kleine cycli worden vereist om de instructie uit te voeren en een 3-bits binair getal wordt vervolgens geladen in de teller 113a of 113b of 113c of 113d, behorende bij het instructieregister 125a of 125b of 125c of 125d dat 10 wordt geladen. Bijvoorbeeld wordt voor het laden van een CALL-instructie in het instructieregister 125c, het binaire getal 010 (hetgeen drie kleine cycli aangeeft) geladen in de teller 137c. (Tot maximaal acht kleine cycli kunnen worden gebruikt voor een gegeven instructie, ofschoon slechts tot zes kleine cycli worden gebruikt voor welke van de instructies dan ook in de huidige voorkeursuitvoering.) De telwaarde "000” wordt gebruikt om te veroorzaken dat een nieuwe instructie wordt opgehaald.
15 De telstand (bijvoorbeeld 3 bits) in een teller en de instructie (bijvoorbeeld 12 bits) in het bijhorende instructieregister vormen een 15-bits invoer naar de PLA 136. Deze 15-bits invoeren vanuit elk van de respectievelijke vier verzamelingen telregisters en vier verzamelingen instructieregisters worden sequentieel gekoppeld aan de PLA 136 zoals zal worden beschreven. De uitgang van de PLA bestuurt het bedrijf van de processoren. Meer in het bijzonder: lijnen 213 besturen een gegevensstroom op de ABUS, BBUS en 20 CBUS; lijnen 214 besturen de ALU 102; lijnen 215 besturen het geheugen; (en, zoals later zal worden beschreven l/O-bedrijf van subsecties 107,108,109 en 220) en lijnen 216 besturen een gegevensstroom op de DBUS. De specifieke uitvoeren die worden verschaft door de PLA 136 voor een gegeveninstructie, worden het best begrepen uit de instructieverzameling, die verderop in deze aanvrage wordt uiteengezet.
De actie die wordt genomen door de processoren om elk van de instructies uit te voeren wordt beschreven 25 met de instructieverzameling.
De uitgangen van de PLA op de lijnen 213 worden rechtstreeks gekoppeld aan de organen die een gegevensstroom op de ABUS, BBUS en CBUS besturen. De signalen die de ALU besturen worden gekoppeld via een één-klokfase-vertragingsregister 217 alvorens te worden gekoppeld aan de ALU via de lijnen 214. Aangezien alle registers 217 met dezelfde snelheid wordt geklokt, voert het register 30 217 vertragingsfuncties uit, zoals zal worden beschreven. Deze signalen vanuit de PLA 136 die worden gebruikt voor een geheugenbesturing worden gekoppeld via twee trappen vertragingsregisters 217 alvorens te worden gekoppeld aan het geheugen, waardoor de signalen op de lijnen 215 over twee klokfasen worden vertraagd ten opzichte van de signalen op de lijnen 213. De besturingssignalen voor de DBUS worden na het verlaten van de PLA 136 gekoppeld via drie verzamelingen vertragingsregisters alvorens te worden 35 gekoppeld aan de lijnen 216 en zij worden bijgevolg over drie klokfasen vertraagd ten opzichte van die op de lijnen 213. De registers 217 worden geklokt bij een 6 MHz snelheid, waardoor wanneer de PLA 136 uitgangsbesturingssignalen verschaft voor een gegeven instructie (bijvoorbeeld de inhoud van instructieregister 125a), de besturingssignalen gedurende een eerste klokfase worden gekoppeld aan de lijnen 213, gedurende een tweede klokfase aan de lijnen 214, gedurende een derde klokfase aan 215 en gedurende 40 een vierde klokfase aan de lijnen 216. Gedurende de eerste klokfase van elke instructiecyclus wordt de inhoud van de teller 137a en het instructieregister 125a gekoppeld aan de PLA 136. Gedurende de tweede klokfase wordt de inhoud van de teller 137b en het instructieregister 125b gekoppeld aan de PLA 136 enzovoort voor de derde en vierde klokfase.
Veronderstel nu dat instructies zijn geladen in de instructieregisters 125a tot en met 125d en de tellers 45 137a en 137d zijn geladen met de corresponderende binaire telwaarden voor de kleine cycli die vereist zijn voor het uitvoeren van elk van de instructies. Veronderstel bijvoorbeeld dat het register 125a wordt geladen met een CALL-instructie en dat 010 in de teller 137a is geladen. Tijdens een eerste kleine instructiecyclus worden 010 en de 12-bits instructie voor CALL gekoppeld aan de PLA 136. Uit deze 15-bits invoer verschaft de PLA 136 aan zijn uitgang alle besturingssignalen die worden vereist om de eerste kleine cyclus van de 50 CALL-instructie (bijvoorbeeld vier klokfasen) te completeren voor de ABUS, BBUS, CBUS, de ALU, het geheugen en de DBUS. Aangezien het stelsel pijplijnmultiverwerking toegepast, worden de besturingssignalen op de lijnen 213 gebruikt om de eerste klokfase van de CALL-instructie uit te voeren die de invoer is naar de ALU’s. (Gedurende deze eerste klokfase besturen de andere besturingslijnen de ALU, het geheugen en de DBUS van andere processoren, voor andere instructies in de pijplijnen.) Gedurende fase 55 twee, worden de telstand in de teller voor 137b en de instructie in het register 125b gekoppeld aan de PLA 136. Gedurende fase twee besturen de signalen op de lijnen 213 nu de ABUS, BBUS en CBUS-invoeren naar de ALU's voor de tweede processor om de instructie die is opgenomen in het register 125b uit te 194564 18 voeren. Gedurende deze tweede klokfase besturen de signalen op de lijnen 214 de eerste processor en de ALU om de functies uit te voeren die vereist zijn om de tweede klokfase van de CALL-instructie die is opgenomen in het register 125a uit te voeren. (Opgemerkt zij dat een vertraging gelijk aan één fase werd verschaft door register 217.) Op soortgelijke wijze besturen, gedurende de derde fase, de signalen op de 5 lijnen 213, de ABUS, BBUS en OBUS voor de derde processor om de instructie die is opgenomen in het register 125c uit te voeren; de signalen op de lijnen 214 besturen de ALU om de instructie uit te voeren die is opgenomen in het register 125b en de signalen op de lijnen 215 besturen het geheugen om de instructies in het register 125a voor de eerste processor uit te voeren. En, tenslotte, gedurende de vierde klokfase, worden de instructie vanuit het register 125d en de telstand in de teller 137d gekoppeld aan de PLA 136.
10 De signalen op de lijnen 213 besturen de ABUS, BBUS en de CBUS om de instructie die is opgenomen in het register 125d voor de vierde processor uit te voeren; de signalen op de lijnen 214 besturen de ALU om de instructie in het register 125c voor de derde processor uit te voeren; de signalen op de lijnen 215 besturen het geheugen om de instructie in het register 125b voor de tweede processor uit te voeren, en de signalen op de lijnen 216 besturen de DBUS om de instructie in het register 125a voor de eerste processor 15 uit te voeren.
Na vier cycli van de 16 MHz klok wordt de telstand in het register 137a verlaagd tot 001. Elk register wordt stapsgewijs verlaagd na de klokcyclus die volgt op het gebruik van de inhoud van de tellers die is opgenomen door de PLA 136. De invoer naar de PLA 136 verandert aldus, ook al is de instructie in het register 125a dezelfde. Dit maakt het mogelijk dat de PLA 136 nieuwe uitgangssignalen verschaft die nodig 20 zijn voor de tweede kleine cyclus van de CALL-instructie. Deze besturingssignalen worden gegolfd door de besturing door de besturingslijnen 213, 214, 215 en 216, zoals hierboven is beschreven. Wanneer de telstand in een teller 000 bereikt, wordt dit geïnterpreteerd als een instructieophaal voor zijn bijbehorende processor.
Bijgevolg kan elk van de vier processoren gelijktijdig een instructie uitvoeren wanneer elk van de 25 instructies een verschillend aantal cycli heeft. De besturingssignalen die de imaginaire lijn 219 bereiken voor welke gegeven klokcycli dan ook representeren besturingssignalen voor vier verschillende instructies voor vier verschillende processoren. Bijvoorbeeld verschijnen de besturingssignalen die behoren bij de eerste processor gedurende een eerste cyclus op de lijnen 213, gedurende een tweede cyclus op de lijnen 214; gedurende een derde cyclus op de lijnen 215 en gedurende een vierde cyclus op de lijnen 216. De 30 besturingssignalen die zijn vereist door de tweede processor volgen daarna; die welke zijn vereist voor de derde en de vierde processor volgen achter die welke worden gebruikt door de tweede processor.
Het pijplijnen van de signalen wordt geïllustreerd in figuur 13. Het multiprocessorbedrijf van de processor 100 van figuur 10 wordt getoond in figuur 13 als vier processoren, processoren 1, 2, 3 en 4. Elke groep van de groepen registers wordt verbonden met één van de processoren. De vier fasen van een enkele 35 instructiecyclus worden bovenaan figuur 13 getoond. In figuur 13 worden registers 101 gebruikt om aan te geven dat de inhoud vanuit de specifieke registers die wordt opgeroepen in een instructie wordt geplaatst op de ABUS, BBUS en CBUS. De registers zijn 118, 119 en 120 op de ABUS; 122, 123, 124 en 125 op de BBUS; 120, 122, 129, 130 en 131 op de CBUS.
Tijdens een eerste fase worden eerder opgeslagen signalen in de groep 1 registers (bijvoorbeeld twee 40 van hen) gepoort vanuit de registers naar de ABUS, BBUS en CBUS. Wanneer dit plaatsvindt worden signalen behorende bij de groep 2 registers gepoort vanuit de registers 141,142,143 naar de ALU 102a en 102b. Dit is getoond in figuur 13 als processor 2 onder de eerste fasekolom. Simultane signalen worden gepoort vanuit registers 145a en 145b naar het geheugen voor groep 3 registers voor processor 3. En, tenslotte, gedurende deze eerste fase, worden signalen behorende bij de groep 4 registers, gepoort vanuit 45 registers 146 naar de DBUS. Gedurende de tweede fase worden signalen die behoren bij een groep 1 registers gekoppeld vanuit de ALU naar registers 145. De gegevens behorende bij groep 2 registers worden gekoppeld aan het geheugen. De gegevens behorende bij de groep 3 registers worden gekoppeld vanuit het register 146 op de DBUS. Die welke behoren tot de groep 4 registers worden gepoort op de ABUS, BBUS en CBUS. En gedurende de derde en vierde fase van elke instructiecyclus gaat deze pijplijnwerkwijze 50 op soortgelijke wijze voort zoals is getoond in figuur 13, waardoor effectief vier processoren worden verschaft.
E. PROCESSORINSTRUCTIES
In deze paragraaf wordt elke instructie van de processor uiteengezet, tezamen met de specifieke registers 55 en geheugenoperaties. Kleine letters worden hieronder gebruikt om de inhoud van een register aan te geven. Bijvoorbeeld wordt de inhoud van het instructieregister weergegeven door ”ip”. De registers en vlaggen worden hieronder uiteengezet in hun samenhang met figuur 12.
19 194564
FIGUUR 12 IDENTIFICATIE
ip instructiewijzer (14 bits) 120 (vast bereik van 0000 - 3 FFF) 5 niet toegankelijk voor ROM gebaseerde programma’s) ir instructieregister (12 bits) 125 (niet toegankelijk voor ROM gebaseerde programma’s) bp basisbladzijdewijzer (14 bits) 118 (vast bereik van 8000 FFFF) 10 (alleen schrijven) ea effectief adreswijzer (16 bits) 119 (niet toegankelijk voor ROM gebaseerde programma’s) sp gegevensstapelwijzer (8 bits) 123 (positief verschoven van bp, neemt af) 15 rp terugkeerstapelwijzer (8 bits) 124 (positief verschoven van bp, neemt toe) tos bovenste van gegevensstapel (8 bits) 122 next voorwerp onder bovenste van gegevensstapel (8 bits) 131 crc gebruikt als klad of in CRC-berekeningen (8 bits) 130 20 flags overloopvlaggen (1 bit) 129 processen-ID (2 bits)
Het bovenste element van de terugkeerstapel is ook adresseerbaar als een register, ook als is het fysiek gelokaliseerd in RAM.
25
INSTRUCTIETABEL
CALL laaaaaaaaaaa subroutine-oproep CALL lib 0000 aaaa aaaa bibliotheekoproep BR 00101aaa aaaa springopdracht 30 BRZ 0010 OOaa aaaa springopdracht bij TOS==0 BRC 001011aa aaaa springopdracht op overloop ingesteld CALL interseg 0011 LLLL LLLL (subroutine) 0000 hhhh hhhh twee woorden instructies
LIT 0101 1ffh bbbb constant op TOS
35 LDC 0101 111h bbbb laden constante
ALU 0101 OOef ffff bovenste van stapel en NEXT
RET 010100111101 terugkeer of bit ingesteld in andere instructie IN, OUT 0100 0wrrrrrr lees/schrijf l/O-register 40 LD, ST bp+a 0010 1waa aaaa laden, opslaan LD, ST (bp+p)+a OUppwaaaaaa laden, opslaan LDR, STR r 0101 01 Ow rrrr laden, opslaan CPU reg.
Voor elke instructie zijn hieronder in standaard-C-taalnotatie de werking, codering en timing uiteengezet.
45 CALL oproepprocedure
Werking: *rp++ = lowbyte (ip); 50 *rp++ = hibyte (ip); ip = dest;
Codering: intra-segment: 55 laaaaaaaaaaa dest = ip + a = 1 ;/* verschuiving a is altijd negatief 7 194564 20 inter-segment:
0011LLLLLLLL
OOOOHHHHHHHH
dest = H:L;/* 16-bits absoluut adres 7 5 library: OOOOaaaaaaaa dest = 0x8000+*(0x8001 + a);/* tabelopzoekoproep 7 10 _ .
Timing: CALL type klok specifieke geheugenwerking intra-seg 3 2 *rp++ = lobyte (ip) ^ 1 *rp++ = hibyte (ip) 0 ir = *(ip = *dest) interseg 5 4 lobyte (ea) = *ip++ 20 3 hibyte (ea) = *ip 2 *rp++ = lobyte (ip) 1 *rp++ = hibyte (ip) 0 ir = *(ip = *dest) library 4 3 *ir++ = lobyte (ip) 2 *rp++ = hibyte (ip) 1 ip = dest 0 ir = *ip 30 BR spring altijd
Werking: ip = dest;
Codering: 00101aaaaaaa dest = ip + a + 1 ;Λ verschuiving a is met teken uitgebreid 7 40 Timin9 klok specifieke geheugenwerking 1 0 ir = *(ip = dest) BRC spring bij overloop 45
Werking: if (CF) ip = dest; else ip++; 50 „ . .
Codering: 001001aaaaaa dest = ip + a + 1 ;/* a is met teken uitgebreid */
Timing: 21 194564 klok specifieke geheugenwerking 1 0 ir = *(ip = dest) or 0 5 ir = *(++ip); BRZ sprong bij TOS==0 10
Werking: if (tos==0, tos=next, next= *(++sp)) ip = dest; else ++ip;
Codering: 001OOOaaaaaa dest = ip + a + 1 ;Λ verschuiving a is met teken uitgebreid 7
Timing: klok specifieke geheugenwerking 2 1 tos = next; next = *(++sp); 0 ir = *(ip = dest) or 0 ir = *(++ip)
LDR verplaats register naar TOS
(omvat bepaalde indirecte, geïndiceerde geheugenreferentie) 30
Werking: *(sp-) = next; if (reg) (next = tos; tos = reg) else (next = bp+TOS or next = (bp+2p)+TOS) 35
Codering:
01 01 01 OOrrrr reg = χΓ zie tabel V
40 _ .
Timing: klok specifieke geheugenwerking (if (bp+p)+TOS) 5 _ 4 lobyte(ea) = *(bp+2p) 45 3 hibyte(ea) = *(bp+2p+1) (if reg, bp+TOS) 3 2 *sp— = next if (reg) next = tos; 50
1 if (reg) tos = reg else next=bp+TOS, ea+TOS
0 ir = *(++ip) 55 194564 22 STR sla TOS op in register (omvat bepaalde indirecte, geïndiceerde geheugenreferentie)
Werking: if (reg) (reg = tos; tos = next;) else (bp+TOS = next or (bp+2p)+TOS = next) next = *(++sp);
Codering: W 0 1 0 1 0 1 0 1 r r r r reg = xt* zie tabel 7
Timing: ° klok specifieke geheugenwerking (if (bp+p)+TOS) 5 4 lobyte(ea) = *(bp+2p) 2® 3 hibyte(ea) = *(bp+2p+1) ; (if reg, bp+TOS) 3 2 if (reg) reg = tos; else bp+TOS, ea+TOS=next 1 if (reg) tos = next; next = *(++sp); 30 0 ir = ’<++**
REGISTERTOEWIJZIGINGEN
0 0 0 0 Flags CF x IDI IDO
35 0 0 0 1 CRC low byte (high byte in TOS) 0 0 10 lowbyte (bp) Γ schrijven 7 next (’’OVER" instruction) Γ lezen 7 0 0 11 highbyte (bp) Λ schrijven 7 tos ("DUP” instruction) /* lezen 7 4Q 0 10 0 sp 010 1 rp
0110 see RPOP, RPUSH
0111 *(bp+TOS) Λ geïndiceerde ophaal, opslag */
1 0 0 0 *(*(bp+0)+TOS) Λ geïndiceerd indirect V
45 1 0 0 1 *(*(bp+2)+TOS) Λ geïndiceerd indirect 7 10 10 *(*(bp+4)+TOS) /* geïndiceerd indirect 7 10 11 T(bp+6+TOS) /* geïndiceerd indirect 7 RPOP pop terugkeerstapel 50
Werking: *(sp—) = next; next = tos; tos = *rp—; 55 23 194564
Codering: 010101001110
Tinning: 5 klok specifieke geheugenwerking 3 2 *sp— = next next = tos; 10 1 tos = *rp—;; 0 ir = *(++ip) 15 RPUSh voeg tos onder terugkeerstapel
Werking: *(++rp)=tos; tos = next; 20 next = *(++sp);
Codering: 010101011110 pc
Timing: klok specifieke geheugenwerking 3 2 *(++rp) = tos; 30 1 tos = next next = *(++sp); 0 ir = *(++ip)
IN verplaats l/O-register naar TOS
Werking: *(sp—) = next; next = tos; 40 '° = r8fl;
Codering: 01 OOOOrrrrrr
Timing: 40 klok specifieke geheugenwerking 3 2 *sp— = next next = tos; 50 1 tos = reg; 0 ir = *(++ip); 55 194564 24 OUT sla TOS op in l/O-register
Werking: 5 reg = tos; tos = next; next = *(++sp);
Codering: 0100 01rr rrrr
Timing: klok specifieke geheugenwerking 15 2 reg = tos; 1 tos = next; next = *(++sp); 20 0 ir = *(++ip); LDC laden constante (in TOS)
Werking: *sp— = next; next = tos; tos = constant;
Codering: 0101 111H bbb if (H==0) constant = 0000:bbbb; else constant = bbbb:0000 35 T. .
Timing: klok specifieke geheugenwerking 3 2 *(sp~) = next; next = tos; 1 tos = constant; 0 ir = *(++ip) 45 LD (bp+a) laden vanuit basispagina Werking: ‘sp- = next; next = tos; tos = *(bp+source);
Codering: 25 194564 01001Oaaaaaa source = aa aaaa 5
Timing: klok specifieke geheugenwerking 3 10 2 *sp— = next next = tos; 1 tos = *(bp+source); 15 0 ir = *(++ip) LD (bp+p)+a indirect laden (TOS met byte geadresseerd door wijzer bij bp+offset, vervolgens geïndiceerd door TOS) 20
Werking: *sp— = next; next = tos; tos = *(*(bp+2p)+offset); 25 _ . .
Codering: 01 1 ppOaaaaaa offset = aa aaaa 30 T. .
Timing: klok specifieke geheugenwerking 5 4 lobyte(ea) = *(bp+2p) 35 3 hibyte(ea) = *(bp+2p+1) 2 *sp— = next; „ next = tos; 40 1 tos=*(ea+offset) 0 ir = *(++ip) 45 ST (bp+a) opslaan in basispagina Werking: *(bp+dest) = tos tos = next; next = *(++sp)
Codering: 010011aaaaaa 55 dest = aa aaaa 194564 26
Timing: klok specifieke geheugenwerking 5 3 2 *(bp+dest) = tos; 1 tos = next; 1Q next = *(++sp); 0 ir = *(++ip) ST (bp+p)+a indirect opslaan (TOS naar byte geadresseerd door wijzer bij bp+2p verschoven door a) 15
Werking: *(*(bp+2p)+offset)=tos; tos - next; 20 next = *(++sp)
Codering: 011pp1aaaaaa 25 offset = aaaaaa
Timing: klok specifieke geheugenwerking 30 5 υ 4 lobyte(ea) = *(bp+2p) 3 hibyte(ea) = *(bp+2p+1) 2 *(ea+off)=tos 35 1 tos = next; next = *(++sp) ° ir = *(++ip) 40 (ALU GROUP)
Werking: 45 if (Γ==1) { hibyte(ip) = *rp-; lobyte(ip) = *rp—; } pipe = tos; Γ interne processorpijplijn*/ tos = tos op next; switch (s) { case 0: next = next; Λ kenmerkende unitaire op 7 case 1: next = *(++sp); Γ kenmerkend binaire op 7 } 55
Codering: 27 194564 0 101 OOrf fff f op = ffff/* s gelijk aan hoge-orde f bit */ 5 s = (l==unary op), (o==binary op)
Op-tabel code operatie overlooptoestand jq 00000 tos + next arith carry 00001 tos + next + carry arith carry 00010 next-tos arith borrow 00011 next - tos - carry arith borrow 00100 tos-next arith borrow ,ς 00101 00110 00111 01000 tos AND next unchanged 01001 tos OR next unchanged 2Q 01010 tos XOR next unchanged 01011 01100 drop unchanged 01101 swap-drop unchanged 01110 25 01111 CRC step unchanged 10000 asl (TOS) tos7 10001 asr (TOS) 0 10010 rotate left(tos) tos7
10011 rotate right (tos) tosO
30 10100 tos parity (TOS) 10101 10110 10111 3 of 6 encode set if not valid 11000 Isl(TOS) 35 11001 Isr (TOS) 11010 shift left by 4 11011 shift left by 4 11100 swap 11101 tos (NOP) 40 11110 NOT(TOS) 11111 3 of 6 decode
Timing s klok specifieke geheugenwerking 45 1 2(4) (if r==1) 3 hibyte(ip) = *rp—;) 50 (if r==1) 2 lobyte(ip) = *rp-;) 1 tos = alu output 55 0 ir = *(++ip) 194564 28 3(5) (if r==1) 4 hibyte(ip) = *rp-;) 5 (if r==1) 3 lobyte(ip) = *rp-;) 2 tos = alu output w 1 *(++sp) = next 0 ir = *(++ip) SWAP speciaal geval 15 De wisseling van TOS met NEXT is een speciaal geval van de ALU-ops waarbij gebruik wordt gemaakt van het rechtstreekse pad tussen TOS en NEXT. Het NEXT-register ontvangt een kopie van de TOS via een pijplijnregister, voordat TOS met de inhoud van NEXT wordt geladen (niet-gelijktijdige overdracht).
NOP
20
Werking: ++ip;
Codering: 25 short 01 001 0000000 long 010100011101
Timing: 30 klok specifieke geheugenwerking short 1 (BR+1) 0 ir = *(++ip) 35 long 2 1 tos = tos 0 ir = *(++ip) 40 RET terugkeer uit subroutine
Werking: hibyte(ip) = *rp-45 lobyte(ip) = *rp- ++ip;
Codering: 010100111101 50
Timing: 29 194564 klok specifieke geheugenwerking 4 ^ 3 hibyte(ip) = *rp- 2 lobyte(ip) = *rp-1 tos = tos 10 0 ir = *(++ip) (LITERAL GROUP) 15 ΙΛ,
Werking: tos = tos op constant;
Codering: 0101 IffHcccc 20 op = ff if (H==0) constant = 0000:cccc else constant = cccc:0000 25
Op-tabel code operatie overlooptoestand 00 tos + constant arith carry 01 tos - constant arith carry 30 00 tos AND constant 11 constant (see LDC)
Timing: klok specifieke geheugenwerking 35 2 1 tos = alu output 0 ir = *(++ip) 40
F. DRIE UIT-ZES SCHAKELING
Zoals eerder vermeld bevat de ALU 102b organen voor het coderen van 4-bits groepen in 6-bits woorden voor transmissie (codeerder van figuur 14) en voor het decoderen van 6-bits woorden in de 4-bits groepen 45 (decodeerder van figuur 15). Zowel de codeerder als de decodeerder gebruiken logica met fysieke verbindingen die het mogelijk maakt de omzetting zeer snel in beide richtingen uit te voeren. Bovendien is er een schakeling weergegeven in figuur 16 om te verifiëren dat elk 6-bits woord dat wordt ontvangen door de cel werkelijk een drie-uit-zes-code is, dat wil zeggen drie nullen en drie enen (figuur 9).
In figuur 14 is het register 142 weergegeven waarbij vier bits van het register gegevens DO tot en met D3 50 bevatten. Wanneer de ALU opdracht wordt gegeven deze gegevens te coderen, zullen de resulterende zes bits worden gekoppeld aan het grendelregister 145b. Om de omzetting die is getoond in figuur 9 te verkrijgen, wordt het D0-bit rechtstreeks gekoppeld aan een eerste trap van het register 145b en wordt Eq, het gecodeerde bit. Ook wordt het bit D3 rechtstreeks gekoppeld aan het register en wordt E5. Elk van de overige bits E1 tot en met E4 worden verschaft door de respectievelijke logische schakelingen 153 tot en 55 met 150. Elk van deze logische schakelingen worden gekoppeld om D0, D·,, D2 en D3 te ontvangen. Elke logische schakeling bevat gewone poorten die de vergelijking die is getoond in het respectievelijke blok implementeren. Deze vergelijkingen zijn getoond in standaard ”C"-taal (”&” = logisch EN, = logisch NEE
194564 30 er» T = logisch OF). Deze vergelijkingen kunnen met gewone poorten worden geïmplementeerd.
De decodeerder van figuur 15 is in een soortgelijke opmaak getoond. Ditmaal zijn de zes bits van de gecodeerde gegevens weergegeven in register 142. De gedecodeerde 4-bits gegevens zijn getoond in het register 145. Om de patroontoewijzing te implementeren die is getoond in figuur 9 wordt het Eo-bit 5 rechtstreeks gekoppeld aan het register 145 en wordt D0. Het E5-bit wordt rechtstreeks gekoppeld aan het register 145 en wordt het D3-bit. Logische schakelingen 154 en 155 verschaffen respectievelijk de bits D2 en Dv Schakeling 154 is aangesloten om de bits E0, E3, E4 en E5 te ontvangen, terwijl de schakeling 145 E0, Ev E3 en Es ontvangt (E2 wordt niet gebruikt om de D0 tot en met D3-bits te verschaffen). (Sommige van de 6-bits patronen worden niet gebruikt en andere worden gebruikt voor een synchronisatie en vereisen aldus 10 geen omzetting in een gegevensgroep.) De schakelingen 154 en 155 worden opgebouwd uit gewone logische poorten en implementeren de getoonde vergelijkingen. Het symbool ”A” geeft de exclusief OF-functie weer in de vergelijkingen.
De schakeling van figuur 16 verifieert zoals vermeld dat de ontvangen 6-bits woorden inderdaad drie nullen en drie enen bevatten. De gecodeerde woorden zijn zoals getoond gekoppeld vanuit het bovenstapel-15 register 122 naar de twee volledige optellers 157 en 158. Deze opteltrappen zijn opgenomen binnen de ALU 102b. Elke opteller ontvangt een x, y en een overloopinvoer en verschaft een som en een overloopuitvoer. Deze gebruikelijke opteltrappen zijn elk aangesloten om één bit van het gecodeerde woord te ontvangen zoals is getoond. (Elke koppeling van elk bit naar welke ingang van de optellers 157 en 158 dan ook kan worden gebruikt.) De overloopuitvoeren van de optellers 157 en 158 worden gekoppeld aan de exclusief 20 OF-poort 159; de somuitvoeren van de optellers 157 en 158 worden gekoppeld aan de exclusief-OF-poort 160. De uitvoer van de poorten 159 en 160 worden gekoppeld aan de ingangsaansluitklemmen van een EN-poort 161. Indien de uitgang van de deze EN-poort in zijn hoge toestand is, bevat het woord in het register 102 drie enen en drie nullen. In het andere geval is de uitgang van de poort 161 in zijn lage toestand (voortijdig afsluiten). De binnenkomende pakketten worden gecontroleerd om te bepalen dat elk 25 6-bits woord geldig is, terwijl het wordt gecodeerd in de 4-bits groepen.
INVOER/UITVOER-SECTIE
A. ALGEMEEN
De l/O-sectie omvat een aantal schakelingelementen zoals een ”ramp”-generator, een teller, een vergelijker, 30 enzovoort, die onderling zijn verbonden in verschillende configuraties onder software-besturing. Voorbeelden hiervan worden hieronder getoond voor de analoog-in-digitaal (A-in-D) en digitaal-in-analoog (D-in-A) operaties. Deze elementen verschaffen met hun door software te configureren onderlinge verbindingen een grote flexibiliteit voor de cel, hetgeen deze toestaat vele taken uit te voeren. De gehele l/O-sectie wordt bij voorkeur gefabriceerd op dezelfde ’’chip” die de processor bevat.
35
B. BUFFERSECTIE
Zoals is getoond in figuur 10 en zoals eerder is besproken, omvat elk van de cellen vier invoer/uitvoer f/O-subsecties, drie van de subsecties 107,108 en 109 hebben elk een paar leidingen, geïdentificeerd door pen A en pen B. De vierde subsectie 110 heeft een enkele ”uitlees”-pen 106. Elk van de vier subsecties 40 kan communiceren met elk van de vier subprocessoren. Zoals is getoond in figuur 12 wordt dit gemakkelijk geïmplementeerd door het verbinden van de adresbus (ADBUS) en de geheugenbus (MBUS) met elk van de vier l/O-subsecties. Het gebruik van de NBUS via het register 146 naar de DBUS maakt het de l/O-subsecties mogelijk met de processorregisters te communiceren.
Elke pen A en pen B kan TTL-niveausignalen ontvangen en verschaffen en kent drie toestanden. In de 45 huidige voorkeursuitvoering kan elke pen ongeveer 40 milliampère afvoeren en toevoeren (uitgezonderd pen 106). Alle pennen A kunnen worden geprogrammeerd om een analoog uitgangssignaal te verschaffen en in drie van de l/O-subsecties 107,108 en 109 is een digitaal-in-analoog-omzetter opgenomen om een analoog uitgangssignaal op pen B te verschaffen. Een analoog Ingangssignaal op welke van de pennen B dan ook, kan worden omgezet in een digitale telwaarde aangezien drie van de l/O-subsecties A-in-D-omzetters 50 omvatten die zijn verbonden met deze pennen. Elk penpaar (pen A en pen B) kan werkzaam zijn als een verschilversterker voor ingangssignalen, een verschilontvanger, en een verschilzender en een verschil-spanningvergelijker. De l/O-subsecties kunnen worden gebruikt om vele verschillende functies uit te voeren, van eenvoudig schakelen tot bijvoorbeeld het hebben van twee penparen die zijn aangesloten om de wikkelingen van een stappenmotor aan te drijven.
55 De schakelingen die zijn getoond in de figuren 17-23 worden herhaald in subsecties 107, 108 en 109.
Die schakelingen die zijn verbonden met pen A en pen B (zoals de buffersecties van figuur 17) zijn niet geheel opgenomen in de l/O-subsectie 110. Slechts is vereist voldoende opslag om het lezen op pen 106 31 194564 van gegevens mogelijk te maken.
Onder verwijzing naar de l/O-buffersectie van figuur 17, worden uitgaande gegevens gekoppeld aan pen A via de buffer 163. Op soortgelijke wijze worden uitgaande gegevens gekoppeld aan pen B via de buffer 164 nadat de gegevens door de l/O-besturingsschakelaar 165 zijn gepasseerd. Deze uitgaande gegevens 5 worden bijvoorbeeld gekoppeld aan pen A vanuit het register 206 van figuur 23 via de poort 208 van figuur 19. De besturingsschakelaar 165 wordt gebruikt om uitvoeren naar pen A via de buffer 163 vrij te geven wanneer vrljgeef-A (EN.A) hoog is (lijn 166). Bovendien geeft de schakelaar de uitvoer naar pen B vrij wanneer vrijgeef-B (EN.B) hoog is (lijn 167) en geeft de schakelaar uitvoeren naar beide pennen vrij (met de uitvoer naar pen B geïnverteerd) wanneer vrijgeef-RS-485 hoog is (lijn 168). Het uitgaande analoge 10 signaal naar pen A wordt verschaft via de schakelaar 175 wanneer het analoge uitvoervrijgeefsignaal hoog is.
Binnenkomende signalen naar pen A worden gekoppeld aan één ingangsaansluitklem van de verschil· versterker 169. De andere aansluitklem van dit signaal ontvangt een referentiepotentiaal (bijvoorbeeld 2,5 volt). Deze versterker omvat ook de algemeen gebruikte hysteresis modus om detectie van ruis te 15 voorkomen. Deze modus wordt geactiveerd wanneer het hysteresisvrijgeefsignaal (pen A) dat is gekoppeld aan de versterker 169 hoog is. Het uitgangssignaal van de versterker 169 wordt gekoppeld aan een overgangsdetectieschakeling 171 die eenvoudig elke overgang detecteert, dat wil zeggen van nul naar één of van één naar nul.
De invoeren naar pen B worden gekoppeld aan één aansluitklem van een verschilversterker 170 die 20 identiek kan zijn aan de versterker 169. De versterker 170 ontvangt het hysteresisvrijgeefsignaal (pen B).
De andere ingang naar versterker 170 (lijn 176) kan zijn aangesloten om één of meer signalen te ontvangen. Het kan een gelijkspanningssignaal ontvangen dat wordt gebruikt voor spanningsvergelijkingen, een ’’ramp” die later zal worden besproken, het signaal op pen A voor een verschilwaameming of een referentiepotentiaal (bijvoorbeeld 2,5 volt). De uitvoer van de versterker 170 kan zijn geïnverteerd via de 25 exclusief OF-poort 177 voor zekere bedrijfsmodi. Een overgangsdetector 172 is verbonden met de pen B ingangen, wederom om overgangen van nul naar één of van één naar nul te detecteren.
C. I/O-TELLEN/TIMING
Elk van de cellen omvat een timing-generator (RC-oscillator) voor het verschaffen van een 16 MHz signaal. 30 Dit signaal wordt verbonden met een frequentievermenigvuldiger 178 die de l/O-sectie bevat (figuur 18). De vermenigvuldiger 178 verschaft uitgangsfrequenties aan elke l/O-subsectie. Deze vermenigvuldiger verschaft een frequentie f0 gelijk aan: x 16 MHz »0 " 216x (geladen waarde) 35
De geladen waarde is een 16-bits woord dat is geladen in een register van een frequentievermenigvuldiger 178. De frequentievermenigvuldiger omvat vier 16-bits registers en een 16-bits tellerketen.
Vier logische schakelingen maken een selectie mogelijk van vier verschillende uitgangssignalen, één voor elke subsectie. Twee buscycli (8 bits elk) worden gebruikt om de 16-bits woorden in het register van de 40 frequentievermenigvuldiger 178 te laden. Zoals uit bovenstaande vergelijking kan worden gezien, kan een betrekkelijk groot bereik van uitgangsfrequenties worden opgewekt. Deze frequenties worden gebruikt voor vele verschillende functies, zoals zal worden beschreven, waaronder bitsynchronisatie.
De uitgang van de vermenigvuldiger 178 in elk van de subsecties wordt gekoppeld aan een 8-bits teller 179. De teller kan aanvankelijk zijn geladen vanuit een tellerlaadregister 180 vanaf de gegevensbus van de 45 processoren. Dit register kan bijvoorbeeld gegevens ontvangen vanuit een programma. De telstand in de teller wordt gekoppeld aan een register 181 en aan een vergelijker 182. De vergelijker 182 neemt ook de acht bits in een register 183 waar. De inhoud van dit register wordt ook geladen vanaf de gevensbus van de processoren. Wanneer een overeenkomst tussen de inhoud en de teller de inhoud van register 183 wordt gedetecteerd door de vergelijker 182, verschaft de vergelijker een gebeurtenissignaal aan de toestands-50 machine van figuur 19 (ingang naar multiplexers 190 en 191). De inhoud van de teller 179 kan worden vergrendeld in register 181 na ontvangst van een signaal vanuit de toestandsmachine (uitgang van het uitvoerregister 98 van figuur 19). Hetzelfde uitvoerregister 198 kan veroorzaken dat de teller 179 wordt geladen vanuit het register 180. Wanneer de teller een volle telstand (eindtelstand) bereikt, wordt een signaal gekoppeld aan de toestandsmachine van figuur 19 (ingang naar multiplexers 190 en 191).
194564 32
D. I/O BESTURING EN TOESTANDSMACHINE
Onder verwijzing naar figuur 19, communiceert de processor MBUS met registers 185 en 186 die beide maskeerfuncties uitvoeren. Drie bits van het register 185 besturen de selectie van één van de vijf lijnen die zijn verbonden met de multiplexer 190; op soortgelijke wijze besturen drie bits van het register 186 de 5 selectie van één van de vijf lijnen die zijn gekoppeld aan de ingang van de multiplexer 191. De uitgang van de maskerregisters 185 en 186 worden gekoppeld aan een multiplexer 187. De vijf bits vanuit de multiplexer 187 worden gekoppeld aan een register 198. Elk van deze bits omschrijven een verschillende functie die eigenlijk wordt uitgevoerd door de toestandsmachine. Meer in het bijzonder besturen de bits het laden van een teller, het vergrendelen van een telstand, het vrijgeven van een ”ramp”-schakelaar, pulsen van pen A 10 en pulsen van pen B.
De multiplexers 190 en 191 ontvangen beide het eindtelstandsignaal vanuit teller 179 van figuur 18, het vergelijksignaal vanuit vergelijker 182, het ”ramp”-startsignaal vanuit de ”ramp”-generator 200 van figuur 20 en de A en B-overgangssignalen vanuit respectievelijk de overgangsdetectoren 171 en 172 van figuur 17. Het 1 -bits uitgangssignaal vanuit elk van de multiplexers 190 en 191 wordt gekoppeld aan een OF-poort 15 188. Deze OF-poort wordt zodanige vooringesteld dat indien een uitgangssignaal gelijktijdig optreedt vanuit beide multiplexers 190 en 191 er voorrang wordt gegeven aan multiplexer 190. Het uitgangssignaal van de multiplexer 190 bestuurt de multiplexer 187 met het signaal dat is geïdentificeerd als ’’welke gebeurtenis”. Dit signaal wordt ook opgeslagen in de 3x3 eerste in, eerste uit (FIFO) buffer 199. Dit signaal geeft aan welke MUX 190 of 191 een gebeurtenis heeft ontvangen en deze gegevens worden opgeslagen tezamen 20 met de ingangssignalen naar pen A en pen B (figuur 17) in de FIFO 199.
De toestandsmachine voor elk van de l/O-subsecties omvat vier D-type flip-flops die in serie zijn verbonden zoals is getoond in figuur 19 met de onderbroken lijn 189. De flip-flops 194 en 196 ontvangen het 8 MHz signaal, terwijl de flip-flops 193 en 195 het complement van dit timing-signaal ontvangen. Het kloksignaal (CLK) wordt verkregen vanuit de Q-uitgang van de flip-flop 194 en wordt gekoppeld aan register 25 198 en FIFO 199. Het wissignaal dat wordt ontvangen vanuit de Q-aansluitklem van flip-flop 196 wordt gekoppeld aan het register 198.
In bedrijf worden de maskeerregisters 185 en 186 geladen onder software-besturing. De bits vanuit het register 185 bijvoorbeeld veroorzaken de selectie van één van de ingangslijnen naar multiplexer 190, bijvoorbeeld eindtelstand. Vervolgens wacht de schakeling van figuur 19 op het eindtelstandsignaal.
30 Wanneer het eindtelstandsignaal optreedt, begint de toestandsmachine te werken en worden de vijf bits gegevens vanuit het register 185 verbonden via multiplexer 187 met het register 198. De toestandsmachine veroorzaakt dat een uitgangssignaal optreedt aan één van de lijnen vanuit het register 98 dat bijvoorbeeld veroorzaakt dat een puls wordt opgewekt op pen A. Op soortgelijke wijze kan een woord in het register 186 worden gebruikt om te veroorzaken dat, wederom als voorbeeld, de teller wordt geladen.
35 De flip-flops 203 en 204 worden geklokt door het uitgangssignaal van register 198. Deze flip-flops maken het mogelijk dat het uitgangssignaal wordt bestuurd. De OF-poort 208 maakt het mogelijk dat gegevens vanuit een schuifregister 206 van figuur 23 worden gekoppeld aan pen A. Dit register wordt verderop besproken.
De zes bits van lage orde van de ADBUS worden toegevoerd aan decoders in de l/O-subsecties 107, 40 108, 109 en 110 van figuur 12. Twee van de bits worden gebruikt om een specifiek l/O-element te selecteren en de overige worden gedecodeerd om een operatie te besturen. De PLA 136 van figuur 11 heeft gegeneraliseerde uitgangen 215 die parallel zijn verbonden met alle l/O-subsecties 107, 108, 109 en 110 om de ABUS-klokcyclus te selecteren voor gegevens om te worden gebruikt voor het besturen van een operatie van de l/O-subsecties.
45
E. ANALOOG-IN-DIGITAAL EN DIGITAAL-IN-ANALOOG-OMZETTING
Verwezen wordt eerst naar figuur 20 waarin het l/O-substelsel een ”ramp”-generator 200 omvat die doorlopend "ramps” van een bekende periode genereert. Het uitgangssignaal van de ”ramp”-generator wordt gebufferd door buffer 201 en gekozen door schakelaar 202. De schakelaar, zoals zal worden 50 beschreven, wordt geselecteerd bij een zekere telstand (tijd) die volgt op de start van elke ramp, waardoor dezelfde potentiaal aan de condensator 203 wordt gekoppeld. Deze condensator wordt geladen en een potentiaal wordt gekoppeld via buffer 24 aan pen A wanneer de schakelaar 175 wordt gesloten. (Schakelaar 175 is weergegeven in figuur 17). De schakelaar 202, de condensator 203 en de buffer 204 werken als een monster- en houdorgaan.
55 In figuur 21 zijn verschillende van de eerder beschreven schakelingelementen opnieuw getekend om te beschrijven hoe een digitaal-in-analoog omzetting plaatsvindt en om te tonen hoe de schakelingelementen van de l/O-subsectie opnieuw kunnen worden geconfigureerd door software door de l/O-besturing en 33 194564 • toestandsmachine van figuur 19 om verschillende functies uit te voeren.
Ten behoeve van een digitaal-in-analoog-omzetting wordt een passende frequentie (f0) gekozen uit de frequentievermenigvuldiger 178 of de teller 179 van figuur 18, die correspondeert met de periode van de ’’ramps" die worden gegenereerd door de ”ramp”-generator 200 (figuur 21). Een digitale waarde die 5 correspondeert met het gewenste analoge uitgangssignaal wordt geladen in het register 183. Wanneer een "ramp” begint, wordt het "ramp”-startsignaal gekoppeld via de toestandsmachine 189 van figuur 19 (bijvoorbeeld via de multiplexer 190) en de flip-flops. Dit veroorzaakt dat de teller 179 wordt gewist (bijvoorbeeld alle nullen). Het f0-signaal telt vervolgens in teller 179. Een vergelijker 182 vergelijkt de inhoud van de teller 179 met de inhoud van register 183. Wanneer de twee woorden gelijk zijn, wordt een 10 vergelijksignaal aangelegd via multiplexer 191, hetgeen wederom veroorzaakt dat de toestandsmachine wordt geactiveerd zoals aangegeven door ’’SM/’ 189 en dat de schakelaar 202 van het monster- en houdorgaan sluit. Voor elke "ramp” die wordt gegenereerd door de ”ramp’’-generator, wordt de "ramp”-schakelaar 202 gesloten (bijvoorbeeld gedurende 500 nanoseconden) hetgeen veroorzaakt dat de condensator 203 wordt opgeladen tot een gelijkspanning die overeenkomt met het digitale getal dat is 15 geplaatst in het register 183.
Een wijze waarop de A-D-omzetting kan worden uitgevoerd is getoond in figuur 22. Het analoge ingangssignaal wordt aangelegd aan één ingangsaansluitklem van de verschilversterker 170. De "ramp” wordt aangelegd aan de andere aansluitklem van de versterker 170. Aanvankelijk, wanneer de "ramp” wordt gestart, veroorzaakt de toestandsmachine 189 dat de teller 179 wordt geladen vanuit register 180 20 (bijvoorbeeld alle nul). De teller wordt geklokt bij een frequentie (f0) die geschikt is voor de periode van de "ramps”. Wanneer de overgangsdetectie 172 detecteert dat de potentiaal op pen B en de ’’ramp” dezelfde potentiaal hebben, veroorzaakt de toestandsmachine 189 dat de telstand in de teller 179 wordt vergrendeld in grendelorgaan 181. Het digitaal woord in grendelorgaan 181 komt overeen met de gelijkspannings-potentiaal op pen B waardoor de analoog-in-digitaal omzetting wordt verschaft.
25
F. I/O-COMMUNICA TIES
Zoals eerder is besproken, bijvoorbeeld in samenhang met figuur 1, kan elke cel gegevens over communicatielijnen of andere verbindingen verzenden. De cellen in een subkanaal verzenden gegevens met dezelfde snelheid die op kenmerkende wijze wordt bepaald door de communicatieverbinding die wordt 30 toegepast, bijvoorbeeld 10 kilo b/s in een met storing behepte omgeving, zoals voor voedingslijnen. In de huidige voorkeursuitvoering hebben de cellen geen kristaloscillatoren maar in plaats daarvan berusten zij op RC-oscillatoren. De laatste zijn niet in het bijzonder stabiel en frequentieveranderingen treden op als functie van temperatuur en als gevolg van veranderingen in verwerking. Bovendien is er niet voorzien in een synchronisatie tussen de cellen, zodat elk cel in een synchronisatie met de binnenkomende gegevens moet 35 voorzien, opdat de gegevens op de juiste wijze worden gelezen. Een voorziening van alle cellen is dat zij de frequentie van de binnenkomende gegevens detecteren en opslaan en wanneer een pakket wordt bevestigd kunnen zij uitzenden bij de frequentie waarmee het oorspronkelijke pakket werd uitgezonden. Dit beperkt het belasten van de cellen om te synchroniseren wanneer zij een bevestigingspakket ontvangen.
Onder verwijzing naar figuur 23 is een l/O-subsectie, tijdens de vrijloopmodus op zoek naar gegevens.
40 Tijdens deze modus, verschaft de frequentievermenigvuldiger een frequentie (f0) aan de teller 179 en een getal wordt in register 183 geladen vanuit de MBUS. Overeenkomsten treden op en worden gedetecteerd door vergelijker 182 bij een frequentie die correspondeert met de verwachte snelheid van binnenkomende gegevens. Meer in het bijzonder wordt de eindtelstand van teller 179 gesynchroniseerd met de overgangen. Zoals is aangeduid door de onderbroken lijn 201, zoekt de processor doorlopend naar overgangen vanaf de 45 overgangsdetectoren 171 en 172 van figuur 17. Wanneer overgangen optreden, bepaalt de processor of de overgangen voor of na de eindtelstand optraden en stelt vervolgens de frequentie (f0) in totdat de eindtelstand op hetzelfde tijdstip optreedt als waarop de overgangen worden gedetecteerd. Deze frequentie wordt de schuifsnelheid voor het schuifregister 206. (De stappen die worden uitgevoerd door de processor zijn weergegeven in figuur 23 door blokken 210 en 211.) Het getal dat is geladen in register 183 verschaft een 50 faseverschuiving tussen het tijdstip waarop overgangen optreden en het ideale tijdstip om gegevens in het register 206 te schuiven. Dit voorkomt het schuiven van gegevens tijdens overgangen. Merk op dat teller 179 telkens wanneer een eindtelstand wordt bereikt opnieuw wordt geladen (bijvoorbeeld alle nul).
Wanneer een bitsynchronisatie optreedt, wordt de snelheid die is vereist voor de synchronisatie (16-bits woord) opgeslagen in het geheugen van de processor en gebruikt om de zendfrequentie in te stellen 55 wanneer het pakket waarvoor de snelheid werd ontwikkeld, wordt bevestigd. Deze opgeslagen bitsnelheid wordt, zoals verderop besproken, gebruikt in het wedijver-terugtrek-algoritme, hetgeen het mogelijk maakt sleufperioden (M) aan te passen aan de laatst ontvangen bitsnelheid.
194564 34
Het uitgangssignaal van de vergelijker wordt gebruikt als een schuifsnelheid voor een 6-bits schuifregister 206. Tijdens de zoekmodus worden de gegevens vanuit pen B doorlopend verschoven door register 206.
De aanhef voor een pakket zoals is getoond in figuur 9 (010101-bitsynchronisatie) wordt verschoven langs het schuifregister 206 en de schuifsnelheid wordt zodanig ingesteld dat een synchronisatie/vergrendeling 5 optreedt. Wanneer de eerste vlag van het pakket verschijnt (groep synch-101010), zullen de laatste twee trappen van het register 206 enen bevatten en dit zal worden gedetecteerd door de EN-poort 207. Een binaire één aan de uitgang van de poort 207 beëindigt de zoekmodus en verschaft de groepsynchronisatie. Wanneer dit optreedt, worden de gegevens uit het schuifregister (zes bits) geklokt naar een gegevens-grendelorgaan 235 en van daaruit kunnen de gegevens worden geklokt naar de processor en omgezet in 10 4-bits groepen. Een ander schakelingorgaan is aanwezig om alle-nul in het schuifregister 206 te detecteren. Wanneer dit optreedt keren de processor en het schuifregister terug naar de zoekmodus. Het getal dat is geladen in register 183 verschaft een faseverschuiving tussen het tijdstip waarop overgangen optreden en het ideale tijdstip waarop gegevens in en uit het register 206 worden verschoven. Dit voorkomt het schuiven van gegevens tijdens overgangen.
15 Gegevens die moeten worden verzonden worden overgedragen naar het gegevensregister 205. (Merk op dat alleen zes bits die een 4-bits groep representeren worden overgedragen naar het gegevensregister 205.) Deze zes bits worden vervolgens overgedragen naar het schuifregister 206 en eruitgeschoven met de schuifsnelheid. Zoals vermeld, komt de schuifsnelheid, indien het eruit te schuiven pakket een bevestiging representeert, overeen met de snelheid van de binnenkomende gegevens. Indien het uitgaande pakket 20 anderzijds wordt verzonden naar verscheidene cellen, is de schuifsnelheid de nominale schuifsnelheid voor de zendende cel.
(Merk op dat in figuur 23 gegevens worden weergegeven die het register verlaten naar slechts pen A. Voor differentiële modi, wordt het complement van pen A gestuurd naar pen B, en andere variaties zijn mogelijk.) 25 G. I/O-REGISTERS EN GEMEENSCHAPPELIJK GEBRUIK SYSTEEMELEMENTEN Elke l/O-subsectie heeft een aantal registers die tweerichtingsverbindingen hebben met de MBUS. Deze registers zijn in de l/O-subsecties 107,108,109 en 110 van figuur 12. Het lezen en het schrijven van deze registers onder processorprogrammabesturing vormen de l/O-substelsels voor een juist bedrijf. Figuur 12 30 illustreert de vier l/O-subsecties 107, 108,109 en 110 en tonen de verbindingen met de laagste acht bits van de MBUS en de laagste zes bits van ADBUS. Twee ADBUS-brts selecteren één van de vier l/O-eenheden en de overige vier bits worden gedecodeerd om één van de l/O-besturing- en statusregisters (hieronder beschreven) te selecteren van die subsectie. Er zijn twee lijnen vanaf de PLA 136 van figuur 11 om de werking van de l/O-subsecties te besturen. Eén lijn is ’’lezen” en de andere lijn is ’’schrijven”.
35 Wanneer passend, worden deze lijnen actief op fase 3 van de klokcycli.
De l/O-registers, functies en bitdefinities worden hieronder beschreven: SCHRIJVEN REGISTERS: (bestuurd door de "schrijf”lijn)
Gebeurtenis 0 configuratie register: register, maskeren, 185, figuur 19: 40
Bit 0: Bij gebeurtenis omklappen pen A
Bit 1: Bij gebeurtenis omklappen pen B
Bit 2: Bij gebeurtenis grendelen 8-bits telstand
Bit 3: Bij gebeurtenis sluiten ”ramp”-schakelaar (kortstondig aan) 45 Bit 4: Bij gebeurtenis laden 8-bits teller
Bits 5-7: Invoer multiplexer: MUX 190, figuur 19
000 Overgang op pen A
001 Overgang op pen B 010 Eindtelstandgebeurtenis 50 011 Telstandvergelijkingsgebeurtenis 100 ”Ramp”-startgebeurtenis 101 Pen B vergelijkingsgebeurtenis
Gebeurtenis 1 configuratie register: maskeerregister 112, figuur 19:
Bit 0: Bij gebeurtenis omklappen pen A
55 35 194564
' Bit 1: Bij gebeurtenis omklappen pen B
Bit 2: Bij gebeurtenis grendelen 8-bits telstand
Bit 3: Bij gebeurtenis sluiten ”ramp”-schakelaar (kortstondig aan)
Bit 4: Bij gebeurtenis laden 8-bits teller 5 Bits 5-7: Invoermultiplexer: MUX 191, figuur 19
000 Overgang op pen A
001 Overgang op pen B
010 Eindtelstandgebeurtenis 011 Telstandvergelijkingsgebeurtenis ^ 100 ”Ramp”-startgebeurtenis 101 Pen B vergelijkingsgebeurtenis l/O-REGISTERS EN GEMEENSCHAPPELIJK GEBRUIK SYSTEEMELEMENT 15 8-bits tellerlaadregister: telleriaadregister 180; figuur 18 Bits 0-7 = telstand 20 Schrijven communicaties gegevensuitvoerregister: gegevens register 205, figuur 23 Bits 0-7 - gegevens
Schrijven communicaties configuratieregister: (niet getoond) (geladen vanuit MBUS) 25 Gebruikt om het communicatiesubstelsel vorm te geven voor het zenden en ontvangen van functies.
Bit 0: 0 = ontvangen, 1 = zenden
Bit 1: NOP
Bit 2: NOP
30 Bit 3: Schuifregister vrijgeven
Bit 4: Inbrengen zoekmodus
Bit 5: NOP
Bit 6: NOP
Bit 7: NOP
35
Uitvoer configuratieregister 0: (niet getoond) (geladen vanuit MBUS) Gebruikt om analoge en digitale penconfiguraties in te stellen.
Bit 0: Vrijgeven pen A analoog uit 40 Bit 1: Vrijgeven pen A digitaal uit
Bit 2: Vrijgeven pen A verrijken
Bit 3: Vrijgeven pen A verarmen
Bit 4: Vrijgeven pen B inversie
Bit 5: Vrijgeven pen B digitaal uit 45 Bit 6: Vrijgeven pen B verrijken
Bit 7: Vrijgeven pen B verarmen
Uitvoer configuratieregister 1: (niet getoond) (geladen vanuit MBUS) Gebruikt voor vrijgeef- en vergelijkingsfuncties 50
Bit 0: Vrijgeven 8-bits teller
Bit 1: Vergelijken pen B met TTL-referentie
Bit 2: Vergelijken pen B met instelbare gelijkspanningsreferentie
Bit 3: Vergelijken pen B met ”ramp"-spanning
55 Bit 4: Vergelijken pen B met pen A
Bit 5: Vrijgeven RS-485 aandrijforgaan 194564 36
Bil 6: Vrijgeven ingangshysteresis op pen A
Bit 7: Vrijgeven ingangshysteresis op pen B
Uitvoer configuratieregister 2: (niet getoond) (geladen vanuit MBUS) Gebruikt voor het instellen van logische 5 penniveaus
Bit 0: Uitvoeren, laden 8-bits teller met waarde in 8-bits tellerlaadregister
Bit 1: Instellen pen A op logisch niveau 1
Bit 2: Instellen pen A op logisch niveau 0 10 Bit 3: Instellen pen B op logisch niveau 1
Bit 4: Instellen pen P op logisch niveau 0
Onderste helft van frequentievermenigvuldigingsregister: frequentievermenigvuldiger 178, figuur 18, laagste byte van frequentievermenigvuldiger.
15 Bovenste helft van frequentievermenigvuldigerregister: frequentievermenigvuldiger 178, figuur 18, 8-bits vergelijkingslaadregister: vergelijkingslaadregister 183, figuur 18, byte voor vergelijking.
LEZEN REGISTERS: (bestuurd door ''lees"-lijn);
Leesgebeurtenis FIFO: FIFO 199, figuur 19 20
Bit 0: 0 = gebeurtenis 1 opgetreden 1 = gebeurtenis 0 opgetreden
Bit 1: Pen A niveau gedurende optreden van gebeurtenis
Bit 2: Pen B niveau gedurende optreden van gebeurtenis 25
Lees l/O-toestandsregister: l/O-status:
Bit 0: Invoer pen A
30 Bit 1: Invoer pen B
Bit 2: 1 = ”ramp”-vergelijking
Bit 3: NOP
Bit 4: NOP
Bit 5: 1 = FIFO heeft gegevens 35 0 = FIFO leeg 8-bits tellergrendelorgaan: register 181, figuur 18 Telstandbyte.
Communicaties gegevensregister: gegevensgrendelorgaan 235, figuur 23 Gegevensbyte.
Communicaties statusregister: (niet getoond) (leest op MBUS) 40
Bit 0: Ontvangstmodus: 1 = gegevens beschikbaar in schuifregister
Zendmodus: 0 = zend grendeling gereed Bit 1: 1 = in zoekmodus van figuur 23
45 GEMEENSCHAPPELIJK GEBRUIK SYSTEEMELEMENT
In de huidige voorkeursuitvoering zijn vijf systeemelementen gemeenschappelijk onder de processoren. Zij zijn het EEPROM en de vier l/O-subsecties. Een hardware ’’semafoorregister” (SR) en vijf woorden in RAM worden gebruikt bij het besturen van het gemeenschappelijk gebruik van systeemelementen. Figuur 30 illustreert hoe de multiprocessoren gemeenschappelijke systeemeLementen delen. Het SR 95 van figuur 12 50 leest en schrijft naar bit 0 van de MBUS.
Elk RAM-woord zal één toestand bevatten: vrij, proc.#1, proc.#2, proc.#3 of proc.#4. Een processor kan een RAM-locatie ondervragen alvorens een systeemelement toe te wijzen om te zien of een systeem-element bezet is. Indien het systeemelement niet is toegewezen zal hij vervolgens toegang hebben tot het semafoorregister zoals hieronder beschreven. (Op een andere wijze kan een processor de aanvankelijke 55 RAM-ondervragingsstap overslaan en de RAM-locatie controleren nadat hij toegang heeft gekregen tot het semafoorregister.) Indien het systeemelement reeds bezet is, moet de processor het semafoorregister op ”0” wissen en wachten om opnieuw te proberen. Indien het systeemelement ’’vrij” (’’idle”) is, wijst de 37 194564 processor een systeemelement toe door de toestand van het RAM-register te wijzigen van ”vrij” in ”proc.#x” en vervolgens door het semafoorregister naar ”0” te wissen. Wanneer de processor klaar is met het systeemelement, wordt de RAM-locatie naar ’’vrij" gewist.
Het SR is een 1-bits hardware-register. Tijdens fase 3 van zijn bijbehorende cyclus, kan, indien vereist, 5 elke processor toegang hebben tot het SR. In tijdsopeenvolging betekent dit dat de processoren eenmaal op één van vier opeenvolgende klokcycli (bijvoorbeeld fasen) toegang kunnen hebben tot het SR 295. Het SR 295 is normaal ingesteld op ”0”. In figuur 30 verzoeken processoren 1 en 3 niet om gebruik van het SR 295. Processor 2 zoals weergegeven heeft toegang tot het SR. Indien hij een ”0” ontvangt aan het begin van de cyclus, weet hij dat niets op dat ogenblik is toegewezen of gewist en stelt hij de passende RAM-10 locatie in en indien het ’’vrij” bevat brengt de processor zijn ”proc.#” in, waardoor het systeemelement wordt toegewezen en ’’wist” vervolgens het SR naar ”0”. Indien de processor vond dat een andere processor het gemeenschappelijke systeemelement gebruikte, wijst het niet zijn procJtoe en ’’wist” vervolgens het SR naar ”0”. In dat geval moet hij wachten en opnieuw proberen.
Sommige operaties zoals die op het EEPROM kunnen vele klokcycli in beslag nemen, zodat de 15 processor het RAM-register moet ’’toewijzen” maar het SR 295 moet vrijgeven terwijl hij het gemeenschappelijke systeemelement gebruikt. Wanneer de processor gereed is met zijn operatie onder gebruikmaking van de toegewezen RAM-locatie, benadert hij het SR wederom totdat hij een ”0” vindt. Dan "wist” hij de RAM-locatie tot "vrij” en ’’wist” hij het SR 295 tot ”0”. Steeds wanneer een processor het SR 295 benadert en een ”1” vindt, verlaat hij het SR 295 in de ”1’’-toestand en moet hij wachten om opnieuw te proberen.
20 In het voorbeeld in figuur 30 is processor #4 getoond als een processor die een gemeenschappelijk systeemelement nodig heeft. Hij ondervraagt het SR om uit te vinden of het vrij is. De processor gebruikt een "toets&instel”-operatie en aangezien het SR 295 reeds "1” was, verlaat de toets & insteloperatie het register met een ”1”. Hij moet nu wachten en opnieuw proberen. Hij zal blijven proberen totdat hij toegang krijgt tot het SR 295 en vindt dat het systeemelement in het RAM-woord "vrij" is.
25
PROTOCOL
A. WEDIJVER IN HET ALGEMEEN
In een kenmerkende toepassing wordt het communicatienetwerk tussen de cellen licht belast en zullen de cellen weinig of geen wedijververtraging ondervinden. In het geval van druk verkeer, kan het netwerk 30 verzadigen. Een hoge belasting zal botsingen genereren en bijgevolg heruitzendingen vereisen. Indien heruitzendingen blijven botsen, kan het netwerk mogelijkerwijs verzadigen. Het wedijver-terugtrekalgoritme dat wordt gebruikt in het netwerk spreidt het verkeer snel over een langere tijdsperiode zodat het stelsel kan herstellen uit een verzadiging. Indien het verkeer niet wordt gespreid over een lange tijdsperiode, zal het stelsel instabiel zijn; het zal niet herstellen van een verzadiging.
35 Toegang tot een subkanaal onder wedijveromstandigheden wordt gereguleerd door twee mechanismen, opschorten en terugtrekken. Opschorten is een techniek waarbij een botsing wordt vermeden, welke techniek wordt gebruikt bij groepbevestigingen. Terugtrekken is een techniek van het regelen van het verkeer- of belastingniveau.
Opschorten bestaat uit het tellen van vrije sleuven. Wanneer het aantal vrije sleuven dat de cel heeft 40 gezien gelijk is aan de opschortingstelwaarde, verzendt de cel zijn pakket in de volgende beschikbare sleuf.
Bij het terugtrekken verlengt de cel zijn wachttijd alvorens het heruitzenden van een pakket dat te kampen heeft gehad met een botsing te proberen. De omvang van deze verlenging is een functie van het aantal botsingen of heruitzendingen. Het algoritme dat deze functie implementeert wordt het terugtrek- of wedijveralgoritme genoemd.
45 Het netwerk maakt gebruikt van een dragerwaarnemingswerkwijze met meervoudige toegang voor het oplossen van wedijver voor het communicatiekanaal. Wanneer een cel gereed is om uit te zenden, luistert hij eerst naar het communicatiekanaal. Indien hij hoort dat een andere cel uitzendt, wacht hij voor een vrij kanaal. Wanneer hij eenmaal een vrij kanaal detecteert, kan een cel vertragen alvorens uit te zenden. De werkwijze voor het bepalen van deze vertraging wordt bepaald door het wedijveralgoritme.
50 Tijd op het kanaal wordt gemeten in sleuven, waarbij elke sleuf M bits is bij de meest recentelijk gedetecteerde ontvangstbaudsnelheid (dat wil zeggen schuifsnelheid). Wanneer een cel vertraagt alvorens uit te zenden, wacht de cel een geheel aantal sleuven. Wanneer een cel een vrij kanaal detecteert, kan de cel vertragen en vervolgens wanneer de cel gereed is om uit te zenden, probeert de cel om uit te zenden op een sleufrand. Wanneer een cel een pakket uitzendt dat te kampen heeft gehad met een botsing, 55 vertraagt de cel over een tijdsperiode die wordt bepaald door het terugtrekalgoritme. Een terugtrekvertraging wordt willekeurig uniform verdeeld over N sleuven, waarbij N wordt ingesteld door het terugtrekalgoritme.
Zijn kleinste waarde is 2 en hij wordt naar boven ingesteld door het terugtrekalgoritme voorafgaande aan 194564 38 elke heruitzending van een pakket. Zijn maximale waarde is 210.
B. PAKKETWEDIJVER BIJ GROEPBEVESTIGING
5 Een pakket vanuit een groepmelder naar een verzameling van groepluisteraars zal veroorzaken dat elk van deze luisteraars een bevestiging naar de melder zendt. Zonder een werkwijze voor het arbitreren van de wedijver tussen deze bevestigingen, zullen zij altijd botsen. Om dit probleem te vermijden wordt een ingebouwd reserveringsstelsel voor groepbevestigingen gebruikt. Een luisteraarcel gebruikt zijn groepslid-nummer om te bepalen welke sleuf wordt gebruikt voor zijn bevestiging. Groepslid 5 zal zijn bevestiging 10 uitzenden in de vijfde vrije sleuf die volgt op ontvangst van het oorspronkelijke pakket. Het resultaat is dat groepslid 1 zijn bevestiging in de eerste sleuf zal uitzenden dit volgt op het originele pakket. Groepslid 2 zal zijn bevestiging in de eerste sleuf uitzenden die volgt op een bevestiging van het eerste groepslid. Deze procedure continueert totdat het laatste groepslid het originele pakket heeft geantwoord. Indien een groepslid niet antwoordt en aldus zijn antwoordsleuf vrij laat, antwoordt het volgende groepslid in de 15 volgende sleuf.
Het wedijver- en l/O-toestandsdiagram is getoond in figuur 24. De volgende tabel zet de toestanden en hun beschrijvingen uiteen.
Wedijvertoestanden 20 -
Toestand Naam Beschrijving 0 Idle Pas de sleufgrenzen af in de tijd onder het uitzien naar ontvangstgegevens- overgangen.
25 1 Bit Sync Vestig een baudsnelheidssynchronisatie met ontvangen signaal.
2 Byte Sync Wacht voor het begin van pakketvlag.
3 Rcv Ontvang het pakket.
4 IPG Delay Pakkettussenruimtevertraging. Vertraging voor n bit tijden na het einde van het laatste pakket op het subkanaal (of dit neuron het heeft uitgezonden of het 30 heeft ontvangen).
5 Backoff Wacht M sleuven, waarbij M werd ingesteld Delay door de laatste uitvoering van het terugtrekalgoritme of door de ARQ-protocol software.
6 xmt Verzend een pakket in de volgende sleuf.
7 Jam Verzend een storings(”jam”)patroon (alle- enen voor de storingsperiode 35 (gespecificeerd in bit-tijden). Voer het terugtrekalgoritme uit om de terugtrek- sleuftelwaarde in te stellen.
Wedijvertoestandsovergangen 40 Toestand Gebeurtenis Actie Volgende Toestand 0. Idle A. Overgangen gedetecteerd geen 1. Bit Sync 0. Idle L. Pakket naar xmt geen 5. Backoff Delay 1. Bit Sync B. Sync verkregen geen 2. Byte Sync 4$ 1. Bit Sync G. Geen overgangen geen 4. IPG Delay Byte Sync 2. Byte Sync F. Zoekonderbreking geen 1. Bit Sync 2. Byte Sync C. Beginvlag gedetecteerd geen 3. Rev 3. Rev E. Verwerping gedetecteerd geen 1. Bit Sync 3. Rev D. Eindvlag stel pkt ontv 4. IPG Delay 50 vlag in 3. Rev N. Pakket te lang geen 1. Bit Sync 4. IPG Delay M. Vertraging uitgevoerd geen 0. Idle 5. Backoff J. Vertraging uitgevoerd geen 6. xmt Delay 5. Backoff A. Overgangen gedetecteerd geen 1. Bit Sync Delay 55 ... - ...... ......— — 39 194564
Wedijvertoestandsovergangen (vervolg)
Toestand Gebeurtenis Actie Volgende Toestand 5 6. xmt I. Botsing gedetecteerd bereken 7. Jam terugtrek- vertraging 6 Xmt H. Xmt uitgevoerd geen 0. Idle 7. Jam K. Jam uitgevoerd geen 5. Backoff Delay 10 -
C. BOTSINGSDETECTIE
In de huidige geïmplementeerde uitvoering wordt geen botsingsdetectie gebruikt. Gebruikelijke schakelingen kunnen worden gebruikt om deze voorziening te verschaffen, waarbij de cellen antwoorden verschaffen 15 zoals uiteengezet in IEEE 802.3. Bij het detecteren van een botsing kan de cel een stoorsignaal uitzenden gedurende een sleuftijd om zich ervan te vergewissen dat alle cellen op de kanaal de botsing detecteren. Vervolgens beëindigt de cel het uitzenden en voert hij het terugtrekalgoritme uit. Het terugtrekalgoritme stelt het willekeurige wedijversinterval in. IEEE 802.3 gebruikt het aantal botsingen dat wordt ervaren door het pakket om het terugtrekinterval te berekenen. Het celnetwerk kan niet altijd een botsingsdetectie hebben, 20 zodat het terugtrekalgoritme van de cel gebruik kan maken van de afgeleide botsing volgens het protocol om het terugtrekinterval te berekenen. Indien de cel een botsingsdetectie heeft, detecteert de cel een botsing in dezelfde sleuf als waarin deze optreedt en probeert de uitzending opnieuw (na het terugtrekinterval).
Voor cellen zonder een botsingsdetectie waarbij een botsing optreedt, ontdekt de cel dit wanneer de 25 onderbrekingsperiode volgens het protocol verstrijkt. Indien een cel een pakket verzendt naar een aantal bestemmingen (het gebruikelijke geval), leidt de cel een botsing af indien aan het eind van de tijd-onderbrekingsperiode volgens het protocol geen antwoorden zijn ontvangen vanuit de een of andere bestemming. Indien zelfs één antwoord wordt ontvangen, was er geen botsing bij het uitzendpunt en de heruitzending vindt plaats zonder een vergrote vertraging tengevolge van terugtrekken. De cel voert dan het 30 terugtrekalgoritme uit juist zoals de cel dit doet bij een botsingsdetectie, waarbij gebruik wordt gemaakt van de afgeleide botsingstelwaarde. Na het terugtrekinterval zendt de cel het pakket uit.
Bijgevolg is het verschil tussen een botsingsdetectie en een botsingsafleiding gelegen in de tijdspanne die de cel nodig heeft om te ontdekken dat een botsing is opgetreden.
35 D. TERUGTREKALGORITME
Het terugtrekalgoritme dat wordt gebruikt in de huidige voorkeursuitvoering is uiteengezet in IEEE 802.3-standaard, een afgekapte binaire exponentiële terugtrekking. Het terugtrekinterval is een exponentiële functie van het aantal botsingen (gespecificeerd of afgeleid) vanaf de laatste succesvolle uitzending. Een exponentieel terugtrekalgoritme geeft het stelsel de stabiliteit die het vereist om te herstellen van 40 verzadigingsomstandigheden. Door de belasting exponentieel uit te spreiden in een verzadigd stelsel, staat het algoritme het stelsel toe om te herstellen. Het terugtrekinterval in sleuven = R, zodanig R = willekeurig getal dat lineair is verdeeld over het interval: 0<R<2 EXP (min (10, n)), waarbij n = aantal botsingen.
45 Wanneer een cel is verbonden met twee zendontvangers, zendt de cel elk pakket uit via beide zendont-vangers. Aangezien de zendontvangers toegang hebben tot verschillende subkanalen, zuilen zij verschillende belastingsomstandigheden ervaren. Elke zendontvanger wordt behandeld als een gescheiden subkanaal en heeft zijn eigen terugtrekparameters (botsingstelwaarde en terugtrekinterval). De terugtrek-parameters worden "gehouden" door de cellen, één verzameling voor elke uitzending.
50 Het willekeurige getal voor het terugtrekalgoritme wordt opgewekt door één van de twee methoden: 1. een pseudo-willekeurig getalgenereeralgoritme bestrooid met de 48-bits cel-ID (gegarandeerd uniek zoals besproken), 2. door een teller te laten lopen en de laagste orde-bits op te slaan wanneer een externe gebeurtenis wordt gedetecteerd.
De sleuven zijn in duur gelijk aan de bitsnelheid van de laatst ontvangen gegevens. Merk op dat indien 55 elke cel zijn inwendige bitsnelheid zou gebruiken, de sleufduur zal variëren van cel tot cei.
194564 40
E. WEDIJVER-TIMER
Pakketten die een aantal routes hebben naar een bestemming kunnen een lange wedijververtraging ervaren via één route en een kortere vertraging bij het gelijktijdig afleggen van een andere route. Indien deze wedijververtraging wordt toegestaan te lang te zijn, zal het laatste pakket aankomen nadat het ontvangtsop-5 eenvolgingsnummer van de bestemming is teruggelopen naar hetzelfde opeenvolgingsnummer in het pakket. Een pakket zal aldus uit een sequentie kunnen raken zonder dat het ARQ-protocol dit detecteert.
Om dit type fout te voorkomen, gebruikt het pakket het wedijver-timerveld (figuur 6) dat stapsgewijs wordt verlaagd door het aantal sleuven dat het pakket heeft gewacht voor wedijver bij elke sprong in een meersprongsroute. Wanneer de telstand nul bereikt, wordt het pakket terzijde geschoven.
10
F. ARO-PROTOCOL
De cel gebruikt een schuivend vensterprotocol met een vensterafmeting van 1 en modulo 2 opeenvolgings-nummering (gelijk aan een halt- en wachtprotocol). Het verbindingsbesturingsmechanisme lijkt zeer op de HDLC asynchrone gebalanceerde modus. Het principiële verschil is dat met een 1-bits opeenvolgings-15 nummering in plaats van bevestigingspakketten waarbij het navraag/slotbit is ingesteld, elk informatiepakket een bevestiging moet hebben.
Voordat het ARQ-mechanisme kan werken, moet een verbinding worden aangelegd tussen de twee communicerende organen (cel of netwerkbesturingsorgaan). De verbindingsprocedure wordt beschreven in de paragraaf "verbinding”, verderop in deze aanvrage. Het ARQ-mechanisme werkt slechts wanneer de cel 20 in de verbonden toestand is. De ARQ-toestanden kunnen worden beschouwd als subtoestanden van de verbonden toestand.
Wanneer een cel een bericht uitzendt, wacht het voor een antwoord vanaf de bestemming. Indien de cel geen bevestiging ontvangt binnen en vooraf omschreven tijdonderbrekingsperiode, veronderstelt deze dat het bericht is verloren en zendt deze het bericht opnieuw.
25 Twee typen pakketten kunnen worden gebruikt om een bevestiging, over te dragen, een pakket uitsluitend voor bevestiging of een informatiepakket. De bevestiging wordt overgedragen in het ontvangst-opeenvolgingsnummer van het pakket. Het pakket voor uitsluitend bevestiging heeft geen berichtveld en wordt geïdentificeerd door de ACK-opdracht in het verbindingsopdrachtveld. Een informatiepakket bevat wel een berichtveld en wordt geïdentificeerd door de INFO-opdracht in het verbindingsopdrachtveld.
30 Figuur 25 is het ARQ-toestandsdiagram op verbindingsniveau en definieert, tezamen met de volgende tabel, de verschillende ARQ-toestanden.
Toestand Gebeurtenis Actie Volgende toestand 35 -:- 0. Idle bericht voor verzending stel pakket samen 1. Idle 0. Idle pakket voor overdracht zend pakket 1. Contention 0. Idle pakket ontvangen verwerk pakket 1. Idle
1. Contention pakket overgedragen start timer 2. Wait ACK
40 2. Wait ACK tijdonderbreking stop timer 2. Wait ACK
stel pakket samen 2. Wait ACK pakket voor heruitzending zend pakket opnieuw 1. Contention 2. Wait ACK ACK-pkt ontvangen of N stop timer 0. Idle nieuwe pogingen
45 2. Wait ACK geen ACK-pkt ontvangen verwerk pakket 2. Wait ACK
Een cel moet een zendopeenvolgingsnummer opslaan voor elke geadresseerde waarmee hij communiceert. Een geadresseerde kan een cel, een groep of een besturingsorgaan zijn. Voor het ontvangen moet een cel 50 het ontvangstopeenvolgingsnummer van elke bron waarvan hij ontvangt, opslaan. Een bron kan een cel, een groep of een besturingsorgaan zijn. Wanneer een cel een bericht ontvangt controleert de cel de CRC op het bericht. Indien de CRC niet geldig is, geeft de cel geen antwoord op het bericht. De cel die een bericht ontvangt controleert ook het opeenvolgingsnummer van het bericht. Indien het opeenvolgingsnummer aangeeft dat dit een duplicaatpakket betreft, bevestigt de cel de ontvangst van het pakket aan de 55 zender, maar laat het pakket niet door naar de applicatiesoftware.
Het ARQ-protocol gebruikt een bit dat betekent ”dit is een heruitzending door de zender”. Een ontvanger zal een duplicaatbericht niet bevestigen tenzij het bericht zijn heruitzendingsbit nog heeft. De cel slaat het j i 41 194564 opeenvolgingsnummer voor het laatst ontvangen bericht op voor elke groep waarvoor de cel een luisteraar | is. Het heeft een gescheiden 1 -bits zendopeenvolgingsnummer en een 1 -bits ontvangstopeenvolgings-nummer voor berichten die zijn geadresseerd met het celadres (gebruikt bij het communiceren met besturingsorganen). j 5 Cel-naar-cel communicaties geschieden via groepadressen. Rechtstreeks adresseren met celadressen wordt gebruikt voor netwerkbesturingsfuncties. De cel zal in deze gevallen met een groepeerorgaan of een netwerkbesturingsorgaan communiceren. Een cel kan slechts één conversatie op een tijdstip voeren, waarbij celadressen worden gebruikt omdat de cel voorzieningen heeft om slechts één verzameling van deze opeenvolgingsnummers op te slaan.
10 Wanneer een besturingsorgaan wenst te communiceren met een cel, opent het communicaties door het verzenden van een pakket met een verbindingsopdracht in het verbindingsbesturingsveld. Deze opdracht initialiseert de opeenvolgingsnummers. Na ontvangst van deze opdracht zal de cel berichten die aan hem zijn geadresseerd (via het celadres) door een ander besturingsorgaan niet accepteren totdat de conversatie eindigt. De conversatie eindigt wanneer het besturingsorgaan een verbreekopdracht zendt naar de cel.
15 De tijdsperiode gedurende welke de cel wacht voor een bevestiging van een bericht hangt af van het type routering dat wordt gebruikt. In het algemeen staat de cel voldoende tijd toe voor het pakket om bij zijn bestemming aan te komen plus en protocolverwerkingstijd in de bestemmingscel en de zendtijd voor het terugkeerpakket dat de bevestiging overdraagt.
De tijdonderbrekingsperiode volgens het procotol voor meersprongspakketten wordt ook beïnvloed door 20 de botsingstelstand. Zelfs in zeer met storing behepte omgevingen, is het waarschijnlijker dat de oorzaak dat een pakket faalt in het op tijd bereiken van zijn bestemming het gevolg is van een wedijversituatie in plaats van een zendfout. Wanneer een pakket opnieuw wordt geprobeerd, wordt verondersteld dat de botsingstelstand een indicatie van de stelselbelasting is en de verwachte wedijververtraging voor een meersprongspakket. De vertragingsperiode voor een meersprongspakket wordt naar boven ingesteld als 25 functie van de botsingstelstand. De tijdonderbrekingsperiode is bijgevolg een functie van de zendbout-snelheid, het aantal sprongen en de botsingstelstand.
G. VERBINDINGSBESTURINGSOPDRACHTEN
Verbindingsbesturingsopdrachten besturen de werking van het ARQ-protocol en de verbindingsprocedure 30 (zie volgende paragraaf). Het verbindingsopdrachtveld van een pakket bevat altijd een verbindingsopdracht.
ARQ Protocolopdrachten INFO Informatiepakket (vereist bevestiging) 35 ACK Pakket voor uitsluitend bevestiging (vereist geen bevestiging)
Verbindingsbesturingsopdrachten CONN Verbinden 40 DISC Verbreken SI Instellen initialisatie XND Uitwisseling netwerkgegevens
Antwoorden op verbindingsbesturingsopdrachten 45 CMDR Opdracht verwerpen RD Verzoek verbreking
Rl Verzoek initialisatie UA Niet-genummerde bevestiging 50
Slechts pakketten met de ACK- en INFO-opdrachten gebruiken een opeenvoigingsnummering. De INFO-pakketten hebben twee opeenvolgingsnummers, een zendopeenvolgingsnummer en het opeenvolgingsnummer van het laatst ontvangen pakket. ACK-pakketten hebben beide opeenvolgings-nummervelden, maar het zendopeenvolgingsnummer wordt genegeerd door de bestemming.
55 Pakketten met opdrachten anders dan ACK of INFO worden ongenummerde pakketten genoemd.
Ongenummerde pakketten worden bevestigd op een halt- en wachtwijze via een UA-opdracht. Ongenummerde pakketten bevatten geen berichtveld.
194564 42
H. VERBINDINGSBESTURING
Voordat een besturingsorgaan met een cel kan communiceren, moet het een verbinding met de cel tot stand brengen. Het tot stand brengen van een verbinding bestaat uit het initialiseren van de opeenvolgings-nummers en het in een bekende toestand brengen van het besturingsorgaan en de cel. De procedures van 5 het tot stand brengen en handhaven van een verbinding worden geleid door toestandmachines die in software zijn geïmplementeerd.
Een meldercel moet een verbinding tot stand brengen met elke luisteraarcel in zijn groep. Slechts wanneer de verbindingen zijn tot stand gebracht kan de melder met de luisteraars communiceren. De verbindingen worden bestuurd door een deelverzameling van de verbindingsbesturingsopdrachten.
10 Opdrachten worden afgegeven door een primair of hoofdstation. Een secundair station ontvangt een opdracht en zendt een antwoord naar het hoofdstation. In een groep is het hoofdstation de melder. De luisteraars zijn secundaire stations. Wanneer een netwerkbesturingsorgaan communiceert met een cel is het besturingsorgaan het hoofdstation en is de cel het secundaire station. De verbindingsbesturingsopdrachten en hun antwoorden worden hieronder weergegeven. De INFO- en ACK-opdrachten zijn ARQ-15 prototolopdrachten; de overige zijn verbindingsbesturingsopdrachten.
primaire secundair beschrijving opdracht antwoord 20 - INFO Informatie: slechts geldig in verbonden toestand INFO Informatie: slechts geldig in verbonden toestand ACK Bevestiging: gebruiken opeenvolgingsnummers in pakket maar werken ontvangstopeenvolgingsnummer niet bij.
25 CMDR Opdracht verwerpen: alleen uitgezonden door secundair in verbonden toestand.
Pakket opnieuw samenstellen en dit weer verzenden Rl Verzoek initialisatie: initialiseren secundair.
Verbreken secundair.
RD Verzoek verbreken: verbreken van de secundair.
30 DM Secundair is in de verbroken toestand.
ACK Bevestiging CMDR Opdracht verwerpen: alleen uitgezonden door secundair in verbonden toestand.
Pakket opnieuw samenstellen en dit weer verzenden.
Rl Verzoek initialisatie: initialiseren secundair.
35 Verbreken secundair. Verbinden secundair.
DM Verbreekmodus: secundair is in de verbroken toestand.
CONN Verbinden.
UA Ongenummerde ACK
CMDR Opdracht verwerpen: alleen uitgezonden door secundair in verbonden toestand 40 CONN opnieuw proberen.
Rl Verzoek initialisatie: initialiseren secundair.
Verbreken secundair, verbinden secundair.
RD Verzoek verbreken: zend DISC
DISC Verbreken
45 UA Ongenummerde ACK
CMDR Opdracht verwerpen: alleen uitgezonden door secundair in verbonden toestand.
DISC opnieuw proberen.
SI Stel initialisatie in CMDR Opdracht verwerpen: alleen uitgezonden door secundair in verbonden toestand. 50 Si opnieuw proberen.
UA Ongenummerde ACK.
XND Uitwisseling ID & netwerkgegevens: deze opdracht wordt slechts verzonden wanneer het primaire station in de verbroken toestand is.
XND Uitwisseling ID & netwerkgegevens: de secundair zendt een XND-antwoord 55 slechts indien het in de verbroken toestand is. Indien het een XND ontvangt terwijl het in een andere toestand is, antwoordt de secundair met CMDR.
43 194564 primaire secundair beschrijving _ opdracht antwoord 5 _ CMDR Opdracht verwerpen: alleen verzonden door secundair in verbonden toestand.
Verbreken secundair; vervolgens XND opnieuw proberen 10 De verbindingstoestandsdiagrammen van figuren 26 en 27 hebben betrekking op primaire en secundaire stations. Het primaire station bestuurt de verbinding. Het secundaire station kan verzoeken dat de toestand van de verbinding verandert maar het secundaire station kan de verbinding niet veranderen tenzij daartoe opdracht is gegeven door het primaire station.
15 VERBINDINGSTOESTANDEN PRIMAIR STATION | — ~~ | Toestand Gebeurtenis Actie Volgende toestand 0. Start voeding initialiseren 4. Wait Init ! 20 j
1. Disconnect verbindingsverzoek zend CONN 2. Wait Connect I
1. Disconnect onafwendbare fout of Rl zend SI 4. Wait Init 1. Disconnect XND verwerk XND 1. Disconnect 1. Disconnect INFO, ACK probeer DISC opnieuw 1. Disconnect 25 1. Disconnect UA, DM negeren 1. Disconnect 1. Disconnect RD, CMDR probeer DISC opnieuw 1. Disconnect 2. Wait Connect UA stel opeenvol. numm. 3. Connect terug 30 2. Wait Connect onafwendbare fout of Rl zend SI 4. Wait Init 2. Wait Connect niet-onafwendbare fout zend DISC 5. Wait Disc
RD of CMDR
2. Wait Connect INFO, ACK zend DISC 5. Wait Disc 2. Wait Connect DM probeer CONN 3. Wait Connect opnieuw 35 2. Wait Connect XND zend DISC 5. Wait Disc 2. Wait Connect tijdonderbreking probeer 2. Wait Connect CONN opnieuw 3. Connect onafwendbare fout of Rl zend SI 4. Wait Init 40 3. Connect niet-onafwendbare fout zend DISC 5. Wait Disc RD of disc verzoek 3. Connect DM zend DISC 1. Disconnect 3. Connect CMDR, INFO, ACK ARQ verwerking 3. Connect 3. Connect XND zend DISC 5. Wait Disc 45 3. Connect UA zend DISC 5. Wait Disc 4. Wait Init UA ontvangen zend DISC 5. Wait Disc 4. Wait Init CMDR ontvangen probeer SI 4. Wait Init opnieuw 50 4. Wait Init INFO, ACK probeer SI opnieuw 4. Wait Init 4. Wait Init RD, DM, Rl, XND probeer SI opnieuw 4. Wait Init 4. Wait Init tijdonderbreking probeer SI opnieuw 4. Wait Init 5. Wait disc UA, DM 1. Disconnect 55 5. Wait disc Rl zend SI 4. Wait Init 5. Wait disc onafwendbare fout zend SI 4. Wait Init 194564 44 VERBINDINGSTOESTANDEN PRIMAIR STATION (vervolg)
Toestand Gebeurtenis Actie Volgende toestand 5 5. Wait disc CMDR, RD, XND probeer DISC opnieuw 5. Wait Disc 5. Wait disc INFO, ACK probeer DISC opnieuw 5. Wait Disc 5. Wait Disc tijdonderbreking Retry DISC 5. Wait Disc VERBINDINGS*
10 TOESTANDEN
SECUNDAIR STATION
| Toestand Gebeurtenis Actie Volgende toestand 0. Start voeding initialiseren 3. Initialize 15 1. Disconnect CONN ontvangen zend UA 2. Connect 1. Disconnect SI ontvangen initialiseren zend UA 3. Initialize 1. Disconnect onafwendbare fout zend Rl 4. Wait Init 1. Disconnect XND zend XND 1. Disconnect 1. Disconnect INFO, ACK probeer DM opnieuw 1. Disconnect 20 1. Disconnect DISC probeer DM opnieuw 1. Disconnect 2. Connect SI ontvangen initialiseren zend UA 3. Initialize 2. Connect DISC ontvangen zend UA 1. Disconnect 2. Connect onafwendbare fout zend Rl 4. Wait Init 25 2. Connect niet-onafwendbare fout zend RD 5. error 2. Connect INFO, ACK ARQ-verwerking 2. Connect 2. Connect CONN probeer UA opnieuw 2. Connect 2. Connect XND zend RD 5. Error 30 3. Initialize DISC ontvangen zend UA 1. Disconnect 3. Initialize INFO, ACK, CONN probeer Rl opnieuw 3. Initialize 3. Initialize SI probeer UA opnieuw 3. Initialize 3. Initialize XND probeer RD opnieuw 3. Initialize 35 4. Wait Init SI ontvangen initialisering zend UA 3. Initialize 4. Wait Init INFO, ACK probeer Rl opnieuw 4. Wait Init 4. Wait Init DISC, XND, CONN probeer Rl opnieuw 4. Wait Init 5. Error DISC ontvangen zend UA 1. Disconnect 40 5. Error SI ontvangen initialisering zend UA 3. Initialize 5. Error INFO, ACK, CONN, probeer RD opnieuw 5. Error
XND
45 OPMERKING: Herpogingen: Een antwoord kan N-maal opnieuw worden geprobeerd. De gebeurtenis die herpoging N+1 veroorzaakt wordt gedefinieerd als een onafwendbare fout en veroorzaakt een initialisatie. De cel handhaaft één herpogingstelstand en verhoogt deze met een stap wanneer een antwoord anders dan INFO of ACK opnieuw wordt geprobeerd. De herpogingstelstand wordt gewist steeds wanneer een niet opnieuw geprobeerd antwoord wordt verzonden naar de primaire cel.
50
I. OPEENVOLGING VOORTIJDIGE BEËINDIGING
Een cel die een pakket verzendt kan het pakket voortijdig beëindigen door het verzenden van een voortijdige beëindigingsreeks in plaats van voortgaan met het verzenden van het pakket. De voortijdige beëindigingsopeenvolging is een groep van ten minste twaalf enen die achtereenvolgens worden uitgezon-55 den. Een ontvangende cel identificeert een voortijdige beëindiging uit het codeverifieerorgaan van figuur 16. Een ontvangend pakket behandelt elke schending van een drie-uit-zes code als een voortijdige beëindiging. Een gevolg hiervan is dat een niet-actieve toestand van een verbinding leidt tot een voortijdige beëindiging.
45 194564
Indien de verbinding niet-actief is (geen overgangen) gedurende langer dan een bittijdsduur, is het gevolg een codeschending. Wanneer een cel die een pakket ontvangt een voortijdige beêindigingsopeenvolging detecteert, legt de cel het gedeelte van het pakket terzijde dat de cel heeft ingeklokt en begint met het zoeken naar een nieuwe pakketaanhef. De voortijdige beëindigingsopeenvolgingen wordt ook gebruikt voor 5 ’’jamming” nadat een botsing is gedetecteerd.
J. STELSEL-ID
In figuur 29 wordt de werkwijze waarop de 48-bits stelsel-ID wordt gebruikt binnen de pakketten geïllustreerd. Tweeëndertig bits van de stelsel-ID, die zijn weergegeven als veld 251, worden rechtstreeks in het 10 pakket geplaatst zoals is aangegeven door het veld 255. De resterende zestien bits worden gebruikt in de berekening van de pakket-CRC. Aanvankelijk begint het CRC-register met alle-enen zoals aangegeven door het veld 252 bij het begin van de CRC-berekening. Vervolgens wordt het 16-bits veld 250 van de stelsel-ID gebruikt in de CRC-berekening om een 16-bits veld 253 te verschaffen. Het veld 253 wordt opgeslagen in het EEPROM en gebruikt als een voorinstel-CRC-veld telkens wanneer een pakket-CRC wordt berekend.
15 Wanneer een pakket eenmaal moet worden verzonden wordt het vooringestelde veld opgeslagen, waarbij het opgeslagen CRC-veld wordt gekoppeld aan het CRC-register. Het 16-bits pakket-CRC-veld wordt berekend onder gebruikmaking van dit vooringestelde veld en de andere velden in het pakket die worden gebruikt om de pakket-CRC te berekenen. (Alle velden met uitzondering van het wedijvertimerveld worden gebruikt.) De andere tweeëndertig bits van de stelsel-ID worden verzonden binnen het pakket.
20 Wanneer een pakket wordt ontvangen berekent de processor een CRC voor het ontvangen pakket door eerst zijn opgeslagen CRC vooringestelde veld in het CRC-register te plaatsen en vervolgens de pakket-CRC te berekenen (wederom wordt het wedijvertimerveld niet gebruikt). Indien het nieuw berekende CRC-veld niet past bij het veld in het pakket, wordt verondersteld dat het pakket op onjuiste wijze is verzonden of dat het uitgezonden pakket, indien correct ontvangen, een andere stelsel-ID heeft en derhalve 25 terzijde moet worden gelegd.
GROEPEERORGAAN
Het groepeerorgaan kan verschillende vormen aannemen en kan worden gerealiseerd met commercieel verkrijgbare hardware zoals een personal computer. Deze computers kunnen gemakkelijk worden gepro-30 grammeerd om de diverse functies die zijn beschreven in de aanvrage en die worden uitgevoerd door het groepeerorgaan, uit te voeren. Bijvoorbeeld kunnen zij gemakkelijk worden geprogrammeerd om de pakketten te verschaffen die worden vereist om te communiceren met de cellen voor het groeperen. Andere functies zoals het genereren van het willekeurige getal dat wordt gebruikt binnen de pakketten kan met bekende programma’s worden opgewekt.
35 Bijvoorbeeld kan een Apple II computer worden gebruikt als een groepeerorgaan. De 48-bits stelsel-ID kan worden opgeslagen op een schijf; of een kaart met een gedrukte schakeling kan worden verschaft die met één van de sleuven van de Apple II computer koppelt, de kaart kan de stelsel-ID bevatten die is genomen uit een cel, zoals een cel 232 volgens figuur 28. Wanneer groepen worden gevormd, kunnen de toegewezen groepnummers, lidnummers, enzovoort, worden opgeslagen op de schijf of worden opgeslagen 40 in een EEPROM op een kaart.
In figuur 28 worden de elementen van een thans de voorkeur hebbend groepeerorgaan geïllustreerd. Zij omvatten een CPU 226 die een gebruikelijke microprocessor kan zijn. De CPU communiceert met een geheugen dat een RAM 227, een ROM 228 en een opslagorgaan 229 voor het opslaan van de stelsel-ID kan omvatten. Wanneer een diskette wordt gebruikt, worden de stelsel-ID en het -programma (in het andere 45 geval opgeslagen in ROM 228) opgeslagen op de diskette, waarbij het programma wordt overgedragen naar het RAM voor een executie.
Een weergeeforgaan 230, zoals een gebruikelijke monitor wordt gekoppeld aan de CPU om een weergave aan de gebruiker te verschaffen, bijvoorbeeld kan het weergeeforgaan worden gebruikt om lijsten van groepen met hun ASCII-namen te verschaffen. Een toetsenbord 231 wordt gebruikt om het mogelijk te 50 maken opdrachten in te voeren in de CPU.
De CPU is gekoppeld weergegeven aan een cel 232, waarbij de cel is gekoppeld aan een netwerk via een zendontvanger 233. De cel 232 maakt deel uit van de groepeeroganen en de cel-ID wordt gebruikt door de groepeerorganen als een stelsel-ID. Typische berichten die worden verzonden door de computer naar de cel worden getoond in Appendix B, bijvoorbeeld is het bericht van toewijzen van de bestemmingscel om een 55 melder in een aangewezen groep te zijn een bericht dat wordt opgewekt door het groepeerorgaan. Het groepeerorgaan kan rechtstreeks communiceren met de cel via één van de drie paren leidingen die worden gekoppeld aan de l/O-subsecties of via de selectiepen die het mogelijk maakt dat berichten vanuit de CPU
194564 46 226 worden gelezen naar de vierde l/O-subsectie.
Aldus is een netwerk voor waarnemen, communiceren en besturen met verdeelde intelligentie beschreven. Ofschoon in deze aanvrage een eenvoudig voorbeeld van het gebruik van cellen in een huishoudelijke omgeving is beschreven, zal het voor hen die terzake kundig zijn duidelijk zijn dat de beschreven uitvinding 5 in talrijke andere toepassingen kan worden gebruikt. Appendix C bij deze aanvrage bevat een lijst van enige andere toepassingen waarin de onderhavige kan worden gebruikt.
Appendix A, pakketvoorbeelden Routeertypen voor pakketvoorbeelden 10 1 volledig geadresseerd 2 open stroming 3 beperkte stroming 4 groepstroming 15 OPMERKING: de pakketafmetingen zijn in celgeheugenbits (voorafgaande aan 3-uit-6 codering). Een pakket op een communicatiesubkanaal, na omzetting in 3-uit-6 code, is 50% groter.
Enkele sprong opmaak pakket: 20 aanhef, 16 bite vlag, 4 bits adres bestemmingscel, 48 bits wedijver-timer, 10 bits wedijver-timercontrolesom, 6 bits 25 sprongtelstand, 8 bits willekeurige verdeler, 8 bits verbindingsbesturing heruitzendingsvlag, 1 bit ont. opeenv., 1 bit 30 zendopeenv., 1 bit niet gebruikt, 1 bit opdracht, 4 bits netwerkbesturing routeertype, 4 bits = 1 (volledig geadresseerd) 35 adres broncel, 48 bits bericht, 16 tot 512 bits berichttype, 8 bits berichtinhoud, 8 tot 511 bits codecontrole, 16 bits 40 CRC, 16 bits vlag, 4 bits
Enkele sprong opmaak antwoord: 45 aanhef, 16 bits vlag, 4 bits stelsel-ID, 32 bits adres bestemmingscel, 48 bits wedijver-timer, 10 bits 50 wedijver-timercontrolesom, 6 bits sprongtelstand, 4 bits willekeurige verdeler, 8 bits verbindingsbesturing heruitzendingsvlag, 1 bit 55 ont. opeenv., 1 bit zendopeenv., 1 bit niet gebruikt, 1 bit 47 194564 opdracht, 4 bits netwerkbesturing routeertype, 4 bits = 1 (volledig geadresseerd) adres broncel, 48 bits 5 codecontrole, 16 bits CRC, 16 bits vlag, 4 bits
Meervoudige sprong volledig adres 10 opmaak pakket: aanhef, 16 bits vlag, 4 bits stelsel-ID, 32 bits adres volgende cel, 48 bits 15 wedijver-timer, 10 bits wedijver-timercontrolesom, 6 bits sprongtelstand, 4 bits willekeurige verdeler, 8 bits verbindingsbesturing 20 heruitzendingsvlag, 1 bit ont. opeenv., 1 bit zendopeenv., 1 bit niet gebruikt, 1 bit opdracht, 4 bits 25 netwerkbesturing routeertype, 4 bits =1 (volledig geadresseerd) lijst celadressen adrestelstand, 4 bits adressen, 48 tot 768 bits 30 adres broncel, 48 bits bericht, 16 tot 512 bits berichttype, 8 bits berichtinhoud, 8 tot 511 bits codecontrole, 16 bits 35 CRC, 16 bits vlag, 4 bits
Meervoudige sprong volledig adres opmaak antwoord: 40 aanhef, 16 bits vlag 4, bits stelsel-ID, 32 bits adres bestemmingscel, 48 bits wedijver-timer, 10 bits 45 wedijver-timercontrolesom, 6 bits sprongtelstand, 4 bits willekeurige verdeler, 8 bits verbindingsbesturing heruitzendingsvlag, 1 bit 50 ont. opeenv., 1 bit zendopeenv., 1 bit niet gebruikt, 1 bit opdracht, 4 bits netwerkbesturing 55 routeertype, 4 bits = 1 (volledig geadresseerd) lijst celadressen adrestelstand, 4 bits 194564 48 adressen, 48-768 bits adres broncel, 48 bits codecontrole, 16 bits CRC, 16 bits 5 vlag 4 bits
Open stroming opmaak pakket: aanhef, 16 bits 10 vlag, 4 bits
Stelsel-ID, 32 bits rondzendadres, 48 bits = alle-nullen wedijver-timer, 10 bits wedijver-timercontrolesom, 6 bits 15 sprongtelstand, 4 bits willekeurige verdeler, 8 bits verbindingsbesturing heruitzendingvlag, 1 bit ont. opeenv., 1 bit 20 zendopeenv., 1 bit niet gebruikt, 1 bit opdracht, 4 bits netwerkbesturing routeertype, 4 bits = 2 (open stroming) 25 bestemmingsceladres, 48 bits adres broncel, 48 bits bericht, 16 tot 512 bits berichttype, 8 bits berichtinhoud, 8 tot 511 bits 30 codecontrole, 16 bits CRC, 32 bits vlag, 4 bits
Open stroming 35 opmaak antwoord: aanhef, 16 bits vlag, 4 bits stelsel-ID, 32 bits rondzendadres, 48 bits = alle-nullen 40 wedijver-timer, 10 bits wedijver-timercontrolesom, 6 bits sprongtelstand, 4 bits willekeurige verdeler, 8 bits verbindingsbesturing 45 heruitzendingsvlag, 1 bit ont. opeenv., 1 bit
zendopeenv., 1 bit I
niet gebruikt, 1 bit opdracht, 4 bits 50 netwerkbesturing routeertype, 4 bits = 2 (open stroming) bestemmingsceladres, 48 bits adres broncel, 48 bits codecontrole, 16 bits 55 CRC, 16 bits vlag, 4 bits 49 194564
Beperkte stroming opmaak pakket: aanhef, 16 bits vlag, 4 bits 5 stelsel-ID, 32 bits rondzendadres, 48 bits = alle-nullen wedijver-timer, 10 bits wedijver-timercontrolesom, 6 bits sprongtelstand, 4 bits 10 willekeurige verdeler, 8 bits verbindingsbesturing heruitzendingsvlag, 1 bit ont. opeenv., 1 bit zendopeenv., 1 bit 15 niet gebruikt, 1 bit opdracht, 4 bits netwerkbesturing routeertype, 4 bits = 3 (beperkte stroming) bestemmingsceladres, 48 bits 20 adres broncel, 48 bits bericht, 16 tot 512 bits berichttype, 8 bits berichtinhoud, 8 tot 511 bits codecontrole, 16 bits 25 CRC, 16 bits vlag, 4 bits
Beperkte stroming opmaak antwoord: 30 aanhef, 16 bits vlag, 4 bits stelsel-ID, 32 bits rondzendadres, 48 bits = alle-nullen wedijver-timer, 10 bits 35 wedijver-timercontrolesom, 6 bits sprongtelstand, 4 bits willekeurige verdeler, 8 bits verbindingsbesturing heruitzendingsvlag, 1 bit 40 ont. opeenv., 1 bit zendopeenv., 1 bit niet gebruikt, 1 bit opdracht, 4 bits netwerkbesturing 45 routeertype, 4 bits = 3 (beperkte stroming) bestemmingsceladres, 48 bits adres broncel, 48 bits codecontrole, 16 bits CRC, 16 bits 50 vlag, 4 bits
Groepmelding opmaak pakket: aanhef, 16 bits 55 vlag, 4 bits stelsel-ID, 32 bits groepadres, 48 bits 194564 50 wedijver-timer, 10 bits wedijver-timercontrolesom, 6 bits sprongtelstand, 4 bits willekeurige verdeler, 8 bits 5 verbindingsbesturing heruitzendingsvlag, 1 bit ont. opeenv., 1 bit zendopeenv., 1 bit niet gebruikt, 1 bit 10 opdracht, 4 bits netwerkbesturing routeertype, 4 bits = 4 (groepstroming) bronlid nummer, 8 bits bestemmingslidnummer, 8 bits (0 = rondzenden) 15 bericht, 16 tot 512 bits berichttype, 8 bits berichtinhoud, 8 tot 511 bits codecontrole, 16 bits CRC, 16 bits 20 vlag, 4 bits
Groepmelding opmaak antwoord: aanhef, 16 bits 25 vlag, 4 bits stelsel-ID, 32 bits groepadres, 48 bits wedijver-timer, 10 bits wedijver-timercontrolesom, 6 bits 30 sprongtelstand, 4 bits willekeurige verdeler, 8 bits verbindingsbesturing heruitzendingsvlag, 1 bit ont. opeenv., 1 bit 35 zendopeenv., 1 bit niet gebruikt, 1 bit opdracht, 4 bits netwerkbesturing routeertype, 4 bits = 4 (groepstroming) 40 bronlid nummer, 8 bits bestemmingslidnummer, 8 bits codecontrole, 16 bits CRC, 16 bits vlag 4 bits 45
Taster opmaak pakket: aanhef, 16 bits vlag, 4 bits 50 stelsel-ID, 32 bits rondzendadres, 48 bits = alle-nullen wedijver-timer, 10 bits wedijver-timercontrolesom, 6 bits sprongtelstand, 4 bits 55 willekeurige verdeler, 8 bits verbindingsbesturing heruitzendingsvlag, 1 bit 51 194564 ont. opeenv., 1 bit zendopeenv., 1 bit niet gebruikt, 1 bit opdracht, 4 bits 5 netwerkbesturing routeertype, 4 bits = 3 (beperkte stroming) bestemmingsceladres, 48 bits bronceladres, 48 bits bericht, 49 tot 769 bits 10 berichttype, 8 bits berichtinhoud, 48 tot 768 bits (routelijst) codecontrole, 16 bits CRC, 16 bits vlag, 4 bits 15
Taster opmaak antwoord: aanhef, 16 bits vlag, 4 bits 20 stelsel-ID, 32 bits rondzendadres, 48 bits = alle-nullen wedijver-timer, 10 bits wedijver-timercontrolesom, 6 bits sprongtelstand, 4 bits 25 willekeurige verdeler, 8 bits verbindingsbesturing heruitzendingsvlag, 1 bit ont. opeenv., 1 bit zendopeenv., 1 bit 30 niet gebruikt, 1 bit opdracht, 4 bits netwerkbesturing routeertype, 4 bits = 3 (beperkte stroming) bestemmingsceladres, 48 bits 35 adres broncel, 48 bits berichtveld berichttype, 8 bits berichtinhoud, routelijst codecontrole, 16 bits 40 CRC, 16 bits vlag, 4 bits
Rondzendopdracht opmaak pakket: 45 aanhef, 16 bits vlag, 4 bits stelsel-ID, 32 bits rondzendadres, 48 bits = alle-nullen wedijver-timer, 10 bits 50 wedijver-timercontrolesom, 6 bits sprongtelstand, 4 bits willekeurige verdeler, 8 bits verbindingsbesturing heruitzendingsvlag, 1 bit 55 ont. opeenv., 1 bit zendopeenv., 1 bit niet gebruikt, 1 bit 194564 52 opdracht, 4 bits netwerkbesturing routeertype, 4 bits = 3 (beperkte stroming) of 2 (open stroming) bronadres, 48 bits 5 bericht, 16 tot 512 bits berichttype, 8 bits berichtinhoud 8 tot 511 bits codecontrole, 16 bits CRC, 16 bits 10 vlag, 4 bits
Rondzendopdracht opmaak antwoord: GEEN ANTWOORD 15
Appendix B, berichttypen Taster functie: bepalen van de beste route vanaf de melder naar de luisteraar.
20 Bron: groepmelder Adrestype: cel
Routeerwerkwijze: beperkte stroming Berichttype: 2 (aantal voor 8-bits veld)
Berichtinhoud: adrestelstand (1 byte), (aantal cel-ID’s in tasterpakket, dit is het aantal cellen opnieuw 25 rondgezonden pakket)
Adreslijst
Tasterresultaat functie: verslag van de adreslijst in het eerste tasterpakket dat is ontvangen door de bestemmingscel.
30 Bron: cel eerder geadresseerd door een tasterbericht Adrestype: cel
Routeerwerkwijze: beperkte stroming Berichttype: 3
Berichtinhoud: adrestelstand (1 byte), adreslijst 35
Toewijzing groepmelder functie: toewijzen van de bestemmingscel om een melder in de aangewezen groep te zijn.
Bron: groepeerorgaan Bestemming: cel 40 Adrestype: cel of groepslid
Routeerwerkwijze: beperkte stroming of groepstroming Berichttype: 4
Berichtinhoud: groepnummer, lidnummer 45 Beëindigen toewijzing groepmelder functie: beëindigen van de toewijzing van de bestemmingscel om te dienen als een melder in de aangewezen groep.
Bron: groepeerorgaan Bestemming: meldercel 50 Adrestype: cel of groepslid
Routeerwerkwijze: beperkte stroming of groepstroming Berichttype: 5 Berichtinhoud: geen 55 Toewijzen groepluisteraar functie: toewijzen van de bestemmingscel om een luisteraar te zijn in de aangewezen groep.
Bron: groepeerorgaan 53 194564
Bestemming: cel Adrestype: cel of groepslid
Routeerwerkwijze: beperkte stroming of groepstroming Berichttype: 6 5 Berichtinhoud: groepnummer, lidnummer Beëindiging toewijzen groepluisteraar functie: beëindigen van de toewijzing van de bestemmingscel om te dienen als een luisteraar in de aangewezen groep.
Bron: groepeerorgaan 10 Bestemming: luisteraarcel Adrestype: cel of groepslid
Routeerwerkwijze: beperkte stroming of groepstroming Berichttype: 7 Berichtinhoud: geen 15
Toe wijzen groepherhaler functie: toewijzing van de bestemmingscel om een herhaler in de aangewezen groep te zijn.
Bron: groepeerorgaan Bestemming: cel 20 Adrestype: cel of groepslid
Routeerwerkwijze: beperkte stroming of groepstroming Berichttype: 8
Berichtinhoud: groepnummer, lidnummer 25 Beëindigen toewijzing groepherhaler functie: beëindigen van de toewijzing van de bestemmingscel om te dienen als een herhaler in de aangewezen groep.
Bron: groepeerorgaan Bestemming: groepherhalercel 30 Adrestype: cel of groepslid
Routeerwerkwijze: beperkte stroming of groepstroming Berichttype: 9 Berichtinhoud: geen 35 Toewijzen herhaler functie: toewijzen van een cel om werkzaam te zijn als een herhaler. Wordt gebruikt om cellen toe te wijzen die op normale wijze niet worden toegestaan om een herhaler te zijn, bijvoorbeeld een cel met een zendontvanger bij een niet-bestraald medium.
Bron: besturingsorgaan 40 Bestemming: cel Adrestype: cel
Routeerwerkwijze: volledig geadresseerd, open stroming, beperkte stroming Berichttype: 10 Berichtinhoud: geen 45
Afsluiten functie: rondzenden van bericht dat alle cellen mededeelt om het uitzenden te staken totdat opdracht wordt gegeven tot het hervatten.
Bron: besturingsorgaan 50 Bestemming: cellen
Adrestype: rondzender of cel Routeerwerkwijze: beperkte stroming of open stroming Berichttype: 11 Berichtinhoud: geen 194564 54
Doe verslag van Uw invoer functie: opdrachtgeven aan een cel om verslag te doen van zijn invoer. Bron: cel of besturingsorgaan Bestemming: cel 5 Adrestype: willekeurig
Routeerwerkwijze: willekeurig Berichttype: 12
Berichtinhoud: invoernummer (byte) 10 Doe verslag van Uw uitvoer functie: opdracht gegeven aan een cel om verslag te doen van zijn uitvoer. Bron: besturingsorgaan of cel Bestemming: cel Adrestype: willekeurig 15 Routeerwerkwijze: willekeurig Berichttype: 13
Berichtinhoud: uitvoernummer (byte)
Neerladen 20 functie: neerladen gegevens of code.
Bron: besturingsorgaan Bestemming: cel Adrestype: willekeurig Routeerwerkwijze: willekeurig 25 Berichttype: 14
Berichtinhoud: adres, lengte, code
Instellen communicatieparameter functie: instellen van een communicatieparameter in de cel.
30 Bron: besturingsorgaan Bestemming: cel Adrestype: willekeurig Routeerwerkwijze: willekeurig Berichttype: 15 35 Berichtinhoud: parametemummer, waarde Melding functie: melden van sensorgegevens.
Bron: groepmelder 40 Bestemming: groep
Adrestype: groep, rondzender Routeerwerkwijze: groepstroming Berichttype: 16
Berichtinhoud: 0-255 (één byte) 55 194564
Appendix C
Toepassingen
5 CATEGORIE SUBCATEGORIE TOEPASSING
algemeen waarneemfuncties gebruik communicatiefuncties besturingsfuncties 10 landbouw en gewasbeheer gewas sensor/comm veeteelt irrigatie best./comm landgelijkmaker sensor/comm ongedierte sensor/comm (met cel-ID’s die dieren identificeren) vee detector/volger 15 voedsel sens/best./comm melkmachine sens/best./comm gewicht sensor/comm veehoedersignaleringsorgaan commercieel bank ATM-kaart 20 elektronisch geld commercieel kasregister sens/best./comm lift sens/best./comm automaat sens/best./comm verkoopautomaat sens/best./comm 25 commercieel diversen patroon sensor/comm pagineren best./comm protechnieken sensor/best. zegelidentificatie uurwerk best./ 30 constructie verval sensor/comm post sensor/comm energiebeheer sensor sens/comm thermostaat best./comm utiliteit sensor/comm 35 distributie best./comm beveiliging grendel sens/best./comm intelligente codes (serie communicatie communicaties kabeleliminatie kanaal best./comm 40 netwerk configuratie best/comm brug cel naar een of ander telefoonidentificatie (cel-ID) brug telefoon naar cel telemetrie best./comm elimineren bedrading 45 computer architectuur langzaam gegevensnetwerk netwerk kunstmatige intelligentie configuratie best.
kopiebeveiliging parallel verwerkende knopen 50 randapparatuur kabeleliminatie toetsenbord sens/comm muis sens/comm bedrading eliminatie ontwikk. stelsel emulatororgaan 55 consument apparaten sensor sens/comm schakelaar sens/best./comm 194564 56
Toepassingen (vervolg)
CATEGORIE SUBCATEGORIE TOEPASSING
5 consument diversen detector/volger (elektronisch serie #) laagverbruik batterij detector intelligente loterijkaart amusement amusementspark best.
lunaparkspelen best.
10 kabel TV toegang best.
kabel TV monster best.
CD-speler best. speciale effecten best. stereo best.
15 TV best.
VCR best.
huisvoorzieningen centrale klok sys.
gordijn best./comm deur sens/comm 20 garagedeur best.
intercom intercom best. bassin best. sens/comm rook/brand detector 25 venster sens/best./comm huisdieren detector/volger (elektronisch serie#) huisdier best./trainer
Educatie educatie, diversen interactief boek sens/best./comm toets sens/comm
30 Engineering gegevensacquisitie DAC/ADC
Instrumentatie DAC/ADC
schakelaar sens/best.comm
Huis elektrisch verlichting best./comm wandcontactdoos sens/comm/best.
35 schakelaar sens/best./comm alle vormen van waarneming alle vormen van besturing energiebeheer sensoir sens/comm thermostaat best./comm 40 utiliteit sensor/comm distributie best./comm huisvoorzieningen centrale klok sys.
gordijn best./comm deur sens/comm 45 garagedeur best.
intercom intercom best.
bassin best. sens/comm/best. beveiliging rook/branddetector 50 venster sens/best./comm grendeling sens/best./comm intelligente codes (serie #) trilling/beweging sens/comm venster sens/best./comm 55 sproeierinstallatie timer best./comm klep best./comm 57 194564
Toepassingen (vervolg)
CATEGORIE SUBCATEGORIE TOEPASSING
5 vochtigheid sens/best.
Industrieel energiebeheer sensor sens/comm thermostaat best./comm utiliteit sensor/comm distributie best./comm 10 industriële installaties olieboring sensor/best.comm vermogensbelasting sens/best./comm utiliteit sensor/comm beveiliging grendeling sens/best./comm intelligente codes (serie #) 15 trilling/beweging sens/comm venster sens/best./comm beveiliging, kopieerbeveiliging industrieel detector/volger (elektronisch serie #)
persoonskenmerk-ID
20 beveiliging, wet kopieerbeveiliging ID-kaart (serie #) wapen-ID paspoort (serie #) winkeldiefstaldetector 25 Fabricage CIM kunstmatige intelligentie elimineren bedrading productie best. detector/volger (elektronisch serie #) proces best. inventaris/sens/comm lijnbalans 30 productie automatise- productie stroom/sens ring robotica detector/volger (elektronisch serie #) robot sens/best./comm
Medisch medisch, diversen bio-terugkoppeling 35 bionica hulpmiddelen gehandicapten hartgang implantaties medische waarschuwing sens/comm 40 medicijnwaarschuwing sens/comm patiëntcontrole persoonlijke toediening best./comm persoonlijke controle-organen prothetische geneeskunde 45 Militair militair, diversen kopieerbeveiliging schade best./sens/comm detector/volger (elektronisch serie #) persoonskenmerk-ID redundantie comm 50 SDI sens/best./comm
Sonna Buoy sens/comm spionage sens/comm plaats sens/best./comm systeemdiagnosis sens/comm 55 oorlogspel monitor/sim wapen sens/best./comm 194564 58
Toepassingen (vervolg)
CATEGORIE SUBCATEGORIE TOEPASSING
5 beveiliging grendel sens/best.comm intelligente codes (serie #) trilling/beweging sens/comm Wetenschap weer/aardbeving/enz. sensor
Transport auto algemene waarneming 10 algemene communicatie algemene besturing antiblokkeerremsyst. eliminatie complexe bekabeling meting best.
15 paneelkaart/localisator instrumentenpaneel best. kentekenplaatidenficatie & comm verlichting best/comm regulator sens/comm 20 intelligente codes (serie #) schakelaar sens/best.comm systeemdiagnosis sens/comm elimineren bedrading Avionica antiblokkeerremsyst.
25 eliminatie complex bekabeling meting best.
instrumentenpaneel best. verlichting best./conrim regulator sens/comm 30 sensor sens/comm schakelaar sens/best./comm systeemdiagnosis sens/comm elimineren bedrading transport diversen noodsituatielocalisator (ELT) sens/comm 35 verkeerscontrole/best.
verkeerssignaal sens/best./comm Speelgoed/ spel 3-D ”Chip-Wits” sens/best./comm hobby/sport bingokaart sens/comm spel sens/best./comm 40 Hobby camera sens/best./comm hobbykit sens/best./comm magische installatie sens/best./comm miniatuurtrein best./comm afstandbest. sens/best./comm 45 Sport noodsituatielocalisator (ELT) sens/comm vallijnsensor sportbenodigdheden sens/best./comm Speelgoed Lego-Bot sens/best./comm media-interactief speelgoed sens/best./comm 50 animatiespeelgoed sens/best./comm.

Claims (8)

59 194564
1. Cel voor gebruik in een communicatie- en besturingsnetwerk, omvattende: (A) invoer- en uitvoerorganen die zijn gekoppeld aan het netwerk voor het verschaffen van een van de 5 functies van waarnemen, communicatie, en besturing; (B) een geheugen; en (C) een aantal processoren, waarbij het aantal gekoppeld is aan het geheugen en aan de invoer- en uitvoerorganen, waarbij het aantal processoren omvat: (1) een rekenkundige logische eenheid (ALU) die door de processoren gedeeld wordt; (2) een aantal registergroepen, waarbij uitgangssignalen van de registergroepen gekoppeld zijn aan de 10 ALU, waarbij een uitgangssignaal van de ALU gekoppeld is aan het geheugen, en waarbij een uitgangssignaal van het geheugen als een ingangssignaal gekoppeld is aan de registergroepen; en (3) besturingsorganen voor het verschaffen van besturingssignalen, met het kenmerk, dat het aantal processoren processoren zijn voor het gelijktijdig uitvoeren van een aantal processen, waarbij (2) elke registergroep behoort bij een betreffende processor, en waarbij elk van de registergroepen 15 omvat: (a) een basiswijzerregister voor het opslaan van een geheugenbasiswijzer voor een betreffende processor; (b) een instructiewijzerregister voor het opslaan van een geheugenwijzer die wijst naar een instructie voor een betreffende processor; 20 (c) een instructieregister voor het opslaan een instructie voor een betreffende processor; (d) een stapelwijzerregister voor het opslaan van een geheugenstapelwijzer voor een betreffende processor; en (e) een terugkeerwijzerregister voor het opslaan van een geheugenterugkeerwijzer voor een betreffende processor; en 25 (3) de besturingsorganen besturingsorganen zijn voor het verschaffen van besturingssignalen voor het gelijktijdig overbrengen van gegevens van één van de registergroepen naar de ALU, terwijl gelijktijdig gegevens die behoren bij een andere registergroep van de ALU naar het geheugen overgebracht worden, en terwijl gelijktijdig gegevens die behoren bij een andere registergroep van het geheugen overgebracht worden, waarbij de besturingsorganen gekoppeld zijn met de registergroepen, waarbij de 30 besturingsorganen omvatten: (a) een aantal tellers die behoren bij de instructieregisters; (b) schakelingsorganen voor het verschaffen van initiële instellingen aan de tellers, waarbij de schakelingsorganen gekoppeld zijn om de instructies die opgeslagen zijn in de instructieregisters te ontvangen; 35 (c) een logische matrix die gekoppeld is om de inhoud van de tellers en de instructies die opgeslagen zijn in de instructieregisters als invoersignalen te ontvangen; en (d) vertragingsorganen voor het vertragen van een aantal uitgangssignalen van de logische matrix, waarbij uitgangssignalen van de logische matrix en de vertragingsmiddelen besturingssignalen omvatten.
2. Cel volgens conclusie 1, gekenmerkt door klokorganen voor het klokken van de tellers voor kleine 40 instructiecycli.
3. Cel volgens conclusie 1 of 2, met het kenmerk, dat elke registergroep gekoppeld is aan de invoer- en uitvoerorganen, en dat elke registergroep onafhankelijk kan communiceren met de invoer- en uitvoerorganen.
4. Cel volgens conclusie 1, 2 of 3, met het kenmerk, dat de schakelingsorganen een tweede logische matrix 45 omvatten die de instructies als invoersignalen ontvangt, waarbij de uitvoersignalen van de tweede logische matrix de initiële instellingen zijn, en waarbij elke initiële instelling het aantal cycli voorstelt dat nodig is om een betreffende instructie uit te voeren.
5. Cel volgens één der conclusies 1 tot en met 4, met het kenmerk, dat de vertragingsmiddelen een aantal registers omvatten.
6. Cel volgens één der conclusies 1 tot en met 5, met het kenmerk, dat de ALU een 4-bits groep naar links of naar rechts schuift wanneer ten minste één van de instructieregisters een vooraf bepaalde instructie bevat.
7. Cel volgens één der conclusies 1 tot en met 6, gekenmerkt door een directe signaalverbinding tussen ieder instructiewijzerregister en de ALU. 194564 60
8. Cel volgens één der conclusies 1 tot en met 7, met het kenmerk, dat het geheugen een slechts uitleesbaar geheugen (ROM), een willekeurig toegankelijk geheugen (RAM), en een elektrisch programmeerbaar geheugen (EEPROM) omvat. Hierbij 18 bladen tekening
NL8821040A 1987-11-10 1988-11-02 Intelligente multiprocessorcel voor een netwerk dat voorziet in waarneming, communicaties in twee richtingen en besturing. NL194564C (nl)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11933187A 1987-11-10 1987-11-10
US11933187 1987-11-10
US8803906 1988-11-02
PCT/US1988/003906 WO1989004521A1 (en) 1987-11-10 1988-11-02 Multiprocessor intelligent cell for a network which provides sensing, bidirectional communications and control

Publications (3)

Publication Number Publication Date
NL8821040A NL8821040A (nl) 1990-09-03
NL194564B NL194564B (nl) 2002-03-01
NL194564C true NL194564C (nl) 2002-07-02

Family

ID=22383810

Family Applications (1)

Application Number Title Priority Date Filing Date
NL8821040A NL194564C (nl) 1987-11-10 1988-11-02 Intelligente multiprocessorcel voor een netwerk dat voorziet in waarneming, communicaties in twee richtingen en besturing.

Country Status (10)

Country Link
EP (1) EP0386151B1 (nl)
JP (1) JPH077960B2 (nl)
AT (1) ATE139634T1 (nl)
AU (1) AU620073B2 (nl)
CA (1) CA1306309C (nl)
DE (1) DE3890946B4 (nl)
GB (1) GB2231183B (nl)
NL (1) NL194564C (nl)
SG (1) SG87892G (nl)
WO (1) WO1989004521A1 (nl)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7060030B2 (en) 2002-01-08 2006-06-13 Cardiac Pacemakers, Inc. Two-hop telemetry interface for medical device
GR1006221B (el) * 2006-04-27 2009-01-13 Βασιλειος Γεωργιου Νικολοπουλος Διαδικτυακη ενεργειακη μηχανη αναζητησης και μεθοδος ληψης αποφασεων για βελτιστη διαχειριση και τιμολογιακη εκτιμηση ενεργειακων πορων

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3629853A (en) * 1959-06-30 1971-12-21 Ibm Data-processing element
US3757306A (en) * 1971-08-31 1973-09-04 Texas Instruments Inc Computing systems cpu
US3787673A (en) * 1972-04-28 1974-01-22 Texas Instruments Inc Pipelined high speed arithmetic unit
US3916383A (en) 1973-02-20 1975-10-28 Memorex Corp Multi-processor data processing system
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
US4332008A (en) * 1976-03-09 1982-05-25 Zilog, Inc. Microprocessor apparatus and method
US4339793A (en) * 1976-12-27 1982-07-13 International Business Machines Corporation Function integrated, shared ALU processor apparatus and method
US4305124A (en) * 1978-06-09 1981-12-08 Ncr Corporation Pipelined computer
JPS5569855A (en) * 1978-11-20 1980-05-26 Panafacom Ltd Data processing system
US4347566A (en) * 1978-12-11 1982-08-31 Tokyo Shibaura Denki Kabushiki Kaisha Data processor with register file and arithmetic logic circuit on one chip and register means directly connected to the chip
US4272828A (en) * 1979-01-03 1981-06-09 Honeywell Information Systems Inc. Arithmetic logic apparatus for a data processing system
JPS5764860A (en) * 1980-10-09 1982-04-20 Nec Corp Parallel processing system
JPS57141709A (en) * 1981-02-27 1982-09-02 Nissan Motor Co Ltd Operation processor for sequence controller
US4613935A (en) 1983-02-02 1986-09-23 Couleur John F Method and apparatus for pipe line processing with a single arithmetic logic unit
JPS6027984A (ja) * 1983-07-27 1985-02-13 Hitachi Ltd デ−タ処理装置
JPH0658631B2 (ja) * 1983-12-19 1994-08-03 株式会社日立製作所 デ−タ処理装置
US4630195A (en) * 1984-05-31 1986-12-16 International Business Machines Corporation Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage
US4816993A (en) * 1984-12-24 1989-03-28 Hitachi, Ltd. Parallel processing computer including interconnected operation units
US5113523A (en) * 1985-05-06 1992-05-12 Ncube Corporation High performance computer system

Also Published As

Publication number Publication date
DE3890946B4 (de) 2005-03-10
SG87892G (en) 1992-12-24
GB2231183B (en) 1992-06-17
AU2901889A (en) 1989-06-01
ATE139634T1 (de) 1996-07-15
GB2231183A (en) 1990-11-07
EP0386151B1 (en) 1996-06-19
JPH077960B2 (ja) 1995-01-30
NL194564B (nl) 2002-03-01
EP0386151A4 (en) 1992-08-05
NL8821040A (nl) 1990-09-03
EP0386151A1 (en) 1990-09-12
JPH03504067A (ja) 1991-09-05
CA1306309C (en) 1992-08-11
GB9007626D0 (en) 1990-08-08
WO1989004521A1 (en) 1989-05-18
AU620073B2 (en) 1992-02-13

Similar Documents

Publication Publication Date Title
US5034882A (en) Multiprocessor intelligent cell for a network which provides sensing, bidirectional communications and control
US4969146A (en) Protocol for network having a plurality of intelligent cells
US4947484A (en) Protocol for network having a plurality of intelligent cells
US4955018A (en) Protocol for network having plurality of intelligent cells
US4941143A (en) Protocol for network having a plurality of intelligent cells
US4918690A (en) Network and intelligent cell for providing sensing, bidirectional communications and control
US4969147A (en) Network and intelligent cell for providing sensing, bidirectional communications and control
US4939728A (en) Network and intelligent cell for providing sensing bidirectional communications and control
US5113498A (en) Input/output section for an intelligent cell which provides sensing, bidirectional communications and control
US5018138A (en) Protocol for network having a plurality of intelligent cells
EP0393117A1 (en) PROTOCOL FOR A NETWORK COMPRISING SEVERAL INTELLIGENT CELLS.
NL194564C (nl) Intelligente multiprocessorcel voor een netwerk dat voorziet in waarneming, communicaties in twee richtingen en besturing.
CA1309186C (en) Input/output section for an intelligent cell which provides sensing, bidirectional communications and control
AU621581B2 (en) Protocol for network having a plurality of intelligent cells
CA1326275C (en) Network and intelligent cell for providing sensing, bidirectional communications and control
AU619514B2 (en) Network for providing sensing communications and control
DE8904521A1 (nl)
GB2244577A (en) Cell for sensing and control network

Legal Events

Date Code Title Description
BA A request for search or an international-type search has been filed
BB A search report has been drawn up
BC A request for examination has been filed
V4 Discontinued because of reaching the maximum lifetime of a patent

Effective date: 20081102