Main

ECE 576 - Homework Assignment 3

Extended Due Friday, April 02, 11:59PM


Announcements and Clarifications:


Hardware/Software Partitioning Performance Estimation using Instruction-Set Simulator

In this assignment, you will be using the Archulator - a SystemC TLm framework incorporating the SimpleScalar instruction set simulation - to provide instruction accurate performance estimation for software execution. The Archulator is available as a TAR/GZIPPED file available on the embedded server (embedded.ece.arizona.edu) at the location /scratch/ece576/archulator.tgz.

A tutorial for utilizing the Archulator is available as a PDF.

You are allowed to complete this assignment in groups of no larger than 3 students. It is recommended that you work with your Project group members for this assignment. If you plan to work on the course Project individually, you may still work with otehr students as group for this assignment.

1. (15 points) Tutorial and Initial Performance Estimation

Using the provided Archulator Tutorial, simulate and measure the performance of both the software only and hardware/software implementations for the provided sort and findsum applications'. The total execution cycles using the Archulator can be estimated as:

Note: The following estimate may be revised'
Total Exec Cycle = sim_num_insn + il2.misses * 32 + dl2.hits + dl2.misses * 32

Using this estimate for execution cycles, determine the total execution cycles for the following:

  1. sort_orig -b bubble sort option
  2. sort_orig -i insertion sort ption
  3. sort_orig -s selection sort option
  4. sort_hwsw -b bubble sort option
  5. sort_hwsw -i insertion sort ption
  6. sort_hwsw -s selection sort option
  7. findsum_orig
  8. findsum_hwsw

2. (15 points) Bit Reversal Application

Given the provide software only implementation of the bit reversal (brev) application, using the Archulator simulator, create a hardware/software implementation in which at least one of the inner loops is partitioned to hardware (i.e. do not partition the outmost loop to hardware).

Using the provided Archulator Tutorial, simulate and measure the performance of both the software only and hardware/software implementations for the brev application.

Report

You must submit a Word or PDF document providing a breakdown of the simulation/performance estimate for each of the various applications.


Submission Requirements:

You must submit the C and SystemC files for the hardware/software implementation of the brev application and Report via D2L as a single ZIP or TAR/GZIPPED archive. Note: Do not submit executables, Makefiles, or Visual Studio project files.

Linux Server Requirements:

The server embedded.ece.arizona.edu will be utilized to test all homework assignments. The embedded server is available for development and testing of your design. If you want to use the embedded server, please email the instructor with your ECE account login to allow for a directory to setup for your development efforts.

Students can utilize the departmental servers and workstations for their projects, and are free to use Microsoft Visual Studio, if desired. If you choose to use Microsoft Visual Studio, you will need to compile the SystemC library, for which many tutorials exist. While you are free to use any development environment, you should test your code for correct functionality on the embedded server before submitting.