CS235602B1 - Memory of digital computer controlled by data flow - Google Patents

Memory of digital computer controlled by data flow Download PDF

Info

Publication number
CS235602B1
CS235602B1 CS532183A CS532183A CS235602B1 CS 235602 B1 CS235602 B1 CS 235602B1 CS 532183 A CS532183 A CS 532183A CS 532183 A CS532183 A CS 532183A CS 235602 B1 CS235602 B1 CS 235602B1
Authority
CS
Czechoslovakia
Prior art keywords
memory
input
output
node
associative
Prior art date
Application number
CS532183A
Other languages
Czech (cs)
Inventor
Vaclav Chlouba
Original Assignee
Vaclav Chlouba
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vaclav Chlouba filed Critical Vaclav Chlouba
Priority to CS532183A priority Critical patent/CS235602B1/en
Publication of CS235602B1 publication Critical patent/CS235602B1/en

Links

Landscapes

  • Multi Processors (AREA)

Abstract

Vynález se týká počítačů s novou architekturou, zaměřených na dosažení vysokého výkonu paralelním prováděním ope.rací. Podstatou vynálezu je uspořádání paměti číslicového počítače řízeného tokem dat. Pamět je rozdělena na část asociativní a paměťovou. Výběr instrukčních buněk podle obsahu umožňuje vysokou rychlost předávání do bloku paralelně pracujících procesorů. Oblastí využití jsou výkonné číslicové počítače, zejména pro vědecké a technické výpočty.'The invention relates to computers with new architecture, to achieve high performance by parallel execution of the op. The essence of the invention is the arrangement of memory a digital computer controlled by a data stream. The memory is divided into associative and memory. Selection of instruction cells according to content allows high forwarding speed into a block of parallel processors. Areas of application are powerful digital computers, in particular for scientific and technical purposes calculations. '

Description

Vynález se týká paměti číslicového počítače řízeného tokem dat.The present invention relates to a digital computer memory controlled by a data flow.

Vývoj číslicových počítačů se vyznačuje stále rostoucími požadavky na jejich výkon. Protože zvyšování pracovních kmitočtů je omezeno jak rychlostí logických prvků, tak i konečnou rychlostí šíření signálů na spojovacích vedeních, je k dispozici - kromě použití zcela nových fyzikálních principů - prakticky jediný způsob, jak zvýšit výkon počítačů, a to paralelním prováděním funkcí. Toto paralelní provádění lze realizovat na několika úrovních a tomu odpovídá i řešení struktury systému:The development of digital computers is characterized by ever-increasing performance requirements. Since the increase in operating frequencies is limited both by the speed of the logic elements and the final speed of signal propagation on the interconnecting lines, there is practically the only way to increase the performance of computers by performing functions in parallel to the application of completely new physical principles. This parallel implementation can be realized at several levels, and the structure of the system corresponds to that:

a/ Řetězový procesor, který provádí operací nebo skupinu operací, rozdělených do řady elementárních kroků, v časovém překrytí na celém bloku dat. Jde o jakousi analogii pásové výroby.a / A chain processor that performs an operation or a group of operations, divided into a series of elementary steps, overlapping over the entire data block. It is a kind of analogy of belt production.

b/ Specializovaný maticový procesor, který provádí jeden sled operací na velkém souboru dat současně.b / A specialized matrix processor that performs one sequence of operations on a large data set at a time.

o/ Multiprooesorový systém vybavený několika procesory, z nichž každý řeší nezávisle bud jednu z několika úloh, nebo jednu z několika samostatných částí jedné úlohy, zatímco ostatní části úlohy se řeší v ostatních procesorech a podobně.o / A multi-processor system equipped with several processors, each of which independently solves either one of several tasks or one of several separate parts of one task, while the other parts of the task are handled in other processors and the like.

Každé z těchto řešení má své výhody a nevýhody. Multiprocesorový systém je plně univerzální, ovšem zvýšení výkonu je - vzhledem k vedlejším činnostem, souvisejícím s organizací práce systému - menší, než by odpovídalo součinu výkonu jednoho procesoru a počtu procesorů. Řetězový procesor je sice výkonnější, ale jeho skutečný výkon silně závisí na charakteru řešených úloh.. Společnou nevýhodou obou řešení je nízký stupeň opakovaného použití polovodičových prvků velké integrace - s výjimkou prvků pamětových - což je nevýhodné jak z hlediska spolehlivosti, tak i ekonomie ve výrobě, rozměrů, příkonu a dalších parametrů.Each of these solutions has its advantages and disadvantages. The multiprocessor system is fully versatile, but performance gains are smaller than the product of single processor performance and number of processors due to the side-work associated with organizing system work. The chain processor is more powerful, but its actual performance depends heavily on the nature of the tasks to be solved. A common disadvantage of both solutions is the low reuse of large integration semiconductor elements - except for memory elements - which is disadvantageous in terms of reliability and manufacturing economy , dimensions, power consumption and other parameters.

Nejomezenější z hlediska použitelnosti je maticový procesor, který je vhodný pouze pro řešení úloh určitého typu.The most limited in terms of usability is the matrix processor, which is only suitable for solving tasks of a certain type.

