INMOS Transputer

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Transputer

INMOS Transputer a fost un design de pionierat al unui microprocesor pentru calcul paralel produs de INMOS , o mică companie engleză, în anii 1980 . De ceva timp, până la sfârșitul acelui deceniu, mulți au văzut Transputerul ca pe noul plan pentru viitorul computerului. Astăzi derivatele sale sunt utilizate în camere, sisteme GPS și decodificatoare TV digitale.

fundal

La începutul anilor 1980, procesoarele convenționale păreau să-și fi atins limitele în ceea ce privește performanța . Până atunci, proiectanții erau limitați în principal de cantitatea de circuite pe care le puteau plasa pe un cip din cauza problemelor de construcție. Dar pe măsură ce procesele de fabricație au continuat să se îmbunătățească, problema s-a schimbat: cipurile ar putea conține mai multe circuite decât știau proiectanții să exploateze. Arhitecturile tradiționale CISC vor atinge în curând limita maximă posibilă și nu era clar dacă putea fi depășită.

Se părea că singura modalitate era implementarea utilizării paralelismului, adică utilizarea mai multor procesoare care ar funcționa împreună pentru a îndeplini sarcini diferite în același timp. Toate acestea depindeau de faptul că mașina putea rula mai multe procese în același timp, o capacitate cunoscută sub numele de multitasking , care era prea dificil de realizat până atunci, dar susținută de procesoarele de generația următoare. Era clar că această caracteristică va fi susținută de toate sistemele de operare în viitor.

Un efect secundar al multor arhitecturi multitasking este că permit deseori proceselor să ruleze pe procesoare fizice diferite, caz în care procesul este cunoscut sub numele de multiprocesare . Un procesor low-cost, proiectat în acest sens, ar fi permis creșterea vitezei de calcul a unei mașini prin adăugarea altor procesoare similare, o alegere potențial mult mai ieftină decât una bazată pe un procesor unic și mai puternic.

Proiecta

Transputerul ( Trans istor Com puter ) a fost primul microprocesor de uz general conceput special pentru utilizarea în sisteme de calcul paralele. Scopul a fost de a produce o familie de cipuri, limitate în cost și putere, care ar putea fi apoi conectate împreună pentru a forma un computer complet. Numele a fost ales pentru a indica rolul pe care îl va juca Transputerul unic: multe dintre ele vor fi folosite ca „blocuri de construcție”, la fel cum au fost anterior tranzistoarele.

Inițial, planul era ca Transputer să coste doar câțiva dolari pe unitate. INMOS le-a văzut folosite pentru aproape orice (operațiuni tipice ale procesorului pentru computer și funcții ale controlerului de canal pentru unitățile de disc din aceeași mașină). Ciclurile neutilizate de pe fiecare dintre aceste transmițătoare ar fi putut fi utilizate pentru alte sarcini, crescând foarte mult performanța generală a mașinilor.

Chiar și un singur Transputer ar fi avut toate circuitele necesare pentru a funcționa singur, o caracteristică cel mai frecvent asociată cu microcontrolerele . Ideea, în acest caz, a fost să permită transmiterilor să fie conectate împreună cât mai ușor posibil, fără a fi nevoie de o magistrală complexă (sau placă de bază ). Dimpotrivă, a fost suficient să alimentați pur și simplu un semnal de ceas , fără a fi nevoie chiar de memorie RAM , controler RAM, suport din autobuz sau chiar un RTOS , toate acestea fiind deja incluse.

linkuri externe

Proiectarea de bază a Transputerului a inclus legături seriale care i-au permis să comunice cu alte transmițătoare (până la patru), fiecare la 5, 10 sau 20 Mbit / s, o viteză foarte mare pentru acei ani. Fiecare grup de transputer ar putea fi conectat împreună cu alții pe legături chiar mai lungi (zeci de metri) pentru a forma o singură „ fermă de calcul ”. O mașină de birou tipică ar putea avea două transmițătoare „low end” care controlează sarcinile I / O cu unele dintre liniile sale seriale (conectate la hardware-ul corespunzător) în timp ce vorbesc cu unul dintre „frații lor mari” care rulează ca CPU pe altul. Transmițătoarele ar putea fi inițializate prin legături de rețea (spre deosebire de memoria din multe mașini), astfel încât un singur Transputer să poată rula întreaga rețea.

