컴퓨터 혁명
- 컴퓨터 기술의 진보는 점점 가속화 되고 있다.
- 또한 이전에 생각하지 못한 새로운 애플리케이션을 실현 가능하게 만든다.
- 자동차의 컴퓨터
- 휴대폰
- 인간 게놈 프로젝트
- 월드와이드웹
- 검색 엔진
- 이제는 컴퓨터는 널리 보급되어 있다.
컴퓨터의 종류
- 개인용 컴퓨터(PC)
- 범용, 다양한 소프트웨어
- 비용/성능 상충관계에 따라 달라질 수 있다.
- 서버 컴퓨터
- 네트워크 기반
- 고용량, 성능, 신뢰성
- 소형 서버부터 건물 규모까지 다양하다.
- 슈퍼컴퓨터
- 서버 유형
- 고급 과학 및 공학 계산
- 최고의 성능을 제공하지만 전체 컴퓨터 시장에서 작은 부분을 차지한다.
- 임베디드 컴퓨터
- 시스템의 구성요소로 숨겨져 있다.
- 엄격한 전력/성능/비용 제약
- 연산 복잡도에 따라서 배터리가 기하급수적으로 닳는다.
- 따라서 연산이 복잡하면 안된다.
포스트 PC 시대
- 개인용 모바일 장치(PMD)
- 배터리로 작동
- 인터넷에 연결된다.
- 수백 달러
- 스마트폰, 태블릿, 전자안경
- 클라우드 컴퓨팅
- 창고 규모 컴퓨터(WSC; Warehouse Scale Computers)
- 서비스형 소프트웨어(SaaS; Software as a Service )
- 소프트웨어의 일부는 PMD에서 실행되고 일부는 클라우드에서 실행된다.
- 아마존과 구글
배우게 될 내용
- 프로그램이 기계어로 번역되는 방식
- 하드웨어가 이를 실행하는 방법
- 하드웨어/소프트웨어 인터페이스
- 프로그램 성능을 결정하는 요소
- 그리고 어떻게 개선할 수 있는지
- 하드웨어 설계자가 성능을 향상시키는 방법
- 병렬 처리란 무엇인가
- 1) 멀티코어 / 2) 싱글코어에서 명령어를 중첩(파이프라인)
퍼포먼스 이해
- 알고리즘 : 실행되는 작업 수를 결정
- 프로그래밍 언어, 컴파일러, 아키텍처 : 작업당 실행되는 기계 명령어 수를 결정
- 프로세서, 메모리 시스템 : 명령이 얼마나 빨리 실행되는지 결정
- I/O 시스템(OS 포함) : I/O 작업이 얼마나 빨리 실행되는지 결정
7가지 훌륭한 아이디어
- 추상화(abstraction)를 사용하여 디자인 단순화
- 일반적인 경우를 빠르게 만들기
- 많이 사용되는 것을 집중시켜 발전 시키기
- 병렬성을 통한 성능
- 파이프라이닝(pipelining)을 통한 성능
- 예측(prediction)을 통한 성능
- 메모리의 계층(Hierarchy)
- 중복성(Dependability)을 통한 신뢰성
프로그램 내부
- 응용 소프트웨어
- 고급 언어로 작성
- 고급 언어로 작성
- 시스템 소프트웨어
- 컴파일러: 고급언어를 기계어로 변환
- 운영 체제: 서비스 코드
- 입출력 처리
- 메모리 및 저장소 관리
- 작업 예약 및 리소스 공유
- 하드웨어
- 프로세서, 메모리, I/O 컨트롤러
프로그램 코드 레벨
- 고급 언어(High-level language)
- 도메인에 가까운 추상화 레벨
- 생산성과 휴대성
- 어셈블리어(Assembly language)
- 명령어의 텍스트 표현
- 명령어의 텍스트 표현
- 하드웨어 표현
- 이진수(비트)
- 인코딩된 명령어 및 데이터
고급언어(C) | swqp(int v[ ], int k) { int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } |
↓ 컴파일러 ↓ |
|
어셈블리어(MIPS) | swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $15, 4($2) jr $31 |
↓ 어셈블러 ↓ |
|
기계어(MIPS) | 00000000101000010000000000011000 00000000000110000001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 00000011111000000000000000001000 |
컴퓨터의 구성요소
- 모든 종류의 컴퓨터에 동일한 구성 요소
- 데스크탑, 서버, 임베디드
- 데스크탑, 서버, 임베디드
- 입력/출력
- 사용자 인터페이스 장치 : 디스플레이, 키보드, 마우스
- 저장 장치 : 하드 디스크, CD/DVD, 플래시
- 네트워크 어댑터 : 다른 컴퓨터와 통신
터치 스크린
- 포스트 PC 장치
- 키보드와 마우스를 대체
- 감압식 정전식
- 대부분의 태블릿, 스마트폰은 정전식 사용
- 정전식으로 동시에 여러 터치 가능
화면
- LCD 화면: 그림 요소(픽셀)
- 프레임 버퍼 메모리의 내용을 미러링
프로세서(CPU) 내부
- 데이터 경로 : 데이터에 대한 작업을 수행
- 제어 : 시퀀스 데이터 경로, 메모리, ...
- 캐시 메모리 : 데이터에 즉시 액세스할 수 있는 작고 빠른 SRAM 메모리
추상화(Abstractions)
- 추상화는 복잡성을 처리하는 데 도움 : 하위 수준 세부정보 숨기기
- 명령어 세트 아키텍처(ISA) : 하드웨어/소프트웨어 인터페이스
- 애플리케이션 바이너리 인터페이스 : ISA와 시스템 소프트웨어 인터페이스
- 구현 : 기본 및 인터페이스 세부정보
데이터 저장장소
- 휘발성 메인 메모리
- 전원이 꺼지면 지침과 데이터가 손실
- 비휘발성 보조 메모리
- 자기디스크
- 플래시 메모리
- 광디스크(CDROM, DVD)
네트워크
- 통신, 리소스 공유, 비로컬 액세스
- LAN(근거리 통신망) : 이더넷
- WAN(광역 네트워크) : 인터넷
- 무선 네트워크 : WiFi, 블루투스
기술동향
- 전자기술은 계속 발전하고 있다.
- 용량 및 성능 증가
- 비용 절감
반도체 기술
- 실리콘 : 반도체
- 속성을 변환하기 위해 재질을 추가
- 전도체
- 절연체
- 스위치
직접 회로 비용
Cost per die = Cost per wafer / Dies per wafer X Yield
Dies per wafer ≒ Wafer area / Die area
Yield = 1 / ( 1 + (Defectsper area X Die Area / 2)^2 )
- 면적 및 결함률과의 비선형 관계
- 웨이퍼 비용 및 면적은 고정되어 있음
- 제조공정에 따라 불량률이 결정됨
- 아키텍처 및 회로 설계에 따라 결정되는 die 면적
'컴퓨터시스템구조' 카테고리의 다른 글
[컴퓨터시스템구조] 06. MIPS 포맷(R-포맷, I-포맷) (1) | 2023.10.14 |
---|---|
[컴퓨터시스템구조] 05. Signed, Unsigned, 2의 보수 (0) | 2023.10.14 |
[컴퓨터시스템구조] 04. MIPS 명령어(add, sub, addi, zero) (1) | 2023.10.13 |
[컴퓨터시스템구조] 03. 성능 측정 (0) | 2023.10.13 |
[컴퓨터시스템구조] 01. 개요 (0) | 2023.10.13 |