Glossary

Top  Previous 

application

a complete Diamond program

application file

a single file that contains everything needed to load an application into a pre-defined network of processors.

byte

the smallest addressable memory item.

channel

a mechanism that is used to transfer data from one thread to another

configuration file

a text file generated by hand or by the Diamond IDE that defines the structure of an application: the hardware (processors and wires), the software (tasks and channels), and the mapping between them.

configurer

a 3L utility that acts like a multiprocessor compiler, gathering the parts of a Diamond application and combining them into a single application file

CPU

any processor that executes an essentially sequential list of instructions. Processors in this category include the C6000, ARM, PowerPC, and MicroBlaze. These processors are programmed using compilers, assemblers, and linkers.

FPGA

any processor that provides configurable logic to perform highly-parallel operations. Xilinx FPGAs are in this category. These processors are programmed using tools such as the Xilinx ISE.

interrupt

a forced change in the value of the program counter resulting from an event.

link

a processor's physical device that can be connected to another link by a wire to give a bi-directional connection between two processors, allowing them to communicate

microkernel

a Diamond component that is loaded onto every CPU to provide services to the tasks on that processor.

octet

an 8-bit data item

port

a parameter to a task identifying a channel that has been created by the configurer as a result of CONNECT statements.

processor

a processing engine, either a CPU or an FPGA.

task

a self-contained entity that can operate on a processor. CPU tasks are fully compiled and linked C programs. FPGA tasks are firmware objects that follow strict Diamond conventions. Tasks communicate using their ports.

wire

a physical (or, rarely, a logical) connection between links.

word

a 32-bit data item