오래 못 할 짓 하지 않기

[ 컴퓨터 구조 ] 5. MIPS 에 관하여 (2) - Control branch 본문

2학년 2학기/컴퓨터 구조

[ 컴퓨터 구조 ] 5. MIPS 에 관하여 (2) - Control branch

쫑알bot 2023. 9. 23. 17:59
728x90

Control Instruction 에서는 3가지 종류가 있다

 

  • Beq / Bne $t0 , $t1 ,  16bit Offset
--> 두 개가 같냐 or 다르냐에 따라 Offset * 4 한 값을 PC 값에 더한다. 

' PC = PC + Offset*4 '
(*4인 이유 = 1word = 4byte)

 [  PC 주소의 증가값을 16비트로 표시한다. (상대적으로) 가까운 주소로 간다. ]

 

 

  • J / Jal 26-bit address
점프 or 점프 label(lable?) 인데, J 'Hello 라고 하면, Hello라는 label로 PC값을 옮긴다'고 생각하면 된다.
BEQ같은 경우에는 같으면 label 로 가는데, 이건 그냥 시키면 간다.



[  PC 주소값은 26 bit까지 표시 가능  ]

  

 

  • JR
JR $r1 같이 Register를 Operand로 가져오고 
그 안에 Register에 있는 32bits를 이용하여 주소를 나타낸다.

[ Register가 나타낼 수 있는 bits 수 = PC값으로 옮길 수 있는 주소의 bits 수 = 32bits ]

 

 


 

[ 문제 1 ]

BEQ $s0, $s1, L 

이 명령을 실행시키면 L , 즉 주소가 나타낼 수 있는 값은 - 2^15 ~ 2^15-1 밖에 되지 않는다.

 

그렇다면 L이 범위 이상의 수라면 어떻게 해야할까?

J Instrcution을 이용하여 더 멀리 간다.
(더 필요하면 JR Instruction을 이용하여 32비트 짜리 주소로 이동.)

 


 

[ 문제 2 ]

 

만약 PC주소가 2^28 짜리 주소를 가리킨다면?

 

--> JR Instruction을 이용하여 32비트 짜리 주소로 이동.

 


 

[ 문제 3 ]

 

Logical &&와

Bit-wise &의 차이

 

--> Logical : A&&B  << 둘 다 true인지 확인

Bitwise : A& B  << A: 0011 , B: 1010 으로 둘 다 1인 경우에 1인 곳만 1로 표시

 


 

[ 문제 4 ]

 

BEQ / BNE 면 주소는 16비트를 다룰 수 있다.

현재 PC 가 0020000이므로, 20000 을 기준으로
( - 2^15 ~ 2^15 -1 )word만큼 범위를 나타낼 수 있다.

--> ( 20000 - 2^15 ) ~ ( 20000+ 2^15 -1 )

 

 

 


 

 

 

 

 

출처 : 한동대학교 용환기 교수님 - 컴퓨터 구조