운영체제 & 컴퓨터구조

[OS] #4. CPU ( 중앙 처리 장치 )

코딩하는상후니 2022. 9. 2. 23:04

 


 

 

* CPU ( 중앙 처리 장치 )

 

 

 

 
 
* CPU 성능 기준
 
1. 클럭 ( GHz 단위로 표현됨. )
2. IPC  ( Instructions Per Cycle, 클럭당 명령어 처리 횟수 ) ( 링크 )
3. 코어 개수
 
 
 
 
* CPU 구성 요소
 
1. ALU ( 산술 논리 장치 )
2. CU ( 제어 유닛 )
3. 레지스터
4. 기타...
 
 
 
 
 
 

* ALU ( Arithmetic and Logical Unit, 산술 논리 장치 )

 
 
 
=> 뎃셈, 뺄셈 등 두 숫자의 산술 연산 & 논리합, 곱... 등 논리연산을 계산하는 '디지털 회로' 이다.
 
 
 
 
 
 
 

* CU ( Control Unit, 제어 장치 )

 
 
=> 입출력 장치 간 통신 및 조율을 제어.
 
=> 모든 컴퓨터 자원들은 제어 장치에 관리 하에 존재한다.
 
 
 
 
 
 
 

* 레지스터 ( Register )

 
 
 
=> CPU 내에 자료를 보관하는 아주 작고 빠른 칩.
 
=> 메인 메모리에서 데이터를 레지스터로 가져와 연산하고 연산 결과를 저장한다.
 
 
 
 
 
 
 
 
 
 
 
 
 
 

* 메모리 계층구조

 

 

 

 

 

=> 'CPU 처리 속도' 에 비해 'RAM 과의 통신 속도' 가 차이가 많이 나기에 성능이 저하될 수 있다.
 
이러한 문제를 해결하기 위해서,
CPU 옆에 일명 '캐쉬 메모리' 라고 불리는 녀석들이 생겨났다.

 

 

 

=> 캐시 메모리 종류에는 L1, L2, L3 가 존재하는데
각각의 CPU 코어마다 L1, L2 은 모두 가지고 있다. L3 는 CPU Core 끼리 공유하는 메모리이다.
( 제조사마다 다름. )
 
 
 
 
 
 
 
 

* 캐쉬 메모리의 역할

 
 
=> 캐쉬 메모리는 CPU 가 데이터를 참조하거나 어떤 일을 요청하는 것을 바탕으로
CPU 가 쓸 데이터를 캐쉬 메모리가 '예측해서 가져오는 방식' 이다.
 
 
 
 
* 캐쉬 메모리가 예측하는 기준.
 
시간적 지역성  :  최근 사용한 데이터를 더 자주 쓴다고 생각한다.
 
공간적 지역성 :  메모리 주변의 데이터를 더 자주 쓴다고 생각한다.
 
 
 
 
 
 
=> CPU 가 어떤 처리를 위해서
가까운 캐시 메모리부터 해당 처리를 위한 데이터가 존재하는지 살펴본다.
 
만약,
캐시 메모리에 없고 주기억장치( RAM ) 까지 가야하는 경우를 '캐시 미스'
데이터가 캐시에 존재하면 '캐시 히트' 라고 부른다.
 
 
 
 
 
 
 
 
 

* CPU 파이프라인

 
=> CPU 가 OS 의 부름을 받아 하나의 프로세스를 처리하는 과정을 살펴보자.

 

 

 

 

 

 
=> CPU 가 성능을 극대화하기 위해서 '코드 재배치' 가 일어날 수 있다.
'비순차적 실행 ( out-of-order execution )' 이라고 한다. ( 원자성 보장 X )
 
 
 
 
 
 
 
 
 
 

* 이런 최적화 방법으로 인해 생겨난 문제들..

 

 
 
* CPU 게이트
 
 
 
 
 
 
 

* MeltDown ( 멜트다운 )

 
 
 
 
 
 
 

* Spectre ( 스펙터 )

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

* 바뀌고 있는 변화

 
* PIM
 
 
 
=> PIM 은 하나의 칩이 메모리와 프로세서의 역할을 모두 할 수 있다고 한다.

 

 

 

 


 

참고 자료