[CS] - CPU란??

Youngwoo Lee·2021년 3월 12일
1

CS

목록 보기
1/5
post-thumbnail

CPU ?? 컴퓨터의 뇌?

CPU는 컴퓨터 시스템을 통제하고, 프로그램의 연산을 실행하고 처리하는 가장 핵심적인 컴퓨터의 제어장치이다. 말 그대로 컴퓨터의 뇌라는 것이다.


그럼 CPU는 무엇으로 구성되어 있는가?

기본적으로 CPU

  • 처리할 명령어를 저장하는 역할을하는 프로세서 레지스터

  • 비교, 판단, 연산을 담당하는 산술논리 연산장치(ALU)

  • 명령어의 해석과 올바른 실행을 위하여 CPU를 내부적으로 제어하는 제어부와 내부 버스 등이 있다.

으로 구성되어 있다... 하지만, 프로세서 레지스터?, 연산장치?, 제어부와 내부 버스? 정확히 설명하기 힘들다..

하지만 걱정말자... 시간은 많다ㅎㅎ


프로세서 레지스터

프로세서에 위치한 고속 메모리로 극히 소량의 데이터나 처리 중인 중간 결과와도 같은 프로세서가 바로 사용할 수 있는 데이터를 담고 있는 영역을 레지스터라고 한다. 컴퓨터 구조에 따라 크기와 종류가 다양하다. 용도에 따라 범용 레지스터특수목적 레지스터로 구분된다

범용 레지스터 : 연산에 필요한 데이터나 연산 결과를 임시로 저장한다.
특수목적 레지스터 : 특별한 용도로 사용하는 레지스터이다

엇? 근데 이 설명은 뭔가 캐시메모리와 비슷한거 같은데??

그렇다! 둘은 어느정도 공통점이 있다 헷갈릴 수 있다

캐시메모리 = 컴퓨터 시스템 향상을 위해서 CPU와 주기억장치 사이에 있는 아주 작은 비싼 메모리, 메인 메모리에 있는 데이터를 매시 메모리에 불러와 두고, CPU가 필요한 데이터를 캐시에서 먼저 찾도록 하여 시스템 성능을 향상시킨다

그러니깐 캐시는 CPU와 별도의 공간이며, 메인 메모리와 CPU 간의 속도 차이를 극복하기 위한 것이고,

레지스터는 CPU안에서 연산을 처리하기 위하여 데이터를 저장하는 공간이다!


연산장치는??

산술 논리 장치라고 불리는 이 곳은 덧셈, 뺄셈같은 산술연산과 논리 연산을 계산하는 디지털 회로이다


그럼제어부내부버스는??

일단 제어부는 주기억 장치에 저장되어 있는 명령어를 순서대로 호출하여 해독하고, 제어 신호를 발생시켜 컴퓨터의 각 장치를 동작하도록 하는 장치이다!

내부버스? 내부버스는 기억, 연산, 제어 기능을 실현하기 위한 CPU주기억 장치, 입출력 장치, 외부 기억 장치, 주변 장치, 통신 처리 장치 등의 제어부 사이를 연결하는 버스다.

그럼 CPU내의 구성요소에 대해서 알아보았으니 동작 과정에 대해서 알아보자



동작과정

  1. 주기억장치가 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어온다
  2. CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어데이터를 읽어와 처리하고 결과를 다시 주기억 장치에 저장한다
  3. 주기억장치처리 결과를 보조기억장치에 저장하거나 출력장치로 보내서 출력시킨다
  4. CPU 내의 제어장치가 1~3번 과정에서 명령어가 순서대로 실행되도록 각 장치들을 제어한다


그렇다면 성능을 결정하는 것은??

컴퓨터를 살때 CPU 스펙을 보면 4.5Hz 클럭, ~~ 코어 같은 용어를 봤을 것이다

클럭

CPU 내부에서 일정한 주파수를 가지는 신호로, 이 신호로 모든 명령어가 동작되게 된다. 그러니깐 예를 들어 4.5Hz라는 것은 초당 45억 번의 명령어를 처리할 수 있다는 말이다. 따라서 클럭 주파수가 빠를수록 제한된 시간에 더 많은 명령을 처리할 수 있기에 더 좋은 성능의 중앙 처리 장치라고 할 수 있다

코어

코어는 중앙처리 장치 역할을 하는 블록을 뜻하는 것이다. 그러니깐 멀티 코어들은 싱글 코어에 비해서 마치 여러 개의 CPU가 작동하듯이 많은 연산을 빠르게 병렬 처리할 수 있다는 것이다!!

물론 컴퓨터의 전체적인 성능은 CPU 만으로 결정되지는 않는다. 하지만, 가장! 가장 중요한 부분이라고 할 수 있는건 단연컨데 CPU 이다.



CPU의 구조 (폰노이만, 하버드)

하버드 구조

명령어 메모리 = 프로그램에서 사용할 명령어를 모아둔 메모리
명령어 메모리 -> 제어장치 : 명령어 대한 정보를 보내줌
데이터 메모리 = 명령어들로 사용될 메모리

메모리가 두개이기 때문에 역할이 나누어져 있으며 속도가 빠르다. 구성이 많기 때문에 비싸며, 복잡한 구성으로 고장이 날 확률이 높다


폰노이만 구조

보조기억장치에서 데이터들이 CPU에서 연산되기 위해서 하나의 메모리에 올라간다
제어장치는 산술논리장치에 데이터가 메모리 어디에 위치한지 알려주는 역할을 한다

  • 프로그램 메모리와 데이터 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있다. 그렇기 때문에 병목현상이 일어난다

개선된 구조

  • 하버드 구조 + 폰노이만 구조
  • CPU의 캐시 메모리 형상에 관여
  • CPU 내부 - 하버드
    - CPU 내부에 캐시를 둬서 RAM과 CPU 간의 속도 차이를 줄이려고 노력
  • CPU 외부 - 폰노이만
    - 메모리 하나에 하나의 버스를 가지는 구조이기 때문에 병목현상이 아직까지는 존자한다

논외

예전에 32bit 컴퓨터들은 RAM을 왜 4GB까지 밖에 쓰지 못했을까?

  • 제어장치에서 연산장치에게 RAM의 어디에 데이터가 있다고 알려줄 수 있다
  • 메모리가 아무리 커 봤자 32bit 컴퓨터들은 RAM을 최대 4GB밖에 쓸 수 없기 때문에 더 높아봤자 쓸모가 없기 때문에


최근 이슈

그리고 최근들어 M1 칩을 애플에서 출시시켜 많은 사람들의 관심을 받고 있다.

쉽게 말해서 M1 칩은 기존의 CPU와 여러 요소들을 합쳐 만든 CPU라고 할 수 있다

장치간의 거리도 짧고 통합 메모리 구조를 가졌기에 CPU의 효율을 극대화 시킬 수 있었다

그렇다고, 장점만 있는 것은 아니다! 일단 하나의 칩 형태로 나왔기에 RAM을 추가한다던지의 자유도는 매우 떨어진다.

그리고 ARM CPU에 호환되지 않는 프로그램이 있으니 사기 전에 본인이 자주사용하는 프로그램이 지금 호환성 작업이 끝났는지 알아보는 것이 중요할 것 같다

profile
iOS Developer Student

0개의 댓글