Understanding The Digital World Hardware
001. 컴퓨터의 논리와 구조
하드웨어
컴퓨터에서 형체가 있고 눈에 보이는 부분을 말한다. 큰 관점에서
-
논리적 구성
어떤 부분으로 이루어지고, 무슨 일을 하고, 어떻게 연결되는가.
-
물리적 구성
각 부분이 어떻게 생겼고, 어떤 식으로 만들어지는지.
로 구분할 수 있다.
002. 프로세서 속도와 심장 박동 수
폰 노이만 아키텍처 - 논리/기능 구조
- 프로세서
- 주/보조 기억 장치
- 입력/출력 디바이스
-
버스
1~3번을 연결하는 전선(?)
프로세서
컴퓨터의 두뇌 역할.
산술/제어 연산 장치.
산술 연산을 하고, 데이터 전달, 구성요소 작업 제어 등의 역할을 한다.
2.2GH(1초당2.2GHz를 연산하는 속도) 듀얼코어(프로세서2개) 인텔
주 기억 장치 (Primary Memory)
데이터를 저장하는 담당 장치.
컴퓨터가 실행되는 동안 사용되는 정보를 저장할 장소를 제공한다.
RAM(random access memory)
정보가 어디에 위치하던 접근 속도는 거의 동일하다 (빨라서)
램이 클수록 다양한 프로그램을 실행할 수 있기 때문에 속도가 빠르다.
휘발성을 띈다. 컴퓨터가 꺼지면 날라가기 때문에 자주 저장을 해주자.
비디오의경우 -> 빨리감기 -> 순차적접근,
ram 은 임의 접근 메모리기 때문에 빠른 접근이 가능하다.
003. HDD 와 SSD의 차이
보조 기억 장치 (Secondary Storage)
전원이 꺼져도 정보를 유지하는 장치
- HD (Hard Drive)
- SSD (Solid State Drive)
로 나뉜다.
많은데이터를 저장, 비 휘발성 메모리.
하드 드라이브
자가 디스크 사용. 동심원을 따라 트랙에 저장되며, 자성 물질 포인트가 자성을 띠는 방향으로 설정하여 정보를 저장한다. 디스크는 트랙 간에 이동하는 센서를 이용하여 데이터를 읽고 쓴다.
SSD
요즘 사용하는 보조기억장치. 플래시 메모리를 사용한다. 램과 달리 비 휘발성 메모리로, 메모리 안에 정보가 전하 상태로 유지된다. 자가디스크보다 비싸지만 빠르고 가격이 낮아지면서 자가디스크를 거의 대체했다.
논리적 구조와 물리적 구현간의 차이
우리가 컴퓨터를 사용하고 파일을 저장할때 보통 탐색 구조로 보는데, 각각의 컴퓨터 내부는 다른 하드웨어를 사용하기때문에 물리적 저장 경로가 상이하다.
하지만 어떤 방식인지 몰라도 사용자는 잘 사용할 수 있도록 추상화 되어있다.
컴퓨터에 장착된 드라이브가 어떤종류(디스크,ssd, 램)인지는 중요하지 않으며, 저장장치와 운영체제의 소프트웨어가 합작하여 추상화된 형식으로 정보를 제공한다.
다른 장치들
-
입력장치
키보드, 마이크, 카메라, 마우스 등
자기 컴퓨터에 입력할 수 있도록 해준다
-
출력장치
디스플레이, 프린터, 스피커 등
사용자에게 출력 요소를 제공
-
네트워킹 구성 요소
와이파이, 블루투스 등
다른 컴퓨터와 통신하는 용도로 사용된다.
-
버스
구성 요소들을 연결하는 구조? 전선
004. 가로세로 1cm 프로세서 칩
컴퓨터 회로기판에는 나란히 인쇄된 전선들을 볼 수 있다 = 버스
전자회로 기본소자
논리게이트 (logic gate)
- 전압이나 전류인 출력 신호를 제어한다.
트랜지스터(transistor)
- 스위치 역할. 전압의 제어를 받아 전류를 켜거나 끈다.
집적회로 IC = chip, micro chip
- 논리게이트가 만들어지는 회로
웨이퍼
칩이 제조되는 곳
005. 50년 넘게 유지된 무어의 법칙
기술이 향상됨에 따라 일정한 크기의 집적회로에 들어갈 수 있는 트랜지스터의 수가 매년 대략 2배가 된다.
집적회로의 폭이 좁아지면, 팹라인 (제조공정) 또한 많이든다.
현재 프로세서 속도는 예전만큼 빨리 증가하지 않는다.
칩이 빨라져서 열을 많이 발생시킨다. 따라서, 코어를 여러개 배치
006. 요약
하드웨어는 집적회로의 발명을 시작으로 60년간 기하급수적으로 성장이 되었다.
성능이 좋아지면서 공학, 과학용 연산에 쓰이던 컴퓨터는 개인용 PC로 보급되기 시작되었다.
데이터는 클라우드화 되어 어딘가의 데이터 센터에 저장된다.
007. 연속과 불 연속
컴퓨터가 정보를 표현하는 방식
컴퓨터는 디지털 장치다. 불연속 덩어리 (0, 1)컴퓨터는 정보를 비트(0,1)로 표현한다. 비트는 모여서 더 큰 정보를 표현한다. (숫자, 문자, 단어, 사진)
아날로그와 디지털
아날로그가 핸들이라면, 디지털은 방향지시등. 연속적으로 이동시킬 수 있지만, 방향지시등은 키면키고 끄면 끄는 것
우리는 아날로그 세상에 살기때문에 컴퓨터는 아날로그 정보를 디지털 정보로 변환해서 작업하고, 출력할땐 해당 디지털을 아날로그로 출력해 보낸다.
디지털 장점
정보가 점이 되었다.
- 불필요한 정보를 버리고 압축하여 네트워크 전송을 효과적으로 할 수 있게 만든다.
- 보안 / 개인정보 암호화 가능
- 인터넷을 통해 다양한 곳에 정보를 전달할 수 있다.
- 다양한 장치에 정보를 저장 가능하다.
008. 아날로그 정보를 디지털로 바꾸기
이미지 디지털화 하기
아날로그 카메라
필름에 감광영역을 피사체에 오는 빛에 노출하여 영상을 만들어낸다. 감광영역은 다른색의 빛을 다른 양으로 받아들여 필름 내 염료에 영향을 미친다.
디지털 카메라
렌즈가 적색, 녹색, 청색 필터 뒤에 놓인 광검출 소자의 직사각형 배열에 초점을 맞춘다. 해당 배열의 값은 빛의 양에 비례하는 양으로 전하를 저장하는데, 저장된 전하는 빛의 강도를 저장한다.
이 요소는 r,g,b 양을 측정하는 검출 소자로 구성되며, 각 요소를 ‘ 픽셀’ 이라고한다.
음향 디지털화하기
소리
음원에서 발생한 진동이 공기에 파동 형태로 전파되어 고막을 진동시키는데, 이걸 소리라고 받아들인다.
파동의 기압을 패턴으로 입력하여 기압 변동을 재현하게 만든 것
패턴은 녹음, 기압변동을 다시 하는것을 재생이라고함.
디지털 표현
파형을 미분해 곡선의 값의 수치를 측정한다.
해당 값들은 저장되고, 복사되고, 조작되고, 전송이 가능하다.
파형 -> 숫자(비트) 변환과정 = 아날로그 -> 디지털 변환과정 A/D 변환기
반대는 D/A변환기
압축
소리와 영상은 압축기술 mp3, aac 를 이용해 압축된다.
영화 디지털화하기
MPEG 기술을 사용하여 용량을 줄인다.
텍스트 디지털화 하기
책에있는 글자, 숫자 변환하기
어떻게 디지털로 표현할지 합의하면 되서 쉽다.
아스키코드
미국에서 표준화한 표현 법
유니코드
전세계적 표준. 모든 언어에 고유한 숫자, 문자 값을 지정
디지털 표현은 모든 종류와 정보와 더풀어 숫자값으로 변환될 수 있는 어떤 것으로 나타낼 수 있다.
009. 0과 1의 세계
컴퓨터는 이진수를 사용한다
비트 bit (binary digit)
두개의 숫자를 사용해 값을 나타낸다.
비트가 N개 있다면 2 제곱으로 값을 나타낼 수 있다.
2의 거듭제곱과 10의 거듭제곱
컴퓨터는 이진수로 처리되므로 용량이 2의 거듭제곱으로 표현된다.
2의 10제곱과 10의 3제곱은 비슷한 비율로 커진다
010. 비트 모아 데이터
이진수 -> 십진수 바꾸는거 나옴
011. 요약
이진수를 사용하는 이유
물리 장치를 만들때 켜짐, 꺼짐 두가지 상태만 갖는게 편해서
012.프로세서와 계산기의 다른점
프로세서 or CPU = 컴퓨터의 두뇌
프로세서 역할
산술 연산 수행메모리 저장 및 메모리 가져오기입출력 장치 컨트롤 결정을 내림, 비교 수행을 통해 다음에 무슨일을 할지 결정한다
013. 모형 컴퓨터로 더하기 프로그램 만들기
프로그램
- fetch() 데이터, 명령어를 가져온다
- decode() 명령어를 해서한다
- execute() 명령어를 실행한다
이 사이클을 돈다
명령을 시작할 때 관련한 메모리도 적재됨
명령어만 필요하면 명령어 메모리만, 데이터가 추가로 필요하다면 데이터 메모리도 추가된다.
014. 프로세서는 무조건 빠른 게 좋을까?
프로그램은 단순하게 보면
- 명령어 가져옴
- 명령어 해석
- 명령어 실행
이 3가지로 도는데, cpu는 빠르고 메모리는 느린 이런 컴퓨터를 어떻게 빠르게 처리할지 컴퓨터 아키텍처를 설계하는게 중요하다
빠르게 하는 방법
-
파이프 라이닝
인출과 실행 단계가 겹치도록 프로세서를 설계함 (마운트 같은건가)
- 자동차가 조립 라인을 따라 이동하는것과 비슷하다.
어려워서 추가
cpu는 위에서 말한걸로봤을때 단순히 fetch, decode, execute 이 세가지 방식으로 도는데, 독립적으로 작용함
명령어가 여러개가 들어왔을때 명령어 1에서 fetcing 후 decode를 하고있을때 fetching 은 놀게되니까, 다른 명령어를 가져와 fetching 작업을 하면서 놀지않게 줄이는 작업을 말함
작업 속도가 주는건 아니고, cpu를 놀지않고 잘 활용할 수 있게 하는 작업
근데 이 작업은 연산이 정말 동일해야 좋은 작업임, 안그러면 헤저드가 일어나 해당 명령이 스톨하는 경우가 생긴다.
https://jokerkwu.tistory.com/120
-
병렬처리
순서에 구애받지 않는 명령어는 같이 처리
- 코루틴같음
-
멀티 프로세서
프로세서를 여러개를 동시에 작업하도록 하는 기법
015. 캐시가 뭔가요?
용량이 적지만 속도가 빠른 메모리
주 기억장치는 메모리 접근 시간이 느리므로, 자주 사용하는 데이터의 경우 캐시에 올려 사용한다. 비싸다
메모리에 올라가 있는 상태이므로, 데이터에 접근시 캐시에 존재하면 메모리작업을 기다릴 필요가 없어 빨리 실행할 수 있다.
데이터를 블록 채로 가져옴. 단일 바이트 요청해도 블록채 전달한다. 왜냐면 인접한 데이터는 쓰일 확률이 높기 떄문
웹페이지 두번째 들어갈때 값이 빠르게 로딩되는것도 캐싱 때문. 여러곳에서 사용된다.
016. 슈퍼컴퓨터부터 사물 인터넷까지
스마트폰, 데스크탑, 슈퍼컴퓨터부터 다양한 컴퓨터가 존재하나, 같은 논리적인 연산을 가진 컴퓨터다.
슈퍼컴퓨터
수많은 고속 프로세서, 대량 메모리를 사용하는 컴퓨터.
부동소수점 연산 횟수를 초당 얼마나 할 수 있는지 계산한 단위인 플록스 로 성능을 측정한다.
GPU
그래픽 처리 프로세서
게임할때 많이 처리하는데, 병렬 연산 처리를 지원한다.
분산 컴퓨팅
컴퓨터들끼리 네트워크로 연결되어 독립적으로 작동하는 여러 컴퓨터 방식
017. 요약
컴퓨터는 기계다. 크고작고를 넘어 기계다.
캐싱을 통해 더 빨리 데이터에 접근할 수 있다.
컴퓨터 아키텍처를 정의하는 것에 대해 많은 방식이 있지만 내부 계산 능력이나 구조는 동일하다.