ECE Undergraduate Laboratories
ECE 459 - Advanced Computer System Design Laboratory

Experiment 4: Shared-Memory Multiprocessor for Matrix Multiplication

Review the help notes for this experiment.


Design a shared-memory multiprocessor containing only two processors that can interchange data via a shared memory. These processors are to be used for the multiplication of two 6 × 6 matrices containing integer elements in the range [0, 63]. Each processor should also have its own local memory that can be used exclusively for code. The input matrices and the result should be stored in the shared memory.


Design the processor (starting with the smallest possible instruction set for this problem), and the local and shared memories, and develop the application code for your design. Your parallel program should divide the work between the two processors in order to minimize the total execution time.

Implement this parallel algorithm directly in hardware using the Altera UP 1 Education Board.

The proper operation of the entire design is to be simulated in Max+PLUS II before UP 1 is programmed. The waveforms from these simulations should be included in the lab report.