티스토리 뷰
컴퓨터 사이언스에 관해 공부한 것을 정리한 내용입니다.
1. 부울대수의 개요
부울대수(Boolean algebra)는 논리적 관계의 문제를 다룰 때 대수 형식으로 표시하며, 여러가지 논리회로를 설계하거나 같은 기능을 갖는 논리 회로를 간략화하는 데 사용된다. 인간의 지식이나 사고를 참, 거짓으로 공식화하고 이를 수학적으로 해석하기 위한 것으로 논리대수라고도 한다.
주로 컴퓨터의 회로 설계 등에 이용되고 있으며 "0"과 "1"의 두 개의 수치만을 사용하여, 연산의 결과는 언제나 0 또는 1로 표현된다.
2. 논리회로
논리회로는 2가지의 상태를 다루는 방법으로 컴퓨터에서 사용되는 방법이다. NOT, AND, OR 3가지의 기본논리회로의 조합으로 구성된다.
1) NOT 회로
인버터(inverter)라고도 한다. 입력이 1개로 구성된 것으로 입력신호와 반대되는 출력을 내놓는다.
입력신호가 1이면 출력은 0, 입력신호가 0이면 출력은 1
2) AND 게이트
두 입력이 모두 1일 때 출력이 1이 되고 그 외에는 모두 0이 출력된다.
3) OR 게이트
입력신호 중 어느 하나 또는 두 개가 모두 1일 때 1이 출력된다.
4) 부정논리곱
AND와 NOT 회로를 결합한 것으로 AND의 결과를 반전한 결과를 얻는다. 두 입력이 모두 1일 때에만 0을 출력하고 나머지는 모두 1 출력
5) 부정논리합
OR와 NOT 회로를 결합한 것으로 OR의 출력이 반전된 결과를 얻는다. 두 입력이 모두 0이면 1을 출력하고 나머지는 모두 0 출력
6) 배타논리합(XOR: exclusive-OR)
두 개의 입력조건이 서로 다르면 1이고, 조건이 같으면 0이 된다.
3. 조합 논리 회로
입력 논리치가 정해지면 출력 논리치가 결정되는 논리회로. AND, OR, XOR 등의 논리가 해당된다.
1) 반 가산기(half adder)
1비트의 2진수 2개를 합하여 그 결과를 한 비트의 합과 한 비트의 올림수로 발생시키는 논리회로.
2) 전 가산기(full adder)
반 가산기는 자리 올림수를 더해줄 수 없기 때문에 이것을 보완하여 만든 회로. 두 개의 입력과 전 단계에서 발생한 자리 올림수를 더할 수 있도록 구성된 회로.
여러 자리의 2진수 덧셈을 위해서는 첫 자리의 덧셈은 반 가산기를 이용하고, 다음 단계부터는 자리 올림수를 더해줘야 하기 때문에 전 가산기를 사용한다.
3) 인코더(encoder)
1개의 입력을 다수의 신호로 변환하여 출력을 얻는 회로로 부호기라고도 한다. 0, 1, 2, ... 와 같은 하나의 십진수를 4개의 비트를 이용한 2진수 코드로 변환할 때 사용할 수 있다.
4) 디코더(decoder)
인코더와 반대로 다수의 입력신호로서 1개의 출력신호를 얻는 회로이다. 2진수 코드의 정보를 다른 부호로 바꾸어야 할 때 사용하는 회로로 해독기라고도 한다.
5) 멀티플렉서(multiplexer)
n개의 선택입력에 따라 2^n 개의 입력 중 하나를 선택하여 출력하는 회로로 다중기라고도 한다. 데이터통신 장치에 많이 사용된다.
4. 순서 논리 회로
조합 논리 회로가 입력신호의 조합에 따라 출력값이 결정되었다면 순서 논리 회로는 입력신호의 조합뿐만 아니라 논리회로의 내부 상태에 따라 다르게 출력이 나타난다. 입력 신호에 의하여 상태를 바꾸도록 지시할 때까지 계속적으로 컴퓨터 내부에서 0, 1의 값을 가지는 bit를 기억하고 유지하기 위하여 사용된다. 이런 소자를 플립플롭(Filp-Flop)이라 한다. 정보를 기억하는 레지스터 및 카운터 등의 구성소자에서 사용된다.
*) 레지스터(register)
CPU의 연산장치와 기억장치 중에서 기억장치에서 읽어내는 정보와 연산결과 등을 일시 기억하는 데 사용된다. 1개의 플립플롭은 1비트의 정보가 기억되기 때문에 n개의 플립플롭을 사용하면 n비트의 정보를 기억하는 레지스터가 된다.
'컴퓨터 사이언스' 카테고리의 다른 글
[컴퓨터 사이언스] 컴퓨터 하드웨어 기억장치 (0) | 2021.11.07 |
---|---|
[컴퓨터 사이언스] 컴퓨터 하드웨어 구성 (0) | 2021.11.06 |
[컴퓨터 사이언스] 데이터의 표현과 연산 (0) | 2021.10.24 |
[컴퓨터 사이언스] 컴퓨터의 분류 (0) | 2021.10.23 |
[컴퓨터 사이언스] 컴퓨터의 역사 (0) | 2021.10.23 |
- Total
- Today
- Yesterday
- c++
- 컴퓨터공부
- 문제풀이
- 너비우선탐색
- 하드웨어
- 해커랭크
- 깊이우선탐색
- 애플
- 다이나믹프로그래밍
- 스위프트플레이그라운드
- 아이패드
- C언어기초
- 컴퓨터
- 프로그래머스
- c언어
- 백준
- 프로그래밍
- 캐나다
- greedy
- DFS
- hackerrank
- dp
- 컴퓨터사이언스
- 기초
- 캐나다생활
- 알고리즘
- 그리디
- BFS
- 영어공부
- 코딩공부
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |