[컴퓨터구조] Ch2. Overview

김규원·2024년 4월 11일
post-thumbnail

▶ 소프트웨어 계층

시스템 소프트웨어는 사용자 애플리케이션이 하드웨어에서 실행할 수 있도록 도움을 제공

OS의 역할

  1. 메모리와 저장장치 할당
  2. 입/출력 동작을 처리
  3. 애플리케이션의 병렬 처리
  4. 기타

컴파일러의 역할

  1. 고수준 언어로 작성된 프로그램을 하드웨어가 실행할 수 있는 명령어로 변환
  2. c=a+b와 같은 고수준 언어는 바이너리로 된 머신 코드로 변환
  3. 하드웨어는 바이너리 값을 처리
    ex. 1001111010

▶ From High-Level Language to Machine Code

C언어와 같은 고수준언어를 어셈블리어로 변환한 후 기계 언어로 변환

코드로 변환할 때 여러 용어가 사용

  • Compiling, Assembling, Linking, Building
  • 일부 컴파일러는 중간 과정을 생략하고 직접 바이너리 코드를 만들기도 함.

고수준 언어를 강조하는 이유

장점

  1. 프로그래머의 자연스러운 이해
  2. 프로그래머의 생산성 증대
  3. 개발 시간 절약
  4. 개발하는 컴퓨터와 무관하게 프로그램을 만들 수 있음
  • 대상이 되는 머신에 최적화 된 효율적인 어셈블리 코드를 만드는 컴파일러의 등장
    즉, 컴파일러는 연구는 긴 역사를 가지고 있음.

▶ 디바이스 컴포넌트 예

apple iPad 2

  • Display
  • Battery
  • Logic Board

Logic Board of Apple iPad 2

  • A5 chip
  • Flash memory
  • Power controller chip
  • I/O controller chip

디바이스 컴포넌트 예

Inside the A5 chip

  • Two ARM processors
  • GPU with four data paths
  • DRAM interfaces
  • I/O controller chip

Intergrated circuit(chip, package)

Processors(a.k.a central processor unit, CPU)

  • 1) Datapath
    : performs arithmetic operations
  • 2) Control
    : tells datapath, memory, I/O device what to do

Interfaces & controllers

  • DRAM, I/O etc

Cache memory(SRAM)

  • Temporaily keeps data

Storage

  • Non-volatile(비휘발성): it fkeeps data after power loss
  • Hard disk drives(HDDs) or Solid state drives(SSDs) based on flash

Main memory

  • Volatile(휘발성): data is lost when power is removed
  • Dynamic: random access memory(DRAM)
  • Faster than storage, high cost per bit

Cache memory(built from SRAM)

  • Volatile as well
  • Static random access memory(SRAM)
  • Faster than DRAM, more expensive than DRAM

캐시 메모리는 SRAM으로 구성. SRAM은 정적 랜덤 액세스 메모리로, DRAM보다 더 빠르지만 더 비쌈. 또한 캐시 메모리는 휘발성이며, 전원이 차단되면 데이터가 손실

성능 측정(Performance Metrics)

성능이 좋다는 것은 무슨 의미?

  • 작업(task) 시작 시간과 완료 시간 사이의 차이

  • 개발 사용자에게 중요

  • 임베디드 혹은 랩탑 컴퓨터의 성능 평가에 사용

  • Throughput(처리량, bandwidth) - MB/s, GB/s ...
    : 주어진 시간에 완료한 전체 작업 량
    : 데이터 센터 관리자에게 매우 중요
    : 서버의 성능을 평가하는데 사용

  • 응답시간 줄면 대부분 처리량이 개선

실행 시간 측정(Measuring Execution Time)

  • 성능 비교
    : 컴퓨터 A가 10초 안에 프로그램을 싱행하고, 컴퓨터 B가 같은 프로그램을 12초 안에 실행한다면 컴퓨터 A의 성능 1프로그램/10초 0.1프로그램/초, 컴퓨터 비의 성능은 1프로그램/12초 = 0.0833 프로그램/초
  • 만약 B실행시간/A실행시간=N이면 A가 B보다 N배 빠르다.
  • 즉, 15/10이므로 A가 B보다 1.5배 빠르다.

두 가지 실행 시간

경과 시간(Elapsed time)

  • 작업(task)을 완료하는ㄷ 걸린 전체 시간
  • disk accesses, memory accesses, IO activities, operating system overhead 포함

CPU TIME

  • 작업을 위해 CPU를 사용한 시간
  • 다른 동작에 사용한 시간은 포함하지 않음
  • User CPU time + System CPU time
profile
행복한 하루 보내세요

0개의 댓글