Computer Abstractions & Technology Part.1 - Computer Architecture

Computer Abstractions & Technology Part.1 - Computer Architecture

Tag
Computer Science Engineering
Computer Architecture

Performance를 책정하는 방법

  • Algorithm
    • 얼마나 많은 operation을 실행했는가?
  • Programming language, compiler, architecture
    • 하나의 operation마다 얼마나 많은 기계어가 있는가?
  • Processor and memory system
    • instruction이 얼마나 빠르게 실행되는가?
  • I/O system ( OS 포함 )
    • I/O operation이 얼마나 빠르게 실행되는가?
 

프로그램 내부

notion image

Application software

HLL(High Level Language)로 작성된 소프트웨어를 말한다.
보통 우리가 사용하는 개발 언어를 사용하여 만든 프로그램을 일컫는다.
 

System software

  • Compiler
    • HLL로 작성된 코드를 기계어로 번역해주는 역할
  • OS
    • I/O operation 핸들링
    • 메모리, 저장공간 관리
    • task, sharing resource 스케쥴링
 

Hardware

Processor, memory, I/O controllers
 

Levels of Program Code

👉🏻
위에서 아래의 순으로 언어를 얻을 수 있다.
  • High-level language
    • 프로그램의 목적에 따라 언어를 선택한다.
    • productivity와 portability를 제공한다.
      • 인간이 읽고 쓸 수 있으며 CPU / OS와 상관없이 사용 가능하다.
    • 프로그래머가 보다 자연스러운 언어로 생각할 수 있게 지원한다.
    • 프로그램의 유지보수성을 향상시킨다.
    • 프로그램이 어디에서 개발되었는지 상관 없이 독립적으로 사용될 수 있다.
  • Assembly language
    • HLL을 compile하여 얻을 수 있는 언어
    • 문자로 명령들을 담고 있음
  • Binary Machine Language
    • assemble 과정을 통해 얻을 수 있는 언어
    • 하드웨어가 이해할 수 있는 표현
      • 즉 인간이 읽을 수 없다
    • 이진수(1 / 0)로 표현됨
    • instructions, data가 인코딩 되어있음
    •  

컴퓨터의 Components

notion image
User-interface devices
- Display - keyboard - mouse
Storage devices
- Hard disk - CD / DVD - flash
Network adapters
다른 컴퓨터와 소통을 위함
 

Abstractions ( 추상화 )

  • Abstraction은 더 유연할 수 있도록 도와준다.
    • low-level의 디테일한 부분을 숨긴다.
  • Instruction set architecture ( ISA )
    • hareware / software interface
  • Application binary interface
    • ISA + system software 인터페이스
  • 구현
    • 기초적인 세부사항과 인터페이스
 

Computer Architecture란?

notion image
  • 다양한 레벨의 추상화를 조정한 것
  • 가장 중요한 추상화 중 하나는 hardware ↔ 낮은 레벨의 software 사이의 interface
    • 그것을 instruction set architecture 이라 한다.