11
MAIN MEMORY ADDRESS CONTENT CODE AREA 0x0000 NOP (00) 0x0001 LOAD (01) 0x0002 00 0x0003 1C 0x0004 R1 (01) Ox0005 LOADM (02) 0X0006 00 0X0007 01 0X0008 R2 0X0009 ADD (0B) 0X000A R2 (02) 0X000B R1 (01) 0X000C PUSH (11) 0X000D R1 (01) 0X000E SVC (3F) 0X000F 00 0X0010 03 0X0011 POP (12) 0X0012 R1 (01) 0X0013 LOADM (02) 0X0014 00 0X0015 00 0X0016 01 0X0017 PUSH (11) 0X0018 R1 (01) 0X0019 SVC (3F) 0X001A 00 0X001B 01 DATA AREA 0X001C 00 0X001D 01 . . . STACK 0XF800 0XF801 0XF802 0XF803 0XF804 0XF805 CONTROL MEMORY Address Content Main1 0x100 set PC = PC+1; fetch; jmpc 0X000 Nop 0x000 donothing; goto main1 Load1 0x001 set PC = PC+1 0x040 set H = MBR sll8; fetch 0x041 set PC = PC+1 0x042 set MAR = H or MBRU; fetch; read 0x043 set PC = PC+1 0x044 set RS = MDR; fetch 0x045 donothing; goto main1 Loadm1 0x002 set PC = PC+1 0x046 set H = MBR sll8; fetch 0x047 set PC = PC+1 0x048 set H = H + MBRU; fetch 0x049 set PC = PC+1 0x04A set RS = H; fetch 0x04B donothing; goto main1 Add1 0x00B set PC = PC+1 0x04C set H = RS; fetch 0X04D set PC = PC+1 0X04E set RS = H+RS; fetch 0X04F donothing; goto main1 Push1 0X011 set PC = PC+1 0X050 set MDR = RS; fetch 0X051 set MAR = SP; write 0X052 set SP = SP+1 0X053 set SP = SP+1; goto main1 Pop1 0X012 set SP = SP-1 0X054 set SP = SP-1; read 0X055 set PC = PC+1 0X056 set RS = MDR; fetch 0X057 donothing; goto main1 Jmp1 0X016 set PC = PC+1 0X058 set H = MBR sll8; fetch 0X059 Donothing 0X05A set PC = H + MBRU; fetch 0X05B donothing; goto main1 Svc1 0X03F set PC = PC+1 0X05C set H = MBR sll8; fetch 0X05D set PC = PC+1 0X05E set T1 = H + MBRU; fetch 0X05F set T2 = SP-1 0X060 set MAR = T2-1; read 0X061 Donothing 0X062 set T2 = MDR 0X063 svc; goto main1 MAR MDR PC MBR SP F800 T1 0000 T2 0000 T3 0000 T4 0000 R0 0000 R1 0000 R2 0000 R3 0000 R4 0000 R5 0000 R6 0000 R7 0000 H 0000 BBus Memory CBus ALU/shift JAM Next Addr ALU SHIFT

Processor Working Model

Embed Size (px)

DESCRIPTION

A diagrammatic explanation of processor working model.

Citation preview

MAIN MEMORY ADDRESS CONTENT

CO

DE

AR

EA

0x0000 NOP (00)

0x0001 LOAD (01)

0x0002 00

0x0003 1C

0x0004 R1 (01)

Ox0005 LOADM (02)

0X0006 00

0X0007 01

0X0008 R2

0X0009 ADD (0B)

0X000A R2 (02)

0X000B R1 (01)

0X000C PUSH (11)

0X000D R1 (01)

0X000E SVC (3F)

0X000F 00

0X0010 03

0X0011 POP (12)

0X0012 R1 (01)

0X0013 LOADM (02)

0X0014 00

0X0015 00

0X0016 01

0X0017 PUSH (11)

0X0018 R1 (01)

0X0019 SVC (3F)

0X001A 00

0X001B 01

DA

TA

AR

EA

0X001C 00

0X001D 01

.

.

.

STA

CK

0XF800

0XF801

0XF802

0XF803

0XF804

0XF805

CONTROL MEMORY Address Content

Main1 0x100 set PC = PC+1; fetch; jmpc 0X000

Nop 0x000 donothing; goto main1

Load1 0x001 set PC = PC+1

0x040 set H = MBR sll8; fetch

0x041 set PC = PC+1

0x042 set MAR = H or MBRU; fetch; read

0x043 set PC = PC+1

0x044 set RS = MDR; fetch

0x045 donothing; goto main1

Loadm1 0x002 set PC = PC+1

0x046 set H = MBR sll8; fetch

0x047 set PC = PC+1

0x048 set H = H + MBRU; fetch

0x049 set PC = PC+1

0x04A set RS = H; fetch

0x04B donothing; goto main1

Add1 0x00B set PC = PC+1

0x04C set H = RS; fetch

0X04D set PC = PC+1

0X04E set RS = H+RS; fetch

0X04F donothing; goto main1

Push1 0X011 set PC = PC+1

0X050 set MDR = RS; fetch

0X051 set MAR = SP; write

0X052 set SP = SP+1

0X053 set SP = SP+1; goto main1

Pop1 0X012 set SP = SP-1

0X054 set SP = SP-1; read

0X055 set PC = PC+1

0X056 set RS = MDR; fetch

0X057 donothing; goto main1

Jmp1 0X016 set PC = PC+1

0X058 set H = MBR sll8; fetch

0X059 Donothing

0X05A set PC = H + MBRU; fetch

0X05B donothing; goto main1

Svc1 0X03F set PC = PC+1

0X05C set H = MBR sll8; fetch

0X05D set PC = PC+1

0X05E set T1 = H + MBRU; fetch

0X05F set T2 = SP-1

0X060 set MAR = T2-1; read

0X061 Donothing

0X062 set T2 = MDR

0X063 svc; goto main1

MAR

MDR

PC

MBR

SP F800

T1 0000

T2 0000

T3 0000

T4 0000

R0 0000

R1 0000

R2 0000

R3 0000

R4 0000

R5 0000

R6 0000

R7 0000

H 0000

BBus Memory CBus ALU/shift JAM Next Addr

ALU

SHIFT

MAIN MEMORY ADDRESS CONTENT

CO

DE

AR

EA

0x0000 NOP (00)

0x0001 LOAD (01)

0x0002 00

0x0003 1C

0x0004 R1 (01)

Ox0005 LOADM (02)

0X0006 00

0X0007 01

0X0008 R2

0X0009 ADD (0B)

0X000A R2 (02)

0X000B R1 (01)

0X000C PUSH (11)

0X000D R1 (01)

0X000E SVC (3F)

0X000F 00

0X0010 03

0X0011 POP (12)

0X0012 R1 (01)

0X0013 LOADM (02)

0X0014 00

0X0015 00

0X0016 01

0X0017 PUSH (11)

0X0018 R1 (01)

0X0019 SVC (3F)

0X001A 00

0X001B 01

DA

TA

AR

EA

0X001C 00

0X001D 01

.

.

.

STA

CK

0XF800

0XF801

0XF802

0XF803

0XF804

0XF805

CONTROL MEMORY Address Content

Main1 0x100 set PC = PC+1; fetch; jmpc 0X000

Nop 0x000 donothing; goto main1

Load1 0x001 set PC = PC+1

0x040 set H = MBR sll8; fetch

0x041 set PC = PC+1

0x042 set MAR = H or MBRU; fetch; read

0x043 set PC = PC+1

0x044 set RS = MDR; fetch

0x045 donothing; goto main1

Loadm1 0x002 set PC = PC+1

0x046 set H = MBR sll8; fetch

0x047 set PC = PC+1

0x048 set H = H + MBRU; fetch

0x049 set PC = PC+1

0x04A set RS = H; fetch

0x04B donothing; goto main1

Add1 0x00B set PC = PC+1

0x04C set H = RS; fetch

0X04D set PC = PC+1

0X04E set RS = H+RS; fetch

0X04F donothing; goto main1

Push1 0X011 set PC = PC+1

0X050 set MDR = RS; fetch

0X051 set MAR = SP; write

0X052 set SP = SP+1

0X053 set SP = SP+1; goto main1

Pop1 0X012 set SP = SP-1

0X054 set SP = SP-1; read

0X055 set PC = PC+1

0X056 set RS = MDR; fetch

0X057 donothing; goto main1

Jmp1 0X016 set PC = PC+1

0X058 set H = MBR sll8; fetch

0X059 Donothing

0X05A set PC = H + MBRU; fetch

0X05B donothing; goto main1

Svc1 0X03F set PC = PC+1

0X05C set H = MBR sll8; fetch

0X05D set PC = PC+1

0X05E set T1 = H + MBRU; fetch

0X05F set T2 = SP-1

0X060 set MAR = T2-1; read

0X061 Donothing

0X062 set T2 = MDR

0X063 svc; goto main1

MAR

MDR

PC 0x0000

MBR

SP F800

T1 0000

T2 0000

T3 0000

T4 0000

R0 0000

R1 0000

R2 0000

R3 0000

R4 0000

R5 0000

R6 0000

R7 0000

H 0000

BBus Memory CBus ALU/shift JAM Next Addr

PC FETCH PC B Bus+1 0x000

A BUS

ALU

SHIFT

PC = PC +1

PC

= 0x0

00

0

PC

= 0

x00

01

C BUS B BUS

CYCLE 00

MAIN MEMORY ADDRESS CONTENT

CO

DE

AR

EA

0x0000 NOP (00)

0x0001 LOAD (01)

0x0002 00

0x0003 1C

0x0004 R1 (01)

Ox0005 LOADM (02)

