컴퓨터 구조와 기능, CPU

기운찬곰·2020년 9월 28일
3

Computer Science

목록 보기
9/27

1. 컴퓨터 구조와 기능

컴퓨터 구조

컴퓨터 구조는 위에처럼 크게 4가지로 나눠서 볼 수 있습니다.

  • CPU : 중앙처리장치. 데이터를 처리하는 역할
  • Memory : 데이터를 저장하는 기능을 수행
  • I/O : 컴퓨터와 외부장치 사이에 데이터를 교환하는 기능을 수행
  • System Bus : 위의 모든 컴퓨터 시스템 구성요소들을 연결하여 데이터 전송을 수행

컴퓨터 기능

컴퓨터의 기능또한 크게 4가지로 나눠서 생각해볼 수 있습니다.

  • Data Processing : 데이터 연산
  • Data Storage : 데이터 저장
  • Data Movement : 데이터 통신, 이동
  • Control : 제어(명령수행, 리소스 관리 등)

2. CPU 구성

Processor chip 안에는 다음과 같이 3가지 종류가 있을 수 있겠습니다.

  • single-core processor
  • multi-core processor
  • multi processors

음.. 용어를 좀 살펴볼 필요가 있겠습니다. 프로세서는 뭐고, CPU는 뭐고, 코어는 뭔지 글을 작성하는 시점에서 헷갈리네요;; 한번 정리해보겠습니다.


1. CPU(Central Processing Unit, 중앙처리장치)

컴퓨터에서 구성 단위 중 기억, 해석, 연산, 제어라는 4대 기능을 종합하는 중앙 처리 장치의 줄임말. 더 간단하게 말하자면 사람으로 따지면 뇌에 해당한다.

CPU를 용도에 따라 분류하면

  • MPU (Micro Processor Unit) : 각종 전자부품과 반도체칩을 하나의 작은 칩에 내장한 형태. 일반적인 PC/워크스테이션에서 사용되는 CPU의 한 종류
  • MCU (Micro Controller Unit) : 마이크로컨트롤러라고도 부름. 일정한 용량의 기억장치, 입출력제어회로 등을 단일 칩에 모두 내장한 것을 의미. 1개의 소자로 완전한 1개의 컴퓨터로서의 기능을 갖추고 있음. 주로 아두이노(ATmega328)에서 많이 쓰입니다!!

출처 : https://www.hackerschool.org/Sub_Html/HS_University/HardwareHacking/04.html

CPU, MPU 이런 용어들은 대부분 업계에서 자사 제품을 지칭하는 용어가 관례적으로 굳어졌기 때문에 생긴 것이라고 하네요. CPU는 처음에는 인텔이 자사의 원칩 솔루션을 지층하던 용어였고, MPU는 그에 대응하는 모토로라가 쓰던 용어였다고 합니다.

따라서 그냥 CPU와 MCU 개념만 잘 구분할 수 있으면 될 거 같습니다.


2. 프로세서(Processor)

프로세서는 컴퓨터 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리회로입니다.

프로세서의 종류로는 아래처럼 구분되어집니다. 그러나 프로세서라는 용어는 점차적으로 CPU라는 용어를 대체해왔습니다. (프로세서 >= CPU)

  • CPU : 디바이스가 해야할 일을 총 지휘하는 프로세서
  • 보조프로세서(Coprocessor) : CPU의 기능을 보조하는 프로세서
  • 마이크로프로세서(Mircro Processor, MPU) : PC나 소형 디바이스에 장착된 프로세서. MCU와는 다릅니다!!

3. Core(코어)

출처 : https://www.quora.com/What-is-the-difference-between-4-core-and-4-CPU

코어란 각종 연산을 하는 CPU 핵심요소이며, CPU 내부에는 코어 말고도 컨트롤러, 캐시메모리 등이 들어있습니다. 코어가 1개면 싱글코어, 2개면 듀얼코어, 4개면 쿼드코어라고 하며, 코어 수가 많을수록 병렬 처리 효율이 늘어날 수 있습니다.

