Learning How to Use the MINT Simulator

CSC252 Assignment 3

Mon Feb 26 11:28:30 EST 1996

In this assignment we will learn how to use the MINT simulator. The assignment requires that we built an interface to the simulator that allows to count the dynamic instruction count of a program. MINT calls user-defined function on certain events. Events can include instructions, read memory references, write memory references and others. By default these functions do nothing and simply tell MINT to continue with the execution of the program. Your responsibility is to modify these functions so as to count the number of instructions executed for each instruction category. The relevant MINT functions are:

For the sim_instr function the field ptask->pevent->vaddr contain the numerical representation of that instruction. You can use the table appended in this document to figure out the type of instruction you have based on the numerical value for that instruction. The table contains the most frequent instruction so it is possible (although not likely) that you will encounter instruction not included in the table. Place these instruction under a miscellaneous category.

After you have built your simulator, use it to count the instructions of the sorting program you wrote in the previous assignment. Which instructions dominate execution? If you had a choice of making each instruction take two clock cycles, or if you could make 10% of the instructions take one clock cycle, and the remaining instruction take four clock cycles which one would you choose? Why?

Start early so you can familiarize yourself with the simulator. The manual can be accessed online under the bibliography link from the course home page. Turn in a short write-up describing your findings, including the frequency of instruction measured, and your design choice for the clock-cycle question. The assignment is due Monday, March 25th.



