728x90

전자석으로 불끄는 회로

- 입력이 0이면 출력이 1

- 입력이 1이면 출력이 0

=> 인버터

 

인버터

- 입력과 출력을 반대로 해주는 회로

피드백 회로

- 인버터의 출력이 다시 입력으로 들어감

ex) 출력이 0 -> 입력 0 -> 출력 1 -> 입력 0 -> 출력 1

 

인버터-피드백 회로의 출력 그래프

- 0과 1의 규칙적인 반복

=> 클록 신호

 

오실레이터

- 특정 속도로 클록 신호를 발생시키는 장치

- 크리스털로 만듬

-> 온습도 등 외부 요인에 영향을 적게 받으면서 규칙적인 진동을 내기 때문

- 모든 디지털 장비에는 크리스털 오실레이터가 사용됨

* 디지털 회로에서 오실레이터는 사람의 심장과 같은 역활

* 모든 디지털 장치는 오실레이터의 클록 신호를 기반으로 동작

 

전자석 -> 릴레이 -> 인버터 -> (+피드백 연결) -> 오실레이터

 

릴레이와 트랜지스터

- 릴레이와 npn형 트랜지스터는 똑같이 동작

=> 트랜지스터는 릴레이의 반도체 버전

+ 트랜지스터로 논리 연산가능

AND 게이트

 

OR 게이트

NAND 게이트

 

전자석 -> 릴레이 -> 인버터 -> (+피드백 연결) -> 오실레이터

트랜지스터 -> 논리 게이트

 

R-S 래치

- R(Reset), S(Set)

- Latch : 잠금

=> 논리게이트와 피드백 회로로 회로에 전류가 걸림 -> 데이터 저장

- R-S 래치는 1비트 값 저장하는 디지털 회로

 

R-S 플립 플롭

- R-S 래치는 출력으로 Q와 Q바의 값이 항상 반대여야 함

-> Q와 Q바가 동시에  0이 되는 입력 R, S가 (1,1) 되면 안됨

=> 2개의 AND 게이트 + CLK 신호 사용 => R-S 플립플롭

* R-S 래치를 간략히 추상화하여 표시

R-S 플립 플롭의 진리표

- 입력 R과 S를 전환 할 때 (1,1)이 될 위험이 큼

-> R-S 플립플롭에서 CLK가 0일때만 R-S 신호를 바꾸도록 하면 해결

J-K 플립플롭

- R-S 플립플롭에서 여전히 허용되지 않는 입력 값 상태가 존재

-> 3-입력 AND게이트 활용하여 해결 => J-K 플립플롭

J-K 플립플롭의 진리표와 타이밍 다이어그램

라이징 에지와 폴링 에지

- 오실레이터의 클록 출력은 0과 반복

- 라이징 에지 : 0에서 1로 바뀌는 순간

- 폴링 에지 : 1에서 0으로 바뀌는 순간

 

전자석 -> 릴레이 -> 인버터 -> (+피드백 연결) -> 오실레이터

트랜지스터 -> 논리 게이트 -> R-S 래치 -> R-S 플립플롭 -> J-K 플립플롭

300x250

'컴퓨터과학 > 컴퓨터, OS' 카테고리의 다른 글

가산기~주기억장치  (0) 2020.04.24
메모리~램  (0) 2020.04.23
디지털 ~ 릴레이  (0) 2020.04.23
CPU 추가  (0) 2020.04.20
CPU - CPU개요, 디지털 연산  (0) 2020.04.19
728x90

전체 흐름

 

1. 디지털 - 0, 1과 같은 이분법 체계

2. 이진수로 글자 표현 = 코드

3. 증폭기(트랜지스터) <- 릴레이 <- 먼 거리 전송의 어려움

4. 오실레이터 <- 피드백 회로

5. 논리 게이트 <- 트랜지스터 + 피드백

6. 메모리 <- 플립 플롭 <- 게이트 + 피드백

7. ALU <- 가산기, 뺄셈기, 곱셈기, 나눗셈기 <- 논리 게이트

8. 기계어 <- 제어기 <- CPU = ALU + 레지스터

9. 고급 언어<- 어셈블리어 <- 기계어

 

디지털

- 0(LOW), 1(HIGH)

 

디지털 회로

- 디지털 신호를 사용하는 회로

 

5V 디지털 회로

- 0~1.5V를 0

- 3.5 ~5V를 1

 

간단한 전등 회로

- 전지, 스위치, 전등 구성

- LOW에서 HIGH나 역으로 바뀔때 서서히 변화(실제로는 빠름)

 

코드

 

전등으로 통신하기

- 서로 규칙을 정한 만큼 깜빡임

- wow! 하려고 125번 깜빡이기는 어려움 -> 코드

코드

- 수와 문자를 1:1 연결

 

아스키 코드

- 7비트 인코딩

-> 33개의 출력 불가능한 제어 문자 + 95개의 출력 가능 문자 총 128개

 

코드의 출력

- 아스키 코드 'b'는 십진수로 90

-> 90번 깜빡이긴 힘들다

-> BSD 코드를 사용해 2진수로 표현

 

10진수 2진수 변환

 

BCD 코드

- Binary Coded Decimal

- 2진화 10진 코드(8421코드)

문자 'u' 보내기

- 문자 'u'은 아스키 코드 85

-> 스위치로 0100 0101 보내면 된다.

 

비트

- 이 진수 1자리

 

바이트

- 8자리 2진수

 

데이터

- 비트나 바이트 묶음

 

디지털 데이터 통신

- 디지털 신호로 데이터 전달

 

먼 거리 통신의 문제

- 거리가 멀 수록 저항 상승, 전압은 그대로이므로 전류가 줄어듬(V=IR)

-> 전류 증폭 필요

 

전자석

- 쇠못에 구리 코일 감아 양 끝을 전지로 연결한 것

 

전자석으로 옆 회로 불켜기

- 스위치 A 닫음

-> 전자석 동작 -> 스위치 B가 끌려와 닫김

-> 불 켜짐

=> 릴레이 원리

 

 

릴레이

- 이어달리기에서 유래

- 전자석을 이용한 스위치 회로

 

릴레이로 신호 증폭과 데이터 전달

- 먼거리 통신하는 전자회로 완성

-> 사람의 개입이 필요

-> 이후 전자회로 자동화

300x250

'컴퓨터과학 > 컴퓨터, OS' 카테고리의 다른 글

가산기~주기억장치  (0) 2020.04.24
메모리~램  (0) 2020.04.23
인버터~플립플롭  (0) 2020.04.23
CPU 추가  (0) 2020.04.20
CPU - CPU개요, 디지털 연산  (0) 2020.04.19
728x90

메모리  구조

- 어드레스와 명령/데이터

 

버스

- 어원은 합승 버스(Omnibus)

- 데이터의 통로를 의미함. <- 신호 선을 다발로 묶은 것

- 어드레스 버스 : 주소 전달하는 버스

- 데이터 버스 : 데이터 전달

- 외부 버스 : CPU와 외부 장치를 연결

- 내부 버스 : CPU 내부의 데이터를 전달하는 버스

 

버스와 비트 수

- 버스는 신호 선을 다발로 묶은 것으로 신호 선의 수 = 비트 수

- 64bit CPU는 64 비트의 처리폭을 가진 CPU

 

어드레스 버스 폭

- 어드레스 공간의 크기

- 32비트 라면 4.3G의 어드레스가 있음.

 

명령

- 오퍼랜드와 명령 코드로 구성

- 오퍼랜드 : 연산의 대상

- 명령 : 덧셈, 저장 등

 

레지스터

- CPU 내부의 기억장치

