책/DB

서버 구조의 이해 CPU

파이어볼러 2015. 3. 3. 18:10

 CPU의 구조


컴퓨터의 기본원리는 데이터/명령어를 읽고 읽은 것을 수행하고 결과를 쓴다로 볼 수 있다


이 간단한 작동을 위해 최소한으로 필요한 요소는


- 저장 장치

- ALU (Arithmetic and Logic Unit, 산술 논리 유닛)

- 버스 (데이터/명령어가 저장 장치와 ALU 사이를 오가는 통로)


저장 장치에 있는 데이터와 명령어를 버스를 통해 읽어 와서 ALU가 연산을 수행하는 것.

이 간단하고 추상적인 원리가 복잡한 컴퓨터의 시발점


실제 컴퓨터의 구조를 그림으로 보면





위에서 설명한 모델을 조금 확장한 그림

빨간 화살표는 버스,

CPU라고 묶인 부분은 ALU,

L1/L2/L3 캐시 및 RAM은 저장 장치를 의미


위에서 CPU라고 표시한 부분은 크게 프론트엔드와 백엔드라는 두 부분으로 구분

CPU가 읽은 명령어를 연산장치가 해석할 수 있는 더 간단한 코드로 전환해주는 부분을 프론트엔드라 하고

프론트엔드가 해석해 준 코드와 데이터를 받아 실제로 연산을 수행하는 부분은 백엔드





실제로 연산을 수행하는 것이 백엔드이기 때문에 CPU의 성능은 곧 백엔드의 성능일 꺼라 생각하기 쉽지만,

사실 CPU가 읽어들인 명령어가 가장 많이 시간을 보내는 곳은 프론트엔드의 '디코드' 단계

프론트엔드는 명령어 인출, 디코드, 제어(백엔드로 디코드된 명령어 코드를 이송)의 세 부분으로 나뉜다


한편, 주로 저장 장치로 쓰이는 RAM의 속도는 CPU의 속도에 비해 많이 떨어지므로

CPU가 메모리에서 데이터/명령어를 기다리며 시간을 허비하지 않기 위해 보다 빠른 메모리를 사이에 둠

이것을 캐시(Cache)라고 하고, 캐시의 속도와 위치에 따라 다시 위계질서가 생기고

CPU에 가장 가까운 캐시를 레벨 1(L1) 캐시라고 하고, 보통 L1 캐시는 명령어/데이터로 역할을 분담