Instruction Table

      31-26     25-21   20-16   15-11   10-6    5-0
  ADD   000000    rs      rt      rd      00000   100000
  
        31-26     25-21   20-16   15-0
  ADDI  001000    rs      rt      immediate
  
        31-26     25-21   20-16   15-0
  ADDIU 001001    rs      rt      immediate
  
        31-26     25-21   20-16   15-11   10-6    5-0
  ADDU  000000    rs      rt      rd      00000   100001
  
        31-26     25-21   20-16   15-11   10-6    5-0
  AND   000000    rs      rt      rd      00000   100100
  
        31-26     25-21   20-16   15-0
  ANDI  001100    rs      rt      immediate
  
        31-26     25-21   20-16   15-0
  BEQ   000100    rs      rt      offset
  
        31-26     25-21   20-16   15-0
  BEQL  010100    rs      rt      offset
  
        31-26     25-21   20-16   15-0
  BGEZ  000001    rs      00001   offset
  
         31-26     25-21   20-16   15-0
  BGEZAL 000001    rs      10001   offset
  
          31-26     25-21   20-16   15-0
  BGEZALL 000001    rs      10011   offset
  
         31-26     25-21   20-16   15-0
  BGEZL  000001    rs      00011   offset
  
         31-26     25-21   20-16   15-0
  BGTZ   000111    rs      00000   offset
  
         31-26     25-21   20-16   15-0
  BGTZL  010111    rs      00000   offset
  
         31-26     25-21   20-16   15-0
  BLEZ   000110    rs      00000   offset
  
         31-26     25-21   20-16   15-0
  BLEZL  010110    rs      00000   offset
  
         31-26     25-21   20-16   15-0
  BLTZ   000001    rs      00000   offset
  
         31-26     25-21   20-16   15-0
  BLTZAL 000001    rs      10000   offset
  
          31-26     25-21   20-16   15-0
  BLTZALL 000001    rs      10010   offset
  
         31-26     25-21   20-16   15-0
  BLTZL  000001    rs      00010   offset
  
         31-26     25-21   20-16   15-0
  BNE    000101    rs      rt      offset
  
         31-26     25-21   20-16   15-0
  BNEL   010101    rs      rt      offset
  
         31-26     25-6      5-0
  BREAK  000000    code      001101
  
        31-26     25-21   20-16   15-11   10-6    5-0
  DADD  000000    rs      rt      rd      00000   101100
  
        31-26     25-21   20-16   15-0
  DADDI 011000    rs      rt      immediate
  
         31-26     25-21   20-16   15-0
  DADDIU 011001    rs      rt      immediate
  
        31-26     25-21   20-16   15-11   10-6    5-0
  DADDU 000000    rs      rt      rd      00000   101101
  
        31-26     25-21   20-16   15-6    5-0
  DDIV  000000    rs      rt      00000   011110
  
        31-26     25-21   20-16   15-6    5-0
  DDIVU 000000    rs      rt      00000   011111
  
        31-26     25-21   20-16   15-6    5-0
  DIV   000000    rs      rt      00000   011010
  
        31-26     25-21   20-16   15-6    5-0
  DIVU  000000    rs      rt      00000   011011
  
        31-26     25-21   20-16   15-6    5-0
  DMULT 000000    rs      rt      00000   011100
  
         31-26     25-21   20-16   15-6    5-0
  DMULTU 000000    rs      rt      00000   011101
  
         31-26     25-21   20-16   15-11    10-6   5-0
  DSLL   000000    rs      rt      rd       sa     111000
  
         31-26     25-21   20-16   15-11    10-6   5-0
  DSLLV  000000    rs      rt      rd       00000  010100
  
         31-26     25-21   20-16   15-11    10-6   5-0
  DSRL   000000    rs      rt      rd       sa     111010
  
         31-26     25-21   20-16   15-11    10-6   5-0
  DSRLV  000000    rs      rt      rd       00000  010110
  
        31-26     25-21   20-16   15-11   10-6    5-0
  DSUB  000000    rs      rt      rd      00000   101110
  
        31-26     25-21   20-16   15-11   10-6    5-0
  DSUBU 000000    rs      rt      rd      00000   101111
  
        31-26     25-0
  J     000010    target
  
        31-26     25-0
  JAL   000011    target
  
        31-26     25-21   20-16   15-11   10-6    5-0
  JALR  000000    rs      00000   rd      00000   001001
  
        31-26     25-21   20-6    5-0
  JR    000000    rs      00000   001000
  
        31-26     25-16   15-11   10-6    5-0
  MFHI  000000    000000  rd      00000   010000
  
        31-26     25-16   15-11   10-6    5-0
  MFLO  000000    000000  rd      00000   010010
  
        31-26     25-16   15-11   10-6    5-0
  MTHI  000000    000000  rd      00000   010001
  
        31-26     25-16   15-11   10-6    5-0
  MTLO  000000    000000  rd      00000   010011
  
        31-26     25-21   20-16   15-6    5-0
  MULT  000000    rs      rt      00000   011000
  
        31-26     25-21   20-16   15-6    5-0
  MULTU 000000    rs      rt      00000   011001
  
        31-26     25-21   20-16   15-11   10-6    5-0
  NOR   000000    rs      rt      rd      00000   100111
  
        31-26     25-21   20-16   15-11   10-6    5-0
  OR    000000    rs      rt      rd      00000   100101
  
        31-26     25-21   20-16   15-0
  ORI   001101    rs      rt      immediate
  
         31-26     25-21   20-16   15-11    10-6   5-0
  SLL    000000    rs      rt      rd       sa     000000
  
         31-26     25-21   20-16   15-11    10-6   5-0
  SLLV   000000    rs      rt      rd       00000  000100
  
         31-26     25-21   20-16   15-11    10-6   5-0
  SLT    000000    rs      rt      rd       sa     101010
  
        31-26     25-21   20-16   15-0
  SLTI  001010    rs      rt      immediate
  
        31-26     25-21   20-16   15-0
  SLTIU 001011    rs      rt      immediate
  
         31-26     25-21   20-16   15-11    10-6   5-0
  SLTU   000000    rs      rt      rd       sa     101011
  
         31-26     25-21   20-16   15-11    10-6   5-0
  SRL    000000    rs      rt      rd       sa     000010
  
         31-26     25-21   20-16   15-11    10-6   5-0
  SRLV   000000    rs      rt      rd       00000  000110
  
        31-26     25-21   20-16   15-11   10-6    5-0
  SUB   000000    rs      rt      rd      00000   100010
  
        31-26     25-21   20-16   15-11   10-6    5-0
  SUBU  000000    rs      rt      rd      00000   100011
  
        31-26     25-21   20-16   15-11   10-6    5-0
  XOR   000000    rs      rt      rd      00000   100110
  
        31-26     25-21   20-16   15-0
  XORI  001110    rs      rt      immediate
  



Leonidas Kontothanassis
Mon Feb 26 11:28:05 EST 1996