001 컴퓨터의 논리와 구조
컴퓨터는 2가지 측면에서 살펴 볼 수 있다.
1) 논리적 구성: 컴퓨터가 어떤 부분들로 이루어져 있고 , 무슨 일을 하며 , 어떻게 연결되는지 주목
2) 물리적 구성 : 각 부분이 어떻게 생겼고, 어떻게 만들어지는지를 나타냄
002 프로세서 속도
폰 노이만 아키텍처
프로세서 +
명령어와 데이터를 담는 메모리와 저장 장치 ( 주 기억 장치 RAM + 보조 기억 장치 Drive)+
입력과 출력 장치
Processor
2,2GHZ 듀얼 코어 인텔 Core i7 은 무슨 뜻일까?
- 인텔 : 프로세서 제조사
- Core i7 : 인텔의 프로세서 제품군
- 듀얼 코어 : 하나의 패키지에 처리 장치가 2개, 코어는 프로세서와 동의어
- 2,2GHZ : 초당 22억번씩 작동
프로세서의 속도는 1초에 수행할 수 있는 연산이나 명령어의 개수로 측정
주 기억 장치 Primary Memory / RAM (Random Access Memory)
기능
- 프로세서와 컴퓨터의 다른 부분이 현재 사용 중인 정보를 저장 / 저장된 정보의 내용은 프로세서에 의해 변경 가능
-
프로세서가 현재 작업 중인 데이터로 무엇을 해야 하는지 알려 주는 명령어 저장
프로그램 내장식 stored-program
메모리에 다른 명령어를 로드하여 프로세서가 다른 계산을 수행 가능
ex _ 같은 컴퓨터로 문서 작업, 음악 재생, 페이스북 한꺼번에 사용 가능
특징
Random Access Memory 라고 부르는 이유는 프로세서가 정보에 접근할 때 메모리에 저장된 위치와 무관하게 같은 속도로 접근 가능하기 때문
의미
메모리 용량이 클수록 컴퓨팅 속도가 더 빠르다
WHY? 메모리가 작으면 동시에 여러 프로그램을 실행하기에 용량이 충분하지 않고 , 비활성화된 프로그램의 일부를 옮겨 새로운 작업을 위한 공간을 만드는 데 시간이 걸리기 떄문.
003 HHD와 SSD의 차이
보조기억장치
주 기억 장치 vs 보조 기억 장치
-
저장 용량
주기억 장치는 저장 용량 한정적 / 전원이 꺼지면 내용이 사라짐
보조 기억 장치는 휘발성을 띠지 않아서 드라이브에 저장된 정보는 전력 공급이 없더라도 유지
-
저장 기간
데이터, 명령어, 다른 모든 정보는 보조 기억 장치에 장기간 저장, 주 기억 장치로는 일시적으로만 옮겨짐
보조 기억 장치 종류 1) 자기 디스크 = 하드 디스크 = 하드 드라이브
-
회전하는 금속 표면에 정보를 저장
오래된 컴퓨터가 작동할 때 들리는 윙윙거리는 소리는 디스크가 센서를 금속 표면의 적절한 위치로 옮기면서 나는 소리
-
디스크는 용량 면에서 RAM보다 저렴하지만 정보에 접근하는 속도는 더 느리다
보조 기억 장치 종류 2) SSD
- 현재 대부분의 노트북에서 사용
- 회전하는 기계 장치 대신
플래시 메모리
사용- 비휘발성을 띔 = 전원이 꺼져 있어도 개별 소자에 전하를 유지하는 회로에 정보가 전하 형태로 저장되어 저장된 전하를 읽어 값이 무엇인지 확인, 삭제, 새 값 덮어쓰기 가능 !
- 기존의 디스크보다 빠르고 가볍고 안정적, 고장이 덜 나고, 전력을 적게 사용 / 유일한 단점은 가격이 디스크보다 비싸다
004 가로세로 1CM 프로세서 칩
컴퓨터의 전자 회로는 여러 종류의 기본 소자가 매우 많이 모여 만들어진다
회로소자
- 전기 및 전자 회로에서 사용되는 모든 구성 요소를 포함
- 논리 게이트는 회로소자의 한 유형이지만, 회로소자는 저항, 콘덴서, 트랜지스터, 다이오드, 인덕터 등과 같은 다양한 구성 요소도 포함
- 가장 중요한 구성 요소
트랜지스터
: 기본적으로 스위치 역할
가장 중요한 기본 소자 = 논리 게이트
- 디지털 로직 디자인에서 특정 논리 연산을 수행하는 회로소자의 한 유형
- AND, OR, NOT, NAND, NOR, XOR 등의 기본 연산을 수행하며, 이러한 게이트들은 불 대수(Boolean algebra)의 연산에 기반
- 1개나 2개의 입력 값을 바탕으로 단일 출력 값을 계산
- 적절한 방식으로 연결되면 어떤 종류의 계산도 수행 가능
- 논리 게이트는
집적 회로/칩/마이크로칩
에서 만들어짐
005 50년 넘게 유지된 무어의 법칙
**무어의 법칙
**
인텔 공동 창립자이자 CEO였던 Gordan Moore
기술이 향상됨에 따라 일정한 크기의 집적회로에 들어갈 수 있는 트랜지스터의 수가 2년마다 대략 두배가 된다고 관측 = 2년마다 컴퓨팅 성능이 2배로 증가한다
→ 이 현상은 60년 동안 진행되어 이제 집적회로에는 1965년에 비해 100만 배가 넘는 트랜지스터가 들어 있다 .
회로의 크기를 결정짓는 척도 : 회로 선폭
프로세서 속도
-
현재는 2년마다 2배가 되지는 않는다
WHY? 칩이 너무 빨라져 열을 너무 많이 발생
-
하지만 여전히 성능 향상 중
HOW? 칩 하나에 프로세서 코어를 2개 이상 배치함으로써 더 많은 트랜지스터를 활용
즉, 개별 코어의 실행 속도가 빨라진다기보다는 장착 가느한 코어의 개수가 늘면서 성능이 향상
006 요약
컴퓨터의 기본 아키텍처는 1940년대 이후로 바뀌지 않았다.
하드웨어 성능의 향상은 현실적으로 무엇을 계산할 수 있는지에는 큰 영향을 미치지만, 이론상 계산 가능한 것에는 근본적인 변화를 일으키지 않는다.
007 연속과 불연속
컴퓨터가 정보를 표현하는 3가지 기본 아이디어
-
컴퓨터는 디지털 처리 장치이다.
수 형태인 디지털 정보를 저장하고 처리한다.
-
컴퓨터는 정보를 비트로 표현한다.
비트는 이진 숫자로, 0 또는 1인 수이다.
-
비트는 모여서 더 큰 정보를 표현한다.
숫자, 단어,소리, 사진부터 이러한 정보를 처리하는 프로그램을 구성하는 명령어에 이르기까지 모두 비트가 모여 표현된다.
아날로그와 디지털
현실에서 다루는 사물은 대부분 아날로그 방식 : 연속적으로 변하는 값
EX) 아날로그 시계는 시간의 흐름에 다라 연속적으로 움직이면서 가능한 모든 위치를 거쳐감
디지털 방식 : 불연속적
EX) 디지털 시계는 매초 숫자로 이루어진 디스플레이가 바뀐다
왜 아날로그 대신 디지털 방식을 사용할까?
- 디지털 데이터는 기존 출처와는 무관하게 다양한 방식으로 저장, 전송, 처리 가능
- 불필요하거나 중요하지 않은 정보를 버리고 압축 가능
- 보안과 개인정보 보호를 위해 암호화되고, 다른 데이터와 병합되고, 복사되고, 인터넷을 통해 옮겨지고, 한없이 다양한 장치에 저장 가능
→ 아날로그 정보는 적용하기 어렵거나 심지어 불가능하다
008 아날로그 정보를 디지털로 바꾸기
이미지, 음향, 텍스트 디지털화하기
**아스키코드**
알파벳 대문자 , 알파벳 소문자, 0~9, 구두점 등의 문자에 고유한 번호를 부여 한 것
**유니코드
** 모든 언어에 있는 모든 문자에 고유한 숫자 값을 지정 한 것
디지털 표현은 모든 종류의 정보와 더불어 숫자 값으로 변환 될 수 있는 어떤 것이든 나타낼 수 있다.
009 0과 1의 세계
모든 유형의 정보를 숫자 값으로 표현하는 디지털 시스템은 이진수를 사용한다.
비트 bit ( binary digit )
-
2개의 값 중 하나를 선택하는 정보라면 무엇이든 비트 한 개로 표현 할 수 있다
ex) 켜짐 / 꺼짐 , 참 / 거짓, 예 / 아니오
-
더 많은 선택지를 표시하거나 더 복잡한 정보를 표현하기 위해서는 비트를 여러 개 사용한다
010 비트 모아 데이터
컴퓨터는 데이터를 다양한 크기 단위로 조작한다.
모든 최신 컴퓨터에서 데이터 처리와 메모리 구성의 기본 단위는 8 비트 = BYTE
비트 모임의 의미가 상황에 따라 결정!
데이터 처리 단위
- 16 비트 / 2 바이트 = 유니코드 문자 1개
- 수는 32,64비트가 사용
- 주소는 메모리상에 있는 정보의 위치로 현재는 대부분 64비트
-
이진수는 십진수 형태보다 3배 이상 길어서 너무 많은 공간을 차지하여 16진수 일반적으로 사용
사용 예시 )
- 각 픽셀 당 3바이트를 사용하여 RGB 인코딩
- 이더넷 주소
- URL 특수 문자
012 프로세서와 계산기의 다른 점
프로세서는 무엇을 할 수 있을까( 가능한 기본연산은 )?
- 산술 연산 : 계산기처럼 기능 가능
- 메모리에서 연산을 수행할 데이터를 가져오기
- 메모리에 연산결과 저장
- 모든 장치(마우스, 키보드, 디스플레이 등)에 대한 입력과 출력을 조직화하고 조정
가능한 기본 연산의 가짓수가 많지 않지만 초당 수십억 번의 연산을 수행하여 복잡한 기능 수행 가능
😈 프로세서는 현재 처리 중인 데이터를 기반으로 다음에 무슨 일을 할지 결정할 수 있다
014 프로세서는 무조건 빠른 게 좋을까?
1 프로세서 사이클
프로세서는 인출 ,해석, 실행 사이클을 반복 수행
**인출
1st** 메모리에서 다음에 처리할 명령어를 인출
**해석
2nd** 명령어가 무슨 일을 하는지 파악하고 명령어를 수행하는데 필요한 준비
**실행
3rd** 명령어가 메모리에서 정보를 가져오고, 산술 연산이나 논리 연산을 수행하며, 결과 저장
그리고 다시 인출 단계로…
- 프로세서는 수십 ~ 수백 개의 명령어가 있다
- 명령어와 데이터는 여러 개의 메모리 위치를 차지한다.
- 실제 프로그램은 흔히 명령어 수백만 개로 이루어진다
2 컴퓨터 아키텍처
컴퓨터 아키텍처 분야는 프로세서 설계 + 프로세서와 컴퓨터 나머지 부분 간의 연결 방식하는 분야
프로세서 설계
기능성, 속도, 복잡도, 전력 소모 정도, 프로그램 가능성 등 상충하는 요구 간 복잡한 트레이드 오프를 수반
- 폭 넓고 다양한 종류의 계산이 처리 되도록 많은 수의 명령어가 있는 것이 좋을까?
- 반대로 작성하기 쉽고 더 빨리 실행되도록 더 적은 수의 명령어가 있는 것이 좋을까?
🖥️ 컴퓨터 아키텍처의 주요 관심사 중 하나는 프로세서가 제공하는 명령어 레퍼토리
명령어 집합(instruction set)
을 정하는 것
프로세서가 더 빨리 작동하도록 하는 여러 가지 기법들
1 ) 프로세서 속도는 메모리 속도에 비해 매우 빠르다 → 속도 차이 문제를 어떻게 해결할까?
캐시(cache)
라는 **고속 메모리를 사용!
캐시는 프로세서와 메모리 사이에 있고 최근 사용된 명령어와 데이터를 담고 있다
2) 프로세서 자체의 속도를 더 빨리 작동하는 방법
- 인출과 실행 단계가 겹치도록 설계 = 여러 개의 명령어를 동시에 처리
- 다수의 명령어를 병렬적으로 실행
3) 프로세서 여러 개가 동시에 작업
3 사용 분야에 다라 프로세서 설계는 달라진다
-
데스크톱 컴퓨터 / 노트북 / 휴대전화 / 태블릿 PC 는 크기, 무게, 전력 제약이 다르다
ex_ 데스크톱과 노트북용 프로세서에서는 인텔과 AMD가 지배적인 공급자
휴대전화와 태블릿 PC는 전력을 적게 사용하는 ARM
-
프로세서 간 설계가 다르기 때문에 속도를 비교하는 것은 어려울 뿐 아니라 의미가 없다
015 캐시가 뭔가요?
캐싱은 뭔가를 사용하고 있고 그것을 곧 다시 쓸 가능성이 있거나 근처에 있는 뭔가를 사용할 가능성이 있을 때 언제든지 활용할 수 있다는 개념을 의미
예를 들어,
- 주 기억 장치는 디스크를 보완하는 캐시가 될 수 있고
- 메모리와 디스크는 네트워크에서 오는 데이터를 빠르게 꺼낼 수 있다는 점에서 캐시가 됨
- 네트워크에서 멀리 떨어져 있는 서버에서 오는 정보 흐름의 속도를 높이려고 캐시를 사용할 때가 많고, 서버 자체에도 캐시가 존재
프로세서에서의 캐시
- 용량이 작고 속도가 빠른 메모리로,
- 용량이 더 크지만 훨씬 느린 주 기억 장치에 매번 접근하는 것을 피하고자
-
최근에 사용된 정보를 저장하는데 사용
프로세서는 일반적으로 여러 그룹의 데이터와 명령어가 짧은 간격으로 잇달아 접근할 때 ,
캐시를 사용하면 매번 메모리에서 인출하지 않아도 되고,
프로그램은 메모리 작업을 기다릴 필요가 없어져서 더 빨리 실행 가능 !
-
정보를 블록 단위로 동시에 불러온다
WHY? 인접한 정보라면 곧 사용될 가능성이 높으므로
웹브라우저에서의 캐시
“캐시를 삭제하시겠습니까?”
-
브라우저는 어떤 웹페이지에 포함된 이미지 같은 비교적 용량이 큰 데이터의 로컬 사본을 유지
WHY ?사용자가 페이지를 재방문했을 때 데이터를 다시 다운로드하는 것보다 로컬 사본을 사용하는 편이 더 빠르기 때문
- 단, 캐시 용량이 무한정 커질 수 없으므로 브라우저는 새 데이터를 위한 공간을 만들기 위해 오래된 항목부터 제거
-
캐시의 효과 확인 방법
워드를 실행한 후 디스크에서 로딩이 완료되고 사용할 준비까지의 시간 VS
프로그램 종료 후 즉시 재시작 했을 때의 시간
→ 두 번째가 로딩 시간이 확실히 짧다
프로그램의 명령어가 아직 메모리에 있고, 메모리가 디스크에 대한 캐시로 사용되기 때문
016 슈퍼컴퓨터부터 사물인터넷까지
GPU ( Graphics Processing Unit )
- 범용 CPU보다 그래픽 관련 계산을 훨씬 빠르게 수행하는 그래픽 전용 프로세서
- 일반 프로세서가 특정한 종류의 작업을 빠르게 처리 하는 데 도움을 줌
- GPU는 간단한 산술 연산을 병렬로 대량 처리 가능
분산 컴퓨팅 ( Distributed Computing )
- 네트워크로 연결되어 서로 독립적으로 작동하는 여러 대의 컴퓨터
- 분산 컴퓨팅 시스템은 메모리를 공유하지 않고 물리적으로 넓게 흩어져 있음
- 검색 엔진, 온라인 쇼핑, SNS , 일반적인 클라우드 컴퓨팅 같은 대규모 웹 서비스가 분산 컴퓨팅 시스템으로 이루어져 수천 대의 컴퓨터가 연결
017 요약
컴퓨터의 원리
사용자가 메모리에 명령어를 넣고,
컴퓨터는 메모리에서 명령어를 가져와서 컴퓨터는 계산을 수행한다.
명령어와 데이터의 차이?
맥락에 따라서만 구별 가능하다