0X0006 00

0X0007 01

0X0008 R2

0X0009 ADD (0B)

0X000A R2 (02)

0X000B R1 (01)

0X000C PUSH (11)

0X000D R1 (01)

0X000E SVC (3F)

0X000F 00

0X0010 03

0X0011 POP (12)

0X0012 R1 (01)

0X0013 LOADM (02)

0X0014 00

0X0015 00

0X0016 01

0X0017 PUSH (11)

0X0018 R1 (01)

0X0019 SVC (3F)

0X001A 00

0X001B 01

DA

TA

AR

EA

0X001C 00

0X001D 01

.

.

.

STA

CK

0XF800

0XF801

0XF802

0XF803

0XF804

0XF805

CONTROL MEMORY Address Content

Main1 0x100 set PC = PC+1; fetch; jmpc 0X000

Nop 0x000 donothing; goto main1

Load1 0x001 set PC = PC+1

0x040 set H = MBR sll8; fetch

0x041 set PC = PC+1

0x042 set MAR = H or MBRU; fetch; read

0x043 set PC = PC+1

0x044 set RS = MDR; fetch

0x045 donothing; goto main1

Loadm1 0x002 set PC = PC+1

0x046 set H = MBR sll8; fetch

0x047 set PC = PC+1

0x048 set H = H + MBRU; fetch

0x049 set PC = PC+1

0x04A set RS = H; fetch

0x04B donothing; goto main1

Add1 0x00B set PC = PC+1

0x04C set H = RS; fetch

0X04D set PC = PC+1

0X04E set RS = H+RS; fetch

0X04F donothing; goto main1

Push1 0X011 set PC = PC+1

0X050 set MDR = RS; fetch

0X051 set MAR = SP; write

0X052 set SP = SP+1

0X053 set SP = SP+1; goto main1

Pop1 0X012 set SP = SP-1

0X054 set SP = SP-1; read

0X055 set PC = PC+1

0X056 set RS = MDR; fetch

0X057 donothing; goto main1

Jmp1 0X016 set PC = PC+1

0X058 set H = MBR sll8; fetch

0X059 Donothing

0X05A set PC = H + MBRU; fetch

0X05B donothing; goto main1

Svc1 0X03F set PC = PC+1

0X05C set H = MBR sll8; fetch

0X05D set PC = PC+1

0X05E set T1 = H + MBRU; fetch

0X05F set T2 = SP-1

0X060 set MAR = T2-1; read

0X061 Donothing

0X062 set T2 = MDR

0X063 svc; goto main1

MAR

MDR

PC 0x0001

MBR LOAD

SP F800

T1 0000

T2 0000

T3 0000

T4 0000

R0 0000

R1 0000

R2 0000

R3 0000

R4 0000

R5 0000

R6 0000

R7 0000

H 0000

BBus Memory CBus ALU/shift JAM Next Addr

0x100

A BUS

LOAD

0x0001

ALU

SHIFT

C BUS B BUS

CYCLE 01

MAIN MEMORY ADDRESS CONTENT

CO

DE

AR

EA

0x0000 NOP (00)

0x0001 LOAD (01)

0x0002 00

0x0003 1C

0x0004 R1 (01)

Ox0005 LOADM (02)

0X0006 00

0X0007 01

0X0008 R2

0X0009 ADD (0B)

0X000A R2 (02)

0X000B R1 (01)

0X000C PUSH (11)

0X000D R1 (01)

0X000E SVC (3F)

0X000F 00

0X0010 03

0X0011 POP (12)

0X0012 R1 (01)

0X0013 LOADM (02)

0X0014 00

0X0015 00

0X0016 01

0X0017 PUSH (11)

0X0018 R1 (01)

0X0019 SVC (3F)

0X001A 00

0X001B 01

DA

TA

AR

EA

0X001C 00

0X001D 01

.

.

.

STA

CK

0XF800

0XF801

0XF802

0XF803

0XF804

0XF805

CONTROL MEMORY Address Content

Main1 0x100 set PC = PC+1; fetch; jmpc 0X000

Nop 0x000 donothing; goto main1

Load1 0x001 set PC = PC+1

0x040 set H = MBR sll8; fetch

0x041 set PC = PC+1

0x042 set MAR = H or MBRU; fetch; read

0x043 set PC = PC+1

0x044 set RS = MDR; fetch

0x045 donothing; goto main1

Loadm1 0x002 set PC = PC+1

0x046 set H = MBR sll8; fetch

0x047 set PC = PC+1

0x048 set H = H + MBRU; fetch

0x049 set PC = PC+1

0x04A set RS = H; fetch

0x04B donothing; goto main1

Add1 0x00B set PC = PC+1

0x04C set H = RS; fetch

0X04D set PC = PC+1

0X04E set RS = H+RS; fetch

0X04F donothing; goto main1

Push1 0X011 set PC = PC+1

0X050 set MDR = RS; fetch

0X051 set MAR = SP; write

0X052 set SP = SP+1

0X053 set SP = SP+1; goto main1

Pop1 0X012 set SP = SP-1

0X054 set SP = SP-1; read

0X055 set PC = PC+1

0X056 set RS = MDR; fetch

0X057 donothing; goto main1

Jmp1 0X016 set PC = PC+1

0X058 set H = MBR sll8; fetch

0X059 Donothing

0X05A set PC = H + MBRU; fetch

0X05B donothing; goto main1

Svc1 0X03F set PC = PC+1

0X05C set H = MBR sll8; fetch

0X05D set PC = PC+1

0X05E set T1 = H + MBRU; fetch

0X05F set T2 = SP-1

0X060 set MAR = T2-1; read

0X061 Donothing

0X062 set T2 = MDR

0X063 svc; goto main1

MAR

MDR

PC 0x0001

MBR LOAD

SP F800

T1 0000

T2 0000

T3 0000

T4 0000

R0 0000

R1 0000

R2 0000

R3 0000

R4 0000

R5 0000

R6 0000

R7 0000

H 0000

BBus Memory CBus ALU/shift JAM Next Addr

PC FETCH PC B Bus+1 0x001

A BUS

ALU

SHIFT

PC = PC +1

PC

= 0x0

00

1

PC

= 0

x00

02

C BUS B BUS

CYCLE 02

MAIN MEMORY ADDRESS CONTENT

CO

DE

AR

EA

0x0000 NOP (00)

0x0001 LOAD (01)

0x0002 00

0x0003 1C

0x0004 R1 (01)

Ox0005 LOADM (02)

0X0006 00

0X0007 01

0X0008 R2

0X0009 ADD (0B)

0X000A R2 (02)

0X000B R1 (01)

0X000C PUSH (11)

0X000D R1 (01)

0X000E SVC (3F)

0X000F 00

0X0010 03

0X0011 POP (12)

0X0012 R1 (01)

0X0013 LOADM (02)

0X0014 00

0X0015 00

0X0016 01

0X0017 PUSH (11)

0X0018 R1 (01)

0X0019 SVC (3F)

0X001A 00

0X001B 01

DA

TA

AR

EA

0X001C 00

0X001D 01

.

.

.

STA

CK

0XF800

0XF801

0XF802

0XF803

0XF804

0XF805

CONTROL MEMORY Address Content

Main1 0x100 set PC = PC+1; fetch; jmpc 0X000

Nop 0x000 donothing; goto main1

Load1 0x001 set PC = PC+1

0x040 set H = MBR sll8; fetch

0x041 set PC = PC+1

0x042 set MAR = H or MBRU; fetch; read

0x043 set PC = PC+1

0x044 set RS = MDR; fetch

0x045 donothing; goto main1

Loadm1 0x002 set PC = PC+1

0x046 set H = MBR sll8; fetch

0x047 set PC = PC+1

0x048 set H = H + MBRU; fetch

0x049 set PC = PC+1

0x04A set RS = H; fetch

0x04B donothing; goto main1

Add1 0x00B set PC = PC+1

0x04C set H = RS; fetch

0X04D set PC = PC+1

0X04E set RS = H+RS; fetch

0X04F donothing; goto main1

Push1 0X011 set PC = PC+1

0X050 set MDR = RS; fetch

0X051 set MAR = SP; write

0X052 set SP = SP+1

0X053 set SP = SP+1; goto main1

Pop1 0X012 set SP = SP-1

0X054 set SP = SP-1; read

0X055 set PC = PC+1

0X056 set RS = MDR; fetch

0X057 donothing; goto main1

Jmp1 0X016 set PC = PC+1

0X058 set H = MBR sll8; fetch

0X059 Donothing

0X05A set PC = H + MBRU; fetch

0X05B donothing; goto main1

Svc1 0X03F set PC = PC+1

0X05C set H = MBR sll8; fetch

0X05D set PC = PC+1

0X05E set T1 = H + MBRU; fetch

0X05F set T2 = SP-1

0X060 set MAR = T2-1; read

0X061 Donothing

0X062 set T2 = MDR

0X063 svc; goto main1

MAR

MDR

PC 0x0002

MBR 00

SP F800

T1 0000

T2 0000

T3 0000

T4 0000

R0 0000

R1 0000

R2 0000

R3 0000

R4 0000

R5 0000

R6 0000

R7 0000

H 0000

BBus Memory CBus ALU/shift JAM Next Addr

PC PC B BUS+1 0x040

A BUS

00

0x0002

ALU

SHIFT

PC = PC+1

PC

= 0X

00

02

PC

= 0

X0

00

3

C BUS B BUS

CYCLE 03

MAIN MEMORY ADDRESS CONTENT

CO

DE

AR

EA

0x0000 NOP (00)

0x0001 LOAD (01)

0x0002 00

0x0003 1C

0x0004 R1 (01)