Z této situace vyplynuly snahy o nalezení nových architektur, zásadně se lišících od klasického řešení, připisovaného zpravidla von Neumannovi, jež by umožnily stupňování paralelní činnosti, a tím i výkonu číslicových počítačů při současném využití všech výhod vyplývajících z použití polovodičových prvků velké a rozsáhlé integrace. Jedním z těchto perspektivních způsobů řešení systému číslicového počítače jsou takzvané počítače řízené tokem dat, které lze charakterizovat těmito základními vlastnostmi:This situation has resulted in efforts to find new architectures that are fundamentally different from the classical solution usually attributed to von Neumann, which would allow the parallelization of the parallel activity and thus the performance of digital computers, while exploiting all the advantages of using semiconductor elements of large and extensive integration. One of these prospective ways of solving a digital computer system is the so-called flow-controlled computers, which can be characterized by the following basic characteristics:

- volitelný počet shodných procesorů pracujících paralelně,- optional number of identical processors operating in parallel,

- spouštění každé operace ihned, jakmile jsou k dispozici její operandy,- starting each operation as soon as its operands are available,

- nevyžaduje operační systém - který u dnešních počítačů snižuje užitečný výkon až i na méně než polovinu - s výjimkou operačního systému případného minipočítače obsluhujícího vstupy a výstupy.- does not require an operating system - which reduces useful performance to less than half in today's computers - except for the operating system of a possible minicomputer that handles inputs and outputs.

Sériový tvar programů dnešních počítačů není ovšem pro počítače řízené tokem dat vhodný, protože neumožňuje vyjádřit možné paralelnosti provádění. Vhodnějším způsobem reprezentace programů toku dat jsou orientované grafy, jejichž uzly zobrazují operace a hrany přenosy proměnných mezi operacemi.However, the serial form of programs of today's computers is not suitable for computers controlled by data flow because it does not allow to express possible parallel execution. A more convenient way to represent data flow programs is oriented graphs whose nodes display operations and edges by transmitting variables between operations.

Uložení programu ve tvaru orientovaného grafu však vyžaduje novou organizaci paměti počítače řízeného tokem dat. Ze způsobu činnosti takového počítače vyplývá, že zde lze s výhodou využít principu asociativní paměti.However, saving a program in the form of an oriented graph requires a new organization of the computer's flow-controlled memory. It follows from the method of operation of such a computer that the principle of associative memory can be used advantageously.

Předmětem tohoto vynálezu je pamět počítače řízeného tokem dat, obsahující asociativní část s dotazovým a maskovacím registrem a blokem pamětí shody, dále pamětovou část, vyrovnávací pamět a řídicí procesor, přičemž výstup vyrovnávací paměti je spojen se vstupem dotazo3 váného registru, vstupem asociativní části, vstupem paměťové části, vstupem řídicího registru a výstupní sběrnicí, která je také spojena s výstupem asociativní části a s výstupem paměťové části, zatímco další výstup asociativní části a výstup paměťové části jsou spojeny s dalšími vstupy řídicího procesoru, přičemž jeden z výstupů řídicího procesoru je spojen se vstupem maskovacího registru.The object of the present invention is a flow control computer memory comprising an associative part with a query and mask register and a match memory block, a memory part, a buffer and a control processor, the buffer output being connected to the queried register input, associative part input, input a memory portion, a control register input, and an output bus, which is also coupled to the output of the associative portion and the output of the memory portion, while the other output of the associative portion and the output of the memory portion are coupled to the other inputs of the control processor; masking register.

Hlavní výhodou tohoto řešení je rozdělení paměti ve směru délky slova na dvě části, z nichž jen jedna, rozměrově menší, je vybavena schopností asociativního výběru, zatímco druhá část je tvořena standardní pamětí s libovolným výběrem. Tímto uspořádáním se dosahuje podstatné úspory proti řešení s celou pamětí asociativní. Současný stav technologie polovodičových integrovaných pamětí realizaci potřebných prvků s požadovanými parametry kapacity a rychlosti při přijatelných nákladech umožňuje.The main advantage of this solution is the division of memory in the word length direction into two parts, of which only one, dimensionally smaller, is equipped with an associative selection capability, while the other part consists of standard random selection memory. This arrangement results in substantial savings over the full memory associative solution. The state of the art of semiconductor integrated memory technology enables the realization of the necessary elements with the required capacity and speed parameters at reasonable costs.

Podstata vynálezu bude zřejmá z dalšího popisu s použitím výkresů, kde na obr. 1 je znázorněn příklad úseku programu pro počítač řízený tokem dat, obr. 2 znázorňuje základní strukturu počítače řízeného tokem dat, obr. 3 obsahuje příklad uspořádání polí v buňkách paměti podle vynálezu a obr. 3b příslušný formát hodnot na vstupu této paměti, na obr. 4 je blokové schéma paměti podle vynálezu pro počítač řízený tokem dat, na obr. 5 je program v paměti podle vynálezu odpovídající příkladu na obr. 1, obr. 6 je blokové schéma zdokonaleného uspořádání paměti podle vynálezu pro počítač řízený tokem dat.BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 shows an example of a program section for a data flow-controlled computer; FIG. 2 shows the basic structure of a data-flow-controlled computer; and Fig. 3b shows a corresponding value format at the input of this memory; Fig. 4 is a block diagram of a memory according to the invention for a computer controlled by a data flow; Fig. 5 is a program in memory according to the invention corresponding to the example in Fig. 1; diagram of an improved memory arrangement according to the invention for a computer controlled by data flow.

