WO2002099685A1 - Method and circuit arrangement advantageously provided for conducting parallel cyclically repeating data processing - Google Patents

Method and circuit arrangement advantageously provided for conducting parallel cyclically repeating data processing Download PDF

Info

Publication number
WO2002099685A1
WO2002099685A1 PCT/HU2002/000049 HU0200049W WO02099685A1 WO 2002099685 A1 WO2002099685 A1 WO 2002099685A1 HU 0200049 W HU0200049 W HU 0200049W WO 02099685 A1 WO02099685 A1 WO 02099685A1
Authority
WO
WIPO (PCT)
Prior art keywords
global
data
local
bus
address
Prior art date
Application number
PCT/HU2002/000049
Other languages
German (de)
French (fr)
Inventor
István FLEDRICH
Original Assignee
Afca-System Kft
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 Afca-System Kft filed Critical Afca-System Kft
Publication of WO2002099685A1 publication Critical patent/WO2002099685A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Definitions

  • the increase in speed in single-processor systems is associated with an increase in the system clock (depending on the respective technological circumstances), with an increase in the file processing bit width or z. B. using the so-called pipeline-like instruction execution.
  • the different data processing systems are also characterized by different data processing methods.
  • SIMD single instruction, single data: "Neumann machine”
  • MISD multiple instruction, single data
  • SIMD Single Instruction, Multiple Data
  • MuMD Multiple Instruction, Multiple Data
  • Patent application EP0917056 (US19970064250P) describes a method and processor arrangement that is suitable for parallel cooperation and consists of microprocessors, memory units and input / output units.
  • the current activities in the processing units are determined with independent elementary operating programs.
  • the cooperation of the processing units is guaranteed by a suitable hardware expansion and software mechanisms.
  • the advantage of this version is that after the distribution of the tasks and data, the elementary programs execute the tasks simultaneously, which leads to an increase in the processing speed.
  • the processing speed is limited by the synchronization procedures, at the same time the local address preparation and the local data traffic require additional process cycles.
  • the time consumption can be significant, which leads to a reduction in overall performance.
  • the method proposed in the patent application makes it possible to process several data in parallel with the aid of adapted programs and with their control by means of a command assigned to a so-called global address.
  • the sequence of the procedure is only limited by the number of processing units arranged in parallel and is carried out with any number of so-called data selected from local addresses.
  • the double addressing and the common command in cooperation with suitable peripherals, enables a very fast and effective data exchange between the individual elements and also in the direction of the external units.
  • the invention now relates to, on the one hand, a method for parallel processing of repetitively cyclically repeating data processing tasks, on the other hand a circuit arrangement for realizing the method, and also a program system for generating and simulating the code required for the function.
  • a so-called global address defined by a global address generator presents the command used jointly by the processing units, stored in a global command memory and forwarded on a global command bus.
  • the global address also specifies the local memory data located in the address memory belonging to the address converter, which are combined in a processing block and form processing units working in parallel with one another.
  • the local memory data modified in the local address converters, indicate addresses in the local data memories.
  • the data selected in local data memories participate in the procedures defined by local arithmetic / logic units and the global arithmetic logic unit, as well as by the global command bus.
  • the data associated with the selected data belonging to the local data memories appear on the bit bus with which the prescribed, current procedures are carried out in the global arithmetic / logical unit.
  • the internal data exchange controlled by the global control bus is carried out by a global data bus, the drive of the global control bus, depending on the global address bus and the global command bus, being guaranteed at the output of a global control unit. Supplementing the units intended for internal data exchange with the coupling surface for external control and with the associated control lines also enables an external data exchange to be carried out.
  • the local processing units are able to carry out procedures independently in the sense that they have the local addresses and data and can use them to carry out procedures defined by the global command memory.
  • the global address generator creates the global addresses while the program is running.
  • the global address formed at the output defines the current procedure by addressing the global command memory and, modified in the local address converter, selects local data. In order to avoid multiple data storage, the global data storage is used. The data selected here can be used by all local processing units at the same time.
  • the program generation is carried out excellently on a computer with an assembler, compiler or optimizer suitable for program generation.
  • the local addresses and output data of the program are stored in the local processing units (or in the global data memory) under the supervision of the global control unit. Access to the results of the program run is guaranteed at any point in the system.
  • Processing the data traffic of the bit bus through the global data bus can be advantageous because this leads to a reduction in the total number of data lines.
  • the method presented in the invention proves to be suitable for ensuring parallel data exchange between the local processing units which form the processing block.
  • This task can be solved excellently by channel processing units, the channel driver outputs, the quantity of which corresponds to at least one and at most the number of processing units involved in the parallel processing process and of channel reception inputs whose quantity is at least one and at most the number of those in the parallel processing process corresponding processing units involved.
  • the data traffic between the local data buses, the local auxiliary data buses, the channel driver outputs and channel reception inputs is determined by a global command bus, a global control bus and local control lines.
  • the selection of the active channel reception input is ensured with the input multiplexer, the active channel driver output with the output demultiplexer.
  • a system with only one channel receive input does not need a multiplexer and with only one channel driver output does not need a demultiplexer.
  • directly parallel data channels with directly parallel data channel switches for the parallel data traffic that is processed between the local processing units.
  • the data channel switches are primarily controlled by the global data bus, the global command bus and / or the global auxiliary data bus.
  • the use of data channel switches ensures the controlled splitting of the directly parallel data channels. It can also be helpful if the data traffic is influenced by the network formed from the data bus sections generated from the data channel switches.
  • the simultaneous use of the data channels with local output / input coupling units leads to a further improvement.
  • the local address data can also be stored in the local data memories. (This enables storage units to be saved, but it leads to a reduction in the processing speed.
  • the local address data reach the local address converter through the local data buses.
  • the shared data must be stored in a global data memory that has an address converter and data memory. (Data traffic with the global data memory is guaranteed by the global data bus and controlled by the global address bus and global control bus).
  • the data stored in a global auxiliary data memory and selected directly by a global address bus can be controlled by the global control bus through the global auxiliary data bus into the global arithmetic / logical Unit where they participate in global arithmetic / logical procedures or in the execution of control tasks.
  • Control unit to perform determined input / output data traffic between the data bus of the global output / input control unit and a global data bus.
  • the data bus of the global output / input control unit in the input and output direction is also excellent, as are the control bus of the global output / input control unit in the output direction with registers.
  • control signals defined by the program also allow the output of external addresses, whereby the processing speed of the periphery can be freely adjusted up to the limit specified by the cycle time.
  • Another advantage is provided by using an interruption control unit controlled by a global control bus.
  • the interrupt control unit directs the inputs to the single-cycle interrupt inputs and / or multi-cycle interrupt inputs
  • Interrupt requests through the interrupt control bus to the global control unit The specified procedure is carried out after acceptance of the interruption and confirmed with the setting of the interruption confirmation output.
  • the invention also relates to the circuit arrangement with which the methods described above can be implemented.
  • the circuit arrangement corresponding to the invention consists of a so-called processing block, which is formed from at least two local processing units, a local address converter in the processing units local address bus with a local data memory, a local data memory is connected through the local data bus on the one hand to a local arithmetic / logic unit and on the other hand to the local address converter.
  • the circuit arrangement corresponding to the invention includes at least one so-called global address generator, at least one global command memory, at least one global control unit, at least one global arithmetic / logic unit and at least one external coupling unit.
  • the global address generator is connected to the processing block, to the global data memory, to the global arithmetic / logic unit and to the external coupling unit through the global address bus.
  • the global command memory is connected to the processing block, to the global arithmetic / logic unit and to the global control unit through the global command bus.
  • the global arithmetic / logic unit is connected to the processing block, to the global address generator, to the global data memory, and to the global arithmetic / logic unit through the global control bus.
  • the processing block is bidirectionally connected to the global arithmetic logic unit through the global bit bus.
  • the external coupling unit is connected to an external unit (e.g. computer) and to the global arithmetic logic unit.
  • circuit arrangement described above and corresponding to the invention thus forms a control system. It does not lead to any substantial change in the sense of the invention if the system capacity is increased during the implementation with an increase in the control system or its units.
  • the circuit arrangement with the local processing units is advantageous to expand coupling / output coupling units connected to the global command bus and the global control bus by means of bidirectional local data buses.
  • the local out / input buses are connected to the local out / input coupling units.
  • the global control bus, global command bus and the local control lines are connected to the data channel manager as input.
  • the data channel manager is also connected to the directly parallel data channel outputs and the directly parallel data channel inputs.
  • DPA Direct Parallel Access: in further DPA
  • the DPA out / input channel control units are connected to the global command bus, to the local out / input buses and to the DPA out / input channels.
  • the DPA external data bus control units are connected to the global control bus, the external data bus and the DPA out / input channels.
  • control system circuit arrangement
  • at least one global auxiliary data memory which is attached to the global control bus, to the global address bus, through the global auxiliary data bus to the global arithmetic logic unit and to the global data bus.
  • Equally advantageous is the expansion of the control system with at least one interruption control unit to which the global control bus, the single and multi-cycle interruption inputs, the interruption control bus which connects in the direction of the global control unit, the interruption confirmation output and the global data bus are connected.
  • the invention also relates to a suitable program system which is responsible for the generation and simulation of program codes and generates program and data codes for the circuit arrangement corresponding to the method.
  • the program system divides the tasks into elementary procedures, then brings the elementary procedures for the current system structure and for the parallel processing optimized form that can be loaded into the system, the dependencies of the elementary procedures on each other, on the Time and also from the specified sequence of operations are taken into account.
  • the extended form of the program system is able to simulate the generated program code, or it allows to execute the code step by step or in a controlled section on a suitable graphic / text output surface, whereby the results of the parallel procedures can be understood during the process.
  • FIG. 1 shows the structure of the processing blocks, the processing units corresponding to the invention
  • FIG. 2 shows the advantageous structure of the processing blocks, supplemented with local input / output channel units
  • FIG. 3 shows the advantageous structure of the processing blocks , supplemented with local data channel processing units
  • FIG. 4 shows a possible structure of the data channel processing units of the
  • FIG. 5 shows a preferred embodiment of the processing units where the local input / output channels are equipped with local data channel management units.
  • FIG. 6 records the local data channel management units, supplemented with DPA input / output data channel management and external data bus management units, FIG. 7.
  • FIG. 8 shows the complete control system corresponding to the block structure (circuit structure) according to the invention, as well as FIG. 8. records extended control system equipped with useful additions.
  • Table 1 Example 1 - Execution of global bit operations, Table 2 Example 2 - Word formation from any data bits,
  • Example 3 Distribution of data for LU decomposition of a 7x7 matrix Table 4
  • Example 4 Distribution of data in LU decomposition of two 3 3 Matr Table 5a
  • Example 5 Distribution of data in the multiplication of two 3 ⁇ 3 matrices with 3 vectors, Table 5b
  • Example 5 - program steps Table 6a
  • Example 6 Other Distribution data when multiplying two 3 3 matrices by 3 vectors, Table 6b
  • Processing block E consists of any number, but advantageously at least two local processing units D1, D2, ..., Dn.
  • the local processing units D1, D2, ..., Dn contain a local address converter A, a local data memory B and a local arithmetic / logical unit C.
  • the local address converters A are connected to local data memory B by local address buses LAi, LA 2 , ..., LA n .
  • the local data memories B are connected to local arithmetic / logic units C by local data buses LD ⁇ , LD 2 , ..., LD n .
  • the local data memories B are connected to the local address converter A by bidirectional local data buses LDi, LD 2 , ..., LD n .
  • Processing block E is connected by global address bus GA, global control bus GC, global command bus GI and global data bus GD, and further by global bit bus GB to the additional units of the circuit arrangement (control system), as explained in connection with FIG. 7 is.
  • the system includes an address memory addressed from the global address bus GA, data registers which are provided for the address value and auxiliary values selected for storage in the address memory, and a local address computer logic -Unit.
  • the local address computers as logical units determine the output signals of the address converters based on the address data, the content of data registers and depending on the state of the GA global address bus:
  • the result address being formed by the local address computer of the address converter on the basis of the data values previously stored in the registers and selected in the local address memory,
  • the result address being formed by the local address computer of the address converter on the basis of the data previously stored in the registers and lines of the address bus selected according to the state.
  • Address converters A in cooperation with the local address computer logic enable the assignment of different data to the same program segment in each cycle by specifying base addresses of the data treated in parallel.
  • the global address bus GA In cooperation with the global address bus GA, through the assigned
  • the global address bus serves as an argument of the address converter A. This allows the size of the address memory to be reduced.
  • the generated local addresses on the output side of the address converter define the data in the local data stores B, which are involved in current processes.
  • the data defined in the local data memories B, in mediation with the local data buses LDi, LD 2 , ..., LD n are involved in the local arithmetic / logical unit C in arithmetic and logical operations, of which they are referred to as results selected local positions can be saved.
  • Each local arithmetic logic unit C contains at least one computer unit ALU for
  • a subunit belongs, which is provided depending on the register content and command for bit selection. The task of this is to pass the selected bits for further processing through the global bit bus GB into the global arithmetic / logic unit P, as can be seen from FIG.
  • the modification or access to the current content of the bit register, controlled by the global control bus GC, is guaranteed by the global data bus GD or global bit bus GB.
  • the data traffic of the bit bus GB must also be carried out by the global data bus GD. This design eliminates the need to use a separate global bit bus GB.
  • the control which processes take place in the local arithmetic logic units C is carried out as a function of the global command buses GI and global control buses GC.
  • 2 shows the processing block E_Df corresponding to the structure of the invention, which is expanded with local output / input coupling unit F.
  • the local output / input coupling units F are carried out from the side of the global command bus GI and global control bus GC. Its task is to adapt the local digital and analog signals, as well as to secure data traffic between the local out input buses LIOi, LIO 2 ⁇ ..., LIO n and local data buses LD.
  • the number of assigned local output / input coupling units F is arbitrary, but is expediently not higher than the number of local processing units D used.
  • FIG. 3 shows the structure of the processing blocks corresponding to the invention and expanded with a local data channel manager H.
  • the task of the local data channel managers H is to secure the direct parallel data traffic (Direct Parallel Access -DPA) between the local processing units D.
  • the DPA is controlled in accordance with the command and is from the global command bus GI and global control bus GC defines.
  • the number of assigned local data channel managers H is arbitrary, expedient but not higher than the number of local processing units D used.
  • Each local data channel manager H operates an output channel which is responsible for the transfer of the local data bus LA states and is inactive Record position tri-state. This makes it possible for a local data channel manager to have H number, less than the number of local processing units D, with one control unit to operate several data channels.
  • the local data channel managers H have a number of input channels corresponding to the local data channel manager H, which are selected in the local data channel manager H and the local auxiliary data buses SB], SB 2 , ..., SB n or can be assigned to the local address buses LA ⁇ , LA > ..., LA n .
  • the data state found in one processing unit D on the local data bus LD can participate in the data processing in another, or even simultaneously in all processing units D.
  • Fig. 4 shows the possible construction of the local data channel processing units H 1, H 2 , ..., H n ,, corresponding to the invention and records a possible configuration of the directly parallel data channel switches KjDPAi, ..., K_DPA X.
  • the local data channel processing units are H 1, H 2 , ..., H n , with local data buses LDi, LD 2 , ..., LD n , local control lines LC 15 LC 2 , ..., LC n and local auxiliary data buses SB 1? SB 2 , ..., SB n connected.
  • the task of local auxiliary data buses SB SB 2 , ..., SB n can of course be taken over by the local data buses LD i, LD 2 , ..., LD a .
  • the selection of the direct parallel data channel output is guaranteed by the Odemux channel demultiplexer, whose task is the transfer of content from the local data bus LD to the selected parallel data channel output.
  • This enables the content of the local data bus LD of a local processing unit D to be issued on any data channel.
  • This version requires that connections are made to the "Open Collector” or “tristate” data channels. Counter switching (or short circuit) is to be avoided from the control program or with additional hardware elements.
  • KJDPA data channel channel switches is particularly advantageous with a large number of processing units D and a small number of parallel data channels.
  • claims can be made for the execution of a data channel network. A simple and quick control is guaranteed from the program, even with any complicated composition of a network.
  • FIG. 5 shows the processing block E_Dfh corresponding to the invention, with local output / input coupler units F and data channel managers H, which contains the units described in FIG. 2 and FIG.
  • FIG. 6 shows the control system corresponding to the invention, in that the processing block E_Dh with data channel manager H has an expanded form, through the parallel data channels of the data channel managers H directly parallel data channels DPAj, DPA 2 ,..., DP On, on the one hand towards the off / Input channel control units H_io I; ..., H_io n DPA assigned local output / input buses LIOj, ..., LIO n , on the other hand by DPA external data bus control units H_exD 1; ..., H_exD assigned external data buses exD 1? ..., exD n are applied.
  • the local data channel administrators H are still able to carry out the tasks described above unchanged.
  • a further significant advantage is the assignment of the DPA external data bus control units H e Di, ..., H_exD n to the data channel manager H. This enables parallel data traffic with an external storage unit, where, in cooperation with the internal system programs, A connection can be established between any external data positions and any D local processing units. For example, any external data block can be saved within a cycle to the intended position of the D local processing units or from which data can be read out.
  • the processing block E has at least two local processing units Di, ..., D n , or Df, Dh, Dhf, which were described in connection with Fig. 1-3.
  • the global address generator J is connected through the global address bus GA to the processing block E, the global command memory K, the global control unit M and the external coupling unit T.
  • the global command memory K is connected to the processing block E, the global arithmetic / logic unit P and the global control unit M through the global command bus GI.
  • the global control unit M is connected by a global control bus GC to the processing block E, the global address generator J, the global command memory K and the global arithmetic / logic unit P.
  • the processing block E is bidirectionally connected to the global arithmetic / logic unit P through a global bit bus GB.
  • the global external coupling unit T is the external one through control lines ExV
  • Coupling unit with an external unit EX (e.g. computer) and connected to the global control unit M.
  • EX e.g. computer
  • control of the global address bus GA can, if necessary, also follow from the side of the external coupling unit T.
  • an increase in system performance can be achieved by increasing the control system R or its components.
  • the size of the global address generator J corresponds to the width of the global address bus GA and contains a counter that can be changed with a clock signal, the content of which is expedient depending on the state of the global control bus GC, preferably from the direction of GD global data bus, or possibly depending from the state of the global command bus GI can be overwritten.
  • the address generated on the output of the global address generator J corresponds to the content of the address counters and serves as a common address for all units. If the contents of the counters are overwritten (eg from the global data bus GD side), it is possible to carry out global jump commands that can be conditional or unconditional.
  • the global command memory K is responsible for storing the operational commands.
  • the global command memory K is filled up with command codes, advantageously controlled by the global control bus GC, through the global data bus GD, to the address specified by the global address bus GA.
  • the command selected by the global address bus GA appears on the output of the global command memory K, and it reaches the intended positions through the global command bus GI.
  • the global control unit M generates the control signals that are required to carry out the system procedures and data traffic. Serve as input variables:
  • the production of the output signals as a function of the input signals is carried out, preferably synchronized with the clock signal.
  • the output variables possibly via suitable auxiliary circuits, appear on the global control bus GC and thereby control and synchronize the procedures in the system.
  • the task of the external coupling unit T is to secure the data traffic between the control system and an external unit (eg computer). Depending on the control lines ExV of the external coupling unit T and according to the states of the global control bus GC, the data coupling between the coupling surface EX to the external control and the global data bus GD is secured. This means that tasks that are inevitable for the system are completed, especially: - The content of the global address generator J can be read and overwritten, which enables the external determination and query of the global address.
  • the processing block E it is possible to perform a global write operation on the local address LA, which is determined with the global address and modified in the local address converter A.
  • the date appearing on the global data bus GD is determined in each local processing unit D with the respective local address bus LA and stored in the local data memories B within a cycle.
  • the operation code selected by the global address bus GA in the global command memory K can be read and overwritten. This allows the operation codes to be brought into the system.
  • the global arithmetic / logic unit P has a fundamental meaning for the system functions. The main elements are: - The unit performing global arithmetic and logical operations
  • the L global auxiliary data memory - The L global auxiliary data memory, - The Q global output / input control unit and the S interrupt control unit.
  • the global data memory N and the global auxiliary data memory L are connected to the global address bus GA.
  • the global data memory N, the global auxiliary data memory L, the interruption control unit S and the global output / input control unit Q are connected to the global control bus GC and to the global data bus GD.
  • the global auxiliary data memory L is connected to the global arithmetic logic unit P of the control system R by the global auxiliary data bus GS.
  • the interrupt control unit S is with single-cycle interrupt, multi-cycle interrupt inputs lcikl.INT, ncikl.INT and with the
  • Interrupt confirmation output acklNT equipped, with the Interrupt control bus GM, it is connected to the global control unit M of the control system R.
  • the global output / input control unit Q is connected to the control system R via the data bus Q_ioD of the global output / input control unit and the control bus Q_ioC of the global output / input control unit, through the global address bus GA and global control bus GC.
  • the global data memory N contains an address converter and data memory equipped with address memory, the task of which is the storage of common operational data.
  • the structure and task of the address converters in global data memory N is the same as that described in the local processing units D.
  • Global address corresponding to global address bus GA modified in the address converter, selects a data position in global data memory N. A value can be written to or read from the selected position, with the global control bus GC controlled by the global data bus GD.
  • the global auxiliary data memory L serves mainly to expand the global command memory K.
  • the global auxiliary data memory L there are those, controlled simultaneously with the operation code and by the activatable data which are selected directly from the global address bus GA, with the global control bus GC , processed by the global auxiliary data bus GS in the global arithmetic / logic unit P, or can also perform some control tasks.
  • the global output / input control unit Q controlled from the global control bus GC in cooperation with the global data bus GD, is provided for global output / input operations. From input control unit Q contains control registers, whose outputs
  • Registers belonging to the control bus G_ioC of the global output / input control unit an address is fed in during the program run, whereby a data position is selected on an external input / output unit.
  • the content of the registers described remains unchanged until the next access. Depending on the peripheral speed, the
  • the data bus G_ioD should preferably adopt a tri-state.
  • the interrupt control unit S on external requests executes an intended command or starts an assigned program segment (subroutine).
  • Interrupt request forwarded to global control unit M is signed on the interrupt confirmation output ackTNT.
  • interruption lcikl.INT input is activated
  • the operation prepared in the register of the global control unit M expediently according to the global addresses stored in the same registers (here the global address is output from control unit M), data corresponding to the data position carried out.
  • This type of interruption is preferably, for example, parallel data traffic carried out by the local data channel manager H.
  • the repetition of the interruption is of course permitted, wherein, for example, between two interruptions only the global address located in the registers in the control unit M is changed.
  • the content of the global address generator J is preferably stored in registers, after which the address counter is picked up from the register corresponding to the interruption code or from a data memory.
  • a return instruction signs the end of the interrupt task. The return address saved in the register is fed in again and the interrupted program continues.
  • Example No. 1 shows a possible solution for performing global bit operations
  • Example No.2 shows a word formation from any data bits
  • Example No. 3 shows the distribution of the output and result data, with LU decomposition of a 7x7 matrix
  • Example No. 4 shows the distribution of the output and result data, with simultaneous LU decomposition of two 3x3 matrices
  • Example No. 5 a shows the possible division of the data when multiplying two 3x3 matrices by 3 vectors, whereby - Example No. 5b. shows the program steps required for this,
  • Example No.6a shows a different division of the data, for the same task, where
  • Example No.7 shows the division of the output and result data when multiplying an 8x8 matrix by 8 vectors.
  • the task is to create logic functions between 32 AA j , BB k , CC ⁇ , DD n input and 8 output variables QQi.
  • an input variable within one cycle in all local processing units D 0 , D ⁇ , ..., D 7 , address position arising on the output side of the local address converter A is stored in the local data memory B. Saving the 4 variables would take 4 cycles, but on the one hand they can participate in several procedures afterwards, on the other hand only the values that have changed in the meantime have to be read again. The number of readings, depending on the task, can also be considerably less because the values for other operations are available through different local addresses.
  • the number of read cycles can of course be greater. However, this means that we only use one bit from a word. However, this usually only happens as a result of incorrect program creation. If the 32 input variables belong to different words, but the variables are also used in other operations, the read-in time does not increase.
  • the operation codes, the assigned local addresses and the data indicating the bit position do not change during the course of the program. The values are to be defined during the program development and brought into the system before the program runs.
  • the program sequence starts at the global address GAj.
  • the bit position values for the variables AA and BB can be found on the local positions LA corresponding to the global address GAi.
  • the contents of the local address memories aABsho, ..., aABsh 7 give data to the local bit positions ⁇ Bsho, ..., ABsh 7 .
  • the lower 4 bits indicate the bit position for the variable AA, the upper 4 bits for variable BB.
  • the bit selection data are stored in the registers provided for this purpose in the local processing units D.
  • the bits selected according to the registers, or (depending on the state of the global auxiliary data bus GS) inverted values, are used as input data by the global bit bus GB in the global arithmetic / logic unit P.
  • the content aAAo, ..., aAA 7 of the local addresses LA belonging to A Q + D determines the data AAo, ..., AA 7 involved in the first logical operations. Simultaneously with the data storage in the register, it is also expedient to store the data from the global auxiliary data bus GS, which are responsible for the inversion procedure.
  • the content aAAo, ..., aAA 7 of the local addresses LA belonging to A ⁇ i +2 ) determines the further data BBo, ..., BB 7 involved in the first logical operations.
  • the ones for the inversion tasks are also determined here from the global auxiliary data bus GS.
  • GA (i + 3 ) formed in the global arithmetic logic unit P (here 8 bits wide), and the HH data value common to the D local processing units is expediently defined during the program development, signed by the global data bus GD, and in Positions aHHo, ..., aHH7 saved. Accordingly, the procedures described in GA ⁇ .., GA (i + 3 ) are repeated until GA (j + ⁇ ), where the result word QQ is stored.
  • the corresponding processing unit the corresponding bit on the global auxiliary data bus GS
  • the forwarding of the bit result after the bit selection in the local processing units D, or possibly after Inversion in the direction of the global arithmetic / logic unit P can also take place, for example, through the global data bus GD.
  • the task set described above requires at least 192 cycles.
  • the task is to be carried out with considerable additional effort because of the task synchronization, the transfer of data and commands.
  • Example 2 shows the generation of an 8 bit wide word from any bit variable.
  • the result word QQ can be 8 bits wide.
  • the task is to be carried out in two cycles because the bit selection data, as described above, was determined during the program generation and introduced into the local processing units D when the program was loaded, and is available there. These values are fixed on the global addresses GAi), as a result of which the bit configuration of the desired word is specified, and this corresponding to the global address associated command, can be stored by the local address buses LA specified data position.
  • Example 3 shows the distribution of the output and result data, and on the basis of this example we explain the program steps required for LU decomposition of a die.
  • LU decomposition is advantageous for solutions, eg in the field of linear algebra, for simulation of larger, even non-linear electrical networks, in general for inverting a matrix, etc
  • the bars of the die are located in the associated numbered D 0 , D ⁇ , ..., D 7 local processing units.
  • the 7-dimensional vector is introduced in D 7 .
  • the row data with the corresponding local addresses LA ⁇ ... LA (i + 6) selected are fed into the associated local data memory B after program generation, for example during program loading, data loading or as results of other computer operations.
  • the position of the permutation bit matrix used for the arithmetic operations which is given in the given case in the N global data memory for the LA local addresses with 7 pieces 8 bits wide word.
  • the program segment that performs the LU decomposition starts at the global address GA,) and is carried out in the following steps: a.
  • the permutation die corresponding to the shape of the die is generated, b.
  • a particular main element selection is carried out in the bars i, that is to say the largest i element located in the bars is selected. This serves as the current generation element.
  • the i element and the row index are recorded in registers, whereby the contents of the registers in the local address formation can also have an address-modifying task.
  • Bit matrix is playing out.
  • the multiplier vectors are defined, which are subsequently stored in the positions of the global data memories N already defined.
  • the parallel multiplications are carried out with the corresponding vectors, after which the deduction from the basic series follows.
  • G. i value is incremented, then the procedures, with simultaneous permission of the corresponding procedures, are c. repeated until i reaches the set value.
  • Example 4 shows the preferred division of the output and result data with simultaneous LU decomposition of 2 pieces of 3x3 matrix in the system described above.
  • the LU decomposition follows as described in example no.3.
  • the required operating cycles are of course drastically reduced.
  • the use of the DPA Direct parallel data channels also brings an additional reduction in the duration.
  • two DPA channels are available in the system, they are preferably operated from local processing units (here D 3 and D 7 ), the vectors aVo, ..., aV and bVo, ..., bV 2 include.
  • the reading and writing, for which data common to individual matrix operations, is done through DPA channels. This enables the same operations to be performed on data found at different positions.
  • Example 5 shows the possible division of the data when multiplying two 3x3 matrices by 3 vectors. In the D 0 , ..., D 2 local
  • Processing units are the parameters Aoo ... A 22 of the matrix AA, in the local processing unit D 3 the vector parameters AVo ... AV 2 , in the local processing unit D 4 , ..., D6 the parameters B 0 or .. .B 22 of the matrix BB, the vector parameters BVo .. -BV 2 are stored in the local processing unit D 7 .
  • the output data are stored, after which the procedure described in Example 5 is carried out.
  • parallel multiplications are carried out between
  • result vector elements EA (0,1,2) are in the local processing units D 0 , ..., D 2
  • result vector elements EB (0, 1,2) in the local processing units D, ..., D 6 .
  • the task required a total of 6 operating cycles. As far as this is required, some data movements can still be carried out.
  • Example 6 (Tables 6a, 6b) a shows another possible implementation with Example 5 having the same task, with a division of the local addresses and data, where the output and result vector have the same data distribution. This division can be useful if there are more to the result vectors Transformations are made. It can be seen that the vector elements AVo, AVi, AV 2 of the vectors AV in the D 0 , D ⁇ , D 2 local processing units, the vector elements BVo, B Vi, BV 2 of the vectors BV in the local processing units D 4 , D5, The processing units are located. The processing units D 3 and D ; are not used for the good representation of the comparison.
  • Table 6b shows that of 6a. Data segment corresponding matrix vector multiplication required program segment.
  • a parallel multiplication with the matrix elements Aoo, An, A 2 , B 0 o, B a , B 22 of the same indexing and the assigned AV 0 , AVi, AV 2 , BVo, BV ⁇ , BV 2 vector elements.
  • the result is stored in the intended positions EAo, EA ⁇ , EA, EBo, EB ⁇ , EB 2 .
  • first DPA of D 0 and D 4 then D 2 and D 5 and finally D 3 and D 6 local processing units are activated, the required multiplications and additions being carried out. After 9 cycles, the result vectors adopt the same data distribution format with the output vectors.
  • the performance of data processing also increases proportionally according to this example. For example, When using 128 pieces of local processing units D, it is guaranteed to multiply 46 matrices with 46 vectors within 9 cycles.
  • Example 7 shows, when using the task described above, the division of the output and result data when multiplying an 8x8 matrix by 8 vectors.
  • the LA ⁇ , ..., LA ⁇ i + 7) local address data which indicate the row and bars of the die, are transferred to the local one Processing units D 0 , ..., D 7 fed.
  • the local addresses of the output vector LA ® and result vector LA ⁇ k) are also given.
  • the LA local addresses select the data for the current operation.
  • the result is generated in the LA ( ic) position.
  • Another data distribution and control program is needed, e.g. in a transformation task, where several different vectors are multiplied with a matrix.
  • the matrix elements are to be placed in the global data memory N in an excellent manner.
  • the vector elements should be introduced in the corresponding local processing units D. After the corresponding program segment has expired, e.g. in a system with 8 local processing units D, after 9 multiplications, 6 additions and 3 storage operations, a total of 18 elementary operations, the 3D transformations were carried out for 8 vectors. In a system with 128 local processing units, it means the simultaneous transformation of 128 vectors.
  • control of the direct parallel data channel switch KJDPA in addition to the selection of the corresponding output / input channels, e.g. follows from the global auxiliary data bus GS, then it means the expansion of the operation command.
  • This structure enables a freely selected data access configuration to be assigned to each operation. As a result, data access, even with any number of processor units, is just as easy as with a one-processor system.
  • control system is of course applicable in any field where a large amount of calculations has to be carried out, e.g. Image processing, fast, multi-dimensional controls, etc.
  • the system elements and units are manufactured on any technological basis, and this enables the process to be carried out.
  • the statement is to be made that the process corresponding to the application of the invention, with an increase in the number of local processing units D 0 , D ⁇ , ..., D 7 , also approximately proportionally increases the processing power so that the for Programs intended for the same tasks are also generated in the same form for different system sizes.
  • Another significant advantage of the system is that the structure of the local processing units is the same even with a large number of elements, which leads to considerable specific cost reductions.

