컴퓨터는 프로세서, 메모리, 주변기기 세가지로 나눌 수 있다
프로세서
CPU, GPU, 응용전용처리장치 등
컴퓨터의 두뇌(중앙처리장치). 연산을 수행하며 컴퓨터의 모든 장치의 동작을 제어한다.
CPU는 제어장치, 연산장치, 레지스터로 구성된다.
메모리
ram, rom, 레지스터, 보조기억장치 등
레지스터
CPU 안에 존재하는 메모리. 가장 빠르고 용량이 작다
캐시
CPU 안에 존재하는 메모리. 레지스터보단 멀리 떨어져 있으며 L1, L2 캐시 등이 있다.
메인메모리의 속도보다 CPU의 속도가 빨라 발생하는 입출력 병목현상(I/O Bottleneck) 해소를 위해 도입되었다.
캐시의 동작
일반적으로 HW적으로 관리된다. 프로세서가 사용해야 하는 데이터가 저장되어 있는
메인메모리에서 데이터가 포함되어 있는 메모리 블록을 저장해둔다.
필요한 데이터 블록이 캐시에 존재하는 상황을 캐시 히트라고 한다.
캐시 미스일 경우 메인메모리에 바로 접근하는 것보다 손해인데, 이럼에도 사용하는 이유는
한번 참조한 데이터는 곧 다시 참조하는 시간적 지역성(for문등의 순환문),
참조한 주소와 인접한 주소를 참조하는 특성인 공간적 지역성(순차적 프로그램 수행) 때문이다.
지역성은 캐시 적중률과 밀접하며, 알고리즘 성능 향상을 위한 중요한 요소 중 하나이다.
메인메모리
프로세서가 수행할 프로그램과 데이터를 저장한다. DRAM을 주로 사용하며, 용량이 크고 가격이 저렴하다
디스크의 속도보다 CPU의 속도가 훨씬 빨라 발생하는 디스크 입출력 병목현상을 해소하기 위해 도입되었다.
CPU가 작업하는 동안 다음에 처리할 데이터를 미리 램에 저장해둔다.
보조기억장치
DISK, SSD
프로그램과 데이터를 저장하며 프로세서가 직접 접근할 수 없고, 주기억장치를 거쳐 접근한다.
프로그램을 모두 주 기억장치에 올려둘 수 없을때, 디스크의 일부를 메모리처럼 사용하는 가상메모리라는 개념이 있다.
키보드, 모니터, 네트워크 모뎀 등
시스템 버스
프로세서, 메모리, 주변장치 등의 하드웨어들이 데이터 및 신호를 주고받는 물리적 통로
데이터버스
프로세서와 메인메모리, 주변장치 사이에서 데이터를 전송한다.
데이터버스를 구성하는 배선 수는 프로세서가 한번에 전송할 수 있는 비트 수(32bit, 64bit..)를
결정하는데, 이를 워드Word라고 한다.
주소버스
프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송한다.
주소 버스를 구성하는 배선 수는 프로세서와 접속할 수 있는 메인메모리의 최대 용량을 결정한다.
32개의 주소버스를 지닌 시스템은 2^32개의 메모리 위치를 할당할 수 있다.
32비트 컴퓨터에서 램을 4기가까지만 인식할 수 있는 이유
제어버스
프로세서가 시스템의 구성요소를 제어하는데 사용한다.
제어신호로 연산장치의 연산 종류와 메인메모리의 읽기나 쓰기 동작을 결정한다
동기식 버스
정해진 시간에 데이터를 전송하는 방법. 이때 시간은 버스가 가지고 있는 Clock을 기준으로 하며
빠르고 인터페이스 논리회로가 간단하지만, 느린 장비도 이 Clock에 맞춰야 한다는 점에서 시간낭비가 발생할 수 있다.
비동기식 버스
동기식 버스와 다르게 시간을 정하지 않는다.
대신 서로 데이터를 주고 받을 준비가 되어 있는지 확인하는 핸드쉐이킹 프로토콜을 사용하여
수신측에서 준비가 되었으면 바로 전송을 하는 방식이다.
따로 정해진 시간이 없기 때문에 시간 낭비가 적지만,
회로 구성이 복잡하고, 핸드쉐이킹 하는 과정이 필요하여 동기식에 비해 느리다.
버스의 특징은 공용 선이라는 것인데, 이때문에 한쪽이 데이터 선을 점령하면
다른쪽에서 신호 중첩을 유발 시킬 수 있어 사용하면 안된다.
이 점을 보완하기 위해 점대점 상호연결방식이 등장하였다.
QPI(Quick Path Interconnect)
다른 구성요소와 직접 연결하는 점대점 상호방식 중 하나로,
레이어로 구성된 프로토콜 구조이므로 물리적으로 연결되어 있는 부분부터
오류의 존재여부를 점검하는 등, 각각의 레이어에서 하는 일을 구분되어 있다.
고속, 고효율의 패킷 기반의 전송방식을 사용한다.
PCIe(Peripheral Component Interconnect Express)
버스를 1:1로 연결하여 택시로 만들어버렸다.
높은 용량 덕분에 기가이더넷과 같은 빠른 데이터 속도의 I/O 디바이스를 지원하는 데 사용되며
각각의 버스마다 독립적인 데이터 흐름을 제공하여 많이 사용된다.
핀수가 적고 물리적 면적이 작으며, 상세한 오류검출 및 보고구조 등의 장점을 가지고 있다.
최신 그래픽카드 꼽는 슬롯이 이거다