EE Major/Semiconductor Field

[시스템 반도체 개론] CPU 구조 및 동작 원리

nabee 2024. 11. 29. 14:23
  • 컴퓨터 하드웨어 구조
    CPU, Memory, SystemBus, Input/Ouput 로 구성
    출처 : https://velog.io/@gun_123/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EC%BB%B4%ED%93%A8%ED%84%B0-%ED%95%98%EB%93%9C%EC%9B%A8%EC%96%B4%EC%9D%98-%EA%B5%AC%EC%84%B1
CPU  Memory Input / Output SystemBus
중앙처리장치
(Central Processing Unit)
데이터를 처장하는 장치 입출력 기능을 갖춘 장치 각각의 컴퓨터 구성 요소들을 연결하여 데이터 전송
데이터를 처리하는 핵심적인 부분
(계산, 논리연산, 제어작업)
CPU 의 작업 처리에 필요한 데이터, 명령어 저장 컴퓨터와 외부장치 사이의 데이터를 교환 데이터가 원활한 이동 및 작업 가능

 

  • 컴퓨터의 기능
    - 데이터 처리 : 입력된 데이터를 처리하여 다양한 계산과 논리 연산을 수행 --> 원하는 결과 획득
    - 데이터 저장 : 메모리와 저장장치를 사용해 데이터를 저장 --> 필요한 정보를 빠르게 불러와 사용 가능
    - 데이터 통신 및 이동 : 네트워크를 통해 다른 컴퓨터나 기기와 데이터를 주고 받을 수 있음 , 내부 구성 요소 간에 데이트를 이동 시켜 처리 가능 
    - 제어 : 프로그램에 따라 작업을 제어하고 조작 가능 --> 사용자가 원하는 작업 수행 가능


  • CPU 중앙처리장치
    - 컴퓨터 시스템의 핵심 부품 - 명령어 해석, 자료의 연산 및 비교 --> 다양한 처리 작업 제어
    - 사람의 두뇌와 같이 입력된 정보를 처리하고 결과를 출력 장치로 보내는 역할
    - 분류 : MPU , MCU
MPU (Micro Processor Unit ) MCU (Micro Controller Unit)
각종 전자부붐과 반도체 칩을 하나의 작은 Chip에 저장한 형태 일정한 용량의 기억장치, 입출력 제어 회로 등을 단일 Chip에 모두 내장한 형태
기존 PC 등에 사용하는 CPU 1개의 Chip이 완전한 1개의 컴퓨터로 기능
컴퓨터 시스템의 주요한 계산과 제어 담당 임베디드 Chip으로 많이 사용
주변 추가적인 장치가 필요로함 최적화된 성능 제공 가능

--> 즉, MPU는 CPU 자체만을 소형화 시켜놓은 칩이고 MCU는 하나의 컴퓨터를 소형화 시켜놓은 칩

 

  • CPU 구성요소
    코어, 메모리, IO, Cache로 구성
    - 코어 
    CPU의 핵심 요소, 갯수로 성능을 결정
    Single-Core Processor --> Multi-Core Processor | 열발생과 성능 저하로 Multi-core 방식 채택
    성능 향상을 위해 전압을 높이는 방법으로 발전했지만, 
    Power Wall 현상 - 일정 시점에서 전류가 새어 더 이상 전압을 높일 수 없어 성능 확보가 어려워짐

    - 코어의 구성 요소
    제어장치, 연산장치, 레지스터, 내부 버스
    제어장치(CU) : Control Unit 컴퓨터 시스템의 모든 장치를 제어하고 동작을 지시하는 역할을 수행 --> CPU가 받은 명령어 해석, 각 장치에 제어 신호를 생성해 작업 조율
    연산장치(ALU) : 제어 장치로 부터 받은 명령에 따라 실제 연산 수행 --> 산술, 논리, 데이터, 프로그램 제어
    레지스터 : CPU 내부에서 처리할 명령이나 연산에 필요한 임시 데이터를 저장하는 장치
    ( PC 레지스터, AC 레지스터, IR 레지스터, MAR 레지스터, MBR 레지스터 )
    Internal Bus : CPU 외부 시스템 버스와 직접 연결 X, CU ALU, R간의 데이터를 이동시킴
    ( 주소 버스, 데이터 버스, 제어 버스 )

    - 캐시 메모리 : 빠른 장치와 느린 장치의 속도 차이에 따른 병목 현상을 줄이기 위해 범용 메모리를 통칭
    CPU 처리 속도와 메모리 속도 차이로 인한 병목 현상 완화
    CPU와 메인 메모리 사이에서 데이터를 임시로 저장하고 불러오는 캐시 메모리 등장
    CPU가 데이터에 빠르게 접근할 수 있도록 도움
    캐시 지역성 : 캐시 적중률을 극대화 해 캐시가 효율적으로 동작하기 위해 사용 --> 공간, 시간 지역성

    - 캐시의 종류
    L1 : CPU에 내장되어 가장 빠르게 동작, 데이터 사용 및 참조에 가장 먼저 사용, 8-64KB 사용
    L2 : CPU에 포함, L1보다 느림, 64KB-4MB 정도 사용
    L3 : 모든 코어가 공용으로 사용하는 공유 메모리, CPU 외부에 위치