Na obr. 1 je znázorněn jednoduchý příklad úseku programu pro vyčíslení algebraického výrazu. Graf obsahuje dva typy uzlů: uzly 5, δ, 8 a 2' 12 aritmetických operací násobení a sčítání, každý se dvěma vstupy a uzly l_r 2, 2' £ prázdné operace NO, jejíž funkcí je pouze zdvojení hodnoty, přicházející na její jediný vstup. Zvláštním případem je uzel 9 násobení konstantou s jedním vstupem.Fig. 1 shows a simple example of a program section for enumerating an algebraic expression. The graph contains two types of nodes: nodes 5, δ, 8 and 2 '12 of arithmetic multiplication and addition operations, each with two inputs and nodes 1_r 2, 2' £ of an empty NO operation whose function is only doubling the value coming to its single input . A special case is the node 9 multiplied by a constant with one input.

Výpočet probíhá zcela asynchronně, určující jsou pouze okamžiky příchodu proměnných na vstupy uzlů a ovšem doba potřebná k provedení jednotlivých operací. Je zřejmé, že systém nepotřebuje žádnou synchronizaci mezi bloky ani ústřední řadič.The calculation is performed asynchronously, only the moment of arrival of variables at the node inputs and the time needed for individual operations are determined. Obviously, the system does not need any synchronization between blocks or the central controller.

Jednoduchý příklad podle obr. 1 umožňuje provádět v každém okamžiku současně dvě operace, čili doba výpočtu se zkracuje přibližně na polovinu. U složitějších výpočtů může být toto zkrácení doby výpočtu - podle charakteru úlohy - větší nebo menší. Pokud je k dispozici dost úloh nebo větví jedné úlohy, aby byly všechny procesory stále zaměstnány, je celkový výkon dán součinem počtu procesorů a výkonu jednoho procesoru, neboť předpokládáme vzájemně shodné procesory.The simple example of FIG. 1 allows two operations to be performed simultaneously at any one time, i.e. the calculation time is reduced by approximately half. For more complicated calculations, this shortening of the calculation time, depending on the nature of the task, may be greater or lesser. If there are enough jobs or branches of a job to keep all processors busy, the total performance is given by the product of the number of processors and the performance of one processor, since we assume that the processors match.

Operace v příkladu na obr. 1 jsou ovšem jen zlomkem operačního kódu procesorů. Kromě základních aritmetických a logických operací lze uvažovat i další operace jako mocniny a odmocniny a funkce, zejména goniometrické a další.The operations in the example of Fig. 1, however, are only a fraction of the operating code of the processors. In addition to basic arithmetic and logical operations, other operations such as powers and roots and functions, especially trigonometric and others, can be considered.

Základní struktura počítače řízeného tokem dat, uvažovaná v tomto vynálezu, je znázorněna na obr. 2. Obsahuje paměť 100, blok 20' vzájemně shodných procesorů, distribuční síť 30, rozhodovací síť 40 a přepínač 50.The basic structure of the data-flow-controlled computer contemplated by the present invention is illustrated in Fig. 2. It includes memory 100, mutually matched processor block 20 ', distribution network 30, decision network 40, and switch 50.

Funkci této struktury lze stručně popsat takto: V paměti 100 jsou uloženy programy ve tvaru orientovaných grafů. Jakmile některý uzel dostane všechny své vstupní hodnoty, tj. operandy, pamět 100 vyšle příslušnou instrukci do distribuční sítě 30, která ji zavede do jednoho z volných procesorů v bloku 20 procesorů. Rozhodovací sít 40 řadí výsledky operací, probíhajících v bloku 20 procesorů, do společného vedení. Výsledky postupují přes přepínač 50 do paměti 100, kde se ukládají jako vstupy do příslušných uzlů a tak dále. Přepínač 50 umožňuje jednak vkládání nových programů a vstupních hodnot do paměti 100, jednak vysílání výsledků z bloku 20 procesorů na výstup systému.The function of this structure can be briefly described as follows: The memory 100 stores programs in the form of oriented graphs. Once a node receives all of its input values, i.e. operands, the memory 100 sends the appropriate instruction to the distribution network 30, which loads it to one of the free processors in the processor block 20. The decision network 40 assigns the results of the operations taking place in the processor block 20 to a common line. The results pass through switch 50 to memory 100 where they are stored as inputs to respective nodes and so on. The switch 50 allows the insertion of new programs and input values into the memory 100 as well as the transmission of results from the processor block 20 to the system output.

Formát instrukcí v paměti 100 podle vynálezu je naznačen na obr. 3a. Každá instrukční buňka se skládá ze dvou částí: asociativní a pamětové. Asociativní část obsahuje' například tato čtyři pole: 101 - označení programu /uživatele/, 102 - číslo uzlu programu, 103 - příznak platnosti hodnoty a označení vstupu uzlu, pro který je hodnota určena, 104 - index.The format of instructions in the memory 100 of the present invention is shown in Fig. 3a. Each instruction cell consists of two parts: associative and memory. For example, the associative part includes the following four fields: 101 - program / user designation, 102 - program node number, 103 - value validity flag, and node input for which the value is intended, 104 - index.

Pole 101 umožňuje, aby v paměti mohlo být současně několik různých programů, které se vzájemně neovlivňuji, pole 104 se uplatní při opakovaném použití části programu v průběhu výpočtu, například při iteračnioh výpočtech nebo při zpracování složitějších datových struktur, jako jsou matice nebo vektory. Index zabezpečuje, aby do uzlu přišly vždy jen hodnoty, které k sobě patří. Uzly, které jsou součástí smyčky v programu, jsou odlišeny příznakem v poli 211 operačního znaku.Array 101 allows several different programs that do not interact with each other at the same time, array 104 applies when a portion of a program is reused during a calculation, for example, iterative calculations or processing of more complex data structures such as matrices or vectors. The index ensures that only the values that belong to each other come into the node. Nodes that are part of a loop in a program are distinguished by a flag in the Operational Character field 211.

Pamětová část instrukční buňky obsahuje tato pole: 211 - operační znak; určuje, která operace se má provést, 212 - číslo následujícího uzlu programu a označení vstupu, na který se má přenést výsledek operace, případně příznak výstupu, má-li se hodnota vyslat přepínačem 50 na výstup, 213 - hodnota.The memory portion of the instruction cell comprises the following fields: 211 - operation character; determines which operation is to be performed, 212 - the number of the next program node and an indication of the input to which the result of the operation is to be transferred, or an output flag if the value is to be transmitted by switch 50 to output;

Poznámka. Je výhodné, aby pole 212 mohlo obsahovat označení například dvou uzlů a jejich vstupů, protože tím se .umožní větvení programu v každém uzlu nebo současné vyslání hodnoty na výstup bez větší ztráty času.Note. It is preferred that the field 212 be able to include, for example, two nodes and their inputs, as this will allow program branching at each node or simultaneous outputting of the value without much time loss.

Popis v předchozích odstavcích odpovídá uzlům, reprezentujícím operace se dvěma vstupy. Řada operací však pracuje jen s jedním vstupem. Tyto operace mají zvláštní příznak v poli 211, příznak platnosti v poli 103 je trvale II a pole 213 se nevyužívá. Zvláštním případem jsou operace s konstantou, opět odlišené příznakem v poli 211, u nichž je příznak v poli 103 také trvale II, přičemž v poli 213 je uložena příslušná konstanta.The description in the previous paragraphs corresponds to the nodes representing two-input operations. However, many operations work with only one input. These operations have a special flag in field 211, the validity flag in field 103 is permanently II, and field 213 is not used. A special case is constant operations, again distinguished by a flag in field 211, in which the flag in field 103 is also permanently II, with the corresponding constant being stored in field 213.

Na obr. 3a jsou vyčerněním levého horního rohu znázorněna pole, jejichž obsah se v průběhu řešení úlohy mění. Obsah ostatních polí zůstává po celou dpbu řešení úlohy beze změny.Fig. 3a shows the fields whose contents change as the task is solved by means of a black upper left corner. The contents of the other fields remain unchanged throughout the dpbu solution.

Na obr. 3b je znázorněn formát výsledků vystupujících z bloku 20 procesorů a procházejících přes rozhodovací sít 40 a přepínač 50 na vstup paměti 100. Jak je zřejmé, výsledky obsahují pět polí: 301 - označení programu, 302 - číslo uzlu programu, do něhož výsledek přichází jako vstupní hodnota, 303 - označení vstupu tohoto uzlu, 304 - index, 305 - hodnota.Fig. 3b shows the format of the results output from the processor block 20 and passing through the decision network 40 and the switch 50 to the memory input 100. As can be seen, the results contain five fields: 301 - program designation, 302 - program node number it comes as an input value, 303 - an indication of the input of this node, 304 - an index, 305 - a value.

Poznámka. Na obr. 3a a 3b jsou vynechána pole redundantních informací, určených k zabezpečení proti chybám. Obdobně se neuvažují další pomocná pole v instrukčních buňkách umožňující například vstup přídavných podmínek do uzlů programu. Tato pole nemají vliv na podstatu vynálezu.Note. Figures 3a and 3b omit fields of redundant information intended to provide error protection. Similarly, other auxiliary fields in the instruction cells allowing, for example, additional conditions to enter program nodes are not considered. These fields do not affect the nature of the invention.

