컴퓨터 구조 14강 ~ 21강 정리

아놀드·2021년 9월 19일
0

컴퓨터 구조 강의

목록 보기
2/5

부울대수와 논리식의 간편화

부울 대수

참, 거짓을 판별할 수 있는 논리적 명제를 수학적으로 표현
부울 대수를 사용하면 진리표 관계를 표현하기 더 용이해지고 진리표가 만들어지면 논리 회로의 구조를 기술하는데 용이해지고 고로 더 좋은 cpu가 만들어진다.

부울 대수의 기본 법칙

교환 법칙(commutiative Law)

결합 법칙(Associative Law)

분배 법칙(Distribute Law)

드모르강의 정리(DeMorgan's Theorem)

부울 대수를 이용한 간략화

E 
= (a`+ bc)(a + b)
= aa` + a`b + abc + bbc (aa`는 뭔 짓을 하든 0이므로 사라짐)
= a`b + abc + bbc (bb는 b가 된다. 자기 자신끼리 and연산하면 자기 자신)
= a`b + abc + bc (분배 법칙을 활용한 bc로 묶기)
= bc(a + 1) + a`b (a + 1은 합연산인데 우항이 1이니까 무조건 1이 됨)
= bc + a`b

카노맵

진리표를 만들 때 부울 대수를 곧바로 간소화할 수 있는 방법

민텀

카노맵의 셀 하나

카노맵 표현 방법

  • 변수가 n개일 때 카노맵은 2^n개의 민텀으로 구성
  • 인접한 민텀끼리는 하나의 변수만이 변경되어야 함.


조합/기억 논리회로

조합 회로

결과값이 입력값에 의해서만 결정되어지는 논리 회로이다.
결과값은 입력값의 0과 1들의 조합함수이다.

클럭 신호

동작을 동기화하기 위한 전자적인 펄스

기억 회로

플립플럽(Flip-Flop)과 래치가 있다.
1비트의 정보를 보관, 유지할 수 있는 회로다.

래치

클럭 신호가 없다.
비동기로 동작한다.

플립플럽

클럭 신호가 있다.
래치에 클럭 신호를 논리곱 하도록 설계돼있다.
동기로 동작한다.

순차 회로


조합 회로와 플립플럽이 어우러지는 회로
단순히 더하기 연산을 생각했을 때
자릿수 올림이 발생이 발생하면
올림된 결과값을 플리플롭에 기억하고
다음 연산시 플리플롭에 저장된 값을 사용하는 식으로 논리가 전개된다.

조합 회로의 설계 절차

  1. 문제가 제시된다.
  2. 입력과 출력 변수에 문자 기호를 붙인다.
  3. 입력과 출력 사이의 관계를 정의하는 진리표를 유도한다.
  4. 각 출력에 대한 간소화된 부울 함수를 얻는다.
  5. 논리도를 작성한다.

대표적 조합회로

  • 가산기(Adder): 두 개 이상의 입력을 받아 결과물을 출력하는 논리 회로
    - 반 가산기(Half Adder) - 두 개의 비트에 대해서 연산한다.
    - 전 가산기(Full Adder) - 두 개의 비트의 연산과 연산하며 발생한 캐리 비트까지 포함하여 세 비트를 더하는 논리회로
    두 개의 반 가산기 + OR gate로 구성된다.

  • 멀티플렉서(Multiplexer)
    다수의 입력선 중 하나만을 선별적으로 출력 가능하게 해주는 조합 회로

  • 디멀티플렉서(Demultiplexer)
    멀티플렉서와는 대조적으로
    하나의 입력선을 다수의 입력선으로 분해하는 조합 회로
    보통 10진수를 2진수로 변환할 때 사용된다고 한다.

cpu 내부 구조와 레지스터들의 유기적 연결

레지스터

플립플럽을 여러개 연결한 기억 장치
cpu에서 산술 연산, 논리 연산, 전송 조작을 할 때 데이터를 일시적으로 기억하는 장소

CPU의 내부 구조

구성 요소

  • 레지스터 세트(Register set),
  • 산술 논리 장치(ALU: Arthmetic Logic Unit)
  • 제어장치(Control Unit)

RS는 명령어를 실행하는 필요한 데이터를 보관한다.
CU는 RS간의 정보 전송을 감시하고 ALU에게 수행할 동작을 지시한다.
ALU는 명령어를 실행하기 위한 마이크로 연산을 수행한다.

매크로 연산

외부에 보이는 동작이 큰 연산
EX) 엑셀 연산, 빅데이터 연산
사람으로 비유하면 운전, 요리

마이크로 연산

내부에서 명령어들을 실행할 수 있게
즉, 매크로 연산이 돌아가게 지원해주는 연산
사람으로 비유하면 호흡, 심장 펌핑 (자율 신경계)

컴퓨터 명령 원리

MAR (Memory Address Register)

메모리 주소 레지스터
CPU가 데이터를 읽거나 쓰려는 메모리 주소를 일시적으로 저장한다.

MBR (Memory Buffer Register)

메모리 버퍼 레지스터
메모리에 읽거나 쓰려는 데이터 또는 명령을 일시적으로 저장한다.

PC (Program Counter)

프로그램 계수기
다음에 수행될 명령어가 들어있는 주 기억장치의 주소를 기억하는 레지스터

IR (Instruction Register)

명령 레지스터
PC가 지정하는 주소에 기억되어 있는 명령어를 해독하기 위해 임시 기억하는 레지스터

ID (Instruction decoder)

명령어 해독기
IR에 들어있는 명령 코드를 해석하는데 사용
각종 명령 코드를 제어 신호화하여 기계 사이클로 변환, 전송한다.

CU(Control unit)

제어 장치
ID로 보내져온 신호에 따라 명령어를 실행
clock에 의해 발생

GR(General porpose register)

범용 레지스터
WR에서 DATA가 용이하게 처리되도록 임시로 자료를 저장한다.
ALU와 연결되어 있지 않다.

WR(Working register)

작업 레지스터
산술 논리 연산을 실행할 수 있도록 자료를 저장한다.
ex) 1 + 2 + 3 연산을 하면 1 + 2연산을 저장해놓고 다시 불러와서 3 + 3 연산을 하게됨.
ALU와 연결되어 있다.

SR(Status regiester)

상태 레지스터
CPU의 상태를 나타내는 특수 목적의 레지스터
ex) Z(zero) / 부호 S(sign) / 오버플로우 V(overflow) / 캐리 C(carry) / 인터럽트 I(interrupt)(우선 되어야 할 명령)

컴퓨터 명령 순서

현재 PC가 기억하는 명령어는 ADD(107, 108)일 때를 가정

  1. PC가 MAR에게 ADD(107, 108)주소를 넘기면 MAR은 메모리의 주소 번지의 명령어를 가져온다.
  2. 가져온 명령어를 MBR에게 넘긴다.
  3. MBR은 IR에게 명령어를 넘긴다.
  4. IR은 ID에게 명령어를 해석하라고 시킨다.
  5. ID는 명령이 ADD라는 의미를 알아채고 107, 108번지 주소를 MAR에게 넘기면
    그 주소의 값들이 MBR에 담기고 ALU가 연산을 한다.
  6. 연산을 하면서 발생한 캐리 비트를 저장한다.
  7. 연산이 끝나면 GR로 이동한다.
  8. 다음 명령어를 수행하기 위해 PC값을 증가한다.

CPU 내부 구조와 명령어 집합

컴퓨터의 구조

내부 레지스터, 타이밍, 제어 구조 명령어 집합에 의해 정의된다.
즉, 내부 레지스터끼리 데이터를 주고 받을 때
아무 때나 주고 받지 않고 클럭 펄스와 같은 타이밍에 의해 주고 받는데
제어 구조 명령어 집합에 의해 더해서 줄 건지, 빼서 줄 건지 결정된다.

마이크로 연산

레지스터에 저장된 데이터의 조작을 위해 실행되는 동작
클락 펄스 내에서 실행되는 기본적인 동작
ex)
시프트(shift) - 시프트 연산 (<<)
카운트(count) - PC가 다음 명령어 주소를 가리키도록 카운팅
클리어(clear) - 메모리를 비우는 연산
로드(road) - 보조 기억 장치에서 주 기억 장치로 로드

디지털 컴퓨터의 구조를 정의하기 위해 논의 되어야 할 내용

명령어를 어떻게 구성하고, 어떻게 실행할 것인가? 고민에 의한 답

  • 레지스터의 종류와 그 기능
  • 레지스터에 저장된 이진 정보를 가지고 수행되는 일련의 마이크로 연산들
  • 일련의 마이크로 동작을 온/오프 시킬 수 있는 제어 기능

레지스터와 레지스터 전송 표현

a) 레지스터 하나를 의미
b) 8비트가 탑재될 수 있는 레지스터 표현
c) 16비트가 탑재될 수 있는 표현
d) 상위 비트와 하위 비트 표현

R2← R1
치환연산자(replacement)를 이용한 레지스터 간 정보 전송

P:R2← R1
if (P==1) then (R2← R1)
소스(source) 레지스터로부터 목적(target)레지스터로의 연결과 아울러 목적 레지스터에 조건부 처리가 가능할 수 있도록 병렬 로드 기능이 있어야한다.

레지스터 전송을 나타내는 각 문장들은 그 전송을 수행하는 하드웨어가 구성되어 있음을 의미한다.

콤마 표시는 두 마이크로 연산이 관련이 없기 때문에 병렬로 처리하라는 의미이다.

하드웨어와 소프트웨어

하드웨어는 소프트웨어에 의해 동작한다.
근데 소프트웨어는 시간에 따라 업데이트가 되는데 그 때마다 하드웨어도 바꿔야하면 비효율적이다.
때문에 하드웨어와 소프트웨어는 독립적이여야 한다.

cpu내의 레지스터간의 상호 연결

직접 연결


연결 복잡도가 장치 수의 제곱에 비례한다.
가장 간편한 방법이지만, 확장성이 떨어진다.

버스 연결

공용선에 의한 연결이다.
가장 가성비가 높은 연결 방식이다.
관리를 위한 다양한 방법이 제시된다.

공용선에 의한 레지스터 상호 연결

멀티 플렉서 이용

3-상태 버스 버퍼

멀티 플렉서를 활용한 버스와 비슷하지만 enable을 사용한다는 점에서 다르다. -> 버퍼에 사용된다.

profile
함수형 프로그래밍, 자바스크립트에 관심이 많습니다.

0개의 댓글