출처 : Baeldung, ‘Differences Between Core and CPU’, https://www.baeldung.com/cs/core-vs-cpu, 2023.10.31

  • CPU 구조
    - 폰 노이만 구조 : 프로그램 내장 방식
    메모리의 연산 수행과 관련 명령어 + 연산에 필요하거나 결과로 만들어지는 데이터를 모두 수용
    컴퓨터에서 다른 작업 시 전선의 재배치가 불필요 --> 범용성, 유용성
    메모리 값을 읽고 쓰는 구조로 메모리 접근 속도가 느림 --> 병목 현상 발생
    - 하버드 구조 : 명령용 버스와 데이터용 버스가 분할
    명령어와 데이터를 독립적으로 처리
    명령을 메모리로부터 읽는 것, 데이터를 메모리로 부터 읽는 것이 동시에 가능
    명령과 데이터의 처리를 병렬로 진행 가능 --> 실행속도 빠름
    처리속도 높일려면 회로가 많이 필요한 단점, 회로 구성이 복잡함, CPU 코어 공간 많이 차지
  • 현재 사용하는 CPU 구조
    외부적 : 폰노이만 구조, 내부적 : 하버드 구조
    외부에 하나의 버스를 가져와 병목현상을 남아있지만 CPU 내부에 캐시를 두어 메모리와 프로세서간의 속도를 줄임

  • CPU 동작 과정
    * CPU는 RAM 과 소통, 어떤 프로그램을 실행하면 그 데이터는 RAM으로 이동, CPU는 그 데이터를 가져옴
    * RAM은 CPU보다 속도가 느림 --> CPU 내부나 근처에 캐시 메모리를 두어 데이터 저장 (중요한 데이터만)
    * 이때 캐시 메모리는 3개로 나뉘는데 1로 갈수록 속도가 빠르고 용량이 적다
    1. CPU는 우선 L1에 데이터를 요청하고 여기 없으면 L2를 읽고 없으면 L3 여기도 없으면 RAM을 읽음
    ( 컴퓨터의 기억 장치 - 하드디스크, 램, 캐시메모리, 레지스터 )
    * 이때 레지스터는 CPU 내부에서 일시적으로 데이터를 저장하고 속도가 빠른 메모리
    ( SSD --> RAM --> CHACHE --> REGISTER 순으로 속도, 가격 ↑ )
    * 레지스터 (프로그램 카운터, 메모리 주소 레지스터, 메모리 버퍼 레지스터, 명령어 레지스터, 누신기 레지스터)
    --> 프로그래밍 언어는 컴파일을 통해 어셈블리 언어로 바뀌고 약속된 규칙에 따라 0,1인 기계어로 바뀜
    --> 우리가 사용하는 소프트웨어는 명령어(6비트), 데이터 집합체 (10비트) = 총 16비트 / 1줄
    --> RAM 은 8비트씩 2줄 저장됨 --> 두 줄이 프로세서가 한 번에 처리할 수 있는 하나의 언어
    2. 인출 : 메모리의 데이터를 cpu에 가져오는 과정 load[**]
    프로그램 카운터 레지스터 가져와야할 메모리의 주소가 있다면, 이 주소는 메모리 주소 레지스터로 전달되고 메모리 주소 레지스터는 그 주소에 있는 데이터를 가져와 메모리 버퍼 레지스터에 저장
    * 명령어 레지스터로 이동 후 프로그램 카운터에 그 주소에 있는 메모리만큼 더해지고
    다음에 수행할 메모리는 전에 주소보다 몇칸 만큼 더해짐 (예. 2칸 이동, 32비트에서 4칸)
    3. 해석 : 명령어 레지스터에 저장된 메모리는 제어장치로 이동돼 해석됨
    4. 제어 장치에 있는 주소를 통해 메모리를 가져오고 메모리 버피 레지스터에 저장 되고 이것은 명령어가 아닌 데이터이기에 주신기에 저장됨
    5. 실행 : 제어장치의 명령어와 누진기를 통해 ALU를 통해 연산
    6. 이것을 저장 
    --> 동작과정 아래 영상 참고

* 코어 : CPU 를 물리적으로 구별
* 스레드 : CPU를 논리적으로 구별
--> OS에서 프로세스를 더 작은 단위로 분할한 것
(ex) 1코어 2스레드 : 한 번에 두가지 작업, 1코어 4스레드 : 한번에 네가지 작업 

* 클럭 : 컴퓨터의 모든 부품들이 일정한 간격에 맞춰 동작하는 전기적 신호
(ex) 신호 발생 간격 - 1사이클 : Hz , 1초에 신호 1번 : 1Hz


https://www.hackerschool.org/Sub_Html/HS_University/HardwareHacking/06.html

 

https://www.hackerschool.org/Sub_Html/HS_University/HardwareHacking/06.html

 

www.hackerschool.org

https://youtu.be/Fg00LN30Ezg?si=9ogcOXKNvp57Q7_Q