컴퓨터아키텍처

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 어셈블리 실습

컴퓨터아키텍처

By 안기영 (Ahn, Ki Yung)

컴퓨터아키텍처

2016-03-09

  • 1,886