Stap 1: Systeemarchitectuur
Elementaire systeemonderdelen:
FPGA
Chaos klok
Connectome controle-eenheid
Universum regeleenheid
Perifere support systeemcomponenten:
FT232H USB-naar-serieel brug
Spanningsregelaar
AVR dragon (AVR ISP)
USB-blaster (FPGA JTAG)
USB-hub
Deze hele puinhoop begon omdat ik te denken zat over hoe vrije wil bij de mens kan worden aangevoerd for.* het argument eindigde met betrekking tot de continuïteit van de tijd.
Wel of niet dat argument houdt water (het niet: geen argumenten doen: alleen empirische test gegevens passeert opbrengen voor mij), het leidde me af of een kunstmatig neuraal netwerk continu tijdig kan worden gemaakt. Meest neurale netwerken worden geïmplementeerd in software in systemen van de discretized-tijd (hoewel memristors, PAAs en hun ilk toestaan voor sommige neuromorphic architectuur in continue tijd) en ik ben benieuwd of een interessante chaotische effecten ontstaan wanneer het neurale netwerk kan worden asynchroon.
De individuele asynchrone digitale neuron werd ontwikkeld in een Altera EP4CE6E22C8N. Na het toevoegen van beslaat de vereiste multiplexing logica, het netwerk van 36 neuronen ongeveer 4000 logica elementen, 65% van de chip. Maar dat is alleen voor de 36 neuronen en bijbehorende synapse multiplexers, dat wil zeggen, een lege netwerk dat kan worden herbedraad echter gebaseerd op externe opdrachten, I/O lijnen die verwijzen rechtstreeks naar de synapsen lijningangen (bijvoorbeeld nerve_splice_into_layer_0_axon_in_0) en axon output lijnen (bijvoorbeeld nerve_tap_from_layer_5_axon_out_3). Er zijn 6 output lijnen, 1 DTACK (gegevensoverdracht erkennen) lijn en 18 lijningangen. "Klinkt als nette hardware" zou je zeggen. Inderdaad is het, denkbeeldige lezer! Echter eigenlijk om het te gebruiken moet ik hebben enkele manier om de interface met het ding (ik noemde het Xenolux!), en zo onze saga begint...
Wat nodig is om de synthetische neuraal netwerk gebruiken? Voor starters, een controle-eenheid van de Connectome. Er moet een externe processor die het netwerk hoe vertelt draad. Elke neuron heeft 6 synapsen; Er is een excitatory en een inhiberende synapsen van elk van de volgende gewichten: 0.17, 0.5 en 1.0. Elke Synaps heeft een klein beetje (4 bits, dus een beet, eigenlijk) RAM-geheugen. De bitcode in de synaps van RAM besturingselementen de synaps is multiplexer, die besluit waarop het is aangesloten. Elke Synaps kan worden aangesloten op niets (null, grond, geen signaal), naar een van de 6 axonen vanuit de vorige laag van synthetische neuronen of naar een "stim_line", die levert een constante stimuleren signaal (soort van het tegenovergestelde van een null-verbinding).
Synapsen worden individueel benaderd door instellen 9 adres bits die zijn opgemaakt als volgt: 3 bits om te selecteren welke laag van 6 neuronen, 3 om te selecteren welke NEURON uit de 6 binnen de geselecteerde laag, en 3 bits om te selecteren welke Synaps van de 6 binnen het neuron. De "mux_write_enable" data-lijn (die doet precies wat het zegt over het tin) wordt beweerd een beetje na van de synaps adres en de gewenste synapse-bitcode worden toegepast.
* gebaseerd op nondeterminism veroorzaakt door het ontbreken van lokale verborgen variabelen
zodanig dat de precieze momenten in welke golffuncties ineenstorting zou echt willekeurig, en dat deze verschuiving in de tijd zouden wijziging van netwerkbewerking in een chaotische niet-lineaire manier.