컴퓨터아키텍처
Computer Architecture
2016-03-09
수업 계획 및 기본 개념
수업 계획
교과서는 학교 서점에 있음
Computer Organization and Design:
the hardware/software interface (5th ed. Asian ed.)
Patterson & Hennessy, Elsevier Korea LLC
평가 계획
출석/퀴즈 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/
Made with Slides.com