Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

Opzoektabellen

Nadat we in het laatste hoofdstuk over digitale geheugenapparaten hebben geleerd, weten we dat het mogelijk is om binaire gegevens op te slaan in solid-state apparaten. Die "opslagcellen" in solid-state geheugenapparaten kunnen eenvoudig worden geadresseerd door de "adres" -regels van het apparaat met de juiste binaire waarde(n) te sturen.

Stel dat we een ROM-geheugencircuit hadden geschreven of geprogrammeerd met bepaalde gegevens, zodat de adreslijnen van de ROM als invoer dienden en de datalijnen van de ROM als uitvoer, waardoor de karakteristieke respons van een bepaalde logische functie werd gegenereerd. Theoretisch zouden we deze ROM-chip kunnen programmeren om elke gewenste logische functie te emuleren zonder dat we draadverbindingen of poorten hoeven te veranderen.

Beschouw het volgende voorbeeld van een 4 x 2 bit ROM-geheugen (een heel klein geheugen!) geprogrammeerd met de functionaliteit van een halve opteller:

Als dit ROM is geschreven met de bovenstaande gegevens (die de waarheidstabel van een halve opteller vertegenwoordigen), zal het aansturen van de A- en B-adresingangen ervoor zorgen dat de respectieve geheugencellen in de ROM-chip worden ingeschakeld, waardoor de overeenkomstige gegevens worden uitgevoerd als de Σ ( Som) en Cuit stukjes. In tegenstelling tot het halfoptellercircuit dat is opgebouwd uit poorten of relais, kan dit apparaat worden ingesteld om elke logische functie uit te voeren met twee ingangen en twee uitgangen, niet alleen de halfoptellerfunctie.

Om de logische functie te wijzigen, hoeven we alleen maar een andere gegevenstabel naar een andere ROM-chip te schrijven. We zouden zelfs een EPROM-chip kunnen gebruiken die naar believen kan worden herschreven, wat de ultieme flexibiliteit in functie geeft.

Het is van vitaal belang om de betekenis van dit principe te erkennen zoals toegepast op digitale schakelingen. Terwijl de half-adder opgebouwd uit poorten of relais processen de invoerbits om tot een specifieke uitvoer te komen, de ROM onthoudt eenvoudig wat de uitgangen moeten zijn voor een bepaalde combinatie van ingangen.

Dit verschilt niet veel van de "tafels" die op de lagere school uit het hoofd worden geleerd:in plaats van het product van 5 keer 6 (5 + 5 + 5 + 5 + 5 + 5 =30) te moeten berekenen, wordt schoolkinderen geleerd om te onthouden dat 5 x 6 =30, en dan verwacht u dit product zo nodig uit het geheugen op te roepen. Evenzo, in plaats van dat de logische functie afhankelijk is van de functionele opstelling van bedrade poorten of relais (hardware), hangt deze uitsluitend af van de gegevens die in het geheugen (software) zijn geschreven.

Zo'n eenvoudige toepassing, met duidelijke outputs voor elke input, wordt een opzoektabel genoemd , omdat het geheugenapparaat eenvoudigweg "opzoekt" wat de uitvoer(en) zouden moeten zijn voor een bepaalde combinatie van invoerstatussen.

Deze toepassing van een geheugenapparaat om logische functies uit te voeren is om verschillende redenen belangrijk:

  • Software is veel gemakkelijker te veranderen dan hardware.
  • Software kan worden gearchiveerd op verschillende soorten geheugenmedia (schijf, tape), waardoor het een gemakkelijke manier is om de functie in een "virtuele" vorm te documenteren en te manipuleren; hardware kan alleen abstract worden "gearchiveerd" in de vorm van een soort grafische tekening.
  • Software kan van het ene geheugenapparaat (zoals de EPROM-chip) naar het andere worden gekopieerd, waardoor het ene apparaat zijn functie van een ander apparaat kan 'leren'.
  • Software zoals het voorbeeld van de logische functie kan worden ontworpen om functies uit te voeren die buitengewoon moeilijk te emuleren zijn met discrete logische poorten (of relais!).

Het nut van een opzoektabel wordt steeds duidelijker met toenemende complexiteit van de functie. Stel dat we een 4-bits optelschakeling wilden bouwen met behulp van een ROM. We hebben een ROM nodig met 8 adresregels (twee 4-bits nummers moeten bij elkaar worden opgeteld), plus 4 datalijnen (voor de ondertekende uitvoer):

