과거의나야도와줘

[CS / 컴퓨터구조] CH05. 컴퓨터의 구조와 설계 본문

CS정리/컴퓨터구조

[CS / 컴퓨터구조] CH05. 컴퓨터의 구조와 설계

o_60__o 2023. 1. 16. 21:01
728x90

 

제 5장 part 1-2 목차

1. 컴퓨터 명령어(Computer Instructions)

2. 타이밍과 제어(Timing and Control)


1. 컴퓨터 명령어(Computer Instructions)

 

 기본 컴퓨터 명령어의 종류는 크게 MRI, RRI, IO 명령 3가지로 나뉩니다

 

 1. MRI 명령 (Memory - Reference Instruction)

 메모리 참조 명령으로 메모리 주소 비트를 가지고 메모리를 찾아가서 뭔가를 처리하는 명령어 입니다

 

 MRI명령어는 세부적으로 7가지 명령어로 나뉘어집니다

 

AND - AC에 있는 값과 메모리에 있는 값을 AND 한 결과를 다시 AC로 보내라

ADD - AC에 있는 값과 메모리에 있는 값을 더한 결과를 다시 AC로 보내라

LDA - 메모리에 있는 데이터를 AC로 보내라(load memory word to ac)

STA - AC에 있는 값을 memory에 저장해라(store content of AC in memory)

BUN -  무조건 분기해라(Branch Unconditionally), 지금 명령어가 어디있든간에 무조건 지정한 부분으로 이동해라

BSA - 분기했다가 돌아올 주소를 저장해라(Branch and save return address)

ISZ - 일단 1 증가하고 만약 그 값이 0이라면 그 다음 한 명령을 스킵해라

 

참고) AC란 Accumulator로 연산 결과를 임시로 저장하는 레지스터입니다. 누산기라고도 합니다

 

 2. RRI 명령 (Register - Reference Instruction)

 레지스터와 레지스터 사이 혹은 레지스터를 변경하는 명령어입니다

 

 RRI명령어는 세부적으로 12가지 명령어로 나뉘어집니다

 

CLA - AC를 Clear 해라

CLE - E(플립플롭의 종류?)를 Clear 해라

CMA - AC에 있는 값을 0->1 1->0 해라 (Complement AC)

CME - E에 있는 값을 0->1 1->0 해라

CIR - AC와 E를 Circulate Right 해라 오른쪽으로 한칸씩 옮기고 마지막 값은 다시 왼쪽 처음에 붙이기

CIL - AC와 E를 Circulate Left 해라

INC - AC의 값을 1 증가시켜라 (Increment AC)

SPA - AC가 positive라면 다음 명령을 스킵하고 다음 다음 명령을 실행해라

SNA - AC가 negative라면 다음 명령을 스킵하고 다음 다음 명령을 실행해라

SZA - AC가 zero라면 다음 명령을 스킵하고 다음 다음 명령을 실행해라

SZE - E가 zero라면 다음 명령을 스킵하고 다음 다음 명령을 실행해라

HLT - 컴퓨터를 멈춰라 (Halt Computer)

 

 3. IO 명령(Input - Output Instruction)

 IO 장치들에 대해서 명령어를 수행하여 입력이나 출력 동작을 수행하는 명령어입니다

 

INP - 입력장치로부터 AC로 입력하는 것

OUT - AC로부터 출력장치로 출력하는 것

SKI - input flag(flag라는 플립플롭)의 값이 1이면(입력장치에 입력값이 있다라고 flag가 알려주면) 다음 명령어를 스킵해라

SKO - output flag의 값이 1이면 다음 명령어를 스킵해라

ION - 외부로부터 Interrupt를 받겠다(Interrupt on)

IOF - 외부로부터 Interrupt를 안받겠다(Interrupt off)

 

참고자료)

5-1 명령어 포맷
5-2 명령어 설명표


2. 타이밍과 제어(Timing and Control)

 

 위에서 배운 명령어들이 어떻게 실제로 동작을 하는지 보겠습니다

 

명령어가

D3T4 : SC <- 0

인 경우를 도식화 한 그림입니다

 

D3T4 : SC <- 0

D3T4 : SC <- 0은

Decoder가 3이고

Timing이 4일때

SequenceCounter를 0으로 만들어라 라는 명령어입니다

 

Sequence Counter가 매 카운터마다 1씩늘어나고

D3와 T4가 동시에 1이되어 오른쪽 AND 게이트에 들어가면 SC <- 0의 명령이 실행되는 과정입니다

 

참고로

3X8 decoder는 3개의 명령(1 or 0)으로 8개(2^3)의 값이 나오는 디코더입니다

3X8 decoder가 3이라는 것은 011의 명령이 들어왔다는 것이겠죠?

 

왼쪽 그림을 타이밍 다이어그램이라고 하고 이걸 읽을 줄 알아야 하드웨어가 쉬워진다고 하네요

 

 


 

이번 강의에서는 명령어의 종류를 알아두면 좋겠네요

728x90
Comments