Ox0005 LOADM (02)

0X0006 00

0X0007 01

0X0008 R2

0X0009 ADD (0B)

0X000A R2 (02)

0X000B R1 (01)

0X000C PUSH (11)

0X000D R1 (01)

0X000E SVC (3F)

0X000F 00

0X0010 03

0X0011 POP (12)

0X0012 R1 (01)

0X0013 LOADM (02)

0X0014 00

0X0015 00

0X0016 01

0X0017 PUSH (11)

0X0018 R1 (01)

0X0019 SVC (3F)

0X001A 00

0X001B 01

DA

TA

AR

EA

0X001C 00

0X001D 01

.

.

.

STA

CK

0XF800

0XF801

0XF802

0XF803

0XF804

0XF805

CONTROL MEMORY Address Content

Main1 0x100 set PC = PC+1; fetch; jmpc 0X000

Nop 0x000 donothing; goto main1

Load1 0x001 set PC = PC+1

0x040 set H = MBR sll8; fetch

0x041 set PC = PC+1

0x042 set MAR = H or MBRU; fetch; read

0x043 set PC = PC+1

0x044 set RS = MDR; fetch

0x045 donothing; goto main1

Loadm1 0x002 set PC = PC+1

0x046 set H = MBR sll8; fetch

0x047 set PC = PC+1

0x048 set H = H + MBRU; fetch

0x049 set PC = PC+1

0x04A set RS = H; fetch

0x04B donothing; goto main1

Add1 0x00B set PC = PC+1

0x04C set H = RS; fetch

0X04D set PC = PC+1

0X04E set RS = H+RS; fetch

0X04F donothing; goto main1

Push1 0X011 set PC = PC+1

0X050 set MDR = RS; fetch

0X051 set MAR = SP; write

0X052 set SP = SP+1

0X053 set SP = SP+1; goto main1

Pop1 0X012 set SP = SP-1

0X054 set SP = SP-1; read

0X055 set PC = PC+1

0X056 set RS = MDR; fetch

0X057 donothing; goto main1

Jmp1 0X016 set PC = PC+1

0X058 set H = MBR sll8; fetch

0X059 Donothing

0X05A set PC = H + MBRU; fetch

0X05B donothing; goto main1

Svc1 0X03F set PC = PC+1

0X05C set H = MBR sll8; fetch

0X05D set PC = PC+1

0X05E set T1 = H + MBRU; fetch

0X05F set T2 = SP-1

0X060 set MAR = T2-1; read

0X061 Donothing

0X062 set T2 = MDR

0X063 svc; goto main1

MAR

MDR

PC 0x0003

MBR 00

SP F800

T1 0000

T2 0000

T3 0000

T4 0000

R0 0000

R1 0000

R2 0000

R3 0000

R4 0000

R5 0000

R6 0000

R7 0000

H 0000

BBus Memory CBus ALU/shift JAM Next Addr

MBR FETCH H SLL8 0x041

A BUS

ALU

SHIFT SLL8

H = MBR SLL8

MB

R = 0

0

H =

00

00

C BUS B BUS

CYCLE 04

MAIN MEMORY ADDRESS CONTENT

CO

DE

AR

EA

0x0000 NOP (00)

0x0001 LOAD (01)

0x0002 00

0x0003 1C

0x0004 R1 (01)

Ox0005 LOADM (02)

0X0006 00

0X0007 01

0X0008 R2

0X0009 ADD (0B)

0X000A R2 (02)

0X000B R1 (01)

0X000C PUSH (11)

0X000D R1 (01)

0X000E SVC (3F)

0X000F 00

0X0010 03

0X0011 POP (12)

0X0012 R1 (01)

0X0013 LOADM (02)

0X0014 00

0X0015 00

0X0016 01

0X0017 PUSH (11)

0X0018 R1 (01)

0X0019 SVC (3F)

0X001A 00

0X001B 01

DA

TA

AR

EA

0X001C 00

0X001D 01

.

.

.

STA

CK

0XF800

0XF801

0XF802

0XF803

0XF804

0XF805

CONTROL MEMORY Address Content

Main1 0x100 set PC = PC+1; fetch; jmpc 0X000

Nop 0x000 donothing; goto main1

Load1 0x001 set PC = PC+1

0x040 set H = MBR sll8; fetch

0x041 set PC = PC+1

0x042 set MAR = H or MBRU; fetch; read

0x043 set PC = PC+1

0x044 set RS = MDR; fetch

0x045 donothing; goto main1

Loadm1 0x002 set PC = PC+1

0x046 set H = MBR sll8; fetch

0x047 set PC = PC+1

0x048 set H = H + MBRU; fetch

0x049 set PC = PC+1

0x04A set RS = H; fetch

0x04B donothing; goto main1

Add1 0x00B set PC = PC+1

0x04C set H = RS; fetch

0X04D set PC = PC+1

0X04E set RS = H+RS; fetch

0X04F donothing; goto main1

