Last update 24.10.20
- 공부중인 내용이므로 변경하고 있습니다.
- 틀린 내용은 언제든지 지적 부탁드립니다!
- 파란색 배경으로 강조된 부분은 예시문제에 나온 내용입니다.
1. 작동방식
컴퓨팅시스템 개요
- 컴퓨터의 역할
I = P(D)
- Data를 어떻게 저장할 지 = 데이터베이스
- Process를 어떻게 할 지 = 알고리즘
- 알고리즘을 어떻게 구현할 지 = 통합프로그래밍
- 어떤 시스템을 사용할 지 = 통합컴퓨팅시스템
- 컴퓨팅시스템은 정보처리를 위한 시스템
- 하드웨어(← 논리회로, 컴퓨터구조 과목)와 소프트웨어(← 운영체제 과목)의 상호작용
- 하드웨어
- 중앙처리장치: 제어장치, 산술논리연산장치, 레지스터
- 기억장치: 주기억장치(RAM/ROM), 보조기억장치, 캐시(메모리 계층구조)
- 입출력장치
- 시스템 버스: 제어 버스,주소 버스,데이터 버스
- 소프트웨어: 시스템 소프트웨어, 응용 소프트웨어
- 시스템 소프트웨어의 구분
- 제어 프로그램: 감시 프로그램, 작업제어 프로그램, 데이터 관리 프로그램
- 처리 프로그램: 언어 번역기, 서비스 프로그램, 문제해결 프로그램
- 언어 번역 프로그램
Note. Compiler Driver: 컴파일 과정을 하나로 묶어둔 패키지
Note. Compiler vs Interpreter: 목적 프로그램의 생성 여부
- 컴파일러: 원시코드 → 어셈블리어 → 목적 프로그램
- 어셈블러: 어셈블리어 → 목적 프로그램
- 링커: 정적 링킹 / 동적 링킹
- 로더: 할당(메모리 등 자원 할당), 연결(동적 링킹된 라이브러리 연결), 재배치(실주소 변경), 적재(페이지 적재)
- 하드웨어와 소프트웨어는 상호의존적이며 보완적
ex. 가상메모리 시스템: MMU(하드웨어) + TLB 관리(소프트웨어)
- 컴퓨터의 역사
- 회로 소자의 발달로 컴퓨터의 역사 구분
- 1세대: 진공관
- 기계적 데이터 표현 → 전기적 데이터 표현
- 기계어, 어셈블리어 - 프로그램 내장형 컴퓨터
- 2세대: 트랜지스터
- 고급 프로그래밍 언어 - 시스템 라이브러리, 컴파일러
- 일괄 처리 시스템
- 3세대: 집적회로(IC)
- 4세대: 고밀도 집적회로(LSI/VLSI)
- 반도체 비용 감소 → 개인용 컴퓨터 보급 → 네트워크 발달
- 시분할 시스템, GUI, 분산시스템
논리회로
부울 대수
- 하드웨어는 전기적 신호를 처리하는 논리회로
- 신호의 전압에 따라 상태를 구분: 기준 전압 → 0(Low)과 1(High) 구분
- 노이즈 등의 영향을 줄이기 위해 두 가지 상태만 사용
- 부울 대수는 논리학을 기반으로 0과 1만을 사용하는 대수 규칙
- 0(거짓), 1(참)의 상태와 합 , 곱, 보수, 배타적 논리합 등의 연산을 사용하는 대수 체계
- 논리연산 → 불 대수
- 논리회로를 불 대수로 표현 가능 = 회로 검증, 간소화
- 부울 대수의 연산규칙
-
기본 연산
X |
Y |
$x + y$ |
$x \cdot y$ |
$x \oplus y$ |
$\overline{x}$ |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
-
부울 대수의 연산규칙
- 교환법칙: $x + y = y + x$, $x \cdot y = y \cdot x$
- 결합법칙: $(x + y) + z = x + (y + z)$, $(x \cdot y) \cdot z = x \cdot (y \cdot z)$
- 분배법칙: $x(y + z) = xy + xz$, $(x + y)(x + z) = x + yz$
- 지배법칙: $A + 0 = A$, $A \cdot 0 = 0$
- 항등법칙: $A \cdot 1 = A$, $A + 1 = A$
- 멱등법칙: $A + A = A$, $A \cdot A = A$
- 보수법칙: $A + \overline{A} = 1$, $A \cdot \overline{A} = 0$
- 이중 보수법칙: $\overline{\overline{A}} = A$
- 흡수법칙: $x + xy = x$, $x(x + y) = x$
- 드모르간의 법칙: $\overline{xy} = \overline{x} + \overline{y}$, $\overline{x + y} = \overline{x} \cdot \overline{y}$
- 합의의 정리
- 한 번은 일반항으로, 한 번은 보수로 나타난 변수가 포함된 식 = 적항
- 적항에 연산된 나머지 항 = 잉여항
- $xy + yz + \overline{x}z = xy + \overline{x}z$
- $(x + y)(y + z)(\overline{x} + z) = (x + y)(\overline{x} + z)$
- 쌍대성의 원리
- 부울 함수의 표현
- 최소항 = 참 = SOP(Sum of Product)
- 최대항 = 부정 = POS(Product of Sum)
- ex. $F = \{1, 3\}$
$= \overline{x}y + xy$ (SOP형: 출력이 1이 되도록 하는 최소항의 합 = 1 + 3)
$= (x + y)(\overline{x}+ y)$ (POS형: 출력이 0이 되도록 하는 최대항의 곱 = 0 * 2)
- 부울 함수의 간소화
- 카르노 맵
- 진리표의 특수한 형태 - 변수가 1비트만 다르도록 나열: 00, 01, 11, 10
- 인접한 항을 2의 거듭제곱만큼 묶으면 간소화 가능
(SOP형에서는 1인 칸을, POS형에서는 0인 칸을 묶는다)
- 연산규칙 활용
- 논리게이트
- 트랜지스터, 저항 등을 조합하여 논리연산 구현
- 게이트를 조합해서 논리회로 구성
- 기억능력이 있으면 (= 피드백 회로가 있으면) 순차논리회로, 없으면 조합논리회로
- AND 게이트, NAND 게이트
- OR 게이트, NOR 게이트
- XOR 게이트, XNOR 게이트
- NOT 게이트
조합논리회로
- 입력 변화에 따라 출력이 변화하는 회로
- 저장을 위한 기억소자 없이 논리게이트로만 구성
- 입력 변화가 전파되는 시간이 필요하므로, 지연이 발생
- 인코더, 멀티플렉서
- 인코더(ex. 8x3): $2^n$개의 입력에 대해 n비트 출력이 나오는 회로 (부호화)
- 멀티플렉서(ex. 8x1): $2^n$개 입력을 n비트 선택선을 이용해 선택해서 하나의 입력이 나오는 회로
- 디코더, 디멀티플렉서
- 디코더(ex. 3x8): n비트 입력에 대해 $2^n$개의 출력이 나오는 회로 (복호화)
- 디멀티플렉서(ex. 1x8): 1비트 입력, n비트 선택선에 대해 $2^n$개 중 하나의 선로로만 입력이 나오는 회로
- 가산기/감산기
- 반가산기(XOR + AND)/전가산기(전가산기 2개 + OR)
- 반감산기(반가산기 + NOT)/전감산기
- 부호 비트를 활용한 가감산기
- 가산기의 병렬처리
순차논리회로