[CS] 컴퓨터의 구성요소, CPU와 메모리

히끼·2024년 3월 18일

TIL

목록 보기
25/43

컴퓨터 시스템의 구성요소

  1. 입력장치 : 데이터를 받아들이는 장치
  2. 출력장치 : 데이터 처리 과정을 거쳐서 그 결과가 출력을 통해 나오는 장치
  3. 중앙처리장치 (CPU) : 입력된 데이터를 (컴퓨터에서 전자적으로) 처리하는 장치
  4. 기억장치 : 프로그램과 데이터를 저장하는 장치
  5. 시스템 버스 : 장치들을 연결시켜주는, 정보가 지나다니는 통로

CPU

  • 컴퓨터에서 명령어를 수행하고 데이터를 처리하는 장치
  • 프로그램이 수행되는 전반적인 과정을 제어
  • 처리장치(ALU + 레지스터)와 제어장치(CU)로 구성

CPU의 구성요소

산술논리연산장치 (ALU)

  • 기본적인 산술연산과 논리연산을 실행하는 조합논리회로

제어장치 (CU)

  • 프로그램에 의한 연산의 순서대로 기억장치, 연산장치, 입출력장치에 제어신호를 발생시킴

레지스터

  • 데이터를 일시 저장하거나 전송하는 장치
  • CPU에서 임시로 데이터를 저장하는 기억장치
  • 기억장치 중 액세스 속도가 가장 빠름

내부 버스

  • ALU와 레지스터 간의 데이터 전송을 위한 통로
  • 외부장치(기억장치, 입출력장치)와 데이터 전송

명령어 수행과정

  1. 명령어 인출 : 기억장치로부터 명령어를 가져오는 과정
  2. 명령어 해석 : 명령어를 해독하는 과정
  3. 명령어 실행 : 지정된 연산을 실행하는 과정
  4. 저장 : 명령어 실행단계에서 수행된 연산 결과가 레지스터 혹은 기억장치에 쓰여지는 과정
  5. 인터럽트 처리 : 명령어 실행 도중에 입출력장치와 같은 다른 장치에 의해 인터럽트가 들어오면 그에 합당한 서비스를 제공하는 과정

CPU의 성능

  1. 클럭
    • CPU 내부에서 일정한 주파수를 가지는 신호
    • 1Hz는 1초에 한 번 연산의 주기
      (4.5GHz는 초당 45억 번의 명령어를 처리)
  2. 코어
    • 중앙처리장치 역할을 하는 블록을 의미
    • 멀티 코어는 여러 개의 CPU가 병렬적으로 여러 연산을 처리 가능

CPU의 스케줄링 기법

프로세스 스케줄링 알고리즘의 형태는 크게 선점 스케줄링 기법과 비선점 스케줄링 기법으로 구분됨

선점(preemptive) 스케줄링 기법

  • 이미 중앙처리장치(CPU)를 점유하여 실행 중인 프로세스를 내보내고, 다른 프로세스에게 중앙처리장치를 할당하는 스케줄링 기법
  • 우선순위가 높은 작업에 CPU의 사용권을 넘겨주므로, 응답시간을 예측하기 어려움

선점 1. 우선순위 스케줄링

  • 우선순위가 높은 프로세스부터 먼저 처리하는 스케줄링 기법

선점 2. 라운드 로빈 (Round Robin)

  • 프로세스가 도착한 순서대로 CPU가 할당되지만, CPU의 시간 할당량 또는 시간 간격에 의해 제한을 받는 스케줄링 방식
  • 가장 구현하기 쉽고, 지금 현재 가장 많이 사용됨
  • 장점 : 하나의 프로세스가 CPU를 독점하지 않고 공평하게 이용될 수 있음
  • 단점 : 우선순위가 높은 작업을 빨리 처리하기 어려움

선점 3. 다단계 큐 (Multilevel-Queue)

  • 준비완료 큐를 여러개의 큐로 분류하여 각 큐가 각각 다른 스케쥴링 알고리즘을 가지는 방식

비선점(nonpreemptive) 스케줄링 기법

  • 일단 프로세스에 중앙처리장치가 할당되어 프로세스의 실행이 시작되면, 프로세스가 종료될 때까지 중앙처리장치를 다른 프로세스에게 양보하지 않는 기법
  • 비선점 스케줄링 기법은 짧은 작업이 긴 작업으로 인해 기다리게 되는 경우가 있지만 모든 프로세스 관리가 공평
  • 장점 : 우선순위에 관계없이 대기 중인 작업에는 변동이 없으므로 응답시간을 예측할 수 있음
  • 단점 : 우선순위를 고려하지 않으므로, 효율이 떨어질 수 있음

비선점 1. FCFS (First-Come First-Served)

  • 준비 큐에 도착한 순서대로 중앙처리장치를 할당받도록 해 주는 기법
  • 하나의 프로세스가 중앙처리장치를 차지하면 그 프로세스의 수행이 완료된 후에 그 다음 프로세스에게 중앙처리장치를 할당함
  • 대기 큐에 늦게 들어온 짧은 작업이 대기 큐에 일찍 들어온 긴 작업을 기다리게 되고, 중요한 프로세스가 덜 중요한 프로세스의 완료를 기다리는 단점이 있음

비선점 2. SJF (Shortest Job First)

  • 현재 준비 큐에 있는 프로세스들 중에서 수행시간이 가장 짧을 것으로 예상되는 프로세스를 먼저 처리하는 스케줄링 기법
  • 프로세스의 예상 수행 시간을 실행 입력 이전에 알아야 하므로 일괄처리 환경에서는 구현하기 쉽지만, 대화식 시스템에는 사용자와 컴퓨터 간의 상호작용으로 인해 실행시간을 예측할 수 없기 때문에 사용되기 힘듦
  • 장점 : 대기하는 프로세스의 수를 최소화할 수 있으므로 빠른 응답시간을 제공할 수 있음
  • 단점 : 수행시간이 긴 프로세스는 CPU를 할당받지 못한 채 계속 기다릴 수 있음

