2022. 3. 2. 23:13ㆍCS
-컴퓨터는 비트를 어떻게 기억하는가
- 순 서 -
- 발진자
- 시간 측정
- 클록
- 시간을 셀 수있게 해주는 신호
- 래치
- 정보를(1비트) 기억할 방법
- 게이트가 있는 래치
- 어느 시점에 무언가를 기억하는 방법
- 플립플롭
- 에지( edge / 전이 )에 의해 변화가 촉발되는 래치
- 카운터
- 플립플롭을 응용한 회로 중에서 1,2,3 순서대로 수를 세는것
- 레지스터
- 클록을 공유하는 여러 D플립플롭을 한 패키지에 넣은 것
컴퓨터는 비트를 어떻게 기억하는가
논리 회로
조합논리회로(2장) | 순차논리회로(3장) | ||||||
공통점 | AND, OR등의 게이트들이 서로 연결해서 구현 | ||||||
차이점 | 출력값이 입력 신호에만 의존 출력 값 = 입력 값 |
내부 상태에도 의존 출력 값 = 입력 값 + 상태 값 |
|||||
출력값 | 입력의 변화가 바로 출력에 반영된다. 즉, 어떤 시점에서든지 출력이 입력의 조합 논리로만 결정된다. |
순차 논리회로는 상태값을 저장해두고 그 상태값이 다시 입력으로 들어가서 다음 상태값과 출력에 반영된다. 즉, 입력을 주더라도 현재의 상태값(메모리에 저장된 값)이 함께 출력에 영향을 미친다. |
|||||
예 | 가산기 (전가산기, 반가산기), 인코더, 디코더, 멀티플렉서, 실렉터 | 래치, 플립플롭, 카운터, 레지스터 |
순차논리회로
래치 | 플립플롭(D플립플롭) | ||||
공통점 | 어떤 신호가 회로에 공급되어 흐르다가 신호가 끊어지게 되면 그 신호를 잃게 되는데 래치와 플립플롭은 그 신호를 계속 유지한다. 즉, 신호가 ON되었을 때만 동작하도록 설계한다. |
||||
차이점 | 클럭신호 없음 | 클럭신호 있음 | |||
플립플롭이 클럭 신호를 사용하는 이유는 입력 신호의 동기화를 위한 것이다. 래치와 플립플롭은 순차논리회로 기억소자에 해당한다. 즉, 1비트의 신호를 저장 하는 기능이 있는 소자이다. |
3. 래치
SR래치 (set-reset / 설정-재설정)
정보를 1비트 기억할 방법
SR래치는 NOR게이트 두개로 만든다.
1). 먼저 NOR 게이트를 알아보자
(쓸모없는~17장 유툽강의 1:45)
NOR게이트 -출처: https://www.pngwing.com/ko/free-png-hvrfuq와 q바는 상보관계, 서로 값이 반대
SR래치는 교차 연결된 NOR논리 게이트 2개로 구성된다.
(뽕교수의 전자공학 유투브- 흐름 해석 8:37)
NOR 게이트 한비트가 1이면 출력은 무조건 0이다. 0과 0은 1출력. / 입력값 1부터 해석한다. 07:53 |
||
A | B | C |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
NAND게이트는 반대로 한비트가 0이면 출력은 무조건 1이고, 입력값이 1있으면 나머지 입력 값에 따라 결과가 바뀐다. 0 + 0 = 1 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 |
2). SR래치 특성표
(쓸모없는~17장 유툽강의 4:15)
하드웨어 기호 위에 선을 그으면 반전(opposite)을 뜻한다. 상보관계라고 하는데 서로 값이 반대된다.
특성표 NOR, NAND
SET | RESET | 출력 | 큐바 ( 출력의 반대 ) | |
S | R | Q | ||
1 | 0 | 0 | q | q |
2 | 0 | 1 Reset 재설정 | 0 | 1 |
3 | 1 Set 설정 | 0 | 1 | 0 |
4 | 1 | 1 | X 금지된 입력 | |
---------------------------------------------- 위 숫자 해석 ------------------------------------------------------- 1. 셋도 하지말고 리셋도 하지마라 그러면 과거 값에 머무른다. ( q ) 2. 리셋이 1이면 출력은 리셋 0 | 큐바는 반대인 1 이 된다. 3. 셋이 1이면 출력은 1 | 큐바는 0. 1. 셋도 하고 리셋도 해라 모순 금지된 입력 |
||||
q 소문자 큐 : 직전상태(과거 값 보존) / Q 대문자 큐 : 현재상태 2개의 출력 Q와 Q바는 상보관계, 서로 값이 반대된다. 액티브하이, 1, 참, 활성 액티브로우, 0, 거짓, 비활성 |
4. 게이트가 있는 래치
1). 게이트가 있는 SR래치
어느 시점에 무언가를 기억하는 것.
하나의 입력(Clk)으로 q값을 컨드롤 컨트롤 한다. (참고 유투브 쓸모없는 13:28)
어떤 상황에서도 reset이나 set이 되게 하고 그 상황이 아니면 과거 값을 가지고 있는다.
and게이트 두개를 기존 SR래치의 NOR게이트에 추가한다. (유툽-쓸모없는 17강- 16:20)
게이트가 있는 SR래치동작 원리
1번 동작 원리
- 게이트가 1이어야 작동한다.
- Set이 1이면 Reset은0, Set이 0이면 Reset은1 (왜냐, q와 q바는 상보 관계, 서로 반대되는 값을 가졌기 떄문)
- AND게이트는 입력 두개가 1되야 출력이 1이 된다.
- SR래치의 NOR게이트는 입력 두개중 하나라도 1이면 0으로 출력 된다.
- SR래치의 NOR게이트는 출력된 상태값이 다시 입력으로 돌아간다.
- SR래치의 NOR게이트는 0과0이 만나면 1이 출력된다.
출처: 유투브쓸모없는 17:45
2번 동작 원리
- 게이트가 0으로 바뀌어도 기존에 set의 값은 남아있다. 왜냐 그것이 래치의 기능이다.
- 이 상태에서 Reset을 1로 바꾸어도 아무것도 동작하지 않는다.
그럼 Reset이 1로 바뀌면?
그럼 Reset의 값이 출력되려면?
2). 게이트가 있는 D래치
1비트 정보를 유지하기 위해 인버터를 추가해서 입력을 1비트만 받게 만든다.
(유투브 쓸모없는 - 19:04)
인버터 기호는 다른 논리 게이트와 별도로 독립적으로 사용할 때 쓰인다. (116p)
부정나타내는 not게이트(인버터) 연결하면 리셋은 항상 반대가 된다.
★★★(동작설명 유툽 쓸모없는-17강-20:15)
유툽-쓸모없는~17강-20:15 -게이트가 있는 D래치D래치는 결국 SR래치를 싱글인풋으로 바꾸고 거기다 enable기능을 추가한다. 유툽쓸모없는-21:24
5. 플립플롭
D플립플롭을 알려면 D래치를 알아야하고 D래치를 알려면 SR래치를 알아야한다.
D는 데이터(data) 또는 delay로 알려져 있다.
유툽쓸모없는- 21:35
★★★동작설명 유툽쓸모없는-17강- 23:47
m-메모리, D래치, D플립플롭
* D래치와 플립플롭의 차이-클록 24:35
* 상승 에지 rising edge & 하강 에지 falling edge
라이징 엣지, 클록에지(113p / 유툽쓸모없는 17강 25:30 + 26:28)
*책 114p 그림 설명
엣지트리거과 플립플롭 27:45
래치,29:00
플립프롭 30:48
32:23
스파이크신호 33:50
6. 카운터
미리 정해진 상태천이 순서를 순환하면서 클럽 펄스의 수를 계수하는 소자(장치)
7. 레지스터
레지스터는 값을 기억하기 위해 클록을 공유하는 여러 D 플립플롭을 한 패키지에 넣은 것이다.
우리는 지금까지 1비트의 신호 저장 방법을 알아보았다.
우리가 쓰는건 8비트 컴퓨터이고 1비트를 한 패키지에 넣어 8비트 컴퓨터를 만든다. 이 8비트는 1바이트 이고 1바이트에 메모리에 출력 차단하거나 흘려보내는 메모리 기능을 추가하면 레지스터가 된다.
유투브 로우레벨 코더님의 쓸모없는 CPU만들기 -2강 -레지스터 만들어봤자 무쓸모를 보는것을 추천한다.
https://www.youtube.com/watch?v=t-CtCfYfZ1k
1비트 메모리 유튭무쓸CPU만들기 -2강 - 09:31
1. 1바이트
1비트가 8개모여 8비트가 된다. (유튭무쓸CPU만들기 -2강 -시뮬레이션 15:17)
★★★8비트메모리 = 1바이트메모리 (유튭무쓸CPU만들기 -2강-15:50 레지스터)
1바이트 메모리에 출력 차단하거나 흘려보내는 메모리 기능을 추가하면 레지스터가 된다.
출처: 유투브쓸모없는-2강- 8비트메모리 시뮬레이션 15:17
8비트 레지스터
1. 레지스터
8비트 레지스터에 enabler를 더하면 레지스터가 완성된다.
1) 8비트 메모리에 AND게이트를 8개를 추가한다. 17:26
2) (AND게이트로만 설명) 한쪽 비트에 8비트 메모리 출력을 받고, 나머지 입력은 하나로 연결함 19:30
★★★3) 1)번과 2)번을 한장에 (유투브쓸모없는-2강-20:45)
Enabler인에이블러: 메모리에 출력을 차단하거나 흘려보낸다. (유투브쓸모없는-2강-23:00)
23:00
8비트 레지스터에 인에이블러를 붙인다. 23:39
레지스터 완성 24:12
8비트 레지스터 + 인에이블러
★★★레지스터 시뮬레이션 24:16
1). Set을 켠다.
1. 먼저 값이 바뀜2). Set을 끄고 Enabler를 켜면 출력값으로 나옴 24:43
2. 출력값이 나옴
** 소킷외형바꿈. 시뮬레이션 28:23
소킷외형바꿈. 시뮬레이션 28:23정리
레지스터
CPU의 내부에 존재하는 고속 메모리로 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 공간이다. CPU 처리를 위해 데이터를 레지스터라는 기억 공간에 저장해두었다가 CPU에서 처리를 하고 해당 결과값 역시 레지스터에 저장하게 된다. 레지스터는 공간은 작지만 CPU와 직접 연결되어 연산 속도가 메모리보다 훨씬 빠르다.
CPU
CPU의 정의
CPU는 Central Processing Unit의 약자로 “중앙 연산처리 장치”를 일컫는다.
각종 계산이 나 디바이스(장치)들을 제어하는 역할을 맡고 있는 컴퓨터의 가장 핵심이 되는 부품이다.
CPU의 성능, 곧 처리 속도를 나타내는 단위로는 Clock Signal(클럭 주파수)를 가장 많이 사용하고 있으며,
이는 CPU가 1초 동안 실행할 수 있는 명령어의 수를 나타낸다.
참고
*유투브-쓸모없는 CPU만들기 17장 - 래치와 플립플롭의 차이
https://www.youtube.com/watch?v=t4NDlTGD-PU
*레지스터
https://www.youtube.com/watch?v=t-CtCfYfZ1k
*유튜브-뽕교수의 전자공학-11.2 SR래치, 특성표, 특성식~
https://www.youtube.com/watch?v=iQuxA1dDdMU
*유튜브-뽕교수의 전자공학-12.1 계수기, 정의, 동기식과 비동기식----카운터 참고함
https://www.youtube.com/watch?v=XKel----57I
*조합 & 순차 논리 회로
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kookh1&logNo=120187938416
*래치와 플립플롭
https://treeroad.tistory.com/entry/래치와-플립-플롭
*카운터
카운터 - Counter : 네이버 블로그 (naver.com)
*플립플롭
플립플롭 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)
*레지스터
*CPU
'CS' 카테고리의 다른 글
CS : 입출력과 네트워킹 ( ~ 아날로그를 디지털로 변환) (0) | 2022.03.02 |
---|---|
CS : 컴퓨터 아키텍처와 운영체제: 메모리 계층과 성능, 코프로세서 (0) | 2022.03.02 |
CS : 디지털 컴퓨터의 사례 (0) | 2022.03.02 |
CS : 정수를 비트로 표현하는 방법 (0) | 2022.03.02 |
CS : 병렬성과 비동기성 (0) | 2022.02.21 |