Abstract

The inventive method associates a global address to an instruction, which is jointly used by processing units, stored in a global instruction memory and routed to a global instruction bus. Local memory data indicate, in local data memories, the addresses modified in the local data memories. The data selected in local data memories take part in the procedures, which are determined by local arithmetic/logic units, by the global arithmetic/logic unit and by the global instruction bus. The circuit arrangement is comprised of a processing block, which is comprised of at least two local processing units. In the processing units, a local address converter is connected via the local address bus to a local data memory, a local data memory is connected via the local data bus to a local arithmetic/logic unit, on one side, and to the local address converter on the other side. The inventive circuit arrangement also includes at least one so-called global address generator, at least one global instruction memory, at least one global control unit, at least one global arithmetic/logic unit and at least one external coupling unit.

Description

Verfahren und Schaltungsanordnuπg, vorteilhaft zur parallelen, sich zyklisch wiederholenden Datenverarbeitung Method and circuit arrangement, advantageous for parallel, cyclically repeating data processing
Zur Erhöhung der Rechnerkapazität der elektronischen Datenverarbeitungssysteme sind verschiedene Methoden bekannt.Various methods are known for increasing the computing capacity of the electronic data processing systems.
Die Geschwindigkeitssteigerung bei Einprozessor-Systemen ist mit Erhöhung des Systemtaktes (in Abhängigkeit der jeweiligen technologischen Gegebenheiten), mit Erhöhung der Dateuverarbeitungs-Bitbreite oder z. B. mit Anwendung der so genann- ten pipeline-artige Instruktionsausführung zu erreichen.The increase in speed in single-processor systems is associated with an increase in the system clock (depending on the respective technological circumstances), with an increase in the file processing bit width or z. B. using the so-called pipeline-like instruction execution.
Eine über die von der aktuellen Technologie vorgegebene, maximale Grenze hinausgehende Geschwindigkeitssteigerung ist nur mit paralleler Datenverarbeitung zu erreichen.A speed increase beyond the maximum limit specified by the current technology can only be achieved with parallel data processing.
Die verschiedenen Datenverarbeitungssysteme sind auch durch verschiedene Datenverarbeitungsmethoden gekennzeichnet.The different data processing systems are also characterized by different data processing methods.
So hat sich bei Einprozessor-Systemen die Methode SISD (Single Instruction, Single Data: "Neumann-Maschine"), für pipeline-artige Instruktionsausführung die Methode SIMD (Single Instruction, Multiple Data) und MISD (Multiple Instruction, Single Data) verbreitet.The method SISD (single instruction, single data: "Neumann machine") has become widespread in single processor systems, the method SIMD (single instruction, multiple data) and MISD (multiple instruction, single data) for pipeline-like instruction execution.
In Mehrprozessor Systemen wird vorzüglich die Methode SIMD (Single Instruction, Multiple Data) und MuMD (Multiple Instruction, Multiple Data) angewandt, wie dies in der Fachliteratur (z.B. Bόna-Erenyi-Vajda: Többmikroprocesszoros rendszerek) ausführlich beschrieben istIn multiprocessor systems, the SIMD (Single Instruction, Multiple Data) and MuMD (Multiple Instruction, Multiple Data) methods are primarily used, as described in detail in the specialist literature (e.g. Bόna-Erenyi-Vajda: Többmikroprocesszoros rendszerek)
Für eine Geschwindigkeitssteigerung geeignete Lösungen werden auch in verschiedenen Patentanmeldungen beschrieben.Solutions suitable for increasing the speed are also described in various patent applications.
In der Patentanmeldung EP0917056 (US19970064250P) wird ein aus Mikroprozes- soren, Speichereinheiten und Ein/ Ausgabe Einheiten bestehendes, für parallele Zusammenarbeit geeignetes Verfahren und Prozessoranordnung beschrieben. Im beschrie- benen System werden die aktuellen Tätigkeiten in den Verarbeitungseinheiten mit selbstständigen elementaren Betriebsprogrammen festgelegt. Die Zusammenarbeit der Verarbeitungseinheiten wird durch einen geeigneten Hardwareausbau und Software Mechanismen gewährleistet. Der Vorteil dieser Ausführung ist, dass nach der Verteilung der Aufgaben und Daten die elementaren Programme die Aufgaben gleichzeitig ausfuhren, was zur Erhöhung der Verarbeitungsgeschwindigkeit führt.Patent application EP0917056 (US19970064250P) describes a method and processor arrangement that is suitable for parallel cooperation and consists of microprocessors, memory units and input / output units. In the described In this system, the current activities in the processing units are determined with independent elementary operating programs. The cooperation of the processing units is guaranteed by a suitable hardware expansion and software mechanisms. The advantage of this version is that after the distribution of the tasks and data, the elementary programs execute the tasks simultaneously, which leads to an increase in the processing speed.
Die Verarbeitungsgeschwindigkeit wird aber durch die Synchronisationsprozeduren begrenzt, gleichzeitig benötigen die lokale Adressvorbereitung, sowie der lokale Datenverkehr zusätzliche Prozesszyklen.The processing speed is limited by the synchronization procedures, at the same time the local address preparation and the local data traffic require additional process cycles.
Bei größerer Anzahl von parallel arbeitenden Einheiten kann der Zeitverbrauch für die Austeilung von Aufgaben und Daten durchaus erheblich sein.With a larger number of units working in parallel, the time required for the distribution of tasks and data can be considerable.
Mit einer gemeinsam behandelten Datengruppen-Formierung und mit paralleler Verarbeitung der Datengruppen erzielt man eine Verarbeitungsgeschwindigkeits- Erhöhung, die im in der Patentanmeldung DE 19835216 AI vorgeschlagenen Verfahren und Prozessoranordnung zu finden sind.With a jointly treated data group formation and with parallel processing of the data groups, an increase in processing speed is achieved, which can be found in the method and processor arrangement proposed in patent application DE 19835216 AI.
Das Verfahren ist bei der Durchf hrung einiger Aufgaben (FFT,FIR, ... ), hauptsächlich in Folge der Möglichkeit, Daten parallel zu verschieben, sehr wirkungsvoll. Paralleler Datenzugriff ist aber nur zu den Segmenten der vorher gruppierten Daten möglich.The procedure is very effective when performing some tasks (FFT, FIR, ...), mainly due to the possibility of moving data in parallel. However, parallel data access is only possible for the segments of the previously grouped data.
Bei Aufgaben, die eine regelmäßige Datengruppierung benötigen, kann der Zeitverbrauch bedeutend werden, was zur Minderung der Gesamtleistung führt.For tasks that require regular data grouping, the time consumption can be significant, which leads to a reduction in overall performance.
Optimierung von Prozessen in Systemen mit parallel arbeitenden Prozessoren ist in der Patentanmeldung DE19854810 beabsichtigt, wobei bei der Bereitstellung von Befehlen und Daten aus dem Hauptspeicher die Leerbefehle (NOP) ausgeblendet werden. Die Vermeidung von Leerzyklen erhöht die Systemkapazität und die Verarbeitungsgeschwindigkeit.Optimization of processes in systems with processors operating in parallel is intended in patent application DE19854810, the empty instructions (NOP) being hidden when instructions and data are provided from the main memory. Avoiding empty cycles increases system capacity and processing speed.
Allgemein kann man feststellen, dass bei den bekannten Mehrprozessor-Systemen mit der Erhöhung der Anzahl der parallel arbeitenden Prozessoren eine nichtlineare Erhöhung der Rechnerkapazität verbunden ist. Bei Anwendung einer sehr hohen Zahl von Prozessoren führen die benötigten Datenbewegungs- und Ablaufsynchronisierungs- Aufgaben zu erheblichem Zeitverlust und in Folge dessen wird eine weitere Erhöhung der Prozessoranzahl sinnlos.In general it can be said that with the known multiprocessor systems the increase in the number of processors working in parallel is associated with a non-linear increase in computing capacity. When using a very high number of processors, the required data movement and process synchronization tasks lead to considerable loss of time and as a result a further increase in the number of processors becomes pointless.
In der von uns vorgeschlagenen Methode beabsichtigen wir ein Verfahren für parallel arbeitende Prozessoren anzubieten, mit dem im Vergleich zu bekannten Methoden höhere Operations-Geschwindigkeiten zu erreichen ist.In the method proposed by us, we intend to offer a method for processors working in parallel, with which higher operating speeds can be achieved compared to known methods.
Wir haben erkannt, dass mit der Anwendung von doppelten, sequenziellen Adressierungen eine annähernd lineare Leistungserhöhung (der Steuerung und der Rechneroperationen) in Abhängigkeit von der Anzahl der Verarbeitungseinheiten erreichbar ist.We have recognized that with the use of double, sequential addressing, an approximately linear increase in performance (of the control and computer operations) can be achieved depending on the number of processing units.
Der wesentliche Gedanke in unserer Lösung ist, dass einem Befehl mehrere Daten durch mehrere Adressen zugeordnet sind (kurz SEVLAD: „Single Insrtuction, Multiple Address and Multiple Data" Methode genannt).The main idea in our solution is that several data are assigned to one command by means of several addresses (SEVLAD for short: "Single Insrtuction, Multiple Address and Multiple Data" method).
Die in der Patentanmeldung vorgeschlagene Methode ermöglicht, mit Hilfe von angepassten Programmen und mit deren Steuerung durch einen einer sogenannten globalen Adresse zugeordneten Befehl, mehrere Daten parallel zu verarbeiten.The method proposed in the patent application makes it possible to process several data in parallel with the aid of adapted programs and with their control by means of a command assigned to a so-called global address.
Der Ablauf der Prozedur ist nur durch die Anzahl der parallel angeordneten Verarbeitungseinheiten begrenzt und wird mit einer beliebigen Anzahl von sog. von lokalen Adressen ausgewählten Daten ausgeführt. Die zweifache Adressierung und der gemeinsame Befehl, in Zusammenarbeit mit geeigneten Peripherien, ermöglicht einen sehr schnellen und wirkungsvollen Datenaustausch zwischen den einzelnen Elementen und auch in Richtung der externen Einheiten. Gegenstand der Erfindung ist nun, einerseits ein Verfahren für die parallele Verarbeitung sich vorzüglich zyklisch wiederholender Datenverarbeitungsaufgaben, andererseits eine Schaltungsanordnung zur Verwirklichung des Verfahrens, außerdem ein Programmsystem für die Generierung und der Simulation des für die Funktion benötigten Kodes.The sequence of the procedure is only limited by the number of processing units arranged in parallel and is carried out with any number of so-called data selected from local addresses. The double addressing and the common command, in cooperation with suitable peripherals, enables a very fast and effective data exchange between the individual elements and also in the direction of the external units. The invention now relates to, on the one hand, a method for parallel processing of repetitively cyclically repeating data processing tasks, on the other hand a circuit arrangement for realizing the method, and also a program system for generating and simulating the code required for the function.
Im in der Erfindung vorliegenden Verfahren legt eine durch einen globalen Adressgenerator festgelegte, sog. globale Adresse den von den Verarbeitungseinheiten gemeinsam verwendeten, in einem globalen Befehlsspeicher abgespeicherten und auf einem globalen Befehlsbus weitergeleiteten Befehl vor.In the method present in the invention, a so-called global address defined by a global address generator presents the command used jointly by the processing units, stored in a global command memory and forwarded on a global command bus.
Auch legt die globale Adresse die im zum Adresswandler gehörigen Adressspeicher, welche in einem Verarbeitungsblock zusammengefasst sind und miteinander parallel arbeitende Verarbeitungseinheiten bilden, befindlichen lokalen Speicherdaten fest.The global address also specifies the local memory data located in the address memory belonging to the address converter, which are combined in a processing block and form processing units working in parallel with one another.
Die lokalen Speicherdaten geben, in den lokalen Adresswandlern modifiziert, Adressen in den lokalen Datenspeichern an.The local memory data, modified in the local address converters, indicate addresses in the local data memories.
Die in lokalen Datenspeichern ausgewählten Daten nehmen in den von lokalen arithmetisch/logischen Einheiten und der globalen arithmetisch logischen Einheit, sowie vom globalen Befehlsbus festgelegten Prozeduren teil.The data selected in local data memories participate in the procedures defined by local arithmetic / logic units and the global arithmetic logic unit, as well as by the global command bus.
Ebenso erscheinen die zu den lokalen Datenspeichern ausgewählten Daten gehörige, vorgegebene Bitdaten auf dem Bitbus, mit dem die vorgeschriebenen, aktuellen Prozeduren in der globalen arithmetisch/logischen Einheit durchgeführt werden.Likewise, the data associated with the selected data belonging to the local data memories appear on the bit bus with which the prescribed, current procedures are carried out in the global arithmetic / logical unit.
Zwischen den Verarbeitungseinheiten, dem globalen Adressgenerator und dem globalen Datenspeicher wird der vom globalen Steuerbus angesteuerte innere Datenaustausch durch einen globalen Datenbus durchgeführt, wobei der Antrieb des globalen Steuerbusses, in Abhängigkeit vom globalen Adressbus und dem globalen Befehlsbus, am Ausgang einer globalen Steuereinheit gewährleistet ist. Die Ergänzung der für den inneren Datenaustausch vorgesehenen Einheiten mit der Koppeloberfläche für externe Steuerung und mit den dazu gehörenden Steuerleitungen, ermöglicht auch die Durchfuhrung eines externen Datenaustausches.Between the processing units, the global address generator and the global data memory, the internal data exchange controlled by the global control bus is carried out by a global data bus, the drive of the global control bus, depending on the global address bus and the global command bus, being guaranteed at the output of a global control unit. Supplementing the units intended for internal data exchange with the coupling surface for external control and with the associated control lines also enables an external data exchange to be carried out.
An dieser Stelle soll darauf hingewiesen werden, dass die lokalen Verarbeitungseinheiten in der Lage sind, selbständig Prozeduren durchzuführen in dem Sinne, dass sie über die lokalen Adressen und Daten verfügen und mit diesen von den globalen Befehlsspeicher festgelegten Prozeduren durchfuhren können.At this point it should be pointed out that the local processing units are able to carry out procedures independently in the sense that they have the local addresses and data and can use them to carry out procedures defined by the global command memory.
Während des Programmablaufs stellt der globale Adressgenerator die globalen Adressen her. Die am Ausgang deren gebildete globale Adresse legt die aktuelle Prozedur durch Adressierung des globalen Befehlsspeichers fest, und wählt, im lokalen Adresswandler modifiziert, lokale Daten aus. Um eine mehrfache Datenspeicherung zu vermeiden, wird der globale Datenspeicher verwendet. Die hier ausgewählten Daten können von allen lokalen Verarbeitungseinheiten gleichzeitig verwendet werden.The global address generator creates the global addresses while the program is running. The global address formed at the output defines the current procedure by addressing the global command memory and, modified in the local address converter, selects local data. In order to avoid multiple data storage, the global data storage is used. The data selected here can be used by all local processing units at the same time.
Die Programmerzeugung wird vorzüglich mit einem für die Programmgenerierung geeigneten Assembler, Compiler bzw. Optimizer, extern, auf einem Rechner durchgeführt.The program generation is carried out excellently on a computer with an assembler, compiler or optimizer suitable for program generation.
Die lokalen Adressen und Ausgangsdaten des Programms werden - unter Aufsicht der globalen Steuereinheit - in den lokalen Verarbeitungseinheiten (oder im globalen Datenspeicher) abgelegt. Zugriff auf Ergebnisse des Programmlaufs ist an beliebigen Stellen des Systems gewährleistet.The local addresses and output data of the program are stored in the local processing units (or in the global data memory) under the supervision of the global control unit. Access to the results of the program run is guaranteed at any point in the system.
Den Datenverkehr des Bitbusses durch den globalen Datenbus abzuwickeln kann vorteilhaft sein, weil das zu einer Verringerung der Gesamtzahl der Datenleitungen führt.Processing the data traffic of the bit bus through the global data bus can be advantageous because this leads to a reduction in the total number of data lines.
Es ist hilfreich, den lokalen analogen und digitalen Datenaustausch zwischen den lokalen Verarbeitungseinheiten und lokalen Aus/Eingangsbussen zu gewährleisten. (Dies ist in Zusammenarbeit mit den lokalen Aus/Eingabe Koppeleinheiten, durch Steuerung des globalen Befehlsbusses und des globalen Steuerbusses zu erreichen.)It is helpful to have local analog and digital data exchange between the to ensure local processing units and local out / in buses. (This can be achieved in cooperation with the local output / input coupling units, by controlling the global command bus and the global control bus.)
Der in der Erfindung vorgelegte Verfahren erweist sich als geeignet, parallelen Datenaustausch zwischen den lokalen Verarbeitungseinheiten, die den Verarbeitungsblock bilden, zu gewährleisten.The method presented in the invention proves to be suitable for ensuring parallel data exchange between the local processing units which form the processing block.
Diese Aufgabe ist vorzüglich durch Kanalverarbeitungs-Einheiten lösbar, die Kanal- treiber- Ausgängen, deren Menge mindestens eins und höchstens der Anzahl der im parallelen Verarbeitungsprozess beteiligten Verarbeitungseinheiten entsprechend ist und von Kanalempfangs-Eingängen deren Menge mindestens eins und höchstens der Anzahl der im parallelen Verarbeitungsprozess beteiligten Verarbeitungseinheiten entsprechend ist besitzen. Der Datenverkehr zwischen den lokalen Datenbussen, den lokalen Hilfsdatenbussen, den Kanaltreiber- Ausgängen und Kanalempfangs-Eingängen wird von einem globalen Befehlsbus, einem globaler Steuerbus und von lokalen Steuerlinien determiniert.This task can be solved excellently by channel processing units, the channel driver outputs, the quantity of which corresponds to at least one and at most the number of processing units involved in the parallel processing process and of channel reception inputs whose quantity is at least one and at most the number of those in the parallel processing process corresponding processing units involved. The data traffic between the local data buses, the local auxiliary data buses, the channel driver outputs and channel reception inputs is determined by a global command bus, a global control bus and local control lines.
Die Auswahl des aktiven Kanalempfang-Eingangs wird mit dem Eingans-Multiplexer, des aktiven Kanaltreiber- Ausgangs mit dem Ausgangs-Demultiplexer gewährleistet. Ein System mit nur einem Kanalempfangs-Eingang benötigt keinen Multiplexer und mit nur einem Kanaltreiber- Ausgang benötigt keinen Demultiplexer.The selection of the active channel reception input is ensured with the input multiplexer, the active channel driver output with the output demultiplexer. A system with only one channel receive input does not need a multiplexer and with only one channel driver output does not need a demultiplexer.
Für einige Aufgaben ist es vorteilhaft, für den parallelen Datenverkehr, das zwischen den lokalen Verarbeitungseinheiten abgewickelt wird, die direkt parallelen Datenkanäle mit direkt parallelen Datenkanal-Schaltern auszurüsten.For some tasks, it is advantageous to equip the directly parallel data channels with directly parallel data channel switches for the parallel data traffic that is processed between the local processing units.
Die Datenkanal-Schalter werden vornehmlich vom globalen Datenbus, dem globalen Befehlsbus und/oder vom globaler Hilfsdatenbus angesteuert. Mit der Verwendung von Datenkanal-Schaltern ist die gesteuerte Spaltung der direkt parallelen Datenkanäle gewährleistet. Es kann sich auch hilfreich erweisen, wenn der Datenverkehr durch das aus dem Datenkanal-Schaltern erzeugten Datenbus- Abschnitten gebildeten Netz beeinflusst wird. Zu einer weiteren Verbesserung führt die gleichzeitige Verwendung der Datenkanäle mit lokalen Aus/Eingabe Koppeleinheiten.The data channel switches are primarily controlled by the global data bus, the global command bus and / or the global auxiliary data bus. The use of data channel switches ensures the controlled splitting of the directly parallel data channels. It can also be helpful if the data traffic is influenced by the network formed from the data bus sections generated from the data channel switches. The simultaneous use of the data channels with local output / input coupling units leads to a further improvement.
Sehr Vorteilhaft ist, die Datenkanal-Steuereinheiten mit Aus Eingabe Kanal- Steuereinheiten zu ergänzen. ( Mit dessen Steuerung ermöglichen sich der Empfang und Ausgabe lokalen analog und digitalen Signalen, durch die lokalen Ein/Ausgangs- bussen.)It is very advantageous to supplement the data channel control units with From input channel control units. (Its control enables the reception and output of local analog and digital signals through the local input / output buses.)
Ähnlich Vorteilhaft ist, die Datenkanal-Steuereinheiten mit externen Datenbus- Steuereinheiten zu ergänzen. ( Mit deren Steuerung ermöglicht sich der parallele Datenverkehr durch externe Datenbusse).It is similarly advantageous to supplement the data channel control units with external data bus control units. (Their control enables parallel data traffic through external data buses).
Gegebenen Falls können die lokale Adressdaten auch in den lokalen Datenspeichern abgespeichert werden. ( Das ermöglicht Speichereinheiten einzusparen, aber es führt zur Minderung der Verarbeitungsgeschwindigkeit. Bei dieser Ausführung erreichen die lokale Adressdaten den lokalen Adresswandler durch die lokalen Datenbusse.If necessary, the local address data can also be stored in the local data memories. (This enables storage units to be saved, but it leads to a reduction in the processing speed. In this embodiment, the local address data reach the local address converter through the local data buses.
Die mehrfache Datenabspeicherung zu vermeiden, sind die gemeinsam gebrauchten Daten in einem globalen Datenspeicher, der über einen Adresswandler und Datenspeicher verfügt, zu speichern. (Der Datenverkehr mit dem globalen Datenspeicher ist durch den globalen Datenbus gewährleistet und von den globalen Adressbus und globalen Steuerbus angesteuert).To avoid multiple data storage, the shared data must be stored in a global data memory that has an address converter and data memory. (Data traffic with the global data memory is guaranteed by the global data bus and controlled by the global address bus and global control bus).
Ähnlich Vorteilhaft ist den globalen Befehlsbus mit einem globalen Hilfs-Datenbus zu ergänzen. So können, die in einem globalen Hilfsdaten-Speicher gespeicherte und von einem globalen Adressbus direkt ausgewählten Daten, von den globalen Steuerbus angesteuert durch den globaler Hilfsdatenbus in die globale Arithmetische/Logische Einheit gelangen, wo sie in globalen arithmetischen/logischen Prozeduren oder in Durchführung von Steuerungsaufgaben teilnehmen.It is similarly advantageous to supplement the global command bus with a global auxiliary data bus. Thus, the data stored in a global auxiliary data memory and selected directly by a global address bus can be controlled by the global control bus through the global auxiliary data bus into the global arithmetic / logical Unit where they participate in global arithmetic / logical procedures or in the execution of control tasks.
Für Durchführung von Eingabe/Ausgabe Prozeduren ist gleichermassen Vorteilhaft eine, von den globaler Steuerbus angesteuerte, globale Aus/Eingabe Steuereinheit zu verwenden. Das ermöglicht von den Steuerbus der globalen Aus/EingabeFor carrying out input / output procedures, it is equally advantageous to use a global output / input control unit controlled by the global control bus. This enables global control from the control bus
Steuereinheit determinierte Eingabe/Ausgabe Datenverkehr, zwischen den Datenbus der globalen Aus/Eingabe Steuereinheit und einem globalen Datenbus, durchzuführen.Control unit to perform determined input / output data traffic between the data bus of the global output / input control unit and a global data bus.
Vorzüglich ist auch der Datenbus der globalen Aus/Eingabe Steuereinheit in Ein- und Ausgabe Richtung, wie der Steuerbus der globalen Aus/Eingabe Steuereinheit in Ausgabe Richtung mit Registern verbunden sind.The data bus of the global output / input control unit in the input and output direction is also excellent, as are the control bus of the global output / input control unit in the output direction with registers.
Die vom Programm festgelegten Steuersignale ermöglichen, neben der Steuerung des Datenverkehrs, auch die Ausgabe externer Adressen, wobei die Verarbeitungsgeschwindigkeit der Peripherie, bis zu der von der Zykluszeit angegebener Grenze, frei angepasst werden kann.In addition to controlling the data traffic, the control signals defined by the program also allow the output of external addresses, whereby the processing speed of the periphery can be freely adjusted up to the limit specified by the cycle time.
Ein weiterer Vorteil ist durch Verwendung einer von einem globalen Steuerbus angesteuerte Unterbrechungs-Steuereinheit gegeben.Another advantage is provided by using an interruption control unit controlled by a global control bus.
Die Unterbrechungs-Steuereinheit leitet, die an den Einzyklus-Unterbrechung Eingänge oder/und Mehrzyklus-Unterbrechung Eingänge eingehendeThe interrupt control unit directs the inputs to the single-cycle interrupt inputs and / or multi-cycle interrupt inputs
Unterbrechungsanforderungen durch den Unterbrechungs-Steuerbus, in die globale Steuereinheit weiter. Die vorgegebene Prozedur wird nach der Akzeptanz der Unterbrechung durchgeführt und mit der Einstellung der Unterbrechungsbestätigung Ausgangs, bestätigt.Interrupt requests through the interrupt control bus to the global control unit. The specified procedure is carried out after acceptance of the interruption and confirmed with the setting of the interruption confirmation output.
Die Erfindung betrifft außerdem die Schaltungsanordnung, womit die oben beschriebenen Verfahren zu realisieren ist.The invention also relates to the circuit arrangement with which the methods described above can be implemented.
Die der Erfindung entsprechende Schaltungsanordnung besteht aus einem sogenann- ten Verarbeitungsblock, der aus mindestens zwei lokalen Verarbeitungseinheiten gebildet ist, wobei in den Verarbeitungseinheiten ein lokaler Adresswandler durch den lokalen Adressbus mit einem lokalen Datenspeicher, ein lokaler Datenspeicher durch den lokalen Datenbus einerseits mit einem lokaler Arithmetisches/Logisches Einheit anderseits mit dem lokalen Adresswandler verbunden ist. Außerdem beinhaltet der Erfindung entsprechende Schaltungsanordnung mindestens einen sogenannten globalen Adressgenerator, mindestens einen globalen Befehlsspeicher, mindestens eine globale Steuereinheit, mindestens eine globale Arithmetische/Logische Einheit und mindestens eine externe Koppeleinheit.The circuit arrangement corresponding to the invention consists of a so-called processing block, which is formed from at least two local processing units, a local address converter in the processing units local address bus with a local data memory, a local data memory is connected through the local data bus on the one hand to a local arithmetic / logic unit and on the other hand to the local address converter. In addition, the circuit arrangement corresponding to the invention includes at least one so-called global address generator, at least one global command memory, at least one global control unit, at least one global arithmetic / logic unit and at least one external coupling unit.
Der globaler Adressgenerator ist mit dem Verarbeitungsblock, mit dem globalen Datenspeicher, mit der globalen Arithmetischen/Logischen Einheit und mit der externen Koppeleinheit durch den globalen Adressbus verbunden. Der globale Befehlsspeicher ist mit dem Verarbeitungsblock, mit der globalen Arithmetischen/Logischen Einheit und mit der globalen Steuereinheit durch den globalen Befehlsbus verbunden.The global address generator is connected to the processing block, to the global data memory, to the global arithmetic / logic unit and to the external coupling unit through the global address bus. The global command memory is connected to the processing block, to the global arithmetic / logic unit and to the global control unit through the global command bus.
Die globale Arithmetische/Logische Einheit ist mit dem Verarbeitungsblock, mit dem globalen Adressgenerator, mit dem globalen Datenspeicher, und mit der globalen Arithmetischen/Logischen Einheit durch den globalen Steuerbus verbunden.The global arithmetic / logic unit is connected to the processing block, to the global address generator, to the global data memory, and to the global arithmetic / logic unit through the global control bus.
Der Verarbeitungsblock steht mit der globalen Arithmetischen Logischen Einheit durch den globalen Bitbus in bidirektionalen Verbindung.The processing block is bidirectionally connected to the global arithmetic logic unit through the global bit bus.
Die externe Koppeleinheit ist mit einer externen Einheit (z.B. Rechner) und mit der globalen Arithmetischen Logischen Einheit verbunden.The external coupling unit is connected to an external unit (e.g. computer) and to the global arithmetic logic unit.
Die oben beschriebene und der Erfindung entsprechende Schaltungsanordnung bildet also ein Steuerungssystem. Dabei führt es zu keiner substantiellen Veränderung im Sinne der Erfindung, wenn die Systemkapazität während der Verwirklichung mit Vermehrung des Steuerungssystems oder dessen Einheiten erhöht wird.The circuit arrangement described above and corresponding to the invention thus forms a control system. It does not lead to any substantial change in the sense of the invention if the system capacity is increased during the implementation with an increase in the control system or its units.
Es ist Vorteilhaft die Schaltungsanordnung mit zu den lokalen Verarbeitungseinheiten durch bidirektionalen lokalen Datenbussen zugeschalteten lokalen Aus/Eingabe Koppeleinheiten zu erweitern, die mit den globalen Befehlsbus und den globalen Steuerbus verbunden sind. Zugleich sind auch die lokale Aus/Eingabe Busse mit den lokalen Aus/Eingabe Koppeleinheiten verbunden.The circuit arrangement with the local processing units is advantageous to expand coupling / output coupling units connected to the global command bus and the global control bus by means of bidirectional local data buses. At the same time, the local out / input buses are connected to the local out / input coupling units.
Genau so Vorteilhaft ist die Schaltungsanordnung mit zu den lokalen Verarbeitungseinheiten durch bidirektionalen lokalen Datenbussen zugeschalteten lokalen Datenkanal- Verwalter zu erweitern, die mit den lokalen Verarbeitungseinheiten mindestens mit einem lokalen Hilfsdatenbus und zusätzlich mit lokalen Steuerleitungen verbunden sind.It is just as advantageous to expand the circuit arrangement with local data channel managers connected to the local processing units by bidirectional local data buses, which are connected to the local processing units at least with a local auxiliary data bus and additionally with local control lines.
Zu dem Datenkanal- Verwalter als Eingang sind der globaler Steuerbus, globaler Befehlsbus und die lokalen Steuerleitungen zugeschaltet. Gleichzeitig ist der Datenkanal- Verwalter auch mit den direkt parallelen Datenkanal- Ausgängen und den direkt parallelen Datenkanal- Eingängen verbunden.The global control bus, global command bus and the local control lines are connected to the data channel manager as input. At the same time, the data channel manager is also connected to the directly parallel data channel outputs and the directly parallel data channel inputs.
Bei Erweiterung der Schaltungsanordnung, mit zu dem Datenkanal- Verwalter angeschlossenen, direkt parallelen Datenkanal-Schaltern, die direkt parallelen Datenkanäle in Abschnitte zu teilen oder in Netz zu schalten ermöglichen, sind weitere Vorteile zu erwarten. Zu dem Datenkanal- Verwalter sind der globaler Steuerbus, globaler Befehlsbus und der globaler Hilfsdatenbus angebracht.Further advantages are to be expected when expanding the circuit arrangement with directly parallel data channel switches connected to the data channel manager, which enable the direct parallel data channels to be divided into sections or switched into the network. The global control bus, global command bus and the global auxiliary data bus are attached to the data channel manager.
Es ist Vorteilhaft die lokalen Verarbeitungseinheiten gleichzeitig wie mit lokalen Aus/Eingabe Koppeleinheiten, so auch mit direkt parallelen Datenkanal- Verwalter zu erweitern.It is advantageous to expand the local processing units at the same time as with local output / input coupling units, and also with directly parallel data channel managers.
Erheblicher Vorteil ist zu erwarten, wenn die direkt parallelen Datenkanäle (Direct Parallel Access: in weiterem DPA) als Eingang und Ausgang, mit DPA Aus/Eingabe Kanal-Steuereinheiten und DPA externe Datenbus-Steuereinheiten erweitert werden. Die DPA Aus/Eingabe Kanal-Steuereinheiten sind mit dem globalen Befehlsbus, mit der lokalen Aus/Eingabe Bussen und mit den DPA Aus/Eingabe Kanälen verbunden. Die DPA externe Datenbus- Steuereinheiten sind mit dem globalen Steuerbus, dem externen Datenbussen und mit den DPA Aus/Eingabe Kanälen verbunden.A considerable advantage can be expected if the direct parallel data channels (Direct Parallel Access: in further DPA) are expanded as input and output, with DPA out / input channel control units and DPA external data bus control units. The DPA out / input channel control units are connected to the global command bus, to the local out / input buses and to the DPA out / input channels. The DPA external data bus control units are connected to the global control bus, the external data bus and the DPA out / input channels.
Es ist zweckmässig das Steuerungssystem (Schaltungsanordnung) mit mindestens einem globalen Hilfsdatenspeicher zu erweitern, der zu den globalen Steuerbus, zu den globalen Adressbus, durch den globalen Hilfsdatenbus zu der globalen Arithmetischen Logischen Einheit und zu dem globalen Datenbus angebracht ist.It is expedient to expand the control system (circuit arrangement) with at least one global auxiliary data memory which is attached to the global control bus, to the global address bus, through the global auxiliary data bus to the global arithmetic logic unit and to the global data bus.
Gegebenenfalls ist es hilfreich das Steuerungssystem mit mindestens einem, der mit dem globalen Steuerbus, dem globalen Adressbus und dem globalen Datenbus verbundenen, globalem Datenspeicher zu erweitern.It may be helpful to expand the control system with at least one of the global data memories connected to the global control bus, the global address bus and the global data bus.
Genauso vorteilhaft ist die Erweiterung des Steuerungssystems mit mindestens einer Unterbrechungs-Steuereinheit, zu der globaler Steuerbus, die Ein- und Mehrzyklus- Unterbrechung Eingänge, der Unterbrechung Steuerbus der in Richtung der globalen Steuereinheit Verbindung herstellt, der Unterbrechungsbestätigung Ausgang und der globale Datenbus zugeschaltet sind.Equally advantageous is the expansion of the control system with at least one interruption control unit to which the global control bus, the single and multi-cycle interruption inputs, the interruption control bus which connects in the direction of the global control unit, the interruption confirmation output and the global data bus are connected.
Ähnlich aussichtsreich ist die Erweiterung des Steuerungssystems mit mindestens einer globalen Aus Eingabe Steuereinheit, der mit dem globalen Steuerbus, demThe expansion of the control system with at least one global out input control unit, that with the global control bus, the
Steuerbus der globalen Aus/Eingabe Steuereinheit, dem globalen Datenbus und dem Datenbus der globalen Aus Eingabe Steuereinheit, verbunden ist.Control bus of the global out / input control unit, the global data bus and the data bus of the global out input control unit.
Die Erfindung betrifft außerdem ein geeignetes Programmsystem das für die Gene- rierung und Simulation von Programmkodes zuständig ist, und für dem Verfahren entsprechende Schaltungsanordnung Programm - und Datenkodes generiert.The invention also relates to a suitable program system which is responsible for the generation and simulation of program codes and generates program and data codes for the circuit arrangement corresponding to the method.
Das der Erfindung entsprechendes Programmsystem zerteilt die Aufgaben in elementaren Prozeduren, dann bringt die elementaren Prozeduren für den aktuellen Systemaufbau und für die parallele Verarbeitung optimierte, in das System ladbare Form, wobei die Abhängigkeiten der elementaren Prozeduren von einander, von der Zeit und auch von der vorgegebenen Ablaufreihenfolge berücksichtigt werden.The program system according to the invention divides the tasks into elementary procedures, then brings the elementary procedures for the current system structure and for the parallel processing optimized form that can be loaded into the system, the dependencies of the elementary procedures on each other, on the Time and also from the specified sequence of operations are taken into account.
Die erweiterte Form des Programmsystems ist in der Lage die generierte Prograrnrnkode zu simulieren, oder es ermöglicht, auf geeignetem graphischen/Textausgabe Oberfläche, die Kode schrittweise, oder in gesteuerten Abschnitt frei durchzuführen, wobei die Ergebnisse der parallelen Prozeduren während des Ablaufes Nachvollziehen sind.The extended form of the program system is able to simulate the generated program code, or it allows to execute the code step by step or in a controlled section on a suitable graphic / text output surface, whereby the results of the parallel procedures can be understood during the process.
Im weiteren stellen wir durch Figuren und charakteristische Aufgaben die Erfindung vor, wobeiFurthermore, we present the invention through figures and characteristic tasks, whereby
Fig. 1. zeigt den Aufbau der Verarbeitungsblocks, die aus der Erfindung entsprechenden Verarbeitungseinheiten bestehenden, Fig. 2. zeigt den Vorteil bringenden Aufbau der Verarbeitungsblocks, ergänzt mit lokalen Ein/ Ausgang Kanal Einheiten, Fig. 3. zeigt den Vorteil bringenden Aufbau der Verarbeitungsblocks, ergänzt mit lokalem Datenkanal- Verarbeitungseinheiten, und Fig. 4. zeigt einen möglichen Aufbau der Datenkanal- Verarbeitungseinheiten des1 shows the structure of the processing blocks, the processing units corresponding to the invention, FIG. 2 shows the advantageous structure of the processing blocks, supplemented with local input / output channel units, and FIG. 3 shows the advantageous structure of the processing blocks , supplemented with local data channel processing units, and FIG. 4 shows a possible structure of the data channel processing units of the
Verarbeitungsblocks, Fig. 5. zeigt eine bevorzugte Ausführung der Verarbeitungs-Einheiten, wo die lokale Ein/Ausgang Kanäle mit lokalen Datenkanal- Verwaltungs-Einheiten ausgestattet sind. Fig. 6. zeichnet die lokalen Datenkanal- Verwaltungs-Einheiten, ergänzt mit DPA Ein/Ausgabe Datenkanal- Verwaltung und externen Datenbus- Verwaltung Einheiten auf, wobei Fig.7. zeigt der Blockaufbau (Schaltungsaufbau) der Erfindung entsprechendes, vollständiges Steuerungssystem, sowie Fig. 8. zeichnet mit Nützlichen Ergänzungen ausgestattete, erweitertes Steuerungs- System auf. Tabelle 1 Beispiel 1 - Durchführung globaler Bitoperationen, Tabelle 2 Beispiel 2 - Wortbildung aus beliebigen Datenbits,Processing Blocks, Figure 5 shows a preferred embodiment of the processing units where the local input / output channels are equipped with local data channel management units. FIG. 6 records the local data channel management units, supplemented with DPA input / output data channel management and external data bus management units, FIG. 7. FIG. 8 shows the complete control system corresponding to the block structure (circuit structure) according to the invention, as well as FIG. 8. records extended control system equipped with useful additions. Table 1 Example 1 - Execution of global bit operations, Table 2 Example 2 - Word formation from any data bits,
Tabelle 3 Beispiel 3 - Aufteilung von Daten bei LU-Zerlegung einer 7x7 Matrize Tabelle 4 Beispiel 4 - Aufteilung von Daten bei LU-Zerlegung zweier 3 3 Matr. Tabelle 5a Beispiel 5 - Aufteilung von Daten bei Multiplikation zweier 3 χ3 Matrizen mit 3 Vektoren, Tabelle 5b Beispiel 5 - Programmschritte, Tabelle 6a Beispiel 6 - andere Aufteilung von Daten bei Multiplikation zweier 3 3 Matrizen mit 3 Vektoren, Tabelle 6b Beispiel 6 - Programmschritte,Table 3 Example 3 - Distribution of data for LU decomposition of a 7x7 matrix Table 4 Example 4 -. Distribution of data in LU decomposition of two 3 3 Matr Table 5a Example 5 - Distribution of data in the multiplication of two 3 χ 3 matrices with 3 vectors, Table 5b Example 5 - program steps Table 6a Example 6 - Other Distribution data when multiplying two 3 3 matrices by 3 vectors, Table 6b Example 6 - program steps,
Tabelle 7 Beispiel 7 - Aufteilung von Daten bei Multiplikation einer 8 8 Matrizen mit 8 Vektoren In Fig.1 findet sich der Aufbau der Verarbeitungsblock E der Erfindung entsprechendem Steuerungssystem, mit dessen Hilfe - selbstverständlich in der Zuordnung von geeigneten globalen Einheiten und mit Verwendung Aufgabeadaptierten Programmkodes - das Verfahren auszuführen ist. Der Verarbeitungsblock E besteht aus einer beliebigen Anzahl, aber vorteilhaft mindestens aus zwei lokalen Verarbeitungseinheiten Dl, D2, ..., Dn. Die lokalen Verarbeitungseinheiten Dl, D2, ..., Dn beinhalten einen lokalen Adresswandler A, einen lokalen Datenspeicher B und eine lokale Arithmetische/Logische Einheit C.Table 7 Example 7 - Distribution of data when multiplying an 8 8 matrix by 8 vectors. In FIG. 1, the structure of the processing system E according to the invention is found, with the aid of which - of course in the assignment of suitable global units and using task-adapted program codes - the procedure is to be carried out. Processing block E consists of any number, but advantageously at least two local processing units D1, D2, ..., Dn. The local processing units D1, D2, ..., Dn contain a local address converter A, a local data memory B and a local arithmetic / logical unit C.
Die lokalen Adresswandler A sind durch lokale Adresse-Busse LAi, LA2, ... ,LAn mit lokalen Datenspeicher B verbunden. Die lokalen Datenspeicher B sind durch lokale Daten-Busse LDι,LD2, ... ,LDn mit lokalen Arithmetischen/Logischen Einheiten C verbunden. Die lokale Datenspeicher B sind durch bidirektionale lokale Daten-Bussen LDi, LD2, ... ,LDnmit dem lokale Adresswandler A verbunden.The local address converters A are connected to local data memory B by local address buses LAi, LA 2 , ..., LA n . The local data memories B are connected to local arithmetic / logic units C by local data buses LDι, LD 2 , ..., LD n . The local data memories B are connected to the local address converter A by bidirectional local data buses LDi, LD 2 , ..., LD n .
Der Erfindung entsprechende Verarbeitungsblock E ist durch globalen Adressbus GA, globalen Steuerungsbus GC, globalen Befehlsbus GI und globalen Datenbus GD, weiterhin durch den globalen Bitbus GB mit den zusätzlichen Einheiten der Schaltungsanordnung (Steuerungssystem) verbunden, wie das in Zusammenhang mit der Fig. 7 erläutert ist. Das System beinhaltet, in Abhängigkeit von der Ausführung der lokalen Adresswandler, einen aus dem globalen Adressbus GA adressierten Adresse-Speicher, Datenregister die für die Speicherung in dem Adresse-Speicher ausgewählten Adresse- Wert und Hilfswerten vorgesehen ist, und einen lokalen Adresse-Rechner Logik-Einheit. Die lokalen Adresse-Rechner als logische Einheiten legen anhand der Adresse-Daten, dem Inhalt von Daten-Registern und im Abhängigkeit vom Zustand der GA globalen Adresse-Bus die Ausgangssignale der Adresswandler fest, die zu Stande kommen:Processing block E according to the invention is connected by global address bus GA, global control bus GC, global command bus GI and global data bus GD, and further by global bit bus GB to the additional units of the circuit arrangement (control system), as explained in connection with FIG. 7 is. Depending on the design of the local address converter, the system includes an address memory addressed from the global address bus GA, data registers which are provided for the address value and auxiliary values selected for storage in the address memory, and a local address computer logic -Unit. The local address computers as logical units determine the output signals of the address converters based on the address data, the content of data registers and depending on the state of the GA global address bus:
- direkt, das heißt, dass von dem globalen Adresse-Bus GA in dem lokalen Adresse-Speicher ausgewählter Datenwert auf den Ausgang des- directly, that is to say that data value selected by the global address bus GA in the local address memory is sent to the output of the
Adresswandlers als Ergebnis-Adress erscheint.Address converter appears as the result address.
- mit Offset-Bildung, wobei auf Grund der in die Register zuvor gespeicherten und in dem lokalen Adresse-Speicher ausgewählten Datenwerte, die Ergebnis- Adresse durch den lokalen Adresse-Rechner des Adresswandlers formiert werden,with offset formation, the result address being formed by the local address computer of the address converter on the basis of the data values previously stored in the registers and selected in the local address memory,
- korrigiert aus dem Zustand des globalen Adress-Busses GA, wobei auf Grund der in den Registern zuvor gespeicherten Daten und nach dem Zustand ausgewählten Linien des Adress-Busses, die Ergebnis- Adresse durch den lokalen Adresse-Rechner des Adresswandlers formiert werden. Während Ausführung der inneren Zyklusprozeduren, die Register in den- Corrected from the state of the global address bus GA, the result address being formed by the local address computer of the address converter on the basis of the data previously stored in the registers and lines of the address bus selected according to the state. During the execution of the inner cycle procedures, the registers in the
Adresswandlern A in Zusammenarbeit mit dem lokalen Adresse-Rechner Logik ermöglichen die Zuordnung von verschiedenen Daten zu dem gleichen Programmsegment in jedem Zyklus durch Festlegung von Basis- Adressen der parallel behandelten Daten. In Zusammenarbeit mit dem globalen Adressbus GA, durch die zugeordnetenAddress converters A in cooperation with the local address computer logic enable the assignment of different data to the same program segment in each cycle by specifying base addresses of the data treated in parallel. In cooperation with the global address bus GA, through the assigned
Adresslinien, dient der globale Adressbus als Argument des Adresswandlers A. Das erlaubt die Größe des Adressspeichers zu reduzieren.Address lines, the global address bus serves as an argument of the address converter A. This allows the size of the address memory to be reduced.
Die generierten lokalen Adressen auf der Ausgangsseite des Adresswandlers definieren die Daten in den lokalen Datenspeichern B, die in aktuellen Prozessen beteiligt sind. Die in den lokalen Datenspeichern B definierte Daten, in Vermittlung mit den lokalen Datenbussen LDi, LD2, ... ,LDn, sind in dem lokalen Arithmetischen/Logischen Einheit C in arithmetischen und logischen Operationen beteiligt, wovon sie als Ergebnisse, auf die ausgewählte lokale Positionen gespeichert werden können. Jede lokale Arithme- tische Logische Einheit C beinhaltet mindestens eine Rechnereinheit ALU fürThe generated local addresses on the output side of the address converter define the data in the local data stores B, which are involved in current processes. The data defined in the local data memories B, in mediation with the local data buses LDi, LD 2 , ..., LD n , are involved in the local arithmetic / logical unit C in arithmetic and logical operations, of which they are referred to as results selected local positions can be saved. Each local arithmetic logic unit C contains at least one computer unit ALU for
Durchführung von arithmetischen (summieren, subtrahieren, multiplizieren, ... ) und logischen (schieben, UND, ODER, ... ) Operationen. Genauso zur Arithmetische Logische Einheit C gehört eine Teileinheit, die in Abhängigkeit von Registerinhalt und Befehl für Bitauswahl vorgesehen ist. Die Aufgabe deren ist, die ausgewählten Bits für Weiterverarbeitung, durch den globalen Bitbus GB, in die globale Arithmetische/Logische Einheit P weiter zu geben, wie das aus der Fig.7 zu entnehmen ist.Perform arithmetic (sum, subtract, multiply, ...) and logical (shift, AND, OR, ...) operations. Similarly to the arithmetic logic unit C, a subunit belongs, which is provided depending on the register content and command for bit selection. The task of this is to pass the selected bits for further processing through the global bit bus GB into the global arithmetic / logic unit P, as can be seen from FIG.
Die Arithmetische/Logische Einheit C beinhaltet weiterhin Registern zu Durchführung verschiedenen Datenspeicher- Aufgaben. Ein Teil der Register, die für Zwischenspei- cherung in arithmetischen und logischen Operationen betroffenen Daten vorgesehen sind, haben vorzügliche weise den lokalen Datenbus LD entsprechende Bitbreite. Einige lokale Register können auch Steuerungs-Funktionen ausüben. Bitregistern sind vorgesehen für Fixierung des lokalen Zustande der ausgewählten Bits, der Übertra- gung-Bits (Carry), der Ergebnis-Bits (>=,<=, ==, =0,...), der Steuerbits für Adresse- und Daten Modifikation.The arithmetic / logic unit C also contains registers for performing various data storage tasks. Some of the registers, which are provided for intermediate storage in arithmetic and logical operations, have the bit width corresponding to the local data bus LD. Some local registers can also perform control functions. Bit registers are provided for fixing the local state of the selected bits, the transmission bits (carry), the result bits (> =, <=, ==, = 0, ...), the control bits for address and Data modification.
Die Modifikation oder der Zugang zu dem aktuellen Inhalt des Bitregisters, angesteuert mit dem globalen Steuerbus GC, ist durch den globalen Datenbus GD oder globalen Bitbus GB gewährleistet. Der Datenverkehr der Bitbusses GB, bei geeigneter Ausführung ist auch durch den globalen Datenbus GD durchzuführen. Diese Ausführung erübrigt die Verwendung einer getrennten globalen Bitbusses GB. Die Steuerung, die sich in den lokalen Arithmetischen Logischen Einheiten C Abspielenden Prozessen, wird in Abhängigkeit von den globalen Befehlsbussen GI und globalen Steuerbussen GC durchgeführt. Fig. 2 zeigt den Aufbau der Erfindung entsprechenden, mit lokalen Aus/Eingabe Koppeleinheit F erweiterten, Verarbeitungsblock E_Df. Die lokale Aus/Eingabe Koppeleinheiten F werden aus der Seite des globalen Befehlsbusses GI und globalen Steuerbusses GC durchgeführt. Dessen Aufgabe ist die Anpassung der lokalen digitalen und analogen Signalen, sowie die Sicherung des Datenverkehrs zwischen den lokalen Aus Eingabe Bussen LIOi, LIO...,LIOn und lokalen Datenbussen LD. In dem Zusammenhang sind Sie mit geeigneten Instrumenten ausgestattet, wie:The modification or access to the current content of the bit register, controlled by the global control bus GC, is guaranteed by the global data bus GD or global bit bus GB. The data traffic of the bit bus GB, with a suitable design, must also be carried out by the global data bus GD. This design eliminates the need to use a separate global bit bus GB. The control which processes take place in the local arithmetic logic units C is carried out as a function of the global command buses GI and global control buses GC. 2 shows the processing block E_Df corresponding to the structure of the invention, which is expanded with local output / input coupling unit F. The local output / input coupling units F are carried out from the side of the global command bus GI and global control bus GC. Its task is to adapt the local digital and analog signals, as well as to secure data traffic between the local out input buses LIOi, LIO ..., LIO n and local data buses LD. In this context, you are equipped with suitable instruments, such as:
- Ports für Ein/Ausgabe digitalen Signalen,- ports for input / output of digital signals,
- mit selbständigen Programmen ausgestattete, oder aus dem Steuerungssystem gesteuerte, intelligente digitale Koppel-Einheiten,- intelligent digital coupling units equipped with independent programs or controlled from the control system,
- mit selbständigen Programmen ausgestattete, oder aus dem Steuerungssystem gesteuerte D/A Wandler für Erzeugung analoge Ausgangssignale,- D / A converters equipped with independent programs or controlled from the control system for generating analog output signals,
- A D Wandler für Erfassung von analogen Signalen, sowie Multiplexer, u.s.w.- A D converter for acquisition of analog signals, as well as multiplexers, etc.
Der Anzahl der zugeordneten lokalen Aus/Eingabe Koppeleinheiten F ist beliebig, zweckmässig aber nicht höher, als der Anzahl der verwendeten lokalen Verarbeitungseinheiten D.The number of assigned local output / input coupling units F is arbitrary, but is expediently not higher than the number of local processing units D used.
Fig. 3 zeigt den Aufbau der Erfindung entsprechenden, mit lokalem Datenkanal- Verwalter H erweiterten Verarbeitungsblocks. Die Aufgabe der lokalen Datenkanal- Verwalter H ist die Sicherung des direkten parallelen Datenverkehrs (Direct Parallel Access -DPA) zwischen den lokalen Verarbeitungseinheiten D. Die Steuerung der DPA geschieht in Übereinstimmung mit dem Befehl und ist von dem globalen Befehl- Bus GI und globalen Steuerungsbus GC definiert. Der Anzahl der zugeordneten lokalen Datenkanal- Verwalter H ist beliebig, zweckmässig aber nicht höher, als der Anzahl der verwendeten lokalen Verarbeitungseinheiten D. Jeder lokaler Datenkanal- Verwalter H betreibt einen Ausgangskanal, die für die Weitergabe der lokalen Datenbus LA Zuständen verantwortlich sind und in inaktive Position tristate Zustand aufnehmen. So ist es ermöglicht bei einem lokalen Datenkanal- Verwalter H Anzahl, kleiner als der Anzahl von lokalen Verarbeitungseinheiten D, mit einen Steuereinheit, mehrere Datenkanäle zu betreiben.FIG. 3 shows the structure of the processing blocks corresponding to the invention and expanded with a local data channel manager H. The task of the local data channel managers H is to secure the direct parallel data traffic (Direct Parallel Access -DPA) between the local processing units D. The DPA is controlled in accordance with the command and is from the global command bus GI and global control bus GC defines. The number of assigned local data channel managers H is arbitrary, expedient but not higher than the number of local processing units D used. Each local data channel manager H operates an output channel which is responsible for the transfer of the local data bus LA states and is inactive Record position tri-state. This makes it possible for a local data channel manager to have H number, less than the number of local processing units D, with one control unit to operate several data channels.
Die lokalen Datenkanal- Verwaltern H verfügen über einen, den lokalen Datenkanal- Verwalter H entsprechender Anzahl von Eingangs-Kanälen, die in dem lokalen Datenkanal- Verwalter H ausgewählt werden und den lokalen Hilfsdatenbussen SB], SB2,...,SBn oder den lokalen Adressebussen LAι,LA >...,LAn zugeordnet werden können. So in dem System, mit Hilfe eines Programms, ist es gewährleistet z.B. das in einer Verarbeitungseinheit D sich auf dem lokalen Datenbus LD findender Datenzu- stand, in einer anderen, oder sogar gleichzeitig in allen Verarbeitungseinheiten D in der Datenverarbeitung teilnehmen kann.The local data channel managers H have a number of input channels corresponding to the local data channel manager H, which are selected in the local data channel manager H and the local auxiliary data buses SB], SB 2 , ..., SB n or can be assigned to the local address buses LAι, LA > ..., LA n . Thus in the system, with the aid of a program, it is ensured, for example, that the data state found in one processing unit D on the local data bus LD can participate in the data processing in another, or even simultaneously in all processing units D.
Fig. 4 zeigt der Erfindung entsprechenden, möglichen Aufbau der lokalen Datenkanal Verarbeitungseinheiten Hι,H2,...,Hn,, und zeichnet eine mögliche Konfiguration der direkt parallelen Datenkanal- Schaltern KjDPAi,...,K_DPAX auf. In dem aufgezeichnetem Beispiel sind die lokalen Datenkanal Verarbeitungseinheiten Hι,H2, ... , Hn, mit lokalen Datenbussen LDi, LD2, ... ,LDn, lokalen Steuerlinien LCl5 LC2, ... ,LCnund lokalen Hilfsdatenbussen SB1? SB2, ... , SBn verbunden. Die Aufgabe von lokalen Hilfsdatenbussen SB SB2, ... , SBn kann von dem lokalen Datenbussen LD i, LD2, ... , LDa selbstverständlich übernommen werden.Fig. 4 shows the possible construction of the local data channel processing units H 1, H 2 , ..., H n ,, corresponding to the invention and records a possible configuration of the directly parallel data channel switches KjDPAi, ..., K_DPA X. In the example recorded, the local data channel processing units are H 1, H 2 , ..., H n , with local data buses LDi, LD 2 , ..., LD n , local control lines LC 15 LC 2 , ..., LC n and local auxiliary data buses SB 1? SB 2 , ..., SB n connected. The task of local auxiliary data buses SB SB 2 , ..., SB n can of course be taken over by the local data buses LD i, LD 2 , ..., LD a .
Der Auswahl des direkten parallelen Datenkanal-Ausgangs ist durch den Odemux Kanal-Demultiplexer gewährleistet, dessen Aufgabe ist die Inhalt-Weitergabe von den lokalen Datenbus LD nach dem ausgewählten parallelen Datenkanal-Ausgang. Damit ist ermöglicht, das der Inhalt der lokalen Datenbus LD einer lokalen Verarbeitungseinheit D auf einen beliebigen Datenkanal herausgegeben wird. Diese Ausführung setzt voraus, das zu den Datenkanälen „Open Kollektor" oder „tristate" Verbindungen angebracht sind. Gegenschaltung (oder Kurzschluss) ist aus dem Steuerungsprogramm oder mit zusätzlichen Hardware-Elementen zu vermeiden. Es ist einfach die Verwendung eines Imux Kanal-Multiplexers für die direkt parallele Eingangauswahl anzuwenden. Hier besteht die Möglichkeit für die gleichzeitige Verwendung auch einer Odemux Kanal-Demultiplexers, aber auch ohne dies, ein behebiger Datenzugriff möglich ist. In diesem Falle ist nur ein Ausgangs-Kanal zu jeder lokalen Verarbeitungseinheit D zugeordnet, wobei die aktuelle lokale Verarbeitungseinheit D, ihrer Position entsprechenden Ausgangs-Kanal betreibt.The selection of the direct parallel data channel output is guaranteed by the Odemux channel demultiplexer, whose task is the transfer of content from the local data bus LD to the selected parallel data channel output. This enables the content of the local data bus LD of a local processing unit D to be issued on any data channel. This version requires that connections are made to the "Open Collector" or "tristate" data channels. Counter switching (or short circuit) is to be avoided from the control program or with additional hardware elements. It's easy to use an Imux channel multiplexer for direct parallel input selection. Here it is possible to use an Odemux channel demultiplexer at the same time, but also without this data access is possible. In this case, only one output channel is assigned to each local processing unit D, the current local processing unit D operating output channel corresponding to its position.
Bei Ausführung einigen Aufgaben [Multiplikation 2 St. 3x3 Matrix mit 2 St. Vektoren (siehe Beispiel Nr.5)], ist die Verwendung von direkt parallelen Datenkanal-Schaltern K_DPAχ,...,K_DPAx vorteilhaft. Datenkanal- Schaltern sind dann benötigt, wenn entlang eines parallelen Datenkanals mehrere, miteinander nicht verbundene Daten weitergegeben werden. Ist ein Datenkanal-Kanalschalter K_DPA zwischen lokalen Verarbeitungseinheiten D3 und D4 angebracht, nach deren Trennung können zwei unabhängige Daten auf einem Kanal weitergegeben werden.When performing some tasks [multiplication 2 x 3x3 matrix with 2 x vectors (see example no.5)], the use of directly parallel data channel switches K_DPAχ, ..., K_DPA x is advantageous. Data channel switches are required if several data that are not connected to one another are passed along a parallel data channel. If a data channel channel switch K_DPA is installed between local processing units D3 and D4, after they have been separated, two independent data can be passed on on one channel.
Die Verwendung von KJDPA Datenkanal-Kanalschaltern ist sonderlich vorteilhaft bei großer Anzahl von Verarbeitungseinheiten D und kleiner Anzahl von parallelen Datenkanäle. Bei komplizierteren Datenbewegungen kann sich Anspruch erheben für die Ausführung eines Datenkanal-Netzes. Aus dem Programm, auch bei beliebig komplizierten Zusammensetzung eines Netzes, ist eine einfache und schnelle Steuerung gewährleistet.The use of KJDPA data channel channel switches is particularly advantageous with a large number of processing units D and a small number of parallel data channels. In the case of more complicated data movements, claims can be made for the execution of a data channel network. A simple and quick control is guaranteed from the program, even with any complicated composition of a network.
Fig. 5 zeigt der Erfindung entsprechenden, mit lokalen Aus/Eingabe Kopplereinheiten F und Datenkanal- Verwaltern H erweiterte Verarbeitungsblock E_Dfh, der die bei Fig.2 und Fig.3 beschriebene Einheiten beinhaltet, und in diesem Zusammenhang beschriebene alle Vorteile besitzt.FIG. 5 shows the processing block E_Dfh corresponding to the invention, with local output / input coupler units F and data channel managers H, which contains the units described in FIG. 2 and FIG.
Fig. 6 zeigt der Erfindung entsprechendes Steuerungssystem, indem dem Verarbeitungsblock E_Dh mit Datenkanal- Verwalter H erweiterte Form, durch die parallelen Datenkanäle der Datenkanal- Verwaltern H direkt parallel Datenkanäle DPAj, DPA2, ..., DP An, wobei einerseits zu dem Aus/Eingabe Kanal Steuereinheiten H_ioI; ..., H_ion DPA zugeordnete lokale Aus/Eingabe Bussen LIOj, ... ,LIOn, anderseits durch DPA externe Datenbus Steuereinheiten H_exD1; ..., H_exD zugeordnete externe Datenbussen exD1? ..., exDn ausgebracht sind. In diesem System sind die lokalen Datenkanal- Verwalter H weiterhin unverändert in der Lage die vorher beschriebenen Aufgaben zu erledigen.6 shows the control system corresponding to the invention, in that the processing block E_Dh with data channel manager H has an expanded form, through the parallel data channels of the data channel managers H directly parallel data channels DPAj, DPA 2 ,..., DP On, on the one hand towards the off / Input channel control units H_io I; ..., H_io n DPA assigned local output / input buses LIOj, ..., LIO n , on the other hand by DPA external data bus control units H_exD 1; ..., H_exD assigned external data buses exD 1? ..., exD n are applied. In this system, the local data channel administrators H are still able to carry out the tasks described above unchanged.
Bei Verwendung der Datenkanal- erwalter H ist es vorteilhaft zu den DPA Aus/Ein- gäbe Kanal Steuereinheiten, mit bei Fig.2 beschriebenen, F lokale Aus/Eingabe Koppeleinheiten zu ergänzen. Das ermöglicht die lokale Aus/Eingabe Bussen LIO1? ..., LIOft aus dem Systemprogramm angesteuert, bei zweckmässiger Ausführung eine Verbindung mit einem beliebigen oder gleichzeitig auch mit mehreren Verarbeitungseinheiten D herzustellen. Somit ist die dynamische Durchführung lokalen Aus/Eingabe Prozeduren mit hoher Geschwindigkeit gewährleistet.When using the data channel manager H, it is advantageous to supplement the DPA output / input channel control units with F local output / input coupling units described in FIG. This enables the local output / input buses LIO 1? ..., LIO ft controlled from the system program, to establish a connection with any or, at the same time, with several processing units D if expedient. This ensures the dynamic execution of local output / input procedures at high speed.
Einen weiteren bedeutsamen Vorteil bringt die Zuordnung der DPA externen Datenbus Steuereinheiten H e Di, ..., H_exDn zu dem Datenkanal- Verwalter H. Mit dessen Hilfe wird ermöglicht der parallele Datenverkehr mit einer externen Speichereinheit, wo in Zusammenarbeit mit den inneren Systemprogrammen, zwischen beliebige externe Datenpositionen und beliebige D lokalen Verarbeitungseinheiten eine Verbindung zu Stande kommen kann. So z.B. eine beliebige externe Datenblock innerhalb eines Zyklus auf die vorgesehene Position der D lokalen Verarbeitungseinheiten abgespeichert oder aus denen herausgelesen werden kann.A further significant advantage is the assignment of the DPA external data bus control units H e Di, ..., H_exD n to the data channel manager H. This enables parallel data traffic with an external storage unit, where, in cooperation with the internal system programs, A connection can be established between any external data positions and any D local processing units. For example, any external data block can be saved within a cycle to the intended position of the D local processing units or from which data can be read out.
Auf der Fig. 7, das als Hauptfigur betrachtet ist, zeigt ein Aufbau der Erfindung entsprechendes Steuerungssystem R, womit das Verfahren zu realisieren ist, wobei es beinhaltet nur zu der Funktion unvermeidliche aber ausreichende Elemente. Hauptelemente Di des Steuerungssystems sind:7, which is regarded as the main figure, shows a structure of the control system R corresponding to the invention, by means of which the method can be implemented, it only contains elements which are inevitable but sufficient for the function. Main elements Di of the control system are:
- J globale Adressgenerator- J global address generator
- K globale Befehlsspeicher- K global command memory
- M globale Steuereinheit- M global control unit
- T externe Koppeleinheit - P globale Arithmetisches Logisches Einheit- T external coupling unit - P global arithmetic logic unit
- E Verarbeitungsblock. Der Verarbeitungsblock E besitzt mindestens zwei lokalen Verarbeitungseinheiten Di, ..., Dn, oder Df, Dh, Dhf, die in Zusammenhang mit Fig.1-3 beschrieben wurden. Der globale Adressgenerator J ist durch den globalen Adressbus GA mit den Verarbeitungsblock E, den globalen Befehlsspeicher K, der globalen Steuereinheit M und der externen Koppeleinheit T verbunden.- E processing block. The processing block E has at least two local processing units Di, ..., D n , or Df, Dh, Dhf, which were described in connection with Fig. 1-3. The global address generator J is connected through the global address bus GA to the processing block E, the global command memory K, the global control unit M and the external coupling unit T.
Der globale Befehlsspeicher K ist durch den globalen Befehlsbus GI mit den Verarbeitungsblock E, der globalen Arithmetische/Logische Einheit P und der globalen Steuereinheit M verbunden. Die globale Steuereinheit M ist durch einen globalen Steuerbus GC mit den Verarbeitungsblock E, den globalen Adressgenerator J, den globalen Befehlsspeicher K und den globaler Arithmetische/Logische Einheit P verbunden. Der Verarbeitungsblock E steht durch einen globalen Bitbus GB mit der globalen Arithmetischen/Logischen Einheit P in bidirektionalen Verbindung. Die globale externe Koppeleinheit T ist durch Steuerleitungen ExV der externenThe global command memory K is connected to the processing block E, the global arithmetic / logic unit P and the global control unit M through the global command bus GI. The global control unit M is connected by a global control bus GC to the processing block E, the global address generator J, the global command memory K and the global arithmetic / logic unit P. The processing block E is bidirectionally connected to the global arithmetic / logic unit P through a global bit bus GB. The global external coupling unit T is the external one through control lines ExV
Koppeleinheit mit einer externen Einheit EX ( z.B. Rechner), sowie mit der globalen Steuereinheit M verbunden.Coupling unit with an external unit EX (e.g. computer) and connected to the global control unit M.
Hier bemerken wir, das die Steuerung der globalen Adressbus GA, gegebenen Falls auch aus der Seite der externen Koppeleinheit T folgen kann. Bei Zusammenstellung des Systems eine Systemleistung-Erhöhung ist durch Vermehrung des Steuerungssystems R, oder dessen Komponenten zu erreichen.Here we note that the control of the global address bus GA can, if necessary, also follow from the side of the external coupling unit T. When the system is put together, an increase in system performance can be achieved by increasing the control system R or its components.
Die Größe der globalen Adressgenerator J entspricht der Breite der globalen Adressbus GA und beinhaltet einen mit Clock-Signal änderbaren Zähler, dessen Inhalt zweckmäßig in Abhängigkeit von dem Zustand der globaler Steuerbus GC, bevorzugte weise aus der Richtung von GD globaler Datenbus, oder gegebenenfalls in Abhängigkeit von dem Zustand der globaler Befehlsbus GI überschrieben werden kann.The size of the global address generator J corresponds to the width of the global address bus GA and contains a counter that can be changed with a clock signal, the content of which is expedient depending on the state of the global control bus GC, preferably from the direction of GD global data bus, or possibly depending from the state of the global command bus GI can be overwritten.
Die auf dem Ausgang der globalen Adressgenerator J generierte Adresse entspricht dem Inhalt der Adresse-Zählern und dient für alle Einheiten als gemeinsame Adresse. Bei überschreiben des Inhaltes der Zählern (z.B. aus der Seite der globalen Datenbus GD) ist ermöglicht globale Sprungbefehle durchzuführen, die bedingungsabhängig oder auch bedingungslos sein können.The address generated on the output of the global address generator J corresponds to the content of the address counters and serves as a common address for all units. If the contents of the counters are overwritten (eg from the global data bus GD side), it is possible to carry out global jump commands that can be conditional or unconditional.
Der globale Befehlsspeicher K ist für Speicherung der Operationsbefehle zuständig. Die Auffüllung des globalen Befehlsspeichers K mit Befehlskodes geschieht vorteilhaft steuert von dem globalen Steuerbus GC, durch den globalen Datenbus GD, auf die von dem globalen Adressbus GA festgelegten Adresse. Während des Programmablaufs erscheint auf den Ausgang der globalen Befehlsspeicher K der von den globalen Adressbus GA ausgewählter Befehl, und durch den globalen Befehlsbus GI erreicht er die vorgesehenen Positionen.The global command memory K is responsible for storing the operational commands. The global command memory K is filled up with command codes, advantageously controlled by the global control bus GC, through the global data bus GD, to the address specified by the global address bus GA. During the program run, the command selected by the global address bus GA appears on the output of the global command memory K, and it reaches the intended positions through the global command bus GI.
Die globale Steuereinheit M generiert die Steuersignale die zu Durchführung der Systemprozeduren und Datenverkehr benötigt sind. Als Eingang- Variablen dienen:The global control unit M generates the control signals that are required to carry out the system procedures and data traffic. Serve as input variables:
- die in dem globalen Adressgenerator J generierte und durch globaler Adressbus GA weitergegebene Adresse- Variable,the address variable generated in the global address generator J and passed on through the global address bus GA,
- der dem in globalen Befehlsspeicher K dem aktuellen Inhalt entsprechenden und durch den globalen Befehlsbus GI weitergeleiteter Operationsbefehl, undthe operation command corresponding to the current content in global command memory K and forwarded by the global command bus GI, and
- Steuerungslinien ExV entsprechender Signalen der externen Koppeleinheit T.- Control lines ExV corresponding signals of the external coupling unit T.
Die Herstellung der Ausgangssignale in Abhängigkeit von den Eingangssignalen wird, vorzüglich mit dem Taktsignal synchronisiert, durchgeführt. Die Ausgangs- Variable, gegebenen Falls in Vermittlung geeigneter Hilfsschaltkreisen, erscheinen auf den globalen Steuerbus GC und dadurch steuern und synchronisieren sie die Prozeduren in dem System. Die Aufgabe der externen Koppeleinheit T ist die Sicherung der Datenverkehr zwischen dem Steuerungssystem und einer externen Einheit (z.B. Rechner). In Abhängigkeit von den Steuerungslinien ExV der externen Koppeleinheit T und entsprechend den Zuständen des globalen Steuerbusses GC, wird die Datenkopplung zwischen der Koppeloberfläche EX zur externen Steuerung und dem globalen Datenbus GD gesichert. Somit werden für das System unvermeidliche Aufgaben erledigt, zumal: - Der Inhalt vom globalen Adressgenerator J kann gelesen und überschrieben werden, was ermöglicht die externe Festlegung und Abfrage der globalen Adresse.The production of the output signals as a function of the input signals is carried out, preferably synchronized with the clock signal. The output variables, possibly via suitable auxiliary circuits, appear on the global control bus GC and thereby control and synchronize the procedures in the system. The task of the external coupling unit T is to secure the data traffic between the control system and an external unit (eg computer). Depending on the control lines ExV of the external coupling unit T and according to the states of the global control bus GC, the data coupling between the coupling surface EX to the external control and the global data bus GD is secured. This means that tasks that are inevitable for the system are completed, especially: - The content of the global address generator J can be read and overwritten, which enables the external determination and query of the global address.
- In dem Verarbeitungsblock E mit Hilfe der Steuerleitungen ExV der externen Koppeleinheit, ist es möglich eine lokale Verarbeitungseinheit D zu bestimmen. Mit der globalen Adresse vorgegebene, und in dem Adresse-Speicher ausgewählte Position dem lokalen Adresswandler A eines lokaler Verarbeitungseinheit D, ist zu lesen und zu schreiben. Genauso ist zu lesen und zu schreiben dem lokalen Adressbus LA entsprechende Datenposition in dem lokalen Datenspeicher B, das in einer lokalen Verarbeitungseinheit D von der globalen Adresse, nach Modifikation im lokalen Adresswandler A, erzeugt wird.- In processing block E using the control lines ExV of the external coupling unit, it is possible to determine a local processing unit D. The position specified with the global address and selected in the address memory for the local address converter A of a local processing unit D is to be read and written. Likewise, read and write data position corresponding to the local address bus LA in the local data memory B, which is generated in a local processing unit D from the global address after modification in the local address converter A.
- In dem Verarbeitungsblock E ist ermöglicht eine globale Schreibe-Operation durchzuführen auf der lokalen Adresse LA, die mit der globalen Adresse bestimmt und in dem lokalen Adresswandler A modifiziert ist. Während der globalen Schreibe-Operation der auf dem globalen Datenbus GD erscheinende Datum, wird in jeder lokalen Verarbeitungseinheit D bestimmt mit dem jeweiligen lokalen Adressbus LA, in den lokalen Datenspeichern B innerhalb eines Zyklus abgespeichert. - Der durch den globalen Adressbus GA ausgewählter Operationskode in dem globalen Befehlsspeicher K kann gelesen und überschrieben werden. Dies erlaubt in dem System die Operationskodes hereinzubringen. Für die Systemfünktionen hat die globale Arithmetische/Logische Einheit P eine Grundsätzliche Bedeutung. Deren Hauptelemente sind: - die globale arithmetische und logische Operationen durchführende EinheitIn the processing block E it is possible to perform a global write operation on the local address LA, which is determined with the global address and modified in the local address converter A. During the global write operation, the date appearing on the global data bus GD is determined in each local processing unit D with the respective local address bus LA and stored in the local data memories B within a cycle. - The operation code selected by the global address bus GA in the global command memory K can be read and overwritten. This allows the operation codes to be brought into the system. The global arithmetic / logic unit P has a fundamental meaning for the system functions. The main elements are: - The unit performing global arithmetic and logical operations
(ALU)(ALU)
- Register, die zu Bitoperationen mit globaler Bestimmung zugeordnet sind,Registers which are assigned to bit operations with global determination,
- Register mit allgemeiner Bestimmung, die in globalen Operationen beteiligt sind, - Schaltkreise, die den Datenverkehr sichern.General purpose registers involved in global operations. Circuits that secure data traffic.
Operationen, die in der globalen Arithmetischen/Logischen Einheit P durchzuführen sind:Operations to be performed in the global arithmetic / logic unit P. are:
- Bitoperationen (AND2, AND3, AND4,..., OR2, OR3, OR4, ..., EXOR2, EXOR3,..., LNV, ...).- Bit operations (AND2, AND3, AND4, ..., OR2, OR3, OR4, ..., EXOR2, EXOR3, ..., LNV, ...).
- Die Verarbeitung von Bitvariablen, die zwar zu den lokalen Verarbeitungs- einheiten D zugeordnet sind, aber in der globalen Arithmetischen Logischen- The processing of bit variables that are assigned to the local processing units D, but in the global arithmetic logic
Einheit P, als gemeinsamer Wert zu verarbeiten sind, wie Übertragungs-Bits (Carry), Ergebnis-Bits (<=, >=, ==, ...), Operation Freigabe-Bits, Bits für lokale Adresse-Korrektion, Bits für lokale Daten-Korrektion.Unit P, to be processed as a common value, such as transmission bits (carry), result bits (<=,> =, ==, ...), operation enable bits, bits for local address correction, bits for local data correction.
- Datenweitergabe zwischen dem globalen Bitbus GB und globalen Datenbus GD.- Data transfer between the global bit bus GB and global data bus GD.
- Datenverkehr zwischen den globalen Datenbus GD und den lokalen Verarbeitungseinheiten D.- Data traffic between the global data bus GD and the local processing units D.
Fig. 8 zeigt einen Aufbau der Erfindung entsprechendes Steuerungssystem R, womit das Verfahren zu realisieren ist, wobei es vermeidliche, aber zusätzliche Vorteile bringende Einheiten beinhaltet, nämlich:8 shows a structure of the control system R corresponding to the invention, by means of which the method can be implemented, wherein it contains avoidable but additional advantages, namely:
- der N globale Datenspeicher,- the N global data storage,
- der L globale Hilfsdatenspeicher, - die Q globale Aus/Eingabe Steuereinheit und die S Unterbrechungs-Steuereinheit Zu dem globalen Adressbus GA ist der globale Datenspeicher N und der globale Hilfsdatenspeicher L zugeschaltet. Zu dem globalen Steuerbus GC sowie zu dem globalen Datenbus GD ist der globale Datenspeicher N, der globale Hilfsdatenspeicher L, die Unterbrechungs- Steuereinheit S und die globale Aus/Eingabe Steuereinheit Q zugeschaltet.- The L global auxiliary data memory, - The Q global output / input control unit and the S interrupt control unit. The global data memory N and the global auxiliary data memory L are connected to the global address bus GA. The global data memory N, the global auxiliary data memory L, the interruption control unit S and the global output / input control unit Q are connected to the global control bus GC and to the global data bus GD.
Der globale Hilfsdatenspeicher L ist, durch den globalen Hilfsdatenbus GS, zu der globalen Arithmetischen Logischen Einheit P der Steuerungssystem R verbunden. Die Unterbrechungs-Steuereinheit S ist mit Einzyklus-Unterbrechung -, Mehrzyklus- Unterbrechung-Eingänge lcikl.INT, ncikl.INT und mit demThe global auxiliary data memory L is connected to the global arithmetic logic unit P of the control system R by the global auxiliary data bus GS. The interrupt control unit S is with single-cycle interrupt, multi-cycle interrupt inputs lcikl.INT, ncikl.INT and with the
Unterbrechungsbestätigungs-Ausgang acklNT ausgerüstet, wobei mit dem Unterbrechung-Steuerbus GM ist sie zu der globalen Steuereinheit M des Steuerungssystems R zugeschaltet. Der globale Aus/Eingabe Steuereinheit Q ist mit den Datenbus Q_ioD der globalen Aus/Eingabe-Steuereinheit und des Steuerbusses Q_ioC der globalen Aus Eingabe-Steuereinheit, durch den globalen Adressbus GA und globalen Steuerbus GC mit dem Steuerungssystem R verbunden.Interrupt confirmation output acklNT equipped, with the Interrupt control bus GM, it is connected to the global control unit M of the control system R. The global output / input control unit Q is connected to the control system R via the data bus Q_ioD of the global output / input control unit and the control bus Q_ioC of the global output / input control unit, through the global address bus GA and global control bus GC.
Der globale Datenspeicher N beinhaltet einen mit Adresse-Speicher ausgerüsteten Adresswandler und Datenspeicher, dessen Aufgabe ist die Speicherung von gemeinsamen Operationsdaten. Der Aufbau und die Aufgabe der Adresswandler in globalem Datenspeicher N, stimmt mit den bei den lokalen Verarbeitungseinheiten D Beschriebenen überein. Den globalen Adressbus GA entsprechende globale Adresse, modifiziert in dem Adresswandler, wählt eine Datenposition in dem globalen Datenspeicher N aus. Auf die ausgewählte Position kann ein Wert geschrieben oder daraus herausgelesen werden, mit dem globalen Steuerbus GC angesteuert durch den globalen Datenbus GD.The global data memory N contains an address converter and data memory equipped with address memory, the task of which is the storage of common operational data. The structure and task of the address converters in global data memory N is the same as that described in the local processing units D. Global address corresponding to global address bus GA, modified in the address converter, selects a data position in global data memory N. A value can be written to or read from the selected position, with the global control bus GC controlled by the global data bus GD.
In dem globalen Datenspeicher N werden Daten abgespeichert, die für die lokalen Verarbeitungseinheiten D gemeinsam gebraucht sind. Damit ist die mehrfache Speicherung von Daten vermieden, was die Effektivität der Speicherkapazität erhöht. Der globale Hilfsdatenspeicher L dient hauptsächlich der Erweiterung der globalen Befehlsspeicher K. In dem globalen Hilfsdatenspeicher L befinden sich solche, gleichzeitig mit dem Operations-Kode und von den aktivierbaren Daten, die aus dem globalen Adressbus GA direkt ausgewählt werden, angesteuert mit dem globalen Steuerbus GC, durch den globalen Hilfsdatenbus GS in der globalen Arithmetischen/ Logischen Einheit P verarbeitet werden, oder auch einige Steuerungsaufgaben erledigen können.In the global data memory N, data are stored which are shared for the local processing units D. This avoids the multiple storage of data, which increases the effectiveness of the storage capacity. The global auxiliary data memory L serves mainly to expand the global command memory K. In the global auxiliary data memory L there are those, controlled simultaneously with the operation code and by the activatable data which are selected directly from the global address bus GA, with the global control bus GC , processed by the global auxiliary data bus GS in the global arithmetic / logic unit P, or can also perform some control tasks.
In Abhängigkeit von dem Operations-Befehl:Depending on the operations command:
- legen sie Invertierungs- Aufgaben für die globalen logischen Operationen fest, oder- define inversion tasks for the global logical operations, or
- beinhalten Sprungadressen, - Bitdaten für globalen Verbrauch,- contain jump addresses, - bit data for global consumption,
In Steuerungs- Aufgaben beteiligte Daten, - U.S.W.Data involved in control tasks, - ETC
Die globale Aus/Eingabe Steuereinheit Q, angesteuert aus den globalen Steuerbus GC in Zusammenarbeit mit dem globalen Datenbus GD, ist für globalen Aus/Eingabe Operationen vorgesehen. Aus Eingabe Steuereinheit Q beinhaltet Steuerungs-Regis- ter, dessen AusgängeThe global output / input control unit Q, controlled from the global control bus GC in cooperation with the global data bus GD, is provided for global output / input operations. From input control unit Q contains control registers, whose outputs
- den Steuerbus GjtoC der globalen Aus Eingabe Steuereinheit, und- the control bus GjtoC of the global out input control unit, and
- den Datenbus G_ioD der globalen Aus/Eingabe Steuereinheit betreiben, und- operate the data bus G_ioD of the global output / input control unit, and
- die synchronisiert erfassen die von dem G_ioD Datenbus kommende Daten. Zu dem Steuerbus G_ioC der globalen Aus/Eingabe Steuereinheit gehörende Register, während des Programmablaufes wird eine Adresse eingespeist, womit auf einer externe Ein/Ausgabe Einheit eine Datenposition ausgewählt wird. Bei Datenausgabe ist es zweckmäßig auch den vorgesehenen Datenwert in den, zu dem Datenbus G_ioD der globalen Aus/Eingabe Steuereinheit gehörende Register einzuspeisen. Der Inhalt der beschriebenen Register bleibt unverändert bis einen nächsten Zugriff. In Abhängigkeit der Peripherie-Geschwindigkeit wird der- The synchronized record the data coming from the G_ioD data bus. Registers belonging to the control bus G_ioC of the global output / input control unit, an address is fed in during the program run, whereby a data position is selected on an external input / output unit. In the case of data output, it is also expedient to feed the intended data value into the register belonging to the data bus G_ioD of the global output / input control unit. The content of the registers described remains unchanged until the next access. Depending on the peripheral speed, the
Programmablauf eine definierte Zeit fortgesetzt, dann werden auf dem Steuerbus G_ioC der globalen Aus/Eingabe Steuereinheit die benötigten Steuersignale herausgegeben. Bei Dateneinlesen wird der Inhalt des Datenbusses G_ioD in Register abgelegt, wovon die in einem beliebigen Zeitpunkt nach den globalen Datenbus GD weitergeleitet werden können.Program run continues for a defined time, then the required control signals are output on the control bus G_ioC of the global output / input control unit. When data is read in, the content of the data bus G_ioD is stored in registers, which can be forwarded to the global data bus GD at any time.
In inaktiver Situation sollte der Datenbus G_ioD bevorzugte weise tristate Zustand aufnehmen.In an inactive situation, the data bus G_ioD should preferably adopt a tri-state.
Der Unterbrechungs-Steuereinheit S auf externe Anforderungen führt einen vorgesehenen Befehl durch, oder startet ein zugeordnetes Programmsegment (Subroutine).The interrupt control unit S on external requests executes an intended command or starts an assigned program segment (subroutine).
In die globale Steuereinheit M weitergeleitete Unterbrechungs- Anforderung wird auf dem Unterbrechungsbestätigung- Ausgang ackTNT signiert.Interrupt request forwarded to global control unit M is signed on the interrupt confirmation output ackTNT.
Bei Einzyklus-Unterbrechung lcikl.INT (Eingang ist aktiviert), wird in dem Register der globalen Steuereinheit M vorbereitete Operation, zweckmässig nach der in den gleichen Registern abgespeicherten globalen Adressen (hier wird die globale Adresse aus Steuereinheit M herausgegeben), dem Datenposition entsprechenden Daten durchgeführt. Diese Art von Unterbrechung ist bevorzugt z.B. durch den lokalen Datenkanal- Verwalter H durchgeführtem parallelen Datenverkehr. Die Wiederholung der Unterbrechung ist selbstverständlich erlaubt, wobei z.b. zwischen zwei Unterbrechungen nur in den Registern in der Steuereinheit M sich befindende globale Adresse geändert wird.In the case of a single cycle interruption lcikl.INT (input is activated), the operation prepared in the register of the global control unit M, expediently according to the global addresses stored in the same registers (here the global address is output from control unit M), data corresponding to the data position carried out. This type of interruption is preferably, for example, parallel data traffic carried out by the local data channel manager H. The repetition of the interruption is of course permitted, wherein, for example, between two interruptions only the global address located in the registers in the control unit M is changed.
Bei Mehrzyklus-Unterbrechung ncikl.INT (Eingang ist aktiviert), wird bevorzugter weise der Inhalt des globalen Adressgenerators J in Register abgespeichert, wonach aus dem für den Unterbrechungs-Kode entsprechendem Register, oder aus einem Datenspeicher der Adressezähler aufgefühlt wird. Am Ende des Unterbrechungs- Programmablaufs, ein Rücksprung-Befehl signiert das Ende der Unterbrechungs- Aufgabe. Es folgt die erneute Einspeisung der in Register gesicherten Rücksprung- Adresse, und der unterbrochene Programmablauf wird weiter fortgesetzt.In the case of a multi-cycle interruption ncikl.INT (input is activated), the content of the global address generator J is preferably stored in registers, after which the address counter is picked up from the register corresponding to the interruption code or from a data memory. At the end of the interrupt program sequence, a return instruction signs the end of the interrupt task. The return address saved in the register is fed in again and the interrupted program continues.
Im Weiteren führen wir aufgrund einige Beispiele die Vorstellung der Erfindung entsprechendes Steuerungssystem durch, wobeiFurthermore, based on a few examples, we carry out the presentation of the control system corresponding to the invention, whereby
- Beispiel Nr.1 zeigt eine mögliche Lösung von Durchführung globalen Bitoperationen,- Example No. 1 shows a possible solution for performing global bit operations,
- Beispiel Nr.2 zeigt eine Wortbildung aus beliebigen Datenbits,- Example No.2 shows a word formation from any data bits,
- Beispiel Nr.3 zeigt die Aufteilung den Ausgangs- und Ergebnis Daten, bei LU- Zerlegung einer 7x7 Matrize,- Example No. 3 shows the distribution of the output and result data, with LU decomposition of a 7x7 matrix,
- Beispiel Nr.4 zeigt die Aufteilung den Ausgangs- und Ergebnis Daten, bei gleichzeitiger LU-Zerlegung zweier 3x3 Matrizen,- Example No. 4 shows the distribution of the output and result data, with simultaneous LU decomposition of two 3x3 matrices,
- B eispiel Nr .5 a. zeigt die mögliche Aufteilung der D aten bei Multiplikation zweier 3x3 Matrizen mit 3 Vektoren, wobei - Beispiel Nr.5b. zeigt die dazu benötigten Programmschritte,- Example No. 5 a. shows the possible division of the data when multiplying two 3x3 matrices by 3 vectors, whereby - Example No. 5b. shows the program steps required for this,
- Beispiel Nr.6a. zeigt eine andere Aufteilung der Daten, bei der gleichen Aufgabe, wobei- Example No.6a. shows a different division of the data, for the same task, where
- Beispiel Nr.6b. zeigt die dazu benötigten Programmschritte,- Example No.6b. shows the program steps required for this,
- Beispiel Nr.7. zeigt die Aufteilung den Ausgangs- und Ergebnis Daten, bei Multiplikation einer 8x8 Matrize mit 8 Vektoren. Beispiel 1 (Tabelle 1) zeigt eine mögliche Lösung von Durchführung globaler Bitoperationen. Nehmen wir an, in dem System der Verarbeitungsblock E besteht aus lokalen Verarbeitungseinheiten D0,Dι, ... ,D7. Wählen wir zu einem Ergebnis-Wort QQ zugeordnete logische Funktion, wo das Ergebnis-Wort QQ aus 8 Bit besteht. Jeder Eingangs- Wort AA, BB, CC, DD ist genauso 8 Bit breit, und die durchführenden logische Operationen haben einen QOj = ( !(!AAj & BB ) | !( !C &DD„) ) Form, wo j,k,l,n - Indexwerte sind, die in Rahmen der Bitbreite einen beliebigen, auch wiederholenden Wert annehmen können. &-logische UND Funktion, | - logische ODER Funktion, ! - Invertieren bedeutet.- Example No.7. shows the division of the output and result data when multiplying an 8x8 matrix by 8 vectors. Example 1 (Table 1) shows a possible solution for performing global bit operations. Let us assume that in the system the processing block E consists of local processing units D 0 , Dι, ..., D 7 . Let us choose a logical function assigned to a result word QQ, where the result word QQ consists of 8 bits. Each input word AA, BB, CC, DD is also 8 bits wide, and the logical operations performed have a QOj = (! (! AAj & BB) |! (! C & DD ")) form where j, k, l, n - are index values that can assume any, even repeating, value within the bit width. & logical AND function, | - logical OR function,! - Invert means.
Laut vorherige Beschreibung, die Aufgabe ist logische Funktionen herzustellen zwischen 32 AAj,BBk,CCι,DDn Eingangs- und 8 Ausgangs-Variablen QQi. Während der Dateneingabe ein Eingang- Variable, innerhalb eines Zyklus in allen lokalen Verarbeitungseinheiten D0,Dι, ... ,D7, auf der Ausgangsseite der lokalen Adresswandler A entstehende Adressposition in den lokalen Datenspeicher B abgespeichert wird. Die Einspeicherung der 4 Variablen würde 4 Zyklus brauchen, aber einerseits können die nachher in mehreren Prozeduren Teilnehmen, anderseits neu einzulesen sind nur die inzwischen geänderten Werte. Der Anzahl der Einlesung, in Abhängigkeit von der Aufgabe, kann auch erheblich weniger sein, weil die Werte zu anderen Operationen, durch verschiedenen lokalen Adressen zur Verfügung stehen. In dem Falle, wenn in den vorgegebenen Funktionen alle Eingans-Bits zu einem anderen Wort gehören, kann der Anzahl der Einlesezyklen selbstverständlich größer sein. Das bedeutet aber, das wir aus einem Wort z.B. nur ein Bit verbrauchen. Dies geschieht aber nur meistens in Folge einer fehlerhaften Programmerzeugung. Sollten die 32 Eingang- Variablen zu verschiedenen Worten gehören, aber die Variablen auch in anderen Operationen gebraucht sind, die Einlesezeit erhöht sich nicht. Während des Programmablaufs ändern sich die Operationskodes, die zugeordneten lokalen Adressen und die Bitposition angebende Daten nicht. Die Werte sind während der Programmentwicklung festzulegen und in System vor dem Programmablauf hereinzu- bringen.According to the previous description, the task is to create logic functions between 32 AA j , BB k , CCι, DD n input and 8 output variables QQi. During the data input, an input variable, within one cycle in all local processing units D 0 , Dι, ..., D 7 , address position arising on the output side of the local address converter A is stored in the local data memory B. Saving the 4 variables would take 4 cycles, but on the one hand they can participate in several procedures afterwards, on the other hand only the values that have changed in the meantime have to be read again. The number of readings, depending on the task, can also be considerably less because the values for other operations are available through different local addresses. In the case when all the input bits belong to another word in the given functions, the number of read cycles can of course be greater. However, this means that we only use one bit from a word. However, this usually only happens as a result of incorrect program creation. If the 32 input variables belong to different words, but the variables are also used in other operations, the read-in time does not increase. The operation codes, the assigned local addresses and the data indicating the bit position do not change during the course of the program. The values are to be defined during the program development and brought into the system before the program runs.
Der Programmablauf startet bei der globalen Adresse GAj. Auf der der globalen Adresse GAi entsprechenden lokalen Positionen LA finden sich die Bitposition- Werten für die Variablen AA und BB. Der Inhalt der lokalen Adresse- Speichern aABsho,...,aABsh7 geben an die lokalen Bitpositionen ÄBsho,...,ABsh7 Daten. z.B. bei 8 Bit Datenbreite die unteren 4 Bits geben sich an die Bitposition für die Variable AA, die oberen 4 Bits für Variable BB. Mit dem Befehl LatchSh werden die Bitauswahl Daten in den dazu vorgesehenen Registern der lokalen Verarbeitungseinheiten D abgespeichert. Die, entsprechend den Registern ausgewählte Bits, oder (in Abhängigkeit von dem Zustand vom globalen Hilfsdatenbus GS) invertierte Werte, werden durch den globalen Bitbus GB, in der globale Arithmetische/Logische Einheit P als Eingangsdaten dienen.The program sequence starts at the global address GAj. The bit position values for the variables AA and BB can be found on the local positions LA corresponding to the global address GAi. The contents of the local address memories aABsho, ..., aABsh 7 give data to the local bit positions ÄBsho, ..., ABsh 7 . For example, with 8-bit data width, the lower 4 bits indicate the bit position for the variable AA, the upper 4 bits for variable BB. With the LatchSh command, the bit selection data are stored in the registers provided for this purpose in the local processing units D. The bits selected according to the registers, or (depending on the state of the global auxiliary data bus GS) inverted values, are used as input data by the global bit bus GB in the global arithmetic / logic unit P.
Der Inhalt aAAo,...,aAA7 der zu AQ+D gehörenden lokalen Adressen LA bestimmt die in den ersten logischen Operationen beteiligte Daten AAo,...,AA7. Gleichzeitig mit der Datenspeicherung in dem Register, ist es zweckmäßig auch die Daten aus den globalen Hilfsdatenbus GS, die für die Invertierungs-Prozedur verantwortlich sind, abzuspeichern.The content aAAo, ..., aAA 7 of the local addresses LA belonging to A Q + D determines the data AAo, ..., AA 7 involved in the first logical operations. Simultaneously with the data storage in the register, it is also expedient to store the data from the global auxiliary data bus GS, which are responsible for the inversion procedure.
Der Inhalt aAAo,...,aAA7 der zu A<i+2) gehörenden lokalen Adressen LA bestimmt die in der ersten logischen Operationen beteiligten, weiteren Daten BBo,...,BB7. Die für die Invertierungs- Aufgaben werden auch hier aus dem globaler Hilfsdatenbus GS festgelegt. In dem Operationszyklus GA(i+3), in der globalen Arithmetischen Logischen Einheit P formierte (hier 8 Bit breit), und für den D lokalen Verarbeitungseinheiten gemeinsame HH Datenwert wird zweckmäßig schon während der Programmentwicklung festgelegt, von dem globalen Datenbus GD signiert, und in Positionen aHHo,...,aHH7 abgespeichert. Demnach wiederholen sich die bei GAφ.. ,GA(i+3) beschriebene Prozeduren bis GA(j+π), wo das Ergebnis-Wort QQ abgespeichert wird.The content aAAo, ..., aAA 7 of the local addresses LA belonging to A <i +2 ) determines the further data BBo, ..., BB 7 involved in the first logical operations. The ones for the inversion tasks are also determined here from the global auxiliary data bus GS. In the operation cycle GA (i + 3 ), formed in the global arithmetic logic unit P (here 8 bits wide), and the HH data value common to the D local processing units is expediently defined during the program development, signed by the global data bus GD, and in Positions aHHo, ..., aHH7 saved. Accordingly, the procedures described in GAφ .., GA (i + 3 ) are repeated until GA (j + π), where the result word QQ is stored.
In einer anderen beispielhaften Ausführung des Steuerungssystems ist es selbstverständlich auch so zu handhaben, das in den lokalen Verarbeitungseinheiten D, das entsprechende, die auf dem globalen Hilfsdatenbus GS für die Invertierung festgelegter Bit, als Eingang dient. Die Weitergabe des Bitergebnisses, nach dem Bitauswahl in den lokalen Verarbeitungseinheiten D, oder gegebenenfalls nach Invertierung in der Richtung der globalen Arithmetischen/Logischen Einheit P kann auch z.B. durch den globalen Datenbus GD geschehen. In Einprozessor-Systemen, mit der Annahme das die Zusammensetzung der Operationen und der Indexierung keine Vereinfachung mehr erlaubt und der Befehl beinhaltet keine bitadressierende- und Invertierungs-Parametern, die oben geschilderte Aufgabe-Menge benötigt mindestens 192 Zyklen. In einem, dem Beispiel entsprechenden, mit ähnlicher Größe, aber parallel funktionierenden (bekannten) Mehrprozessor-System, ist die Aufgabe, wegen der Aufgaben-Synchronisation, der Daten- und Befehlweitergabe nur mit erheblichen zusätzlichen Aufwand zu erledigen.In another exemplary embodiment of the control system, it is of course also to be handled in such a way that the corresponding processing unit, the corresponding bit on the global auxiliary data bus GS, is used as an input. The forwarding of the bit result, after the bit selection in the local processing units D, or possibly after Inversion in the direction of the global arithmetic / logic unit P can also take place, for example, through the global data bus GD. In uniprocessor systems, with the assumption that the composition of the operations and the indexing no longer allows simplification and the command contains no bit addressing and inverting parameters, the task set described above requires at least 192 cycles. In a multiprocessor system which corresponds to the example and has a similar size but works in parallel (known), the task is to be carried out with considerable additional effort because of the task synchronization, the transfer of data and commands.
In der Erfindung entsprechendem Steuerungssystem mit angegebener Größe, sind die beschriebenen Prozeduren in 12 Zyklen durchgeführt. Ein weiterer Vorteil ist, das mit Vergrößerung des Systems (Erhöhung der Anzahl der lokalen Verarbeitungseinheiten D, Erhöhung der Datenbreite), die Anzahl in dem gleichen Zyklus durchführbare Bit- Operationen erhöht sich proportional.In the control system according to the invention with the specified size, the described procedures are carried out in 12 cycles. Another advantage is that with an increase in the system (increase in the number of local processing units D, increase in the data width), the number of bit operations which can be carried out in the same cycle increases proportionally.
Beispiel 2 (Tabelle 2) zeigt die Generierung eines 8 Bit-breiten Wortes aus beliebigen Bitvariablen. Bei Anwendung unter der Fig.1 beschriebenen Steuerungssystems, kann das Ergebnis- Wort QQ 8 Bit breit sein. Die Aufgabe ist in 2 Zyklen zu erledigen, weil die Bitauswahl-Daten, wie das vorhin geschildert wurde, während der Programmgenerierung festgelegt und bei Programmladen in den lokalen Verarbeitungseinheiten D eingebracht worden, und da zu Verfügung stehen. Auf den globalen Adressen GAi) werden diese Werte fixiert, in Folge dessen die Bitkonfiguration des gewünschten Wortes angegeben ist, und das entsprechend zu dem globalen Adresse
Figure imgf000031_0001
gehörigen Befehl, von den lokalen Adressbussen LA angegebener Datenposition abgespeichert werden kann.
Example 2 (Table 2) shows the generation of an 8 bit wide word from any bit variable. When used under the control system described in FIG. 1, the result word QQ can be 8 bits wide. The task is to be carried out in two cycles because the bit selection data, as described above, was determined during the program generation and introduced into the local processing units D when the program was loaded, and is available there. These values are fixed on the global addresses GAi), as a result of which the bit configuration of the desired word is specified, and this corresponding to the global address
Figure imgf000031_0001
associated command, can be stored by the local address buses LA specified data position.
Sollte die Aufgabe nur die Kreuzschaltung eines globalen Datenwortes sein, ist eine ähnliche Vorgehensweise möglich. In dem Falle ist es vorteilhaft das Ausgangswort aus dem globalen Datenspeicher N zu nehmen, und gegebenenfalls auch dahin zurück- zuschreiben. Der Anzahl der benötigten Zyklen ist genauso 2. Beispiel 3 (Tabelle 3) zeigt die Aufteilung den Ausgangs- und Ergebnis Daten, und auf der Basis diesen Beispieles erläutern wir die benötigten Programmschritte zu LU- Zerlegung einer Matrize. Die LU-Zerlegung ist vorteilhaft bei Lösungen, z.B. im Gebiet der linearen Algebra, bei Simulation größeren, auch nicht linearen elektrischen Netzen, im allgemeinen bei Invertierung einer Matrize, u.s.w.A similar procedure is possible if the task is only to cross-connect a global data word. In this case, it is advantageous to take the output word from the global data memory N and, if necessary, to write it back there. The number of cycles required is also 2. Example 3 (Table 3) shows the distribution of the output and result data, and on the basis of this example we explain the program steps required for LU decomposition of a die. LU decomposition is advantageous for solutions, eg in the field of linear algebra, for simulation of larger, even non-linear electrical networks, in general for inverting a matrix, etc
Bei der Lösung dieser Aufgabe gehen wir auch, unter der Fig.1 beschriebenen Steuerungssystems aus. Die Balken der Matrize befinden sich in den zugehörigen nummerierten D0,Dι,...,D7 lokalen Verarbeitungseinheiten. In D7 wird der 7 dimensionale Vektor eingebracht. Die Reihendaten mit den entsprechenden lokalen Adressen LAφ ... LA(i+6) ausgewählt, werden in die zugehörigen lokalen Datenspeicher B, nach Programmgenerierung, z.B. während Programmladen, Datenladen oder als Ergebnisse anderen Rechneroperationen eingespeist. Genauso, während der Programmgenerierung definieren wir die Position, der zu den Rechenoperationen gebrauchter Permutations-Bitmatrize, die in gegebenem Fall in dem N globalen Datenspeicher zu dem LA lokalen Adressen mit 7 Stk. 8 Bit breitem Wort angegeben ist.In solving this task, we also go out under the control system described in Fig.1. The bars of the die are located in the associated numbered D 0 , Dι, ..., D 7 local processing units. The 7-dimensional vector is introduced in D 7 . The row data with the corresponding local addresses LAφ ... LA (i + 6) selected are fed into the associated local data memory B after program generation, for example during program loading, data loading or as results of other computer operations. In the same way, during the program generation we define the position of the permutation bit matrix used for the arithmetic operations, which is given in the given case in the N global data memory for the LA local addresses with 7 pieces 8 bits wide word.
Das Programmsegment, das die LU-Zerlegung durchführt, startet auf der globalen Adresse GA,) und wird in folgenden Schritten durchgeführt: a. Es wird die der Form der Matrize entsprechende, Permutations-Matrize generiert, b. Es startet ein Zyklus, wobei der Zykluszähler auf i=0 gestellt wird, c. In den Balken i wird eine partikulare Hauptelement- Auswahl durchgeführt, das heißt das in den Balken sich befindende größte i Element ausgewählt wird. Das dient als aktuelle Generierungs-Element. Das i Element und der Reihenindex wird in Register festgehalten, wobei die Inhalte der Register in der lokalen Adressformierung auch eine Adresse-Modifizierende Aufgabe haben können. d. Sollte das i Element (i Balken) der Reihe i nicht den größten Wert haben, ist auch eine Reihe-Tauschen Operation durchzuführen, wobei diese Tauschaktion durch den globalen Datenbus GD, auch in dem Permutations-The program segment that performs the LU decomposition starts at the global address GA,) and is carried out in the following steps: a. The permutation die corresponding to the shape of the die is generated, b. A cycle starts, with the cycle counter set to i = 0, c. A particular main element selection is carried out in the bars i, that is to say the largest i element located in the bars is selected. This serves as the current generation element. The i element and the row index are recorded in registers, whereby the contents of the registers in the local address formation can also have an address-modifying task. d. If the i element (i bar) of row i does not have the greatest value, a row swap operation must also be carried out, this swap action by the global data bus GD, also in the permutation
Bitmatrize sich abspielt. e. Es werden die Multiplikator- Vektoren festgelegt, die nachher auf den vorhin schon definierten Positionen der globalen Datenspeicher N abgelegt werden. f. Es werden die parallelen Multiplikationen mit den entsprechenden Vektoren durchgeführt, wonach der Abzug aus der Basisreihe folgt. g. i Wert wird inkrementiert, dann werden die Prozeduren, mit gleichzeitiger Erlaubnis der entsprechenden Prozeduren, von c. wiederholt bis i den eingestellten Wert erreicht. h. In Abhängigkeit der Form der Permutations-Matrizen, in der Ergebnis-Matrize werden die L-Matrize Vektoren abgespeichert.Bit matrix is playing out. e. The multiplier vectors are defined, which are subsequently stored in the positions of the global data memories N already defined. f. The parallel multiplications are carried out with the corresponding vectors, after which the deduction from the basic series follows. G. i value is incremented, then the procedures, with simultaneous permission of the corresponding procedures, are c. repeated until i reaches the set value. H. Depending on the shape of the permutation matrices, the L-matrix vectors are stored in the result matrix.
Die erwarteten Zykluszahlen der einzelnen Operationen: a-7; b=l; c=7; d=l; e=(6.-l); fH36...2); g=l; h=min.6;The expected cycle numbers of the individual operations: a-7; b = l; c = 7; d = l; e = (6-l); fH36 ... 2); g = l; h = min.6;
Weitere Reduktion der Operationsprozeduren ist damit zu erreichen, das die Multiplikator- Vektoren, unmittelbar nach Fertigstellung, in den Ergebnis-Matrize abgespeichert werden (h=0), außerdem wenn für das Ergebnis nur der Anzahl der Permutationen nötig ist, besteht die Möglichkeit die Permutations-Matrize wegzulassen (a=0).A further reduction in the operating procedures can be achieved by storing the multiplier vectors in the result matrix immediately after completion (h = 0), and if the result only requires the number of permutations, there is the possibility of permutations - omit die (a = 0).
Eine bedeutende Reduktion der Zeit ist mit Verwendung der DPA Direkt Parallelen Datenkanäle verbunden. Indem deren Anzahl, in Abhängigkeit der Ausführung des Steuerungssystems, den maximalen Wert erreicht, besteht die Möglichkeit die partikulare Hauptelement- Auswahl parallel durchzuführen. Das erlaubt die parallele Feststellung des maximalen Wertes für jede Reihe noch vor dem Zyklusanfang (c), in insgesamt 7 Zyklen. Die Ergebnisse, nach der Speicherung in einer geeigneten Form, sind später unmittelbar anzuwenden. In dem Fall c=0, das heißt, das die LU-Zerle- gung einer 7x7 Matrize verbraucht voraussichtlich 1+7+ 6*((6+l)/2 +(36+2)/2) - 150 Operations-Zyklen. Bei Anwendung geeigneten Algorithmen und bei Aufbau-abhängiger Optimierung ist eine weitere Zyklusminderung zu erreichen.A significant reduction in time is associated with using DPA Direct Parallel data channels. As their number, depending on the design of the control system, reaches the maximum value, it is possible to carry out the particular main element selection in parallel. This allows the maximum value for each row to be determined in parallel before the start of the cycle (c), in a total of 7 cycles. The results, after being stored in a suitable form, are to be applied immediately later. In the case c = 0, that means that the LU-decomposition of a 7x7 matrix presumably consumes 1 + 7 + 6 * ((6 + 1) / 2 + (36 + 2) / 2) - 150 operation cycles , With the use of suitable algorithms and with structure-dependent optimization, a further cycle reduction can be achieved.
Beispiel 4 (Tabelle 4) zeigt die bevorzugte Aufteilung der Ausgangs- und Ergebnis- Daten bei gleichzeitiger LU-Zerlegung von 2 Stk. 3x3 Matrize, in dem vorhin beschriebenen System. Die LU-Zerlegung folgt, wie bei Beispiel Nr.3 beschrieben. Die benötigten Operationszyklen vermindern sich selbstverständlich drastisch. Zusätzliche Minderung der Zeitdauer bringt auch die Verwendung von der DPA Direkt parallelen Datenkanale. In dem Falle, wenn in dem System zwei DPA Kanäle zu Verfügung stehen, die werden bevorzugter weise aus lokalen Verarbeitungseinheiten (hier D3 und D7) betrieben, die Vektoren aVo,...,aV und bVo, ...,bV2 beinhalten. Das Lesen und Schreiben, für die einzelne Matrize- Operationen gemeinsame Daten, werden durch DPA Kanälen geschehen. So wird es ermöglicht die gleichen Operationen, an sich auf verschiedenen Positionen findenden Daten durchzuführen. Das führt bei größerer Anzahl der lokalen Verarbeitungseinheiten D zu erheblichem Vorteil. Wie es zu nachvollziehen ist, bei beliebiger Erweiterung des Systems, die Rechnen Leistung erhöht sich proportional. Bei Zusammensetzung größeren Systemen für die Begrenzung der benötigten DPA- Kanäle ist es sehr nützlich an angegebenen Punkten Zusammenschaltungs- und Trennungs-Möglichkeiten vorzusehen Abb. 4.). In einem System, das z.B. 128 lokale Verarbeitungseinheiten D beinhaltet, bei durchführen der beschriebenen Aufgabe, die Trennung (mit dem Programm gesteuerte Busschalter) ist nach jeder 4 Einheit wünschenswert.Example 4 (Table 4) shows the preferred division of the output and result data with simultaneous LU decomposition of 2 pieces of 3x3 matrix in the system described above. The LU decomposition follows as described in example no.3. The required operating cycles are of course drastically reduced. The use of the DPA Direct parallel data channels also brings an additional reduction in the duration. If two DPA channels are available in the system, they are preferably operated from local processing units (here D 3 and D 7 ), the vectors aVo, ..., aV and bVo, ..., bV 2 include. The reading and writing, for which data common to individual matrix operations, is done through DPA channels. This enables the same operations to be performed on data found at different positions. With a larger number of local processing units D, this leads to considerable advantage. As can be seen, with any expansion of the system, the computing power increases proportionally. When assembling larger systems for limiting the required DPA channels, it is very useful to provide interconnection and separation options at the specified points (Fig. 4.). In a system which contains, for example, 128 local processing units D, when performing the task described, the separation (bus switch controlled by the program) is desirable after every 4 units.
Somit ist es ermöglicht die LU-Zerlegung von gleichzeitig 32 Stk. 3x3 Matrizen. Gleichzeitig bei LU- Zerlegung von einer 7x7 Matrize ist die Trennung nach jeder 4 lokalen Verarbeitungseinheiten D vorzunehmen. So ist die Anzahl der gleichzeitig Verarbeiteten Matrizen 16, was bedeutet, das die Anzahl der benötigten Operationszyklen auf eine 7x7 Matrize gerechnet nur 10 ist.This makes it possible to disassemble 32 pieces of 3x3 matrices simultaneously. At the same time when LU is broken down from a 7x7 die, the separation must be carried out after every 4 local processing units D. The number of matrices processed at the same time is 16, which means that the number of required operating cycles for a 7x7 matrix is only 10.
Beispiel 5 (Tabelle 5a, 5b) zeigt die mögliche Aufteilung der Daten bei Multiplikation von zweier 3x3 Matrizen mit 3 Vektoren. In den D0, ... ,D2 lokalenExample 5 (Table 5a, 5b) shows the possible division of the data when multiplying two 3x3 matrices by 3 vectors. In the D 0 , ..., D 2 local
Verarbeitungseinheiten werden die Parametern Aoo... A22 der Matrize AA, in den lokalen Verarbeitungseinheit D3 die Vektor-Parameter AVo... AV2, in den lokalen Verarbeitungseinheit D4,...,D6 die Parametern B0o...B22 der Matrize BB, in den lokalen Verarbeitungseinheit D7 die Vektor-Parameter BVo.. -BV2 eingespeichert. Das geschieht so, das Während der Programmgenerierung werden zu den entsprechenden globalen Adressen
Figure imgf000034_0001
in den lokalen Verarbeitungseinheiten Do,Dι,...,D , auf den Parametern zeigende lokale Adresse zugeordnet. Vor dem Ablauf der Prozedur, aber in von der Aufgabe festgelegten Zeitpunkt, werden die Ausgangsdaten abgelegt, nachdem wird in dem Beispiel 5 beschriebene Prozedur durchgeführt. In dem ersten Operations-Schritt führt man parallele Multiplikationen durch zwischen
Processing units are the parameters Aoo ... A 22 of the matrix AA, in the local processing unit D 3 the vector parameters AVo ... AV 2 , in the local processing unit D 4 , ..., D6 the parameters B 0 or .. .B 22 of the matrix BB, the vector parameters BVo .. -BV 2 are stored in the local processing unit D 7 . This happens in such a way that the corresponding global addresses become during the program generation
Figure imgf000034_0001
in the local processing units Do, Dι, ..., D, assigned local address pointing to the parameters. Before the procedure expires, but at the point in time determined by the task, the output data are stored, after which the procedure described in Example 5 is carried out. In the first operation step, parallel multiplications are carried out between
- dem, durch DPA-Kanal Nr.3 ankommenden ersten Vektorelement AV0 und dem Elementen der ersten Reihe Aoo, Aio, A2o der Matrize AA, und dem, durch DPA-Kanal Nr.7 ankommenden ersten Vektorelement BV0 und der Elemente der ersten Reihe Boo, Bio, B20 der BB Matrize. Die 6 Ergebnisdaten EAo,EAι,EA2, und EBo,EBι,EB2 speichern wir auf die entsprechenden lokalen Positionen. Danach durchführen parallele Multiplikationen zwischen- The first vector element AV 0 arriving through DPA channel No. 3 and the elements of the first row Aoo, Aio, A 2 o of the matrix AA, and the first vector element BV 0 arriving through DPA channel No. 7 and the elements the first row Boo, Bio, B 20 of the BB die. We save the 6 result data EAo, EAι, EA 2 , and EBo, EBι, EB 2 to the corresponding local positions. Then perform parallel multiplications between
- dem, durch DPA-Kanal Nr.3 ankommenden ersten Vektorelement AVi und den Elementen der zweiten Reihe Aoi, An, A2ι der AA Matrize, und dem, durch DPA-Kanal Nr.7 ankommenden ersten Vektor element BVi und den Elementen der ersten Reihe B0ι, Bπ, B2ι der BB Matrize.- The first vector element AVi arriving through DPA channel No. 3 and the elements of the second row Aoi, An, A 2 ι of the AA matrix, and the first vector element BVi arriving through DPA channel No. 7 and the elements of first row B 0 ι, Bπ, B 2 ι the BB die.
Anschließend durchführen parallele Multiplikationen zwischen dem, durch DPA-Kanal Nr.3 ankommenden ersten Vektorelement AV2 und den Elementen der dritten Reihe AQ2, AΪ2, A22 der AA Matrize, und dem, durch DPA-Kanal Nr.7 ankommenden ersten Vektorelement BV2 und dem Elementen der ersten Reihe B02, BJ2, B22 der BB Matrize, und dasThen perform parallel multiplications between the first vector element AV 2 arriving through DPA channel No. 3 and the elements of the third row AQ 2 , A Ϊ2 , A 22 of the AA matrix, and the first vector element arriving through DPA channel No. 7 BV 2 and the elements of the first row B 02 , B J2 , B 22 of the BB die, and that
Ergebnis wird mit dem vorgegangenem Ergebnissen EAo,EAι,EA , und EB0,EBι, EB2 Summiert. Nach der Operationszyklus Nr.6 befinden sich die Ergebnis- Vektorelemente EA(0,1,2) in den lokalen Verarbeitungseinheiten D0,...,D2, die Ergebnis- Vektorele- mente EB(0, 1,2) in den lokalen Verarbeitungseinheiten D , ...,D6. Die Aufgabe benötigte insgesamt 6 Operationszyklus. Soweit das dafür Forderung da ist, können noch einige Datenbewegungen durchgeführt werden.Result is summed with the previous results EAo, EAι, EA, and EB 0 , EBι, EB 2 . After operation cycle No. 6, the result vector elements EA (0,1,2) are in the local processing units D 0 , ..., D 2 , the result vector elements EB (0, 1,2) in the local processing units D, ..., D 6 . The task required a total of 6 operating cycles. As far as this is required, some data movements can still be carried out.
Das Beispiel 6 (Tabellen 6a, 6b) a zeigt eine andere mögliche Durchfuhrung mit dem Beispiel 5 gleichen Aufgabe, bei einer Aufteilung der lokalen Adressen und Daten, wo der Ausgangs- und Ergebnis-Vektor die gleiche Datenverbreitung aufweisen. Diese Aufteilung kann nützlich sein, wenn an den Ergebnis- Vektoren weitere Transformationen vorgenommen werden. Es ist zu sehen das sich die Vektorelemente AVo, AVi, AV2 der Vektors AV in dem D0,Dι,D2 lokalen Verarbeitungseinheiten, die Vektorelemente BVo, B Vi, BV2 der Vektors BV in dem lokalen Verarbeitungseinheiten D4,D5,Dö Verarbeitungseinheiten sich befinden. Die Verarbeitungseinheiten D3 und D ; für die gute Darstellung des Vergleiches werden nicht verwendet. Selbstverständlich die beschriebenen Operationen sind mit einer Anzahl von „n" Verarbeitungseinheiten für n/3 Matrizen und Vektoren durchzuführen. In den frei gebliebenen Verarbeitungseinheiten können den aktuellen Prozeduren entsprechenden, während der Programmgenerierung definierten, Operationen (Multiplikation, Addierung), durchgeführt werden. Die Operationen sind von den Matrizeoperationen unabhängig.Example 6 (Tables 6a, 6b) a shows another possible implementation with Example 5 having the same task, with a division of the local addresses and data, where the output and result vector have the same data distribution. This division can be useful if there are more to the result vectors Transformations are made. It can be seen that the vector elements AVo, AVi, AV 2 of the vectors AV in the D 0 , Dι, D 2 local processing units, the vector elements BVo, B Vi, BV 2 of the vectors BV in the local processing units D 4 , D5, The processing units are located. The processing units D 3 and D ; are not used for the good representation of the comparison. Of course, the operations described are to be carried out with a number of “n” processing units for n / 3 matrices and vectors. In the processing units that remain free, operations (multiplication, addition) that correspond to the current procedures and are defined during program generation can be carried out. The operations are independent of the matrix operations.
Tabelle 6b. zeigt das der 6a. Datenzuordnung entsprechende Matrize- Vektor- Multiplikation benötigtes Programmsegment. Hier, in der ersten Operations-Schritt wird eine parallele Multiplikation mit den Matrizeelementen Aoo, An, A 2, B0o, Ba, B22 gleicher Indexierung und dem zugeordneten AV0, AVi, AV2, BVo,BVι,B V2 Vektorelementen. Das Ergebnis wird auf vorgesehene Positionen EAo, EAι,EA , EBo, EBι,EB2 gespeichert. Demnach werden erst mal DPA der D0 und D4, dann D2 und D5 und zu Letzt D3 und D6 lokalen Verarbeitungseinheiten aktiviert, wobei die benötigten Multiplikationen und Addierungen durchgeführt werden. Nach 9 Zyklen nehmen die Ergebnis- Vektoren mit den Ausgangs-Vektoren das gleiche Datenverbreitungs- Format an.Table 6b. shows that of 6a. Data segment corresponding matrix vector multiplication required program segment. Here, in the first operation step, a parallel multiplication with the matrix elements Aoo, An, A 2 , B 0 o, B a , B 22 of the same indexing and the assigned AV 0 , AVi, AV 2 , BVo, BVι, BV 2 vector elements. The result is stored in the intended positions EAo, EAι, EA, EBo, EBι, EB 2 . Accordingly, first DPA of D 0 and D 4 , then D 2 and D 5 and finally D 3 and D 6 local processing units are activated, the required multiplications and additions being carried out. After 9 cycles, the result vectors adopt the same data distribution format with the output vectors.
Mit Erhöhung der Anzahl der Verarbeitungseinheiten erhöht sich die Leistung der Datenverarbeitung auch nach diesem Beispiel proportional. Z.B. bei Verwendung von 128 Stk. lokalen Verarbeitungseinheiten D ist es gewährleistet innerhalb 9 Zyklen 46 Matrizen mit 46 Vektoren zu Multiplizieren.With an increase in the number of processing units, the performance of data processing also increases proportionally according to this example. For example, When using 128 pieces of local processing units D, it is guaranteed to multiply 46 matrices with 46 vectors within 9 cycles.
Beispiel 7 (Tabelle 7) zeigt, bei Anwendung der vorhin beschriebenen Aufgabe, die Aufteilung der Ausgangs- und Ergebnis-Daten, bei Multiplikation einer 8x8 Matrize mit 8 Vektoren. Nach Programmgenerierung werden die LA©, ... ,LA<i+7) lokale Adressdaten, die Reihe und Balken der Matrize angeben, in die lokale Verarbeitungseinheiten D0,..., D7 eingespeist. Genauso werden die lokalen Adressen des Ausgangs- Vektors LA® und Ergebnis- Vektors LA<k) angegeben. Während des Programmablaufs analog zu dem vorher beschriebenen, die LA lokale Adressen wählen die Daten für die aktuelle Operation aus. Das Ergebnis wird auf der Positionen LA(ic) erzeugt.Example 7 (Table 7) shows, when using the task described above, the division of the output and result data when multiplying an 8x8 matrix by 8 vectors. After program generation , the LA © , ..., LA <i + 7) local address data, which indicate the row and bars of the die, are transferred to the local one Processing units D 0 , ..., D 7 fed. The local addresses of the output vector LA ® and result vector LA <k) are also given. During the program sequence analogous to that previously described, the LA local addresses select the data for the current operation. The result is generated in the LA ( ic) position.
Eine andere Datenverbreitung und Steuerungsprogramm wird gebraucht, z.B. bei einer Transformations-Aufgabe, wo mit einer Matrize mehrere, verschiedene Vektoren multipliziert werden. Bei einer Aufgabe dieser Art sind die Matrizenelemente vorzüglich in dem globalen Datenspeicher N zu platzieren. Die Vektorelemente sollten in den entsprechenden lokalen Verarbeitungseinheiten D eingebracht werden. Nach dem Ablauf des entsprechenden Programmsegmentes, z.B. in einem System mit 8 lokalen Verarbeitungseinheiten D, nach 9 Multiplikationen, 6 Addierungen und 3 Speicheroperationen, insgesamt 18 elementaren Operationen sind für 8 Vektoren die 3D Transformationen durchgeführt. In einem System mit 128 lokalen Verarbeitungseinheiten bedeutet es die gleichzeitige Transformation von 128 Vektoren.Another data distribution and control program is needed, e.g. in a transformation task, where several different vectors are multiplied with a matrix. In the case of a task of this type, the matrix elements are to be placed in the global data memory N in an excellent manner. The vector elements should be introduced in the corresponding local processing units D. After the corresponding program segment has expired, e.g. in a system with 8 local processing units D, after 9 multiplications, 6 additions and 3 storage operations, a total of 18 elementary operations, the 3D transformations were carried out for 8 vectors. In a system with 128 local processing units, it means the simultaneous transformation of 128 vectors.
Ähnlich, wie in den vorherigen Beispielen geschildert, alle Aufgaben die auf elementare Prozeduren zerlegt werden können, lassen sich, ohne zusätzliche Datenbewegungen und Synchronisations-Schritten, parallel durchzuführen.Similar to the previous examples, all tasks that can be broken down into elementary procedures can be carried out in parallel without additional data movements and synchronization steps.
Wenn die Steuerung der Direkten parallelen Datenkanal-Schalter KJDPA, neben der Auswahl den entsprechenden Ausgang/Eingang Kanälen, z.B. aus den globalen Hilfsdatenbus GS folgt, dann bedeutet es die Erweiterung des Operationsbefehls. Dieser Aufbau ermöglicht zu jeder Operation eine freigewählte Datenzugriff- Konfiguration zuzuordnen. In Folge dessen wird der Datenzugriff, auch bei einen beliebigen Anzahl der Prozessoreinheiten ähnlich einfach wie bei einem Ein-Prozessor System.If the control of the direct parallel data channel switch KJDPA, in addition to the selection of the corresponding output / input channels, e.g. follows from the global auxiliary data bus GS, then it means the expansion of the operation command. This structure enables a freely selected data access configuration to be assigned to each operation. As a result, data access, even with any number of processor units, is just as easy as with a one-processor system.
Entsprechend der beschriebenen Beispiele, mit Anwendung eines dazu geeigneten Programms sind beliebige Operationen durchzuführen. Mit erheblichem Vorteil verbunden ist, dass während der parallel, gleichzeitig Ablaufenden Operationen, wo die Ergebnisse als Bitvariablen (o, <=,==, =0...) zu Stande kommen, die als System- Datenwörter gemeinsam, in weiteren Steuerung- oder Rechner-Prozeduren gebraucht werden können.In accordance with the examples described, any operations can be carried out using a suitable program. It is associated with considerable advantage that during the parallel, concurrent operations, where the results come as bit variables (o, <=, ==, = 0 ...) that can be used together as system data words, in other control or computer procedures.
Der Erfindung entsprechendes Steuerungssystem ist selbstverständlich in jedem Gebiet anzuwenden, wo größere Menge von Rechnungen durchzuführen ist, wie z.B. Bildverarbeitung, schnelle, mehrdimensionale Regelungen, u.s.w. Die Systemelemente und Einheiten sind auf einem beliebigen Technologischen Grund hergestellt werden, und das ermöglicht das Verfahren durchzuführen.The control system according to the invention is of course applicable in any field where a large amount of calculations has to be carried out, e.g. Image processing, fast, multi-dimensional controls, etc. The system elements and units are manufactured on any technological basis, and this enables the process to be carried out.
Zusammenfassend ist die Aussage zu treffen, das durch die Anwendung der Erfindung entsprechenden Verfahren, mit Erhöhung der Anzahl den lokalen Verarbeitungseinheiten D0,Dι, ... ,D7, ungefähr proportional erhöht sich auch die Verarbeitungs-Leistung so, das die für die gleichen Aufgaben vorgesehene Programme werden auch bei verschiedenen Systemgrößen, nach der gleichen Form generiert. Eine weitere bedeutende Vorteil des Systems ist, das der Aufbau der lokalen Verarbeitungseinheiten auch bei großer Elementzahl gleich ist, was zu erheblichen spezifischen Kostensenkung führt. In summary, the statement is to be made that the process corresponding to the application of the invention, with an increase in the number of local processing units D 0 , Dι, ..., D 7 , also approximately proportionally increases the processing power so that the for Programs intended for the same tasks are also generated in the same form for different system sizes. Another significant advantage of the system is that the structure of the local processing units is the same even with a large number of elements, which leads to considerable specific cost reductions.