Au existat limite la dimensiunea unui sistem care ar putea fi creat în acest fel. Deoarece fiecare Transputer a fost conectat la altul într-un model fix punct-la-punct, trimiterea mesajelor către un Transputer mai îndepărtat a necesitat ca acesta să fie redirecționat de fiecare cip de pe linie. Acest lucru a introdus o întârziere pentru fiecare „hop”, ducând la întârzieri mari în rețelele mari. Pentru a rezolva această problemă, INMOS a furnizat, de asemenea, un comutator cu întârziere zero care a conectat până la 32 de computere (sau comutatoare) în rețele și mai mari.

Programator

Susținerea legăturilor a fost o bucată suplimentară de circuite care se ocupa de ordinea traficului care le trecea. Procesele care așteaptă comunicarea au fost întrerupte automat pe măsură ce circuitul de rețea și-a terminat citirile sau scrierile. Timpul de procesare ar fi acordat altor procese, iar acesta a inclus două niveluri de prioritate pentru a evita blocajele . Același sistem logic a fost folosit pentru a comunica între programele care rulează pe același Transputer, implementat ca o „rețea virtuală” în memorie. Apoi, un program care solicita intrare sau ieșire a fost întrerupt automat în timp ce operațiunea a fost finalizată, o sarcină care în mod normal a cerut sistemului de operare să acționeze ca arbitru pentru hardware. Sistemele de operare de pe transputer nu trebuiau să se ocupe de programare : în practică se putea crede că cipul în sine avea un sistem de operare în interior.

Pentru a include toate aceste caracteristici pe un singur cip, nucleul Transputer a fost mult mai simplu decât majoritatea procesoarelor : a folosit o arhitectură RISC, dar spre deosebire de procesatoarele RISC mai obișnuite bazate pe utilizarea intensă a registrelor, transputerul a folosit mult stiva . Acest lucru a făcut posibilă executarea rapidă a comutatorului de context pur și simplu prin mutarea indicatorului stivei în partea de memorie atribuită unui alt program (o tehnică utilizată de multe sisteme contemporane). Transputerul a inclus și trei registre „normale”, dar acestea au fost de fapt copii ale primelor trei celule ale stivei, utilizate pentru a permite instrucțiuni cu adresă zero.

Set de instructiuni

Setul de instrucțiuni Transputer consta din instrucțiuni pe 8 biți împărțite în două ciocănituri . Cea superioară conținea codificarea instrucțiunilor, făcându-l un adevărat RISC cu doar 16 instrucțiuni de bază, cea inferioară conținea o constantă sau mai frecvent un offset în raport cu indicatorul stivei. Ar putea fi folosite constante și compensări mai lungi, dar au necesitat octeți de adresă suplimentari la preluare și decodare. În plus, instrucțiunile utilizate mai puțin frecvent au fost acceptate prin codificarea instrucțiunilor numită Operate (Opr), care a decodat constanta datelor ca un cod de operație extins, oferind extinderea ușoară și aproape infinită a setului de instrucțiuni, introdusă cu o nouă implementare Transputer. Procesele cu contexte mai mici au funcționat mai repede, dar întreaga idee a Transputerului era încă să ruleze multe procese mici.

Programare la nivel înalt

Pentru programarea transputerului, INMOS a proiectat un limbaj special, inspirat de paradigma comunicării prin transmiterea mesajelor CSP (Communicating Sequential Processes) concepute de britanicul CAR Hoare și numit Occam . De fapt, este mai corect să spunem că Transputer a fost conceput special pentru a rula codul Occam, în timp ce majoritatea procesoarelor CISC ale vremii și ulterior nu au fost proiectate (cu excepția proiectelor precum iAPX 432 Intel ) execută direct codul în Pascal , C sau Ada . Occam a sprijinit dezvoltarea de aplicații împărțite în mai multe procese și adesea simpla scriere a unui program în Occam a dus la o aplicație de acest tip. Cu suport pentru sarcini și comunicații integrate în cip și limbajul de programare care interacționează direct cu acesta, scrierea codului pentru lucruri precum controlul unui controler de dispozitiv a devenit o chestiune trivială: chiar și cel mai simplu cod ar putea controla porturile seriale pentru I / O și ar fi automat pauză în absența datelor.

Implementări

Primele modele transputer au fost anunțate în 1983 și comercializate în anul 1984 / de 5 . În concordanță cu rolul lor de dispozitiv asemănător unui microcontroler , au inclus 2kB de RAM și un controler RAM integrat, care a permis adăugarea de memorie fără alt hardware. Spre deosebire de alte arhitecturi, Transputere au inclus o MMU , deși într-un sistem bazat pe stivă acest lucru nu este foarte important, deoarece adresele sunt aproape întotdeauna compensate și nu necesită modificări complexe.

16 biți

