2장 전자회로의 조합논리 - 컴퓨터는 어떤 논리로 비트를 다루는가

이가을·2022년 10월 6일
0

출처들) 한권으로 읽는 컴퓨터 구조와 프로그래밍.
1. 깃헙에 그룹스터디로 책내용 정리하신 분들
2. velog에 책의 내용정리하신 분
3. velog에 책내용 정리하신 다른분
4. 티스토리에 책내용 정리하신 분

이번장에서는 전기분야의 혁신을 이끌어낸 변화에 대해 다룸.
1장에서 비트라고 부르는 2진상자를 현대컴퓨터들이 내부언어로 사용한다는 사실을 배웠다.

비트는 계산에 유용한 형태로 자연스럽게 발견된 것이 아님.
릴레이, 진공관 같은 더 오래되고 단순한 기술과
전기와 집적회로를 사용하는 하드웨어를 통한 현대적인 비트구현과 비교해볼것.

비트에대해 동작하는 장치를 포함해 모든 물리적인 장치를 하드웨어라고 부름.
우리는 조합논리를 구현하는 하드웨어에 대해 살펴볼 것.

1. 디지털 컴퓨터의 사례

근대에는 톱니바퀴를 사용한 기계적 계산장치를 사용.
톱니바퀴를 사용하지 않는 기계식 컴퓨터로는 계산자(slide rule)가 있다.


역사적으로는 계수(숫자를 세는행위)가 계산장치를 활용하는 주된 용도였다.

아날로그와 디지털의 차이

실수를 표현할 수 있기 때문에 아날로그가 계산에 더 적합한가?
	→ 정밀도의 문제가 있음.
	ex) 계산자 눈금에서 1.1은 크고 넓고 분명하기 때문에 쉽게 선택할 수 있음.
		그러나 9.1은? 눈금간격이 좁고 9.1에 해당하는 눈금이 없음.

하드웨어에서 크기가 중요한이유

차로 출퇴근 하는 것처럼 전자또한 컴퓨터안에서 움직임.
컴퓨터에서 전자의 여행시간을 최소화하는 방법은 부품을 가능한 가깝게 위치시키는 것 뿐.
크기가 작으면 필요한 여행거리가 줄어듬. 따라서 필요한 에너지양도 줄어듬.
	→ 저전력소모 열발생 감소!

이런이유 때문에 계산장치의 역사가 하드웨어를 작게만들려는 노력으로 점철되어있다.
but 하드웨어를 아주작게 만들다보니 여러가지 문제점이 생김

디지털을 사용하면 더 안정적인 장치를 만들 수 있다.

하드웨어를 작게만들면 속도와 효율은 좋아짐.
그러나 물체가 너무 작아지면 서로 간섭하기 아주쉬워짐.

1) 외부간섭
	ex) 계량컵을 아주 작게만들었다. 움직이면서 계량컵을 흔들리지 않고 들고 있을 수 있는가?
	
    계량컵과 계산자는 모두 아날로그(연속적)인 장치로 정확하게 값을 읽으려면 흔들림이 없어야함.
	그러나 이산적인 장치는 판정기준이 있어서 간섭받지 않음.
		ex) 검지손가락을 흔들며 이거 몇개? 하더라도 손가락이 여러개가 되진 않는다. 
	판정기준이 명확하므로 손가락으로 숫자를 셀때는 ‘중간’값이 없다.  
	검지(2)와 중지(3)사이에 2.2가 있진 않다.
	
    계산자를 개량해 정수위치에서만 멈추도록 한다면, 계산자는 이산적인 장치가 되어버림.
	결과적으로 판정기준을 도입하면 값과 값사이의 범위값을 표현할 수 있는 가능성이 사라짐.
	(실수를 다룰 수 있는 능력이 사라짐)
	수학적으로 이는 숫자를 가장 가까운 정수로 반올림하는 것과 비슷.

2) 내부간섭
	간섭에는 좀 더 은밀한 내부적인 근원이 존재
	
    긍정적 영향
		전자기력은 멀리떨어진 물체에 영향을 끼칠 수 있다.
		ex) 라디오 전파.
	
    부정적 영향 
		칩안에서 선을 통하는 신호가 다른선에 영향을 끼칠 수 있음.
	
    	거리가 가까울수록 영향이 커침.
		현대 CPU에서 신호간섭은 도로에서 마주보는 두차가 서로 스쳐지나갈때 느껴지는 바람같다.
		이를 누화효과라고 함.(crosstalk)
	
    	이를 방지할 적절한 방법이 없으므로 더 높은 판정기준을 통해 잡음내성을 갖는 
        디지털 회로를 사용하는 것이 필수적.(간섭을 잡음으로도 표현을 한다고 가정하자.)
		
        선과 선사이를 멀리떨어뜨리려면 장치의 크기가 커지므로 논외로 하자.
		판정기준이라는 장애물을 뛰어넘기위해 추가로 에너지가 필요하므로
		연속적인 장치를 사용할때는 얻을 수 없는 일정수준의 잡음내성을 얻을 수 있다.			

		내생각) 판정기준이 가벽같은 역할을 하나봄.
		
        실제로 판정기준을 도입해 생기는 안정성이 우리가 디지털(이산적)컴퓨터를 만드는 주된이유.

아날로그 세계에서 디지털 만들기

세상은 보통 아날로그인(연속적인)장소다. (너무작아서 양자역학이 적용되는 것들을 피하면)
아날로그 세계를 어떻게 조작하여 안정적인 계산장치를 만드는데 필요한
디지털적 동작을 얻어낼 수 있는지 살펴보자.

전이함수
	수학시간에 배운 함수와 같으나
	실제세계에서 벌어지는 현상을 표현한다는 것이 다름
		ex) 카메라 센서나 필름의 전이함수

	엔지니어들은 전이함수를 활용하는 온갖 트릭을 만들어옴. 
	카메라의 셔터속도, 조리개를 조절하는 장치를 만듬.
	우리가 사용하는 이어폰이나 스피커를 구동하는 증폭회로도 이런 트릭에 속함.

    입력이 조금만 변해도 곡선의 가파른 부분때문에 출력이 확 달라진다. 
	이때 판정기준을 **문턱값**이라고 부른다.
    
    출력값이 문턱값의 한쪽에서 반대쪽으로 옮겨가고 
	중간정도의 출력값이 나오기 어렵기 때문에,
	이런 왜곡이 유용하다.
	이 현상은 연속적인 공간을 이산적인 영역으로 나눠준다.

	이로부터 우리는 안정성과 잡음내성(간섭이 있어도 제대로 작동할 수 있는 능력)을 얻을 수 있다.
	아날로그는 가능한 선형영역을 크게 만들기 위해 노력하는것.
	디지털은 직선부를 가능하면 크게 만드는 것.
    

+10/07추가

10진 숫자대신 비트를 사용하는 이유

	2진수가 10진수보다 100배이상 효율이 좋다.
    그리고 10진수를 사용하면 전의 함수로 각기 다른 10가지 문턱값을 구분하기 어렵다.
    

전기 엔지니어들은 하단부 영역을 차단이라 부르고
상단부 영역을 포화라고 부른다.

비트를 사용하면 재량권이 아주 커진다. 
전이 함수가 아주 가파르기 때문에 출력이 한값에서 다른값으로 아주 급하게 바뀌기 때문.

2. 간단한 전기이론 가이드

컴퓨터 하드웨어에서 전기를 사용하는 방법을 이해하기위해
전기에 대해 먼저 알아보자.

전기는 수도배관과 유사하다

전기는 눈에 보이지 않으므로 생각하기 쉽도록 물로 생각을 해보자.
	물이 물탱크에서 나오는것처럼 
	    → 전기는 배터리 같은 에너지 근원에서 나온다.
	물탱크가 텅 비면 물을 채워야 하는것처럼 
	    → 배터리에너지 고갈시 충전을 해야한다.

파이프와 밸브를 사용해 AND연산을 수행하는 모습

파이프와 밸브를 이용해 OR연산을 하는 모습

여기는 용어 정리

전파지연(propagation delay)

물이 파이프를 흘러서 전달되는데 시간이 걸리는 것 처럼,
	ex) 따뜻한 물이 튼다고 바로 나오지 않는것처럼.(보일러에서 오는 시간 걸림)
전기가 컴퓨터 칩 내부에서 전파되는 데도 시간이 걸림. 
이를 전파지연이라고 부름.
이런 지연은 상수가 아님.(즉 변함)
  	물의 경우 온도 변화가 파이프를 확장 혹은 수축시키므로 
  	물의 흐름이 달라지며 지연시간도 차이가 남. 

전기선은 두 부분으로 구성된다.

도체

내부에 있는 유동성이 있는 전자가 가득한 금속을 말함. ex) 구리선. 물이라면 파이프 내부

부도체

금속 바깥쪽을 둘러싼 부분. ex)검정색 고무. 물이라면 파이프 자체.

스위치

전기의 흐름을 제어할 수 있는 밸브. (물의 흐름도 밸브로 제어하는 예시를 보라)

전압

물은 배관 파이프속을 압력에 의해 밀려 움직인다. 압력의 세기는 달라질 수 있다.
마찬가지로 전기에서 수압해 해당하는 존재가 전압.

볼트(V)

전압의 측정단위

전류(I)

전기 흐름의 양.

암페어(A)

전류의 측정단위

저항(R)

물은 관이 가늘수록 관을 통해 흐를 수 있는 물의 양을 제한하는 저항이 더 커짐.
전기도 전압이 더 높더라도 너무가는 도체(관)을 사용하면,
	저항이 아주 커지고 이로인해 전류가 커지지 못함.
저항은 전기를 열로 바꿈. 이로인해 토스터,전기담요 같은 전열기구가 작동함.

옴(Ω)

저항의 측정단위

옴의법칙

세가지 변수 (전압,전류,저항)를 통해 I(전류)=V(전압)/R(저항)이라는 관계로 서로 이어짐.
전류는 전압을 저항으로 나눈값과 같다. 
	저항이 크면 전류가 줄어든다.

전기 스위치

회로- 110p에서 다시나옴

전기시스템을 부르는 말.
에너지 근원에서 나온 전기는 회로 구성요소를 지나 다시 근원으로 돌아감.
    다시 돌아가므로 회로(circuit,써킷)라고 부른다. 
스키매틱을 통해 문서화 함.

스키매틱

계통도 혹은 회로도. 각 구성요소를 기호로 표현함

화살표가 위로 들어올려지면 전기가 반대쪽으로 이동할 수 없음. ex)도개교

극(pole)

한꺼번에 연결되어 이동하는 스위치의 수. 
앞에서 봤던 수도관 밸브들은 모두 단극이었음.
밸브 두쌍의 손잡이를 땜질해서 
두 손잡이가 함께움직이면 쌍극(double-pole)으로 만들 수 있음.

단투(single throw)

점점이 하나뿐이라는 뜻.
따라서 유일한 접점을 연결하거나 끊을 수만 있다.
단투 스위치로는 한쪽은 켜고 반대쪽은 끄는 역할을 할 수는 없다.
단극쌍투 스위치는 가능.
좀 더 쉽게 이해하기 위해 수도관과 철길을 예시로 들면,

두 선로 중 한쪽으로 기차를 연결해주는 선로, 
두 파이프 중 한쪽으로 흐름을 연결해주는 배관과 같음.
                             


원하는 개수만큼 극이나 접점을 사용해 스위치 관련 용어를 확장할 수 있음.

ex) 쌍극상투

간단한 전기회로를 살펴보자

이런 회로를 만들면 스위치를 통해 전구를 켜거나 끌 수 있다.
    전기는 스위치가 열려있으면,
	    흐르지 못한다.
    스위치가 닫혀있으면,
		전류가 전원에서 나와 스위치를 통과한다음 전구를 흐르고 다시 전원으로 돌아간다.

이제 전기에 대해 조금 배웠고 기본적인 회로 요소도 살펴보았다.
    이런 요소를 가지고 단순논리 기능을 만들 수 있지만, 
	복잡한 기능을 수행할 만큼 강력하지 못함.
    

(+10/11 추가)

3. 비트를 처리하기 위한 하드웨어

비트를 다루는 하드웨어를 만드는 방법을 배울때다.
역사적인 기술을 먼저설명하며 현대적인 전자적 구현기술을 알아볼 것이다.

릴레이

릴레이(==계전기)는 스위치를 움직이기 위해 전자석을 사용하는 장치이다.

전기와 자기 사이에는 편리한 관계가 있다.
선을 둥글게 감아서 코일로 만들고 전기를 흘려보내면 코일이 전자석이 되며 자기를 얻는다.
	ex) 선으로 만든 코일 주변에서 자석을 움직이면 전기가 발생하는데, 
	    발전기가 이런식으로 작동. 우리가 사용하는 전기의 대부분은 이런 원리로 얻어진다.
이는 끄고 켤 수 있는 특성을 가지는데, 이를 통해 물건을 움직일 때 이를 활용할 수 있다.
	ex) 전자석을 사용해 수도 밸브를 제어 할 수 있다.
  		자동 스프링클러 시스템이나 자기부상열차 등에도 사용된다.



이러한 특성을 활용하는 릴레이를 사용하면 스위치로는 불가능한 일을 할 수 있다.
	ex) NOT함수를 구현하는 인버터를 만들 수 있다. (인버터 (NOT을 수행하는 게이트))
    
위쪽 AND회로에서 나온 출력을 아래쪽 OR회로의 입력 중 하나를 구동하기 위해
연결 할 수 있다. 

이런 능력 활용시 스위치가 다른 스위치를 제어하게 만들 수 있고,
이에 따라 컴퓨터에 필요한 복잡한 논리를 만들 수 있다.

하지만 릴레이는 느리고 전기를 많이 소모하며, 
먼지 / 벌레가 접점에 있다면 정상적으로 작동하지 않는다.
	ex) 미국 컴퓨터과학자가 오류를 추적하다가 릴레이에 낀 나방을 발견하면서 
  		버그(BUG)라는 단어가 유명해졌다는 일화가 있다.

진공관

물체를 충분히 가열하면 전자가 튀어나오는 열전자 방출이라는 현상을 기반으로
진공관이 만들어짐.

진공관의 구성요소 

- 캐소드 : 전자가 흘러나오는 장소. 진공관 내에서 ‘투수’역할을 함.
- 히터 : 캐소드를 가열하여 열전자 방출할 수 있게함
- 애노드 : 전자가 흘러들어가는 장소.  진공관 내에서 ‘포수’역할을 함.
- 그리드 : 전자를 쫒아내 애노드에 도착하지 못하도록 함. ‘타자’역할.
		  스위치 손잡이로 생각 할 수 있음.


위 세 요소가 모두 들어있는 진공관을 삼극관(==트라이오드) 라 부른다.
장점 :  움직이는 부분이 없어서 릴레이보다 훨씬 더 빠름
단점 : 전구와 마찬가지로 아주 뜨겁고 깨지기 쉽다.

트랜지스터

전송저항(transfer resistor)의 줄임말. → 트랜지스터(transistor)

진공관과 비슷하지만 반도체라는 특별한 물질을 사용한다.
	반도체는 도체와 부도체를 오갈 수 있는 물질.

반도체 물질로 이루어진 기판 또는 슬랩위에 만들어짐.
개별적으로 생산 되지 않고, 
	트랜지스터 그림을 실리콘 웨이퍼(얇은 판) 위에 투영해서 현상하는 
	광식각(사진석판기술)이라는 과정을 통해 만들어진다. => 대량생산에 적합

제조공정에는 비소처럼 위험한 물질을 기판 물질의 성질을 변화시키기 위해 
	기판 위에 얇게 분사하는 도핑 과정이 들어간다. 
	도핑은 p와 n 유형의 물질으로 이뤄진 영역을 만들어낸다. 
	트랜지스터를 만들려면 p와 n의 샌드위치를 만들어야 한다.
	NPN, PNP, N, P채널이라는 용어는 샌드위치 구성 방법을 뜻한다.

트랜지스터에는 여러 유형이 있지만 가장 중요한 두가지 유형은 
	쌍극 접합 트랜지스터(BJT) 와
	필드효과 트랜지스터(FET)가 있음.

	금속산화물 반도체 전계효과 트랜지스터(MOSFET)는 FET의 일종.
		전력소모가 적기때문에 현대 컴퓨터 칩에서 가장널리 쓰이고 있음.
		n채널과 p채널 MOSFET를 서로 보완하도록 
			한쌍으로 묶어서 사용하는 경우가 많은데 이로부터 CMOS라는 말이 나옴.

	트랜지스터를 사용하면서 더 작고, 빠르고, 신뢰할 수 있으며 전력도 적게 소모하는 
	논리회로를 만들 수 있게 됐다.

트랜지스터도 완벽하지는 않음.

	아주 작게 만들 수 있지만 도체가 가늘고 얇아지면 저항이 늘어 열이 발생함.
	반도체는 쉽게 녹을 수 있어 열을 제거하는 일은 아주 중요한 문제.
	+ AND함수같은 간단한 회로를 만들 떄 조차 부품이 너무 많이 필요함.

집적회로

집적회로(IC) 는 복잡한 시스템을 트랜지스터 하나를 만드는 정도의 비용으로 만들 수 있다.
집적 회로는 생긴 모양 때문에 칩이라고도 불린다.

트랜지스터의 단점을 보완하여 복잡한 시스템을 적은 비용으로 만들 수 있게됨.

다음절에서는 조합논리를 위해 만들어진 IC(집적회로)회로 설계에 대해 설명한다.
	조합논리 : 특정시점의 출력이 해당시점의 입력 조합만으로 결정되는 논리.
              즉 내부상태(메모리)가 없어서 입력만 보면 어떤값이 나올지 알 수 있는 논리

(+10/12 추가)

4. 논리게이트

1960년대 중반에 논리 연산을 수행하는 회로(논리 게이트)가 내장된 
5400과 7400 집적 회로(IC) 패밀리가 발표되었다. 
	이 칩들에는 논리연산을 수행하는 회로가 미리 들어가있다.
	이런 회로를 논리게이트라고 부르며 그냥 게이트라고도 한다.

AND나 OR게이트가 가장 효율적인 게이트는 아니다.
	트랜지스터-트랜지스터 논리(TTL), CMOS등 논리게이트에서 가장 단순한 회로는
	NAND(not and) 나 NOR(not or)이다. 
		NAND나 NOR은 트랜지스터를 2개(TTL)나 4개(CMOS)사용한다. 

NAND와 NOR의 두입력을 같은 입력에 연결하면 인버터를 만들 수 있다.
	a NAND a나 a NOR a는 NOT a와 같다.

여기서 NAND로 만든 인버터를 사용해 입력을 반전시키면 OR을 만들수 있다.

이력 현상을 활용한 잡음 내성 향상

앞에서 디지털(이산적인)장치를 사용하면 판정기준에 의해 잡음내성을 얻을 수 있다는 사실을 배웠다. 
	논리신호가 0에서 1로 순간적으로 바뀌고, 
	1에서 0으로도 순간적으로 바뀐다고 생각하기 쉽다.

	하지만 실제 현실에서 사용중인 신호 중에는 천천히 변하는 신호가 많다.
	천천히 변하는 신호가 있으면 어떤일이 일어나는지 보자.

이런 글리치를 이력현상을 사용해 방지할 수 있다.
	이력현상이란 판정기준이 이력(과거에 벌어진 일)에 따라 달라진다는 뜻.

	이렇게 하면 올라가는 신호와 내려가는 신호에 대해 각기 다른 문턱값이 생긴다.
	이 말은 입력신호가 두 문턱값 중 하나를 넘어간 경우,
		반대쪽 문턱값을 지나가며 출력이 반전되려면 값이 상당히 변해야 한다는 뜻.
		따라서 잡음 내성이 더 커진다.

이력을 사용하는 슈미트 트리거 게이트가 있다. 
	일반적인 게이트보다 더 복잡하고 비싸기 때문에 정말 필요한 경우에만 사용한다.

차동 신호

잡음이 많아서 이력을 도입해도 충분하지 못한 경우 차동신호를 사용할 수 있다.
차동신호란 측정하는 값이 서로 반전관계인 신호 쌍의 차이를 측정하여 전송하는 방법.
즉 한개의 단자로는 알 수 없음.
	두개의 단자를 이용, 두 신호의 차이를 측정하여 정확한 신호값을 알아내는 방법.
	
ex) (10V, 5V) or (7V , 2V)
	두 값의 차이가 둘다 5V이다. 차등신호에 잡음이 섞였다고 가정하자.
	(10V, 5V)신호에 잡음이 2V만큼 섞였을 때,
		(12V, 7V)가 되고 이 때 두 신호의 차이를 측정하면 5V이기 때문에
		잡음이 생겨도 측정가능한 상태가 된다

물론 잡음이 너무 많으면 전기부품들이 자신의 정격 작동범위를 넘어갈 수도 있다.
공통모드 판별비 (CMRR): 부품정격 중 하나로 처리 가능한 잡음의 양을 표시한다.
	‘공통모드’ 라고 부르는 이유는
	서로반전관계인 두 신호에서 공통인 잡음을 가리키기 때문이다.

드라이버 : 입력신호를 반전관계 출력들(complementary outputs)로 변환하는 역할	
리시버 : 반전관계인 두 입력을 받아서 단일신호를 만들어줌.

전화선 등 여러곳에서 차동 신호를 사용한다.
	- 연선 케이블링(twisted-pair cabling) : 한쌍의 선을 서로 꼬아서 전기적으로 
                                     잡음내성 을 강하게 만듬. → USB, SATA, 이더넷 케이블

전파 지연(propagation delay)

입력의 변화가 출력에 영향을 미칠 때까지 걸리는 시간을 뜻한다. 
게이트에는 최대 지연과 최소 지연이 있고 실제 지연은 이 사이의 값이다. 
전파 지연은 논리 회로의 최대 속도를 제한하는 요소 중 하나이기 때문에 
	최악의 경우에 해당하는 지연 시간을 가정하고 회로를 설계한다.

PLH은 0(low)에서 1(high)로 갈 경우 걸리는 지연시간 (propagation delay time from low to high)
	-책에는 0이 high 고 1은 low라고 해서 확인필요
반대는 PHL이다.
그래서 지연시간은 아래 그림으로 표시 

출력유형

전기 회로는 음극에 연결되면 그 전압을 0으로 보고, 
양극과 음극 사이의 상대적인 전압 차이를 전압으로 본다.

토템폴 출력

- 일반적인 게이트 출력
- 트랜지스터가 세로로 나란히 늘어서 있음.
- 토템폴 출력은 서로 연결할 수 없음.(0인 출력을 1인출력과 연결하면 부품이 타버림)

오픈컬렉터 출력

오픈 컬렉터(BJT 트랜지스터) / 오픈 드레인(MOS 트랜지스터) 출력이 있다.
- 하나의 트랜지스터로 이루어짐. 
- 출력 중 0인값이 하나라도 있으면 전체출력은 0 / 출력이 모두 논리 1일때만 전체출력이 1
- 출력이 1이면 출력은 떠있는 상태(float)이며 출력값은 알 수 없음.
- 출력을 서로 연결할 수 있지만 액티브풀업 사용하는 것 보다 응답이 빠르지 않음.
		액티브풀업: 출력1을 얻기 위해, 출력과 높은 논리값 1을 연결

트라이스테이트 출력

3가지 상태 보유 (0 / 1 / 꺼짐)
	베이스를 제어하면 0, 1, hi-Z(임피던스:저항), 멜트다운(녹아버림) 4가지 상태를 얻을 수 있다.
출력을 켜고 끄기 위한 추가 입력인 활성화 입력 존재
다수의 장치를 선으로 직접 연결할 수 있으나, 단 하나의 장치만 활성화 가능

(+10/13일추가)

5. 게이트를 조합한 복잡한 회로

가산기(덧셈 기계)

2의 보수 가산기(덧셈기계)를 만들어보자. 
논리를 영리하게 조작할 경우 성능을 얼마나 향상할 수 있는지 볼 수 있다.
1장에서 두 비트를 더한 값은 각 비트의 XOR이고,
	두 비트의 AND라는 사실을 배웠다. 
	이를 게이트로 구현한것이 아래그림이다.

반가산기

그림에서 더한 값을 계산하는 XOR게이트와, 올림을 계산하는 AND게이트를 볼 수 있다.
이것을 반가산기(half adder)라고 부른다.  무언가 빠진 부분이 있어 반가산기라 함.
	두 비트를 더할때는 반가산기만으로도 충분하지만, 
	(다른 자리에서 올라오는) 올림을 처리하려면 세번째 입력이 필요하다.
	세 입력 중 2개이상이 1일때 올림이 발생한다. 

전가산기(full-adder)

반가산기의 올림을 처리하기 위해 생겨남.

위의 표를 바탕으로 전가산기 회로를 구성하면 
반가산기 2개를 사용할 때보다 시간지연이 적은, 더 나은 회로를 만들 수 있다.

아래 그림은 리플 자리올림 가산기 
자리올림이 아래쪽 비트로부터 바로 위쪽 비트로 
물결이 퍼져나가는 것처럼 전달되어 붙은 이름. 
	- 단점:
		- 비트를 하나 처리할때마다 게이트 2개에 해당하는 출력시간지연 발생
		- 비트수가 늘어날 수록 지연시간의 합이 커짐

올림 예측 가산기

모든 자리 올림수 출력은 예측논리에 따라 한번에 계산된다.

이를 이용해 의존관계를 줄여 지연을 없앨 수 있다. 
	(앞자리 계산 하는동안 뒷자리도 예측을 통해 계산할 수 있기때문)
	- AND/OR연산이 많아지지만 전파지연이 최대 2게이트에 해당한다.
	- Cn 은 A와 B의 입력에 따라 결정된다.
	- 올림 계산이 비트 개수에 따라 달라지지 않고,
	  덧셈에 걸리는 시간이 일정수준으로 고정됨.

디코더

디코더는 인코딩 된 수를 개별 비트의 집합으로 만들어줌.

닉시튜브

- 각기 다른 숫자를 표시하는 네온 사인의 모음
- 4비트 2진수를 10가지 각기 다른 출력으로 만들 수 있다.
이를 이용해 만든 닉시시계
https://www.youtube.com/watch?v=wBytSe8GcVc

3:8 디코더

8진표현은 각기다른 8가지 값을 가져다가 3비트로 인코딩한다.
이 디코더는 입력이 3개 출력이 8개이므로 3:8  디코더

디멀티플렉서(디먹스라고 줄여서도 부름)

디코더에 몇가지 게이트를 추가해 만들 수 있음
입력을 디코더 입력에 따라 네가지 출력 중 하나로 전달.

실렉터(selector, 멀티플렉서 → 먹스라고도 부름)

여러 입력 중 한 입력을 선택함.(select)
디코더에 게이트를 추가해 만들 수 있음.

여러 입력중 고르는 것이므로 디멀티플랙스의 스키매틱과 반대

다이얼이 있고 눈금에 꺼짐/토스트/베이크/브로일 이라는 기호가 들어있는
	토스터 오븐도 이런원리

여기에 사용된 논리는 아래 표와 같다.

4:1 실렉터를 2개 연동한다면 이 논리를 구현할 수 있다.

profile
나는야 코린이

0개의 댓글