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

Microprocessors

Vroege pioniers in de computerwetenschap, zoals Alan Turing en John Von Neumann, stelden dat een computerapparaat pas echt nuttig moest zijn als het in staat moest zijn om specifieke output te genereren zoals voorgeschreven door geprogrammeerde instructies, maar dat het ook in staat moest zijn om gegevens te schrijven. naar het geheugen en kunt u later op die gegevens reageren.

Zowel de programmastappen als de verwerkte gegevens zouden zich in een gemeenschappelijke geheugenpool bevinden en zo plaats maken voor het label van de opgeslagen programmacomputer . De theoretische machine van Turing maakte gebruik van een tape met sequentiële toegang, die gegevens zou opslaan voor een besturingscircuit om te lezen, het besturingscircuit herschreef gegevens naar de tape en/of verplaatste de tape naar een nieuwe positie om meer gegevens te lezen.

Moderne computers gebruiken geheugenapparaten met willekeurige toegang in plaats van tapes met sequentiële toegang om in wezen hetzelfde te bereiken, maar dan met grotere capaciteit.

Een nuttige illustratie is die van de vroege automatische besturingstechnologie voor bewerkingsmachines. Genaamd open-loop , of soms gewoon NC (numerieke besturing), deze besturingssystemen sturen de beweging van een werktuigmachine zoals een draaibank of een frees door instructies te volgen die zijn geprogrammeerd als gaten in papieren tape.

De band zou in één richting door een "lees" -mechanisme worden geleid en de machine zou blindelings de instructies op de band volgen zonder rekening te houden met andere voorwaarden. Hoewel deze apparaten de last van het hebben van een menselijke machinist die elke beweging van de werktuigmachine moest leiden, wegnamen, was het nut ervan beperkt.

Omdat de machine blind was voor de echte wereld en alleen de instructies op de tape volgde, kon hij veranderende omstandigheden zoals uitzetting van het metaal of slijtage van de mechanismen niet compenseren.

Ook moest de bandprogrammeur zich terdege bewust zijn van de volgorde van eerdere instructies in het programma van de machine om lastige omstandigheden te voorkomen (zoals de werktuigmachine vertellen om de boor zijdelings te verplaatsen terwijl deze nog in een gat in het werkstuk zit), aangezien het apparaat geen ander geheugen had dan de band zelf, die alleen-lezen was.

Door te upgraden van een eenvoudige tapelezer naar een eindige-toestandbesturingsontwerp kreeg het apparaat een soort geheugen dat kon worden gebruikt om bij te houden wat het al had gedaan (door terugkoppeling van sommige databits naar de adresbits), dus in ieder geval de programmeur zou kunnen besluiten om het circuit "toestanden" te laten onthouden waarin de werktuigmachine zich zou kunnen bevinden (zoals "koelvloeistof aan" of gereedschapspositie). Er was echter nog ruimte voor verbetering.

De ultieme benadering is om het programma instructies te laten geven, waaronder het schrijven van nieuwe gegevens naar een lees-/schrijfgeheugen (RAM), dat het programma gemakkelijk kan oproepen en verwerken. Op deze manier kon het besturingssysteem registreren wat het had gedaan, en eventuele sensordetecteerbare procesveranderingen, net zoals een menselijke machinist notities of metingen op een kladblok zou kunnen noteren voor toekomstig gebruik in zijn of haar werk. Dit is wat wordt aangeduid als CNC, of ​​Closed-loop Numerical Control .

Ingenieurs en computerwetenschappers keken uit naar de mogelijkheid om digitale apparaten te bouwen die hun eigen programmering zouden kunnen wijzigen, net zoals het menselijk brein de sterkte van interne neurale verbindingen aanpast afhankelijk van omgevingservaringen (daarom verbetert het geheugenbehoud bij herhaalde studie, en gedrag wordt aangepast door middel van consequente feedback).

Alleen als het computerprogramma in dezelfde schrijfbare geheugenpool als de gegevens zou zijn opgeslagen, zou dit praktisch zijn. Het is interessant om op te merken dat het idee van een zelfmodificerend programma nog steeds wordt beschouwd als baanbrekend in de informatica.

De meeste computerprogrammering is gebaseerd op vrij vaste volgorden van instructies, waarbij een apart gegevensveld de enige informatie is die wordt gewijzigd.

Om de benadering met opgeslagen programma's te vergemakkelijken, hebben we een apparaat nodig dat veel complexer is dan de eenvoudige FSM, hoewel veel van dezelfde principes van toepassing zijn. Ten eerste hebben we lees-/schrijfgeheugen nodig dat gemakkelijk toegankelijk is:dit is eenvoudig genoeg om te doen.

Statische of dynamische RAM-chips doen het werk goed en zijn niet duur. Ten tweede hebben we een vorm van logica nodig om de gegevens die in het geheugen zijn opgeslagen te verwerken. Omdat standaard en Booleaanse rekenkundige functies zo handig zijn, kunnen we een rekenkundige logische eenheid (ALU) gebruiken, zoals het ROM-voorbeeld van de opzoektabel dat eerder is onderzocht.

Ten slotte hebben we een apparaat nodig dat regelt hoe en waar gegevens tussen het geheugen, de ALU en de buitenwereld stromen. Deze zogenaamde Control Unit is het meest mysterieuze stukje van de puzzel tot nu toe, bestaande uit tri-state buffers (om gegevens van en naar bussen te leiden) en decoderingslogica die bepaalde binaire codes interpreteert als instructies om uit te voeren.

Voorbeeldinstructies kunnen zoiets zijn als:"voeg het nummer dat is opgeslagen op geheugenadres 0010 toe aan het nummer dat is opgeslagen op geheugenadres 1101", of "bepaal de pariteit van de gegevens in geheugenadres 0111." De keuze welke binaire codes vertegenwoordigen welke instructies voor de besturingseenheid moeten worden gedecodeerd, is grotendeels willekeurig, net zoals de keuze van welke binaire codes moesten worden gebruikt om de letters van het alfabet in de ASCII-standaard weer te geven, grotendeels willekeurig was.

ASCII is nu echter een internationaal erkende standaard, terwijl instructiecodes voor besturingseenheden bijna altijd fabrikantspecifiek zijn.

Het samenvoegen van deze componenten (lees/schrijfgeheugen, ALU en besturingseenheid) resulteert in een digitaal apparaat dat doorgaans een processor wordt genoemd. . Als er minimaal geheugen wordt gebruikt en alle benodigde componenten zich op één geïntegreerd circuit bevinden, wordt dit een microprocessor genoemd. . In combinatie met de benodigde ondersteuningscircuits voor busbesturing, staat het bekend als een Central Processing Unit , of CPU.

CPU-bewerking wordt samengevat in de zogenaamde fetch/execute-cyclus . Ophalen betekent een instructie uit het geheugen lezen die de regeleenheid kan decoderen. Een kleine binaire teller in de CPU (bekend als de programmateller of instructiewijzer ) bevat de adreswaarde waar de volgende instructie in het hoofdgeheugen wordt opgeslagen.

De besturingseenheid verzendt deze binaire adreswaarde naar de adresregels van het hoofdgeheugen en de gegevensuitvoer van het geheugen wordt gelezen door de besturingseenheid om naar een ander holdingregister te verzenden. Als voor de opgehaalde instructie meer gegevens uit het geheugen moeten worden gelezen (als we bijvoorbeeld twee getallen bij elkaar optellen, moeten we beide getallen lezen die moeten worden toegevoegd uit het hoofdgeheugen of uit een andere bron), dan adresseert de besturingseenheid de locatie van de gevraagde gegevens en stuurt de gegevensuitvoer naar ALU-registers.

Vervolgens zou de controle-eenheid de instructie uitvoeren door de ALU te signaleren om te doen wat er met de twee nummers werd gevraagd, en het resultaat naar een ander register, de accumulator genaamd, sturen. . De instructie is nu 'opgehaald' en 'uitgevoerd', dus de besturingseenheid verhoogt nu de programmateller naar de volgende instructie en de cyclus herhaalt zich.

 Microprocessor (CPU) -------------------------------------- | ** Programmateller ** | | (verhoogt adreswaarde verzonden naar | | externe geheugenchip(s) om op te halen |==========> Adresbus | de volgende instructie) | (naar RAM-geheugen) -------------------------------------- | ** Besturingseenheid ** |<=========> Besturingsbus | (decodeert instructies gelezen van | (naar alle apparaten die delen) | programma in geheugen, maakt flow mogelijk | adres- en/of databussen; | van gegevens van en naar ALU, intern | bemiddelt alle buscommunicatie | registers en externe apparaten) | kationen) -------------------------------------- | ** Rekenkundige logische eenheid (ALU) ** | | (voert alle wiskundige | | berekeningen en Booleaanse | | functies) | -------------------------------------- | ** Registers ** | | (kleine lees-/schrijfgeheugens voor |<=========> Databus | met instructiecodes, | (uit RAM-geheugen en andere) | foutcodes, ALU-gegevens, enz; | externe apparaten) | bevat de "accu") | -------------------------------------- 

Zoals je zou kunnen raden, is het uitvoeren van zelfs eenvoudige instructies een vervelend proces. Er zijn verschillende stappen nodig om de regeleenheid de eenvoudigste wiskundige procedures te laten voltooien.

Dit geldt met name voor rekenkundige procedures zoals exponenten, waarbij herhaalde uitvoeringen ("iteraties") van eenvoudiger functies betrokken zijn. Stelt u zich eens voor hoeveel stappen de CPU nodig heeft om de stukjes informatie voor de grafische weergave op een vluchtsimulatorspel bij te werken!

Het enige dat zo'n vervelend proces praktisch maakt, is het feit dat microprocessorcircuits de ophaal-/uitvoercyclus met grote snelheid kunnen herhalen.

In sommige microprocessorontwerpen zijn er minimale programma's opgeslagen in een speciaal ROM-geheugen dat intern in het apparaat zit (genaamd microcode ) die alle substappen afhandelen die nodig zijn om complexere wiskundige bewerkingen uit te voeren. Op deze manier hoeft slechts een enkele instructie uit het programma-RAM te worden gelezen om de taak uit te voeren, en hoeft de programmeur niet te proberen de microprocessor elke minuut te vertellen hoe hij deze moet uitvoeren. In wezen is het een processor in een processor; een programma dat binnen een programma draait.


Industriële technologie

  1. Netwerkprotocollen
  2. Waarom digitaal?
  3. termen en concepten voor digitaal geheugen
  4. Alleen-lezen geheugen (ROM)
  5. Op-Amp-gegevens
  6. Python-gegevenstypen
  7. Datagestuurde productie is hier
  8. C - Gegevenstypen
  9. C - Vakbonden
  10. C - Geheugenbeheer
  11. Uw gegevens aan het werk zetten