비트
- 2진법 사용
논리연산
- 다른 비트들이 표현하는 내용으로부터 새로운 비트를 만들어내는 동작
ex. 밖에 비가 내리거나 춥다면 코트를 입어라
불리언 대수 Boolean algebra
- 비트에 대해 사용할 수 있는 연산 규칙의 집합
- 기본적인 불리언 연산자 : NOT, AND, OR
- XOR : 첫 번째 비트와 두 번째 비트가 다른 값인 경우에만 참
드모르간의 법칙 De Morgan's law
a AND b = NOT(NOT a OR NOT b)
NOT을 충분히 사용하면 AND 연산을 OR 연산으로 대체 가능(OR을 AND로도 대체 가능)
정수를 비트로 표현하는 법
LSB 가장 작은 유효 비트 least significant bit : 2진수에서 가장 오른쪽의 비트
MSB 가장 큰 유효 비트 most significant bit : 2진수에서 가장 왼쪽의 비트
오버플로 overflow
우리가 사용할 비트의 개수로 표현할 수 있는 범위를 벗어남
MSB에서 올림이 발생했다는 뜻
오버플로 비트 overflow bit
MSB에서 발생한 올림값이 들어감
조건 코드(상태 코드) 레지스터 condition code register
오버플로 비트 등을 담아둠
언더플로 underflow
MSB 위쪽에서 1을 빌려오는 경우
부호와 크기 표현법
많이 사용하지 않음. 이유는 다음과 같음:
1, 비트들을 구성하려면 비용이 드는데 0을 표현하는 방법이 두가지라 비용이 낭비됨
2. XOR과 AND를 통한 덧셈 계산 사용 불가능
1의 보수
양수의 모든 비트를 뒤집는 방법
순환 올림을 처리하기 위한 하드웨어가 필요
순환 올림 end-around carry
MSB 쪽에서 올림이 발생한 경우 LSB로 올림을 전달하는 것
2의 보수
부호가 있는 정수를 표현할 때 가장 널리 쓰이는 방법
어떤 수의 비트를 뒤집고(각 비트의 NOT을 취하고) 1을 추가하면 음수를 얻을 수 있음. 이때 MSB에서 발생할 수 있는 올림값은 버림
실수를 표현하는 방법
고정소수점 표현법
메모리 비용이 너무 많이 들어감
부동소수점 표현법
가수가 같아도 지수에 따라 소수점 왼쪽 숫자의 자리가 바뀔 수 있다는 점에서 소수점 위치가 정해져 있지 않은 표현법
IEEE 부동소수점 수 표준
낭비되는 비트 조합을 최소화하고 반올림을 쉽게 하기 위한 여러가지 트릭이 사용됨
정규화
가수를 조정해서 맨 앞에 0이 없도록 만드는 것
2진 코드화한 10진수 시스템
2진 코드화한 10진수 BCD, binary-coded decimal
4비트를 사용해 10진 숫자를 하나 표현함
12 -> 0001 0010
디스플레이나 가속도 센서 등이 BCD 사용하기도 함
다만 2진수를 효율적으로 활용하지 못한다는 단점이 있음
2진수를 나누는 쉬운 방법
8진 표현법 octal representation
2진수 비트들을 3개씩 그룹으로 묶는 방식
16진 표현법 hexadecimal representation
밑이 16이라는 뜻
컴퓨터 내부가 8비트의 배수를 사용해 만들어지기 때문에 16진수 한 자리의 비트 수인 4로 균일하게 나눠짐
프로그래밍 언어의 진법 표기법
- 0으로 시작하는 숫자는 8진 숫자다
- 1부터 9 사이의 숫자로 시작하는 숫자는 10진수다
- 0x가 앞에 붙은(접두사) 숫자는 16진수다
비트 그룹의 이름
이름 | 비트 개수 |
니블 nibble | 4 |
바이트 byte | 8 |
하프 워드 half word | 16 |
워드 word | 32 |
더블 워드 double world | 64 |
텍스트 표현
아스키 코드 ASCII
키보드에 있는 모든 기호에 대해 7비트 수 값을 할당
제어 문자 control character
글자 출력이 아닌 장치 제어를 위한 문자
NULL 등
유니코드 변환 형식 8비트 UTF-8
모든 아스키 문자를 8비트로 표현하기 때문에 아스키 데이터를 인코딩 시 추가 공간이 필요 없음
아스키가 아닌 문자의 경우 아스키를 받아서 처리하는 프로그램이 깨지지 않는 방법으로 문자를 인코딩 함
문자를 8비트 덩어리(옥텟octet)의 시퀀스로 인코딩함
인코딩 encoding
다른 비트 패턴을 표현하기 위해 사용하는 비트 패턴
문자를 사용한 수 표현
출력 가능하게 변경한 인코딩 Quoted-Printable encoding
= 쿼티드 프린터블 인코딩, QP 인코딩
8비트 데이터를 7비트 데이터만 지원하는 통신 경로를 통해 송수신하기 위한 인코딩 방법
QP 인코딩 : 전자우편 첨부를 처리하기 위해 만들어졌음
베이스64 인코딩 base64
QP 인코딩보다 효율적
패딩 문자 padding
원본 데이터가 2바이트 남으면 끝에 =, 1바이트 남으면 끝에 == 붙임
URL 인코딩
= 퍼센트 인코딩 percent-encoding
% 뒤에 어떤 문자의 16진 표현을 덧붙이는 방식으로 문자를 인코딩
색을 표현하는 방법
24비트가 필요하기 때문에 가장 가까운 표준 크기인 32비트(워드)로 처리
남는 8비트를 투명도 transparency에 사용함
색 인코딩
16진 트리플렛 hex triplet
# 뒤에 여섯자리 16진 숫자를 추가해 ##rrggbb처럼 표현하는 방식
2장 전자 회로의 조합 논리
계산자 slide rule
로그를 응용해 곱셈을 수행하는 도구
아날로그와 디지털의 차이
아날로그 | 디지털 |
연속적 continuous(ex. 계산자) | 이산적 discrete |
하드웨어에서 크기가 중요한 이유
모든 것이 작을 수록(거리가 짧아질 수록) 필요한 에너지도 줄어들고 성능이 좋아짐
단, 물체가 너무 작아지면 서로 간섭하기 아주 쉬워짐
ex. 아주 작은 계량컵에 물이 가득 차있을 때, 넘치지 않게 들기 어려움
컴퓨터 클록 속도 clock speed
4GH -> 1초에 40억 가지 계산 처리 가능
판정 기준
이산적인 장치에는 판정 기준이 있어 흔들림(간섭)이 영향을 끼치지 않음 ex.걸쇠
누화 효과 crosstalk
전자기력은 중력처럼 멀리 떨어진 물체에 영향을 끼칠 수 있음
두 선의 거리가 가까울수록 서로 큰 영향을 끼침
ex. 도로에서 마주 보는 두 차가 서로 스쳐 지나갈 때 느껴지는 바람
잡음 내성 noise immunity
누화 효과를 방지할 적절한 방법이 없기 때문에 더 높은 판정 기준을 통해 잡음 내성을 갖는 디지털 회로를 사용하는 것이 필수
전이 함수 transfer function
실제 세계에서 벌어지는 현상을 표현함
문턱값 threshold
입력이 조그만 변해도 곡선의 가파른 부분 때문에 출력이 확 달라지는 때의 판정 기준
연속적인 공간을 이산적인 영역으로 나눠줌
-> 안정성, 잡음 내성(간섭이 있어도 제대로 작동가능한 능력)
10진 숫자 대신 비트를 사용하는 이유
1. 비트가 10진 숫자보다 효율적
2. 숫자를 사용하면 전이 함수를 문턱값으로 구분 가능한 간단한 방법이 없음
차단 cutoff
전이 함수의 하단부 영역
포화 saturation
전이 함수의 상단부 영역
간단한 전기 이론 가이드
직렬 연결 series connection
전기를 물로 비유했을 때, 한 밸브의 출력이 다른 밸브의 입력과 연결된 경우 = AND 연산
병렬 연결 parallel connection
두 밸브의 입력을 한 관에 함께 연결하고 두 밸브의 출력을 다른 관에 함께 연결 = OR 연산
전파 지연 propagation delay
물 온도가 변할 때까지 시간이 걸리는 것과 같은 현상
상수 아님(물의 경우 온도 변화가 파이프를 확장/수축 시켜 지연 시간에도 차이가 남)
도체 conductor
전기 선의 내부에 있는 금속
부도체 insulator
금속 바깥쪽을 둘러싼 부분
회로 circuit
전기 시스템
스키매틱 schematic diagrams
계통도 또는 회로도
전기 시스템을 문서화함
각 구성요소를 기호로 표현
극 pole
한꺼번에 연결되어 이동하는 스위치의 수
단극단투 SPST single-pole, single-throw
손잡이 하나, 접점 하나
단극쌍투 SPDT single-pole, double-throw
한쪽은 켜고 반대쪽은 끄는 역할 가능
비트를 처리하기 위한 하드웨어
릴레이 relay = 계전기
스위치를 움직이기 위해 전자석을 사용하는 장치
느림, 전기를 많이 소모함, 먼지(or 벌레)가 스위치 접점에 있으면 제대로 작동하지 않음
평상시 열린 릴레이 normally open relay
코일에 전력이 들어가지 않았을 때 스위치가 열려 있는 릴레이
평상시 닫힌 릴레이 normally closed relay
반대로 전력이 들어가지 않을 때 스위치가 닫혀 있는 릴레이
스테퍼 릴레이 stepper relay
코일을 2개만 사용
열전자 방출 thermionic emission
물체를 충분히 가열하면 전자가 튀어나오는 현상
진공관
열전자 방출 현상을 기반으로 만들어졌음
캐소드 cathode와 캐소드를 가열하는 히터heater가 존재
캐소드에서 발생한 전자는 진공 속에서 애노드anode로 날아감
그리드 grid는 캐소드에서 나오는 전자를 쫓아내서 애노드에 도착하지 못하도록 함
움직이는 부분이 없어서 릴레이보다 훨씬 더 빠르지만, 아주 뜨겁고 깨지기 쉬움
삼극관 triode
캐소드, 그리드, 애노드가 들어 있는 진공관
트랜지스터
전송 저항 transfer resistor이라는 말을 줄인 transistor
도체와 부도체 사이를 오갈 수 있는 반도체 semiconductor를 사용
도체가 가늘고 얇아지면 저항이 더 늘어나 열이 발생함
-> 반도체는 쉽게 녹아 열 제거가 매우 중요함
반도체 물질로 이뤄진 기판 substrate 또는 슬랩 slab 위에 만들어짐
쌍극 접합 트랜지스터 BJT bipolar junction transistor, 필드 효과 트랜지스터 FET field effect transistor 등이 존재
논리 게이트
글리치 glitch
잡음으로 인해 입력 신호가 문턱값을 여러 번 오락가락하기 때문에 발생함
이력 현상 hysteresis
판정 기준이 과거 이력에 따라 달라진다는 뜻
차동 신호
서로 반전관계 complementary인 신호 쌍의 차이를 축정
연선 케이블링 twisted-pair cabling
한 쌍의 선을 서로 꼬아내는 방식 ex. 이더넷, usb 등
전파 지연 propagation delay
입력의 변화가 출려겡 영향을 미칠 때까지 걸리는 시간
출력 유형
- 토템폴 출력 totem pole : 일반적인 게이트 출력
- 오픈 컬렉터 출력 open-collector, 오픈 드레인 open-drain 출력 : 토템폴 장치보다 더 높은 전류 감당 가능
- 트라이스테이트 출력 tri-state : 수많은 장치를 서로 선으로 직접 연결 가능, 한 번에 단 하나의 장치만 활성화 가능
순차 논리 sequential logic
순서 sequence
시간적으로 어떤 값 뒤에 오는 다른 값
시간 표현과 상태 기억
주기 periodic 함수
시간 측정 가능 ex. 지구의 자전
클록 clock
시간을 셀 수 있게 해주는 신호
회로의 페이스 pace를 결정
회로의 최대 클록 속도나 가장 빠른 템포 tempo는 회로의 전파 지연 시간에 의해 결정됨
비닝 binning 과정
부품을 측정해서 그 특성에 따라 여러 다른 빈이나 무더기로 분류함
오버클로킹 overclocking
통계적으로 빈의 중간 정도에 위치하는 부품을 부품이 고장 나지 않을 범위 안에서 클록을 빠르게 공급하는 도박을 한다는 뜻
'공부 > TIL' 카테고리의 다른 글
[Do it! 자료구조와 함께 배우는 알고리즘 입문 : 파이썬 편] 02. 기본 자료구조와 배열 (0) | 2024.02.01 |
---|---|
[Do it! 자료구조와 함께 배우는 알고리즘 입문 : 파이썬 편] 01. 알고리즘 기초 (1) | 2024.01.26 |
[SQL 첫걸음] 32강 - 36강 (0) | 2024.01.15 |
[SQL 첫걸음] 29강 - 31강 (1) | 2024.01.13 |
[SQL 첫걸음] 26강 - 28강 (2) | 2024.01.12 |