Jak je zřejmé z obr. 4, pamět 100 podle vynálezu sestává z asociativní’části 11, vybavené dotazovým registrem 12, maskovacím registrem 13 a blokem 14 pamětí shody a dále pamětové části 21, vyrovnávací paměti 31 a řídicího procesoru 41. Funkci paměti 100 podle vynálezu můžeme popsat takto: Předpokládáme, že v paměti 100 je už uložen program v podobě orientovaného grafu. Když se na vstupu paměti 100 objeví nová hodnota, at už přicházející prostřednictvím přepínače 50 z okolí nebo jako výsledek z bloku 20 procesorů přes rozhodovací síň 40, vloží se nejprve do vyrovnávací paměti 31. Z obsahu polí 301, 302 a 304 řídicí procesor 41 vytvoří klíč, který vloží do dotazového registru 12 a příslušnou masku do maskovacího registru 13. Pak proběhne asociativní porovnání klíče s obsahem asociativní části lj., jehož cílem je vyhledání uzlu, do něhož má přicházející hodnota vstoupit jako operand. Tento uzel je charakterizován tím, že v polích 101, 102 a 104 má tentýž obsah, jaký je v polích 301,As can be seen from FIG. 4, the memory 100 of the present invention consists of an associative part 11, provided with a query register 12, a mask register 13 and a block 14 of a match memory, and a memory part 21, a buffer 31 and a control processor 41. The invention can be described as follows: We assume that the program 100 is already stored in the form of an oriented graph. When a new value appears at the memory input 100, whether coming from the ambient switch 50 or as a result from the processor block 20 through the decision hall 40, it is first inserted into the buffer 31. From the field contents 301, 302 and 304, the control processor 41 creates the key which it inserts in the query register 12 and the corresponding mask in the mask register 13. Then, an associative comparison of the key with the content of the associative part 11 is carried out in order to find the node to which the incoming value is to enter as an operand. This node is characterized in that it has the same content in fields 101, 102 and 104 as in fields 301,

302 a 304 hodnoty nyní uložené ve vyrovnávací paměti 31. Za předpokladu, že takový uzel /instrukční buňka/ v paměti 100 je, řídicí jednotka 4J. zjistí stav pole 103 nalezené buňky se zřetelem k obsahu polí 211 a 303. Mohou nastat tyto případy:302 and 304 the values now stored in the buffer 31. Assuming that such a node / instruction cell / is in the memory 100, the control unit 41. detects the state of the cell 103 found with respect to the contents of fields 211 and 303. The following cases may occur:

aa/ Nalezená buňka představuje uzel s jediným vstupem nebo uzel operace s konstantou.aa / The found cell represents a single input node or a constant operation node.

V tomto případě se celá instrukční buňka - kromě obsahu pole 103 - spolu s obsahem pole 305 hodnoty ihned vyšle na výstupní sběrnici 51 a přes distribuční sít 30 k provedení v některém z volných procesorů v bloku 20 procesorů - viz obr. 2. Při vyslání instrukční buňky se obsah pole 103 nemění.In this case, the entire instruction cell - except for the contents of the array 103 - along with the contents of the value array 305 is immediately sent to the output bus 51 and through the distribution network 30 to execute in one of the free processors in the processor block 20. the contents of field 103 do not change.

ab/ Nalezená buňka představuje uzel se dvěma vstupy a příznak v poli 103 signalizuje, že jedna ze vstupních hodnot je již k dispozici v poli 213 pametové části. Také v tomto případě se celá instrukční buňka - kromě obsahu pole 103 - spolu s obsahem pole 305 vyšle z paměti 100 výstupní sběrnicí 51 k provedení. Současně se obsah pole 103 vynuluje.ab / The cell found represents a node with two inputs and the flag in field 103 indicates that one of the input values is already available in field 213 of the memory section. Also in this case, the entire instruction cell - except for the field contents 103 - together with the field contents 305 is sent from the memory 100 by the output bus 51 for execution. At the same time, the contents of field 103 are reset.

ac/ Nalezená buňka představuje uzel se dvěma vstupy, avšak podle příznaku v poli 103 je pole 213 prázdné, takže vyrovnávací paměň 31 nyní obsahuje teprve první z obou vstupních operandů uzlu. V tomto případě se obsah pole 305 zapíše do pole 213 a podle obsahu pole 303 se opraví příznak v poli 103. Na výstupní sběrnici 51 se nic nevysílá.ac / The found cell represents a node with two inputs, but according to the flag in field 103, field 213 is empty, so buffer 31 now contains only the first of the two input operands of the node. In this case, the contents of field 305 are written to field 213, and the flag in field 103 is corrected according to field content 303. Nothing is transmitted on the output bus 51.

Jestliže hledání v asociativní části 11 paměti 100 nevedlo k nalezení uzlu, tj. žádná z instrukčních buněk nesplňuje podmínku shody obsahu odpovídajících si polí, přicházejí v úvahu tyto příčiny:If the search in the associative part 11 of the memory 100 did not result in finding a node, i.e. none of the instruction cells meets the condition of matching the contents of the corresponding fields, the following causes are considered:

ba/ Pro dané označení programu v polích 101, 301 neexistuje v paměti 100 číslo uzlu programu 102 shodné s obsahem pole 302. Příčinou je pravděpodobně chyba v programu.ba / For a given program designation in fields 101, 301, there is no program node number 102 in memory 100 that matches the contents of field 302. This is probably due to a program error.

bb/ Program s označeními obsažených v poli 301 v paměti 100 není. Příčinou je nejspíše chyba operátora, který nezavedl program do paměti; předpokládáme, že jak obsah paměti 100, tak i přicházející hodnoty jsou zabezpečeny kontrolními bity a že tedy obsah pole 301 nemůže být chybný.bb / The program with the labels contained in field 301 is not in memory 100. This is most likely caused by an error by the operator who did not load the program into memory; it is assumed that both the contents of the memory 100 and the incoming values are secured by check bits and that, therefore, the contents of the array 301 cannot be erroneous.

bc/ Pro dané označení programu v polích 101, 301 a číslo uzlu v polích 102, 302 není v paměti 100 uzel, jehož index v poli 104 odpovídá obsahu pole 304, což znamená, že přicházející hodnota nepatří do nejblíže příštího cyklu provedení tohoto uzlu, ale až do některého dalšího. Pro tento případ má vyrovnávací pameň 31 několik odkládacích míst, kde se tato hodnota podrží. Současně se případ zaregistruje v paměti řídicího procesoru 41, který po každé opravě indexu v poli 104 příslušné instrukční buňky daného programu zkusí, zda se odložená hodnota již může použít. Protože případy, kdy hodnoty přijdou v jiném pořadí než jsou zapotřebí, jsou obecně málo pravděpodobné, stačí ve vyrovnávací paměti 31 rezervovat jen několik míst, odhadem například 1 promile počtu míst v částech 11 a 21 paměti 100.bc / For a given program designation in fields 101, 301 and a node number in fields 102, 302, there is no node in memory 100 whose index in field 104 corresponds to field 304, meaning that the incoming value does not belong to the next cycle of that node execution, but until some other. In this case, buffer 31 has several storage locations where this value is retained. At the same time, the case is registered in the memory of the control processor 41, which after each index correction in field 104 of the respective instruction cell of the program tries to determine whether the deferred value can already be used. Since the values where the values come in a different order than needed are generally unlikely, it is sufficient to reserve only a few places in the buffer 31, for example an estimate of 1 per mille of the number of places in parts 11 and 21 of the memory 100.

bd/ Jiný chybový stav nastane, jestliže příznak v poli 103 signalizuje určení hodnoty v poli 213 pro týž vstup jako pole 303- pro hodnotu v poli 305. Také v tomto případě jde o chybu v programu.bd / Another error condition occurs when the flag in field 103 signals the determination of the value in field 213 for the same input as field 303- for the value in field 305. Also in this case, it is a program error.

Případy ba, bb a bd zjištuje řídicí procesor 41 a hlásí obsluze. Aby chyba nezpůsobila zastavení všech programů uložených v paměti 100, odloží se hodnota, která vyvolala chybový stav, do některého rezervního místa ve vyrovnávací paměti 31.Cases ba, bb and bd are detected by the control processor 41 and reported to the operator. To prevent the error from causing all programs stored in memory 100 to stop, the value that caused the error condition is stored in some buffer space 31.

Pro ilustraci je uveden na obr. 5 obsah paměti 100 podle vynálezu pro program pro výpočet podle obr. 1. Program obsahuje celkem deset uzlů, z toho čtyři uzly jsou pomocné prázdné operace, tři uzly představují operaci násobení, dva uzly sčítání a jeden uzel násobení konstantou. Pokud se nepředpokládá opakované použití programu ve smyčce, zůstanou indexová pole 104 a 304 prázdná. Před spuštěním programu jsou prázdná i všechna pole 213 hodnot. Příchodem vstupních hodnot x a y, jejichž formát je znázorněn na obr. 5 dole, se program spustí. Vstupní hodnoty x a y se nejprve provedením-uzlů _1, 2, 3 a 4 ztrojí a objeví se jednak jako vstupní hodnoty uzlů 5 a £ - viz obr. 1 - jednak jako vstupní hodnoty uzlu 8. Zatímco výstupy uzlů £ a £ vstoupí do uzlu výstup z uzlu 8 se objeví na vstupu uzlu 9 násobení konstantou. Výstup z uzlu 7 a výstup z uzlu £ spolu spustí závěrečný uzel 10, jehož výsledek se vyšle na výstup.By way of illustration, FIG. 5 shows the contents of the memory 100 according to the invention for the calculation program of FIG. 1. The program comprises a total of ten nodes, four of which are auxiliary empty operations, three nodes represent a multiplication operation, two addition nodes and one multiplication node. constant. If the program is not reused in a loop, the index fields 104 and 304 remain blank. All value fields 213 are empty before the program is started. By entering the input values x and y, the format of which is shown in Fig. 5 below, the program is started. The input values x and y are first truncated by executing nodes 1, 2, 3 and 4 and appear as input values of nodes 5 and £ - see Fig. 1 - as input values of node 8. While the outputs of nodes £ and £ enter the node output from node 8 a constant multiplication appears at the node 9 input. Output from node 7 and output from node 6 together trigger the final node 10, the result of which is output.

Operace, odpovídající jednotlivým uzlům programu, probíhají zcela nezávisle a asyn235602 chronně. Každá se spustí, jakmile jsou k dispozici všechny její vstupní hodnoty, operandy.The operations corresponding to each node of the program run completely independently and asyn235602 chronically. Each is triggered when all its input values, operands, are available.

Jak plyne z grafu na obr. liz popisu, v tomto jednoduchém případě probíhá výpočet paralelně ve dvou větvích, čili doba výpočtu je asi poloviční, než by byla při sekvenčním výpočtu stejně rychlým konvenčním procesorem.As can be seen from the graph in FIG. 1 of the description, in this simple case, the calculation is performed in parallel in two branches, i.e. the calculation time is about half that in a sequential calculation would be an equally fast conventional processor.

