[CS] Lecture2

Minsol·2024년 10월 14일
0

🖥️CS

목록 보기
2/12

Chapter1. Computer Abstractions and Technology (컴퓨터 추상화와 기술)

Risc-V와 MIPS의 차이

Risc-V

  • 2010년 캘리포니아 대학교(버클리)에서 설계한 오픈 소스 명령어 집합 구조(ISA == open-source instruction set architecture)
  • 기존의 독점적인 ISA의 한계와 폐쇄성에 대응하여 개발됨

MIPS

  • 1980년대 스탠포드 대학교 연구원들이 개발한 RISC 기반의 명령어 집합 구조
  • 가전제품 및 임베디드 시스템을 포함한 다양한 산업에서 널리 사용됨

RISC-V의 장점

    1. 오픈소스 ISA -> 하드웨어 및 소프트웨어 개발에서 맞춤화, 유연성, 혁신을 가능하게 함 + 협업과 커뮤니티 중심의 개선을 촉진하여 독점 아키텍처에 대한의존 낮아짐
    1. 다양한 산업 및 응용분야에서 활용
      임베디드 시스템, 사물인터넷(IoT), 고성능 컴퓨팅, 서버 등에서 주목받음 (오픈소스이므로 컴퓨터 외 다른 영역에도 활용)
    1. 고정된 수의 레지스터 but 정수와 부동소수점 연산을 위해 별도의 레지스터 파일 사용! (x0-x31) => 분리된 레지스터 인해 연산 100배 이상 fast(인공지능에서 쓰이는 이유)

vs MIPS

    1. not 오픈소스 -> 맞춤화 및 수정이 제한됨
    1. 네트워킹, 통신, 가전제품, 디지털 미디어 응용 분야에서 강력한 입지 (not 오픈소스이므로 컴퓨터공학 강세한 부분에서 쓰임)
    1. 고정된 수의 레지스터 but 정수와 부동소수점 연산을 위해 통합된 레지스터 파일 사용! ($0-$31)

Below Your Program(프로그램의 하위 계층)

  • Application Software
    • 고급 언어(HLL == high-level)로 작성됨
  • 시스템 소프트웨어(System software)
    - 컴파일러(compiler): HLL을 기계어로 변환
    • 운영체제(operating system)
      • 입력과 출력 처리
        • 메모리와 저장소 관리
        • 작업 스케쥴링 & 자원 공유
  • 하드웨어(Hardware)
    - 프로세서, 메모리, I/O 컨트롤러

Software의 적용

컴퓨터 자체의 운영과 관련x인 특정 작업을 수행하기 위해 설계된 software로, 최종 사용자가 사용함!

  • 3가지 유형
      1. Desktop App(데스크톱 앱): 개인용 컴퓨터, 노트북에서 실행되는 앱
      1. Web App(웹 앱): 인터넷과 인트라넷 같은 네트워크로 접근하는 앱
      1. Mobile App(모바일 앱): 스마트폰, 태블릿 등 기타 모바일 기기에서 실행되도록 설계된 앱

System Software

하드웨어와 직접적으로 관련된 프로그램으로, 하드웨어를 제어하고 활용하는 작업을 수행함

  • 3가지 유형
      1. 시스템 제어 프로그램: 프로그램의 실행 제어, 컴퓨터의 저장 및 처리 자원을 관리, 기타 관리 및 모니터링 기능을 수행 ex. OS(운영체제)
      1. 시스템 지원 프로그램: 다른 컴퓨터 프로그램과 사용자에게 일상적인 서비스를 제공 ex. 유틸리티 프로그램
      1. 시스템 개발 프로그램: 응용 프로그램을 생성하는 데 도움 ex. 컴파일러, 어셈블러

Program Code의 Level

  1. HLL(고급언어) : 사람이 이해할 수 o
  • 생산성과 이식성(portability)을 제공함
  • 문제 도메인과 가까운 추상화 수준
  1. 어셈블리어
  • 명령어의 텍스트 표현
  1. 하드웨어 표현
  • 이진수(bit)로 표현
  • 인코딩돤 명령어와 데이터

