CS/컴퓨터 구조

[컴퓨터 구조] 컴퓨터 추상화와 구조

윤곰이 2024. 4. 27. 22:49
학교에서 들은 컴퓨터 구조 강의 내용을 복습하면서 작성한 글입니다.
March 15, 2024 5:54 PM
  • 인간:C/c++ → compile →머신코드 → 0101(논리)

Seven Great Ideas

  1. use abstraction to simplify design: 추상화 이용 시 복잡한 일이 간단한 명령어로 해결
    • Abstraction
      • Instruction Set Architecture (명령어 집합 구조) : 마이크로프로세서가 인식해서 기능을 이해하고 실행할 수 있는 기계어 명령어
        • 다양한 단계를 거쳐서 Software 에서 Hardware로 넘어가게 된다. 이때, Software 에서 Hardware 로 넘어가는 단계에서 중재자 역할을 해주는 것이 ISA.
      • Application Binary Interface(ABI): ISA와 OS의 인터페이스를 합친것
        • 임의의 어플리케이션이 컴퓨터에 실행될지 안될지 판단하는 것
    • 하위 계층의 세부적인 것들이 상위 계층에 보이지 않게 하는 것
  2. make the common case fast : 자주 발생하는 케이스를 최적화(드문 케이스보다)
  3. performance via parallelism : 병렬적 수행 → 다른 일 동시처리, 성능⬆️
  4. Performance via Pipelining: 파이프라인 구조로 일 → 빠름
  5. Performance via Prediction
  6. Hierarchy of Memories: 빠르고 작고 가장 비싼 memory를 top에 위치시키고, 느리고 크고 가장 싼 memory를 bottom에 위치시키는 형태로 memory를 설계
    → 캐시 메모리 사용 시 최상위 만큼 빠르고, 최하위 만큼 크고 저렴한 메인 메모리가 있는 것 처럼 보이게 함
  7. Dependability via redundancy: 문제를 대체할 수 있는 여유분 포함 → 신뢰성 ⬆️

Computer Revolution

Moore’s Law (observation)

  • 반도체 집적회로의 성능 2년에 2배로 성능이 향상(exponential 하게)

Huang’s Law (observation)

  • GPU 성능 2년에 2배 증가

→ 컴퓨터의 발전은 경제적으로 불가능해보였던 applications 을 가능하게 함 (automobile 속 컴퓨터, 휴대폰, AI..) : 컴퓨터가 pervasive 해짐

 

Computer 종류

  • personal computer(cost/performance tradeoff), server computer, supercomputer(계산,속도⬆️), embedded computer

PostPC Eras

  • mobile + cloud
  • cloud computing: 컴퓨팅 리소스(서버, 스토리지, 데이터베이스..)를 인터넷을 통해 서비스로 사용할 수 있는 주문형 서비스 (Amazon AWS,,)

 


Abstraction

  • application software: high-level 언어로 쓰여짐 (C,c++)
  • System software: 하드웨어와 응용 소프트웨어 사이에 일어나는 복잡한 과정을 추상화하기 위해 그 사이에는 여러 가지 시스템 소프트웨어가 존재
    • compiler: high-level language → assembly/machine code
    • Operation System (OS): Input/Output 관리, memory와 storage 관리, 여러 응용 프로그램들 간의 자원 공유 방법 제공 등
  • Hardware: processor, memory,,

ISA: SW와 HW 사이에서 HW 전체를 추상화해주는 layer

→ 우리는 추상화 덕분에 복잡한 어셈블리 언어나 기계어 없이, 이해하기 쉬운 상위 수준 언어로 프로그램을 만들어 낼 수 있다.

  • Levels of Program Code
    • High-level language: productivity, portability
    • Assembly Language: 컴퓨터가 실행할 instruction 사람이 알아볼 수 있게 써놓은 것 (인간 버전 기계 명형어) → assembler → binary machine code

5 Components of Computers

  • Input
  • Output
    • IO에 User-interface devices(display), Storage devices(CD/DVD), Network adapters 포함
  • Memory
  • (Processor): 메모리에서 명령어, 데이터 읽어옴
    • Datapath : 연산 수행
    • Control: 동작 결정 신호 보냄