Vyjde-li se ze současného stavu technologie polovodičových integrovaných obvodů, může se odhadnout doba zpracování jedné hodnoty, tj. vyhledání příslušného uzlu v paměti 100 podle vynálezu a vyslání instrukční buňky sběrnicí 51 asi na 0,5 až 1 jus, zatímco průměrná doba operace procesoru v bloku 20 procesorů bude asi 4 /ís. Z toho plyne, že paměť 100 může obsloužit asi čtyři procesory. Při požadavku vyššího celkového výkonu je možno uspořádání zdokonalit podle obr. 6, kde paměť 100 podle vynálezu obsahuje navíc multiplexor 61, zatímco ostatní části paměti 100, tj. asociativní část 11 s dotazovým registrem 12, maskovacím registrem 13 a blokem 14 pamětí shody, dále paměťová část 21 a vyrovnávací paměť 31, jsou rozděleny do několika shodných a samostatných bloků, pracujících paralelně. Výstupní sběrnice 51 těchto samostatných bloků jsou zavedeny do distribuční sítě 30, která má na rozdíl od předešlé potřebný počet vstupů a umožňuje současné propojení těchto vstupů s výstupy. Pokud řídicí procesor 41 postačí svým výkonem, může být společný pro celou paměť 100 nebo také rozdělen na několik částí, případně v hierarchickém uspořádání.Based on the state of the art of semiconductor integrated circuit technology, the processing time of a single value, i.e., finding the appropriate node in the memory 100 of the present invention and sending the instruction cell through the bus 51, can be estimated to be about 0.5 to 1 jus. in block 20 of processors will be about 4 / sec. Accordingly, the memory 100 can serve about four processors. 6, where the memory 100 according to the invention additionally comprises a multiplexer 61, while the other parts of the memory 100, i.e. the associative part 11 with the query register 12, the mask register 13 and the block 14 of the match memories, further the memory portion 21 and the buffer 31 are divided into several identical and separate blocks operating in parallel. The output buses 51 of these separate blocks are introduced into a distribution network 30 which, unlike the previous number, has the necessary number of inputs and allows simultaneous interconnection of these inputs with the outputs. If the control processor 41 is sufficient in its performance, it may be common to the entire memory 100 or may also be divided into several parts, optionally in a hierarchical configuration.

Multiplexor 61 má za úkol nejprve rozmístit uzly programu i celé programy tak, aby všechny bloky paměti 100 a také procesory v bloku 20 procesorů mohly pracovat současně, aby se všechny prostředky systému využily s cílem dosažení nejvyššího výkonu. Možných způsobů řízení multiplexoru 61 je jistě celá řada, jako nej jednodušší příklad je možno uvést použití čísla uzlu programu modulo' n, kde n je počet bloků paměti 100.The multiplexer 61 is first to deploy the program nodes and the entire programs so that all memory blocks 100, as well as the processors in the processor block 20, can operate at the same time to utilize all system resources for maximum performance. There are a number of possible ways of controlling the multiplexer 61, the simplest example being the use of the node number of the modulo 'n program, where n is the number of blocks of memory 100.

Řešení systému řízené tokem dat podle obr. 6 s blokem 20 obsahujícím například 20 procesorů a pamětí 100 podle vynálezu, rozdělenou do pěti až osmi paralelně pracujících bloků, umožňuje při dnešním stavu technologie polovodičových integrovaných prvků dosáhnout výkonu řádu 5 M operací/s.The flow control system of FIG. 6 with a block 20 containing, for example, 20 processors and a memory 100 according to the invention, divided into five to eight parallel blocks, allows the semiconductor integrated circuit technology to achieve an order of 5M operation / sec.

Kromě vysokého výkonu vykazuje systém podle obr. 2 a 6 výhodu stavebnicovosti, tj. možnosti vytvářet různě výkonné systémy volbou poctu procesorů v bloku 20 procesorů a volbou počtu bloků v paměti 100, aniž by bylo nutno jakkoli upravovat programové prostředky. Další výhodou je opakované použití celé řady shodných bloků, jak procesorů, paměťových i dalších, což umožňuje využití výhod prvků velké, případně rozsáhlé integrace, a tedy ekonomickou realizaci celého systému s dalšími příznivými důsledky pro spolehlivost, příkon, objem a podobně.In addition to the high performance, the system of FIGS. 2 and 6 has the advantage of modularity, i.e. the ability to create differently efficient systems by selecting the number of processors in the processor block 20 and selecting the number of blocks in memory 100 without the need to modify the software. Another advantage is the repeated use of a number of identical blocks, both processors, memory and others, which allows to take advantage of the elements of large or extensive integration and thus economical implementation of the whole system with other favorable consequences for reliability, power, volume and the like.

Další výhodou řešení podle vynálezu je možnost v případě poruchy některého bloku paměti 100 nebo některého procesoru v bloku 20 procesorů tento blok, případně procesor zásahem do řízení multiplexoru £1., respektive distribuční sítě 30 vyřadit z přidělování a pokračovat v provozu sice s poněkud sníženými parametry, ale bez nutnosti jakkoli měnit řešené programy.A further advantage of the solution according to the invention is the possibility, in the event of a failure of a memory block 100 or a processor in the processor block 20, to block the block or processor by intervening in the control of the multiplexer 31 or the distribution network 30. , but without having to change the programs.

