반응형
컴퓨터의 기본 구성
- 비트(Bit, Binary Digit) : 0,1로 이루어진 2진수 신호. 비트패턴으로 다양한 정보를 표현할 수 있다.
- Boolean Operation : 비트 신호를 True / False의 관계로 보고 이를 활용 및 연산할 수 있다. Boolean Operation에는 AND, OR, XOR, NOT 등이 있다.
- Gate : 이러한 Boolean Operation을 계산하는 장치. 작은 전기 회로로 구성하고, 컴퓨터 생산시 단위가 활용된다. VLSI(Very Large Scale Integration), 즉 초집적회로이다.
- Flip-flop : Gate로 만든 한 비트를 저장하는 Digital Circuit이다. 한 라인은 1을 저장하고 한 라인은 0을 저장한다. 다양한 방식으로 구성되며, 회로를 보고 어떤 메커니즘으로 이루어지는지 이해할 필요가 있다.
비트패턴과 메모리
- Hexadecimal Notation : 비트패턴을 4개씩 잘라서 0~15씩 나눠 표기한 방법이다. 사람이 보기 좋도록 하기 위함이다.
- 메모리의 기본단위는 cell이며 일반적으로 1바이트이다.
- 비트패턴 표기 시 최상위의 비트(가장 왼쪽 비트)가 MSB(Most Siginificant Bit)이다.
- 비트패턴 표기 시 최하위의 비트(가장 오른쪽 비트)가 LSB(Least Siginificant Bit)이다.
- Address : 메모리 각각의 cell을 식별할 수 있게 하는 고유한 값
메인메모리
- RAM : 내가 원하는 주소의 cell을 바로 접근 할 수 있는 메모리
- DRAM : 휘발성 메모리로 이루어진 RAM
- SRAM : 비휘발성 메모리로 이루어진 RAM
대용량 저장장치 : 휘발성이며 큰 용량을 가진다. 또한 비용이 적게 들고 탈착이 가능하다.
-
Magnetic Disk : 단위시간 당 전송가능한 비트 수를 대역폭(Band Width)이라 한다. 데이터 요청 후 받을 때 까지의 시간을 대기시간이라 부른다.
-
목표 트랙까지 헤드를 옮기는 시간은 탐색시간이라하며, 목표 데이터까지 회전하는데 걸리는 시간은 회전지연(대기)시간이라고 한다. (보통 평균인 반바퀴 도는 시간으로 계산한다.)
-
접근시간은 이러한 탐색시간과 회전지연시간을 더한 시간이다. 이렇게 얻은 데이터를 다시 디스크로 보내거나 받아오는 속도를 전송속도라고 한다. (이것이 곧 전송속도, band width와 연관되어 있다.)
-
latency time 은 데이터 전송 요청부터 수신 사이의 총 소요시간으로 정의한다.
-
CD : 순차적으로 트랙이 이어져 있는 마그네틱 디스크
-
Flash drive : Silicon Dioxide (SiO2)를 활용한다. 이에 전자를 가둬두는 원리이다. 많은 변형 시 수명이 단축되어 손상된다.
비트
- 여러개의 비트가 모여 다양한 정보를 만들어낸다.
- 텍스트 : ASCII 코드, 7비트로 128가지 문자 -> 확장 : 8비트로 256가지 문자 / 유니코드, 21비트로 대부분의 언어 표기가능
- 숫자 : 2진수로 구성. overflow나 truncation 등의 오류 발생가능
- 이미지 : 비트맵, 픽셀 & RGB & 밝기 및 색상 / 벡터, scalable,도형으로 구성
- 소리 : SamplingTech, 실제오디오를 저장하여 높을 퀄리티 / MIDI, 합성음향으로 악보를 저장
cf. Truncation Error? 이진법에서 제대로 표현할 수 없는 수 혹은 표현가능 값보다 작은 값은 실제 값보다 값이 절삭된다. 이를 Truncation Error라고 한다. 수치해석학적으로 보면 큰 수에 매우 작은 수를 더해도 해당 값을 어떻게 표현하는지에 따라 해당 값이 날아가 버릴 수도 있다.
데이터의 압축
- 손실압축, 무손실압축
- RLE (Run Length Encoding) : 같은 문자가 반복되는 것을 줄여서 표기하는 압축 방식 (AAAABBB -> A5B3)
- 빈도 종속 인코딩 (Haffman 코드) : 통계학적 인코딩. 특정 문자가 자주 나올 경우 해당 문자의 코드는 간결하게, 자주 나오지 않는 문자의 코드는 좀 더 길게 표현하는 방식
- 상대적 인코딩 (Relative Encoding) : 예측부호화, 값을 이전값과 비교하여 표기 (10 13 12 11 10 -> 10 +3 -1 -1 -1)
- 사전인코딩(LZW 인코딩같은 적응적 사전인코딩 포함) : 긴 코드를 상징적인 코드로 정리하여 짧게 표현
- 이미지 압축 : GIF (만화이미지) / JPEG (사진) / TIFF (이미지보관)
- 음악 / 영상 압축 : MPEG (Moving Picture Expert Group, TV) / MP3(MPEG Audio Layer 3, Temporal Masking, Frequency Masking)
오류 검증
- 패리티 비트 : 1이 짝수 혹은 홀수가 되도록 맞추는 비트
- Checkbyte : 특정 수식을 통해 결과값을 확인해준다.
- Error Correcting Code (FEC code) : 위 두 방식과 다르게 확인을 넘어 오류를 정정할 수 있다. 해밍거리를 활용하여 오류를 정정한다. 알려진 비트패턴에 해당이 되지 않으면 오류로 보고 그 중 해밍거리가 가장 가까운 것(비트의 차이가 적은 것)으로 정정한다.
반응형
'🛠 기타 > 개발상식' 카테고리의 다른 글
다양한 무료 벡터 아이콘을 제공하는 사이트 (0) | 2020.04.02 |
---|---|
MarketPlace에 'Android Drawable Importer'가 없을 때 (4) | 2020.04.02 |
프론트엔드와 백엔드의 기본 (2) | 2020.03.15 |
개발자의 기본 (0) | 2020.03.15 |
네트워크의 기본 (0) | 2020.03.13 |