본문 바로가기

학교/컴퓨터 구조

3. 컴퓨터의 성능 (3/4) 연산

연산의 종류

1. 전송 연산

- CPU 내의 레지스터와 메모리 사이의 데이터를 교환하는 적재, 저장 연산(LDA/STA)

 

2. 처리 연산

 - 산술논리장치로 데이터를 조작

 - ADD, USB 등

3. 제어 연산

 - 프로그램 실행 순서를 제어

 - 반복문, 조건문, 프로시저등

4. I/O 연산

 - 레지스터와 외부 장치 사이의 데이터 이동을 수행

 - 매우 느리다

 

분기 명령

프로그램을 비순차적으로 수행할 때 사용하는 명령.

 

명령어에 다음 명령어의 위치를 명시하지 않음.

다음 명령어는 현재 명령어의 다음 위치에 있다고 간주

 

조건에 따라,

무조건 분기(JMP)

조건 분기(IF, JNE 등)

프로시저 호출, 복귀 등이 있다.

 

CPSR

조건 분기에선 두 가지 방식이 있는데

묵시적 조건, 명시적 조건이 있다.

 

묵시적 조건은, 연산 결과 값의 부수적인 결과를 사용할 수 있다.

예를 들자면, +, -, 0을 검사하는 것이다.

 

명시적 조건은 CMP, TST와 같이, 값이 파괴되지 않는 명령어를 사용한다.

이 연산을 통하면, CPSR이라는 프로그램의 상태 레지스터 값이 변경되는데,

플래그 레지스터, 상태 레지스터 라고도 한다.

CPSR 구성은

 

C : 캐리, 연산 결과에 올림수가 있으면 1, 아니면 0

V : 오버플로우. 연산 결과에 오버플로가 있으면 1

S : 연산 결과가 음수면 1, 양수 또는 0이면 0 MSB와 동일한 값

Z : 연산 결과가 0이면 1

 

프로시저

프로시저는 서브루틴(Sub routine), 함수(Function), 메소드(method), 서브 프로그램 등으로 불린다.

즉, 특정 작업을 명시한, 모듈화된 명령어이다.

 

분기 명령어는, 분기할 위치를 PC에 수정만 하면 되지만,

프로시저는 호출될 때, 복귀할 주소(return address)를 미리 저장해야 한다.

프로시저가 끝나면 다시 원래 작업으로 돌아가야 하기 때문이다.

 

프로시저 호출 명령을 표현해보면

 

인출 사이클

IR = 메모리[PC]

PC = PC + 명령어 길이

 

실행 사이클

TOP OF STACK = PC   // 스택 최상단에 다음 명령어 주소 저장(return address)

PC = 프로시저 entry    // 현 PC값을 프로시저 entry 주소로 바꾼다.

 

이제 복귀 명령을 표현해보면

 

인출 사이클

IR = 메모리[PC]

PC = PC + 명령어 길이

 

실행 사이클

PC = TOP OF STACK    // 아까 위에서 저장했던 return address를 pc에 저장.

 

함수가 종료될 땐 기존에 사용한 스택이 모두 정리된 상태일 테니,

맨 위의 스택 (프로시저 호출할 때 저장한 return address)을

PC에 저장한다.

 

출처 : 컴퓨터 아키텍처 컴퓨터 구조 및 동작 원리 (한빛 아카데미)