🚨순서
우리가 작성한 코드(c언어-HLL) ---(컴파일러)---> 어셈블리어 ---> 2진수 기계어

Volatile vs Non-volatile 기억장치 차이

  • Volatile Main Memory(휘발성 주기억장치)
    -전원이 꺼지면 명령어와 데이터 사라짐 ex. 캐시메모리
    -> 빠르게 동작할 수 있게 함!

  • Non-Volatile Secondary Memory(비휘발성 주기억장치)
    - Magnetic disk 자기디스크 ex. HDD
    - Flash memory 플래시메모리 ex. USB, SD

    • Optical disk (CDROM, DVD) 광학디스크 ex. CD

공식

집적 회로 비용(Integrated Circuit Cost)

  • 면적과 결함률(defect rate)의 비선형 관계
    • wafer의 비용, 면적은 고정되어 있음
    • defect rate은 제조 공정에서 결정됨
    • die 면적은 아키텍쳐와 회로 설계에 의해 결정됨

상대적 성능(Relative Performance)

  • 성능 = 1 / 실행시간
  • X는 Y보다 n배 더 빠르다 (== X의 성능이 n

Define Performance = 1/Execution Time
(성능 정의: 성능 = 1 / 실행 시간)

CPU Clocking

  • 디지털 하드웨어의 동작은 일정한 속도의 clock에 의해 제어됨
  • clock period(클럭 주기): clock 사이클의 지속 시간
    -ps -> ns (250ps = 0.25ns = 250×10­¹²s)
  • clock frequency(rate) (클럭 주파수, 속도): 초 당 사이클 수
    Clock (cycles)
    -GHz -> MHz (4.0GHz = 4000MHz = 4.0×10⁹Hz)

CPU Time

  • 성능 개선하려면?
    • clock cycle의 수 줄임
    • clock rate 높임
    • 하드웨어 설계자는 클록 사이클 수와 속도를 잘 절충해야함 (trade-off)

Instruction Count and CPI (명령어 수와 CPI)

  • 프로그램의 명령어 수
    • 프로그램, ISA, 컴파일러에 의해 결정됨
  • 명령어당 평균 사이클 수, CPI(cycles per instruction)
    • CPU 하드웨어에 의해 결정됨
    • 서로 다른 명령어들이 다른 CPI를 가질 경우, 명령어 구성에 따라 평균 CPI가 영향받음


서로 다른 명령어가 서로 다른 사이클 수를 요구하는 경우

Performance Summary

  • 성능에 영향을 미치는 것
    • 알고리즘: IC(명령어 수) (가끔 CPI에도 영향 줌)
    • 프로그래밍 언어: IC, CPI
    • 컴파일러: IC, CPI
    • ISA(명령어 집합 아키텍쳐): IC, CPI, 클록 사이클 시간

암달의 법칙(Amdahl's Law) :성능 향상의 한계

Pitfall(함정): 컴퓨터의 한 부분을 개선하면, 전체 성능이 비례하여 향상될것이라고 기대하는 것.

즉, 시스템의 일부를 개선한다고 해서 전체 성능이 항상 비례해서 개선되는 것은 아니라는 것을 설명하는 법칙
(== 즉, 성능 개선을 할 수 있는 부분이 작으면, 해당 부분을 아무리 빠르게 해도 전체 시스템 성능에는 큰 영향을 미치지 않는다는 것을 의미)


ex. 곱셈 연산이 100초 중 80초를 차지하는 경우, 전체 성능을 5배 향상시키기 위해서는 곱셈 성능을 얼마나 개선해야할까?

=> 불가능하다는 결론이 나옴
즉, 결론은 자주 발생하는 case를 빠르게 처리하는 것이 필요함

profile
👀

0개의 댓글