- 어커뮬레이터(누산기) : 계산 결과를 누적

- 범용 레지스터 : 계산 이외 사용

- 명령 레지스터 : 명령(프로그램)을 저장

- 프로그램 카운터 : 다음 실행할 명령의 어드레스를 저장

 

클록

- 일정 주기로 H와 L을 반복하는 신호.

- ALU에서 데이터를 래치하거나 프로그램 카운터를 진행시키는데 클록이 필요.

- 타 기기와 통신시 클록이 일치하지 않으면 타이밍이 맞지 않음.

 

클록 제너레이터

- 클록을 만드는 회로(발진기)

- CPU 내부에 내장되어 있으며 외부 클록 신호를 사용할 수도 있음.

 

타이머 인터럽트

- CPU 내부 감산 카운터를 이용해 카운터가 0이 됬을때 인터럽트를 발생 시키는 기능

- 마스터 클록의 주기 x 0배(프리스케일러) x 세는 횟수(감산 카운터)의 시간마다 인터럽트 신호가 발생

 

명령

- 연산 관련 명령 : 산술 연산 명령, 논리 연산 명령, 시프트 연산 명령

- 연산 이외 명령 : 데이터 전송 명령, 입출력 명령, 분기 명령, 조건 판단

 

스테이터스 레지스터

- CPU 연산 결과에 따라 순서나 입출력을 제어함. 이때 판단의 기준이 플래그(1비트)

- 플래그 자체는 1비트이며 8비트나 16비트로 만든 것이 스테이터스 레지스터

 

플래그

- 제로 플래그 : 어커뮬레이터 연산 결과가 0일때

- 사인 플래그 : 연산 결과가 음수 일때

- 캐리 플래그 : 자리 올림이 발생할때

- GT 플래그 : (greater than) 보다 클때

- LT 플래그 : (less than) 보다 작을때

- 인터럽트 마스크 : 인터럽트를 받을것인지 설정

- 인터럽트 플래그 : 인터럽트가 발생한 것을 나타냄

300x250

'컴퓨터과학 > 컴퓨터, OS' 카테고리의 다른 글

가산기~주기억장치  (0) 2020.04.24
메모리~램  (0) 2020.04.23
인버터~플립플롭  (0) 2020.04.23
디지털 ~ 릴레이  (0) 2020.04.23
CPU - CPU개요, 디지털 연산  (0) 2020.04.19
728x90

1. CPU 개요

CPU

- Central Processing Unit

- 산술 연산과 논리 연산 처리

 

산술 연산

- +/- 연산

 

논리 연산

- AND/OR/NOT 등 연산

 

컴퓨터의 5대 장치

- CPU의 제어/연산 장치

- 나머지로 입력/기억/출력 장치

 

메모리(주기억장치)

- CPU에 연산할 데이터와 프로그램 전달

- CPU는 연산 결과를 메모리에 저장(혹은 레지스터에)

 

ALU

- Arthmetic Logit Unit 산술 논리 장치

디지털과 0,1

- 디지털을 표현하기 위해 0과 1로 나타냄

- CPU 내부 등 전기 신호로 LOW 전압, HIGH 전압 과같이 전기 신호로 이용

 

 

2. 디지털 연산

10진수와 2진수

- 2진수로 10진수 표현 가능

- 1011(2) -> 11(10)

- 4(10) -> 100(2)

 

고정 소수점

- 0.000001

- 12340000.

 

부동 소수점

- 1.23 x 10^2

- 1.23 x 10^-6

 

2진수 뺄샘과 보수

- 보수와 덧셈을 하면 뺀 것과 같음.

- "-15"는 "+(-15)"와 동일함

- "-15"를 다른 숫자로 표현하는 방법이 필요

- B 식의 자리 올림(캐리)를 제외하면 A식과 결과가 동일함

- 위의 경우 15에 대해 85는 100의 보수.

 

보수

- 더하면 자리수가 올라가는 수.