Met 256 adresseerbare geheugenlocaties in deze ROM-chip, zouden we behoorlijk wat programmeerwerk moeten doen, om het te vertellen welke binaire uitvoer moet worden gegenereerd voor elke combinatie van binaire ingangen.

We zouden ook het risico lopen een fout te maken in onze programmering en het een onjuiste som te laten opleveren, als we niet voorzichtig waren. De flexibiliteit om deze functie (of welke functie dan ook) alleen via software te kunnen configureren, weegt doorgaans zwaarder dan die kosten.

Overweeg enkele van de geavanceerde functies die we zouden kunnen implementeren met de bovenstaande "opteller". We weten dat wanneer we twee reeksen getallen toevoegen in de notatie van 2 met complementair teken, we het risico lopen dat het antwoord overloopt.

Als we bijvoorbeeld 0111 (decimaal 7) proberen op te tellen bij 0110 (decimaal 6) met alleen een 4-bits getalveld, krijgen we als antwoord 1001 (decimaal -7) in plaats van de juiste waarde, 13 (7 + 6), die niet kan worden uitgedrukt met 4 ondertekende bits. Als we zouden willen, zouden we de vreemde antwoorden in overloopcondities kunnen vermijden door dit opzoektabelcircuit te programmeren om iets anders uit te voeren in omstandigheden waarvan we weten dat overloop zal optreden (dat wil zeggen, in elk geval waar de echte som hoger zou zijn dan +7 of -8).

Een alternatief kan zijn om de ROM te programmeren om de hoeveelheid 0111 uit te voeren (de maximale positieve waarde die kan worden weergegeven met 4 ondertekende bits), of een andere waarde waarvan we hebben vastgesteld dat deze meer geschikt is voor de toepassing dan de typische overgelopen "fout" -waarde dat een gewone optelschakeling zou uitvoeren. Het is allemaal aan de programmeur om te beslissen wat hij of zij wil dat dit circuit doet, omdat we niet langer worden beperkt door de beperkingen van logische poortfuncties.

De mogelijkheden stoppen ook niet bij aangepaste logische functies. Door meer adresregels toe te voegen aan de 256 x 4 ROM-chip, kunnen we de opzoektabel uitbreiden met meerdere functies:

Met nog twee adresregels heeft de ROM-chip 4 keer zoveel adressen als voorheen (1024 in plaats van 256). Dit ROM kan zo worden geprogrammeerd dat wanneer A8 en A9 beide laag waren, de uitvoergegevens de som vertegenwoordigden van de twee 4-bits binaire getallen die worden ingevoerd op de adreslijnen A0 tot en met A7, net zoals we hadden met het vorige 256 x 4 ROM-circuit.

Voor de adressen A8=1 en A9=0 kan het worden geprogrammeerd om het verschil uit te voeren (aftrekken) tussen het eerste 4-bits binaire getal (A0 t/m A3) en het tweede binaire getal (A4 t/m A7). Voor de adressen A8=0 en A9=1 kunnen we de ROM programmeren om het verschil (aftrekken) van de twee getallen in omgekeerde volgorde uit te voeren (tweede - eerst in plaats van eerste - tweede), en ten slotte, voor de adressen A8 =1 en A9=1, kan de ROM worden geprogrammeerd om de twee ingangen te vergelijken en een indicatie van gelijkheid of ongelijkheid af te geven.

Wat we dan hebben, is een apparaat dat vier verschillende rekenkundige bewerkingen kan uitvoeren op 4-bits binaire getallen, allemaal door de antwoorden die erin zijn geprogrammeerd te "zoeken".

Als we een ROM-chip met meer dan twee extra adreslijnen hadden gebruikt, hadden we deze kunnen programmeren met een grotere verscheidenheid aan functies om op de twee 4-bits ingangen uit te voeren. Er zijn een aantal bewerkingen die specifiek zijn voor binaire gegevens (zoals pariteitscontrole of exclusieve ORing van bits) die we misschien nuttig zouden kunnen vinden om in zo'n opzoektabel te hebben geprogrammeerd.

