컴퓨터 구조

rokky·2023년 9월 17일

컴퓨터 구조

목록 보기
1/5

어떤 종류의 컴퓨터를 쓰는가?

  • 개인용 데스크탑 컴퓨터

    • 일반적인 목적과 다양한 SW이용을 위해서
  • 서버(클라우드) 컴퓨터

    • 네트워크 기반
    • 높은 용량, 성능
  • 슈퍼컴퓨터

    • 고급 과학/공학적 계산
  • 모바일/유비쿼터스 컴퓨터

    • 가지고 다닐 수 있는 용도

왜 우리는 컴퓨터를 바꾸는가?

  • 더 "빠른" 컴퓨터를 이용하기 위해서

컴퓨터의 발전

  1. HW 기술의 발전을 통해
  • 무어의 법칙 : 반도체 집적회로의 성능은 24개월마다 2배로 증가한다는 법칙
  1. 새로운 컴퓨터 구조의 등장
  • 멀티 프로세서(한 컴퓨터에 2개 이상의 CPU 장착된 것)
  • 계층적 메모리(e.g. 캐쉬)
  • 새로운 종류의 프로세서(e.g. GPU, TPU)

하드웨어와 소프트웨어에 대한 간략한 설명

  • 응용 소프트웨어

    • high-level language로 적혀있음
  • 시스템 소프트웨어

    • 컴파일러 : high-level language에서 machine language로 번역
    • 운영체제(OS) : 입출력 작업 관리, 자원 관리(e.g. 메모리, 저장), 스캐줄링
  • 하드웨어

    • 프로세서, 메모리, I/O장치

프로그램 수행

1단계 : 언어 번역

high-level 언어 -> 하드웨어 기계어

  • high-level 언어
    • 특정한 도메인을 위해 디자인 됨
    • 생산성과 휴대성 제공
  • 하드웨어 기계어
    • 이진수
    • 인코딩된 지침
  • 어셈블리어는 기계어와 일대일 대응되는 컴퓨터 프로그래밍 저급언어이다.

2단계 : 입/출력, 처리, 데이터 저장

  • 4가지 기초적인 하드웨어 구성요소
  • 프로세서
  • 메모리
  • 입력 장치
  • 출력장치

1) 로딩 : 프로그램은 메모리에 저장된다.
2) 입력 : 입력 장치는 데이터를 메모리에 작성한다.
3) 불러오기(fetch) : 프로세서는 메모리로부터 지시사항과 데이터를 불러온다.
4) 디코딩 : 프로세서(제어)는 지시사항을 디코딩하고 뭘 할지 정한다.
5) 실행 : 프로세서(데이터 경로)는 지시사항을 수행하고, 메모리에 연산결과를 저장한다.
6) 출력 : 출력 장치는 메모리로부터 출력데이터를 읽고 결과를 내보낸다.

프로그램 성능

  • 다양한 SW/HW 구성요소는 프로그램의 성능에 영향을 미친다. (프로그램의 성능 = 프로그램 수행 시간)

  • 알고리즘

    • 작업 수행 횟수를 결정
  • 프로그램 언어, 컴파일러, 명령어 집합체(ISA)

    • 기계 지시사항의 작업 수행 횟수를 결정
  • 프로세서, 메모리 시스템

    • 지시사항이 얼마나 빠르게 수행되는지 결정
  • 입/출력 장치(OS 포함)

    • 입/출력 연산이 얼마나 빠르게 진행되는지 결정

ISA란?(규칙이 적힌 문서)

  • SW와 HW 사이의 인터페이스(기계 지시사항 집합 포함)
  • SW는 ISA에 포함된 기계지시사항으로 번역된다.
  • HW는 ISA의 지시사항을 지원하기 위해 만들어짐(ISA로 정의된 SW만 HW에 수행될 수 있다.)

더 좋은 컴퓨터 구조를 디자인하기 위한 8가지 아이디어

  • 무어의 법칙

    • 디자인이 끝났을 때 기술 발전을 기대
  • 단순화를 위한 추상화 제공

    • SW 발전의 편의를 위해 Low-Level 세부사항을 숨긴다.
  • 일반적인 케이스를 더 빠르게 만든다.

    • 특별한 케이스에 대해 최적화 하는 대신에 일반적인 케이스의 성능을 향상시킨다.
  • 병렬성을 통한 성능

    • 병렬로 작업을 수행한다.
  • 파이프라이닝을 통한 성능

    • 파이프라이닝이라 불리는 특정한 병렬 패턴을 이용한다.
  • 예측을 통한 성능

    • 확실히 알때 까지 기다리기보다는 예측을 통해 작업을 시작한다.
  • 계층적 메모리

    • 가장 빠르고, 작고, 비싼 메모리를 가장 높은계층에 가장 느리고, 크고, 가격이 싼 메모리를 가장 낮은 계층에 위치시킨다.
  • 중복을 통한 의존성

    • 실패가 발생시 댜채할 수 있는 중복 구성 요소를 포함한다.

0개의 댓글