본문 바로가기
컴퓨터구조

[컴퓨터구조] 기본 컴퓨터 조직 및 디자인(Basic Computer Organization and Design), 컴퓨터 레지스터(Comput

by 유노brain 2023. 9. 25.
반응형

Instruction Codes

-컴퓨터 구조는 그 컴퓨터가 사용하는 instrcution set, 내부 registers, timing and control structure으로 정의된다.
- Instruction code는 컴퓨터로 하여금 특정 operation을 하라고 지시하는 bit group이다

Instruction code = operation code (Opcode) + address part

- Operation code : operation을 지정
- Address part : operation에 사용될 operand가 있는 주소

Addressing modes

- Immediate addressing (address part 자체가 operand) : instruction code 중 address bit들이 operand의 주소가 아니고 operand 그 자체임
- direct addressing : operand = M[address] {직접 주소를 말함}
- indirect addressing : operand = M[M[address]] {간접 주소를 말함}

Demonstration of direct and indirect address

직접, 간접주소 데모

위의 그림은 직접주소와 간접주소를 묘사한것이다. 
위 그림에 설명을 더 추가하면 다음과 같이 된다.
https://deg.kr/1e55ec6

하이엔드 거래는 믿을만한 곳에서, 에픽원

deg.kr


컴퓨터 레지스터(Computer Registers)

컴퓨터 레지스터는 연속적인 메모리 위치 와 순차적으로 한 번에 하나씩 실행한다.

Basic computer registers and memory

컴퓨터 레지스터들

위의 메모리는 4096단어와 16비트를 저장할 수 있다.
여기서 12비트는 피연산자의 주소를 지정하기 위해서는 12비트가 필요하며 나머지 3비트는 연산을 위해 마지막 1비트는 직접주소인지 간접주소인지 나타내는데 사용된다.

용어 설명

PC(Program Counter): 프로그램 카운터는 CPU에서 다음에 실행할 명령어의 메모리 주소를 가리키는 레지스터이다.(명령어 실행이 진행될 때마다 PC값이 1증가하고, 다음 명령어로의 분기 또는 점프를 제어하는데 사용)
AR(Address Register): 주소 레지스터는 메모리 주소를 저장하는 레지스터로, CPU가 메모리 내의 데이터를 일거나 쓸 때 사용된다.
IR(Instruction Register): 명령어 레지스터는 현재 실행 중인 명령어를 저장하는 레지스터. (CPU가 메모리로부터 명령어를 읽어와서 IR에 저장한 후 해당 명령어를 해석하고 실행)
DR(Data Register): 데이터 레지스터는 CPU 내부에서 데이터를 저장하는 레지스터로, 연산에 필요한 데이터나 연산 결과를 입시로 저장하다는 데 사용
TR(Temporary Register): 임시 레지스터는 주로 연산 중에 중간 결과를 저장하기 위한 임시적인 레지스터이다. (일시적인 데이터 저장에 사용된다.)
AC(Accumulator): 어커뮬레이터는 연산 결과를 저장하는 레지스터로, 산술 및 논리 연산의 결과를 저장하거나 누적하는데 사용된다.
OUTR(Output Register): 출력 레지스터는 CPU에서 외부로 출력할 데이터를 저장하는 레지스터이다.(주로 입출력 작업에 사용된다.)
INPR(Input Register): 입력 레지스터는 CPU로 입력된 데이터를 저장하는 레지스터로, 입력 장치에서 받은 데이터를 처리하는데 사용된다.

Common bus system

기본 컴퓨터(Basic Computer)의 경우 기본적으로 6개의 레지스터와 메모리유닛(memory unit), 컨트롤 유닛(control unit)을 가진다. 레지스터와 다른 레지스터, 메모리와 레지스터 사이의 정보를 전달하기 위해서는 통로가 필요하다. 추가적으로 각각의 레지스터 입력과 출력 사이에서의 연결 선이 지나치게 많을 것인데 이것을 효과적으로 설계해주는 것이 common bus system이다.
각 레지스터와 메모리의 출력은 S2,S1,S0에 의해 결정된다. 아래의 그림을 예를 들어보면 DR의 출력은 3이 된다. bus line에서 DR의 16비트 위치는 S2,S1,S0 = 011에 해당한다. LD(load)입력이 활성화된 특정 레지스터는 다음 클럭 펄스 전환 동안에 bus로부터 데이터를 받게 된다. 
write input이 활성화 될때 메모리는 버스의 내용물을 받는다.
메모리(Memory unit)의 경우 Read input이 활성화되고 S2S1S0 = 111일때 16-bit출력을 버스에 배치한다.
메모리의 input, output이 common bus에 연결되어있지만 메모리 주소도 AR에 연결되어있다. 그렇기 때문에 AR은 특정한 주소를 가져야 한다.
AC의 경우 가산기(adder)와 논리회로(logic circuit)에서 나온다. AC의 출력으로부터 16비트 입력 한 세트가 나오는데 이 세트들이 AC와 shift AC같은 레지스터 마이크로연산을 구현하는데 사용된다.
DR에서 Load를 활성화시킨 후 DR의 내용물이 AC의 Adder and logic으로 전송하고 AC의 Load를 활성화시켜서 한 펄스 사이클 안에 수행할 수 있다.

Basic computer의 3가지 기본 instruction format

기본 컴퓨터(basic Computer)는 세 개의 코드 명령어를 가진다.
12비트(0~11)까지는 주소(Address)를 가지고 3비트(12~14)까지는 Opcode(Operation Code)를 가진다. 마지막으로 1비트(15)에는 addressing Mode 즉 직접주소(0)인지 간접주소(1)인지를 나타낸다.
Memory -reference instruction(메모리 - 참조 명령어) : 메모리의 경우 Opcode를 (000 ~ 110)까지 받는다.
(만약 111이 될 경우 Register - reference instruction 또는 input-output instruction이 될 수 있다.
 Register-refence instruction(레지스터 - 참조 명령어): 레지스터의 경우 직접주소(0)에 Opcode(111)을 갖는다.
Input-output instruction(입,출력 명령어) : 입출력의 경우 간접주소(1)에 Opcode(111)을 갖는다.

Basic Computer instruction

위의 Basic computer에서 명령어(operation code)가 최대 8개밖에 안 나올 것 같지만 실제로는 25개가 나온다.
사실 basic computer에서 나머지 12비트를 연산코드로 일부 사용해서 총 명령어(operationcode)가 8개를 초과해서 나오게 만든다. 
위의 그림이 Basic Computer의 총명령어이다. 

Computer가 다음의 4가지 category에 해당하는 각각의 충분한 instruction들을 가지고 있을 때, 그 instruction set은 complete 한다고 본다.

1. arithmetic, logic and shift instructions
2. instruction for moving information to and from memory and processor registers
3. program control instruction together with instruction that check status conditions
4. input and output instruction
번역:
1. 산술, 논리 및 쉬프트 연산
2. 메모리와 프로세서 레지스터 사이에서 정보를 이동하는 명령
3. 상태 확인 명령어와 함께 제어 명령어를 프로그램
4. 입출력 명령
 

Timing and Control

● Basic computer의 모든 register에 대한 timing은 master clock generator가 제공하는 clock pulse에 의해 control 된다.
● Register 내용은 control signal에 의해 enable되어 있을 경우에만 clock pulse에 의해 바뀐다.
● control signal은 control unit에 의해 generate된다.
● Control unit

- Hardwired control: control logic이 gate, flip-flop, decoder, 또는 다른 logic circuit으로 구성된다.(성능이 매우 좋아야 함, 예로 계속 성능이 좋아지는 컴퓨터나 핸드폰이 있다.)
- Microprogrammed control : control 정보가 control memeory에 저장(성능이 굳이 좋을 필요가 없다. 그 대신 수정이 쉬움 예로 '자판기'가 있음)
- Hardwired control은 속도가 빠른 대신 수정이 어렵다.
 

반응형

댓글