- 뺄셈 = "보수와 덧셈"

 

2진수 뺄셈과 2의 보수

- 캐리를 무시하고 결과 모든 자리가 0이 되는 보수를 2의 보수라 한다.

 

2의 보수 구하는 방법

IC(Integrated Circuit 집적 회로)

- 논리 회로의 모음

- 아래는 예시로 74LS08

논리 회로(Logic Circuit)

- 입력 2개, 1개 출력
- 대표적으로 AND, OR, NOT

- 이 논리 회로/논리 게이트(Logic Gate)들을 조합하여 NAND, NOR, EXOR 등 만듬

 

드모르간의 정리

- AND연산과 OR 연산은 치환 가능

 

반 가산기(Half Adder)

- 덧셈 연산하는 회로

- 1비트(1자리) 끼리 덧셈 가능

- 여러 자리의 덧셈 처리 불가 -> 전가산기

 

전 가산기(Full Adder)

- 총 3개 입력 = 기본 입력 2개 + 캐리 여부(자리 올림) 입력 1개

- 출력 2개 = 합 S와 캐리 C

- 반 가산기 2개와 OR 게이트 1개로 구성

순차 자리 올림 가산기(Ripple Carry Adder)

- 가산기를 이어 여러 자리의 덧셈을 할수 있는 가산 회로

- 가산기 4개를 이으면 4 자릿수 연산 가능

 

래치(Latch)

- 데이터를 유지하는 것

- "1" 상태를 유지 -> 래치

플립 플롭(FF:Flip Flop)

- 값을 기억하는 회로

- 1비트 데이터(0/1)을 기억할 수 있음.

- 대표적인 플립플롭으로 RS 플리플롭, D 플립플롭, T 플립플롭

-> 메모리와 레지스터, 카운터 등도 플립플롭으로 만듬 

 

RS 플립플롭

- R(Reset), S(set)를 입력으로 받는 플립플롭

- S=1 이면 Q=1

- S=0 이면 Q=0

RS 플립플롭 - NAND 게이트

- RS 플립플롭은 NAND 게이트로 구현 가능

- S와 R에 둘다 1을 입력하여 Q와 Q부정이 1이 되선 안됨

 

D 플립플롭

- D(Data)를 의미, C는 Clock(클록)

- 라이징 에지 때 값을 기억하는 플립플롭

클록

- 일정 주기로 0과 1을 반복하는 디지털 신호

- 회로의 동작 상태를 맞추는데 필요

 

상승 에지와 하강 에지

- L->H로 변하는걸 상승 에지(Rising edge)

- H->L로 변하는걸 하강 에지(Falling edge)

D 플립플롭의 동작

T 플립플롭

- T(Toggle)

- 입력이 0->1 또는 1->0이 될때 출력이 바뀌는 플립플롭

카운터 회로

- 이 회로는 하강 에지로 T-FF을 연결하며, 카운트 업 하고 있음.

-Q2, Q1, Q0순으로 2진수를 보면 T 시간에 대한 수를 나타냄.

프로그래밍을 이용한 회로 설계

- 하드웨어 기술 언어(HDL = Hardware Description Language)를 이용하여 회로를 생성 가능

- 논리 회로 기호로 회로를 설계했지만 최근에는 간단한 경우 외에는 사용하지 않음

- 최근에는 FPGA(Field Programmable Gate Array)를 이용해서 개발 함.

 -> 동일한 FPGA를 써도 전혀 다른 IC를 만들 수 있음.

 

 

 

300x250

'컴퓨터과학 > 컴퓨터, OS' 카테고리의 다른 글

가산기~주기억장치  (0) 2020.04.24
메모리~램  (0) 2020.04.23
인버터~플립플롭  (0) 2020.04.23
디지털 ~ 릴레이  (0) 2020.04.23
CPU 추가  (0) 2020.04.20

+ Recent posts