Prototipul pe 16 biți al transputerului a fost S43 , fără programator și fără transferul de blocuri pe legăturile de pe DMA . La lansare, T212 și M212 (echipate cu un controler de disc) erau oferte pe 16 biți.

32 de biți

La momentul lansării, oferta pe 32 de biți consta în T414 . RAM a fost ulterior actualizat la 4K în T424 , care a inclus și o instrucțiune JO trap pentru a ajuta la depanare .

Punctul de plutire

Următoarea versiune a fost T800 , în 1987 , care a inclus o unitate cu virgulă mobilă pe 64 de biți și trei registre dedicate acestui tip de calcul. În plus, memoria RAM a fost mărită la 4k. Multe generații noi de procesoare, cunoscute sub numele de familii T-2, T-4 și T-8, au fost lansate în următorii câțiva ani pentru a îmbunătăți programarea și depanarea. Comutatorul C004 32-link a fost, de asemenea, adăugat la linia de produse.

Competiție

În timp ce Transputerul era simplu, dar puternic în comparație cu multe arhitecturi contemporane, nu s-a apropiat niciodată de obiectivul său de a fi utilizat universal atât ca procesor, cât și ca microcontroler. Al doilea câmp a fost dominat de mașini pe 8 biți, iar costul a fost singurul parametru luat în considerare. T-2 a fost, de asemenea, prea puternic și scump pentru majoritatea utilizatorilor. Lipsa suportului Transputer pentru memoria virtuală a împiedicat portarea variantelor majore ale sistemului de operare Unix (deși au fost produse variante precum Minix și Idris ale Whitesmiths ).

În câmpul desktop / stație de lucru , Transputerul era destul de rapid, funcționând la aproximativ 10 MIPS la 20 MHz, o performanță excelentă la începutul anilor 1980, dar până când T800, echipat cu FPU , a fost vândut, celelalte arhitecturi RISC pe care le aveau a trecut deja de el. Acest lucru ar fi putut fi atenuat de capacitatea de a construi mașini cu mai multe transmițătoare, dar T800 a costat în jur de 400 USD pe bucată când a fost lansat, astfel încât raportul preț / putere a fost dezavantajos.

T9000

INMOS a căutat să-și îmbunătățească linia de produse odată cu introducerea T9000 . T9000 avea multe caracteristici comune cu T800, dar a implementat unele inovații și a adăugat caracteristici pentru a sprijini supracalaritatea . Spre deosebire de modelele anterioare, T9000 avea un adevărat cache de 16kB de mare viteză în loc de RAM; a permis, de asemenea, ca aceasta să fie folosită ca memorie și a inclus funcționalități în stil MMU pentru a controla acest lucru (cunoscut sub numele de PMI ). Pentru a crește în continuare viteza, T9000 a mutat primele 32 de locații ale stivei în cache, spre deosebire de cele trei versiuni anterioare.

T9000 a folosit o conductă în cinci etape pentru a crește viteza. O adăugare interesantă a fost gruparea care a colectat instrucțiunile de ieșire din cache și le-a grupat în pachete mai mari, de 4 octeți, pentru a alimenta conducta mai repede. Grupurile au fost apoi completate într-un singur ciclu, ca și cum ar fi o singură instrucțiune mai mare pe un procesor mai rapid.

Cu toate acestea, INMOS nu a avut fondurile necesare pentru a continua dezvoltarea pe această cale, deoarece nu a reușit anterior să cucerească cote de piață semnificative și, prin urmare, din venituri. De aici inevitabila criză de lichiditate din cauza căreia compania a fost în cele din urmă vândută către SGS-Thomson (acum ST Microelectronics ) care a eliminat T9000 și a produs arhitectura 212/414 pentru liniile de microcontrolere precum familiile ST10 și ST20 , care acum nu mai sunt în producție , deși părți ale acestei tehnologii sunt incluse în chipset-uri pentru aplicații speciale (de exemplu, GPS , camere și decodoare pentru televizoare digitale).

În mod ironic, în mare parte datorită paralelismului, arhitecturile convenționale ale procesorului au devenit mai rapide. În loc să utilizeze un sistem explicit și greu, cum ar fi Transputerul, procesoarele moderne funcționează în paralel doar la nivelul instrucțiunilor, împărțind codul într-un număr fix de nuclee. Această formă de paralelism, cunoscută sub numele de suprascalitate, este de fapt mult mai potrivită pentru calculul cu scop general, deoarece nu necesită programare paralelă specifică, iar programele clasice bazate pe algoritmi secvențiali pot fi compilate și executate direct.

Bibliografie

Elemente conexe

Alte proiecte

Controlul autorității LCCN (EN) sh89002015 · GND (DE) 4207653-5
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT