DATA-DRIVEN MACHINE

Basic knowledge
LISP: LISt Processor. It is a function language for the list.
Data-driven machine: different from the old machines. It execute with the data flow.
Pseudo-result: not a actual-result but can be used in the next function as a semi-result.
Processing element: the basic unit of processing. We often call it PE.
Lazy uation: uation of a computation is delayed until the following computation requires the actual argument values.
A new control mechanism: use a data-driven architecture (one of non von-Neumann computers) to exhibits full potential for parallelism both in hardware and software.
Parallel: Divide a program into different piece and execurate in serval processing element at the same time. To do so, we can accelerate the speech of processing time and use the time and space wisely.
Semi-result: A cons operation include a pseudo-result or a semi-result
Actual-result: result with the real data after execurating.
Packet oriented architecture: data transference between each section in a PE is done by a packet in a pipeline manner as well as between each PE
Pseudo-result lifetime: a time interval from the time when a new pseudo-result is created, to the time when the value of the result becomes actual-result.

Details of it

First section, the organization of the data-driven machine is described.
Function uation scheme –
to achieve eager uation with pseudo-result, allows some degree of overlapping of computation.
Machine Organization –
multiprocessing system with a number of identical PEs in wich each PE is connected via a packet communication network.
Between and in each PE, all data transference is done bt a packet . Because it has packet oriented architecture.
Differenet section: input section, matching section, operation fetch section, pre-execution section, initiation section, invocation section, searching section, exit section, entrust section, scheduler section, output section
Matching store, Program Store and Result Store.
result store is handled by the searching section, the invocation section and the exit section. Consists of three: result table, deferred buffer and storage for list cell.
Invocation section create pseudo-result and store it in result table; while searching section use the key to get it and insert packet into deferred buffer. Then the exit section put(input,key) and remove packet which searching section insert in the deferred buffer.
Formats of packets –
Differ from the type of Packet.

Second section the results of the simulation studies are shown which confirm the effectiveness of the control mechanism.
The simulator accepts a program in EMIL compiled from an EMLISP program. Written in Simula / EMIL.
Fibonacci program which contains only numerical calculation and no list processing; the Quick-sort algorithm which contains not only numerical calculation but also list operations; The samefringe program which its major function is list processing.
Assumptions for simulation –
assumed to have no time delay and no conflict.
Distribute operation and the switch operation dominate over half of the whole executed operations. Because the switch operation is used for sequencing the flow of data by a conditon, the more the switch operations are executedm the more the effectiveness parallelism in a data-driven scheme is degraded. So we must investigate such a scheme that can reduce the control operations substantially.

Finally section, the performance characteristics of the data-driven machine obtained by the software simulator are given.
As the increasing PEs, the processing time decreases sharply base on the parallelism.
uation of pseudo-results and semi-results –
the matching section is the most important bottleneck.
Lifetime of pseudo-results and waiting time at the deferred buffer –
the more parallelism, the lifetime will be more different. Maybe there are some collection. We need to find out a way to store and measure about the lifetime, so that we can accelerate the speed of execurating.

Summary:
The normal machine as we all know Von neumann machine has been highly developed serval years. With the develop of VLSI technology and computer science, we hope that we can have a machine which can function well and more faster. It may deal with multiple tasks at the same time. So a parallelism machine called data-driven machine came out. Here, we discussed about a list-based data-driven machine with a novel oepraion mechanism way to accelerate the speed of processing.
The data-driven machine is unlike Von neumann machine which process the instructions one by one as a queue. Data-dirven machine compile the program into an branch like things with data flowing. Several processing element are bring inside so that the execurating can work from different direction at the same time. With the driven of data, program execurate like water flows from several branch to another. But we may encounter a problem that the program always waiting for some function’s actual-result to continue. This situation delayed all the program’s execurating speed.
In order to solve this problem and accelerate processing time. We introduced an notion of a pseudo-result, which can be used in the data-driven machine. When a branch encounter an function and the function has not been execurated yet, it will send a sign to a storage, and then continue execurate with the help of pseudo-result. When the function it needs finally finished, with the help of storage and several processing section, the actual-result will go back to the processing branch. Or, if the actual-result of the function doesn’t really needs, the whole program will still continue working.
Also the actual-result of the function will store in a place and after the process which called for the function using it. The function actual-result will release in the case of the garbage collection. Here, we find another thing we need to optimization and make it clear. As we all know, the program is full of re-used segment, which means the actual-result of a function maybe used more than one time. If we can use a memorandom method to analyze and memo the actual-result, we can accelerate the whole processing speed more. This is what I need to do and with the help of memorandom technology based on the data-driven machine with pseudo-result. I believe the processing time will decrease more and we can make our program parallelism better.

Ways to minimum overhead for frequently occurring synchoronization events:

Minimize the time used for synchronization on a PE;

Minimize the time used for transferring synchronization data or signals;

Maximize parallelism

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注