Apparaten zoals deze, die een verscheidenheid aan rekenkundige taken kunnen uitvoeren zoals gedicteerd door een binaire invoercode, staan ​​bekend als Rekenkundige logische eenheden (ALU's), en ze vormen een van de essentiële componenten van computertechnologie. Hoewel moderne ALU's om redenen van snelheid vaker zijn opgebouwd uit zeer complexe combinatorische logische (gate) circuits, zou het geruststellend moeten zijn om te weten dat exact dezelfde functionaliteit kan worden gedupliceerd met een "domme" ROM-chip die is geprogrammeerd met de juiste opzoektabel (s).

In feite werd deze exacte benadering in 1959 door IBM-ingenieurs gebruikt bij de ontwikkeling van de IBM 1401 en 1620 computers, die opzoektabellen gebruikten om optellingen uit te voeren in plaats van binaire optellerschakelingen. De machine was liefkozend bekend als de "CADET", wat stond voor "C een niet A dd, D oes niet E ven T ry.”

Een veel voorkomende toepassing voor opzoektabel-ROM's is in besturingssystemen waar een aangepaste wiskundige functie moet worden weergegeven. Een dergelijke toepassing is te vinden in computergestuurde brandstofinjectiesystemen voor automotoren, waar de juiste lucht/brandstofmengselverhouding voor een efficiënte en schone werking verandert met verschillende omgevings- en operationele variabelen.

Tests uitgevoerd op motoren in onderzoekslaboratoria bepalen wat deze ideale verhoudingen zijn voor verschillende omstandigheden van motorbelasting, omgevingsluchttemperatuur en barometrische luchtdruk. De variabelen worden gemeten met sensortransducers, hun analoge uitgangen worden omgezet in digitale signalen met A/D-circuits, en die parallelle digitale signalen die worden gebruikt als adresingangen voor een ROM-chip met hoge capaciteit die is geprogrammeerd om de optimale digitale waarde voor lucht/brandstofverhouding voor een van deze gegeven voorwaarden.

Soms worden ROM's gebruikt om eendimensionale opzoektabelfuncties te bieden, voor het "corrigeren" van gedigitaliseerde signaalwaarden, zodat ze hun werkelijke betekenis nauwkeuriger weergeven. Een voorbeeld van zo'n apparaat is een thermokoppelzender , die het millivoltage-signaal meet dat wordt gegenereerd door een kruising van ongelijksoortige metalen en een signaal afgeeft dat direct zou moeten zijn corresponderen met die junctietemperatuur.

Helaas hebben thermokoppelovergangen geen perfect lineaire temperatuur- / spanningsreacties, en dus is het onbewerkte spanningssignaal niet perfect evenredig met de temperatuur. Door het spanningssignaal te digitaliseren (A/D-conversie) en die digitale waarde naar het adres van een ROM te sturen die is geprogrammeerd met de nodige correctiewaarden, zou de programmering van de ROM een deel van de niet-lineariteit van de temperatuur-tot-millispanningsrelatie van het thermokoppel kunnen elimineren, zodat de uiteindelijke uitvoer van het apparaat zou nauwkeuriger zijn.

De populaire instrumentatieterm voor zo'n opzoektabel is een digitale karakterizer .

Een andere toepassing voor opzoektabellen is in speciale codevertaling. Een 128 x 8 ROM zou bijvoorbeeld kunnen worden gebruikt om 7-bits ASCII-code te vertalen naar 8-bits EBCDIC-code:

Nogmaals, het enige dat nodig is, is dat de ROM-chip correct is geprogrammeerd met de benodigde gegevens, zodat elke geldige ASCII-invoer een overeenkomstige EBCDIC-uitvoercode zal produceren.

GERELATEERD WERKBLAD:

  • Werkblad Geheugenapparaten

Industriële technologie

  1. Een inleiding tot heftafels
  2. termen en concepten voor digitaal geheugen
  3. Alleen-lezen geheugen (ROM)
  4. Microprocessors
  5. C Dynamische geheugentoewijzing
  6. Cervoz upgradet DDR4-2666-geheugen van de volgende generatie
  7. AI kan magnetisme gebruiken om menselijke efficiëntie te bereiken
  8. C - Geheugenbeheer
  9. C++ dynamisch geheugen
  10. Java 10 - Heaptoewijzing
  11. Ladder Logic 202:Geheugenorganisatie