Instruction Set Architecture(ISA), Instruction Format, Multiple Address
포스트 난이도: HOO_Junior
# Instruction Set Architecture
ISA라고 불리는 Instruction Set Architecture는 한국에서는 명령어 집합이라고 부른다.
ISA를 명령어 집합이라고 부르는 이유는 Lowest level에 대한 여러 기능들을 포함한 a set of library이기 때문이다.
개발자로부터 만들어진 프로그램의 코드는 일반적으로 High level languages들로 구성되어 있다.
그렇다 보니 실질적으로 Hardware인 컴퓨터가 이를 인식하고 특정 프로그램을 실행하기 위해서는 컴퓨터에게 맞는 언어로 전환이 이루어져야 한다.
이때 High level language와 Transistors 사이에 위치한 것이 바로 ISA라고 불리는 Insturction set architecture이다.
ISA를 Lowest level이면서 functions들의 library set이라고 부르는 이유는 컴퓨터 아키텍처와 관련된 명령어들을 포함하고 있기 때문이다.
High level language에서는 프로그램을 개발하고 특정 프로그램에 대한 setting을 한다면 ISA를 통해서 메모리 구조나 레지스터, 외부 입출력과 같은 보다 더 HW와 가까운 명령어들을 포함하고 있다.
또한 ISA는 기계어 명령어라고도 한다.
개발자가 기계어를 직접적으로 작성하지는 않아도 기계어로 1:1로 변환될 수 있는 문자를 사용하여 기계어에 대한 명령을 할 수 있다.
기계어 명령어 하면 생각나는 언어가 바로 어셈블리어인데, 이 역시도 ISA를 통해서 기계어로 변환된다.
# Instruction Format
Instruction format은 아래와 같은 구조를 가지고 있다.
- Operation code
- Address
Operation code는 Opcode라고도 불리는 특정 bits들의 묶음이 어떻게 operation을 하는지를 나타낸다.
Address 또는 Addresses는 특정 레지스터나 메모리의 위치를 의미하는데 여기서 중요한 점은 Operand의 의해서 최종 destination이 바뀐 결과의 위치를 나타낸다는 것이다.
Fig02 예제 그림을 살펴보면 Operation code와 address가 나와있다.
Fig03은 Insturction format을 사용하는데 예제인데, 여기서 ADD는 Opcode을 의미하고 Destination은 Address를 의미한다.
Source가 하나가 아닐 경우 Fig03처럼 Source1, Source 2로 작성이 가능하다.
# Multiple address
Instruction에서 Address는 하나만 있는 one address일 경우가 있고 여러 개의 address를 가지고 있는 multiple address일 수도 있다.
One address instruction은 특정한 하나의 instruction을 가지고 있는 반면에 Two address instructions이나 Three address instructions과 같은 Multiple address의 경우에는 similarly defined 된다.
'Computer Science' 카테고리의 다른 글
[Programming] Instruction Level Parallelism(ILP), Pipelining (0) | 2022.04.12 |
---|---|
[Programming] CISC vs RISC (0) | 2022.04.11 |
[Programming] Central Processing Unit, Instruction Cycle (0) | 2022.04.10 |
[Database] Relational Algebra: PROJECT (0) | 2022.03.29 |
[Database] Relational Algebra: Selection (0) | 2022.03.29 |
댓글