CZ280210B6 - Paralelní procesorový systém - Google Patents
Paralelní procesorový systém Download PDFInfo
- Publication number
- CZ280210B6 CZ280210B6 CS913440A CS344091A CZ280210B6 CZ 280210 B6 CZ280210 B6 CZ 280210B6 CS 913440 A CS913440 A CS 913440A CS 344091 A CS344091 A CS 344091A CZ 280210 B6 CZ280210 B6 CZ 280210B6
- Authority
- CZ
- Czechia
- Prior art keywords
- picket
- processor
- memory
- data
- pickets
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
- G06F15/17343—Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/803—Three-dimensional arrays or hypercubes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02B—INTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
- F02B75/00—Other engines
- F02B75/02—Engines characterised by their cycles, e.g. six-stroke
- F02B2075/022—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
- F02B2075/027—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Nonlinear Science (AREA)
- Multi Processors (AREA)
- Exchange Systems With Centralized Control (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Processing (AREA)
- Hardware Redundancy (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Systém obsahuje množinu procesorových piketových jednotek. Každá procesorová piketová jednotka (100) obsahuje místní paměť (102), jejíž výstup je připojen ke vstupu B-registru (104), jehož výstup je připojen ke vstupu (B) bitového paralelního procesorového prvku (101), jehož výstup je připojen ke vstupu A-registru (105), jehož výstup je připojen ke vstupu Q-registru (106), jehož výstup je připojen ke vstupu (A) bitového paralelního procesorového prvku (101) a ke vstupu B-registru (104) a ke vstupu místní paměti (102).
ŕ
Description
Paralelní procesorový systém
Oblast techniky
Vynález se týká paralelního procesního systému obsahujícího množství piketových jednotek, kde každá piketová jednotka má bitový paralelní procesní prvek kombinovaný s místní paměti připojenou ke procesnímu prvku pro paralelní zpracování informace ve všech piketových jednotkách asociativním způsobem, kde každá piketová jednotka je uzpůsobena ke prováděni jednoho prvku asociačního procesu.
Dosavadní stav techniky
Související přihlášky vynálezu, podané přihlašovatelem předkládané přihlášky vynálezu, jsou tyto:
přihlašovatelé R. Jaffe Input/Output Scheme for a přihláška vynálezu Spojených států amerických ná 21. listopadu 1989, a spol,. název Method
Protection Operations in a Parallel
Přihláška vynálezu Spojených států amerických 07/250,595, podaná 27. září 1988, nyní opuštěna ve prospěch její pokračovací přihlášky sériového čísla 07/519,33^, podané 4. května 1990, přihlašovatel James L. Taylor, název SIMD Array Processor (tato přihláška vynálezu byla původně zveřejněna jako přihláška EPO sériového čísla 88307855/88-A 3. května 1989, přihláška vynálezu Spojených států amerických 07/193,990, podaná 13. května 1988, přihlašovatel H. Li, název Methods and Circuit for Implementing an Arbitrary Graph on a Polymorphic Mesh, přihláška vynálezu
24. října 1989, Two-d imens iona1 SIMD Compute rs 07/439,758, podapřihlašovatelé W. C. Dietrich, Jr. and Apparatus for Performing Memory Processor Systém.
Spojených států amerických 07/426,140, podaná a spol., název Massively Parallel
Patentový spis Spojených států amerických, vydaný 27. října 1970, autoři R. A. Stokes a spol., popisuje řadový počítač s paralelními procesory a jednou programovatelnou řídicí jednotkou, množstvím registrů pro uložení doplňkových vektorů, maskovacích registrů a prostředků, uzpůsobených pri pdezvu na sled jedné nebo několika instrukcí řídicí jednotky pro odpovídající operace s daty v registrech vektorů. Během roku 1970 se paralelní procesory, popsané Stokesem, staly známými jako JIMD (Jedna Instrukce Množství Dat) stroje. Takovéto stroje mohou být také popsány tak, že sestávají z programovatelné řídicí jednotky, ovládající řadu n paralelních procesorů, kde každý procesor má paměť, aritmetickou jednotku, dekodér programu a vstupní/výstupní jednotku. Tyto systémy představovaly velké skříně, které byly někdy sdruženy s vnějším velínem. Významný rozdíl mezi JIMD a obecnějšími procesory byl ten, že v takových systémech mohou všechny JIMD procesory mít v přidruženém procesoru rozdílnou množinu dat, avšak všechny procesory jsou ovládány společným řadičem. JIMD počítače jsou také odlišné od obecnějších procesorů Von Neumanna v tom, že každá instrukce zpracovává spíše vektor dat než jediný operand.
Nejobecnější Mnoho Instrukci zvláštní program, typy mnohaprocesorových systémů jsou systémy Mnoho Dat, kde každý procesor může provádět pracující se zvláštní množinou dat. Procesory
-1CZ 280210 B6 v MIMD systému mohou provádět oddělené úkoly, nebo mohou provádět rozličné dílčí úkoly společného hlavního úkolu.
S pokrokem přemýšlení o JIMD paralelních procesorech se uvažovalo, jak je ukázáno v patentovém spisu Spojených států amerických číslo 4,435,758, autoři Lorie a spol., datum vydání 6. březen 1984, název Method for Conditional Branch Execution in SIMD Vector Processors, že může být výhodné, když úkoly, které má systém provádět, jsou vysoce nezávislé a prosté sporů, avšak když úkoly mají spor o zdroje, potom může být označena síť synchronních procesorů, pracující v JIMD. Patentový spis Spojených států amerických číslo 4,435,758 popsal tento problém a také popsal zlepšení, která provedl ve srovnání s obsahem patentového spisu Spojených států amerických číslo 4,101.960 ze dne 18. července 1978, autoři R. A. Stokes a spol., s ohledem na provádění podmíněných větvi.
Stalo se normou popisovat nejpokrokovější JIMD stroje jako sériové procesory se synchronními bity, uspořádané v matici NxN, jak je ukázáno příkladem mnohaprocesorového systému, popsaným v pojednání autorů H. Li a M. Maresca o názvu Polymorphic-Torus Network, Proceedings of the International Conference on Parallel Processing, str. 411-414. Metody násobeni maticových vektorů pro takovou masivně paralelní architekturu, popsané od H. Li a spol. pro NxN procesory, propojené fyzicky smyčkovou topologií a se smyčkovou sítí překrytou jinou spínací síti pro účely zpětné konfigurace, byly podrobné popsány v časopisu IBM Technical Disclosure Bulletin, sv. 32, číslo 3A srpen 1989, pro zlepšení rychlosti prováděni výpočtu násobení řídké matice s vektorem.
Existuje publikace 1990, která ukazuje, že bylo také věnováno úsilí vytvořit JIMD a JIMD/MIMD stroje, které pracují s mnoha řadami procesorů, kde všechny procesory dané řady provádějí přesné stejnou instrukci, avšak každá řada je naprogramována odlišné. Viz příklad, popsaný od H. Li, B. Dom a R. Jaffe v IBM Technical Disclosure Bulletin, sv. 32, 8B, leden 1990, kde je popsána architektura s touto konfigurací, která byla nazvána Parallel Local Operátor Engine (PLOE), pro zpracováni specifických opakovačích inspekčních funkcí paměti.
j
Tato přihláška plánuje vývoj vzduchem chlazeného systému, který může být vyráběn stávající technologii, která může vytvořit .na čipu množinu s nové uspořádanou architekturou, úkoly, které byly uvažovány pro JIMD stroje, jakož i úkoly, které byly uvažovány pro stroje podle Von Neumanna.
Na základě přehledu dosavadního stavu techniky se zjišťuje, že jiní popsali použití procesoru s paměti ROM pro statické instrukce a registry pro ukládání a přistup k datům na jediném křemíkovém čipu, viz například patentový spis Spojených států amerických číslo 4,942,516, zveřejněný 17. července 1990, původce G. Hyatt, název Single Chip Integrated Circuit Computer Architecture, tento druh práce však neměl vztah ke komplexním aplikacím JIMD typu.
Jiní autoři popsali rozličné prostředky pro různé úkoly, na které má být náš systém také zaměřen. Je známo, že násobeni matic může být prováděno paralelné. Jsou známy publikace, které se tý-2CZ 280210 B6 kaji aplikací, ke kterým může náš systém být použit, které souvisí s umělou inteligencí. Obsahově adresovatelné (viz. obr. 3) nebo asociativní paměti byly adresovány na univerzální úrovni s rozličnými procesními čipy. Bylo zde zjištěno, že pro AI aplikace je v některých případech vhodné založit volbu řádku na výsledcích předešlých vyhledávacích operací, se řádkovou logikou. Viz VLSI for Artificial Intelligence, Jose G. Delgado-Frias a Will R. Moore, vydavatelství Kluver Academie Publishers, 1989, str. 95-108, VLSI and Rule-Based Systems, Peter Kogge, Mark Brule a Charles Stormon, pro diskuzi aplikaci. Nicméně, elegantní návrhy jiných autorů zdánlivé směrují obor jiným směrem, než činí původci vynálezu. Jeden způsob spočívá na oxfordských čipech Intelligent Memory pro masivní paralelismus, které byly popsány v publikaci VLSI Systems Design, December 1988, str. 18-28 v pojednání, jehož autorem je Senior Editor Bob Cushman, a které má název Matrix Crunshing with Massive Parallelism. Jiní autoři se snažili o paralelní prováděni procesu na asociativní paměti VLSI za účelem popsáni čipu asociativní paměti VLSI, vhodného pro implementaci přestavitelného, úplně paralelního asociativního schématu provádění procesů. Tento přístup spočíval na úvaze, že použití klasické architektury asociativní paměti by vyžadovalo nepřiměřený počet výstupů pro zavedené přenosy dat. Viz například pojednání Parallel Processing on VLSI Associative Memory, autorů S. Hengen a I. Scherson, podpořené NSF cenou ECS-h404627 a přednesené autory na Department of Electrical and Computer Engineering, University of California, Santa Barbara, CA 93106.
Problém, se kterým jsme se setkali, je potřeba vytvořit kompaktní procesory pro komplexní aplikace, a při bližším zkoumání tohoto problému jsme zjistili, že dřívější návrhy, které byly omezeny na bitové sériové implementace s nejvýše několika málo tisíci bitů paměti na jeden procesní prvek, a s malým počtem procesních prvků na jeden elektronický čip, byly nedostačující. Jako výsledek jsme dospěli k potř.ebé vymezit architekturu, která by mohla být vyráběna s dramaticky vyššími hustotami a přesto byla vhodná pro prostředí chlazené vzduchem a mohla být balena v lehké a kompaktní jednotce.
Výsledkem je řešení, které představuje N rozměrné pole procesních jednotek bytové šíře, z nichž každá je spojena s odpovídajícím segmentem paměti bytové šíře a se řídicí logikou. Rozdélitelná sekce pole, obsahující několik procesních jednotek, je obsažena na křemíkovém čipu. To bude podrobné popsáno dále. Naše vlastni řešeni způsobilo přídavné problémy k řešení za účelem zlepšení chováni systému a my jsme vynalezli řešení za účelem dalšího vyvíjeni navržené architektury. Některá z těchto řešení umožňují nezávislé chování procesních prvků. V této souvislosti při zpětném pohledu jsme zjistili, že dosavadní stav techniky, popsaný v evropské přihlášce vynálezu EP-A-208,457, popisoval řadu procesorů, ve které každý procesní prvek v řadě měl možnost zvolit prvek, ze kterého dostává svůj vstupní signál.
Závislá přihláška vynálezu 07/519,332, podaná 4. května
1990, přihlašovatel James L. Taylor, pokračující k přihlášce číslo 07/250,595, podané 27. září 1988, o názvu SIMD Array Processor, popisuje mnohorozměrné pole procesních prvků, které má zvýšený stupeň flexibility k umožnění lepšího využití potenciálu pro paralelní prováděni procesů bez dosažení nákladů a složitosti
-3CZ 280210 B6
MIMD procesoru. Tato aplikace byla původně poprvé zveřejněna 3. května 1989 jako evropská přihláška vynálezu EPO 88/307885/88-A. Zde popisovaný systém vysílá globální instrukci pro místní bitové sériové provádění podél sběrnice, spojující řídicí logiku, v rozličných paralelních procesních prvcích a programově přeměňuje zvolené bity globální instrukce pro použití v místních bitových linkách, kde se přeměněné bity dekódují.
Zpětný pohled také identifikoval jednu diskuzi o JIMD procesorových prvcích bytové šíře o názvu Design of SIMD Microprocessor Array, jejíž autoři jsou C. R. Jesshope, R. 0’Gorman a spol., a která byla zveřejněna v IEEE Proceedings sv. 136, květen 1989. Toto pojednání popisuje školní studii JIMD architektur autory, kteří jsou z Departement of Electronics and Computer Science na The University, Southampton, UK. Mnohé výtvory jsou podobné těm, které diskutujeme, a popisují procesor, který má JIMD architekturu bytové šíře. Pojednáni navrhuje procesní prvky s prvky s architekturou osmibitového procesního akumulátoru, omezenou RAM paměť na kartě (lkbyt) a množství PE na čipu (4), jakož i určitý významný stupeň místní autonomie. Nicméně, při použití takové navrhované struktury není zajištěno asociativní provádění procesů. Bude ukázáno, že navrhovaná struktura nezajišťuje sousední komunikaci bytové šíře, jako tomu je v případě předloženého vynálezu. Jiné výtvory, které jsme vyvinuli také nejsou navrženy. Tudíž zde existuje potřeba našeho piketového systému, který je proveditelný na čipu integrovaného obvodu za účelem pokroku ve stavu techniky paralelního prováděni procesů. Viz pojednání Summary of Parallel Computer Architectures jehož autorem je R. Duncan, a které je publikováno v časopisu IEEE Computer v únoru 1990.
Za účelem snadného postupu při popisu předloženého vynálezu zde následuje obecný, neomezující popis nové terminologie oboru. Piket - prvek procesního pole, sestávající přednostně z kombinovaného procesního prvku s místní pamětí pro bitové prováděni procesů s paralelními byty informace v hodinovém cyklu. Přednostní provedení, sestávající z procesoru bytové šíře pro proud dat, 32 kbytů nebo více paměti, základních řízení, má vazbu pro komunikace s jinými pikety.
Piketový čip obsahuje množství piketů na jednom křemíkovém čipu. Piketový procesorový systém (nebo podsystém) - celkový systém, sestávající z pole piketů, komunikační sítě, I/O systému a JIMD kontroléru, obsahujícího mikroprocesor, procesoru uložené rutiny a mikrokontroléru, který spouští pole.
Piketová architektura - přednostní provedení JIMD architektury s výtvory, které usnadňují některé druhy problémů, jako asociativní provádění procesů s množinami, paralelní intenzivní provádění numerických procesů či prováděni procesů s fyzickými poli, podobnými obrazům.
Pole piketů - soubor piketů, uspořádaných v geometrickém pořádku .
Výraz piket původně značí vojenskou hlídkovou linii.
-4CZ 280210 B6
Podstata vynálezu
Vynález vytváří paralelní procesorový systém, obsahující množinu procesorových piketových jednotek, kde každá procesorová piketová jednotka obsahuje místní parné·!:, jejíž výstup je připojen ke vstupu B-registru, jehož výstup je připojen ke vstupu (B) bitového paralelního procesorového prvku, jehož výstup je připojen ke vstupu A-registru, jehož výstup je připojen ke vstupu Q-registru, jehož výstup je připojen ke vstupu (A) bitového paralelního procesorového prvku a ke vstupu.B-registru a ke vstupu místní paměti. Je výhodné, když každá procesorová piketová jednotka dále obsahuje sběrnici vysílaných dat/adres, která je připojena k A-registru a k místní paměti. Dále je výhodné, když každá procesorová piketová jednotka dále obsahuje řídicí/stavový registr, který je připojen k bitovému paralelnímu procesorovému prvku. Dále je výhodné, když bitový paralelní procesorový prvek má šířku alespoň 8 bitů. Dále je výhodné, když místní paměť má velikost alespoň 32 x 8 kilobitú. Dále je výhodné, když paralelní procesorový systém podle vynálezu obsahuje alespoň 16 procesorových piketových jednotek.
Vynález množinového asociativního paralelního procesního systému na jediném čipu umožňuje vyjmout menší množinu dat z větší množiny z paměti, kde na ní může být provedena asociativní operace. Tato asociativní operace, kterou je typicky nějaké exaktní srovnání, se provádí na celé množině dat paralelné použitím piketové paměti a prováděcí jednotky.
V piketovém poli má každý piket část dat z větší množiny. Přídavné každý piket zvolí jeden kus dat z jejich části. Jeden kus dat v každém z množiny piketů takto obsahuje množinu dat, na které se provádí všemi pikety paralelné asociativní operace.
Návrh, který může být v současnosti implementován až do 50 kgate proudu dat a řídicí logiky, a s množstvím megabitů paměti DRAM na jediném čipu. Každý z těchto čipů má konfiguraci takovou, že obsahuje množství piketů nebo procesních jednotek. V přednostním provedení pro zpracování textu, které je schopné užívat grafiky, je 16 piketů se 32 kbyty paměti DRAM pro každý piket na jediném piketovém čipu, a systém obsahuje řadu 64 takových piketových čipů, poskytující řadu 1024 procesních prvků. Tato piketová architektura může být vyráběna technologii CMOS, která umožňuje uložit 4 miliony bitů DRAM v opakovaných vzorech na jediném čipu a zbývající povrch čipu je vyplněn logickými standardními buňkami, které budou používat až 50 k logických prvků a které mohou vytvářet proud dat a řídicí logiku pro vytváření piketů na čipu. Uspořádali jsme systém tak, že pikety mohou zpracovávat data s místní autonomii a vytvořili jsme skluz mezi pikety.
Technologie piketů je schopna expanze a se 128 kbyty DRAM v každém jednotlivém piketu (čip se 16 Mbity paměti DRAM) architektura piketu obsáhne úplnou 24-bitovou barevnou grafiku stejným způsobem jako text, a 8-bitová barevná nebo šedá stupnicová grafika jsou prováděny s naším obvyklým přednostním provedením. Pokusná výrobní technologie ukazuje, že tuto hustotu je možno pro blízkou budoucnost předvídat jako konzistentní výrobek, schopný pracovat v prostředí, chlazeném vzduchem. Pro barevnou grafiku by
-5CZ 280210 B6 naše přednostní architektura piketů měla zvýšit množství DRAM na čipu na 128 kbytů pro jeden piket při zachování 16 piketů na jednom čipu. Alternativně by pro procesory plně barevné grafiky mohlo být použito 24 piketových jednotek na jednom piketovém čipu s 96 kbytů paměti. ·
Přehled obrázků na výkresech
Přednosti provedení předloženého vynálezu je znázorněno na výkresech, kde obr. 1 je schematické znázornění dosavadního JIMD procesoru, který je popsán v závislé přihlášce vynálezu, která může být považována za reprezentativní objekt dosavadního stavu techniky, obr. 2 znázorňuje pár základních piketových jednotek, které jsou uspořádány na křemíkové bázi, s procesorem, pamětí, řídicí logikou a asociativní pamětí, s bytovou komunikací s jinými pikety v poli, obr. 3 znázorňuje asociativní provádění procesu v paměti, obr. 4 znázorňuje základní 16 (n) uspořádání piketů pro podsystém JIMD, který používá mikroprocesorový kontrolér, pevně zadrátovaný sekvenční kontrolér pro uložené rutiny a pole piketů, a které tvoří základní paralelní piketový procesorový systém, který může být také oddělenou jednotkou, obr. 5 znázorňuje mnohonásobný piketový procesorový systém, který zahrnuje množství piketových procesorů z obr. 4, obr. 6 je funkční blokový diagram podsystému, obr. 7 znázorňuje uspořádání kontroléru podsystému s kartami podle obr. 5.
Příklady provedení vynálezu
Obr. 1 znázorňuje typický JIMD systém podle dosavadního stavu techniky typu, popsaného obecné v evropské přihlášce vynálezu Taylora a IBM číslo 88307855/88-A, a v britské přihlášce vynálezu UK-A-1,445,714. V takových zařízeních podle dosavadního stavu techniky je JIMD počítač počítač s jednou instrukcí a množstvím dat, mající paralelní řadový procesor, obsahující množství paralelně spojených bitových sériových procesorů, z nichž každý je sdružen s jednou z množství pamětí JIMD. Vstupní/výstupní systém působí jako etapový systém pro jednotku JIMD a obsahuje dočasnou ukládaci oblast pro dvousmérný dvourozmérový přenos dat mezi vnějším počítačem (což může být hlavní panel nebo mikroprocesor) a JIMD počítačem. Vstupní/výstupní systém obsahuje vstupní a výstupní procesní prostředky pro řízení proudu dat mezi vnějším počítačem a dočasnou ukládaci oblasti a množstvím pamětí JIMD, což obvykle jsou organizované pufrové sekce nebo části větší paměti. Vstupní operace systému vstup/výstup tudíž způsobí přenos dat z paměti vnějšího počítače do dočasné ukládaci oblasti a v druhém kroku do JIMD paměti, a pro výstup je zde také proces o dvou krocích, který přenáší přes dvourozměrnou sběrnici data mezi vnějším počítačem a JIMD počítačem. Vstupní/výstupní systém pro vstup/výstup dat může být oddělená jednotka, podjednotka vnějšího počítače, nebo často je to jednotka uvnitř JIMD počítače, kde JIMD kontrolér působí jako řídicí orgán pro dočasné ukládání v pufru při vstupu/výstupu dat.
*
Samotný JIMD počítač obsahuje řadu procesorů, mající množství procesních prvků a síť, která propojuje jednotlivé procesní prvky a množství obvyklých oddělených JIMD pamětí. JIMD počítač je paralelní řadový procesor, mající velký počet jednotlivých
-6CZ 280210 B6 procesních prvků, spojených a pracujících paralelné. JIMD počítač zahrnuje řídicí jednotku, která vyvíjí proud instrukcí pro procesní prvky a také vytváří potřebné časovači signály pro počítač. Sít, která propojuje rozličné procesní prvky, obsahuje určitou formu propojovacího schéma pro jednotlivé procesní prvky a toto propojení může být provedeno rozličnými topologiemi, jako je smyčková, polymorfní torus nebo hyperkubická. Množství pamětí je pro bezprostřední ukládáni bitových dat pro jednotlivé procesní prvky a je zde korespondence jedna-na-jednu mezi počtem procesních prvků a počtem pamětí, které mohou být výše uvedenou pufrovou částí větší paměti.
Například, jak je znázorněno na obr. 1, je zde vnější procesor 28. Tento vnější procesor 28 je použit pro ukládání programů v mikrokódu do řádkového kontroléru 14 (který obsahuje pufr pro dočasné uložení) pro výměnu dat s ním a pro záznam jeho stavu přes datovou sběrnici 30 vnějšího kontroléru a adresovou a řídicí sběrnici 31. Vnější procesor 28 v tomto příkladu by mohl být jakýkoli vhodný univerzální počítač, jako vnější panel nebo osobní počítač. V tomto příkladu podle dosavadního stavu techniky je řada procesorů řady znázorněna jako na 2-D bázi, avšak řada může být organizována i odlišně, například na 3-D nebo 4-D skupinovém uspořádáni. JIMD řadový procesor obsahuje pole 12 procesních prvků P(i,j) a řádkový kontrolér 14 pro vydávání proudu globálních instrukci procesním prvkům P(i,j). Ačkoliv to na obr. 1 není znázorněno, příklad podle dosavadního stavu techniky má procesní prvky, které pracují na jednom bitu v jednom čase a má sdružený blok ukládání, který je částí paměti, sdružené s procesním prvkem. Procesní prvky jsou propojeny tak zvanou SVZJ (Sever, Východ, Západ, Jih) sítí s jejich příslušnými sousedy dvousmérnými bitovými linkami. Procesní prvek P(i,j) je takto spojen s procesními prvky P(i-l,j), P(i,j+1), P(i,j-1) a P(i+l,j) ve směrech Sever, Východ, Západ a Jih. V tomto typickém přikladu je sít SVZJ u svých okrajů propojena toroidálné, takže severní a jižní okraje jsou propojeny dvousmérné, a západní a východní okraje jsou propojeny podobné. Aby data mohla vstupovat do a vystupovat z pole procesorů, je k síti SVZJ připojena datová sběrnice 26 řádkového kontroléru. Jak je znázorněno, je připojena k východo-západnímu okraji pole. Místo toho nebo přídavné může být připojena k severo-jižnímu okraji dvousmérnými třístavovými ovladači, které jsou připojeny k toroidálnímu východo-západnímu SVZJ spojení. Jako v přednostním provedení, které bude popsáno, 1024 procesních prvků by mohl být docíleno dosavadním stavem techniky, kdyby počet procesních prvků v tomto příkladu byl 32x32 místo znázorněných 16x16. Ve znázornění jedna linka označuje jednobitovou linku, zatímco dvojitá linka, spojující funkční prvky, je užita pro znázornění množství spojovacích linek nebo sběrnice.
V tomto příkladu podle dosavadního stavu techniky řádkový kontrolér vysílá instrukce paralelně k procesním prvkům přes instrukční sběrnici 18 a vysílá volbu řádku a volnu sloupce linkami 20 volby řádku, popřípadě linkami 22 volby sloupce. Tyto instrukce způsobí, že do procesních prvků jsou zavedena data ze zásoby a jsou zpracována a potom uložena ještě jednou v zásobě. Pro tento účel má každý procesní prvek přístup k bitové části (sekce nebo pufr) hlavní paměti. Logicky je proto hlavni paměť řadového procesoru rozdělena do 1024 částí pro řadu 1024 procesních prvků. To znamená, že až třicet dvě 32-bitová slova mohou
-7CZ 280210 B6 být přenášena do nebo ze zásoby v jednom času v přenosovém kroku. K provedení operace čtení nebo psaní je paměť adresována ve výrazech indexové adresy, která se přivádí k adresovým linkám paměti přes adresovou sběrnici 24 a instrukce čtení nebo psaní se přivádí ke každému procesnímu prvku paralelně. Během operace čtení signály volby řádku a sloupce na linkách volby řádku a sloupce identifikuji procesní prvek, který má provést operaci. V popisovaném příkladu je tudíž možno číst jedno 32-bitové slovo z paměti do třiceti dvou procesních prvků ve vybraném řádku, když pole je 32x32. Procesní prvek je sdružen s částí nebo blokem paměti (i,j,) široké jeden bit. Zatímco část nebo blok paměti je logicky sdružen na bázi jedna-na-jednu se sdruženým jednotlivým procesním prvkem, může být, a typicky je, fyzicky oddělen na jiném čipu. Nevíme, jak s touto dřívější architekturou by popisovaný řadový procesor mohl být vyroben, jako může být náš piket vyroben se řadou procesorů a odpovídající pamětí na jediném čipu druhu, dále popsaného.
Procesní prvky P(i,j) příkladu z dosavadního stavu techniky mají být chápány tak, že obsahují ALU, se vstupními a výstupními registry, které zahrnují přenos, a každý z nich je schopen uchovat jeden bit informace. Je zde multiplexer, který je připojen k ALU vstupu, výstupu a také ke dvousměrnému datovému portu části paměti (i, j ) , sdružené s jednotlivým procesním prvkem P(i,j).
Jsou zde zvláštní instrukční a datové sběrnice a řadový kontrolér má zásobník mikrokódu, do kterého se uloží mikrokód, definující proces, který má být proveden řadou procesorů, vnějším procesorem 28 při použiti datové sběrnice 30 a adresové a řídicí sběrnice 31. Když byla operace řadového kontroléru začata vnějším procesorem 28, je sekvence mikrokódu řízena řídicí jednotkou mikrokódu, která je připojena k zásobníku mikrokódu uvnitř řadového kontroléru 14.. ALU a sada registrů řadového kontroléru jsou použity př^. vyvíjení adres řadové paměti, čítání smyček, výpočtu skoků adres a registrových operaci pro obecné účely, které jsou vysílány na adresovou sběrnici řadového kontroléru. Řadový kontrolér také má maskovací registry pro dekódování maskovacích kódů řádku a sloupce, a specifické operační kódy přicházejí k procesním prvkům přes instrukční sběrnici. V tomto příkladu by řadový kontrolér mohl mít uvnitř datový pufr, avšak funkčně mezi datovou sběrnici vnějšího kontroléru a datovou sběrnicí řadového kontroléru. Z tohoto pufru jsou data zaváděna pod kontrolou mikrokódu v kontrolním zásobníku do řady procesorů a naopak. Pro tento účel je pufr uspořádán jako dvousměrný FIFO pufr pod kontrolou kontroly mikrokódu v řadovém kontroléru. Více podrobností takových systému podle dosavadního stavu techniky je možno nalézt ve výše citovaných příkladech, zejména v přihlášce vynálezu Spojených států amerických U.S.S.N. 07/519,332, přihlašovatel Taylor, název SIMD Array Processor.
Přehlídka předchozích dřívějších pokusů může být srovnána s přednostními provedeními předloženého vynálezu. Obr. 2 znázorňuje základní piketovou jednotku 100. obsahující kombinovaný procesní prvek ALU 101 s místní paměti 102 k němu připojenou pro zpracování jednoho bytu informace v hodinovém cyklu. Jak je znázorněno, piketová jednotka je vytvořena na čipu křemíkové báze nebo piketovém čipu s lineárním polem piketů s postranními sousedy (vlevo a vpravo na obrázku), takže na čipu křemíkové báze je
-8CZ 280210 B6 vytvořeno piketové procesní pole s množstvím místních pamětí, jednou pro každý proud procesních dat bytové šíře, uspořádaných v logickém řádku nebo v lineární řadě se sousedními komunikačními sběrnicemi pro průchod dat dvousměrné vpravo a vlevo. Soubor piketů v piketovém čipu je uspořádán v geometrickém seřazení, přednostně vodorovně na čipu. Obr. 2 znázorňuje typickou implementaci dvou piketů piketové řady na piketovém čipu s množstvím pamětí a proudem dat, zahrnujícím komunikační cesty mezi každým procesním prvkem piketu a paměti. V našem přednostním provedení komunikační cesty dat mezi paměti jedna-na-jednu s procesními prvky řady má šíři bytu a napříč, vlevo nebo vpravo se sousedem, nebo se skluzem pro komunikaci se vzdálenějšími piketovými procesory.
Skluz může být definován jako prostředek pro přenos informace v jednom cyklu do nesousední polohy umístěním piketové adresy, která by normálně byla schopna přijmout informaci, kdyby nebyla průhledná pro zprávu vyslanou, dokud nepřijde a není přijata u nejbližšiho aktivního souseda, který ji přijme. Skluz tedy působí tak, že vysílá informaci do nesousední polohy přes vyřazené pikety. Nechť piket A má vyslat informaci do vzdáleného piketu G. Před tímto cyklem jsou mezilehlé pikety učiněny průhlednými vyřazením piketů B až F. Potom v následujícím jediném cyklu A vyšle svou zprávu vpravo a tato projde pikety B až F, které jsou průhledné, protože jsou vyřazeny a G přijme zprávu, protože je stále v činnosti. Při normálním použití informace skluz je zpráva přenášena lineárně napříč struktury, skluz může však také pracovat s dvourozměrnou smyčkou nebo s mnohorozměrnou řadou.
Přístup procesních prvků v našem přednostním provedení není bitové sériový v operaci, nýbrž spíše bytové sériový. Každý procesor má přístup k jeho vlastní připojené paměti spíše, než aby měl přístup k bloku místní paměti a některé přidružené její části nebo stránce. Sběrnice šíře znaku nebo násobku znaku je použita místo šíře jednoho bitu. Místo jednoho bitu se zpracovává byt (nebo v budoucích systémech s uvažovaným dvojnásobným výkonem znakovém bytu několik bytů) informace v jednom hodinovém cyklu. Mezi každým procesním prvkem piketu může takto protékat 8, 16 nebo 32 bitů k vyrovnání šíře přidružené paměti. V našem přednostním provedení má každý piketový čip 8 (9) bitů šíře paměti ze 32 Kbytů a přednostně 16 piketů s těmito 32 Kbyty zásoby na piketový uzel lineární řady. V našem přednostním provedení je každá přidružená paměť vytvořena v CMOS jako DRAM a znakový byte je 9 bitů (které funguji jako osmibitový znak s vlastní zkouškou).
Paralelní cesta bytové šíře proudu dat sběrnice mezi pikety a mezi procesním prvkem a jeho paměti je podstatné zlepšeni oproti sériové bitové struktuře systémů dosavadního stavu techniky, avšak je třeba uvážit, že zvýšený paralelizmus má za následek přídavné problémy, které vyžadují řešeni, když se porozumí implikacím nové dosažené architektury. Významná řešeni jsou zde popsána .
Vlastnost, která bude hodnocena, je, že přídavné k přenosům vlevo a vpravo na sousední místo a mechanismu skluzu, který byl popsán s přihlédnutím k výkresům, jsme vytvořili také vysílací sběrnici šíře dvou byte, takže všechny pikety mohou vidět tatáž
-9CZ 280210 B6 data ve stejném času. Řízení piketu a propagace adresy se také přenáší na tuto vysílací sběrnici. Tato sběrnice dodává srovnávací data, když se provádějí asociační operace s množinami a jiné srovnávací nebo matematické operace.
Úlohy, které mají vysoce paralelní datové struktury, které jim dávají možnost zpracování v piketových procesních prvcích dat při řízení proudu jedné instrukce, nacházejí použití ve skládání vzorů umělé inteligence,- spojování čidla a stopy v optimálním určování s více čidly, zkoumání kontextu a zpracování obrazu. Nicméně, mnohé z těchto použití, nyní možných, nebylo užito v JIMD procesech s ohledem na sériové bitové provádění procesů pod jedním časem hodin. Tak například tradiční sériový procesní prvek JIMD stroje provádí jeden bit operace ADD pro každý cyjtlus procesoru, zatímco 32-bitový paralelní stroj může provést 32 bitů operace ADD v jednom cyklu.
Uspořádání 32 KB na procesní prvek přivede mnohem více logicky dosažitelné paměti ke každému procesnímu prvku, než tradiční JIMD stroj.
Počet kolíků na čipu byl udržen nízký, protože data, která jdou do a z čipu, byla udržena minimální. Paměť DRAM je obvyklá řadová paměť CMOS a jedna, která má přístup řádek-sloupec potlačením sloupcové demultiplexace na zadní straně paměťové řady a vytvořením adresy řádku, která čte řádek paměťové řady k proudu dat paralelně.
Přídavně k datům paměť obsahuje tri-bits nebo třít, takže zde jsou tři stavy, rozeznávané logikou, místo tradičního binary digit, tedy buď logická 1, logická 0 nebo neznám. Tento neznám v překrytém poli kryje buď logickou 1 nebo logickou 0. Trit je obsažen v postupných místech zásoby v zásobní řadě. Masky jsou jiná forma dat, uložených v paměti, která jsou směrována na maskový registr piketového procesního prvku.
Jelikož řada zásoby může obsahovat příkazy, umožňuje to, že jeden piket může provádět jinou operaci než jiný piket. Čipová kontrola jednotlivých piketů během operací, zahrnující mnoho piketů, ne však nutné všechny, umožňuje implementace, které jsou možné pouze pro JIMD operace. Jedna vytvořená jednoduchá kontrolní funkce spočívá v tom, že jsou závislé operace v kterémkoli piketu, jehož stavový výstup splňuje nějakou specifickou podmínku, tak nenulová podmínka může znamenat klid. Klid je podmínka, která zastavuje operace a uvádí piket do neaktivního, avšak vědomého stavu. Jiný vytvořený příkaz je zamezení nebo dovolení zápisu do paměti, spočívající na podmínkách v piketu nebo na příkazu, daného sběrnici před operaci skluzu.
Použitím piketového čipu se 16 výkonnými pikety, z nichž každý má 32 KB paměti, pouze 64 čipy vytvoří 1024 procesorů a paměť 32768 KB. Řada piketů obsahuje množinovou asociativní paměť. Vynález je také užitečný pro numerické intenzivní zpracování analýzy obrazu, jakož i provádění procesů s vektory. Tato výkonná piketová procesní řada může být dnes balená pouze na dvou malých kartách! Bude ukázáno, že tisíce piketů mohou být výhodně zabaleny v obalu s nízkým výkonem a lépe přenosném, což umožňuje provádění aplikací zpracování obrazu s minimálním zpožděním nebo
-10CZ 280210 B6 v rozsahu času jednoho videosnímku, například během letu dopravního letadla bez významných platebních zatížení.
Výkonnost piketů vede na možnost použití velkých přidružených paměťových systémů, zabalených do sméstnaných pouzder, a umožňuje použití procesní výkonnosti v řadě aplikací, když projektant systému si navykne používat nový systém.
Obr. 3 znázorňuje strukturu, která může být označena jako úplně asociativní paměť tehdy, když se asociace žádá, srovnávaná hodnota je předána do všech míst paměti a všechna místa paměti současně odpovídají se svými stykovými linkami. Asociativní paměť je v oboru o sobě známá. V systému zde popisovaném je při použití paralelních piketů paměti a procesních prvků, které mají bytové přenosy za účelem provádění průzkumu, vstup dat a maska pro průzkum za účelem zjištění místa slova K mezi N slovy v paměti. Všechny stýkající se pikety zdvihnou stavovou linku a potom oddělená operace čte nebo vybere první styk K. Tato operace, obecně zvaná asociativní množina, může být opakována nahoru přes piketovou paměť. Podobné je dosaženo zápisu přes vysílací operaci, ve které zdvižená vybraná linka označuje participaci a vysílaná data jsou kopírována do všech vybraných piketů.
Jiné provedení, ačkoliv není jediné přednostní, snižuje velikost paměti DRAM, dosažitelné pro každý piket pro umožnění inkluze některé sekce plně asociativní paměti typu, znázorněného na obr. 3. Kdyby bylo zahrnuto 512 bytů úplně asociativní paměti, každý piket by obsahoval množinu průzkumných indexů a v jedné operaci 512 krát 1024 piketů dává 512k srovnáni na operaci, nebo 512 Gig-srovnáni za sekundu při jedné mikrosekundě pro operaci. S roztažitelností může být koncept posunut do rozsahu mnoha Tera-srovnáni. Toto provedení zesiluje asociativní úlohy, které zavádějí extenzivní průzkum informace s možnostmi, vysoce přesahujícími současné výpočetní možnosti.
Když tato asociační operace, užívající paméť a v šíři bytu spojené procesní prvky, jak je znázorněno na obr. 2, přídavně k použitím odlišných algoritmů nebo operaci, umělé inteligenci a paralelnímu programování, byla zkoušena v JIMD situacích, jsou zde mnohé přídavné aplikace, nyní použitelné pro stroj s uspořádáním čipu, které popisujeme, v prostředí JIMD, které může obsahovat: Jednoduché paralelizovatelné aritmetické úlohy včetně násobeni matic a jiné úlohy, které mohou být prováděny ve strojích se specializovanou pamětí;
Úlohy krytí obrazů a zpracování obrazů, které mohou být prováděny ve Von Neumannových strojích, avšak které mohou být značně zrychleny s aplikacemi, přizpůsobitelnými krajnímu paralelizmu, například kryti vzorů trojrozměrného obrazu;
Dotazové funkce podložené daty;
Kryti vzorů v oblasti umělé inteligence;
Kontrola sítí v můstcích pro rychlou identifikaci zpráv, které jdou k uživateli na druhé straně můstku sítě;
Simulace úrovně hradel;
a kontroly porušeni základních pravidel VLSI.
Procesní úlohy, které využívají výhody banky pamětí a přidružených procesních prvků, se objeví aplikačním programátorům,
-11CZ 280210 B6 až najdou, jak získat výhodu výkonnosti nové systémové architektury.
Proces udržení popisu digitálního systému může být usnadněn použitím řady k jednomu hradlu nebo logickému prvku na jeden piket 100. V takovém systému by proces mohl začít označením každého popisu hradla jako výčtu signálů, které hradlo přijímá jako vstupy a pojmenováním signálu, který vyvíjí. Požaduje se změna signálu v každém času, jeho jméno se vysílá na sběrnici 103 ke všem piketům a je srovnáváno paralelné se jmény očekávaných vstupních signálů. Když se nalezne krytí, zaznamená se v piketu nová hodnota signálu v bitu registru proudu dat. Když byly zaznamenány všechny změny signálu, způsobí se ve všech piketech paralelní čtení kontrolního slova, které sdělí jejich proudu dat, jak se má využít běžná množina vstupů pro výpočet výstupu. Způsobí se, aby tyto výpočty byly provedeny paralelné, s výsledky srovnanými se starými hodnotami z místního hradla. Zaznamenají se ve stavovém bitu proudu dat všechna hradla piketů, jejichž výstupy se mění. Způsobí se, aby vnější kontrolér přezkoušel všechny pikety a vyžádá se následující hradlo, které se změnilo. Potom se vyšle odpovídající jméno signálu a hodnota z piketu do všech ostatních piketů, jak byly původně určeny, a cyklus se opakuje tak dlouho, až nenastávají žádné změny signálu, nebo se proces zastaví.
Jiný proces je vyhledání jména slovníku. Jména jsou uschována v piketové paměti 102 tak, že první písmeno všech jmen může být srovnáno s prvním písmenem žádaného vysílaného jména na adresové sběrnici 103 vysílaných dat. Všechny pikety prosté krytí jsou vyřazeny kontrolní vlastností, které použijeme. Potom se srovná druhé písmeno a srovnávací a vyřazovací procedura se opakuje pro po sobě následující písmena (znaky) tak dlouho, až nezůstává žádná piketová jednotka aktivní, nebo byl dosažen konec slova. V tomto okamžiku se všechny zbývající piketové jednotky podrobí dotazu a index žádaných dat se přečte sekvenčním obvodem.
Obr. 4 znázorňuje základní uspořádání piketů množství paralelních procesorů a pamětí, piketových jednotek, uspořádaných v řadě na jediném křemíkovém čipu jako část paralelní řady, která může být uspořádána jako JIMD podsysUém, znázorňující řídicí seskupeni takového systému. Zde je také znázorněn řídicí procesor a mikroprocesor supervizoru. Na obr. 4 je znázorněna paměť a logika paralelního procesního prvku na stejném čipu, které jsou na obr. 4 znázorněny v sekci, označené Array of Pickets. Každá paměť je v šíři n bitů, přednostně v šíři znaku, 8 (9) bitů, jak bylo uvedeno, avšak koncepčně také může mít šíři slova několika byte. Paměťová část paralelního procesního prvku piketu bude mít přednostně šíři 8 (9) bitů, nebo alternativně 16 nebo 32 bitů. Při běžné CMOS technologii dáváme přednost použiti asociativní paměti šíře 8 bitů, nebo šíře znaku (šíře 9 bitů byte s vlastní kontrolou) pro každý piketový procesní prvek. Paměti jsou přímo sdruženy jedna-na-jednu se spojeným procesním prvkem, který obsahuje ALU, maskovací registry (A & Q užité pro maskování), a zámek 104 (SP v obr. 4) jakož i stavové registry 107 a registry A 105 a Q 106 proudu dat (DF na obr. 4), které jsou podrobněji znázorněny v diagramu piketu na obr. 2. DRAM a logika každého piketového procesoru nemají žádnou zátěž nějaké propojovací sítě, nýbrž je zde přímé jedna-na jednu přidružení mezi pamětí DRAM mnohabi
-12CZ 280210 B6 tové šíře a jejím procesním prvkem na samotném čipu. K obr. 4 je třeba uvést, že zámek (SR) 104 registru skluzu B je umístěn logicky mezi pamětí a přidruženou logikou ALU procesního prvku a zámek je v podstatě vazební port pro každý procesní prvek podél piketové řady. Každý piketový čip obsahuje množství paralelních piketových procesních prvků, uspořádaných v lince (která je znázorněna jako přímá sběrnice) pro komunikaci s piketovým řízením. Sběrnice adres vektorů je společná k paměti a adresový registr vektoru dat kontroluje, jaká data procházejí přes každou paměť.
Obr. 4 také znázorňuje propojení mezi hlavní nebo mikroprocesorovou kartou MP, která v našem přednostním provedení je mikroprocesor 386, uspořádaný jako PS/2 systém s kontrolérem podsystému, kterým procházejí globální instrukce do procesoru uložených rutin CRP, který jsme opatřili, který opatřuje instrukce pro sekvenční obvod 402 instrukcí a řízení 403 provádění, které provádí specifický mikrokód, vyvolaný sekvenčním obvodem 402 instrukcí. Tento sekvenční obvod 402 instrukcí by mohl být ve funkci přirovnán ke kontroléru. Nicméně také v procesoru CRP uložených rutin jsme zavedli místní registry 405, které spolu s (neznázorněnými) lokálními registry ALU zajišťují bázi pro všechno adresování, které se vysílá do všech piketů v řadě 406 piketů. Takto se výpočty adres provádějí pro všechny pikety v jednom ALU bez použití piketových zdrojů, nebo myslitelně bez použití piketových prováděcích cyklů. Tento významný přídavek přidává piketové řadé pružnost řízení tím, že umožňuje klid, potlačení a jiné řídicí funkce pro specializované úkoly, které mají být prováděny, a umožňuje oddělení piketů od jakékoli vysílané instrukce nebo datové funkce.
Sekvenční obvod 402 se zavedeným mikrokódem 407 vysílá do řady piketů pro provádění pod JIMD sled instrukci, určený hlavním programovým mikroprocesorem MP a uloženými rutinami procesoru CRP uložených rutin knihovny 408 doby běhu k umožnění provádění procesů JIMD s daty, obsaženými v řadé piketů.
Instrukce, dodané mikroprocesoru MP přes rozhraní podsystému, jsou vytvořeny jako procesní příkazy vysoké úrovně, které mohou obsahovat Start Procesu, Zápis Pozor, a Čti Výsledek, které se zavedou do mikroprocesoru kontrolérem podsystému mikroprocesoru MP. Mikroprocesor může být uvažován jako hlavní systém nebo řídicí procesor v podsystému v uspořádání, znázorněném na obr. 4, 5, 6 a 7. Je pochopitelné, že tato jednotka by mohla být oddělenou jednotkou s přidáním (neznázorněného) periferního vstupního zařízení, jako klávesnice a displeje. V tomto odděleném uspořádání by systém MP mohl být uvažován jako komerční PS/2, ke kterému se karty, obsahující kartu se sekvenčním obvodem (která obsahuje procesor uložených rutin), a karty řady procesorů jsou vloženy podél linek, znázorněných na obr. 7. Knihovna 411 rutin může obsahovat sledy rutin pro celkové řízení procesu, jako CALL (,); Kalman, Convolve, a Nav. Update. Výběr těchto rutin se děje přes uživatelský program a tedy celkové provádění procesů může být řízeno vnějším počítačem nebo uživatelským programem 412, uloženým v MP. V pamětmi MP je uložen datový pufr 413 pro přenos dat do a z paralelního systému piketových procesorů. Sekvenční obvod 402 instrukcí je uspořádán, aby prováděl řídicí proud z MP, jakož i uložené rutiny, které jsou v paměti 408 knihovny časů běhu uložených rutin. Některé z těchto rutin zahrnují CALL ( , ), Load
-13CZ 280210 B6
Block, Sin, Cos, Find, Min, Range Comp. a Matrix Multiply z uložených rutin knihovny 408 časů běhu uložených rutin.
Uvnitř CRP je také mikrokód 407 pro provádění řízeni funkcí nižší úrovně, jako Load, Read, Add, Multiply, a funkce krytí.
Dáváme přednost a zajišťujeme vnější řízení FOR/NEXT pro každou procesní jednotku. Zajišťujeme také normalizovanou implementaci bytu deterministické pohyblivé řádové čárky.
Použiti deterministického přístupu k vývoji makro pro systém, který jsme zajistili, dovoluje uspořádání piketů do skupin a skupinovou kontrolu. Místní funkce klidu je zajištěna pro umožněni změn provádění procesů jednotlivých piketů.
Kdyby uživatelský program vyžadoval prováděni řadou procesorů jsou pro řadu piketových procesorů zajištěny primitivní příkazy, adresy a vysílaná data.
Zvláštní funkce, kterou využívá každá část systému, je určena úlohou, která má být prováděna, a označena během překladu uživatelského programu.
Pružnost podsystému může být osvětlena spíše obecným problémem. Vezmeme například problém násobení matic...[x] * [y]=[Z].
Problém může být zapsán takto:
xl xR+1 ...
yl yM+1 xR X2R ... xRxM yM y2M ... yMxC
C zl zR+1 ...
R zR Z2R ... zR+C
Problém, který by byl řešen rého je osvětlen počet průchodů a průchod, je podán prostřednictvím následujícím údajem, vedle ktepočet hodinových cyklů na jeden příkladu.
průchodů cyklů/ průchod
Call Matrix Mult Fx (R, M, C, Xaddr, Yadrr, Zaddr) xSUB = ySUB = zSUB = 1
-14CZ 280210 B6
03 | DO I = 1 to C | 1 | 3 | |
04 | DO J = 1 to R | C | 3 | |
05 | z = 0 | CxR | 5/6* | |
06 | DO K = 1 to M | CxR | 3 | |
07 | ***Převedf na asociativní paralelní | procesor* | ** | |
08 | Zz = Xx x Yy + Zz | CxRxM | 204/345* | |
09 | ***Vrať výsledek*** | |||
10 | xSUB = xSUB | + R | CxRxM | 2 |
11 | ySUB = ySUB | + 1 | CxRxM | 2 |
12 | NEXT K | CxRxM | 3 | |
13 | xSUB = xSUB | - MxR + 1 | CxR | 2 |
14 | ySUB = ySUB | - M | CxR | 2 |
15 | zSUB = zSUB | + 1 | CxR | 2 |
16 | NEXT J | CxR | 3 | |
17 | xSUB = 1 | C | 2 | |
18 | NEXT z | C | 3 | |
19 | END Ca11 | 1 | 1 | |
Poznámka * Pevná čárka | (4 byte) / Pohyblivá čárka | (1+4 Byte) | ||
Z prohlídky výše uvedeného příkladu je zřejmé, že úloha identifikovaná výše uvedeným příkazem 08, spotřebuje asi 98 |
cyklického času. Je tedy převedena na JIMD organizaci paralelního piketového procesoru. Ostatní procesy potřebují pouze 2 % cyklického času a jsou udrženy v architektuře uvnitř mikroprocesoru.
Také prohlídka příkladu násobení matic svědčí pro provádění (a každý údaj po překladu by způsobil provedeni ve specifickém lokačním systému) bud na MP, CRP, LR nebo řadě piketů.
Ve výše uvedeném příkladu násobení matic příkaz 01 by měl být přiřazen hlavnímu procesoru MP, zatímco příkazy 02, 05, 10, 11, 13, 14, 15 a 17 by měly být přiřazeny místnímu registru LR, a příkazy 03, 04, 06, 12, 16, 18 a 19 by měly být přiřazeny pro provádění procesorem CRP uložených rutin, s jinak čas spotřebujícim prováděním procesů s maticemi, tudíž přiřazeny pro provádění pod jednou instrukcí řadě piketů s přiřazením příkazu 08 řadě piketů.
Obr. 5 znázorňuje mnohonásobný paralelní systém piketových procesorů 510, který zahrnuje množství paralelních piketových procesorů. Pro aplikace, jako stopování mnohonásobných cílů, spojováni čidel a dat, zpracování signálů, umělá inteligence, zpracování obrazů satelitů, sledování vzorů/úkolů, operace kódování a dekódování metodou Reed-Solomon, byl námi vytvořen systém, který může být uspořádán v přednostním provedení jako JIMD systém s 1024 paralelními procesory se dvěma ke 4 SEM E kartami 511 (zde reprezentovány jako 4 karty pro jeden systém) pro každých 1024 procesorů. Jednotlivé karty 512 jsou zasouvatelné do vanového montážního oddílu 513 s kluznými lištami 514 a karty jsou opatře
-15CZ 280210 B6 ny *zasouvacími/vysouvacími pákami 516, takže když se uzavře víko 517, uzavře účinné systém v oddílu se zásobou 32 nebo 64 Mbyte s prováděcí schopností asi 2 bilionů operací za sekundu. Systém je kompaktní a řada množství piketů je zasazena do karty 518 zadního panelu, která má v sobé logiku, která umožňuje propojení množství karet. Procesor se 32 M byte zásoby je vytvořen na čtyřech kartách SEM E a systém má hmotnost pouze asi 10 kg. Napájení je provedeno zdrojem 519, jak je znázorněno. Příkon vzduchem chlazeného procesoru takové výkonnosti je podle odhadu pouze asi 280 W. Každý JIMD systém má dva I/O porty 520 pro komunikaci kanálovým adaptérem s přidruženými hlavními panely, nebo jinak se zbytkem světa. Se znázorněným vícenásobným paralelním piketovým procesorem, z nichž každý sestává ze 4 logických stránek a s použitím standardního leteckého balení a sběrnicové struktury pro připojení k nějaké vnější paměti (například sběrnice Pl, TM a IEEE 488) může být procesor připojen přes I/O port k paměťové sběrnici nějakého misijního procesoru a může být uvažován jako prodloužení paměťového prostoru misijního procesoru.
Se znázorněným mnohonásobným paralelním piketovým procesorem, obsahujícím 1024 paralelních procesních prvků, má každý procesor 32 kbyte místní paměti a přidružená cesta k piketovému paralelnímu procesoru je paralelní šíře 8 bitů nebo znaku (9 bitů) .
Procesory uvnitř každého piketu si vyměňují data s jinými sousedními procesory a mezi stránkami přes zadní propojovací síť, přednostně křížový přepínač, alternativně skluzový křížový přepínač, přihrádkovou síť, bázi 3 N-krychle nebo bázi 8 N-krychle.
Jednotlivé piketové procesory systému jsou obsaženy uvnitř svazku dvou karet ze čtyř karet, a mikroprocesor PS/2 na jedné kartě, zatímco sekvenční obvod procesoru uložených rutin je obsažen na jiné z těch čtyř karet, které obsahují systém, schematicky znázorněný na obr. 5,6 a 7. Jednotlivé pikety 100 karet 512 piketů mohou být uspořádány ve společném útvaru s procesorem CRP uložených rutin pro vstup do nebo výstup z operací, založených na podmínkách dat a řízených architekturou zámku 104 a místními registry 405, které jsou připojeny k řízeni provádění procesů karty CRP 703 sekvenčního obvodu. Takto mohou piketové procesory provádět nezávisle srovnávací a normalizační operace, které jsou přidruženy k operacím v pohyblivé řádové čárce.
Procesory jsou řízeny paralelné společným sekvenčním obvodem, jak je zde popsáno. Karta 703 sekvenčního obvodu obsahuje kontrolér CRP piketového procesoru a může způsobit, že piketový procesor provede jedinou posloupnost operací, kódovanou pro provedeni na řadě JIMD procesorů v bytové sekvenci, podobné klasickému bitovému sériovému provádění procesů. Kontrolér má tři vrstvy. Mikro-kontrola pro pikety je v mikrokódu, podobné jako to je u moderních procesorů, a je přenesen paralelně do všech piketů. Mikro-kontrola a pikety jsou synchronizovány na stejný hodinový systém CLK, takže funkce, řízené sekvenčním obvodem, mohou být prováděny ve stejném hodinovém času. Zaváděcí příkazy do sekvenčního obvodu mikro-kontroly jsou funkcí procesoru uložených rutin. Karta 703 sekvenčního obvodu je pevné zadrátovaný kontrolér, který při většině funkcí provádí smyčkové řídicí příkazy a rekurzivně startuje nové sekvence mikro-kontroly. Tento kontrolér se svou
-16CZ 280210 B6 knihovnou 408 uložených rutin a se svou smyčkovou funkcí udržuje pikety dobře zásobovány a nesvázány příkazy. Procesor kontroléru CRP uložených rutin obsahuje velkou sbírku makro, která jsou vyvolávána hlavním systémem, který působí v podsystému jako primární supervizorový kontrolér piketů. To je vrcholový kontrolní systém řady piketů. Je to 386 mikroprocesorů, které ovládají řady piketů. V daném okamžiku mohou všechny pikety řady provádět tutéž instrukci, ačkoliv podmnožiny procesorů mohou reagovat individuálně na kontrolní proud.
Je zde více odchylek individuálních reakcí, takže místní autonomie působením bytové řídicí funkce pro každý piket (klid, potlačení atd.) je zde místní autonomie, jejíž výhodu může přivodit programováni a která může být provedena pod kontrolou systému během překladu programu.
Navíc, jak bylo popsáno, je zde autonomie adresování místní paměti. JIMD kontrolér sekvenčního obvodu dodává společnou adresu pro všechny užívané pikety. Každý piket může tuto adresu místně zvýšit ke zvýšení její schopnosti přístupu k datově závislé paměti .
Navíc, některý piket se může nebo nemusí podílet na působení řady v závislosti na místních podmínkách.
S těmito vlastnostmi je nyní možné zavést koncepci skupin do JIMD provádění procesů opatřením prostředků pro každý piket pro jeho přiřazení k jedné nebo více z určitých skupin, a prováděni procesů může probíhat v závislosti na těchto skupinách, kde změna uspořádání se může odehrávat v podstatě letmo. V jednom provedení může být pouze jedna skupina nebo kombinace skupin aktivní v jednom času a každá provádí tentýž proud JIMD instrukcí. Některé operace vyžadují práci pouze s podmnožinou nebo skupinou piketů. Programováni muže získat výhodu z této schopnosti. Místní participační autonomie je určena k této práci. Je zřejmé, že čím více piketů počítá, tím lépe.
Jedna cesta ke zvýšení počtu piketů, které se podílejí na provádění procesů, spočívá v tom, že se umožní, aby každý piket prováděl jeho vlastní proud instrukcí. To je v podstatě MIMD uvnitř JIMD. Nyní je možné v podstatě uspořádat tentýž JIMD stroj jako MIMD systém, nebo jako stroj úplné jiného uspořádání. To je možné proto, že je možné programovat piket, aby pracoval se svým vlastním sledem instrukcí.
Protože každý piket může být vytvořen tak, aby měl svůj vlastní sled, dekódováni, a je možná velmi jednoduchá množina instrukcí na úrovni piketu a to umožňuje mnohem extenzivnější místní provádění procesů. Oblasti, ve kterých se nejsnadněji najde počáteční aplikace, jsou v komplexním rozhodováni, nicméně jednoduché provádění procesů v pevné řadové čárce představuje další zájmovou oblast programátorů.
Takový jednoduchý program by zavedl bloky piketového programu, například na větší než 2K, do piketové paměti 102 a tyto mohou být prováděny, když JIMD karta 703 začne místní provádění řízením provádění, začínajícím u některé specifikované adresy xyz. To by pokračovalo, když kontrolér bud napočítá příslušný
-17CZ 280210 B6 počet hodinových cyklu, nebo provede test pro úplný signál úlohy ovládáním stavového kanálu (SF) registry, znázorněnými na obr. 4.
Stavový kanál (SF obr. 4) používá zámek 104 pro každý piket. Každý piket má zámek 104,· který může být naložen, aby udával stavovou podmínku piketu. JIMD kontrolér může testovat kolektivní hodnotu v těchto zámcích (jeden na jeden piket) ovládáním linky stavu řady. Tato linka stavu řady je logická kombinace hodnot z každého ze zámků stavu piketů.
V následujícím přikladu předpokládáme, že chceme nastavit hodnotu vyšší než 250, která je v rozsahu 500 x =250. Následující rutina by použila stavový kanál pro zjištění, že úloha byla splněna .
If VALUE 500 then TURN YOUR PICKET OFF
STÁT - PICKET OFF CONDITION
IF STÁT FUNNEL = OFF then finished - - - VALUE - VALUE - 250
Repeat
Tak může být uspořádání mnohonásobných paralelních piketových procesorů uspořádáno rozličnými způsoby, a jako JIMD procesor. Takový JIMD stroj v přednostním provedení je programován, aby prováděl jediný sled instrukcí klasickým způsobem a je kódován, aby prováděl operace na řadě JIMD procesorů sekvenčním postupem, podobným klasickým procesorům, při obecném řízení JIMD kontroléru nebo sekvenčního obvodu. Na aplikační úrovni je to splněno vektorem a vektoru podobnými instrukcemi, a vektory mohou být zpracovány procesory a přes procesor. Vektorové instrukce mohou být sloučeny s mikroinstrukcemi, typicky se 6 až 10 takovými instrukcemi.
S takovým přednostním provedením se systém jeví schematicky, jak je znázorněn ve funkčním blokovém diagramu podsystému paralelních procesoru, znázorněném na obr. 6. Přes I/O porty systému, řízené řízením vnějšího rozhraní 413, funguje sekvenční obvod podsystému podobné jako JIMD program s vysoce funkčními makro bloky, řídícími funkce procesních prvků. Adresováni paměti dovoluje proud dat 8 bitů, šíře byte a je užita aritmetická logika modulo 8 pro funkce (logické, add, multiply a divide). Je učiněno opatření pro formát pohyblivé řádové čárky a pro autonomní operaci piketů s individuálním spánkovým a klidovým modem a odděleným adresováním.
Uspořádáni kontroléru podsystému je znázorněno na obr. 7. Každá z karet 512 řady procesorů (znázorněno jako 4 v tomto znázornění podsystému, avšak je možné provést redukci na dvě SEM E karty) je připojena k sekvenčnímu obvodu CRP 703, který je připojen ke kontroléru 702 podsystému, který je spojen bud' se systémem hlavní paměti, nebo s jiným podsystémem v uspořádání přes » rozhraní čipu 705 ke přidružené sběrnici 706 mikrokanálu. V přednostním provedeni je kontrolér podsystému obecné účelová mikroprocesorová jednotka PS/2 společnosti IBM (ochranná známka IBM) a používá procesní čip Intel 386 a paměť 4 Mbyte. Mikroprocesor
-18CZ 280210 B6
MP 702 osobního počítače je připojen ke kartě sekvenčního obvodu přes sběrnici 705, 706 mikrokanálového typu uvnitř podsystému.
Je zřejmé, že jsou možné mnohé modifikace a variace předloženého vynálezu ve světle těchto výkladů a je tedy třeba uvážit, že připojené patentové nároky umožňují, že vynález může být vytvořen v praxi i jinak, než jak byl popsán.
Speciálně následující výtvory mohou být alternativně kombinovány nebo spojeny s opatřeními, definovanými v nárocích:
1) Skluzový prostředek umožňuje přenos informace v jediném cyklu do nesousedni polohy piketové jednotky umístěním adresy piketu, který by normálně byl schopen přijmout informaci, kdyby nebyl průhledný pro zprávu, vyslanou dokud nepřijde a je přijata nejbližším aktivním sousedem, který ji přijme;
2) Skluzový prostředek umožňuje skluzovou funkci vysláním informace do nesousedni polohy přes vyřazené pikety, umožňuje první piketové jednotce přenést informaci do vzdáleného piketu, když před přenosovým cyklem jsou bránící pikety učiněny průhlednými jejich vyřazením a potom v přenosovém cyklu řídicí prostředek způsobí, že první piketová jednotka vyšle informaci do místa určení v odlehlé piketové jednotce;
3) jsou opatřeny prostředky pro přenos zpráv lineárně přes strukturu, přes dvourozměrnou síť, nebo v trojrozměrném směru v řadě;
4) množství piketových jednotek má místní autonomii a je možné je uspořádat jako svázanou jednotku do řady zmíněných piketových j ednotek;
5) systém je možno uspořádat jako JIMD a MIMD systém a skupiny množství procesních jednotek jsou přiřazeny k programovatelnému uspořádání, ve kterém individuální jednotky systému mají určitý stupeň místní autonomie;
6) je zahrnut hlavni procesorový systém, který komunikuje s vnějším kontrolním sekvenčním obvodem přes sběrnici a hlavní systém má prostředek pro způsobení provádění globálních instrukci paralelním procesním systémem;
7) vnější řídicí sekvenční obvod je připojen k mikrokódové paměti, která je programovatelná uloženými rutinami pro funkce;
8) sekvenční obvod je opatřen vysokofunkčnimi makro bloky pro řízeni funkcí procesních jednotek, které jsou k sekvenčnímu obvodu připojeny sběrnicí, a kde adresováni paměti místních pamětí systému umožňuje proud dat síře byte a aritmetickou logiku modulo 8 užít pro funkce logické, add, multiply a divide, a kde je učiněno opatření pro operace v pohyblivé řádové čárce se zmíněnými paralelními jednotkami a pro individuální mody spánku a klidu s odděleným adresováním individuálních piketových procesních jednotek;
9) prováděni operací s funkcemi je programovatelné umistitelné k provádění uvnitř systému hlavního procesoru, s vnějším řídicím sekvenčním obvodem s uloženými rutinami, s prostředky místního registru, nebo uvnitř množství piketových procesních jednotek, a kde jedny instrukce, vyžadující rozsáhlé provádění procesů na množství dat, jsou přiřazeny ke zmíněnému množství
-19CZ 280210 B6 procesních jednotek, které je uspořádáno pro JIMD provádění procesů;
10) procesní jednotky systému jsou spojeny do řady procesních jednotek s procesními jednotkami řady, majícími programovatelnou místní autonomii, a kde piketová procesní jednotka může pracovat se svým vlastním sledem instrukcí a může vstoupit do nebo vystoupit z operací, spojených s jinými procesními jednotkami na základě podmínek dat, a kde procesní jednotky systému mohou nezávisle provádět zařazení a normalizaci v operacích, které jsou přidruženy k operacím v pohyblivé řadové čárce;
11) zmíněný vnější řídicí sekvenční obvod je uspořádán pro provádění operací jako CALL ( , ), Load, Block, Sin, Cos, Find, Min, Range, a Matrix Multiply uloženými rutinami, zajištěnými knihovnou času běhu uložených rutin;
12) uložené rutiny jsou zajištěny pro provádění kontrolních, Load, Read, Add, Multiply a Match funkcí;
13) nějaký procesní prvek vymění data v řadě sousedních procesních jednotek řady a mezi stránkami ve zmíněném systému přes propojovací síť;
14) je zde opatřen vnější řídicí procesor pro řadu piketů, a kde mikro-kontrolní kód je přenášen paralelné ke všem piketům skupiny piketových procesorů v řadě, a kde řídicí procesor a piketové procesní jednotky jsou synchronizovány na tentýž hodinový systém, takže funkce, řízené vnějším řídicím procesorem, mohou být prováděny ve stejném času hodin;
15) nad vnějším řídicím procesorem pro řadu piketů je vrcholový řídicí systém jako mikroprocesor, svázaný s vnějším řídicím procesorem přes sběrnici mikrokanálu, kterýžto vrcholový mikroprocesor ovládá aktivitu řady piketů, a kde je systém spojen tak, že v daném okamžiku všechny piketové procesní jednotky řady mohou provádět tutéž instrukci, ačkoliv podmnožiny procesorů mohou reagovat individuálně na řídicí proud;
16) množství piketových paralelních procesních jednotek je uspořádáno podél adresové sběrnice pro komunikaci s vnějším piketovým kontrolérem, a kde je vektorová adresa společná lokálním pamětem piketového systému a kde je registr vektorové adresy dat, aby kontroloval, jaká data jdou do každé místní paměti piketového systému. Komunikace se řízením piketů. Sběrnice vektorové adresy je společná paměti a registr vektorové adresy dat zjišťuje, jaká data jdou přes každou asociativní paměť množiny,
17) je zde opatřeno množství piketových jednotek, uspořádaných v řadě, a cesty pro proud dat mezi piketovými jednotkami, majícími komunikační cesty, vytvářející způsoby a prostředky pro bitovou paralelní komunikaci se všemi ostatními pikety v řadě při opatřeni vazební cesty pro přenos zpráv z jednoho piketu do některého jiného piketu;
18) zprávy mohou být přenášeny z jednoho piketu do některého jiného piketu přes N-rozměrnou řadu, implementovanou užitím drátu, nebo bodové spojené pikety;
19) je implementována malá sekce místní paměti, takže každé místo v této sekci současně bude provádět srovnání krytí proti danému vzoru.
Claims (6)
1. Paralelní procesorový systém, obsahující množinu procesorových piketových jednotek, vyznačující se tím, že každá procesorová piketová jednotka (100) obsahuje místní paměť (102), jejíž výstup je připojen ke vstupu B-registru (104), jehož výstup je připojen ke vstupu (B) bitového paralelního procesorového prvku (101), jehož výstup je připojen ke vstupu A-registru (105), jehož výstup je připojen ke vstupu Q-registru (106), jehož výstup je připojen jednak ke vstupu (A) bitového paralelního procesorového prvku (101), jednak ke vstupu B-registru (104) a jednak ke vstupu místní paměti (102).
2. Paralelní procesorový systém podle nároku 1, vyznačující se tím, že každá procesorová piketová jednotka (100) dále obsahuje sběrnici (103) vysílaných dat/adres, která je připojena k A-registru (105) a k místní paměti (102).
3. Paralelní procesorový systém podle kteréhokoli z nároků 1 a 2, vyznačující se tím, že každá procesorová piketová jednotka (100) dále obsahuje řidicí/stavový registr (107), který je připojen k bitovému paralelnímu procesorovému prvku (101) .
4. Paralelní procesorový systém podle kteréhokoli z nároků 1 až 3, vyznačující se tím, že bitový paralelní procesorový prvek (101) má šířku alespoň 8 bitů.
5. Paralelní procesorový systém podle kteréhokoli z nároků 1 až 4, vyznačující se tím, že místní paměť (102) má velikost alespoň 32 x 8 kilobitů.
6. Paralelní procesorový systém podle kteréhokoli z nároků 1 až 5, vyznačující se tím, že obsahuje alespoň 16 procesorových piketových jednotek (100).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61159490A | 1990-11-13 | 1990-11-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CZ344091A3 CZ344091A3 (en) | 1995-05-17 |
CZ280210B6 true CZ280210B6 (cs) | 1995-12-13 |
Family
ID=24449647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CS913440A CZ280210B6 (cs) | 1990-11-13 | 1991-11-13 | Paralelní procesorový systém |
Country Status (15)
Country | Link |
---|---|
US (1) | US5822608A (cs) |
EP (1) | EP0485690B1 (cs) |
JP (1) | JPH04267466A (cs) |
KR (1) | KR960016880B1 (cs) |
CN (1) | CN1050919C (cs) |
AT (1) | ATE180586T1 (cs) |
BR (1) | BR9104603A (cs) |
CA (1) | CA2050166A1 (cs) |
CZ (1) | CZ280210B6 (cs) |
DE (1) | DE69131272T2 (cs) |
HU (1) | HU215139B (cs) |
PL (1) | PL167329B1 (cs) |
RU (1) | RU2084953C1 (cs) |
SK (1) | SK344091A3 (cs) |
TW (1) | TW229289B (cs) |
Families Citing this family (128)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625836A (en) | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
US5765015A (en) | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Slide network for an array processor |
JP2525117B2 (ja) * | 1992-05-22 | 1996-08-14 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
WO1996035997A1 (fr) * | 1996-05-22 | 1996-11-14 | Yalestown Corporation N.V. | Processeur parallele |
DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
DE19654593A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit |
DE19654846A1 (de) | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
ATE243390T1 (de) | 1996-12-27 | 2003-07-15 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.) |
DE19704044A1 (de) * | 1997-02-04 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine |
DE19704728A1 (de) | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
DE19704742A1 (de) | 1997-02-11 | 1998-09-24 | Pact Inf Tech Gmbh | Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand |
US6786420B1 (en) | 1997-07-15 | 2004-09-07 | Silverbrook Research Pty. Ltd. | Data distribution mechanism in the form of ink dots on cards |
US6021453A (en) * | 1997-04-24 | 2000-02-01 | Klingman; Edwin E. | Microprocessor unit for use in an indefinitely extensible chain of processors with self-propagation of code and data from the host end, self-determination of chain length and ID, (and with multiple orthogonal channels and coordination ports) |
US6789212B1 (en) | 1997-04-24 | 2004-09-07 | Edwin E. Klingman | Basic cell for N-dimensional self-healing arrays |
US6803989B2 (en) | 1997-07-15 | 2004-10-12 | Silverbrook Research Pty Ltd | Image printing apparatus including a microcontroller |
US6618117B2 (en) | 1997-07-12 | 2003-09-09 | Silverbrook Research Pty Ltd | Image sensing apparatus including a microcontroller |
US6879341B1 (en) | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
US7110024B1 (en) | 1997-07-15 | 2006-09-19 | Silverbrook Research Pty Ltd | Digital camera system having motion deblurring means |
US6690419B1 (en) | 1997-07-15 | 2004-02-10 | Silverbrook Research Pty Ltd | Utilising eye detection methods for image processing in a digital image camera |
AUPO850597A0 (en) | 1997-08-11 | 1997-09-04 | Silverbrook Research Pty Ltd | Image processing method and apparatus (art01a) |
US7705891B2 (en) | 1997-07-15 | 2010-04-27 | Silverbrook Research Pty Ltd | Correction of distortions in digital images |
US20040119829A1 (en) | 1997-07-15 | 2004-06-24 | Silverbrook Research Pty Ltd | Printhead assembly for a print on demand digital camera system |
AUPO802797A0 (en) | 1997-07-15 | 1997-08-07 | Silverbrook Research Pty Ltd | Image processing method and apparatus (ART54) |
US6985207B2 (en) | 1997-07-15 | 2006-01-10 | Silverbrook Research Pty Ltd | Photographic prints having magnetically recordable media |
US6624848B1 (en) | 1997-07-15 | 2003-09-23 | Silverbrook Research Pty Ltd | Cascading image modification using multiple digital cameras incorporating image processing |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6484065B1 (en) * | 1997-12-29 | 2002-11-19 | Kawasaki Microelectronics, Inc. | DRAM enhanced processor |
KR100538605B1 (ko) | 1998-03-18 | 2005-12-22 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 데이터 처리 장치, 행렬 변환 방법 및 컴퓨터 판독가능한 매체 |
US6079008A (en) * | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
US6067609A (en) * | 1998-04-09 | 2000-05-23 | Teranex, Inc. | Pattern generation and shift plane operations for a mesh connected computer |
US6185667B1 (en) * | 1998-04-09 | 2001-02-06 | Teranex, Inc. | Input/output support for processing in a mesh connected computer |
US6836838B1 (en) * | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
DE19840210A1 (de) * | 1998-09-03 | 2000-03-09 | Fraunhofer Ges Forschung | Verfahren zur Handhabung einer Mehrzahl von Schaltungschips |
AUPP702098A0 (en) | 1998-11-09 | 1998-12-03 | Silverbrook Research Pty Ltd | Image creation method and apparatus (ART73) |
JP3439350B2 (ja) | 1998-10-02 | 2003-08-25 | Necエレクトロニクス株式会社 | キャッシュ・メモリ制御方法及びキャッシュ・メモリ制御装置 |
US6658575B1 (en) * | 1999-03-17 | 2003-12-02 | Olympus Optical Co., Ltd. | Voice recording/reproducing apparatus which enters a standby mode while in a communication mode with an external device |
AUPQ056099A0 (en) | 1999-05-25 | 1999-06-17 | Silverbrook Research Pty Ltd | A method and apparatus (pprint01) |
JP2003505753A (ja) | 1999-06-10 | 2003-02-12 | ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング | セル構造におけるシーケンス分割方法 |
US6728863B1 (en) | 1999-10-26 | 2004-04-27 | Assabet Ventures | Wide connections for transferring data between PE's of an N-dimensional mesh-connected SIMD array while transferring operands from memory |
US6487651B1 (en) * | 1999-10-26 | 2002-11-26 | Assabet Ventures | MIMD arrangement of SIMD machines |
US6425026B1 (en) * | 2000-02-23 | 2002-07-23 | Teranex, Inc. | Distribution, processing, and reconstruction of variable-sized images using multiple processor arrays |
US6317695B1 (en) | 2000-03-30 | 2001-11-13 | Nutec Sciences, Inc. | Seismic data processing method |
US6452789B1 (en) * | 2000-04-29 | 2002-09-17 | Hewlett-Packard Company | Packaging architecture for 32 processor server |
RU2168757C1 (ru) * | 2000-06-08 | 2001-06-10 | ООО "Микротест-ТЕЛ" | Способ защиты информационных ресурсов локальной вычислительной сети, соединенной с глобальной информационной сетью, от несанкционированного доступа пользователей глобальной информационной сети в локальную вычислительную сеть при обмене сигналами сообщений электронной почты и устройство для его осуществления |
DE50115584D1 (de) | 2000-06-13 | 2010-09-16 | Krass Maren | Pipeline ct-protokolle und -kommunikation |
US6745268B1 (en) | 2000-08-11 | 2004-06-01 | Micron Technology, Lnc. | Capacitive multidrop bus compensation |
US20020052868A1 (en) * | 2000-10-04 | 2002-05-02 | Sanjeev Mohindra | SIMD system and method |
JP2004517386A (ja) | 2000-10-06 | 2004-06-10 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | 方法および装置 |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
CN1269053C (zh) * | 2001-02-24 | 2006-08-09 | 国际商业机器公司 | 分组路由方法、系统及用于分组路由的可扩展网络交换机 |
CA2437629A1 (en) * | 2001-02-24 | 2002-09-06 | International Business Machines Corporation | Arithmetic functions in torus and tree networks |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7581076B2 (en) | 2001-03-05 | 2009-08-25 | Pact Xpp Technologies Ag | Methods and devices for treating and/or processing data |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
WO2005045692A2 (en) | 2003-08-28 | 2005-05-19 | Pact Xpp Technologies Ag | Data processing device and method |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
RU2202123C2 (ru) * | 2001-06-06 | 2003-04-10 | Бачериков Геннадий Иванович | Параллельная вычислительная система с программируемой архитектурой |
JP2004533691A (ja) | 2001-06-20 | 2004-11-04 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データを処理するための方法 |
US7383421B2 (en) * | 2002-12-05 | 2008-06-03 | Brightscale, Inc. | Cellular engine for a data processing system |
US7069386B2 (en) * | 2001-08-10 | 2006-06-27 | Connex Technology, Inc. | Associative memory device |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
US7577822B2 (en) | 2001-12-14 | 2009-08-18 | Pact Xpp Technologies Ag | Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization |
EP1483682A2 (de) | 2002-01-19 | 2004-12-08 | PACT XPP Technologies AG | Reconfigurierbarer prozessor |
EP2043000B1 (de) | 2002-02-18 | 2011-12-21 | Richter, Thomas | Bussysteme und Rekonfigurationsverfahren |
US9170812B2 (en) * | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US7451143B2 (en) * | 2002-08-28 | 2008-11-11 | Cisco Technology, Inc. | Programmable rule processing apparatus for conducting high speed contextual searches and characterizations of patterns in data |
EP1537486A1 (de) | 2002-09-06 | 2005-06-08 | PACT XPP Technologies AG | Rekonfigurierbare sequenzerstruktur |
KR101197513B1 (ko) | 2002-10-22 | 2012-11-09 | 제이슨 에이. 설리반 | 동적 모듈식 처리 유닛을 제공하기 위한 시스템 및 방법 |
BR0315570A (pt) | 2002-10-22 | 2005-08-23 | Jason A Sullivan | Módulo de controle de processamento não-periféricos possuindo propriedades aperfeiçoadas de dissipação de calor |
US7242574B2 (en) | 2002-10-22 | 2007-07-10 | Sullivan Jason A | Robust customizable computer processing system |
RU2386163C2 (ru) * | 2002-10-22 | 2010-04-10 | Джейсон А. САЛЛИВАН | Системы и способы обеспечения динамического модульного устройства обработки данных |
GB0226249D0 (en) * | 2002-11-11 | 2002-12-18 | Clearspeed Technology Ltd | Traffic handling system |
US20040107197A1 (en) * | 2002-11-29 | 2004-06-03 | Shen Yu Yong | System, method and user interface allowing customized portfolio management |
US7386539B2 (en) * | 2002-11-29 | 2008-06-10 | Taiwan Semiconductor Manufacturing Company, Ltd. | System, method, and user interface providing customized document portfolio management |
US20040107214A1 (en) * | 2002-11-29 | 2004-06-03 | Hung Lup Cheong Patrick | Customized document portfolio system integrating IP libraries and technology documents |
US20040117374A1 (en) * | 2002-12-16 | 2004-06-17 | Hung Lup Cheong Patrick | Customized design portfolio integrating IP libraries and technology documents |
US7464254B2 (en) * | 2003-01-09 | 2008-12-09 | Cisco Technology, Inc. | Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data |
JP3987805B2 (ja) * | 2003-01-27 | 2007-10-10 | Necエレクトロニクス株式会社 | アレイ型プロセッサ |
CA2563900C (en) * | 2004-04-22 | 2015-01-06 | Waratek Pty Ltd | Modified computer architecture with coordinated objects |
US7685561B2 (en) * | 2005-02-28 | 2010-03-23 | Microsoft Corporation | Storage API for a common data platform |
JP2006243839A (ja) * | 2005-02-28 | 2006-09-14 | Toshiba Corp | 命令生成装置及び命令生成方法 |
US20090116484A1 (en) * | 2005-09-08 | 2009-05-07 | Matsushita Electric Industrial Co., Ltd. | Parallelizing Peer-to-Peer Overlays Using Multi-Destination Routing |
US7451293B2 (en) * | 2005-10-21 | 2008-11-11 | Brightscale Inc. | Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing |
US20070188505A1 (en) * | 2006-01-10 | 2007-08-16 | Lazar Bivolarski | Method and apparatus for scheduling the processing of multimedia data in parallel processing systems |
JP2009524134A (ja) | 2006-01-18 | 2009-06-25 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | ハードウェア定義方法 |
EP2154607A3 (en) * | 2006-02-03 | 2010-07-14 | Fish, Russell H. III. | Thread optimized multiprocessor architecture |
US20070226455A1 (en) * | 2006-03-13 | 2007-09-27 | Cooke Laurence H | Variable clocked heterogeneous serial array processor |
US8656143B2 (en) | 2006-03-13 | 2014-02-18 | Laurence H. Cooke | Variable clocked heterogeneous serial array processor |
US7657496B2 (en) * | 2006-06-26 | 2010-02-02 | Saffron Technology, Inc. | Nonlinear associative memories using linear arrays of associative memory cells, and methods of operating same |
WO2008027567A2 (en) * | 2006-09-01 | 2008-03-06 | Brightscale, Inc. | Integral parallel machine |
US20080244238A1 (en) * | 2006-09-01 | 2008-10-02 | Bogdan Mitu | Stream processing accelerator |
US20080059763A1 (en) * | 2006-09-01 | 2008-03-06 | Lazar Bivolarski | System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data |
US20080059467A1 (en) * | 2006-09-05 | 2008-03-06 | Lazar Bivolarski | Near full motion search algorithm |
US7990724B2 (en) | 2006-12-19 | 2011-08-02 | Juhasz Paul R | Mobile motherboard |
US8954484B2 (en) | 2009-06-12 | 2015-02-10 | Cray Inc. | Inclusive or bit matrix to compare multiple corresponding subfields |
US9251207B2 (en) * | 2007-11-29 | 2016-02-02 | Microsoft Technology Licensing, Llc | Partitioning and repartitioning for data parallel operations |
WO2010035173A1 (en) * | 2008-09-29 | 2010-04-01 | Nxp B.V. | Visual prosthesis implant |
DE102009025572A1 (de) * | 2009-06-19 | 2010-12-23 | Wolfgang Pree Gmbh | Eine Methode zur Entwicklung von garantiert korrekten Echtzeitsystemen |
US8930896B1 (en) | 2010-07-23 | 2015-01-06 | Amazon Technologies, Inc. | Data anonymity and separation for user computation |
RU2436151C1 (ru) * | 2010-11-01 | 2011-12-10 | Федеральное государственное унитарное предприятие "Российский Федеральный ядерный центр - Всероссийский научно-исследовательский институт экспериментальной физики" (ФГУП "РФЯЦ-ВНИИЭФ") | Способ определения структуры гибридной вычислительной системы |
WO2013095605A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method for sliding window data gather |
RU2513759C1 (ru) * | 2012-11-01 | 2014-04-20 | Федеральное государственное бюджетное учреждение науки Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) | Гетерогенный процессор |
WO2014088698A2 (en) * | 2012-12-06 | 2014-06-12 | Coherent Logix, Incorporated | Processing system with synchronization instruction |
CN105046162B (zh) * | 2014-03-12 | 2018-07-27 | 西部数据技术公司 | 在内容可寻址存储系统中维护并使用子对父映射的缓存 |
RU2614926C2 (ru) * | 2015-07-06 | 2017-03-30 | Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" | Мультипроцессорная система |
US9875045B2 (en) * | 2015-07-27 | 2018-01-23 | International Business Machines Corporation | Regular expression matching with back-references using backtracking |
EP3558682A4 (en) * | 2017-04-14 | 2020-10-07 | Hewlett-Packard Development Company, L.P. | DELAY ELEMENTS FOR ACTIVATION SIGNALS |
US11514996B2 (en) | 2017-07-30 | 2022-11-29 | Neuroblade Ltd. | Memory-based processors |
KR102782323B1 (ko) | 2017-07-30 | 2025-03-18 | 뉴로블레이드, 리미티드. | 메모리 기반 분산 프로세서 아키텍처 |
US10402165B2 (en) * | 2017-08-30 | 2019-09-03 | Gsi Technology Inc. | Concurrent multi-bit adder |
US12124530B2 (en) | 2019-03-11 | 2024-10-22 | Untether Ai Corporation | Computational memory |
WO2020183396A1 (en) | 2019-03-11 | 2020-09-17 | Untether Ai Corporation | Computational memory |
CN111290787B (zh) * | 2019-06-19 | 2022-11-08 | 锐迪科(重庆)微电子科技有限公司 | 运算装置及运算方法 |
WO2021033125A1 (en) * | 2019-08-16 | 2021-02-25 | Untether Ai Corporation | Computational memory with processing element row and bank communications |
US11342944B2 (en) | 2019-09-23 | 2022-05-24 | Untether Ai Corporation | Computational memory with zero disable and error detection |
US11468002B2 (en) | 2020-02-28 | 2022-10-11 | Untether Ai Corporation | Computational memory with cooperation among rows of processing elements and memory thereof |
US11500811B2 (en) * | 2020-06-12 | 2022-11-15 | Alibaba Group Holding Limited | Apparatuses and methods for map reduce |
CN112540793A (zh) * | 2020-12-18 | 2021-03-23 | 清华大学 | 支持多访存模式的可重构处理单元阵列及控制方法、装置 |
CN118432817B (zh) * | 2024-07-02 | 2024-08-30 | 中山大学 | 基于risc-v处理器的量子密钥分发后处理片上系统 |
Family Cites Families (122)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3537074A (en) * | 1967-12-20 | 1970-10-27 | Burroughs Corp | Parallel operating array computer |
US3544973A (en) * | 1968-03-13 | 1970-12-01 | Westinghouse Electric Corp | Variable structure computer |
US4942516A (en) * | 1970-12-28 | 1990-07-17 | Hyatt Gilbert P | Single chip integrated circuit computer architecture |
US3970993A (en) * | 1974-01-02 | 1976-07-20 | Hughes Aircraft Company | Cooperative-word linear array parallel processor |
US4107773A (en) * | 1974-05-13 | 1978-08-15 | Texas Instruments Incorporated | Advanced array transform processor with fixed/floating point formats |
US4101960A (en) * | 1977-03-29 | 1978-07-18 | Burroughs Corporation | Scientific processor |
US4270170A (en) * | 1978-05-03 | 1981-05-26 | International Computers Limited | Array processor |
US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
US4412303A (en) * | 1979-11-26 | 1983-10-25 | Burroughs Corporation | Array processor architecture |
US4314349A (en) * | 1979-12-31 | 1982-02-02 | Goodyear Aerospace Corporation | Processing element for parallel array processors |
US4338675A (en) * | 1980-02-13 | 1982-07-06 | Intel Corporation | Numeric data processor |
US4435758A (en) * | 1980-03-10 | 1984-03-06 | International Business Machines Corporation | Method for conditional branch execution in SIMD vector processors |
ZA811458B (en) * | 1980-03-28 | 1982-03-31 | Int Computers Ltd | Data processing system |
US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
US4394726A (en) * | 1981-04-29 | 1983-07-19 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Distributed multiport memory architecture |
US4468727A (en) * | 1981-05-14 | 1984-08-28 | Honeywell Inc. | Integrated cellular array parallel processor |
DE3144015A1 (de) * | 1981-11-05 | 1983-05-26 | Ulrich Prof. Dr. 7500 Karlsruhe Kulisch | "schaltungsanordnung und verfahren zur bildung von skalarprodukten und summen von gleitkommazahlen mit maximaler genauigkeit" |
US4498133A (en) * | 1981-12-10 | 1985-02-05 | Burroughs Corp. | Selector switch for a concurrent network of processors |
BG35575A1 (en) * | 1982-04-26 | 1984-05-15 | Kasabov | Multimicroprocessor system |
US4523273A (en) * | 1982-12-23 | 1985-06-11 | Purdue Research Foundation | Extra stage cube |
JPS59132070A (ja) * | 1983-01-18 | 1984-07-30 | Mitsubishi Electric Corp | アレイ演算用デ−タ処理装置 |
JPS59146345A (ja) * | 1983-02-10 | 1984-08-22 | Masahiro Sowa | コントロ−ルフロ−並列計算機方式 |
US4739474A (en) * | 1983-03-10 | 1988-04-19 | Martin Marietta Corporation | Geometric-arithmetic parallel processor |
US5008815A (en) * | 1983-05-31 | 1991-04-16 | Thinking Machines Corporation | Parallel processor |
US4814973A (en) | 1983-05-31 | 1989-03-21 | Hillis W Daniel | Parallel processor |
US5212773A (en) | 1983-05-31 | 1993-05-18 | Thinking Machines Corporation | Wormhole communications arrangement for massively parallel processor |
US4598400A (en) * | 1983-05-31 | 1986-07-01 | Thinking Machines Corporation | Method and apparatus for routing message packets |
US5146608A (en) * | 1983-05-31 | 1992-09-08 | Hillis W Daniel | Parallel processor array system controlled in response to composition status signal |
US4621339A (en) * | 1983-06-13 | 1986-11-04 | Duke University | SIMD machine using cube connected cycles network architecture for vector processing |
US4604695A (en) * | 1983-09-30 | 1986-08-05 | Honeywell Information Systems Inc. | Nibble and word addressable memory arrangement |
DE3506749A1 (de) * | 1984-02-27 | 1985-09-26 | Nippon Telegraph & Telephone Public Corp., Tokio/Tokyo | Matrixprozessor und steuerverfahren hierfuer |
US4855903A (en) * | 1984-12-20 | 1989-08-08 | State University Of New York | Topologically-distributed-memory multiprocessor computer |
US4901224A (en) * | 1985-02-25 | 1990-02-13 | Ewert Alfred P | Parallel digital processor |
US5113523A (en) * | 1985-05-06 | 1992-05-12 | Ncube Corporation | High performance computer system |
US4805091A (en) * | 1985-06-04 | 1989-02-14 | Thinking Machines Corporation | Method and apparatus for interconnecting processors in a hyper-dimensional array |
US4967340A (en) * | 1985-06-12 | 1990-10-30 | E-Systems, Inc. | Adaptive processing system having an array of individually configurable processing components |
US5045995A (en) * | 1985-06-24 | 1991-09-03 | Vicom Systems, Inc. | Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system |
HU195972B (en) | 1985-07-01 | 1988-08-29 | Richter Gedeon Vegyeszet | Process for producing new diamino-androstane derivatives and pharmaceutical compositions containing them |
US5047917A (en) * | 1985-07-12 | 1991-09-10 | The California Institute Of Technology | Apparatus for intrasystem communications within a binary n-cube including buffer lock bit |
JPS6219960A (ja) * | 1985-07-17 | 1987-01-28 | Nec Corp | 多段構成プロセツサシステム |
US4706191A (en) * | 1985-07-31 | 1987-11-10 | Sperry Corporation | Local store for scientific vector processor |
US4739476A (en) * | 1985-08-01 | 1988-04-19 | General Electric Company | Local interconnection scheme for parallel processing architectures |
DE3580481D1 (de) * | 1985-08-13 | 1990-12-13 | Ibm | Mechanismus zur dynamischen zuordnung von bandbreite zwischen durchschaltkanaelen und paketbitstrom in einem nachrichtennetz. |
GB8521672D0 (en) * | 1985-08-30 | 1985-10-02 | Univ Southampton | Data processing device |
US4720780A (en) * | 1985-09-17 | 1988-01-19 | The Johns Hopkins University | Memory-linked wavefront array processor |
US4922408A (en) * | 1985-09-27 | 1990-05-01 | Schlumberger Technology Corporation | Apparatus for multi-processor communications |
US5021945A (en) * | 1985-10-31 | 1991-06-04 | Mcc Development, Ltd. | Parallel processor system for processing natural concurrencies and method therefor |
US4847755A (en) * | 1985-10-31 | 1989-07-11 | Mcc Development, Ltd. | Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies |
US4907148A (en) * | 1985-11-13 | 1990-03-06 | Alcatel U.S.A. Corp. | Cellular array processor with individual cell-level data-dependent cell control and multiport input memory |
US4736291A (en) * | 1985-11-22 | 1988-04-05 | Texas Instruments Incorporated | General-purpose array processor |
US4852048A (en) * | 1985-12-12 | 1989-07-25 | Itt Corporation | Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion |
US4835729A (en) * | 1985-12-12 | 1989-05-30 | Alcatel Usa, Corp. | Single instruction multiple data (SIMD) cellular array processing apparatus with on-board RAM and address generator apparatus |
US4831519A (en) * | 1985-12-12 | 1989-05-16 | Itt Corporation | Cellular array processor with variable nesting depth vector control by selective enabling of left and right neighboring processor cells |
US4783782A (en) * | 1985-12-12 | 1988-11-08 | Alcatel U.S.A. Corporation | Manufacturing test data storage apparatus for dynamically reconfigurable cellular array processor chip |
US4916657A (en) * | 1985-12-12 | 1990-04-10 | Alcatel Usa, Corp. | Single instruction multiple data (SIMD) cellular array processing apparatus employing multiple state logic for coupling to data buses |
US4748585A (en) * | 1985-12-26 | 1988-05-31 | Chiarulli Donald M | Processor utilizing reconfigurable process segments to accomodate data word length |
US4925311A (en) * | 1986-02-10 | 1990-05-15 | Teradata Corporation | Dynamically partitionable parallel processors |
US5297260A (en) | 1986-03-12 | 1994-03-22 | Hitachi, Ltd. | Processor having a plurality of CPUS with one CPU being normally connected to common bus |
US4783738A (en) * | 1986-03-13 | 1988-11-08 | International Business Machines Corporation | Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element |
US4814980A (en) * | 1986-04-01 | 1989-03-21 | California Institute Of Technology | Concurrent hypercube system with improved message passing |
US4809169A (en) * | 1986-04-23 | 1989-02-28 | Advanced Micro Devices, Inc. | Parallel, multiple coprocessor computer architecture having plural execution modes |
US4780873A (en) * | 1986-05-19 | 1988-10-25 | General Electric Company | Circuit switching network with routing nodes |
US4809347A (en) * | 1986-07-18 | 1989-02-28 | Hughes Aircraft Company | Computer vision architecture |
JPS6353678A (ja) * | 1986-08-22 | 1988-03-07 | Hitachi Ltd | ベクトル処理装置 |
US5038386A (en) * | 1986-08-29 | 1991-08-06 | International Business Machines Corporation | Polymorphic mesh network image processing system |
US4860201A (en) * | 1986-09-02 | 1989-08-22 | The Trustees Of Columbia University In The City Of New York | Binary tree parallel processor |
US4910665A (en) * | 1986-09-02 | 1990-03-20 | General Electric Company | Distributed processing system including reconfigurable elements |
US5170484A (en) * | 1986-09-18 | 1992-12-08 | Digital Equipment Corporation | Massively parallel array processing system |
US5230079A (en) | 1986-09-18 | 1993-07-20 | Digital Equipment Corporation | Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register |
US4985832A (en) * | 1986-09-18 | 1991-01-15 | Digital Equipment Corporation | SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors |
CN1008018B (zh) * | 1986-09-27 | 1990-05-16 | 徐肇昌 | 一种具有合作能力的同构型多计算机系统及其合作方法 |
US4841476A (en) * | 1986-10-06 | 1989-06-20 | International Business Machines Corporation | Extended floating point operations supporting emulation of source instruction execution |
US5010477A (en) * | 1986-10-17 | 1991-04-23 | Hitachi, Ltd. | Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations |
GB2211638A (en) * | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
US5175865A (en) | 1986-10-28 | 1992-12-29 | Thinking Machines Corporation | Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers |
US4873626A (en) * | 1986-12-17 | 1989-10-10 | Massachusetts Institute Of Technology | Parallel processing system with processor array having memory system included in system memory |
US5165023A (en) * | 1986-12-17 | 1992-11-17 | Massachusetts Institute Of Technology | Parallel processing system with processor array and network communications system for transmitting messages of variable length |
US4891787A (en) * | 1986-12-17 | 1990-01-02 | Massachusetts Institute Of Technology | Parallel processing system with processor array having SIMD/MIMD instruction processing |
DE3702614A1 (de) * | 1987-01-29 | 1988-08-11 | Standard Elektrik Lorenz Ag | Digitales koppelnetz fuer leitungs- und paketvermittlung und koppeleinrichtung hierzu |
JPS63192153A (ja) * | 1987-02-05 | 1988-08-09 | Agency Of Ind Science & Technol | 並列デ−タ処理装置 |
US4964032A (en) * | 1987-03-27 | 1990-10-16 | Smith Harry F | Minimal connectivity parallel data processing system |
US4933846A (en) * | 1987-04-24 | 1990-06-12 | Network Systems Corporation | Network communications adapter with dual interleaved memory banks servicing multiple processors |
US4933895A (en) * | 1987-07-10 | 1990-06-12 | Hughes Aircraft Company | Cellular array having data dependent processing capabilities |
US5170482A (en) * | 1987-08-14 | 1992-12-08 | Regents Of The University Of Minnesota | Improved hypercube topology for multiprocessor computer systems |
US5008882A (en) * | 1987-08-17 | 1991-04-16 | California Institute Of Technology | Method and apparatus for eliminating unsuccessful tries in a search tree |
US4958273A (en) * | 1987-08-26 | 1990-09-18 | International Business Machines Corporation | Multiprocessor system architecture with high availability |
US4916652A (en) * | 1987-09-30 | 1990-04-10 | International Business Machines Corporation | Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures |
US4942517A (en) * | 1987-10-08 | 1990-07-17 | Eastman Kodak Company | Enhanced input/output architecture for toroidally-connected distributed-memory parallel computers |
US4943912A (en) * | 1987-10-13 | 1990-07-24 | Hitachi, Ltd. | Parallel processor system having control processor and array control apparatus for selectively activating different processors |
US4872133A (en) * | 1988-02-18 | 1989-10-03 | Motorola, Inc. | Floating-point systolic array including serial processors |
US4896265A (en) * | 1988-03-28 | 1990-01-23 | General Electric Company | Parallel broadcasting method and apparatus |
US4992926A (en) * | 1988-04-11 | 1991-02-12 | Square D Company | Peer-to-peer register exchange controller for industrial programmable controllers |
US5038282A (en) * | 1988-05-11 | 1991-08-06 | Massachusetts Institute Of Technology | Synchronous processor with simultaneous instruction processing and data transfer |
US5121498A (en) * | 1988-05-11 | 1992-06-09 | Massachusetts Institute Of Technology | Translator for translating source code for selective unrolling of loops in the source code |
US5056000A (en) * | 1988-06-21 | 1991-10-08 | International Parallel Machines, Inc. | Synchronized parallel processing with shared memory |
US5005120A (en) * | 1988-07-29 | 1991-04-02 | Lsi Logic Corporation | Compensating time delay in filtering signals of multi-dimensional reconvigurable array processors |
GB2223867A (en) * | 1988-09-09 | 1990-04-18 | Univ City | Multiprocessor data processing system |
US4920484A (en) * | 1988-10-05 | 1990-04-24 | Yale University | Multiprocessor/memory interconnection network wherein messages sent through the network to the same memory are combined |
US5041971A (en) * | 1988-11-30 | 1991-08-20 | Bolt Beranek And Newman Inc. | Memory accessing switch network |
US5189665A (en) | 1989-03-30 | 1993-02-23 | Texas Instruments Incorporated | Programmable configurable digital crossbar switch |
US5020059A (en) * | 1989-03-31 | 1991-05-28 | At&T Bell Laboratories | Reconfigurable signal processor |
US5181017A (en) | 1989-07-27 | 1993-01-19 | Ibm Corporation | Adaptive routing in a parallel computing system |
US5049982A (en) * | 1989-07-28 | 1991-09-17 | At&T Bell Laboratories | Article comprising a stacked array of electronic subassemblies |
US5173947A (en) * | 1989-08-01 | 1992-12-22 | Martin Marietta Corporation | Conformal image processing apparatus and method |
JPH0731780B2 (ja) * | 1989-09-08 | 1995-04-10 | 日本碍子株式会社 | 磁気ヘッド用コアの製造方法 |
US5072217A (en) * | 1989-10-31 | 1991-12-10 | International Business Machines Corporation | One-sided crosspoint switch with distributed control |
US5212777A (en) | 1989-11-17 | 1993-05-18 | Texas Instruments Incorporated | Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation |
US5239654A (en) | 1989-11-17 | 1993-08-24 | Texas Instruments Incorporated | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode |
US5218709A (en) | 1989-12-28 | 1993-06-08 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Special purpose parallel computer architecture for real-time control and simulation in robotic applications |
US5239629A (en) | 1989-12-29 | 1993-08-24 | Supercomputer Systems Limited Partnership | Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system |
US5175862A (en) * | 1989-12-29 | 1992-12-29 | Supercomputer Systems Limited Partnership | Method and apparatus for a special purpose arithmetic boolean unit |
US5197130A (en) | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
US5280474A (en) | 1990-01-05 | 1994-01-18 | Maspar Computer Corporation | Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays |
US5218676A (en) | 1990-01-08 | 1993-06-08 | The University Of Rochester | Dynamic routing system for a multinode communications network |
US5265124A (en) | 1990-02-15 | 1993-11-23 | Advanced Micro Devices, Inc. | Integrated multi-port repeater having shared resources |
US5142540A (en) * | 1990-03-13 | 1992-08-25 | Glasser Lance A | Multipart memory apparatus with error detection |
US5187801A (en) | 1990-04-11 | 1993-02-16 | Thinking Machines Corporation | Massively-parallel computer system for generating paths in a binomial lattice |
WO1991017507A1 (en) | 1990-05-07 | 1991-11-14 | Mitsubishi Denki Kabushiki Kaisha | Parallel data processing system |
US5136582A (en) * | 1990-05-29 | 1992-08-04 | Advanced Micro Devices, Inc. | Memory management system and method for network controller |
US5251097A (en) | 1990-06-11 | 1993-10-05 | Supercomputer Systems Limited Partnership | Packaging architecture for a highly parallel multiprocessor system |
US5253359A (en) | 1990-06-11 | 1993-10-12 | Supercomputer Systems Limited Partnership | Control and maintenance subsystem network for use with a multiprocessor computer system |
US5367636A (en) | 1990-09-24 | 1994-11-22 | Ncube Corporation | Hypercube processor network in which the processor indentification numbers of two processors connected to each other through port number n, vary only in the nth bit |
-
1991
- 1991-06-15 EP EP91109850A patent/EP0485690B1/en not_active Expired - Lifetime
- 1991-06-15 DE DE69131272T patent/DE69131272T2/de not_active Expired - Fee Related
- 1991-06-15 AT AT91109850T patent/ATE180586T1/de active
- 1991-08-28 CA CA002050166A patent/CA2050166A1/en not_active Abandoned
- 1991-10-01 JP JP3278900A patent/JPH04267466A/ja active Pending
- 1991-10-11 CN CN91109637A patent/CN1050919C/zh not_active Expired - Fee Related
- 1991-10-11 KR KR1019910017964A patent/KR960016880B1/ko not_active Expired - Fee Related
- 1991-10-24 BR BR919104603A patent/BR9104603A/pt unknown
- 1991-10-28 TW TW080108435A patent/TW229289B/zh active
- 1991-11-12 HU HU913542A patent/HU215139B/hu not_active IP Right Cessation
- 1991-11-12 RU SU915010148A patent/RU2084953C1/ru active
- 1991-11-13 PL PL91292368A patent/PL167329B1/pl unknown
- 1991-11-13 SK SK3440-91A patent/SK344091A3/sk unknown
- 1991-11-13 CZ CS913440A patent/CZ280210B6/cs not_active IP Right Cessation
-
1994
- 1994-09-06 US US08/301,278 patent/US5822608A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CZ344091A3 (en) | 1995-05-17 |
BR9104603A (pt) | 1992-06-23 |
EP0485690B1 (en) | 1999-05-26 |
PL167329B1 (pl) | 1995-08-31 |
RU2084953C1 (ru) | 1997-07-20 |
DE69131272D1 (de) | 1999-07-01 |
KR960016880B1 (ko) | 1996-12-26 |
DE69131272T2 (de) | 1999-12-09 |
TW229289B (cs) | 1994-09-01 |
HUT59496A (en) | 1992-05-28 |
JPH04267466A (ja) | 1992-09-24 |
CN1061482A (zh) | 1992-05-27 |
HU913542D0 (en) | 1992-02-28 |
EP0485690A2 (en) | 1992-05-20 |
CA2050166A1 (en) | 1992-05-14 |
ATE180586T1 (de) | 1999-06-15 |
SK344091A3 (en) | 1995-01-12 |
US5822608A (en) | 1998-10-13 |
CN1050919C (zh) | 2000-03-29 |
EP0485690A3 (en) | 1994-09-21 |
HU215139B (hu) | 1998-09-28 |
PL292368A1 (en) | 1992-09-07 |
KR920010473A (ko) | 1992-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CZ280210B6 (cs) | Paralelní procesorový systém | |
Uhr | Algorithm-structured computer arrays and networks: architectures and processes for images, percepts, models, information | |
EP3729279B1 (en) | A unified memory organization for neural network processors | |
US5809292A (en) | Floating point for simid array machine | |
US5815723A (en) | Picket autonomy on a SIMD machine | |
Dongarra et al. | Solving linear systems on vector and shared memory computers | |
JáJá | Parallel algorithms | |
Duncan | A survey of parallel computer architectures | |
US5754871A (en) | Parallel processing system having asynchronous SIMD processing | |
US5842031A (en) | Advanced parallel array processor (APAP) | |
US5713037A (en) | Slide bus communication functions for SIMD/MIMD array processor | |
US5794059A (en) | N-dimensional modified hypercube | |
US5187801A (en) | Massively-parallel computer system for generating paths in a binomial lattice | |
US5247613A (en) | Massively parallel processor including transpose arrangement for serially transmitting bits of data words stored in parallel | |
US7673118B2 (en) | System and method for vector-parallel multiprocessor communication | |
Bartoloni et al. | A hardware implementation of the APE100 architecture | |
EP0570952A2 (en) | Slide network for an array processor | |
Lopresti | An Architecture for Programmable Systolic Arrays | |
Krikelis et al. | An Associative Approach to Computer | |
Lopresti | Programmable Systolic Arrays | |
Bezek et al. | The Execube parallel processor chip and cellular automata for tactical route planning | |
JPH0668282A (ja) | 浮動小数点コンピュータ・システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
IF00 | In force as of 2000-06-30 in czech republic | ||
MM4A | Patent lapsed due to non-payment of fee |
Effective date: 20061113 |