비선점 3. HRN (Highest Response-ratio Next)

  • 우선순위를 계산하여 점유 불평등 보완(SJF 단점 보완)
  • 우선순위 = (대기시간 + 실행시간) / (실행시간)


기억장치

지역성의 원리

주어진 시간 동안에 프로그램의 실행에서 발생하는 주소들은 기억장치 내의 몇몇 한정된 영역만을 반복적으로 지정하며, 그 밖의 영역에 대한 접근은 상대적으로 드문 현상

  • 시간적 지역성 (temporal locality)
    • 어떤 내용이 한번 참조되면, 곧 바로 다시 참조되기 쉽다.
  • 공간적 지역성 (spatial locality)
    • 어떤 내용이 참조되면, 그 내용에 가까운 곳에 있는 다른 내용이 곧바로 참조되기 쉽다.
  • 반복적으로 명령어와 데이터를 접근하게 되는 루프를 포함하는 대부분의 프로그램은 상당히 큰 시간적 지역성을 보인다.
  • 또한, 대개의 명령어들이 순차적으로 접근되기 때문에 큰 공간적 지역성을 보인다.

메모리의 종류

위로 갈수록 용량은 적고, 가격은 비싸고, 속도는 빠르다.

  1. 레지스터
  2. 캐시 (SRAM)
  3. 메인 메모리 (DRAM) (= 주기억장치)
  4. 하드디스크 (HDD) (= 보조기억장치)

캐시 메모리

  • 주기억장치의 수행속도 개선을 위한 하나의 방법
  • 캐시기억장치는 주기억장치보다 속도가 빠른 기억소자들로 구성되어 중앙처리장치와 주기억장치간의 속도 차이를 줄여주는 역할을 함
  • 중앙처리장치가 주기억장치에 접근하는 대신 캐시기억장치에서 데이터를 가져오게 하는 것이다. (임시저장소!)

숫자가 낮을수록 CPU에 가까움

  1. L1 캐시 메모리 : CPU 구성에 포함됨
  2. L2 캐시 메모리 : CPU와 별도
  3. L3 캐시 메모리 : CPU와 별도

캐시 히트와 캐시 미스

프로그램이 어떤 단어에 접근할 때 발생되는 두 가지 경우

  1. 그 단어를 포함한 블록이 캐시기억장치에 저장되어 있는 경우
    • 히트(hit) : 접근하고자 하는 단어가 캐시기억장치에 저장되어 있는 경우
  2. 그 단어를 포함한 블록이 캐시기억장치에 저장되어 있지 않는 경우
    • 미스(miss) : 저장되어 있지 않은 경우

원하는 데이터가 없을 경우 즉, 미스가 일어나면 캐시기억장치의 일부분을 주기억장치로 보내고, 주기억장치의 데이터를 캐시기억장치로 가져와야 하는 등의 데이터 이동이 발생한다.

→ 그러므로 캐시 히트율을 높여야 하는데, 캐시 히트율이 높다는 것은 맵핑(사상, mapping)이 잘 되었다는 의미이다.

사상(맵핑)의 종류

  1. 직접 사상 : 중앙처리장치가 주기억장치를 참조할 때 중앙처리장치로부터 나온 주소를 Tag 필드와 Index 필드로 나눔
    • 캐시기억장치에서 중앙처리장치 주소의 Index 필드와 같은 Index를 찾아 Tag까지 같다면 그 주소의 데이터를 가져간다.
    • 만약 같은 Index에 데이터가 없거나, 또는 Index는 같으나 Tag가 다르면 주기억장치에서 데이터를 찾아 가져 오는 방식
  2. 연관 사상 : 캐시기억장치에 데이터 블록을 저장할 때, 데이터와 그 데이터의 주기억장치 주소도 함께 저장하는 방식
    • 주기억장치의 어떤 데이터 블록도 캐시기억장치의 임의의 위치에 저장할 수 있기 때문에 직접사상방식의 단점을 일부분 보완할 수 있다.
    • 단점 : 중앙처리장치주소를 캐시기억장치에서 찾을 때 최악의 경우 캐시기억장치의 모든 주소를 다 찾아야만 하는 경우가 발생한다.
  3. 집합-연관 사상 : 직접사상 방식과 연관사상 방식을 조합하여 만든 방식
    • 캐시기억장치의 하나의 Index에 두 개 이상의 서로 다른 데이터 블록을 저장시켜서 하나의 세트(집합)를 만듦
    • 캐시기억장치에서 중앙처리장치 주소의 Index와 같은 Index를 찾음
      → 그 Index에 저장되어 있는 서로 다른 Tag를 갖는 데이터들 중에서 연관사상 방식에서와 같은 방식으로 찾고자 하는 데이터의 Tag와 같은 Tag를 갖는 데이터를 찾아 가져옴
    • 직접이나 연관 사상방식에 비해 효율적으로 데이터를 찾을 수 있어, 히트율(적중률)을 높일 수 있음

주 기억장치

주기억장치는 컴퓨터 시스템에서의 필수적인 하드웨어 요소 (RAM = Random Access Memory)

  • 전원을 끄면 정보가 날아감 (휘발성)

보조 기억장치

당장 필요하지는 않지만 필요할 때에 주기억장치로 옮겨 사용할 수 있는 자료(데이터, 프로그램)를 저장하는 장치

  • 전원을 꺼도 휘발되지 않음 (비휘발성)

0개의 댓글