본문 바로가기

공대남자/프로그래밍

[Computer Architecture] Instruction Set Architecture




Computer Architecture


컴퓨터 구조 수업 교재 "Logic and Computer Design Fundamentals"의
10장 명령어 셋 아키텍쳐 5/20일자 수업 요약한 것.



10. Instruction Set Architecture



10-1 Introduce of Computer Architecture


컴퓨터의 논리 구조를 알려면 일반적으로 어셈블리어 참조 매뉴얼을 참고하면 된다.
매뉴얼은 하드웨어로 실행되는 모든 명령어에 관하여 기록하고 있으며, 각 명령어의
2진 코드 형식과 기호명 등에 대해서도 명확한 정의를 내리고 있다.
과거에는 이 정보가 컴퓨터의 아키텍처 그 자체를 의미하였다.
기술이 발달하여 단일 IC에 많은 기능들이 집적됨에 따라 아키텍쳐, 구조, 하드웨어 사이의
관계를 보다 통합적인 관점에서 다룰 필요성이 대두되었다.
이전에 정의된 아키텍처는 명령어 셋 아키텍처(ISA, Instruction Set Architecture)의
제한적인 의미를 가지게 되었고 아키텍처라는 용어의 의미는 명령어 셋 아키텍쳐와 구조,
하드웨어를 모두 포함한 개념으로 설명된다.

명령어 코드의 비트는 field라고 하는 비트 그룹으로 나뉜다.

1) 수행해야 할 동작을 규정하는 연산 코드 영역(opcode field)
2) 어드레스 영역
3) 모드 영역



- 기본적인 컴퓨터 연산 사이클

1) 메모리에서 제어 레지스터로 명령어를 인출한다. (여기서 제어 레지스터는 IR이다)
2) 명령어를 디코드한다.
3) 명령어가 사용하는 오퍼랜드의 위치를 지정한다.
4) 필요하다면 메모리에서 오퍼랜드를 읽어온다.
5) 프로레서 레지스터에서 연산을 실행한다.
6.) 적당한 곳에 결과를 저장한다.
7) 다음 명령어를 인출하기 위해 1단계로 돌아간다.

컴퓨터 내부에는 메모리에 저장된 프로그램 내의 명령어가 수행되는 진행 흐름을 추적하느
PC(프로그램 카운터)라 불리는 레지스터가 존재한다.



10-2 오퍼랜드 어드레싱

1) 3 어드레스 명령어

예를 들어, X = (A+B)(C+D)를 계산하는 프로그램을 3 어드레스 명령어를 사용한다면
다음과 같다.

ADD T1, A, B        M[T1] <- M[A] + M[B]
ADD T2, C, D        M[T2] <- M[C] + M[D]
MUL X, T1, T2      M[X] <- M[T1] * M[T2]

3 어드레스 형식의 이점은 계산식을 표현하는 프로그램 길이가 짧아진다는 것.
단점은 2진 코드로 된 명령어가 특히 세 어드레스로서 메모리 어드레스를 지정한다면
이들 세 어드레스를 지정하기 위해 더 많은 비트가 필요하다는 것.



다음에 계속.