Push1 0X011 set PC = PC+1

0X050 set MDR = RS; fetch

0X051 set MAR = SP; write

0X052 set SP = SP+1

0X053 set SP = SP+1; goto main1

Pop1 0X012 set SP = SP-1

0X054 set SP = SP-1; read

0X055 set PC = PC+1

0X056 set RS = MDR; fetch

0X057 donothing; goto main1

Jmp1 0X016 set PC = PC+1

0X058 set H = MBR sll8; fetch

0X059 Donothing

0X05A set PC = H + MBRU; fetch

0X05B donothing; goto main1

Svc1 0X03F set PC = PC+1

0X05C set H = MBR sll8; fetch

0X05D set PC = PC+1

0X05E set T1 = H + MBRU; fetch

0X05F set T2 = SP-1

0X060 set MAR = T2-1; read

0X061 Donothing

0X062 set T2 = MDR

0X063 svc; goto main1

MAR

MDR

PC 0x0003

MBR 1C

SP F800

T1 0000

T2 0000

T3 0000

T4 0000

R0 0000

R1 0000

R2 0000

R3 0000

R4 0000

R5 0000

R6 0000

R7 0000

H 0000

BBus Memory CBus ALU/shift JAM Next Addr

PC PC B BUS+1 0x042

A BUS

1C

0x0003

ALU

SHIFT

PC = PC+1

PC

= 0X

00

03

PC

= 0

X0

00

4

C BUS B BUS

CYCLE 05

MAIN MEMORY ADDRESS CONTENT

CO

DE

AR

EA

0x0000 NOP (00)

0x0001 LOAD (01)

0x0002 00

0x0003 1C

0x0004 R1 (01)

Ox0005 LOADM (02)

0X0006 00

0X0007 01

0X0008 R2

0X0009 ADD (0B)

0X000A R2 (02)

0X000B R1 (01)

0X000C PUSH (11)

0X000D R1 (01)

0X000E SVC (3F)

0X000F 00

0X0010 03

0X0011 POP (12)

0X0012 R1 (01)

0X0013 LOADM (02)

0X0014 00

0X0015 00

0X0016 01

0X0017 PUSH (11)

0X0018 R1 (01)

0X0019 SVC (3F)

0X001A 00

0X001B 01

DA

TA

AR

EA

0X001C 00

0X001D 01

.

.

.

STA

CK

0XF800

0XF801

0XF802

0XF803

0XF804

0XF805

CONTROL MEMORY Address Content

Main1 0x100 set PC = PC+1; fetch; jmpc 0X000

Nop 0x000 donothing; goto main1

Load1 0x001 set PC = PC+1

0x040 set H = MBR sll8; fetch

0x041 set PC = PC+1

0x042 set MAR = H or MBRU; fetch; read

0x043 set PC = PC+1

0x044 set RS = MDR; fetch

0x045 donothing; goto main1

Loadm1 0x002 set PC = PC+1

0x046 set H = MBR sll8; fetch

0x047 set PC = PC+1

0x048 set H = H + MBRU; fetch

0x049 set PC = PC+1

0x04A set RS = H; fetch

0x04B donothing; goto main1

Add1 0x00B set PC = PC+1

0x04C set H = RS; fetch

0X04D set PC = PC+1

0X04E set RS = H+RS; fetch

0X04F donothing; goto main1

Push1 0X011 set PC = PC+1

0X050 set MDR = RS; fetch

0X051 set MAR = SP; write

0X052 set SP = SP+1

0X053 set SP = SP+1; goto main1

Pop1 0X012 set SP = SP-1

0X054 set SP = SP-1; read

0X055 set PC = PC+1

0X056 set RS = MDR; fetch

0X057 donothing; goto main1

Jmp1 0X016 set PC = PC+1

0X058 set H = MBR sll8; fetch

0X059 Donothing

0X05A set PC = H + MBRU; fetch

0X05B donothing; goto main1

Svc1 0X03F set PC = PC+1

0X05C set H = MBR sll8; fetch

0X05D set PC = PC+1

0X05E set T1 = H + MBRU; fetch

0X05F set T2 = SP-1

0X060 set MAR = T2-1; read

0X061 Donothing

0X062 set T2 = MDR

0X063 svc; goto main1

MAR 001C

MDR

PC 0x0004

MBR 1C

SP F800

T1 0000

T2 0000

T3 0000

T4 0000

R0 0000

R1 0000

R2 0000

R3 0000

R4 0000

R5 0000

R6 0000

R7 0000

H 0000

BBus Memory CBus ALU/shift JAM Next Addr

MBR FETCH,READ MAR H + MBR 0x043

A BUS

ALU

SHIFT

MAR = H + MBR

MB

R = 1

C

MA

R =

00

1C

C BUS B BUS

CYCLE 06

MAIN MEMORY ADDRESS CONTENT

CO

DE

AR

EA

0x0000 NOP (00)

