컴퓨터아키텍처
Computer Architecture
2016-03-09
수업 계획 및 기본 개념
수업 계획
- 교과서는 학교 서점에 있음
- Computer Organization and Design:
the hardware/software interface (5th ed. Asian ed.)
Patterson & Hennessy, Elsevier Korea LLC
- Computer Organization and Design:
- 평가 계획
- 출석/퀴즈 25%, 과제 25%, 중간 25%, 기말 25%
- 프로그래밍 실습 있음 (MIPS 어셈블리 등)
- 기본적인 프로그래밍에 익숙해야 함
(데이타 구조 또는 시스템 프로그래밍 수업 등) - 디지털시스템 수업도 들은 것이 좋음
- 기본적인 프로그래밍에 익숙해야 함
과제 제출 안내
- Google Drive 공유 폴더를 통해 (종이 X, 메일 X)
-
[새로 만들기] 버튼을 눌러
CA16<이름><학번> 폴더를 만들고 (예: CA16김연아123456)
만들어진 폴더를 우클릭하여 나오는 드롭메뉴에서
폴더 공유설정으로 kyagrd@gmail.com 에게 공유 (편집권한) - Google 메일 계정만 있으면 Google Drive 서비스 이용 가능
- Google 메일 계정은 무료로 만들 수 있으며
참고로 안드로이드 스마트폰 사용자는 누구나 이미 보유
기본 개념
- 메모리 구조(Memory Heirarchy)와 캐시(Cache)
- Concurrency (동시성) vs. Parallelism (병렬)
- CPU 연산과 및 데이타 처리의 병렬성에 따른 아키텍처 분류
- SISD - 1 Instruction, 1 Data 병렬 없음
- SIMD - 1 Instructin, Multiple Data 벡터 프로세싱
- MISD - Multiple Instruction, 1 Data 파이프라이닝
- MIMD - Mutiple Instruction, Multiple Data 멀티코어 등
- CPU 연산 유닛(ALU)에서 사용하는 메모리 구조에 따라
- 레지스터 머신 (요즘 대부분의 물리적인 CPU들)
- 스택 머신 (예: 자바 가상 머신 JVM)
메모리 구조와 캐시
- 메모리는 빠를수록 비싸고 대부분 휘발성(volatile)
- CPU의 연산 유닛(ALU)과 가까울수록
소량의 빠른 메모리를 배치 멀어질수록
느린 대량의 메모리 배치하는 구조- 예: 레지스터, L1캐시, L2캐시, RAM, SSD/HDD, 테이프
- 캐싱(Caching) - 자주 사용할 데이타를 빠른 메모리에 올려 놓음으로써 평균적인 성능 향상을 도모
- HW 구성 뿐 아니라 SW아키텍쳐에서도 필수적인 개념예) DBMS에 매번 직접 접속하여 쿼리하는 것이 시스템에 부담이 될 경우 미들웨어 등과 같은 캐시 서버를 도입
- DBMS 소프트웨어 자체도 많은 양의 데이타를 디스크에 저장하지만 자주/최근 사용한 내용을 메인 메모리에 캐시
Concurrency (동시성) vs. Parellelism (병렬성)
- 동시성은 여러 가지 일들이 서로 완전히 다 끝나는 것을 기다리지 않고 계속 진행될 수 있음을 의미 (멀티태스킹)
- 한 사람이 여러 프로젝트를 동시에 진행할 수 있다
- 싱글 코어 CPU로도 time-sharing으로 동시성을 구현
- 병렬성 - 실제 물리적으로 한꺼번에 여러가지 일이 처리됨
- 병렬성을 이용해 동시성을 더 효과적으로 구현할 수도
- 멀티태스킹(여러가지 일을 한꺼번에 진행)이 아니라 한 가지 일이라도 그 한 가지 일을 쪼개 병렬처리하면 더 빨리 끝마칠 수 있다
MIPS 어셈블리 실습
- SPIM 시뮬레이터 사용
- 홈페이지에서 다운로드
http://spimsimulator.sourceforge.net/
컴퓨터아키텍처
By 안기영 (Ahn, Ki Yung)
컴퓨터아키텍처
2016-03-09
- 1,964