SE451219B - Dataanordning fremst avsedd for exekvering av program i form av soktred, s k or parallel execution - Google Patents
Dataanordning fremst avsedd for exekvering av program i form av soktred, s k or parallel executionInfo
- Publication number
- SE451219B SE451219B SE8601018A SE8601018A SE451219B SE 451219 B SE451219 B SE 451219B SE 8601018 A SE8601018 A SE 8601018A SE 8601018 A SE8601018 A SE 8601018A SE 451219 B SE451219 B SE 451219B
- Authority
- SE
- Sweden
- Prior art keywords
- processor
- network
- memory modules
- processors
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17375—One dimensional, e.g. linear array, ring
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Communication Control (AREA)
- Devices For Executing Special Programs (AREA)
Description
451 219 - figur Å visar en datoranordning enl. figur 2 i ett förenklat blockschema, - figur S visar en del av datoranordningen i figur Å mera i detaU, - figur 6 schematiskt visar den fysiska uppbyggnaden av ett nätverk enl. figur 5 i detalj, - figur 7 visar datoranordningen enl. en modifierad utföringsform, - figur 8 visar en detalj av ett processorelement (FEM) i figur 7 - figur 9 visar den fysiska uppbyggnaden av en nätverkskrets enl. figur 7 i detalj.
Datoranordningen enl. figur l visar sexton processorer eller s.k. processing elements (PE). Vidare förefïnns ett data nätverk, betecknat "data network", och ett styrnätverk för styrning av de olika datorerna PE, betecknat "control network".
Varje processor PE är försedd med ett eget lokalt minne, vilket innefattar en kopia av progamkoden, och övriga informationer vilka är nödvändiga för att exekvera programmet. Nämnda styrnätverk är avsett att sända signaler runt i pilarnas riktning för att därigenom ange varje processors PE arbetsstatus.
För det fall en första processor PE är ledig samtidigt som en andra processor PE har kommit till en delningspunkt i ett sökträd sänds en signal via styr- nätverket vilken styr den första processorn att starta exekvering av en av grenarna efter delningspunkten. När så skall ske utnyttjas nämnda datanät- verk för att kopiera all nödvändig information och alla data, d.v.s. nämnda environment, från den andra processorns minne till den första processorns minne. Därefter exekverar de två processorerna var sin gren i sökträdet.
Detta förfarande upprepas därefter när någon processor kommer till en del- ningspunkt. Vidare friställs givetvis processorer som har exekverat en gren färdigt, för att kunna börja exekvera en annan gren.
Att överföra aktuell environment från en processor till en annan processor i syfte att uppdatera denna så att en delning av arbetet kan ske mellan två processorer tar emellertid ofta oacceptabelt lång tid.
Detta är den huvudsakliga begränsningen på exekveringstiden för ett program av ovan nämnt slag. Förutom att det tar tid att kopiera aktuell environment från en processor till en annawprocessor är ju dessa två processorer dess- utom icke aktiva i exekveringen under den för kopieringen ianspråktagna tiden. m. t: 451 219 Föreliggande uppfinning löser helt det ovan angivna problemet och erbjuder en dataanordning vilken utgör en mycket snabb s.k. “OR parallel interference machine" med vilken samtliga fördelar med sekventiell exekvering bibehålles samtidigt som tiden för att uppdela exekveringsarbetet på tvâ eller flera datorer minimeras.
Föreliggande uppfinning hänför sig således till en datoranordning främst av- sedd för exekvering av program vars exekvering kan beskrivas i form av s.k. sökträd, såsom s.k. OR Parallel execution, innefattande ett flertal datorer eller processorer och minnen, och utmärkes av att var och en av processor- erna är anslutbara till minnesmoduler via ett nätverk, vilket nätverk är anordnat att kunna ansluta varje processor samtidigt till en för resp. pro- cessor avdelad grupp av minnesmodulers skrivingâng i syfte att ifrågavarande processor samtidigt skall kunna skriva in information i den anslutna gruppen av minnesmoduler, och anordnat att kunna ansluta nämnda processor till endast en i nämnda grupp förefintlig minnesmoduls läsutgång samt av att ett styr- organ förefinns anordnat att avkänna processorernas och minnesmodulernas arbetsstatus, vilket styrorgan är anordnat att vid ett förutbestämt till- fälle, såsom när en första processor kommer till en delningspunkt i nämnda sökträd i det program som exekveras, styra nämnda nätverk att dels ansluta en andra processor som icke exekverar till läsutgången och skrivingângen hos en av de minnesmoduler till vilken skrivingâng den första processorn varit ansluten, och således inmatat data vid exekveringen fram tilldelnings- punkten,delsföreträdesfisansluta denandra processorn till åtminstone ytterligare en av sistnämnda minnesmodulers skrivingâng förutsatt att två minnesmoduler finns tillgängliga, för att i dessa inskriva data under den andra processorns därpå följande exekvering.
Ovan har nämnts datorer eller processorer. Härmed menas med datorer processorer försedda med allehanda typer av minnen och vilka datorer kan innehålla flera processorenheter. Med processorer menas en enklare form av datorer såsom endast processenheter i form av CPU-enheter.
I figur 2 åskådliggöres en datoranordning enl. uppfinningen enl. en första utföringsform medelst ett blockschema.Anordningen innefattar ett antal pro- cessorer betecknade PEI, PE2, PE3....., PEn, vilka är anslutna till ett antal minnesmoduler betecknade MMl, MM2, MM3, MMÅ, ...... MMm. Företrädes- vis är antalet minnesmoduler större än antalet processorer. 451 219 Varje processor PE innefattar ett lokalt minne vilket innehåller en kopia av aktuell programkod och en interpretator. För det fall koden är en kompilerad kod förefinns ingen interpretator. Processorerna kan vara uppbyggda av vilken Ä som helst lämpligikänd CPU-enhet, exempelvis Motorola MC 68000. Även minnesmodulerna MM kan vara av vilket som helst lämpligt känt slag, exempelvis ett RAM-minne om 6üK.
Vidare förefinns ett första nätverk 1 betecknat "Group Broadcasting network" GBN.Processorerna PE är anslutna till minnesmodulerna MM via nätverket GBN.
Nätverket GEN är enl. uppfinningen anordnat att kunna ansluta varje processor PE samtidigt till en grupp av minnesmoduler där anslutningen sker till varje minnesmoduls skrivingâng W. Syftet härmed är att en processor PE som är an- sluten till en grupp av minnesmoduler MM samtidigt skall skriva in information i var och en av minnesmodulerna MM i gruppen.
Vidare är det första nätverket 1 (GBN) anordnat att kunna ansluta varje pro- cessor PE till läsutgången R hos endast en minnesmodul MM i nämnda grupp.
Nätverket l (GBN) är således anordnat att koppla exempelvis PE! till en skriv- ingång W hos en grupp minnesmoduler MM1, MM2, MM3 och samtidigt koppla PE1 endast till minnesmodulens MM1 läsuügång R.
Vidare är nätverket 1 (GBN) anordnat att styras medelst ett styrorgan 2 be- tecknat "Pools Manager" PM till att utföra inkoppling av vilken som helst processor PE till vilket eller vilka som helst av minnesmodulerna MM.
Styrorganet 2 (PM) består av en dator eller processor anordnad att styra en pool av processorer (PEl-PEn) och en poólav minnesmoduler (MMI-MMm) och är därvid anordnad att dels styra det första nätverket l (GBN) att utföra olika sammankopplingar mellan processorer PE och minnesmoduler MM, dels att starta och stoppa de olika processorerna PE samt dels avkänna de olika processorernas PE arbetsstatus.
Styrorganet PM kan istället för att vara en särskild processor utgöras av en eller flera av processorerna PE.
Enl. uppfinningen innefattar således nämnda styrorgan antingen en särskild processor 2 eller alternativt en eller flera av processorerna PE. Styr- organet är oavsett utförande anslutet till var och en av processorerna PE antingen direkt eller indirekt, samt anslutet till var och en av minnes- modulerna och till styringångar hos nämnda nätverk. uiiiiiiirv ”l 2” Enl. uppfinningen är vidare styrorganet 2 (PM) anordnat att när en första processor PE avger en signal till styrorganet 2 att processorn kommit till en delningspunkt vid exekvering av ett program i form av ett sökträd, starta en andra processor som icke exekverar, vilken andra processor därvid är anord- nad att dels anslutas, via nämnda nätverk l (GBN), till läsumgången R hos endast en av de minnesmoduler MM i vilken den första processorn inmatat data vid dess exekvering fram till nämnda delnlngspunktghls attenl. en föredagen utfö- rings ñnn ,vi a nätverket l (GBN) anslutas till 'àninstoneefi ytterliga-eav sistriânncla minnesmodulers MM 'skrivingängarld för att i dessa mi nnesmoduler inskriva data uder den Följ ande exekveri ngen .
Vid varje uppkoppling av olika processorer med olika minnesmoduler via nät- verket avger styrorganet 2 styrsignaler till nätverket vilket därvid effekt- uerar uppkopplingen.
En förutsättning är dock att minst tvâ minnesmoduler förefinns som varit an- slutna till den första processorn fram till delningspunkten och som kan av- varas till den andra processorn.
Enligt en utföringsform förefinns också ett andra nätverk1,3 betecknau;' "lnterprocessor network" IN vilket är anslutet till var och en av processor- erna PE och vilket är anordnat att utgöra en kommunikationskanal mellan de olika processorerna. Genom detta nätverk kan två eller flera processorer PE synkronisera varandra att starta eller stoppa en exekvering.
.Vidare förefinns enl. en ytterligare utföringsform ett ytterligare minne H betecknat "Global Memory" GM vilket är anslutet till var och en av processor- erna PE. Detta minne Ä är anordnat att lagra information om vilka processorer PE som exekverar och de lösningar som de olika processorerna finner vid exekveringen. Om exempelvis ett visst antal lösningar erfordras från ett arbete som fördelats mellan olika processorer, lagras i minnet GM vilka processorer, som exekverar. Vidare lagras erhållna respektive lösningar tillsammans med vilken av processorerna som avgav respektive lösning till minnet H (GM). Näridet erforderliga antalet lösningar uppnåtts kan exempel- vis pool manager sända en signal till de processorer PE som fortfarande exekverar att stoppa. När så sker avger den eller de processorer som stoppat en signal till styrorganet 2 (PM) att ifråga- varande processor åter är tillgänglig för att exekvera en annan del av programmet. 451 219 Genom minnet (GM) sker således en synkronisering och effektivisering av exekveringen. Emellertid behövs inte vare sig det andra nätverket 3 (IN) eller minnet Ä (GM) i föreliggande uppfinnings enklaste utförande. Minnet ß kan vidare tillsammans med styrorganet 2 utgöra en integrerad enhet.
Minnet GM behöver inte vara en separat enhet, utan kan istället utgöras av en eller flera av minnesmodulerna eller alternativt ett eller flera av pro- cessorernas lokala minne. l ett utförande tillgår en exekvering av ett program vars exekver- ing kan beskrivas i form av ett sökträd på följande principiella sätt.
Styrorganet 2 PM avger en styrsignal till en processor PE1 att starta exekver- ing. Procesorn PEl är därvid anordnad att via det första nätverket 1 (GBNl ansluta sig till exempelvis samtliga .minnesmodulersMM skrivingång W men endast till en minnesmoduls MMI läsutgâng R. När PE1 kommer till en delningspunkt sänder PE] en signal till styrorganet 2 (PM) om att så är fallet. Styrorganet 2 (PM) utser därvid en ledig processor PE2 till vilken styrorganet 2 sänder en signal att PE2 dels skall anslutas till exempelvis hälften av minnes- modulernas MM skrivingång W, dock ej till den minnesmodul MM1 vars läsutgång R är ansluten till PEl, dels skall anslutas till lästugången R hos en av de minnesmoduler som anslutes till PE2. Vidare sänder styrorganet 2 en signal till PE1 att avbryta förbindelsen till de minnesmoduler som skall anslutas till PE2. Eftersom PEl skrivit in information och data i de minnesmoduler som därvid anslutits till PE2 finns delningspunktens s.k. environment direkt tillgängligt för PE2, som därför direkt kan börja exekvera en gren efter del- ningspunkten medan PE1 exekverar den andra grenen efter delningspunkten. En dylik uppdelning av exekveringsarbetet kan ske vid varje delningspunkt, var- vid succesivt fler och fler processorer PE inkopplas.
Om en processor PE är vid en delningspunkt och denna tidigare anslutits till endast en minnesmodul, på grund av att alla minnesmoduler utom en varit upp- tagna, är styrorganet 2 anordnat att ansluta eventuella lediga minnesmoduler till sistnämnda processor PE, varvid en kopiering på känt sätt av information och data bringas ske från den minnesmodul som innehåller delningspunktens environment till de nyss anslutna minnesmodulerna. Därefter utföres en del- ning av exekveringsarbetet så snart en processor finns tillgänglig vilken därvid ansluts till läsutgângen på en av de minnesmoduler i vilken delningsp 451 219 punktens environment kopierats. Detta förhållande uppträder emellertid bara då en processor endast har tillgång till en minnesmodul under exekvering och kommer till en delnlngspunkt.
När en processor har exekverat en gren färdigt avger den en signal till styr- organet 2, och i förekommande fall till minnet Å (GH), varvid styrorganet 2 avger en signal till processorn att återlämna de anslutna minnesmodulerna till poolen av minnesmoduler. Även processorn ingår därefter i poolen av process: OFGF.
Eftersom varje processor skriver in i en grupp av minnesmoduler men endast läser från en minnesmodul under exekveringen, måste den inbördes ordningen av läs- och skrivoperationer bevaras. Om så inte är fallet kan ogiltiga data läsas från en minnesmodul. Skrivoperationerna kan givetvis tillåtas att vara fördröjda till alla minnesmoduler utom till den från vilken den aktuella pro- cessorn läser.
Vidare är styrorganet 2 anordnat att för det fall en processor är ansluten till flera minnesmoduler samtidigt som endast en minnesmodul finns tillgänglig för en processor som skall börja exekvera, bortkoppla en eller flera minnes- moduler från förstnämnda processor och ansluta den.t¶ll sistnämnda processor.
Av det hittills sagdaär det helt uppenbart att föreliggande datoranordning är synnerligen lämpad för exekvering av sökträdsprogram där ett antal pro- cessorer samtidigt är i arbete utmed olika grenar, samtidigt som kopiering av en delningspunkts environment helt eller ihuvudsak helt eliminerats.
Att kopiering undvikes medför en dramatiskt kortare tid för att exekvera ett program.
Detta har, som ovan nämnts, möjliggjorts enl. uppfinningen genom att dator- anordningen är så beskaffad att en processor anslutes till tvâ eller flera minnesmodulers skrivingång men anslutes endast till en av dessa minnesmodulers läsutgång.
Ett ytterligare problem vid datoranordningar av här avsett slag är att läs- operationer ur ett minne, såsom en minnesmodul normalt tar relativt sett lång tid på grund av komplexa kopplingar mellan minnesmodul och processor.
Om antalet processorer och minnesmoduler är litet, exempelvis omkring 10 st, kan dock nämnda tid göras tillfredsställande kort. Emellertid är vid anord- ningar med betydligt flera processorer och minnesmoduler, exempelvis 100 st, nämnda tid otillfredsställande lång. 451 219 .___._.___..-___......
Enligt en andra utföringsform av föreliggande uppfinning minskas denna tid avsevärt. Denna utföringsform illustreras i figur 3.
Enligt denna utföringsform innefattar datoranordningen ett antal sammanslutna enheter s.k. clusters. Varje cluster innefattar ett antal processorer PE och ett antal minnesmoduler MM, där processorerna och minnesmodulerna är anslutna till ett tredje nätverk 5,6,7 (Switching network) Sw , av nämnt slag, för varje cluster. Antalet processorer PE och minnesmoduler MM i varje cluster skall vara relativt litet så att accesstiden inom varje sådan processenhet är kort med rimlig komplexitet hos nätverket S,6,7. Företrädesvis är antalet mlnnesmoduler större än antalet processorer. Nätverket 5,6,7 (SW) motsvarar nämnda första nätverket 1 (GBN) i figur 2 och är således anordnat att kunna ansluta varje processor PE till skrivingången hos två eller flera minnes- moduler i samma cluster och anordnat att ansluta processorn endast till en av dessa minnesmodulers läsingång.
Vidare är varje nätverk 5,6,7 (Sw) enl. denna utföringsform anordnat att styraett yüerlmare, fiärde,ganensamt nätverk 8 betecknat "lntercluster switching network" (ISM) att sammankoppla ett cluaersnätverk 5,6,7 till ett annat clusters nätverk S,6,7, för att därigenom utnyttja i andra cluster lediga minnes- moduler MM för det fall det inte existerar lediga minnesmoduler i den egna clustern.
Enligt en föredragen utföringsform är det gemensamma nätverket 8 och nät- verket 5,6,7 inom varje cluster anordnade att kunna förbinda en processor inom ett cluster med skrivingången hos en eller flera minnesmoduler i andra cluster.
Vidare förefinns ett femte nätverk 9 betecknat "lnterprocessor network" (IN), vilket helt motsvarar det i samband med figur 2 beskrivna andra nätverket 3 (IN). Dessutom finns analogt med den i figur 2 visade datoranordningen ett styrorgan 10 betecknat "Fools Manager" (PM) och ett minne ll betecknat "Global Memory" (GM). Styrorganets 10 funktion motsvarar den som beskrivits ovan i samband med styrorganet 2 i figur 2. Styrorganet 10 lagrar dessutom vilka processorer PE och vilka minnesmoduler MM som tillhör varje cluster. På samma sätt som ovan beskrivits lagrar styrorganet 10 även information om vilka minnesmoduler som är anslutna till vilka processorer och vilka environ- ments som förefinns i var och en av minnesmodulerna. Styrorganet 10 är 451 219 anordnat att kunna styra processorerna och nätverken så att en förän pro- cessor ietx första cluster kan dela exekveringsarbetet vid en del- ningspunkt med en andra processor i ettandra cluster förutsatt att den sist- nämnda cluster innefattar en mínnesmodul i vilken den första processorn in- skrivit information och data under dess exekvering fram till delningspunkten, d.v.s. delningspunktens environment.
För det fall ingen minnesmodul finns tillgänglig som har aktuell environment, måste dock kopiering ske på känt sätt från den minnesmodul som har aktuell environment till en ledig minnesmodul. En instruktion om att kopiering skall ske anges därvid från styrorganet 10 som beordrar kopiering från en viss minnesmodul till andra mlnnesmoduler. För det fail de andra minnesmodulerna är belägna inom samma cluster sker kopiering via nätverket S,6,7 (Sw) inom ett cluster. För det fall deiandra minnesmodulerna finns i andra cluster sker kopiering via inblandade processenheters nätverk 5,6,7 (SW) och nämnda fjärde nätverk 8 (ISN). För att inte erhålla långa accesstider inom en datoranordning enl. figur 3 börinteantalet processorer och minnesmoduler irnmett cluster vara för stort.
I varje cluster är de olika processorerna och minnesmodulerna belägna mycket nära varandra i syfte att nedbringa signalvägarna inom ett cluster.
Det särskilt fördelaktiga med utföringsformen enl. figur 3 är att skrivopera~ tioner från ett cluster till ett annat cluster via nämnda nätverk 5,6,7,8 (ISN och SW) kan tillåtas ta relativt sett lång tid, såsom exempelvis ett antal hundra mikrosekunder. Det är därvid dock väsentligt att skrivoperation- erna bibehålles i rätt tidsordning. Den relativt långa tiden för skrivopera- tionerna påverkar inte exekveringstiden eftersom en processor l en process- enhet alltid läser från en minnesmodul i samma processenhet.
Ovan nämnda nätverk l,3,5,6,7,8,9, d.v.s. såväl nämnda "Group broadcasting network” (GBN) som nämnda "lnterprocessor network" (IN) och "lntercluster switching network” (ISN) samt nämnda "Switching network" (SW) kan utföras på olika sätt medelst känd teknik. Sålunda kan exempelvis ett s.k. shuffle- exchange network, en s.k. höghastighets-bus av ex.vis optisk typ, en s.k.
Multi-Processor-Bus av typen VME eller en s.k. crossbar connection användas för nämnda nätverk. Vidare är det givetvis möjligt att utnyttja traditionella punkt till punktanslutningar då antalet processorer och minnesmoduler är litet. 451 219 io ' f Det väsentliga än att det första nätverket 1 (GBN) kan ihopkoppla samtliga processorer med vilken eller vilka som helst av minnesmodulerna. Det mot- Swaænde gäller för nämnda tredje nätverk 5,6,7 vad avser processorerna och minnesmoduler-na inom ett Cluster. Vad gällêl' del”. afldfê nätverket 3 (IN) och det femte nätverket 9 är det väsentliga att dessa är utförda att tjäna som kommunikationskanalochstyrlenal mellan deolka DFOCGSSOFGfHG-Det väsentliga be- träffande det fjärde nätverket 8 (ISN) är att det är utfört att tjäna som kommunikationskanal mellan olika clusters interna nätverk 5,6,7 (SW).
Nedan beskrives kortfattat två andra utföringsformer där uppbyggnaden av nätverk som uppkopplar olika processorer med eller olika minnesmoduler med varandra är angivna mera i detalj.
I figur Ä visas en datoranordning ihuvudsak enl. figur 2 i ett förenklat blockschema där åtta processorer PD-P7 och sexton minnesmoduler M0-M15 finns anslutna till ett nätverk 12, vilket är ett s.k. group Broadcasting network.
Nätverket 12 har två ut- och ingångar avsedda att anslutas till processorerna P0-P7 och ut- och ingångar avsedda att anslutas till minnesmodulerna M0-H15.
I figurS visasen del 13 av nätverket 12 i figur Å. Kretsen avser endast en bit, varför nätverket 12 består av 32 delar enl. figur 5 vid en 32-bitars adress/databus. Varje del innefattar en krets 13 (ICN-slice) för att ansluta en bit mellan olika processorer PE och minnesmoduler MM. Varje processor PE är ansluten till kretsen 13 via två terminaler, där en första lå, betecknad I/0, avser adress och data och där en andra 15, betecknad R/W avser styrning av om en läs (R)- eller skriv (w)- operation avses. En krets 13 visas i detalj i figur 6. Ut- och ingångarna I/0 betecknas med siffran lh i figur 6, medan siffran 15 betecknar styringångarna R/W.
Varje minnesmodul MM är likaledes ansluten till kretsen 13 med en skriv- ingång 16 betecknad Wr och en läsutgång 17 betecknad Rd.
Såsom konkreta komponenter i kretsen 13 kan följande s.k. TTL- kretsar användas. D.R. betecknar ett dataregister vilkei kan vara 74F37h. S.R. be- tecknar ett skiftregister vilket kan vara 7Åf299. SELECT betecknar en selektorkrets vilken kan vara 7ÅF251. Dessa kretsar tillverkas bl.a. av Fairchild Inc., USA. 451 219 ll ' f Vidare förefinns bufferkretser, eller drivkretsar, 18,19 betecknade Buffer och Bf, vilka ex.vis kan utgöras av TTL-kretsen 7HF2%# där drivkrets- arna 19 består av tvâ dylika komponenter.
Nämnda nätverk innefattar således en kopplingskrets där ett antal selektorer förefinns vilka via styringångar är styrda av styrorganet att uppkoppla olika processorer med olika minnesmodulers skrivingång resp. läsutgâng.
Vidare är kretsen försedd med ett antal skiftregister i vilka styrorganet är anordnat att seriellt inlagra ett antal databitar, vilka beskriver kretsens avsedda uppkoppling mellan olika processorer och olika minnes- moduler. Dessutom förefinns ett antal dataregister till vilka styrorganet är anordnat att styra överförandet av information från skiftregistren så att överförandet sker parallellt. Dataregistrens utgångar är anslutna till selektorerna som således verkställer nämnda uppkoppling. l figurerna 4 och 5 finns även en Pool Manager 20 angiven, vilken via en s.k. bus 21 är ansluten till varje processor PE och varje minnesmodul MM.
Via nämnda bus 21 är nämnda Pool Manager anordnad att styra processorerna PE att starta och stoppa. Vidare synkroniseras minnesmodulernas MM arbets- status via nämnda bus 21.
Nämnda Pool Manager 20 är ansluten till varje krets l3 via sex styringångar 22-27 där styringångarna 22-Zü utnyttjas vid uppkoppling av en förbindelse från processorerna PE till minnesmodulernas MM skrivingång (Wr) och där styringångarna 25-27 utnyttjas vid uppkoppling av en förbindelse från en minnesmoduls MM läsutgång (Rd) till en processor PE. Uppkopplingen av en krets 13 tillgår pâ följande sätt. Om exempelvis mínnesmodulens MM3 skriv- ingâng skall kopplas till processorn PEH laddas skiftregistren S;R seriellt genom att en bit uppsätts på ingången 22, vilken bit klockas in medelst en signal på ingången 23, varefter nästa bit uppsätts och inklockas o.s.v., till dess alla de fyrtïoâtta bitarna som beskriver kretsens 13 nämnda uppkoppling är inmatade. Denna information laddas därefter parallellt över från skift- registren S.R till dataregistren D.R. genom att påföra ingången 23 en signal. l det dataregister D.R. som motsvarar minnesmodulen MM3 återfinns nu siffran Ü i binärform,vilketmotsvararprocessor nr Å (PEH).Dataregßtrem D.R utgångar är kopplade till selektorernas (SELECT) íngångsväljare, varför ingång nr. Å på den selektor som motsvarar MM3 kopplas till utgången på denna selektor, 451 219 12 'vilken utgång är ansluten till MM3. Nämnda ingång nr Ö är ansluten till PEÅ. Uppkoppling av en läsutgång (Rd) från en minnesmodul till en processor (PE) tillgär på analogt sätt via styringångarna 25-27.
Genom att använda dataregisterr D.R kan en gjord uppkoppling bibehållas under det att en ny uppkoppling inmatas i kretsarnas skiftregister.
Siffran 28 betecknar inverteringskretsar av känt slag med vars hjälp två stycken "I av 8"-selektorer fås att fungera som en selektor av typen "l av 16".
En lämplig krets kan vara 7ÅFOü.
Nämnda Pool Manager 20 är således via nämnda styringângar 22-27 anordnad att styra vilka minnesmodulers MO~Hl5 skrivingång (Nr) som skall kopplas till vilka processorers P0-P7 och ur vilken minnesmodul som en viss processor skall läsa. Nätverket 12 är således anordnat att kunna ansluta en processor till en eller flera minnesmodulers skrivingång och anordnat att kunna an- sluta en processor till en minnesmoduls läsutgång.
Ovan har nämnts att antalet minnesmoduler företrädesvis är större än antalet processorer. Emellertid kan antalet vara detsamma. l figur 7 visas ett ut- förande innefattande sexton processorelement (PEM) vardera innefattande en processor och en minnesmodul. I figur 8 visas ett processorelement PEM i detaflfdär "CPU" betecknar processon129 och "Memory" betecknar minnes- modulen 30. Mellan processorn 29 och minnesmodulen 30 finns en lokal bus 31, vilken är ansluten till ett s.k. interface 32. Till nämnda interface 32 w är fyra skiftregister 33-36 anslutna, vilka i sin tur är anslutna till ett nätverk, vilket är anordnat att förbinda de olika processorelementen PEM med varandra via in- och utgångar 55-58 från varje skiftregister 33-36.
Nätverket innefattar fyra kretsar 38-ål betecknade “ICN-Slice”, av vilka en visas i detalj i figur 9. Till varje element PEM är dessutom en styr- slinga H2 kallad "PEM-Control-Bus" ansluten, vilken styrslinga är ansluten till en Pool Manager #3.
Nämnda Pool Manager ÄB är anordnad att via styrslingan ÄZ styra processor- elementens arbetsstatus såsom att stoppa och starta resp. processor 29. Styr- slingan #2 har samma funktion som nämnda bus 21 i figur H.
Var och en av kretsarna 38-41 innefattar komponenterna S.R., D.R., B.F., vilka exemplifieras ovan samt kretsen MPX, vilken är en selektorkrets som kan utgöras av TTL-kretsen 7kF25l.
Siffran 50 betecknar inverteringskretsar motsvarande de med siffran 28 be- 451 219 13 tecknade inverteringskretsarna i figur 6, vilka kretsar kan utgöras av 7äF0ü.
Var och en av kretsarna 38-41 är försedd med in- och utgångar Åü,b5 vilka är anslutna till elementen FEM såsom framgår av figur 7 och 9, d.v.s. med en respektive terminal till ett respektive processorelement PEM.
Var och en av kretsarna 38~ßl är försedd med styringångar #6-ÄB. Respektive styringång Å6;fi7;Å8 hos var och en av kretsarna 38-Ål är parallellkopplade med varandra och kopplade till nämnda Pool Manager 43. Genom dessa styr- ingångar H6-ÄB är Pool Manager #3 anordnad att styra aktuella uppkopplings- vägar och riktningar i beroende av om läs- och/eller skrivoperationer avses.
En ytterligare terminal 49 utgör en klockingång (pipe-line-clock) för en global klockningskrets, vilken kan innefattas i nämnda Pool Manager Ä3.
Dess funktion är att klocka data genom kretsen 38-Ål med hög frekvens, såsom 5 MHz - 20 MHz, s.k. pipe-lining.
Fördelen med detta utförande är att en anpassning av bandbredden hos nätverket kan ske till den maximala överföringshastigheten som ett processorelement PEMIGH åstadkomma vid kopiering från ett processorelement PEM till ett annat processor- element PEM, samtidigt som antalet anslutningsledningar blir väsentligt färre än i utförandet enl. figur H,5 och 6. Nätverket enl. figur 7 utgör således en Ä-bits s.k. ICN crossbar.
Anpassningen sker genom att använda flera eller ett färre antal kretsar 38-ål.
Om exempelvis den maximala överföringshasjgheten mellan två stycken PEM är ü0Mfit/sec och varje krets 38-41 har en bandbredd av 10 Mbit/sec erfordras så- ledes fyra kretsar 38-hi.
Den i figur 9 visade kretsen 38-Äi har samma principmëlla funktion som den ovan beskrivna kretsen 13, visad i figur 6. Kretsen 38-Ål utnyttjas emeller- tid för att uppkoppla olika processorelement PEM med varandra medan kretsarna 13 utnyttjas för att uppkoppla olika processorer PE med olika minnesmoduler MM.
I utförandet enl. figur 7 kan således en viss processor 29 i ett visst pro- cesšorelement PEM via nätverket 38-H1 vara uppkopplad till skrivingången hos en eller flera av andra processorelements PEM minne 30. Nämnda vissa processor 29 är därvid ansluten till både skrivingången och läsutgången hos dess lokala minne 30 i processorelementet PEM.
När uppkoppling skall ske mellan en processorenhet PEM med en annan pro- 451 219 ill f cessorenhet PEM laddas skiftregistren S.R. seriellt genom att en bit upp- sätts på ingången Å8 vilken bit klockas in genom en klockpuls på ingången #7. När de tio skiftregistren laddats med totalt 80 bitar överförs dessa parallellt tiikdataregistren D.R. genom en signal på ingång hö. Härvid konfigureras selektorerna MPX till att förbinda en av de sexton in- och ut- gångarna 4ß,ü5 med en av de femton återstående in- och utgångarna üü,åS, varvid en PEM förbinds med en annan PEM enl. den uppkoppling som beskrives av de inladdade 80 bitarna. Dataregistren 51,52 är anslutna till buffert- kretsarna Bf och styr dessa.ïBuFfertkresarna Bf kopplar utgångarna från dataregistren 53,Së till terminalerna hos in- och utgångarna ÄÄ,üS, och bestäm- mer därmed om nämnda terminal skall vara in- eller utgång.
Vad beträffar ovan nämnda tredje nätverk 5,6,7 (SW), se figur 3, kan detta utföras enl. de utföringsformer av nätverken som beskrivits i samband med figur 5,6 resp. 7,9. Även det nämnda fjärde nätverket 8, se figur 3, kan utföras på detta sätt.
Ovan har ett antal exempliefierande utföringsformer av uppfinningen beskri- vits. Det är dock tydligt att ytterligare utföringsformer är tänkbara.
Således skall föreliggande uppfinning inte anses begränsad till de ovan an- givna utföringsformerna utan uppfinningen kan varieras inom dess av bifogade patentkrav angivna ram. ff
Claims (8)
1. Datoranordning främst avsedd för exekvering av program vars exekver- ing kan beskrivas i form av s.k. sökträd, såsom s.k. OR Parallel execution, innefattande ett flertal datorer eller processorer och minnen, k ä n n e - t e c k n a d a v, att var och en av processorerna (PEl-PEn; PE; PEO-PE7; FEM) är anslutbara till minnesmoduler (HH1-Mfim; HM; MMO-MMl5;PEM), via ett nätverk (l;5-7,8;l2;38-hl), vilket nätverk är anordnat att kunna ansluta varje processor samtidigt till en för resp. processor avdelad grupp av minnesmodulers skrivingâng (W;Wn) i syfte att ifrågavarande processor sam- tidigt skall kunna skriva in information i den anslutna gruppen av minnes- moduler, och anordnat att kunna ansluta nämnda processor till endast en i nämnda grupp förefintlig minnesmoduls läsutgång (R;Rd) samt av att ett styrorgan (2;10;20;å3) förefinns anordnat att avkänna processorernas (PEl~PEn;PE;PEO-PE7;PEM) och minnesmodulernas (MM1-MMm;MM;MMO-MM15;PEM) arbetsstatus, vilket styrorgan (2;lO;20;Å3) är anordnat att vid ett förut- bestämt tillfälle, såsom när en första processor kommer till en delnings- punkt i nämnda sökträd i det program som exekverar, styra nämnda nätverk (1;5-7;8;l2;38-hl) att ansluta en andra processor som icke exekverar tillläsutgången (R;Rd) och skrivingången (W;Wr) hos en av de minnesmoduler till vilkens skrivingång den första processorn varit ansluten, och såkdes inmatat data vid exekveringen fram till delningspunkten.
2. Datoranordning enl. krav 1, k ä n n e t e c k n a d a v, att styr- organet (2;l0;20;Å3) är anordnat att styra nämnda nätverk (l;5'7,8;l2;38-ål) att ansluta den andra processorn till åtminstone ytterligare en av sistnämnda minnesmodulers skrivingång (W;Wr) förutsatt att två minnesmoduler finns till- gänngliga, för att l dessa inskriva data under den andra processorns därpå följande exekvering.
3. Datoranordning enl. krav 1 eller 2, k ä n n e t e c k n a d a v, att nämnda styrorgan innefattar en eller flera processorer (2;l0;20;ß3), vilket styrorgan är anslutet till var och en av nämnda processorer (PEl-PEn;PE; PEO-PE7;PEM) och var och en av nämnda minnesmoduler (HHI-MMm;MM;MMO-MHl5;PEM) och vilket styrorgan är anslutet till styringångar (22-27;h6-#8) hos nämnda nätverk. Å.
4. Datoranordning enl. krav 1, 2 eller 3, k ä n n e t e c k n a d a v, att ett antal separata processorer (PEl-PEn; PE;PEO-PE7) vardera innefattande ett lokalt minne avsett att innehålla en kopia av aktuell programkod och en 451 219 16 f eventuell interpretator förefinns och av att separata minnesmoduler (MMl-MMm;MM; MMO~MM15) förefinns företrädesvis i ett större antal än nämnda processorer, där processorerna och minnesmodulerna är anslutna till nämnda nätverk (l;S-8;l2).
5. Datoranordning enl. krav l, 2 eller 3, k ä n n e t e c k n a d a v, att ett antal processorelement (PEM) förefinns där vart och ett innefattar en processor (29) och en minnesmodul (30), vilka processorelement (PEM) är anslutna till nämnda nätverk (38-kl).
6. Datoranordning enl. krav I, 2, 3, Ä eller 5, k ä n n e t e c k n a d a v, att två eller flera s.k. cluster förefinns innefattande ett antal processorer(PE), ett antal minnesmoduler (MM), och ett nätverk (5'7) av nämnt slag, vilket nätverk (5-7) är anordnat att ansluta olika processorer (PE) och olika minnesmoduler (MM) inom ett cluster med varandra, av att nämnda cluster är förbundna med varandra via ett gemensamt nätverk (8) anslutet till det varje cluster tillhöriga nätverket (5-7), varvid det gemensamma nätverket (8) och nätverket (S-7) inom varje cluster är anordnade att kunna förbinda en processor (PE) inom ett cluster med skrivingången hos en eller flera minnesmoduler (MM) i andra cluster.
7. Datoranordning enl. krav l, 2, 3, Ä, S eller 6; k ä n n e t e c k n a d a v, att nämnda nätverk (l;5-8;12;38-hl) innefattar en kopplingskrets (l3; 38-hl) där ett antal selektorer (SELECT;MPX) förefinns vilka via nämnda styr- ingångar (22-27;Å6-#8) hos kretsen är styrda av nämnda styrorgan (2D;h3) att uppkoppla olika processorer (PEOÉ-PE7§PEM) med olika minnesmodulers (MMO-MH15; FEM) skrivingâng resp. läsutgång.
8. Datoranordning enl. krav 7, k ä n n e t e c k n a d a v, att kretsen (l3;38-Ål) är försedd med ett antal skiftregister (S.R) i vilka styr- organet (20;ü3) är anordnat att seriellt inlagra ett antal s.k. bitar som beskriver kretsens (l3;38-Ål) avsedda uppkoppling mellan olika processorer (PEO-PE7;PEH) och olika minnesmoduler (MMO-MM15;PEM) och försedd med ett antal dataregister (D.R) till vilka styrorganet är anordnat att styra överförande av information från skiftregistren (S.R.) så att överförandet sker parallellt, vilka dataregister (D.R.) är anslutna till nämnda selekto- rer (SELECT;MRK).
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE8601018A SE451219B (sv) | 1986-03-05 | 1986-03-05 | Dataanordning fremst avsedd for exekvering av program i form av soktred, s k or parallel execution |
US07/124,116 US4949243A (en) | 1986-03-05 | 1987-02-24 | Data processing system intended for the execution of programs in the form of search trees, so-called or parallel execution |
AT87901725T ATE60150T1 (de) | 1986-03-05 | 1987-02-24 | Datenbehandlungssystem zur durchfuehrung von programmen in form von suchbaeumen, sogenannter paralleller ausfuehrung. |
PCT/SE1987/000090 WO1987005418A1 (en) | 1986-03-05 | 1987-02-24 | Data processing system intended for the execution of programs in the form of search trees, so-called or parallel execution |
DE8787901725T DE3767464D1 (de) | 1986-03-05 | 1987-02-24 | Datenbehandlungssystem zur durchfuehrung von programmen in form von suchbaeumen, sogenannter paralleller ausfuehrung. |
EP87901725A EP0274476B1 (en) | 1986-03-05 | 1987-02-24 | Data processing system intended for the execution of programs in the form of search trees, so-called or parallel execution |
JP62501488A JPS63503015A (ja) | 1986-03-05 | 1987-02-24 | デ−タ処理コンピュ−タシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE8601018A SE451219B (sv) | 1986-03-05 | 1986-03-05 | Dataanordning fremst avsedd for exekvering av program i form av soktred, s k or parallel execution |
Publications (2)
Publication Number | Publication Date |
---|---|
SE8601018D0 SE8601018D0 (sv) | 1986-03-05 |
SE451219B true SE451219B (sv) | 1987-09-14 |
Family
ID=20363705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE8601018A SE451219B (sv) | 1986-03-05 | 1986-03-05 | Dataanordning fremst avsedd for exekvering av program i form av soktred, s k or parallel execution |
Country Status (7)
Country | Link |
---|---|
US (1) | US4949243A (sv) |
EP (1) | EP0274476B1 (sv) |
JP (1) | JPS63503015A (sv) |
AT (1) | ATE60150T1 (sv) |
DE (1) | DE3767464D1 (sv) |
SE (1) | SE451219B (sv) |
WO (1) | WO1987005418A1 (sv) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5088048A (en) * | 1988-06-10 | 1992-02-11 | Xerox Corporation | Massively parallel propositional reasoning |
US5136717A (en) * | 1988-11-23 | 1992-08-04 | Flavors Technology Inc. | Realtime systolic, multiple-instruction, single-data parallel computer system |
DE68928980T2 (de) * | 1989-11-17 | 1999-08-19 | Texas Instruments Inc. | Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern |
EP0509055A4 (en) * | 1990-01-05 | 1994-07-27 | Maspar Computer Corp | Parallel processor memory system |
US5537593A (en) * | 1990-02-12 | 1996-07-16 | Fmc Corporation | Method for solving enumerative search problems using message passing on parallel computers |
US5325500A (en) * | 1990-12-14 | 1994-06-28 | Xerox Corporation | Parallel processing units on a substrate, each including a column of memory |
US5379438A (en) * | 1990-12-14 | 1995-01-03 | Xerox Corporation | Transferring a processing unit's data between substrates in a parallel processor |
US5291611A (en) * | 1991-04-23 | 1994-03-01 | The United States Of America As Represented By The Secretary Of The Navy | Modular signal processing unit |
JP2766217B2 (ja) * | 1994-06-14 | 1998-06-18 | 甲府日本電気株式会社 | 並列処理装置 |
US5793660A (en) * | 1997-04-14 | 1998-08-11 | Hewlett-Packard Company | Circuit for finding m modulo n |
DE69720002T2 (de) * | 1997-12-11 | 2003-10-16 | Bull S.A., Louveciennes | Methode um Daten in einem Multiprozessorrechner über einen Crossbarschalter zu übertragen |
JP3742250B2 (ja) * | 1999-06-04 | 2006-02-01 | 富士通株式会社 | パケットデータ処理装置及びそれを用いたパケット中継装置 |
US7225320B2 (en) * | 2000-12-28 | 2007-05-29 | Koninklijke Philips Electronics N.V. | Control architecture for a high-throughput multi-processor channel decoding system |
US7174536B1 (en) * | 2001-02-12 | 2007-02-06 | Iowa State University Research Foundation, Inc. | Integrated interactive software visualization environment |
EP1883240B1 (en) * | 2005-05-18 | 2014-04-02 | Nippon Telegraph And Telephone Corporation | Distributed multi-media server system, multi-media information distribution method, program thereof, and recording medium |
EP1936515A1 (en) * | 2006-12-22 | 2008-06-25 | Telefonaktiebolaget LM Ericsson (publ) | Method and apparatus for generating a data vector |
EP2115629B1 (en) * | 2006-12-22 | 2014-06-18 | Telefonaktiebolaget LM Ericsson (publ) | Parallel processor |
US11669613B2 (en) | 2020-05-29 | 2023-06-06 | EnSoft Corp. | Method for analyzing and verifying software for safety and security |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4368514A (en) * | 1980-04-25 | 1983-01-11 | Timeplex, Inc. | Multi-processor system |
US4414624A (en) * | 1980-11-19 | 1983-11-08 | The United States Of America As Represented By The Secretary Of The Navy | Multiple-microcomputer processing |
DE3266636D1 (en) * | 1981-05-29 | 1985-11-07 | Gen Electric Co Plc | Telecommunications system |
US4691280A (en) * | 1982-06-28 | 1987-09-01 | The Singer Company | High performance multi-processor system |
JPS5941064A (ja) * | 1982-08-31 | 1984-03-07 | Nec Corp | プロログ処理装置 |
US4608631A (en) * | 1982-09-03 | 1986-08-26 | Sequoia Systems, Inc. | Modular computer system |
US4757442A (en) * | 1985-06-17 | 1988-07-12 | Nec Corporation | Re-synchronization system using common memory bus to transfer restart data from non-faulty processor to failed processor |
-
1986
- 1986-03-05 SE SE8601018A patent/SE451219B/sv not_active IP Right Cessation
-
1987
- 1987-02-24 JP JP62501488A patent/JPS63503015A/ja active Pending
- 1987-02-24 AT AT87901725T patent/ATE60150T1/de not_active IP Right Cessation
- 1987-02-24 WO PCT/SE1987/000090 patent/WO1987005418A1/en active IP Right Grant
- 1987-02-24 DE DE8787901725T patent/DE3767464D1/de not_active Expired - Fee Related
- 1987-02-24 US US07/124,116 patent/US4949243A/en not_active Expired - Fee Related
- 1987-02-24 EP EP87901725A patent/EP0274476B1/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
US4949243A (en) | 1990-08-14 |
EP0274476B1 (en) | 1991-01-16 |
SE8601018D0 (sv) | 1986-03-05 |
DE3767464D1 (de) | 1991-02-21 |
ATE60150T1 (de) | 1991-02-15 |
EP0274476A1 (en) | 1988-07-20 |
WO1987005418A1 (en) | 1987-09-11 |
JPS63503015A (ja) | 1988-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
SE451219B (sv) | Dataanordning fremst avsedd for exekvering av program i form av soktred, s k or parallel execution | |
JP2770603B2 (ja) | 並列計算機 | |
EP0141660B1 (en) | Microcomputer | |
EP0318221A2 (en) | Controlling responding by users of an intercommunications bus | |
US5970510A (en) | Distributed memory addressing system | |
US5056000A (en) | Synchronized parallel processing with shared memory | |
JP2577865B2 (ja) | ベクトル処理装置及びその制御方法 | |
US3337854A (en) | Multi-processor using the principle of time-sharing | |
CN112306946B (zh) | 一种多核处理器及其执行复杂计算的方法 | |
US6473821B1 (en) | Multiple processor interface, synchronization, and arbitration scheme using time multiplexed shared memory for real time systems | |
EP2132645A1 (en) | A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled | |
US5526487A (en) | System for multiprocessor communication | |
US4245299A (en) | System providing adaptive response in information requesting unit | |
US7254667B2 (en) | Data transfer between an external data source and a memory associated with a data processor | |
US7788466B2 (en) | Integrated circuit with a plurality of communicating digital signal processors | |
RU2547216C1 (ru) | Цифровая вычислительная машина | |
EP0293616A2 (en) | Dynamic switch with task allocation capability | |
CN109948785B (zh) | 一种高效的神经网络电路系统和方法 | |
JPH064401A (ja) | メモリアクセス回路 | |
EP1099159A1 (en) | Layered counterflow pipeline processor with anticipatory control | |
JP2705955B2 (ja) | 並列情報処理装置 | |
Verschueren et al. | Arbitration in a multi-processor to multi-coprocessor connection switch | |
JP2002175262A (ja) | 階層型バスシステム | |
JPS58178454A (ja) | メモリ制御方式 | |
JP2000067008A (ja) | マルチプロセッサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NAL | Patent in force |
Ref document number: 8601018-8 Format of ref document f/p: F |
|
NUG | Patent has lapsed |
Ref document number: 8601018-8 Format of ref document f/p: F |