0x0001 LOAD (01)

0x0002 00

0x0003 1C

0x0004 R1 (01)

Ox0005 LOADM (02)

0X0006 00

0X0007 01

0X0008 R2

0X0009 ADD (0B)

0X000A R2 (02)

0X000B R1 (01)

0X000C PUSH (11)

0X000D R1 (01)

0X000E SVC (3F)

0X000F 00

0X0010 03

0X0011 POP (12)

0X0012 R1 (01)

0X0013 LOADM (02)

0X0014 00

0X0015 00

0X0016 01

0X0017 PUSH (11)

0X0018 R1 (01)

0X0019 SVC (3F)

0X001A 00

0X001B 01

DA

TA

AR

EA

0X001C 00

0X001D 01

.

.

.

STA

CK

0XF800

0XF801

0XF802

0XF803

0XF804

0XF805

CONTROL MEMORY Address Content

Main1 0x100 set PC = PC+1; fetch; jmpc 0X000

Nop 0x000 donothing; goto main1

Load1 0x001 set PC = PC+1

0x040 set H = MBR sll8; fetch

0x041 set PC = PC+1

0x042 set MAR = H or MBRU; fetch; read

0x043 set PC = PC+1

0x044 set RS = MDR; fetch

0x045 donothing; goto main1

Loadm1 0x002 set PC = PC+1

0x046 set H = MBR sll8; fetch

0x047 set PC = PC+1

0x048 set H = H + MBRU; fetch

0x049 set PC = PC+1

0x04A set RS = H; fetch

0x04B donothing; goto main1

Add1 0x00B set PC = PC+1

0x04C set H = RS; fetch

0X04D set PC = PC+1

0X04E set RS = H+RS; fetch

0X04F donothing; goto main1

Push1 0X011 set PC = PC+1

0X050 set MDR = RS; fetch

0X051 set MAR = SP; write

0X052 set SP = SP+1

0X053 set SP = SP+1; goto main1

Pop1 0X012 set SP = SP-1

0X054 set SP = SP-1; read

0X055 set PC = PC+1

0X056 set RS = MDR; fetch

0X057 donothing; goto main1

Jmp1 0X016 set PC = PC+1

0X058 set H = MBR sll8; fetch

0X059 Donothing

0X05A set PC = H + MBRU; fetch

0X05B donothing; goto main1

Svc1 0X03F set PC = PC+1

0X05C set H = MBR sll8; fetch

0X05D set PC = PC+1

0X05E set T1 = H + MBRU; fetch

0X05F set T2 = SP-1

0X060 set MAR = T2-1; read

0X061 Donothing

0X062 set T2 = MDR

0X063 svc; goto main1

MAR 001C

MDR 0001

PC 0x0004

MBR R1

SP F800

T1 0000

T2 0000

T3 0000

T4 0000

R0 0000

R1 0000

R2 0000

R3 0000

R4 0000

R5 0000

R6 0000

R7 0000

H 0000

BBus Memory CBus ALU/shift JAM Next Addr

PC PC B BUS+1 0x044

MAR = 001C

MD

R =

00

01

A BUS

R1

0X0004

ALU

SHIFT

PC = PC+1

PC

= 0X

00

04

PC

= 0

X0

00

5

C BUS B BUS

CYCLE 07

MAIN MEMORY ADDRESS CONTENT

CO

DE

AR

EA

0x0000 NOP (00)

0x0001 LOAD (01)

0x0002 00

0x0003 1C

0x0004 R1 (01)

Ox0005 LOADM (02)

0X0006 00

0X0007 01

0X0008 R2

0X0009 ADD (0B)

0X000A R2 (02)

0X000B R1 (01)

0X000C PUSH (11)

0X000D R1 (01)

0X000E SVC (3F)

0X000F 00

0X0010 03

0X0011 POP (12)

0X0012 R1 (01)

0X0013 LOADM (02)

0X0014 00

0X0015 00

0X0016 01

0X0017 PUSH (11)

0X0018 R1 (01)

0X0019 SVC (3F)

0X001A 00

0X001B 01

DA

TA

AR

EA

0X001C 00

0X001D 01

.

.

.

STA

CK

0XF800

0XF801

0XF802

0XF803

0XF804

0XF805

CONTROL MEMORY Address Content

Main1 0x100 set PC = PC+1; fetch; jmpc 0X000

Nop 0x000 donothing; goto main1

Load1 0x001 set PC = PC+1

0x040 set H = MBR sll8; fetch

0x041 set PC = PC+1

0x042 set MAR = H or MBRU; fetch; read

0x043 set PC = PC+1

0x044 set RS = MDR; fetch

0x045 donothing; goto main1

Loadm1 0x002 set PC = PC+1

0x046 set H = MBR sll8; fetch

0x047 set PC = PC+1

0x048 set H = H + MBRU; fetch

0x049 set PC = PC+1

0x04A set RS = H; fetch

