Nevromorf prosessering

**Nevromorf prosessering**, eller **neuromorfisk databehandling**, er et konsept utviklet av Carver Mead, på slutten av 1980-tallet, og beskriver bruk av VLSI for å etterligne nevrobiologiske arkitekturer i nervesystemet. I nyere tid har begrepet «nevromorfe» blitt brukt til å beskrive analog, digital, blandet modus analog/digital VLSI, og programbaserte systemer som implementerer modeller av nevrale systemer (for persepsjon, motorstyring, eller multisensorisk integrasjon). Implementering av nevromorfisk prosessering på maskinvarenivået kan realiseres ved oksidbaserte memristorer, terskelbrytere og transistorer. Beregninger og metoder som brukes i disse regnemaskinene er ofte, men ikke alltid, slik at strømregnskapet holdes lavest mulig, samtidig som implementasjonen av kretsene er tilstrekkelige for å oppfylle ønsket funksjon. Dette fører ofte til at kretsene er analoge og operer i lav inversjon.

Et viktig aspekt ved nevromorf prosessering er å forstå hvordan morfologien til individuelle nevroner, kretser, applikasjoner og overordnede arkitekturer skaper ønskede beregninger, påvirker hvordan informasjon er representert, gir robusthet ved skade, inkorporerer læring og utvikling, tilpasser seg lokal forandring (plastisitet), og forenkler evolusjonelle endringer.

Nevromorfe prosessering i egne prosessorer brukes for å simulere kjente funksjoner fra sentralnervesystemet, eller utføre slike funksjoner som nevrale proteser (engelsk neuroprosthetics). Typiske eksempler på nevrale proteser er cochleaimplantat for å gjenskape hørsel og nyere synsimplanat (engelsk bionic eye) for å gjenskape syn. Fungerende cochleaimplantat er blitt nokså vanlige, om enn ikke mainstream. Disse fungerer selv om oppløsningen er vesentlig dårligere enn normal hørsel. Det har vist seg vanskelige å lage velfungerende synsimplanat, blant annet fordi funksjonen til de enkelte nervecellene i retina ikke har vært fullt ut forstått. Nyere implementasjoner er mer lovende. Av nyere nevrale proteser kan nevnes løsninger for å kontrollere lammede kroppsdeler etter slag, kunstige proteser for å erstatte lemmer som er tapt, og metoder for å kontrollere eksterne maskiner.

## Funksjon
Fordi nevromorfe prosessorer ofte utfører helt bestemte funksjoner som ikke kan endres, en prosessgraf, så er behovet for å inkludere digitale operatorer lite. Det gjør at motivasjonen for å kun bruke analoge operatorer øker. Det er imidlertid ingenting som tilsier at digitale operatorer ikke skal brukes, og de er ofte nødvendige for å implementere programmerbare operasjoner. Avveiningen om valg av type operasjon er ofte motivert av strømregnskapet, hvor digitale operasjoner kan ha et vesentlig høyere strømbudsjett enn tilsvarende analoge operasjoner.

Digitale operatorer kan ses på som funksjoner hvor spenningen representerer variable, hvor variablene går fra en fiksert tilstand til en annen. Skal et signal representeres så samples og kvantiseres det, og representasjon av kvantiseringen kan spres over flere delkretser. I analoge kretser blir variable derimot representert både ved strøm og spenning, og de er kontinuerlige fra en tilstand og til en annen. Når en verdi representeres så kan den samples, men det er ikke nødvendig. Operasjoner på en verdi i analoge operatorer skjer som oftest i en og samme delkrets, og ikke som i digitale ved at den spres i mange delkretser.

VLSI er ofte assosiert med digitale kretser, hvor spenningen i kretsene drives fra V_{ss} (spenning ved source) og til V_{dd} (spenning ved drain). Fordi det er små kapasitanser involvert, og disse må endre ladning, så vil det gå en liten strøm ved hver veksling. Etter hvert skifte er kretsen igjen stabil og det går en ytterst liten lekkstrøm. Fordi det er mange slike kretser så vil den totale strømmen i kretsen bli stor på grunn av skiftene i tilstand.

Hvis VLSI brukes for analoge kretser, så vil spenningen i kretsene kun drives et lite stykke fra en satt normalverdi. Det gjør at spenningen over kapasitansene endrer seg mye mindre, og fordi disse ikke endrer ladning like mye, så vil det gå en mye mindre strøm. Ulempen er at kretsen ikke når en stabil tilstand og at lekkstrømmen blir større. Fordi det er tilsvarende mange kretser så vil den totale strømmen i kretsen bli stor på grunn av den vedvarende lekkasjestrømmen.

I nevromorfe prosessorer som regner på fysiske prosesser i sanntid kan en redusere regnehastigheten. Dette skjer ved å drive transistorene ned i området for lav inversjon, og ofte inn i dette. Dermed faller lekkstrømmene. Når hastigheten (eller egentlig antall nødvendige regneoperasjoner) faller så er det stadig mer aktuelt å skifte fra digitale operasjoner og til analoge, for regnskapet for vekselstrømmer er konstant for et sett av operasjoner, mens lekkstrømmen faller med fallende regnehastighet.

Selve kretsene som brukes, de analoge operatorene, implementeres som kretser av transistorer. Fordi en ønsker å modellere fysiske forhold, i det som gjerne kalles biologisk tid, så senkes regnehastigheten ved at transistorene opereres under deres terskelverdi, det vil si i lav inversjon. Dette forenkler modelleringen, og det kan brukes en radikalt enkel transform …  som er riktig hvis en ser bort fra dynamiske forhold.

En fundamental forutsetning for bruk av slike analoge operatorer er at beregningene er feiltolerante. Algoritmene som brukes i nevromrf prosessering er ofte feiltolerante hvis en kan unngå diskontinuiteter. Slik sett er de enklere å bruke enn tilsvarende digitale operatorer. Grunnen til at en ikke ønsker diskontinuiteter er at slike operatorer gir opphav til funksjoner som er vanskelige å derivere.

Det er ingen nødvendighet at en nevromorf prosessor følger en fiksert prosessgraf, de kan også være programmerbare. Flere slike er skissert, men spesielt TrueNorth og SyNAPSE har vakt oppmerksomhet. Mer generelt omtales slike som AI akseleratorer, og må ikke forveksles med kunstig intelligens implementert med grafiske prosessorer. En AI akselerator kan lages med mer eller mindre bruk av analoge operatorer, og uten at det nødvendig å skjele til noe bestemt strømbudsjett.

## Referanser


## Litteratur
*