Claims

PATENTANSPRÜCHE
1. Verfahren, vorteilhaft zur parallelen Durchführung zyklisch wiederholenden Datenverarbeitungs-Aufgaben, dadurch gekennzeichnet, dass mit einem globalen Adressegenerator festgelegte globale Adresse signiert in einem globalen1. A method, advantageously for the parallel execution of cyclically repeating data processing tasks, characterized in that a global address specified with a global address generator signs in a global address
Befehlsspeicher gespeicherte und durch einen globalen Befehlsbus weitergeleiteten Befehl, signiert in den, miteinander in einer parallelen Verbindung arbeitende Verarbeitungseinheiten, die einen sogenannten Verarbeitungsblock bilden, in dem Speichern der lokalen Adresswandlern abgespeicherte lokale Adressedaten, die in den lokalen Adresswandler modifiziert, auf lokalen Datenspeichern lokale Datenpositionen festlegen, und an diesen Datenpositionen werden dem globalen Befehl entsprechende lokale Operationen in den parallel arbeitenden lokalen Arithmetischen/Logischen Einheiten, sowie dem globalen Befehl entsprechende globale Operationen und mit den ausgewählten Bits die globale Bitoperationen in dem globalen Arithmetischen/Logischen Einheit, durchgeführt; von der Aufgabe definiert und durch die globale Steuereinheit angesteuert wird zwischen den lokalen Verarbeitungseinheiten (Dι,D2,...Dn), den globalen Adressegenerator, den globalen Befehlssp eicher und den globalen Arithmetischen Logischen Einheit globale innere Datenverkehr durchgeführt, sowie mit Anwendung von externen Schnittstellen externe Datenverkehr durchgeführt.Command memory stored and forwarded by a global command bus, signed in the processing units working in a parallel connection, which form a so-called processing block, local address data stored in the storage of the local address converters and modified in the local address converter, local data positions on local data memories and at these data positions, local operations corresponding to the global command are carried out in the local arithmetic / logic units operating in parallel, and global operations corresponding to the global command and, with the selected bits, global bit operations in the global arithmetic / logic unit; Defined by the task and controlled by the global control unit between the local processing units (Dι, D 2 , ... D n ), the global address generator, the global instruction memory and the global arithmetic logic unit, global internal data traffic is carried out, as well as with application external data traffic carried out by external interfaces.
2. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass die innere Datenverkehr wird von einem globalen Datenbus, und einem durch globalen Befehlsbus definierten und auf der Ausgangsseite der globalen Steuereinheit angebrachten, globalen Steuerbus gesteuert.2. The method according to claim 1, characterized in that the internal data traffic is controlled by a global data bus, and a global control bus defined by the global command bus and attached to the output side of the global control unit.
3. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass der Datenverkehr in den lokalen Datenspeicher ausgewählten Datenbits, durch den globalen Bitbus oder den globalen Datenbus gewährleistet ist. 3. The method according to claim 1, characterized in that the data traffic in the local data memory selected data bits is ensured by the global bit bus or the global data bus.
4. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass der Datenverkehr wird mit einem, mindestens mit einem Datenkanal- Ausgang und Datenkanal-Eingang oder mehreren, höchstens der Anzahl der in den parallelen Operationen beteiligten lokalen Verarbeitungseinheite entsprechenden Datenkanal- Ausgänge und Datenkanal- Eingänge ausgestatteten Datenkanal- Verwalter durchgeführt.4. The method according to claim 1, characterized in that the data traffic is equipped with one, at least with one data channel output and data channel input or more, at most the number of local processing units involved in parallel operations corresponding data channel outputs and data channel inputs equipped data channel - administrator performed.
5. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass für die gesteuerte Abtrennung den Datenkanälen Datenkanal-Schaltern angewendet werden.5. The method according to claim 1, characterized in that data channel switches are used for the controlled separation of the data channels.
6. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass mit den Datenkanal- Schaltern hergestellten Kanal-Abschnitten ein Netz gebildet wird.6. The method according to claim 1, characterized in that a network is formed with the data channel switches manufactured channel sections.
7. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass mit Steuerung der Datenkanal- Verwalter paralleler Datenverkehr durchgeführt wird.7. The method according to claim 1, characterized in that parallel data traffic is carried out with control of the data channel manager.
8. Verfahren nach Anspruch 4 dadurch gekennzeichnet, dass der analoge und digitale Datenverkehr durch den Datenkanal- Verwalter mit Datenkanal- Ausgang und Datenkanal-Eingang Datenkanalsteuereinheiten ausgestattet, gewährleistet ist.8. The method according to claim 4, characterized in that the analog and digital data traffic by the data channel manager with data channel output and data channel input data channel control units is guaranteed.
9. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass in den Operationen beteiligte gemeinsame Daten in einem globalen Datenspeicher gespeichert sind.9. The method according to claim 1, characterized in that common data involved in the operations are stored in a global data memory.
10. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass die von der globalen logischen Einheit festgelegten Operationen mit Anwendung Ein- und Mehrzyklus Unterbrechungen durchgeführt werden.10. The method according to claim 1, characterized in that the operations defined by the global logical unit are carried out using single and multi-cycle interruptions.
11. Schaltungsanordnung, vorteilhaft zur parallelen Durchführung zyklisch wiederholenden Datenverarbeitungs- Aufgaben, dadurch gekennzeichnet, dass es mindestens aus zwei lokalen Verarbeitungseinheiten (Dι,D2,...,Dn) besteht, die einen Verarbeitungsblock bilden, in denen ein lokale Adresswandler (A) durch den lokalen Adressbus (LA) mit einen lokalen Datenspeicher (B) verbunden ist, wobei der lokalen Datenspeicher (B) durch einen lokalen Datenbus (LD) einerseits mit einer lokalen Arithmetischen/Logischen Einheit (C), anderseits mit dem lokalen Adresswandler (A) verbunden ist, und der globale Adressbus (GA) zu mindestens einem lokalen Adresswandler (A), der globale Steuerbus (GC) zu mindestens einem lokalen Adresswandler (A), einem11. Circuit arrangement, advantageous for parallel execution of cyclically repeating data processing tasks, characterized in that it consists of at least two local processing units (Dι, D 2 , ..., D n ) which form a processing block in which a local address converter ( A) is connected to a local data memory (B) by the local address bus (LA), The local data memory (B) is connected by a local data bus (LD) on the one hand to a local arithmetic / logic unit (C) and on the other hand to the local address converter (A), and the global address bus (GA) to at least one local address converter ( A), the global control bus (GC) to at least one local address converter (A), one
Datenspeicher (B) und einer lokalen Arithmetischen/Logischen Einheit (C) verbunden ist, wobei der globaler Befehlsbus (GI), der globaler Datenbus (GD) und der globaler Bitbus zu mindestens einer lokalen Arithmetischen/Logischen Einheit (C) verbunden ist, außerdem besteht aus einem globalen Adressgenerator (J), mindestens einem globalen Befehlsspeicher (K) -, mindestens einer globalen Steuereinheit (M), mindestens einer globalen Arithmetischen/Logischen Einheit (P) und mindestens einer externen Koppeleinheit (T), zugleich der globalen Adressgenerator (J) durch dem globalen Adressbus (GA) mit dem Verarbeitungsblock (E), dem globalen Befehlsspeicher (K) und mit dem globalen Steuereinheit (M) verbunden ist, wobei die globale Steuereinheit (M) durch einen globalen Steuerbus (GC) mit dem Verarbeitungsblock (E), dem globalen Adressgenerator (J), dem globalen Befehlsspeicher (K) und mit der globalen Steuereinheit (M) so verbunden ist, das der Verarbeitungsblock (E) durch einen globalen Bitbus (GB) mit dem globalen Arithmetischen Logischen Einheit (P) verbunden ist, weiterhin die externe Koppeleinheit (T) mindestens mit einer externen Einheit (z.B Rechner)-, und ebenso mit der globalen Steuereinheit (M) verbunden ist, wobei der globaler Datenbus (GD) eine Verbindung zwischen dem globalen Adressgenerator (J), dem globalen Steuereinheit (M), der globalen Arithmetischen/Logischen Einheit (P) und der externen Koppeleinheit (T) bildet.Data storage (B) and a local arithmetic / logic unit (C) is connected, wherein the global command bus (GI), the global data bus (GD) and the global bit bus is connected to at least one local arithmetic / logic unit (C), furthermore consists of a global address generator (J), at least one global command memory (K) -, at least one global control unit (M), at least one global arithmetic / logic unit (P) and at least one external coupling unit (T), at the same time the global address generator ( J) is connected to the processing block (E), the global command memory (K) and the global control unit (M) through the global address bus (GA), the global control unit (M) being connected to the processing block through a global control bus (GC) (E), the global address generator (J), the global command memory (K) and connected to the global control unit (M) so that the processing block (E) through a global bit bus (GB) is connected to the global arithmetic logic unit (P), furthermore the external coupling unit (T) is connected to at least one external unit (eg computer) - and is also connected to the global control unit (M), the global data bus ( GD) forms a connection between the global address generator (J), the global control unit (M), the global arithmetic / logic unit (P) and the external coupling unit (T).
12. Schaltungsanordnung nach Anspruch 11. dadurch gekennzeichnet, dass zu den Verarbeitungseinheiten (D],D2, ...,Dn) durch einen lokalen Datenbus (LD) lokale Aus/Eingabe Koppeleinheiten (Fι,F2, ...Fn) zugeschaltet sind, die mit dem globalen Steuerbus (GC), dem globalen Befehlsbus (GI) und mit den lokalen Aus Eingabe Bussen (LIOι,LIO2, ...,LIOn) Verbunden sind. 12. Circuit arrangement according to claim 11, characterized in that to the processing units (D], D 2 , ..., D n ) by a local data bus (LD) local output / input coupling units (Fι, F 2 , ... F n ) are connected, which are connected to the global control bus (GC), the global command bus (GI) and to the local out input buses (LIOι, LIO 2 , ..., LIO n ).
13. Schaltungsanordnung nach Anspruch 11. dadurch gekennzeichnet, dass zu den lokalen Verarbeitungseinheiten (Dι,D2,...,Dn) durch einen lokalen Datenbus (LD) lokale Datenkanal- Verwalter (Hι,H2, ... ,Hn) zugeschaltet sind, die über lokalen Hilfsdatenbussen (SBι,SB2,...,SBn), lokale Steuerlinien (LCι,LC2,...,LCn) verfügen und zu denen Direkt p arallele Datenkanal-Eingänge (IDP Ai ,IDP A2, ... ,IDP An) und Direkt parallele Datenkanal- Ausgänge (ODPAbODP A2, ... ,OIDPAn) zugeordnet sind.13. Circuit arrangement according to claim 11, characterized in that to the local processing units (Dι, D 2 , ..., D n ) by a local data bus (LD) local data channel manager (Hι, H 2 , ..., H n ) are connected, which have local auxiliary data buses (SBι, SB 2 , ..., SB n ), local control lines (LCι, LC 2 , ..., LC n ) and to which direct parallel data channel inputs (IDP Ai, IDP A 2 , ..., IDP A n ) and direct parallel data channel outputs (ODPA b ODP A 2 , ..., OIDPA n ) are assigned.
14. Schaltungsanordnung nach Anspruch 13. dadurch gekennzeichnet, dass zu den14. Circuit arrangement according to claim 13, characterized in that to the
Direkt parallelen Datenkanäle (DPAι,DPA2, ... ,DPAn) DPA Aus/Eingabe Kanal Steuereinheiten (H_ioι,H_io2, ...,H_ion) und DPA externe Datenbus Steuereinheiten (H_exDι,H_exDι,...,H__exD„) zugeschaltet sind.Directly parallel data channels (DPAι, DPA 2 , ..., DPA n ) DPA out / input channel control units (H_ioι, H_io 2 , ..., H_io n ) and DPA external data bus control units (H_exDι, H_exDι, ..., H__exD ") Are switched on.
15. Schaltungsanordnung nach Anspruch 11. dadurch gekennzeichnet, dass die lokale Datenkanal- Verwalter (Hι,H2, .. ,,Hn) mit Direkt Parallelen Datenkanal-Schalter (K_DPAι,K_DPA25...,K DPAx) erweitert sind.15. Circuit arrangement according to claim 11, characterized in that the local data channel manager (Hι, H 2 , .. ,, H n ) with direct parallel data channel switch (K_DPAι, K_DPA 25 ..., K DPA x ) are expanded ,
16. Schaltungsanordnung nach Anspruch 11. dadurch gekennzeichnet, dass die lokale Verarbeitungseinheiten (Dι,D2, ... ,D„) mit lokale Aus/Eingabe Bussen (LIOi, LIO2,...,LIOn) erweitert sind.16. Circuit arrangement according to claim 11, characterized in that the local processing units (Dι, D 2 , ..., D ") are expanded with local output / input buses (LIOi, LIO 2 , ..., LIO n ).
17. Schaltungsanordnung nach Anspruch 11. dadurch gekennzeichnet, dass das System über mindestens einem globalen Datenspeicher (N) verfügt, der mit den globaler Steuerbus (GC), den globaler Adressbus (GA) und den globaler Datenbus (GD) verbunden ist.17. Circuit arrangement according to claim 11, characterized in that the system has at least one global data memory (N) which is connected to the global control bus (GC), the global address bus (GA) and the global data bus (GD).
18. Schaltungsanordnung nach Anspruch 11. dadurch gekennzeichnet, dass das System über mindestens einem globalen Hilfsdatenspeicher (L) verfügt, der mit den globaler Steuerbus (GC), den globaler Adressbus (GA) und den globaler Datenbus (GD) verbunden, außerdem durch den globalen Hilfsdatenbus (GS) mit der globalen Arithmetisches Logisches Einheit (P) verbunden ist. 18. Circuit arrangement according to claim 11, characterized in that the system has at least one global auxiliary data memory (L) which is connected to the global control bus (GC), the global address bus (GA) and the global data bus (GD), also by the global auxiliary data bus (GS) is connected to the global arithmetic logic unit (P).
19. Schaltungsanordnung nach Anspruch 11. dadurch gekennzeichnet, dass das System über einen, von dem globaler Steuerbus (GC) gesteuerten, Unterbrechungs- Steuereinheit (S) verfügt, zu welcher der globaler Datenbus (GD) zugeschaltet ist und mit dem globalen ArithmetischenLogischen Einheit durch den Unterbrechung Steuerbus (GM) verbunden ist, und über Unterbrechung Eingange (lcikl.INT, ncikl.INT) und Unterbrechungsbestätigung Ausgang (acklNT) verfügt.19. Circuit arrangement according to claim 11, characterized in that the system has an interruption control unit (S) controlled by the global control bus (GC), to which the global data bus (GD) is connected and with the global arithmetic logic unit the control bus (GM) interruption is connected, and has interruption inputs (lcikl.INT, ncikl.INT) and interruption confirmation output (acklNT).
20. Schaltungsanordnung nach Anspruch 11. dadurch gekennzeichnet, dass das System über einen,, von dem globaler Steuerbus (GC) gesteuerten, globalen Aus/Eingabe Steuereinheit (Q) verfügt, zu dem der globaler Datenbus angeschaltet ist, außerdem über einen Datenbus der globalen Aus Eingabe Steuereinheit (G__ioD) und einen Steuerbus der globalen Aus/Eingabe Steuereinheit (G_ioC) verfügt.20. Circuit arrangement according to claim 11, characterized in that the system has a, from the global control bus (GC) controlled, global output / input control unit (Q), to which the global data bus is connected, also via a data bus of the global From input control unit (G__ioD) and a control bus of the global output / input control unit (G_ioC).
21. Schaltungsanordnung nach Anspruch 11 - 19. dadurch gekennzeichnet, dass die Verarbeitungsblocke (E) in einem Modulsystem durchgeführt sind, dessen aus Datenbussen und Datenlinien bestehende Kontakt-Oberfläche pinkompatibel ist.21. Circuit arrangement according to claim 11 - 19, characterized in that the processing blocks (E) are carried out in a module system whose contact surface consisting of data buses and data lines is pin-compatible.
22. Schaltungsanordnung nach Anspruch 21. dadurch gekennzeichnet, dass auch die globalen Einheiten des Systems mit den Verarbeitungsblocken (E) pinkompatibel sind. 22. Circuit arrangement according to claim 21, characterized in that the global units of the system with the processing blocks (E) are pin-compatible.
PCT/HU2002/000049 2001-06-06 2002-05-29 Method and circuit arrangement advantageously provided for conducting parallel cyclically repeating data processing WO2002099685A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
HU0102356A HUP0102356A2 (en) 2001-06-06 2001-06-06 Method and circuit arrangement for parallel mode executing of cyclic repeated data processing jobs, as well as program system for producing and simulating operation codes for carrying out the method
HUP0102356 2001-06-06

Publications (1)

Publication Number Publication Date
WO2002099685A1 true WO2002099685A1 (en) 2002-12-12

Family

ID=89979417

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/HU2002/000049 WO2002099685A1 (en) 2001-06-06 2002-05-29 Method and circuit arrangement advantageously provided for conducting parallel cyclically repeating data processing

Country Status (2)

Country Link
HU (1) HUP0102356A2 (en)
WO (1) WO2002099685A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1988007242A2 (en) * 1987-03-17 1988-09-22 Unisys Corporation Arithmetic computation modifier based upon data dependent operations
EP0293700A2 (en) * 1987-06-01 1988-12-07 Applied Intelligent Systems, Inc. Linear chain of parallel processors and method of using same
EP0428327A1 (en) * 1989-11-14 1991-05-22 Amt(Holdings) Limited Processor array system
US5179714A (en) * 1988-10-07 1993-01-12 Martin Marietta Corporation Parallel bit serial data processor
EP0638868A2 (en) * 1993-08-12 1995-02-15 Hughes Aircraft Company A variable accuracy indirect addressing scheme for SIMD multi-processors and apparatus implementing same
DE19835216A1 (en) * 1998-08-05 2000-02-17 Univ Dresden Tech Data parallel processing method by dividing data into data groups and connecting directly to respective processing units, bypassing communication unit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1988007242A2 (en) * 1987-03-17 1988-09-22 Unisys Corporation Arithmetic computation modifier based upon data dependent operations
EP0293700A2 (en) * 1987-06-01 1988-12-07 Applied Intelligent Systems, Inc. Linear chain of parallel processors and method of using same
US5179714A (en) * 1988-10-07 1993-01-12 Martin Marietta Corporation Parallel bit serial data processor
EP0428327A1 (en) * 1989-11-14 1991-05-22 Amt(Holdings) Limited Processor array system
EP0638868A2 (en) * 1993-08-12 1995-02-15 Hughes Aircraft Company A variable accuracy indirect addressing scheme for SIMD multi-processors and apparatus implementing same
DE19835216A1 (en) * 1998-08-05 2000-02-17 Univ Dresden Tech Data parallel processing method by dividing data into data groups and connecting directly to respective processing units, bypassing communication unit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SMITLEY D ET AL: "BIT-SERIAL SIMD ON THE CM-2 AND THE CRAY-2", JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, ACADEMIC PRESS, DULUTH, MN, US, vol. 11, no. 2, 1 February 1991 (1991-02-01), pages 135 - 145, XP000201933, ISSN: 0743-7315 *

Also Published As

Publication number Publication date
HUP0102356A2 (en) 2003-02-28
HU0102356D0 (en) 2001-08-28

Similar Documents

Publication Publication Date Title
DE2251876C3 (en) Electronic data processing system
DE2829668C3 (en) Channel data buffer
DE19835216B4 (en) Processor and method for parallel data processing
EP0048767B1 (en) Priority stage controlled interruption device
DE2724125C2 (en)
DE2322674C3 (en) Microprogram controller
DE69826404T2 (en) Multi-processor data processing system sharing a register bank
DE2145120A1 (en) Digital data processing device
DE1934365A1 (en) Automatic program switching on computers with multiprogramming
DE2839726A1 (en) DATA PROCESSING SYSTEM WITH DISTRIBUTED CONTROL ARCHITECTURE IN A MULTIPROCESSOR SYSTEM
EP0428770A1 (en) Data controlled array processor
DE1549523B2 (en) DATA PROCESSING SYSTEM
DE1302494B (en)
DE3114921C2 (en) Microprogram memory array
DE3802025C1 (en)
DE69532152T2 (en) System for parallel data processing for digital audio devices
DE69918033T2 (en) Central processing unit with command for data extension
DE102004012516A1 (en) Computer system for electronic data processing
DE2548720A1 (en) MICROPROGRAM CONTROL UNIT
DE2854400A1 (en) ARRANGEMENT FOR CHANGING BETWEEN TOOTHED PROGRAMS TO BE PROCESSED
DE60104549T2 (en) DATA PROCESSING ARRANGEMENT FOR TREATING VARIOUS DATA TYPES
EP0009625A2 (en) Data transfer commutator with associative address selection in a virtual store
WO2002099685A1 (en) Method and circuit arrangement advantageously provided for conducting parallel cyclically repeating data processing
AT354783B (en) PROGRAMMABLE CIRCUIT FOR DATA PROCESSING
EP1091290B1 (en) Processor system with Store or Load instruction having splitting information

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP