어떤 종류의 컴퓨터를 쓰는가?
-
개인용 데스크탑 컴퓨터
-
서버(클라우드) 컴퓨터
-
슈퍼컴퓨터
-
모바일/유비쿼터스 컴퓨터
왜 우리는 컴퓨터를 바꾸는가?
컴퓨터의 발전
- HW 기술의 발전을 통해
- 무어의 법칙 : 반도체 집적회로의 성능은 24개월마다 2배로 증가한다는 법칙

- 새로운 컴퓨터 구조의 등장
- 멀티 프로세서(한 컴퓨터에 2개 이상의 CPU 장착된 것)
- 계층적 메모리(e.g. 캐쉬)

- 새로운 종류의 프로세서(e.g. GPU, TPU)
하드웨어와 소프트웨어에 대한 간략한 설명

-
응용 소프트웨어
- high-level language로 적혀있음
-
시스템 소프트웨어
- 컴파일러 : high-level language에서 machine language로 번역
- 운영체제(OS) : 입출력 작업 관리, 자원 관리(e.g. 메모리, 저장), 스캐줄링
-
하드웨어
프로그램 수행
1단계 : 언어 번역
high-level 언어 -> 하드웨어 기계어
- high-level 언어
- 특정한 도메인을 위해 디자인 됨
- 생산성과 휴대성 제공
- 하드웨어 기계어
- 어셈블리어는 기계어와 일대일 대응되는 컴퓨터 프로그래밍 저급언어이다.
2단계 : 입/출력, 처리, 데이터 저장
- 4가지 기초적인 하드웨어 구성요소
- 프로세서
- 메모리
- 입력 장치
- 출력장치
1) 로딩 : 프로그램은 메모리에 저장된다.
2) 입력 : 입력 장치는 데이터를 메모리에 작성한다.
3) 불러오기(fetch) : 프로세서는 메모리로부터 지시사항과 데이터를 불러온다.
4) 디코딩 : 프로세서(제어)는 지시사항을 디코딩하고 뭘 할지 정한다.
5) 실행 : 프로세서(데이터 경로)는 지시사항을 수행하고, 메모리에 연산결과를 저장한다.
6) 출력 : 출력 장치는 메모리로부터 출력데이터를 읽고 결과를 내보낸다.
프로그램 성능
-
다양한 SW/HW 구성요소는 프로그램의 성능에 영향을 미친다. (프로그램의 성능 = 프로그램 수행 시간)
-
알고리즘
-
프로그램 언어, 컴파일러, 명령어 집합체(ISA)
-
프로세서, 메모리 시스템
-
입/출력 장치(OS 포함)
- 입/출력 연산이 얼마나 빠르게 진행되는지 결정
ISA란?(규칙이 적힌 문서)
- SW와 HW 사이의 인터페이스(기계 지시사항 집합 포함)
- SW는 ISA에 포함된 기계지시사항으로 번역된다.
- HW는 ISA의 지시사항을 지원하기 위해 만들어짐(ISA로 정의된 SW만 HW에 수행될 수 있다.)
더 좋은 컴퓨터 구조를 디자인하기 위한 8가지 아이디어
-
무어의 법칙
-
단순화를 위한 추상화 제공
- SW 발전의 편의를 위해 Low-Level 세부사항을 숨긴다.
-
일반적인 케이스를 더 빠르게 만든다.
- 특별한 케이스에 대해 최적화 하는 대신에 일반적인 케이스의 성능을 향상시킨다.
-
병렬성을 통한 성능
-
파이프라이닝을 통한 성능
- 파이프라이닝이라 불리는 특정한 병렬 패턴을 이용한다.
-
예측을 통한 성능
- 확실히 알때 까지 기다리기보다는 예측을 통해 작업을 시작한다.
-
계층적 메모리
- 가장 빠르고, 작고, 비싼 메모리를 가장 높은계층에 가장 느리고, 크고, 가격이 싼 메모리를 가장 낮은 계층에 위치시킨다.
-
중복을 통한 의존성
- 실패가 발생시 댜채할 수 있는 중복 구성 요소를 포함한다.