10/22/99 7400 L2 cache test results DINK32_MAX >>go 90000 Performance Monitor or L2 Cache test programs Initialize the bats and HID0 Begin Test Which PowerPC processor: 750 or 7400? 7400 You chose: 7400 The MPC7400 interposer has One Megabyte of L2 Cache Specify start and end address range. Range must be at least twice the size of the L2 cache start_addr is: 100000 end_addr is: 200000 Which test: 1. Performance Monitor test, 2. L2 cache test 2You chose test: 2 Step 1: Initialize L2 Step 1 part 1: Set L2CR[DO] and L2CR[TS] and global invalidate Step 1 part 2: L1 D cache global invalidate, but do not turn it off Step 2: Enable L2 cache and test Step 2 part 1: dcbz and dcbf to initalize L2 cache and turn off L2CR[Ts] Step 2 part 2: leave L1 cache on and read/write patterns to L2 cache Begin Test as described on x.x.x in the 7400 Users Manual Step 2 part 3: Use performance monitor to record hits and misses 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0xaaaaaaaa PMC1= 0x3fa9 PMC2= 0x65 PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0xaaaaaaaa PMC1= 0x3fdb PMC2= 0x26 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x55555555 PMC1= 0x3fbe PMC2= 0x4a PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x55555555 PMC1= 0x3fdc PMC2= 0x25 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x1 PMC1= 0x3fbe PMC2= 0x4a PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x1 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x2 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x2 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x4 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x4 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x8 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x8 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x10 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x10 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x20 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x20 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x40 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x40 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x80 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x80 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x100 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x100 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x200 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x200 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x400 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x400 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x800 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x800 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x1000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x1000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x2000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x2000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x4000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x4000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x8000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x8000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x10000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x10000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x20000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x20000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x40000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x40000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x80000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x80000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x100000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x100000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x200000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x200000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x400000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x400000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x800000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x800000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x1000000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x1000000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x2000000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x2000000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x4000000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x4000000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x8000000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x8000000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x10000000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x10000000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x20000000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x20000000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x40000000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x40000000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x100000..0x180000, pattern is 0x80000000 PMC1= 0x3fbc PMC2= 0x4c PMC3= 0x PMC4= 0x - Read: Addr range: 0x100000..0x180000, pattern is 0x80000000 PMC1= 0x3fde PMC2= 0x23 PMC3= 0x PMC4= 0x Mis-matched= 0x Step 3: L2 cache tag memory Step 3: part 1 already done above Step 3: part 2a,b,c already done above Step 3: part 2d and e: read/write outside of L2 set up range Write outside the L2 range, we should get misses 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x180000..0x181000, pattern is 0x10101010 PMC1= 0x PMC2= 0x87 PMC3= 0x PMC4= 0x - Read: Addr range: 0x180000..0x181000, pattern is 0x10101010 PMC1= 0x PMC2= 0x1 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x181000..0x182000, pattern is 0x10101010 PMC1= 0x PMC2= 0x80 PMC3= 0x PMC4= 0x - Read: Addr range: 0x181000..0x182000, pattern is 0x10101010 PMC1= 0x PMC2= 0x1 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x183000..0x184000, pattern is 0x10101010 PMC1= 0x PMC2= 0x80 PMC3= 0x PMC4= 0x - Read: Addr range: 0x183000..0x184000, pattern is 0x10101010 PMC1= 0x PMC2= 0x1 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x186000..0x187000, pattern is 0x10101010 PMC1= 0x PMC2= 0x80 PMC3= 0x PMC4= 0x - Read: Addr range: 0x186000..0x187000, pattern is 0x10101010 PMC1= 0x PMC2= 0x1 PMC3= 0x PMC4= 0x Mis-matched= 0x 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x, PMC3 0x - Write: Addr range: 0x18a000..0x18b000, pattern is 0x10101010 PMC1= 0x PMC2= 0x80 PMC3= 0x PMC4= 0x - Read: Addr range: 0x18a000..0x18b000, pattern is 0x10101010 PMC1= 0x PMC2= 0x1 PMC3= 0x PMC4= 0x Mis-matched= 0x Read outside the L2 range, we should get misses - Read: Addr range: 0x18a000..0x18b000, pattern is 0x10101010 PMC1= 0x PMC2= 0x1 PMC3= 0x PMC4= 0x Mis-matched= 0x - Read: Addr range: 0x18b000..0x18c000, pattern is 0x10101010 PMC1= 0x PMC2= 0x81 PMC3= 0x PMC4= 0x Mis-matched= 0x400 - Read: Addr range: 0x18d000..0x18e000, pattern is 0x10101010 PMC1= 0x PMC2= 0x81 PMC3= 0x PMC4= 0x Mis-matched= 0x400 - Read: Addr range: 0x190000..0x191000, pattern is 0x10101010 PMC1= 0x PMC2= 0x81 PMC3= 0x PMC4= 0x Mis-matched= 0x400 - Read: Addr range: 0x194000..0x195000, pattern is 0x10101010 PMC1= 0x PMC2= 0x81 PMC3= 0x PMC4= 0x Mis-matched= 0x400 Write/read to last read address, we should get hits 33-26-0-0: Values for this run will be:PMC1-PMC2-PMC3-PMC4 selector MMCR0 0x85a, MMCR1 0x, PMC1 0x1, PMC3 0x - Write: Addr range: 0x194000..0x195000, pattern is 0x10101010 PMC1= 0x2 PMC2= 0x PMC3= 0x PMC4= 0x - Read: Addr range: 0x194000..0x195000, pattern is 0x10101010 PMC1= 0x PMC2= 0x1 PMC3= 0x PMC4= 0x Mis-matched= 0x Step 4: Not done by this test DINK32_MAX >>