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 캐시는 명령어/데이터로 역할을 분담
'책 > DB' 카테고리의 다른 글
OS의 종류 서버 장비에 대해 이해 (0) | 2015.03.03 |
---|---|
OSI 7Layer의 계층 (0) | 2015.03.03 |
Directory의 구조와 용도에 대한 이해 (0) | 2015.03.03 |
서버 구조의 이해 NIC (0) | 2015.03.03 |
서버 구조의 이해 메모리 (0) | 2015.03.03 |