눈팅하는 게임개발자 블로그
Instruction 본문
컴파일 된 소스 코드로 실행 파일 한 줄 한 줄의 명령어를 Instruction이라 한다.
프로그램을 실행한다 함은 프로그램 안에 있는 여러 Instruction을 차례대로 수행하는 것을 의미한다.
Instruction은 크게 3종류로 구분된다.
Memory-reference Instruction : 메모리를 참조하는 명령어
Register-reference Instruction : 메모리를 참조하지 않고 현재 레지스터의 값으로만 연산하는 명령어
I/O Instruction : 입출력과 관련된 명령어.
Instruction Code (명령어)
Instruction Code는 세 부분으로 나뉜다.
Operation Code Field : 어떤 Operation을 수행할 것인가를 나타내는 부분.
Address Field : 연산해야 할 데이터가 어디에 존재하는가를 나타내는 부분.
Mode Field : 해당 데이터를 가리키는 주소의 Address Mode를 나타내는 부분.
Instruction Cycle
1. Instruction Fetch from memory
명령어를 메모리로부터 읽어 온다.
2. Instruction Decode
명령어를 해석한다.
3. Read Effective Address
유효 주소를 읽어 낸다.
4. Instruction Execution
명령어를 실행한다.
5. Back to Step 1) : Next Inxtruction Fetch
PC에 저장되어 있는 다음 명령어를 1번부터 다시 실행
Addressing Mode
유효 주소를 읽어내는(표기하는) 방법
Immediate Address Mode : 명령어 포맷 안의 Address 값 자체가 유효 주소가 된다.
Direct Address Mode : 명령어 포맷 안의 Address의 값이 유효 주소가 존재하는 곳의 주소가 된다.
Indirect Address Mode : Address 값이 유효 주소의 주소를 가지는 곳의 주소를 가리킨다.
Register Mode : Register의 이름이 유효 주소로 표기된다.
Register Indirect Mode : 레지스터의 값이 유효 주소가 된다.
Relative Address Mode : PC의 값이 Instruction의 주소 값에 더해진 값이 유효 주소가 된다.
Indexed Address Mode : XR의 값이 Instruction의 주소 값에 더해진 값이 유효 주소가 된다.
CISC와 RISC
CISC(Complex Instruction Set Computer)
RISC보다 먼저 사용되던 (상대적으로)복잡한 Instruction Set을 가지는 CPU 아키텍처.
- 명령어의 종류가 많음(100개 ~ 250개)
- 어쩌다 가끔 사용되는 특수한 명령어들도 포함되어 있음.
- Address Mode의 종류가 많음(5개 ~ 20개)
- Instruction Foramt의 길이가 종류별로 다르다. (다른 포맷을 가진다)
- 계산해야 하는 데이터가 메모리 안에 존재하는 경우가 많다.
비교하자면 RISC에 비해 뭔가 많고, 복잡하다고 생각하면 된다
RISC(Reduced Instruction Set Computer)
CISC와 가장 큰 차이점은 모든 데이터를 미리 CPU 안으로 가져와서 연산을 수행한다는 것.
- 명령어의 종류가 많지 않음.
- Address Mode의 종류도 많지 않음.
- Memory Access는 Load와 Store 할때만 수행한다.
- 모든 연산은 CPU 안의 레지스터에 있는 데이터만으로 수행.
- 모든 Instruction이 같은 포맷을 가짐(같은 형식을 가짐)
- 하나의 사이클마다 Instruction이 수행됨.
- Hardwired 구성. 속도가 빠름.
'공부한거 > 컴퓨터구조' 카테고리의 다른 글
Cache Memory (0) | 2020.09.22 |
---|---|
Pipeline Hazard (0) | 2020.09.22 |
Register (0) | 2020.09.22 |