CS/ECE 552 Intro to Computer Architecture Spring 2020 Section 1
Instructor Matthew D. Sinclair
URL: http://www.cs.wisc.edu/~sinclair/courses/cs552/spring2020/

Test Programs

Links to specific parts of document:

All programs can also be accessed through the file system from this directory:

/u/s/i/sinclair/courses/cs552/spring2020/handouts/testprograms/public/*/*.asm

As you progress to the further demos the number of tests that you will be expected to pass will increase. With each iteration all prior tests are expected to continue to pass as well as the additional tests for that demo stage.

1.  Tests for Demo 1

1.1  Simple instruction tests (testprograms/public/inst_tests)

These tests target each instruction individually and use a minimal number of other instructions to test their behavior. For tests for a specific instruction copy the *.asm file named for the instruction from: /u/s/i/sinclair/courses/cs552/spring2020/handouts/testprograms/public/inst_tests/

A list file with all the program names on a line: all.list

Or copy from here: /u/s/i/sinclair/courses/cs552/spring2020/handouts/testprograms/public/inst_tests/all.list

See -list option.

1.2  Complex tests for demo1 (testprograms/public/complex_demo1)

A list file with all the program names on a line: all.list

Or copy from here: ~sinclair/courses/cs552/spring2020/handouts/testprograms/public/complex_demo1/all.list

  1. branchTest.asm
  2. easyTest.asm
  3. firstTest.asm
  4. loadStoreTest.asm
  5. shiftTest.asm

1.3  Random tests used in demo1

  • rand_simple: A set of randomized single instruction tests
    • Path: ~sinclair/courses/cs552/spring2020/handouts/testprograms/public/rand_simple/*.asm
    • ~sinclair/courses/cs552/spring2020/handouts/testprograms/public/rand_simple/all.list
    • all.list
  • rand_complex: A set of randomized multiple instruction tests
    • Path: ~sinclair/courses/cs552/spring2020/handouts/testprograms/public/rand_complex/*.asm
    • ~sinclair/courses/cs552/spring2020/handouts/testprograms/public/rand_complex/all.list
    • all.list
  • rand_ctrl: A set of randomized control-intensive instruction tests
    • Path: ~sinclair/courses/cs552/spring2020/handouts/testprograms/public/rand_ctrl/*.asm
    • ~sinclair/courses/cs552/spring2020/handouts/testprograms/public/rand_ctrl/all.list
    • all.list
  • rand_mem: A set of randomized memory-intensive instruction tests
    • Path: ~sinclair/courses/cs552/spring2020/handouts/testprograms/public/rand_mem/*.asm
    • ~sinclair/courses/cs552/spring2020/handouts/testprograms/public/rand_mem/all.list
    • all.list

2.  Additional Tests for Demo 2

Remember that all tests for demo 1 are still required

2.1  Complex tests for demo2 (testprograms/public/complex_demo2)

all.list

  1. pipeTest.asm
  2. stallTest.asm
  3. alignTest.asm
  4. perf-test-dep-all.asm
  5. perf-test-dep-ld.asm
  6. perf-test-dep-ldst.asm
  7. perf-test-dep-waw.asm
  8. perf-test-dep-zero.asm

3.  Additional tests for final demo

For the final demo, there are several more tests provided. All are are subdirectories from: ~sinclair/courses/cs552/spring2020/handouts/testprograms/public/

There are two categories of tests:

Simple instruction tests

The same as previously but when you just begin adding a new feature, use these tests to make sure basic functionality is still there. I recommend you use these tests as you start integrating different memories to your processor.

  1. inst_tests

Exhaustive tests

I recommend, that you run all of these when you make a large change to your processor. When you believe stalling instruction memory is complete for example, run all of these and make sure they all pass. similarly when your data-cache is fully integrated run them all and make sure your processor works.

3.1  Programs required for final submission (for final demo).

Your submission must include the following:

  • perf.summary.log
  • complex_demofinal.summary.log
  • rand_final.summary.log
  • rand_ldst.summary.log
  • rand_idcache.summary.log
  • rand_icache.summary.log
  • rand_dcache.summary.log
  • complex_demo1.summary.log
  • complex_demo2.summary.log
  • rand_complex.summary.log
  • rand_ctrl.summary.log
  • inst_tests.summary.log

You can use the script run-final-all.sh to run all the required tests. It will create all these summary.log files. Running all the tests will take about 40 minutes. So plan ahead!

If you look closely, you will see that rand_final has a mix of tests from all the categories.

rand_mem and rand_simple are intentionally left out to reduce the time it takes to run all simulations

 
Computer Sciences | UW Home