INMOS Transputer e Società cooperativa (diritto italiano): differenze tra le pagine

(Differenze fra le pagine)
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
 
Riga 1:
{{societadiritto}}
Il '''INMOS Transputer''' era un pionieristico design di un [[microprocessore]] per il [[calcolo parallelo]] prodotto dalla [[INMOS]], una piccola azienda inglese, negli [[Anni 1980|anni '80]]. Per qualche tempo, fin quasi al termine di quel decennio, molti considerarono il Transputer come il nuovo grande progetto per il futuro del calcolo. Oggi i suoi derivati sono utilizzati in macchine fotografiche, sistemi GPS e decoder per la TV digitale.
{{F|diritto|maggio 2009|Mancano del tutto le fonti}}
 
La '''società cooperativa''' è una [[società (diritto)|società]] nella quale almeno nove soggetti gestiscono in comune una [[impresa]] che si prefigge lo scopo di fornire innanzitutto agli stessi [[soci]] ([[scopo mutualistico]]) quei beni e servizi per il conseguimento dei quali la cooperativa è sorta.
== Background ==
Nei primi anni '80 sembrava che le [[CPU]] convenzionali avessero raggiunto il loro limite riguardo alle ''performance''. Fino a quel momento i progettisti erano stati limitati principalmente dall'ammontare di circuiti che potevano piazzare su un [[chip]] a causa di problemi di costruzione. Ma con il continuo migliorare dei processi produttivi il problema mutò: i chip potevano contenere più circuiti di quelli che i progettisti sapevano sfruttare. Presto le tradizionali architetture [[Complex instruction set computer|CISC]] avrebbero raggiunto il loro limite massimo possibile, e non era ben chiaro se si sarebbe potuto superarlo.
 
Capisaldi del sistema cooperativo sono i principi di [[mutualità]], [[solidarietà]], [[democrazia]].
Sembrò che l'unico modo fosse implementare l'uso del parallelismo, cioè l'uso di svariate CPU che avrebbero lavorato assieme per compiere diversi compiti allo stesso tempo. Tutto ciò dipendeva dalla possibilità della macchina di essere in grado di eseguire più processi allo stesso tempo, capacità nota come [[multitasking]], troppo difficile da eseguire fino ad allora, ma supportata dai processori di nuova generazione. Fu chiaro che in futuro questa caratteristica sarebbe stata supportata da tutti i [[sistema operativo|sistemi operativi]].
 
== Caratteri peculiari ==
Un effetto collaterale di molte architetture ''multitasking'' è che spesso permette di eseguire i processi su CPU fisicamente differenti, nel qual caso il processo è noto come ''[[multiprocessing]]''. Una CPU a basso costo, pensata in quest'ottica, avrebbe permesso di aumentare la velocità di calcolo di una macchina aggiungendo altri processori simili, scelta potenzialmente molto più economica di una basata su un singolo e più potente processore.
=== Funzione sociale ===
A norma dell'articolo 45 della [[Costituzione della Repubblica italiana|Costituzione]] ''la Repubblica riconosce la [[funzione sociale]] della cooperazione a carattere di [[scopo mutualistico|mutualità]] e senza fini di [[speculazione]] privata.''
 
=== Lo scopo mutualistico ===
== Design==
La cooperativa è un'impresa - in forma di società - nella quale il fine e il fondamento dell'agire economico è il soddisfacimento dei bisogni della persona (il socio): alla base della cooperativa c'è dunque la comune volontà dei suoi membri di tutelare i propri interessi di consumatori, lavoratori, agricoltori, operatori culturali, ecc.
Il Transputer ('''Trans'''istor Com'''puter''') fu il primo microprocessore ad uso generico progettato specificatamente per essere usato in sistemi di calcolo parallelo. L'obiettivo era di produrre una famiglia di chip, limitati in costo e potenza, che avrebbero potuto poi essere connessi tra loro per formare un computer completo. Il nome era stato scelto per indicare il ruolo che il singolo Transputer avrebbe avuto: molti di loro sarebbero stati usati come "mattoni di base", proprio come i transistor lo erano stati precedentemente.
 
L'elemento distintivo e unificante di ogni tipo di cooperativa - a prescindere da ogni altra distinzione settoriale - si riassume nel fatto che, mentre il fine ultimo delle [[società di capitali]] diverse dalle coop è la realizzazione del [[scopo di lucro|lucro]] e si concretizza nel riparto degli utili patrimoniali, le cooperative hanno invece uno scopo mutualistico, che consiste – a seconda del tipo di cooperativa - nell'assicurare ai soci il lavoro, o beni di consumo, o servizi, a condizioni migliori di quelle che otterrebbero dal libero [[mercato]].
Originariamente il piano era di far costare i Transputer solo pochi dollari a unità. La INMOS li vide usati praticamente per tutto (operazioni tipiche di una CPU per quanto riguardava un computer e funzioni di [[channel controller]] per i disk drive nella stessa macchina). I cicli inutilizzati su ognuno di questi Transputer avrebbero potuto essere usati per altri compiti, accrescendo grandemente le ''performance'' complessive delle macchine.
 
==== La ''prevalenza'' mutualistica ====
Anche un singolo Transputer avrebbe avuto tutti i circuiti necessari per lavorare da solo, una caratteristica più comunemente associata ai [[microcontrollore|microcontrollori]]. L'idea, in questo caso, era di permettere ai Transputer di essere connessi assieme il più facilmente possibile, senza bisogno di un [[bus]] (o una [[scheda madre]]) complesso. Al contrario, bastava semplicemente fornire energia e un segnale di [[clock]], senza nemmeno bisogno di [[RAM]], RAM controller, supporto dal bus e nemmeno un [[Sistema operativo real-time|RTOS]], tutto ciò era già incluso.
Fondamentale è la distinzione tra:
* cooperative a mutualità prevalente
* cooperative non a mutualità prevalente, dette "cooperative diverse"
 
In base al [[Codice Civile]] sono società cooperative a mutualità prevalente, in ragione del tipo di scambio mutualistico, quelle che (art. 2512):
=== Collegamenti esterni ===
* svolgono la loro attività prevalentemente in favore dei soci, consumatori o utenti di beni o servizi;
Il progetto di base del Transputer includeva dei link seriali che gli permettevano di comunicare con altri Transputer (fino a quattro), ognuno a 5, 10 o 20 Mbit/s, una velocità davvero molto elevata per quegli anni. Ogni gruppo di transputer poteva essere connesso assieme ad altri su link anche più lunghi (decine di metri) per formare una singola "[[computing farm]]". Una tipica macchina desktop poteva avere due ''"low end"'' Transputer a controllare i compiti di [[Input/output|I/O]] con alcune delle sue linee seriali (connesse all'hardware appropriato) mentre dialogavano con uno dei loro "fratelli maggiori" funzionante come [[CPU]] su un'altra. I Transputer potevano essere inizializzati su link di rete (diversamente dalla memoria in molte macchine), cosicché un singolo Transputer poteva far partire l'intera rete.
* si avvalgono prevalentemente, nello svolgimento della loro attività, delle prestazioni lavorative dei soci;
* si avvalgono prevalentemente, nello svolgimento della loro attività, degli apporti di beni o servizi da parte dei soci.
 
Il codice civile prevede criteri oggettivi per il calcolo della prevalenza e fissa i vincoli statutari da adottare per le cooperative a mutualità prevalente (art. 2513 e 2514).
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.
 
Le cooperative sociali sono considerate di diritto a mutualità prevalente.
=== 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, e ciò includeva due livelli di priorità per evitare i [[deadlock]]. Lo stesso sistema logico era usato per comunicare fra programmi 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 sistemi operativi sul transputer non dovevano occuparsi dello [[scheduling]]: in pratica si poteva pensare che il chip avesse egli stesso un sistema operativo all'interno.
Le disposizioni fiscali di carattere agevolativo previste dalle leggi speciali si applicano soltanto alle cooperative a mutualità prevalente; inoltre queste ultime non possono trasformarsi in società a scopo di lucro, mentre l'eventuale passaggio da cooperativa a mutualità prevalente a cooperativa a mutualità non prevalente è disciplinato dall'art. 2545 octies.
 
=== Il voto capitario ===
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 spostando lo [[stack pointer]] sulla parte di memoria assegnata a un altro programma (una tecnica usata da 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.
Le cooperative sono caratterizzate dal [[voto capitario]] dei soci, ovvero dal fatto che ogni socio ha diritto a un voto in Assemblea, indipendentemente dal valore della propria quota di capitale sociale: viceversa, nelle [[società per azioni]] i voti sono attribuiti in proporzione al numero di azioni (con diritto di voto) possedute da ogni socio.
Ai soci cooperatori persone giuridiche tuttavia, può spettare un numero di voti superiore (fino a cinque) , e lo stesso si può dire per gli appartenenti alla categoria dei soci sovventori.
 
Non è possibile il voto per delega, tranne nel caso in cui il socio sia rappresentato da un membro della famiglia, nell'ambito di una attività di impresa familiare.
=== Set di istruzioni ===
Il set di istruzioni del Transputer era formato da istruzioni di 8 bit divise in due [[nibble]]. Quello superiore conteneva la codifica dell'istruzione, rendendolo un vero RISC con solo 16 istruzioni di base, quello inferiore conteneva una costante o più comunemente un'[[offset]] relativo allo stack pointer. Costanti e offset più lunghi potevano essere usati, ma richiedevano byte di indirizzo addizionali in fase di [[fetch]] e decodifica. Inoltre le istruzioni meno frequentemente utilizzate erano supportate tramite la codifica di istruzioni chiamata ''Operate'' (Opr), la quale decodificava la costante di dati come un codice di operazione esteso, fornendo un'espansione del set di istruzione facile e quasi infinita, introdotta con una nuova implementazione del Transputer. I processi con ''context'' più piccoli giravano più velocemente, ma l'idea intera del Transputer era comunque di far girare molti piccoli processi.
 
=== ProgrammazioneAltre ad alto livellopeculiarità ===
Caratteristica propria della cooperativa è pure il principio di parità tra i soci (democrazia economica), che implica, tra l'altro, oltre al voto capitario, la necessità di un giudizio motivato sui motivi di ammissione o sul diniego di ammissione nei confronti di nuovi soci (art. 2528, quarto comma).
Per la programmazione dei transputer, la INMOS ha progettato un linguaggio apposito, ispirato ai [[Communicating Sequential Processes|CSP]] di [[C. A. R. Hoare]] e chiamato [[linguaggio di programmazione Occam|Occam]]. In effetti è più corretto dire che il Transputer fu progettato specificatamente per eseguire codice Occam, come molti processori CISC dell'epoca erano pensati per eseguire [[Pascal (linguaggio)|Pascal]] o [[C (linguaggio)|C]]. L'Occam supportava lo sviluppo di applicazioni divise in più processi e spesso la semplice scrittura di un programma in Occam risultava un'applicazione di questo tipo. Con il supporto per i task e le comunicazioni integrati nel chip e il linguaggio di programmazione che vi interagiva direttamente, scrivere il codice per cose come controllare un device controller divenne una banalità: anche il codice più semplice poteva controllare le porte seriali per l'I/O, e si sarebbe automaticamente messo in pausa in assenza di dati.
 
Ulteriori caratteristiche fondamentali sono:
== Implementazioni ==
I primi modelli di Transputer furono annunciati nel [[1983]] e rilasciati nel [[1984]]/[[1985|5]].
D'accordo con il loro ruolo come dispositivo simile a un [[microcontrollore]], includevano 2kB di RAM e un RAM controller integrato, che permetteva di aggiungere memoria senza altro hardware. A differenza di altre architetture i Transputer includevano una [[Memory management unit|MMU]], anche se in un sistema basato sullo stack questo non è molto importante, poiché gli indirizzi sono quasi sempre offset e non richiedono modifiche complesse.
 
- il principio cosiddetto della porta aperta (non è necessario modificare l'[[atto costitutivo]] a seguito dell'ammissione di nuovi soci: art. 2524);
=== [[16-bit]] ===
Il prototipo a 16 bit del transputer fu l<nowiki>'</nowiki>'''S43''', senza lo scheduler e senza il il trasferimento dei blocchi sui link su [[Direct Memory Access|DMA]]. Al momento del lancio il '''T212''' e il '''M212''' (fornito di un disk controller) erano le offerte a 16 bit.
 
- il capitale variabile della società cooperativa (art. 2511).
=== [[32-bit]] ===
Al momento del lancio l'offerta a 32-bit consisteva nel '''T414'''. La RAM fu più tardi portata a 4K nel '''T424''', che includeva anche un'istruzione JO trap per aiutare il [[debug]].
 
La partecipazione dei soci cooperatori al capitale sociale può essere rappresentata da quote (se si adotta la struttura di [[s.r.l.]]) o azioni (se viene adottata la struttura di società per azioni).
=== [[Virgola mobile]] ===
La successiva versione fu il '''T800''', nel [[1987]], la quale includeva un'unità a [[virgola mobile]] da [[64-bit]] e tre registri dedicati a questo tipo di calcolo. Inoltre la RAM veniva aumentata a 4k. Molte nuove generazioni di queste CPU, conosciute come famiglie T-2, T-4 e T-8, furono rilasciate nei successivi anni per migliorare la programmazione e il debug. Lo switch a 32 link '''C004''' fu inoltre aggiunto alla linea di prodotti.
 
Il Codice Civile riconoscendo la variabilità del capitale come un elemento peculiare delle società cooperative, non stabilisce un valore minimo da sottoscrivere, ma stabilisce quale debba essere il valore minimo della quota pro capite € 25,00. Nelle società per azioni, il valore dell'azione non può essere superiore a € 500.
== Competizione ==
 
== Struttura giuridica ==
Nonostante il Transputer fosse semplice e tuttavia potente rispetto a molte architetture contemporanee, non riuscì mai ad avvicinarsi al suo obiettivo di essere usato universalmente sia come CPU sia come microcontrollore. Il secondo campo era dominato da macchine a 8-bit e il costo era il solo parametro considerato. Anche il T-2s era troppo potente e costoso per la maggior parte degli utenti. La mancanza di supporto del Transputer per la memoria virtuale impedì il [[porting]] delle principali varianti dei sistemi operativi [[Unix]] (anche se vennero prodotte varianti come [[Minix]] e [[Idris (sistema operativo)|Idris]] di [[Whitesmiths]].)
Le cooperative sono regolate dalle norme specifiche presenti nel Codice civile, dall'articolo 2511 all'art. 2548, e, in quanto compatibili, dalle disposizioni sulla società per azioni (art. 2519 primo comma).
 
Per le cooperative costituite da meno di 9 soci è obbligatoria (art. 2522, secondo comma) l'applicazione delle norme sulle s.r.l. (e possono essere costituite esclusivamente da [[persone fisiche]], non da [[persone giuridiche]]).
Nel campo [[desktop]] / [[workstation]] il Transputer era abbastanza veloce, operando a circa 10 [[MIPS (unità di misura)|MIPS]] a 20MHz, un'eccellente ''performance'' per i primi anni Ottanta, ma, al momento in cui venne venduto il T800, fornito di una [[Floating Point Unit|FPU]], le altre architetture RISC l'avevano già sorpassato. Questo avrebbe potuto essere mitigato dalla possibilità di creare macchine con più Transputer, ma il T800 costava circa 400$ al pezzo quando venne rilasciato, quindi il rapporto prezzo/potenza era svantaggioso.
 
Le norme sulla società a responsabilità limitata possono essere applicate anche nel caso in cui si verifichi una delle seguenti condizioni (e l'atto costitutivo preveda espressamente l'applicazione di tali norme):
== T9000 ==
L'INMOS cercò di migliorare la sua linea di prodotti con l'introduzione del '''T9000'''. Il T9000 aveva in comune molte ''feature'' con il T800, ma implementava alcune innovazioni e aggiungeva delle caratteristiche per il supporto della [[Microprocessore superscalare|superscalarità]]. Diversamente dai modelli precedenti, il T9000 aveva una vera [[CPU cache|cache]] da 16kB ad alta velocità al posto della RAM; inoltre permetteva di usare questa come memoria e includeva funzionalità stile MMU per controllare tutto ciò (conosciute come ''PMI''). Per aumentare ancora la velocità il T9000 spostava in cache le prime 32 locazioni dello stack, al contrario delle tre delle versioni precedenti.
 
- numero dei soci inferiore a venti,
Il T9000 usava una [[Pipeline dati|pipeline]] a cinque stadi per aumentare la velocità. Un'interessante aggiunta fu il ''raggruppatore'' che raccoglieva le istruzioni in uscita dalla cache e le raggruppava in pacchetti più larghi, da 4 bytes, per alimentare più velocemente la pipeline. I gruppi venivano poi completati in un singolo ciclo, come se fossero una singola istruzione più grossa su una CPU più veloce.
 
- attivo patrimoniale inferiore a un milione di euro.
Questo fu il colpo finale per la INMOS, che non aveva i fondi necessari per continuare lo sviluppo. La compagnia fu venduta alla [[ST Microelectronics|SGS-Thomson]] (oggi [[ST Microelectronics]] ) che eliminò il T9000 e produsse l'architettura 212/414 per linee di microcontrollori come le famiglie '''ST10''' e '''ST20''', ora non più in produzione, anche se parti di questa tecnologia sono incluse in chipset per applicazioni speciali (ad esempio [[GPS]], macchine fotografiche e decoder per la TV digitale).
 
Le società cooperative godono di [[autonomia patrimoniale]] perfetta. L'art. 2518 dispone infatti che nelle società cooperative per le obbligazioni risponde soltanto la società con il suo patrimonio.
Ironicamente, fu in gran parte grazie al parallelismo che le architetture delle CPU convenzionali divennero più veloci. Invece di usare un pesante sistema esplicito come il Transputer, le CPU moderne lavorano in parallelo solo a livello di istruzioni, dividendo il codice fra un numero fissato di core. Pare che questa forma di parallelismo, conosciuta come superscalarità, sia molto più adatta al calcolo d'uso generale.
 
== Tipologie di cooperative ==
[[File: Picswiss BL-69-05.jpg | thumb | Centro commerciale a Oberwil (Svizzera)]]
A seconda della natura dei soci e delle finalità che gli stessi intendono perseguire possiamo avere:
* una [[Credito cooperativo|Cooperativa di credito]]: in particolare queste sono rappresentate dalle Banche di Credito Cooperativo (BCC): lo scopo consiste nel fare una politica del credito equa verso i loro soci e clienti, discostandosi da logiche di mero guadagno;
* una [[Coop|Cooperativa di consumo]]: l'obiettivo è di acquistare e rivendere beni di qualità a prezzi vantaggiosi ai propri soci-[[consumatori]];
* una [[Cooperativa di produzione e lavoro]]: lo scopo consiste nel procurare lavoro alle migliori condizioni possibili per i propri soci-lavoratori;
* una [[Cooperativa sociale]]: si tratta di cooperative di lavoro per la gestione di servizi socio sanitari ed educativi o finalizzate all'inserimento lavorativo di persone svantaggiate;
* una [[Cooperativa di abitanti]] o [[Cooperativa edilizia]]: finalizzata alla costruzione di alloggi per i propri soci in un rapporto corretto tra qualità e prezzo;
* una Cooperativa agricola o della pesca: si tratta di cooperative per coltivazione, trasformazione, conservazione, distribuzione di prodotti agricoli o zootecnici oppure finalizzate all'esercizio in comune della pesca o di attività ad essa inerenti
 
== Fonti ==
* [http://www.educoop.it/preview/manuale/index.html Come si costituisce una cooperativa] Manuale sfogliabile in PDF
* [http://www.confcooperative.it/C0/Che%20cos%27e%20una%20cooperativa/default.aspx Che cos'è una cooperativa?]
 
== Voci correlate ==
* [[Confcooperative]]
*[[Architettura parallela]]
* [[Cooperativa sociale]]
*[[Linguaggio di programmazione Occam]]
* [[Coop]]
* [[Cooperazione]]
* <tt>[[.coop]]</tt>, [[dominio di primo livello generico]] riservato alle società cooperative
* [[Lega delle Cooperative]]
* [[Movimento cooperativo]]
* [[Scopo mutualistico]]
* [[Società (diritto)]]
* [[Società cooperativa europea]]
 
== Collegamenti esterni ==
[[Categoria:Microprocessori]]
* [http://www.dossierazienda.it/fonti/t56.htm Norme del Codice Civile sulle cooperative]
* [http://www.handylex.org/stato/l081191.shtml Legge 381 del 1991. Istituzione delle cooperative sociali]
* [http://www.fondosviluppo.coop/_Legge59/Legge%2059.htm Legge speciale 59/1992]
* [http://www.parlamento.it/parlam/leggi/01142l.htm Norme relative alla posizione del socio lavoratore. Legge 142/2001]
* [http://www.parlamento.it/leggi/deleghe/02220dl.htm Norme sulla vigilanza degli enti cooperativi]
* [http://www.minindustria.it/organigramma/index.php?sezione=organigramma&tema_dir=tema2&nodo=168 Pagina della Direzione Generale Cooperative nel sito del Ministero Attività Produttive]
* [http://www.confcooperative.it/ Confcooperative]
* [http://www.legacoop.coop/ LegaCoop]
* [http://www.agci.it/ A.G.C.I. Associazione Generale Cooperative Italiane]
* [http://www.unci.org/ UNCI - Unione Nazionale Cooperative Italiane]
* [http://www.unicoop.it UN.I.COOP. - Unione Italiana Cooperative]
[[Categoria:Diritto societario]]
{{Portale|diritto}}
 
[[bg:Кооперация]]
[[de:Transputer]]
[[enbr:INMOS transputerKevelouri]]
[[frca:TransputerCooperativa]]
[[cs:Družstvo]]
[[ja:トランスピュータ]]
[[plda:TransputerKooperativ]]
[[de:Genossenschaft]]
[[ru:Транспьютер]]
[[en:Cooperative]]
[[eo:Kooperativo]]
[[es:Cooperativa]]
[[eu:Kooperatiba]]
[[fa:شرکت تعاونی]]
[[fi:Osuuskunta]]
[[fr:Coopérative]]
[[fy:Koöperaasje]]
[[gl:Cooperativa]]
[[he:קואופרטיב]]
[[hr:Zadruga]]
[[hu:Szövetkezet]]
[[ia:Cooperative]]
[[id:Koperasi]]
[[ja:生活協同組合]]
[[ko:생활협동조합]]
[[la:Societas cooperativa]]
[[nl:Coöperatie]]
[[nn:Samvirkelag]]
[[no:Samvirke]]
[[pl:Spółdzielnia]]
[[pt:Cooperativismo]]
[[ru:Кооператив]]
[[sk:Družstvo (ekonómia)]]
[[sv:Kooperativ]]
[[th:สหกรณ์]]
[[tr:Kooperatif]]
[[uk:Кооператив]]
[[zh:合作社]]