# Experiment 4: Shared-Memory Multiprocessor for Matrix Multiplication

Review the help notes for this experiment.

## Objectives

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.

## Experiment

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.