TLB Entries
|
Valid |
Present |
Non-Cacheable |
U/S |
R/W |
VPN |
PFN |
|
1 |
1 |
0 |
0 |
0 |
0 |
1 |
|
1 |
1 |
0 |
0 |
1 |
1 |
2 |
|
1 |
1 |
0 |
0 |
1 |
F |
3 |
|
1 |
1 |
0 |
0 |
1 |
D |
4 |
|
1 |
1 |
1 |
1 |
1 |
2 |
FFF00 |
|
0 |
1 |
1 |
1 |
1 |
3 |
5 |
|
1 |
1 |
0 |
0 |
0 |
4 |
6 |
|
1 |
1 |
0 |
0 |
1 |
FFFFFFFFFF |
2 |
Segment Entries
0: 00000000
1: 00FFFFFF
2-15: 00000000
Test Programs
All numbers are in hexadecimal. The numbers on the left are the physical addresses where the instructions need to be entered.
Test 1: Simple Program
1000: 38 20 01 00 ADDI R1,R0,100 //R1 <- 100
1004: 38 40 02 00 ADDI R2,R0,200 //R2 <- 200
1008: 38 60 03 00 ADDI R3,R0,300 //R3 <- 300
100C: 38 80 04 00 ADDI R4,R0,400 //R4 <- 400
1010: 38 A0 05 00 ADDI R5,R0,500 //R5 <- 500
1014: 38 C0 06 00 ADDI R6,R0,600 //R6 <- 600
1018: 7C E1 00 D0 NEG R7,R1 //R7 <- FFFFFF00
101C: 7D 01 12 14 ADD R8,R1,R2 //R8 <- 300
1020: 7D 23 22 14 ADD R9,R3,R4 //R9 <- 700
1024: 7D 45 36 15 ADDO. R10,R5,R6 //R10 <- B00
//CR0 <- 0b0100
//OV <- 0
Test 2: Dependencies
1000: 38 00 01 00 ADDI R0,R0,100 //R0 <- 100
1004: 38 20 02 00 ADDI R1,R0,200 //R1 <- 200
1008: 7C 61 02 14 ADD R3,R1,R0 //R3 <- 300
100C: 38 63 00 01 ADDI R3,R3,1 //R3 <- 301
1010: 38 83 00 02 ADDI R4,R3,2 //R4 <- 303
1014: 38 A0 FF FF ADDI R5,R0,FFFF //R5 <- FFFFFFFF
1018: 30 A5 00 01 ADDIC R5,R5,1 //R5 <- 0 CA <- 1
101C: 7C A5 29 14 ADDE R5,R5,R5 //R5 <- 1
Test 3: Branches
1000: 38 20 01 00 ADDI R1,R0,100 //R1 <- 100
1004: 38 40 00 05 ADDI R2,R0,5 //R2 <- 5
1008: 7C 40 4B A6 MTSPR CTR,R2 //CTR <- 5
100C: 4E 40 00 20 BCLR 12,0 //CTR <- 4,2,0
1010: 38 21 00 01 ADDI R1,R1,1 //R1 <- 101,102
1014: 42 40 FF F9 BCL 12,0,-2 //CTR <- 3,1
1018: 38 61 00 00 ADDI R3,R1,0 //R3 <- 102
101C: 48 00 40 03 BLA 1000
1020: 38 83 00 01 ADDI R4,R3,1 //R4 <- 103
2000: 7E 03 08 00 CMP 4,0,R1,R3 //CR4 <- 0010
2004: 4D 92 00 20 BCLR 0C,12 // BRANCH TO LINK
2008: 38 80 01 00 ADDI R4,R0,100 //R4 <- 100
//SHOULDN'T EXECUTE
Test 4: Memory Accesses
1000: 38 20 00 10 ADDI R1,R0,10 //R1 <- 10
1004: 98 20 10 03 STB R1,1003(R0) //M[1003]<-10 PA:2003
1008: 38 40 10 00 ADDI R2,R0,1000 //R2 <- 1000
100C: 80 62 00 00 LWZ R3,0(R2) //R3 <- FFFFFF10
1010: 80 82 00 04 LWZ R4,4(R2) //R4 <- 12345678
1014: 80 A2 00 08 LWZ R5,8(R2) //R5 <- 87654321
1018: 7C C4 2A 14 ADD R6,R4,R5 //R6 <- 99999999
101C: 98 22 00 05 STB R1, 5(R2) //M[1005]<-10 PA:1005
1020: 80 82 00 04 LWZ R4,4(R2) //R4 <- 12105678
1024: 7C C4 2A 14 ADD R6,R4,R5 //R6 <- 99759999
2000: FF FF FF FF
2004: 12 34 56 78
2008: 87 65 43 21