0x04B donothing; goto main1

Add1 0x00B set PC = PC+1

0x04C set H = RS; fetch

0X04D set PC = PC+1

0X04E set RS = H+RS; fetch

0X04F donothing; goto main1

Push1 0X011 set PC = PC+1

0X050 set MDR = RS; fetch

0X051 set MAR = SP; write

0X052 set SP = SP+1

0X053 set SP = SP+1; goto main1

Pop1 0X012 set SP = SP-1

0X054 set SP = SP-1; read

0X055 set PC = PC+1

0X056 set RS = MDR; fetch

0X057 donothing; goto main1

Jmp1 0X016 set PC = PC+1

0X058 set H = MBR sll8; fetch

0X059 Donothing

0X05A set PC = H + MBRU; fetch

0X05B donothing; goto main1

Svc1 0X03F set PC = PC+1

0X05C set H = MBR sll8; fetch

0X05D set PC = PC+1

0X05E set T1 = H + MBRU; fetch

0X05F set T2 = SP-1

0X060 set MAR = T2-1; read

0X061 Donothing

0X062 set T2 = MDR

0X063 svc; goto main1

MAR 001C

MDR 0001

PC 0x0005

MBR R1

SP F800

T1 0000

T2 0000

T3 0000

T4 0000

R0 0000

R1 0001

R2 0000

R3 0000

R4 0000

R5 0000

R6 0000

R7 0000

H 0000

BBus Memory CBus ALU/shift JAM Next Addr

MDR FETCH R1 B BUS 0x045

A BUS

ALU

SHIFT

R1 = MDR

MD

R = 0

00

1

R1

= 0

00

1

C BUS B BUS

CYCLE 08

MAIN MEMORY ADDRESS CONTENT

CO

DE

AR

EA

0x0000 NOP (00)

0x0001 LOAD (01)

0x0002 00

0x0003 1C

0x0004 R1 (01)

Ox0005 LOADM (02)

0X0006 00

0X0007 01

0X0008 R2

0X0009 ADD (0B)

0X000A R2 (02)

0X000B R1 (01)

0X000C PUSH (11)

0X000D R1 (01)

0X000E SVC (3F)

0X000F 00

0X0010 03

0X0011 POP (12)

0X0012 R1 (01)

0X0013 LOADM (02)

0X0014 00

0X0015 00

0X0016 01

0X0017 PUSH (11)

0X0018 R1 (01)

0X0019 SVC (3F)

0X001A 00

0X001B 01

DA

TA

AR

EA

0X001C 00

0X001D 01

.

.

.

STA

CK

0XF800

0XF801

0XF802

0XF803

0XF804

0XF805

CONTROL MEMORY Address Content

Main1 0x100 set PC = PC+1; fetch; jmpc 0X000

Nop 0x000 donothing; goto main1

Load1 0x001 set PC = PC+1

0x040 set H = MBR sll8; fetch

0x041 set PC = PC+1

0x042 set MAR = H or MBRU; fetch; read

0x043 set PC = PC+1

0x044 set RS = MDR; fetch

0x045 donothing; goto main1

Loadm1 0x002 set PC = PC+1

0x046 set H = MBR sll8; fetch

0x047 set PC = PC+1

0x048 set H = H + MBRU; fetch

0x049 set PC = PC+1

0x04A set RS = H; fetch

0x04B donothing; goto main1

Add1 0x00B set PC = PC+1

0x04C set H = RS; fetch

0X04D set PC = PC+1

0X04E set RS = H+RS; fetch

0X04F donothing; goto main1

Push1 0X011 set PC = PC+1

0X050 set MDR = RS; fetch

0X051 set MAR = SP; write

0X052 set SP = SP+1

0X053 set SP = SP+1; goto main1

Pop1 0X012 set SP = SP-1

0X054 set SP = SP-1; read

0X055 set PC = PC+1

0X056 set RS = MDR; fetch

0X057 donothing; goto main1

Jmp1 0X016 set PC = PC+1

0X058 set H = MBR sll8; fetch

0X059 Donothing

0X05A set PC = H + MBRU; fetch

0X05B donothing; goto main1

Svc1 0X03F set PC = PC+1

0X05C set H = MBR sll8; fetch

0X05D set PC = PC+1

0X05E set T1 = H + MBRU; fetch

0X05F set T2 = SP-1

0X060 set MAR = T2-1; read

0X061 Donothing

0X062 set T2 = MDR

0X063 svc; goto main1

MAR 001C

MDR 0001

PC 0x0005

MBR 02

SP F800

T1 0000

T2 0000

T3 0000

T4 0000

R0 0000

R1 0001

R2 0000

R3 0000

R4 0000

R5 0000

R6 0000

R7 0000

H 0000

BBus Memory CBus ALU/shift JAM Next Addr

0x100

A BUS

LOADM

0X0005

ALU

SHIFT

PC = PC+1

C BUS B BUS

CYCLE 09