컴퓨터 구조1(CPU 관련)
>> 중앙처리장치(CPU)
- 컴퓨터의 뇌라고 할 수 있는 중앙처리장치(Central Processing Unit, CPU)는 주기억장치인 메모리에서 명령어를 읽어들이고 이를 해석해서 수행하는 작업을 한다. CPU의 주요 구성요소로는 ALU, CU, Register가 있다.
1) 명령어 가져오기 (Fetch)
2) 명령어 해독 (Decode)
3) 명령어 실행 (Execute)
4) 메모리 접근 (Memory Access)
5) 결과값 저장 (Write-back)
>> CPU 구조
- ALU(산술연산장치, Arithmetic Logic Unit)
- CPU의 핵심요소로, CU로부터 명령을 받아서 CPU로 들어오는 모든 데이터들을 산술 및 논리 연산 처리한다.
산술 연산은 덧셈, 뺄셈, 곱셈, 나눗셈을 포함하며, 논리 연산은 AND, OR, NOT 등의 비트 수준 연산을 포함한다.
- 레지스터를 통해 입력받은 피연산자와 제어 유닛으로부터 받은 명령에 따라 ALU는 연산을 수행하며, 그 결과는 다시 레지스터에 저장되어 필요에 따라 메모리에 전송된다.
- 레지스터를 활용하는 이유 : CPU와 메모리 간의 데이터 전송 속도가 상대적으로 느리기 때문으로, 레지스터를 사용하면 효율적인 연산 처리가 가능하다.
- 또한 ALU의 연산 결과를 Flag Register에 저장함으로써, 추가적인 상태 정보(플래그)를 제공할 수 있다.
이는 연산 결과가 양수 또는 음수인지, 오버플로우(연산 결과가 레지스터의 용량을 초과한 경우)가 발생했는지 등의 정보를 나타낸다.
- ALU에서 제공하는 주요 Flag 목록
- 부호 Flag : 연산한 결과의 부호를 나타냄
- 제로 Flag : 연산 결과가 0인지 여부를 나타냄
- 캐리 Flag : 연산 결과 올림수나 빌림수가 발생했는지를 나타냄
- 오버플로우 Flag : 오버플로우가 발생했는지를 나타냄
- 인터럽트 Flag : 인터럽트가 가능한지를 나타냄
- 슈퍼바이저 Flag : 커널 모드로 실행 중인지, 사용자 모드로 실행 중인지를 나타냄 - 이런 플래그 정보를 통해 CPU는 프로그램의 실행 상황을 신속하고 정확하게 파악할 수 있다.
- ALU에서 제공하는 주요 Flag 목록
- CU(Control Unit, 제어 장치)
- CPU 및 컴퓨터의 작동을 제어
- 컴퓨터 시스템에서 가장 정교하게 설계된 제어 장치는 다양한 하드웨어 구성 요소들을 조율하고 관리하는 역할을 한다.
- 이는 시스템 전체의 효율적인 작동을 위해 전기적 제어 신호를 발생시키고, 이를 통해 다른 컴퓨터 부품들의 동작을 제어한다.
- 제어장치가 받아들이는 정보
1) Clock 신호
- Clock : 컴퓨터에서 특정한 간격으로 반복되는 신호
- 클럭 신호는 제어장치가 타이밍을 맞추고 다른 컴퓨터 부품들과 동기화를 유지하는 데 필수적인 역할을 한다.
- 즉, 클럭 신호는 일종의 타이밍 신호로, 컴퓨터의 각 부품이 동기화되어 동작하도록 만드는 역할을 한다고 볼 수 있다.
- 클럭 속도는 컴퓨터의 전반적인 성능에 중요한 역할을 하지만, 모든 컴퓨터 부품이 동일한 클럭 속도로 작동하는 것은 아니다.
- 또한 클럭 속도가 빠르다고 해서 모든 작업의 속도가 반드시 빨라지는 것도 아니다.
이는 일부 작업들이 병렬 처리가 불가능하거나, 다른 부품의 지연 시간에 의해 제한될 수 있기 때문이다.
2) 레지스터로부터 명령어 레지스터의 명령어, 플래그 레지스터의 플래그를 받아들인다.
- 명령어 레지스터는 CPU가 해석해야 할 명령어를 저장하고, 이를 제어 장치에 전달한다.
- 제어 장치는 이를 해석하고 필요한 제어 신호를 발생시킨다. 이때, 플래그 값이 참조되어 제어 신호의 생성에 영향을 끼친다.
여기서 플래그는 CPU의 이전 연산 결과나 상태를 나타내는데, 이 정보는 다음 연산이 어떻게 수행될 것인지를 결정하는데 중요한 역할을 한다.
3) 시스템 버스, 그 중 제어 버스로 전달된 제어 신호를 받아들인다.
- 제어 신호는 CPU 뿐만 아니라 입출력장치를 비롯한 CPU 외부 장치에서도 발생할 수 있다.
- 즉, 제어 버스를 통해 다른 컴퓨터 부품들로부터 제어 신호를 받아들일 수 있다.
- 이렇게 다른 컴퓨터 부품들로부터 받은 제어 신호를 통해 제어장치는 CPU의 작동을 조율하고, 필요한 경우 적절한 응답을 한다.
- 제어장치가 받아들이는 정보
- Registers : CPU 내부의 저장소 제공
- CPU Interconnection : 제어 유닛, ALU, 레지스터 간의 통신을 제공하는 메커니즘
- CPU(Central Processing Unit) : 명령을 가져오고 실행하는 컴퓨터 부분. ALU, 제어 유닛, 레지스터로 구성됨
- Core : 프로세서 칩상의 개별 처리 유닛. 단일 CPU 시스템의 CPU와 기능적으로 동일할 수 있음, 기본 연산과 계산 작업 역할을 수행한다.
- Processor : 하나 이상의 코어를 포함하는 실리콘 물리 부품. 명령을 해석하고 실행하는 컴퓨터 구성 요소 - CPU내부 버스
- ALU,레지스터간 데이터이동을 위한 데이터,주소 선들, 제어장치로부터 발생되는 제어 신호를 전송하는 선들로 구성된다.
>> 코어
- CPU에서 코어는 기본적인 연산 및 계산 작업을 담당하며, 해당 처리 속도를 나타내는 단위는 클럭이다.
- 기본적으로 CPU 또는 프로세서의 주요 구성 요소이다.
- 메모리에서 명령을 가져오거나 수행한다.
- 한 가지 고려해야 할 점은 코어는 CPU 내부에 위치하며, 아키텍처 설계에 따라 여러 개의 코어가 CPU에 동시에 위치할 수 있다는 것이다.
- 멀티 코어 CPU : 코어가 2개 이상인 단일 컴퓨팅 구성장치를 말한다.
- 멀티 코어 CPU의 장점 : 기존에 하나의 코어로 진행하던 작업을 두 개의 코어로 병렬처리하여 속도를 획기적으로 끌어올릴 수 있다는 점이다.
=> CPU와는 달리 CPU 내부에 위치한 각종 연산을 하는 핵심 요소라고 생각하면 된다.
>> Processor
- 컴퓨터 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리회로를 말한다.
- 보통 소프트웨어의 지시를 읽고 하드웨어의 다른 부분으로 신호를 보내는 제어장치(Control Unit)와 덧셈, 뺄셈 등 사칙연산과 AND, OR와 같은 논리연산 등을 담당하는 연산장치(ALU, Arithmetic Logic Unit)로 구성된다.
- 프로세서는 프로그램의 명령을 수행하는 CPU 프로세서와 이러한 CPU 기능을 보조하는 보조 프로세서로 분류된다.
- 마이크로프로세서 : 초소형 연산 처리 장치로 컴퓨터의 중앙 처리 장치(CPU)를 말한다.
>> 스레드 수
- 스레드란 CPU 내부에서 실질적으로 업무를 수행하는 가장 작은 논리적 단위이다.
- 일반적인 CPU는 하나의 코어가 한 개의 스레드로 업무를 수행하지만, 인텔의 하이퍼스레딩과
AMD의 SMT(Simultaneous MultiThreading)기술이 적용된 CPU는 1개의 코어가 2개의 스레드를 가지고 동시에 처리할 수 있다.
- 이는 기존 1코어 1스레드 대비 작업에 따라 최대 40%까지 향상된 성능을 낸다.
>> L2 캐시메모리
- CPU 내부에서 임시로 사용하는 버퍼 메모리 중 하나이다.
- Level 2의 약자로, PC에 장착된 메모리와 CPU 사이에서 동작하며, CPU가 데이터를 처리하는 동안 다음에 처리할 내용을 메인 메모리로부터 불러와 대기하는 곳이 L2 캐시 메모리 입니다.
- L2 캐시 메모리는 CPU 내부에 들어가 있는 것이 보통이지만 예전에는 메인보드에 탑재되었는데 캐시를 많이 넣다보니 CPU 안에 전부 넣을 수 없었기 때문이다.
>> L3 캐시메모리
- L3 캐시 메모리도 L2 캐시 메모리와 마찬가지로 CPU 안에 내장되어 있는 일종의 임시 메모리입니다.
- 다중 코어 CPU의 경우 L2 캐시는 코어마다 하나씩 들어있으나 L3 캐시 메모리는 CPU 전체에서 하나만 존재합니다.
- Level 3 캐시 메모리라고도 하며, PC에 장착되어 있는 메인메모리에서 CPU에 처리해야 할 데이터를 보낼 때 가장 먼저 지나게 되는 임시 저장소입니다.
- L3 캐시는 L2 캐시 메모리에 비해 용량은 많지만 속도가 느리고 값이 저렴하기 때문에 L2 캐시 메모리보다 많은 용량이 탑재됩니다.
>> PCle 버전
- PCle는 주로 NVME SSD와 그래픽카드를 연결하는 인터페이스로 사용되며, 현재 PCle 5.0 버전까지 상용화되었다.
>> 메모리
- 메모리는 실행 중인 프로그램, 중간 결과, 그리고 다양한 데이터를 저장하는 공간이다.
램 : 읽기, 쓰기 가능 / 빠름 / 휘발성 / DRAM, SRAM / 주기억장치
롬 : 읽기만 가능 / 비교적 느림 / 비휘발성 / Flash, PROM, EPROM / 보조기억장치
>> 입출력 시스템 - DMA
- CPU를 거치지 않고 메모리와 입출력 장치 간의 데이터를 직접 전송하는 방식이다.
- 이 방식으로 CPU 부하를 줄일 수 있다.
>> MPU, MCU 차이점
1) MPU(Micro Processor Unit)
- MPU는 연산이 주 목적이고, ALU와 연산 입력값을 처리하기 위한 레지스터로 이루어진다.
- 컴퓨터의 핵심 기능인 주어진 기계어를 해석하고, 연산을 수행하는 기능을 중점으로 둔다.
- 그렇기에 MPU는 주변에 RAM, ROM, I/O 등의 장치를 추가해주지 않으면 작동이 불가하다.
=> 주변의 추가적인 장치를 필요로 한다면 MPU로 생각하면 될 것.
2) MCU(Micro Controler Unit)
- MCU는 연산과 I/O 인터페이스, 메모리 등을 묶어 작게 만든 통합형 칩셋으로 주변 장치 등을 제어하는 것이 목적이다.
=> 즉, 연산 + 장치 제어가 목적이고, 단일 칩 하나로 기본적인 동작이 가능하다면 MCU로 생각하면 될 것.
3) MPU, MCU, CPU 차이점
- MPU와 MCU는 모두 CPU에 속하고, MCU가 하나의 컴퓨터를 소형화 시켜놓은 칩이라면, MPU는 단지 CPU 그 자체만을 소형화시켜 놓은 칩인 것이다.
- 일반적으로 개인용 컴퓨터, 워크스테이션 등에서 사용되는 중앙처리장치는 CPU라고 부르고, 전자기기나 산업용 장비에 사용되는 소형화 된 CPU는 MPU라고 부른다.