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