Na schématech na obr. 4 a 6 jsou pro přehlednost znázorněna jen ta vedení, která jsou důležitá z hlediska podstaty vynálezu. Vynechána jsou také hradla na těchto vedeních, kterými řídicí procesor 41 řídí přenosy mezi jednotlivými bloky uvnitř paměti 100.For the sake of clarity, the diagrams in FIGS. 4 and 6 show only those lines which are important from the point of view of the invention. Gateways on these lines through which the control processor 41 controls transfers between individual blocks within the memory 100 are also omitted.

Konkrétní realizace paměti 100 podle vynálezu bude vyžadovat obvody pro kontrolu správnosti vstupních i výstupních hodnot. Ani tyto obvody přímo nesouvisejí s podstatou vynálezu, a proto jsou na schématech na obr. 4 a 6 pro přehlednost také vynechány.A particular implementation of the memory 100 of the invention will require circuits to check the correctness of the input and output values. Also, these circuits are not directly related to the nature of the invention and are therefore also omitted from the diagrams of Figures 4 and 6.

Claims (2)

PŘEDMĚT VYNÁLEZUSUBJECT OF THE INVENTION 1. Pamel číslicového počítače, řízeného tokem dat, vyznačená tím, že výstup vyrovnávací paměti /31/ je spojen se vstupem dotazového registru /12/, vstupem asociativní části /11/, vstupem paměťové části /21/, vstupem řídicího procesoru /41/ a s výstupní sběrnicí /51/, která je také spojena s výstupem asociativní části /11/ a s výstupem paměEové částí /21/, zatímco další výstup asociativní části /11/ a další výstup paměťové části /21/ jsou spojeny s dalšími vstupy řídicího procesoru /41/ a jeden z výstupů řídicího procesoru /41/ je spojen se vstupem maskovacího registru /13/.1. A data flow-controlled digital computer memory, characterized in that the buffer output (31) is connected to a query register input (12), an associative part input (11), a memory part input (21), a control processor input (41) and an output bus (51) which is also coupled to the output of the associative part (11) and the output of the memory part (21), while the other output of the associative part (11) and the other output of the memory part (21) are connected to other inputs of the control processor. And one of the outputs of the control processor is connected to the input of the mask register. 2. Paměť podle bodu 1, vyznačená tím, že asociativní část /11/ á paměťová část /21/ jsou rozděleny do stejného počtu shodných bloků, kde každá asociativní část /11/ má svůj dotazový registr /12/, maskovací registr /13/ a blok /14/ pamětí shody a každý z těchto shodných bloků má vlastní vyrovnávací paměť /31/ a samostatnou výstupní sběrnici /51/, přičemž vstupy vyrovnávacích pamětí /31/ jsou jednotlivě spojeny s výstupy multiplexorů /61/ ovládaného vhodnou částí vstupujících informací.2. The memory of claim 1, wherein the associative part (11) and the memory part (21) are divided into the same number of identical blocks, each associative part (11) having a query register (12), a mask register (13). and a match memory block (14) and each of said identical blocks has its own buffer (31) and a separate output bus (51), the buffer inputs (31) being individually coupled to the outputs of the multiplexers (61) controlled by a suitable portion of the input information.
CS532183A 1983-07-14 1983-07-14 Memory of digital computer controlled by data flow CS235602B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CS532183A CS235602B1 (en) 1983-07-14 1983-07-14 Memory of digital computer controlled by data flow

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CS532183A CS235602B1 (en) 1983-07-14 1983-07-14 Memory of digital computer controlled by data flow

Publications (1)

Publication Number Publication Date
CS235602B1 true CS235602B1 (en) 1985-05-15

Family

ID=5397893

Family Applications (1)

Application Number Title Priority Date Filing Date
CS532183A CS235602B1 (en) 1983-07-14 1983-07-14 Memory of digital computer controlled by data flow

Country Status (1)

Country Link
CS (1) CS235602B1 (en)

Similar Documents

Publication Publication Date Title
US5828858A (en) Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
US5828894A (en) Array processor having grouping of SIMD pickets
EP0377991B1 (en) Data processing systems
US4745544A (en) Master/slave sequencing processor with forced I/O
US5036453A (en) Master/slave sequencing processor
US5825677A (en) Numerically intensive computer accelerator
TW202115575A (en) Quiesce reconfigurable data processor
US3943494A (en) Distributed execution processor
KR20160105774A (en) Pipelined configurable processor
US7263602B2 (en) Programmable pipeline fabric utilizing partially global configuration buses
KR100288170B1 (en) Data processor with a compute unit that shares a set of register files
US6061367A (en) Processor with pipelining structure and method for high-speed calculation with pipelining processors
US20070136560A1 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
Hwang et al. Vector computer architecture and processing techniques
EP3662384A1 (en) Runtime optimization of configurable hardware
GB2284690A (en) Computer system and method for evaluating predicates and boolean expressions
CA2409049A1 (en) Processor with load balancing
Vick et al. Adptable Architectures for Supersystems
EP0594240B1 (en) Data processor with operation units sharing groups of register files
CS235602B1 (en) Memory of digital computer controlled by data flow
WO1986007174A1 (en) Super-computer system architectures
JP2543306B2 (en) Array processor
EP0735459B1 (en) Fuzzy processor with improved architecture
US20040268104A1 (en) General purpose fixed instruction set (fis) bit-slice feedback processor unit/computer system
Hansen A multiprocessor implementation of Joyce