컴퓨터를 단순화 —> 프로세서, 주 기억 장치, 보조 기억 장치, 디스플레이 등 기타 장치
프로세서, 메모리와 저장장치, 입출력장치가 있는 기본 구조를 ‘폰 노이만 아키텍처’
책에서 설명한 용어 관련
1️⃣ CPU : 프로세서
- 주기억장치 : RAM, 임의 접근 메모리
- 보조기억장치 : 디스크, 드라이브(물리적 구현을 반영함)
프로세서
컴퓨터의 두뇌, 산술연산, 구성요소 제어
‘2.2GHz 듀얼코어 인텔 Core i7’ 은 무슨 뜻일까?
인텔 : 프로세서 제조사
Core i7 : 프로세서의 제품군 중 하나
듀얼코어 : 하나의 패키지에 처리장치가 두개 (여기서 core는 프로세서와 동의어)
2.2GHz : 초당 22억번 움직임.
2️⃣ 주기억장치
현재 작업중인 데이터 + 프로세서가 해당 데이터로 무엇을 해야하는지 알려주는 명령어도 저장.
메모리에 다른 명령어를 적재해서 프로세서가 다른 계산을 수행할 수 있게 한다.
✅ 하드웨어 3번 : HDD와 SDD의 차이
👌 보조기억장치 : HDD(구식), SSD(최신)
- HDD : 레코드판을 생각하면 쉽다. 돌아가면서 입력을 하는 장치
- SDD : 더 빠르고, 안정적이고, 가볍다. 떨어뜨려도 고장이 덜 나고 더 비싸다.
✅ 하드웨어 4번 : 가로세로 1cm 프로세서 칩
- 과거와 현재의 노트북 하드 드라이브나 카메라에 사용되는 SD카드 패키지는 성능적으로는 많이 발전하였지만, 겉보기는 차이가 없어 구별이 어렵다. 그러나, 컴퓨터 부품이 올라가 있는 회로 기판은 발전 양상이 명확히 드러난다.
요즘에는 부품의 수가 더 적고 과거보다 많은 회로가 부품 내부에 들어가 있으며, 배선이 미세하여 연결 핀의 수가 더 많고 훨씬 조밀하게 배치되어 있기 때문이다.
- 컴퓨터의 전자 회로는 몇 가지 기본 소자가 모여서 만들어지는데, '논리게이트', '트렌지스터'등이 있다.
1️⃣ 논리게이트(logic gate)
- 모여서 전자기기 등 다른 더 복잡한 전기 회로들을 구성하는 가장 기초적인 회로 정도로 생각하면 된다.
- 한 개나 두 개의 입력 값을 바탕으로 단일 출력 값을 계산한다.
- 전압이나 전류같은 입력 신호를 이용하여 전압이나 전류인 출력 신호를 제어한다.
2️⃣ 트랜지스터(transistor)
- 회로 소자에서 가장 핵심적인 부분이다.
- 스위치(전압의 제어를 받아 전류를 켜거나 끄는 장치), 신호 증폭 역할을 한다.
👌 집적 회로
- 트랜지스터로 인해 보다 정확하고 다양한 기능을 실현시킬 수 있었지만, 수많은 트랜지스터와 전자부품을 연결해야 하는 단점이 있어 제품이 점점 복잡해질수록 연결해야 하는 부분이 기하급수적으로 증가했다. 그런 이유로 제품을 고장내는 주요 원인이 되어, 해당 부분을 해결하고자 집적 회로를 개발하였다.
- 흔히 칩 또는 마이크로칩이라고 칭한다.
- 모든 소자와 배선이 단일 평면(얇은 실리콘 판)위에 들어가 있는데, 이는 개별 부품과 재래식 전선이 없는 회로를 만들기 위해 일련의 복잡한 광학적, 화학적 공정을 거쳐 제조된 것이다.
- 지름이 약 12인치인 원형 웨이퍼상에서 한번에 제조한다.
- 패키징(칩을 외부 환경으로부터 보호하고 단자간 연결을 위해 전기적으로 포장하는 공정)
- 집적 회로가 실리콘 기반으로 만들어진다는 점에 착안하여, 집적 회로 사업이 처음으로 시작된 캘리포니아 샌프란시스코 남부지역에 실리콘밸리라는 별명이 붙었다.
✅ 하드웨어 5번 : 50년 넘게 유지된 무어의 법칙
- 인텔을 공동 창립하고 최고 경영자였던 '고든 무어'가 게재한 글에 있던 내용으로 기술이 향상됨에 따라 일정한 크기의 집적회로에 들어갈 수 있는 트랜지스터의 수가 2년마다 두 배씩 증가한다고 한다.
- 트랜지스터의 수는 컴퓨터의 성능을 간접적으로 나타내는 지표이므로, 2년마다 성능이 두 배씩 증가한다는 것을 의미한다. '무어의 법칙'이라 부르는 기하급수적인 증가 양상은 60년동안 진행되었다(1965년과 대비하여 100만배가 넘는 트랜지스터가 들어있다).
- 회로의 규모를 특정짓는 집적회로의 회로 선폭은 꾸준히 줄어들어 왔고 줄어든 만큼 주어진 영역에 들어가는 소자의 수는 증가하였다. 집적회로의 설계와 제조는 정교한 기술이 필요하며 경쟁도 치열하고 비용도 많이 발생된다.
- '무어의 법칙'은 반도체 산업에서 목표를 설정하기 위한 가이드라인이고 현재 일부 회로에는 개별 원자가 단 몇개만 들어갈 수 있는 수준까지 작아져서 제어가 어려워, 미래 어떤 시점에는 이 법칙이 한계에 부딪힐 것으로 예상된다.
✅ 하드웨어 7번 : 연속과 불연속
1️⃣ 아날로그 : 연속적으로 변하는 값
ex) 자동차 핸들, 아날로그 시게 등
2️⃣ 디지털 : 불연속적인 값
ex) 방향 지시등, 디지털 시계, 컴퓨터 등
👌 컴퓨터의 기본 저장 단위 : 바이트(1바이트 : 8비트)
👌 1바이트에는 2^8 2의 8승에 해당하는 256개의 고유한 값을 저장할 수 있다.
👌 비트 : 0과 1 두가지 값만 가지고 비트 8개가 모이면 1 바이트가 된다.
3️⃣ 아날로그 대신 디지털 방식을 사용하는 이유
👌 아날로그 데이터보다 디지털 데이터가 다루기 쉽다.(저장, 전송, 압축 등)
👌 쉽게 확장할 수 있다.
✅ 하드웨어 8번 : 아날로그 정보를 디지털로 바꾸기
1️⃣ 이미지 디지털화 : 저장된 전하를 수치로 변화해서 계산된 빛의 강도를 나타내는 수를 배열한다.
2️⃣ 음향 디지털화 : 음앞 파장의 측정값을 모은 수치가 파형의 디지털 표현
3️⃣ 영화 디지털화 : 이미지를 60프레임의 비율로 보여준다(1초당 60장의 이미지가 보인다).
4️⃣ 텍스트 디지털화
👌 아스키 코드 사용 : 7비트(2^7) 128개의 고유한 값만 사용하는데, 1비트는 통신 에러 검출을 위해 사용한다.
🔹 통신 오류 검출 : 수신 측에서 보낸 데이터가 정확히 전달되었는지 확인하는 방법
👌 유니코드 사용 : 많은 정보를 128개의 값만 있는 아스키 코드에 다 담을 수 없어서 용량을 2바이트로 확장한 유니코드가 등장했다(2^16 = 65,536개의 값을 가진다).
🔹 하지만 모든 문자를 담기에 부족해서 유니코드 3.0부터 보충언어판을 정의해서 백만자가 넘는 문자를 추가로 정의했다.
결론적으로 아날로그를 디지털화하기 위해서는 모든 정보를 숫자 값으로 변환시켜야 한다.
✅ 하드웨어 9번 : 0과 1의 세계
"세상에는 오직 10가지 사람들이 존재한다. 이진수를 이해하는 사람들과 그렇지 않은 사람들"
👌 디지털 시스템은 모든 유형의 정보를 숫자 값으로 표현한다.
- 디지털 시스템 내부에서는 십진수 체계를 사용하지 않는다.
- 그 대신 이진수, 즉 기수가 2인 수를 사용한다.
🔹 기수 = 밑수(진수법/지수/로그에서 쓰임)
- 10진수의 기수(base)는 10이다.
- 10^1, 10^2, 10^3의 밑수(base)는 10이다.
- log10a의 밑(base)는 10이다.
1️⃣ 비트
디지털 정보를 표현하는 가장 기본적인 방식
이진 숫자라는 뜻의binary digit을 축약한 것
0 또는 1 중 하나의 값을 사용
두 개의 값 중 하나를 선택하는 정보라면 비트 한 개로 표현할 수 있다.
어느 값이 어떤 상태를 나타내는지 모두 합의하기만 하면 됨
ex> 예/아니오, 참/거짓
비트의 개수와 비트로 레이블을 붙일 수 있는 항목의 개수에는 일정한 관계가 존재함.
만일 비트가 N개 있을 때 표시할 수 있는 비트 패턴의 수 2ⁿ
십진 숫자와 매우 유사
십진 숫자 N개로 표현할 수 있는 숫자 패턴의 수 10ⁿ
2️⃣ 2의 거듭제곱과 10의 거듭제곱
컴퓨터 내부에서는 모든 것이 이진수로 처리
크기와 용량 같은 속성이 2의 거듭제곱으로 표현되는 경향이 있다.
비트가 N개 있다면 2ⁿ개의 값이 가능하므로 2의 거듭제곱을 일정한 값, 2의10승 정도까지 알아두면 편리하다.
2의 거듭제곱 중 일부는 10의 거듭제곱에 가까운 값이고, 기억하기 쉽게 규칙적이다.
--- 2와 10의 거듭제곱을 연관지어 기억하면 비트와 관련된 큰 수를 암산하기에 좋다. ---
나눌 때마다 0또는 1이 되는 나머지 값을 적고 몫은 다음 나누기를 위한 값으로 사용한다.
- 원래 수에서 2의 거듭제곱을 하나씩 내려가면서 뺌으로써 십진수를 이진수로 변환할 수 있다.
3️⃣ 바이트
- 1956년 컴퓨터 설계자인 베르너 부흐홀츠(Werner Buchholz)가 만든 단어이다.
- 모든 최신 컴퓨터에서 데이터 처리와 메모리 구성의 기본 단위는 8비트(bit)로, 컴퓨터가 값을 저장할 수 있는 최소단위이다.
- 1비트는 너무 작은 단위이기 때문에 1비트를 8개씩 묶어서 바이트(byte)라는 단의로 정의해 데이터의 기본 단위로 사용한다. 단일 바이트로는 256개의 구별되는 값을 인코딩할 수 있다.
🔹 인코딩된 값은 0과 255사이의 정수이거나, 7비트 아스키코드 문자 집합 중 하나의 문자이거나 뭔가 다른 것일 수 있다.
4️⃣ 십육진수
이진수는 십진수 형태보다 세 배 이상 길어서 너무 많은 공간을 차지하므로 십육진수(hexadecimal)라는 대안 표기법을 일반적으로 사용한다.
👌 16을 기수로 사용하여 16개의 숫자로 표현한다.
0, ..., 9, A,B,C,D,E,F를 이용해 각 십육진 숫자가 네 개의 비트를 표현한다.
2,8,10,16 진법들의 대응하는 값 정리
🔹 프로그래머가 아니라면 16진수를 볼 수 있는 곳은 많지 않다.
🔹 웹페이지의 색상에 16진수가 사용
👌 컴퓨터에서 색상을 표현하는 가장 일반적인 방법
- 각 픽셀에 3바이트를 사용하는 것
- 각 바이트는 적색의 양, 녹색의 양, 청색의 양 -> 이 방법을 RGB인코딩 이라고 한다.
- 각각 256개의 색상 표현 가능(다 합치면 256 x 256 x 256)
- 유니코드 코드표에서 문자를 식별하고자 16진수를 사용한다.
5️⃣ 컴퓨터의 32비트와 64비트
컴퓨터는 내부적으로 데이터를 다양한 크기의 덩어리(수와 주소를 포함) 단위로 조작
👌 수
32비트와 64비트가 편리하게 사용
👌 주소
메모리상에 있는 정보의 위치
6️⃣ 비트와 바이트
- 비트 모음의 의미가 상황에 따라 결정된다는 것
- 보이는 것만 가지고 비트가 무엇을 의미하는지 식별할 수는 없다.
🔹 참 또는 거짓을 나타내는 비트 한개와 사용되지 않는 비트 일곱개
🔹 다른 표기 체계에서 문자 한개의 일부
🔹 2바이트, 4바이트, 또는 8바이트로 표현되는 큰 수의 일부
🔹 사진이나 음악 작품의 일부분
🔹 프로세서가 실행할 명령어의 일부
🔹 프로그램을 실행할 때는 그 비트들이 CPU에 의해 처리되면서 명령어로 취급된다.
- 어떤 프로그램의 데이터는 다른 프로그램의 명령어가 되기도 한다. 하지만 프로그램을 실행할 때는 그 비트들이 CPU에 의해 처리되면서 명령어로 취급된다.
✅ 하드웨어 14번 : 프로세서는 무조건 빠른게 좋을까?
1️⃣ 프로세서
CPU(중앙처리장치)로 코어, 코프로세서, MMU, 캐시 등으로 구성되어 있다.
🔹 코프로세서(보조프로세서) : CPU의 기능을 보충하는 컴퓨터 프로세서
🔹 MMU : CPU 코어 안에 탑재되어 있는 가상 주소를 실제 메모리 주소로 변환해주는 장치
🔹 CPU 성능 : 클럭, 코어 수, 명령어 처리 횟수에 따라 결정된다.
🔹 클럭 : CPU의 속도를 나타내는 단위로 1초 동안 파장이 한 번 움직이는 시간을 의미한다.
CPU는 사용자가 입력한 프로그램의 명령을 해석하고 그 결과를 출력하는 역할을 한다(반복).
실행할 때 메모리에서 정보를 가져온다.
🔹 프로세서 속도 : 매우 빠르다(명령어 1개 수행시간 < 1나노초)
🔹 나노 : 10억분의 1
🔹 메모리 속도 : 상대적으로 매우 느리다(명령어 1개 인출시간 -> 10~20 나노초
프로세서 속도는 빠르지만 메모리 속도가 느려서 캐시(cache)라는 고속 메모리를 사용한다.
🔹 cache : 프로세서와 메모리 사이에 있고 최근 사용된 명령어와 데이터를 담고 있어서 메모리에서 정보가 오기를 기다리는 것보다 캐시에서 정보에 접근하는 것이 빠르다.
컴퓨터 설계자들은 프로세서가 더 빨리 작동하도록 만들기 위해 여러가지 아키텍처 기법을 동원한다.
🔹 컴퓨터 아키텍처 : 프로세서 설계와 프로세서와 컴퓨터 나머지 부분간의 연결방식 설계
2️⃣ 아키텍처 기법
👌 파이프라이팅
인출과 실행 단계가 겹치도록 프로세서를 설계해서 명령어 여러 개가 다양한 단계에 걸쳐 진행되도록 만든 것
명령어 한 개의 완료 시간은 같지만 여러 개의 명령어를 동시에 처리하므로 처리 속도가 빠르다.
👌 병렬적 실행
명령어들이 서로 간섭하거나 의존하지 않을 때 명령어를 병렬적으로 실행한다.
명령어들이 상호작용하지 않는다면 가끔 명령어의 순서를 바꿔 실행하는 일도 가능하다.
👌 동시 작업
프로세서 여러 개가 동시에 작업하도록 하는 기법
오늘날 노트북과 휴대전화에서 표준으로 사용되는 기술이다.
개별 프로세서는 더 이상 빨라지지 않지만 더 많은 코어를 사용해서 연산 속도를 증가시킨다.
🔹 코어 : CPU 안에서 일하는 부품으로 각종 연산을 하는 CPU의 핵심요소
예를 들어, 100만큼의 일을 하는데 코어는 초당 5의 일을 한다면, 코어 한 개가 일하면 완료까지 20초가 걸리지만 코어 2개가 일을 한다면 10초로 시간이 줄어든다.
이렇게 코어를 늘려서 속도를 증가시키는데 코어가 1개면 싱글코어, 2개면 듀얼코어, 3개면 트리플코어라고 부른다.
설정 -> 시스템 -> 정보에서 컴퓨터의 프로세서를 확인할 수 있다.
위 사진에서 보이는 코어 I7은 4개의 코어와 8개의 쓰레드 단위로 데이터를 처리할 수 있다.
🔹 쓰레드 : 운영체제에서 인식하는 논리적인 데이터 작업 단위를 의미한다.
데스크톱과 노트북용 프로세서 : 인텔과 AMD의 프로세서
2020년 4분기, 2021년 3,4분기, CPU 전체 출하량 비율
🔹 휴대전화와 태블릿 PC 프로세서 : ARM 프로세서
🔹 ARM 반도체 설계도(라이선스) : RISC(Reduced Instruction Set Computer)를 기반으로 한다.
🔹 RISC : 명령어 개수를 대폭 줄인 프로세서 설계 방식으로 해석해야할 명령어 개수가 적기 때문에 실행 속도가 빠르고 명령어를 해석하는 데 드는 에너지 소모가 적어서 저전력으로 구동할 수 있다. 따라서 모바일 기기에 적합하다.
이렇게 x86은 pc 서버용, ARM은 모바일용이라는 인식이 있지만 최근에 애플이 자체 pc용 침 M1을 출시한 이후 ARM기반 pc용 프로세서 시장 점유율이 지속해서 성장하고 있어서 위와 같은 인식은 사라지고 있다.
✅ 하드웨어 15번 : 캐시가 뭔가요?
1️⃣ 캐시(Cache)란?
프로세서에서 캐시는 용량이 작고 속도가 빠른 메모리이다.
- 주기억장치는 용량이 더 크지만 훨씬 느리다. 프로세서가 매번 여기에 접근하는 것을 피하기 위해 캐시 메모리에 최근에 사용된 정보를 저장하는데 사용된다.
- 데이터나 값을 미리 복사해 놓는 데이터 임시 기억 장소를 가리킨다. 캐시를 이용하지 않았을 때의 데이터 접근 시간이 오래 걸리는 경우나 값을 다시 연산하는 시간을 단축하기 위해 사용된다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다.
- 아래와 같이 저장공간 계층 구조에서 확인할 수 있듯, 캐시는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.
2️⃣ 캐시 레벨, 종류
- 일반적인 프로세서에는 캐시가 2~3개 존재한다. 보통 L1, L2, L3 레벨이라고 부른다. 숫자가 뒤로 갈수록 속도는 느려지고 용량은 크다. 가장 큰 캐시가 몇 MB단위로 데이터를 담을 수 있다.
👌 CPU 내부 캐시
대용량의 메인 메모리 접근을 빠르게 하기 위해 CPU 칩 내부나 바로 옆에 탑재하는 작은 메모리이다. 메모리 접근 속도가 늘어나는 것에 비해 CPU의 처리 속도가 훨씬 빠르게 늘어나고 있기 때문에, 용량은 작지만 속도가 빠른 CPU 캐시는 현재 마이크로프로세서의 성능에 직접적인 영향을 미친다.
👌 그래픽 카드 GPU의 내부 캐시
🔹 Local Cache
Local 장비 내에서만 사용되는 캐시로 Local 장비의 Resource를 이용한다. Local에서만 작동하기 때문에 속도가 빠르며 다른 서버와 데이터 공유가 어렵다.
🔹 Global Cache
여러 서버에서 Cache Server에 접근하여 사용하는 캐시로 분산된 서버에서 데이터를 저장하고 조회할 수 있다. 네트워크를 통해 데이터를 가져오므로, Local Cache에 비해 상대적으로 느리다. 별도의 Cache 서버를 이용하기 때문에 서버간의 데이터 공유가 쉽다.
3️⃣ 캐시의 효과 및 특성
👌 캐싱이 효과적인 이유
최근에 사용된 데이터가 곧 다시 사용될 가능성이 있거나(시간적 지역성), 근처에 있는 데이터를 사용할 가능성이 있을 때(공간적 지역성) 캐시에 데이터를 갖고 있다는 것은 메모리 작업을 기다리는데 시간을 덜 쓴다는 것을 의미한다.
Cache는 아래와 같은 경우에 사용을 고려하면 좋다.
🔹 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우(서버의 균일한 API 데이터)
🔹 반복적으로 동일한 결과를 돌려주는 경우(이미지나 썸네일 등)
👌 시간적 지역성
특정 데이터가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것을 시간적 지역성이라고 한다.
👌 공간적 지역성
특정 데이터와 가까운 주소가 순서대로 접근되었을 경우를 공간적 지역성이라고 한다. CPU 캐시나 디스크 캐시의 경우 한 메모리 주소에 접근할 때 그 주소 뿐 아니라 해당 블록을 전부 캐시에 가져오게 된다. 이때 메모리 주소를 오름차순이나 내림차순으로 접근한다면, 캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시의 효율성이 크게 향상된다.
- 메모리 상의 같은 주소에 여러 차례 읽기 쓰기를 수행할 경우, 상대적으로 작은 크기의 캐시를 사용해도 효율성을 꾀할 수 있다.
- 캐싱 과정에서 정보를 블록단위로 동시에 불러온다. 그 이유는 인접한 정보라면 곧 사용될 가능성이 높아 미리 불러와 두면 캐시에서 바로 꺼내 쓰기 좋기 때문이다.
4️⃣ 캐시 사용 예시
예시1) 웹 브라우저에서 캐시 삭제화면 웹 브라우저는 특정 웹페이지에 포함된 이미지가 용량이 크거나 용량이 큰 다른 데이터를 불러와야 할 경우, 서버에서 처음부터 다시 다운받는 것보다 이미 가지고 있는 로컬 사본을 사용하면 웹 페이지를 더 빠르게 불러올 수 있다. 그렇다고 캐시 용량이 무한정 커질 순 없기 때문에 오래된 항목부터 제거되고 새로 받은 최근 데이터가 캐시에 일부분으로 대체된다.
예시2) 캐시로 인한 속도개선 효과를 직접 바로 경험해볼 수 있다. 예를 들어, 워드, 파이어폭스 같은 프로그램을 실행한 뒤 해당 프로그램을 종료하고 바로 재시작 해본다. 그러면 보통은 두 번째로 실행했을 때 로딩시간이 더 짧다. 그 이유는, 해당 프로그램의 명령어가 아직 메모리에 남아있기 때문이다. 메모리가 디스크에 대한 캐시로 사영된 것이다. 시간이 더 흐른다면 다른 프로그램들을 사용하면서 메모리에는 다른 명령어와 다른 데이터로 채워지고(캐시는 오래된 데이터를 지우고 최근 데이터를 우선 담기 때문에) 원래 처음에 사용한 프로그램은 더이상 캐싱되지 않을 것이다.
예시3) 워드나 엑셀같은 Office 프로그램에서 최근에 사용된 파일 목록을 확인할 수 있다. 이 경우도 일종의 캐싱이다. 가장 최근에 사용한 파일들을 기억하고 있다가 메뉴에 표시되게 하여, 사용자가 처음부터 검색하고 찾아볼 필요가 없게 한다. 이 경우도 캐시의 특성에 따라 오랫동안 접근하지 않았던 파일의 이름은 최근에 사용한 파일의 목록으로 대체된다.
✅ 하드웨어 16번 : 슈퍼컴퓨터부터 사물인터넷까지
👌 컴퓨터의 속성
- 모두 논리적 구조, 즉 무엇을 계산할 수 있는지에 대해서 공통된 핵심 속성을 가지고 있다.
- 비슷한 아키텍처를 가지고 있으나, 가격, 소모, 전력, 크기, 속도 등에서 서로 다른 트레이드오프를 보인다.
* 아키텍처 : 기능 면에서 본 컴퓨터의 구성 방식
* 트레이드오프 : trade off, 신뢰도에서 여러 가지 인자 사이의 균형을 생각하여 어디에선가 손을 쓰지 않으면 안 된다. 이와 같이 손을 쓰는 것을 트레이드 오프라고 한다. 예를 들면 비용과 신뢰도, 무게와 여유도 등의 균형을 도모하는 등이 있다.
1️⃣ 사물인터넷
네트워크에 연결된 온도 조절 장치, 보안 카메라, 스마트 조명, 음성 인식 장치를 포함한 수많은 기기도 프로세서를 기반으로 작동한다.
2️⃣ 슈퍼컴퓨터
- 과학기술 연산을 비롯한 다양한 분야에 사용되는 고속 컴퓨터, 보통 많은 수의 프로세서와 대량의 메모리를 사용한다.
- 사용되는 프로세서 자체도 종래 프로세서보다 특정 종류의 데이터를 훨씬 빨리 처리하는 명령어로 구성되어 있다.
👌 요즘의 슈퍼컴퓨터
전용 하드웨어를 사용하는 대신, 속도는 빨라도 기본적으론 평범한 프로세서로 구성된 클러스터를 기반으로 구현
👌 슈퍼컴퓨터의 속도
플롭스 flops, 즉 초당 수행할 수 있는 부동 소수점 연산 횟수(floating point operations per second)로 측정된다.
* 부동 소수점 연산 횟수 : 소수 부분을 포함하는 수에 대한 산술 연산
3️⃣ GPU(Graphics Processing Unit)
범용 CPU보다 그래픽 관련 계산을 훨씬 빠르게 수행하는 그래픽 전용 프로세서, 원래는 게임에 필요한 고속 그래픽 처리를 위해 개발되었었으며 휴대전화용 음성처리나 신호 처리에도 사용된다.
GPU는 특히 머신러닝에 유용하다. 머신러닝에서는 큰 데이터셋의 여러 부분에 같은 계산을 독립적으로 수행할 일이 많기 때문이다.
4️⃣ 분산 컴퓨팅(distributed computing)
네트워크로 연결되어 서로 독립적으로 작동하는 여러 대의 컴퓨터로, 메모리를 공유하지 않고 물리적으로 넓게 흩어져 있다.
🔹 단점 : 컴퓨터가 흩어져 있을 수록 통신이 잠재적 병목 현상을 일으킬 가능성이 커질 수도 있다.
🔹 장점 : 멀리 떨어져 있어도 상호 협력해서 일할 수 있다는 장점이 있다.
예시 : 검색 엔진, 온라인 쇼핑, SNS, 일반적인 클라우드 컴퓨팅 같은 대규모 웹서비스
5️⃣ 튜링 머신
영국의 수학자 앨런 튜링이 증명한 것
컴퓨터가 매우 상식적인 수준에서 계산 가능한 것이면 어떤 것이든 계산할 수 있다는 것
👌 튜링 테스트
컴퓨터가 인간 수준의 지적 능력을 보여줄 수 있는지를 평가하는데 사용할 테스트를 제안한 것
한쪽은 컴퓨터가 다른 한쪽은 인간일 때, 질문자가 대화를 통해 어느 쪽이 컴퓨터인지 알아낼 수 있는지 테스트해 본다. 튜링은 질문자가 인간과 컴퓨터를 확실히 구분할 수 없다면, 컴퓨터가 인간 수준의 지적 행동을 수행하는 것이라고 보았다.
👌 캡차(CAPTCHA)
컴퓨터와 인간을 구별하기 위한 완전 자동화된 공개 튜링 테스트의 약자
왜곡된 문자 패턴으로서, 웹사이트 사용자가 프로그램이 아니라 인간임을 확인할 용도로 폭넓게 사용된다.
🔹 역 튜링 테스트의 한 사례
일반적으로 사람이 컴퓨터보다 시각적인 패턴을 더 잘 식별할 수 있다는 점을 이용하여 인간과 컴퓨터를 구별하려는 시도