단순하게 코어를 CPU 한개라고도 말할 수 있을거 같습니다.

Power Wall : CLK 가속화로 인한 열 발생, 성능 저하. -> 더이상 single core로는 안됨. 그래서 생겨난게 멀티코어 방식입니다.


정리해보면

프로세서(비슷한 의미로 CPU) = Core(제어장치, 연산장치, 레지스터) + JTAG, 내부버스, 캐시(Cache) 등 라고 볼 수 있겠네요.


3. CPU 세부사항

이대로 넘어가기 아쉬워서 CPU에 관해서 실용적인 지식을 배우고 넘어가도록 하겠습니다. 다음은 8세대 이후 인텔 CPU를 비교한 그림입니다.

몬스터는 코어수, 팔 개수는 스레드 수를 의미합니다. 코어는 위에서 배워서 알겠는데 그렇다면 쓰레드는 뭘까요?

1. 쓰레드

코어는 CPU를 물리적으로 구별한 것이고, 쓰레드는 CPU를 논리적으로 구별했다고 보면 됩니다. 일반적으로 코어개수와 CPU개수는 같지만 인텔같은 경우 하이퍼쓰레딩(Hyper Threading) 기술로 코어의 갯수를 반으로 쪼개는 기술이 이용됩니다.

운영체제에서 프로세스를 더 작은 단위로 나눈 것이 쓰레드라고 했었죠? CPU 쓰레드도 이 쓰레드를 처리하는 의미라고 보면 될거 같습니다.

2. 클럭

CPU를 비롯한 컴퓨터의 모든 부품들은 일정한 간격(속도0으로 발생되는 전기적 신호에 맞춰 동작하는데 이 전기적 신호를 클럭이라고 합니다.

단순히 정리하면 클럭이 높을수록 CPU연산속도가 빠르고 성능이 좋습니다. 하지만 클럭이 높을수록 열을 그만큼 많이 발생하겠죠. 따라서 CPU마다 적정선이 존재합니다.

참고로 오버클럭은 말 그대로 클럭 수치를 적정 클럭보다 오버시켜서 부품에 부여하는 것입니다. 사람으로 치면 머리 굴리는 속도를 강제로 빠르게 하는 것이라 보면 됩니다.


4. 캐시메모리(Cache Memory)

Memory Wall : 프로세서의 처리(클럭) GHz를 메모리 MHz가 따라가지 못하는 현상. 메모리의 계층성을 이용해 해결.

그 중에서 캐시메모리란 비단 cpu에만 적용 되는 것이 아니고 속도가 빠른 장치와 느린 장치 사이에서 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리입니다.

출처 : https://www.quora.com/How-is-L2-cache-shared-between-different-cores-in-a-CPU

  • L1(Level 1 cache memory) : L1 캐시는 일반적으로 CPU 코어 안에 내장되어있습니다. CPU가 가장 먼저 빠르게 접근할 수 있습니다.
  • L2(Level 2 cache memory) : L1 캐시에서 원하는 데이터를 찾지못하면 L2 캐시에서 찾게됩니다. L1보다 속도가 느립니다. CPU 코어 안에 있을 수도 있고 코어 밖에 있을 수도 있습니다.
  • L3(Lev3el cache memory) : L3 캐시 메모리도 동일한 원리이지만 요즘 웬만한 프로세서에서는 L3 캐시 메모리는 달고 있지 않습니다.
  • L4까지는 들어본거 같습니다.

마침

대학교 컴구조 시간에 배웠던 내용이긴 합니다만 좀 시간이 지나다 보니 정리할 필요가 있던참이었습니다. 정리하다보니 잘 몰랐던 부분도 해결되고 좋네요.

다음시간에는 CPU와 GPU를 공부해볼 생각입니다.

References

Hits

profile
배움을 좋아합니다. 새로운 것을 좋아합니다.

0개의 댓글