INMOS Transputer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Phas (discussione | contributi)
Scheduler
Riga 19:
 
C'erano dei limiti alla grandezza di un sistema che poteva essere creato a questo modo. Siccome ogni Transputer era connesso a un altro in uno schema fisso punto-a-punto, mandare messaggi a un Transputer più distante richiedeva che questo fosse ridirezionato da ogni chip sulla linea. Questo introduceva un ritardo a ogni "hop", portando a grossi ritardi su grosse reti. Per risolvere questo problema INMOS fornì anche uno switch a ritardo-zero che connetteva fino a 32 Transputer (o switch) in reti anche più grandi
 
=== Scheduler ===
A supportare i link era una parte di circuito addizionale che trattava l'ordine del traffico che vi passava. I processi che aspettavano comunicazione erano automaticamente messi in pausa mentre il circuito di rete finiva le sue letture o scritture. Il tempo di elaborazione sarebbe stato dato ad altri processi, ciè includeva due livelli di priorità per evitare i [[deadlock]]. Lo stesso sistema logico era usato per comunicare fra progranni in esecuzione sullo stesso Transputer, implementato come una "rete virtuale" in memoria. Quindi un programma in richiesta di un input o un output automaticamente veniva messo in pausa mentre l'operazione era completata, un compito che normalmente richiedeva che il sistema operativo funzionasse come arbitro per l'hardware. I SO sul transputer non dovevano occuparsi dello scheduling, in pratica si poteva pensare che il chip avesse egli stesso un sistema operativo all'interno.
 
Per poter includere tutte queste funzionalità su un singolo chip, il core del Transputer era molto più semplice della maggior parte delle [[CPU]]: usava un'architettura RISC, ma diversamente dalle più comuni CPU RISC basate su un pesante utilizzo dei registri, il transputer usava molto lo stack. Questo permetteva di eseguire rapidamente il [[context switch]] semplicemente sopstando lo stack pointer sulla parte di memoria assegnata a un altro programma (una tecnica usata i molti sistemi contemporanei). Il Transputer inoltre includeva tre registri "normali", ma questi erano di fatto le copie delle prime tre celle dello stack, usate per permettere le istruzioni a indirizzo zero.
 
=== Set di istruzioni ===