오래 못 할 짓 하지 않기
[ 컴퓨터 구조 ] 6. MIPS Instructions 본문
Format
예전에 컴퓨터가 Completeness를 가져야한다 이런 내용을 배우면서
성능을 향상시키고 발전시키기 위해서는 규칙이 있어야한다고 했다.
그 규칙에서 우리는 간단하게 그저 Operand가 몇 개인지만 배웠고,
이제 우리는 각 Instrcution을 타입에 따라 나누어서 뜯어보려고 한다.
1) R - Type
역할 : arithmetic and logic instructions ( 숫자 연산과 논리 연산자)
구성:
특징 : R-type inst는 Op코드가 항상 0이고, Function 코드는 항상 32이다.
앞은 항상 0 , Function code는 32, Shamt도 항상 0, 따라서 안에 주소만 잘 넣어주면 된다.
2) I - Type
역할 : 메모리에서 데이터를 가져오거나 저장한다.
목적 : R타입에서는 어떤 주소를 표현하려고 해도 최대 6bits이다.
따라서 더 큰 걸 표현할 수 있게 다른 게 필요하다
아래 예시를 하나 보자
lw $s0, 24 ($s1) → s1 주소에 32를 더한 후
그 주소에 있는 값을 s0에 저장한다.
(추가 예시)
3) J - Type
목적 : Jump 할 곳의 주소를 직접 적음, OP코드 제외 모든 비트를 주소 할당하는 것에 사용한다.
BEQ는 상대적인 주소, 현재 위치에서 얼만큼 이동할지 알려주고, JUMP는 어디로 이동할지 직접 주소를 찍어줌
ex) BEQ : 여기서 좌회전해서 큰 건물끼고 돌아
JUMP : 삼산로 125번길 33...
이게 PC로 들어갈 때 변화를 보자
우선 가장 뒤에 <<2를 해서 0이 두 개가 들어간다고 생각.
주소는 그대로 표현해야하기 떄문에, 26개 그대로 하고 OPcode에서 안 쓰는 뒤 2bits를 없애서 MSB인 앞 4 bit만 사용한다
(정확한 설명)
https://jyukki.tistory.com/13
[ 정리 ]
문제 풀기
Exericise 1)
이것도 풀어보기
Stored Program Concept
저장되어 있는 Program에 대해 관련된 정보들이 있다
우선 그 저장된 Program에 2가지 규칙
1) 메모리에는 Instructions들이 숫자로 표현되어있다. (숫자나 데이터와 구분이 되지 않음)
2) Instruction의 집합체인 프로그램도 메모리에 함께 저장되어있음.
→ 우리가 Data처럼 읽거나 writte 할 수 있다.
이거에 관련되어 수행하는 동작도 있다.
앞에서 이미 다 본 것이긴 한데도 한 번 더 보자
- Fetch & Execute Cycle
1) Instruction은 IR( Instruction register ) 로 Fetch하여 가져온다. (Fetch)
2) 비트들의 내용에 따라 그에따른 작업이 결정된다. (Read and execute)
ex) opcode의 비트에서 어떠면 add ( R-type )
Opcode랑 뒤에 16비트 주소만 있으면 ( I-type )
3) 그 다음 Instruction을 가져온다( Fetch한다 )
-> 1부터 다시 반복
- Control Transfer Instructions
- 수행할 명령어 순서를 조정하여 바꿈으로써, 다음에 실행될 명령어를 바꾼다.
- +
PC Register는 그 다음 Instruction이 있는 메모리 주소를 가리킨다.
(출처)
한동대학교 용환기교수님 - 컴퓨터구조
'2학년 2학기 > 컴퓨터 구조' 카테고리의 다른 글
[ 컴퓨터 구조 ] 8. Procedure (0) | 2023.10.02 |
---|---|
[ 컴퓨터 구조 ] 7. MIPS Addressing Mode (0) | 2023.09.30 |
[ 컴퓨터 구조 ] 5. MIPS 에 관하여 (2) - Control branch (0) | 2023.09.23 |
[ 컴퓨터 구조 ] # Qtspim (0) | 2023.09.21 |
컴구 quiz 대비 (0) | 2023.09.21 |