Mano의 컴퓨터시스템구조 제3판, 프로텍 미디어, 김종상 옮김 도서를 정리, 요약하는 글입니다.
- 컴퓨터 구조는 내부 레지스터, 타이밍과 제어구조, 명령어 집합에 의해서 정의된다. 디지털 시스템의 내부 조직은 레지스터 안에 저장된 데이터를 가지고 수행되는 마이크로 연산의 시퀀스에 의해서 정의된다. 특수 목적 디지털 시스템에서는 마이크로 연산의 시퀀스는 하드웨어에 의해서 고정되어 있으며, 똑같은 업무한 반복한다. 디지털 컴퓨터는 범용 시스템으로서 다양한 마이크로 연산을 수행할 수있으며 수행할 연산의 특수한 시퀀스를 명령할 수도 있다. 이러한 시스템에서는 사용자는 원하는 연산자와 피연산자, 처리되는 순서를 기술한 명령어의 집합인 프로그램에 의해서 처리 과정을 제어할 수 있다.
- 컴퓨터 명령어는 컴퓨터에 대한 일련의 마이크로 연산을 기술한 이진 코드로서 데이터와 함께 메모리에 저장되는데 제어 신호는 각 명령어를 메모리로부터 읽어서 그것을 제어 레지스터에 갖다 놓는다. 그러고 나서 제어 신호는 명렁어의 이진 코드를 해석하여 제어 함수를 발생시킴으로써 명령어를 실행한다.
- 명령어 코드는 컴퓨터에게 어떤 특별한 동작을 수행할 것을 알리는 비트들의 집합이다. 이 비트들은 여러 부분으로 나뉘어지는데 가장 기본적인 부분은 연산 코드 부분이다. 연산 코드는 가감승제나 시프트, 보수 등과 같은 동작을 정의한 비트들의 집합으로 연산 코드가 n 비트로 구성되면 최대 2n개의 서로 다른 연산을 수행할 수 있다.
- 연산(operation)은 컴퓨터 메모리에 저장된 명령어의 일부로서 컴퓨터에게 특수한 연산을 실행하도록 명령하는 이진 코드이다. 제어 장치는 메모리로부터 이러한 명령어를 받아서 연산 코드의 비트 부분을 해석하여 내부 컴퓨터 레지스터에 마이크로 연산(microoperation)을 실행하는 일련의 제어 함수를 발생시킨다. 결국 하나의 연산 코드는 마이크로 연산의 집합으로 볼 수 있고 이 때문에 매크로 연산이라고 불리기도 한다.
- 명령어 코드의 연산부는 실행될 연산을 기술하고 있는데 이러한 연산은 메모리 또는 프로세서 레지스터 안에 저장된 데이터를 가지고 실행되므로 명령어 코드는 연산뿐만 아니라 피연산자가 저장된 레지스터나 메모리 워드, 또한 연산 결과가 저장될 장소를 기술해야 한다.
1. 저장 프로그램 구조
- 컴퓨터에서 가장 간단한 구성한 1개의 프로세서 레지스터를 가지고 있어서 두 부분으로 명령어 코드를 만드는 것이다. 실행할 연산 부분과 피연산자가 저장되어 있는 메모리 주소 부분이다.
- 만약 4096 워드 컴퓨터라면 메모리 주소를 나타내기 위해서는 12비트가 필요하다. 워드의 개수는 전체 메모리의 개수와 같다. 몇 칸의 메모리를 가지고 있느냐를 생각하면 쉽다. 이때 1 워드가 16비트 워드라면 한 칸의 메모리의 크기가 16비트라는 것이므로 총 메모리의 크기는 4096 x 16bit가 된다. 따라서 워드의 크기가 명령어 코드 전체의 크기가 되므로 전체 16비트 중 주소는 12비트에 쓰이고 남은 4비트로 명령어 코드인 opcode를 나타낼 수 있다. opcode는 총 4비트로 구성되어 있으므로 16가지의 명령을 결정할 수 있다.
2. 간접 주소
- 명령어 코드에서 주소 부분에 어떤 내용이 담겨있는지에 따라 다음과 같이 다르다.
(1) 직접 피연산자의 내용이 담겨있을 경우 : immediate
(2) 피연산자의 주소를 나타낼 경우 : 직접 주소(direct address)
(3) 피연산자의 주소의 내용을 담고 있는 장소의 주소를 나타낼 경우 : 간접 주소(indirect address)
- 보통의 경우 한 비트를 사용해 며령어 코드의 주소 부분이 직접 주소인지 간접 주소인지 나타낸다.
- I 라고 표시된 간접 주소 모드(mode) 비트가 0이면 직접 주소, 1이면 간접 주소이다.
- 위 그림과 같이 간접 주소 명령어는 피연산자를 얻기 위해서 두 번의 메모리 참조를 한다.
- 피연산자의 주소와 분기형 명령어에서 목적 주소는 유효 주소(effective address)라 한다.
'CS > 컴퓨터구조(Mano)' 카테고리의 다른 글
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (3) 컴퓨터 명령어 (0) | 2024.10.01 |
---|---|
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (2) 컴퓨터 레지스터 (0) | 2024.09.26 |
[컴퓨터구조] ch.4 레지스터 전송과 마이크로 연산 (4) 시프트 마이크로 연산 (0) | 2024.09.22 |
[컴퓨터구조] ch.4 레지스터 전송과 마이크로 연산 (3) 논리 마이크로 연산 (0) | 2024.09.20 |
[컴퓨터구조] ch.4 레지스터 전송과 마이크로 연산 (2) 마이크로 연산 (1) | 2024.09.12 |