멀티 코어

190px|섬네일|싱글 다이 및 멀티 코어의 개념도: CPU 코어와 L1 캐시가 2 개 있으므로 L2 캐시는 2 개의 코어와 공유된다.
[섬네일|[인텔 코어 2 E6300은 듀얼 코어 프로세서이다.]]
[섬네일|[AMD Athlon X2 6400+ 듀얼 코어 프로세서.]]
**멀티 코어** 또는 **멀티 코어 프로세서**(multi-core processor) CPU는 두 개 이상의 독립 코어를 단일 집적 회로로 이루어진 하나의 패키지로 통합한 것이다. **칩 레벨 멀티프로세서**(CMP)라고도 한다.

**듀얼 코어**(dual-core) 프로세서는 두 개의 코어를 포함하고 있으며, **트리플 코어**(triple-core) 프로세서는 세 개의 코어를 포함하고 있고, **쿼드 코어**(quad-core)는 네 개의 코어를 포함하고 있고, **헥사 코어**(hexa-core) 프로세서는 여섯 개의 코어를 포함하고 있다. **옥타 코어**(octa-core) 프로세서는 여덟 개의 코어를 포함하고 있다. **데카코어**(deca-core) 프로세서는 열 개의 코어를 포함하고 있다. **도데카 코어**(dodeca-core) 프로세서는 열두 개의 코어를 포함하고 있다.

멀티 코어 마이크로프로세서는 멀티프로세서 기능을 단일 물리 패키지에 추가하였다. 하나의 다이에 모든 코어를 가진 프로세서를 모놀리식 프로세서(Monolithic Processor)라고 부른다. 멀티 코어 장치 안의 코어는 하나로 연결된 캐시를 최고 수준의 장치 캐시 수준에서 공유할 수 있으며(이를테면 인텔 코어 2의 2차 캐시), 두 개의 캐시(이를테면 AMD 듀얼 코어 프로세서)를 가질 수도 있다. 각 코어는 슈퍼스칼라 실행, 파이프라인 처리, 멀티스레딩과 같은 최적화를 독립적으로 수행한다. 코어의 개수에 따라, 그 개수만큼의 스레드를 동시에 처리할 때 효율적으로 동작한다. 상업적으로 가장 중요한 멀티 코어 프로세서들은 컴퓨터(주로 인텔, AMD)와 게임기(플레이스테이션 3의 셀 프로세서)에서 사용된다. 문맥상 "멀티"(multi)는 보통 상대적으로 작은 수의 코어를 뜻한다. 그러나 이 기술은 네트워크 프로세서, 디지털 신호 처리장치, 그래픽 처리 장치와 같은 임베디드 프로세서 등의 다른 기술 분야에도 널리 쓰인다.

## 멀티 코어 프로세서
**멀티 코어 프로세서(multi-core processor)**, 전력요청과 비효율적인 하드웨어 증대를 줄일 수 있는 또 하나의 방법은 멀티코어 프로세서를 이용하는 것이다. 멀티코어 프로세서는 2개 이상의 프로세서를 포함한 집적회로이다. 과거에 칩 생산자는 몇 메가헤르츠에서 기가헤르츠까지 주파수를 늘리는 방식으로 프로세서의 속도를 증가시켰다. 그러나 이런 전략은 높은 기가헤르츠 칩에 수냉각이 필요할 정도로 열과 전력 소모 모두를 증대시켰다. 멀티 코어 프로세서는 2개 이상의 느린 프로세서를 하나의 칩에 결합한다. 이 기술은 파워가 증가되고, 열 손실이 감소한 2개의 프로세싱 엔진이 프로세싱 코어가 하나인 자원이 부족한 칩보다 더 빠르게 작업을 수행할 수 있도록 해준다.

현재 인텔이나 AMD 같은 회사는 멀티 코어 마이크로프로세서를 생산하며 쿼드 코어 프로세서를 출시하였다. 도쿄기술 협회는 일본에서 가장 큰 슈퍼컴퓨터를 구축하려고 듀얼 코어 프로세서를 이용하였다. 이 기관이 단일 코어 프로세서를 이용했다면 현재 시설의 2배 규모인 데이터 센터가 필요하고 거의 2배에 달하는 열을 발생했을 것이다. 듀얼 코어는 단일 코어를 구현하는데 필요한 서버 수의 절반으로도 구현할 수 있으며, 관리할 시스템 수도 적어 유지·보수비용이 적게 든다.

## 개요
이 기술은 여러 개의 CPU 코어를 하나의 다이에 집적하는 경우, 프로세스 규칙을 바꾸지 않으면 장착된 CPU 코어의 수에 비례하여 다이가 커지게 된다. 면적이 늘면 급수적으로 제조 불량률도 늘어나는 경우가 있기에 제조 측면에서는 불편한 점이 있다.

병렬 연산에 맞는 프로그래밍이 필요하므로 소프트웨어의 개발이 어려워지긴 하지만, 운영체제나 미들웨어 등이 병렬 처리를 지원하면 소프트웨어 개발이 쉬워지는 경우가 있다. 멀티 프로세서와 호환되는 프로세서의 멀티 코어 개발은 비교적 간단하다.

개인용 컴퓨터는 소비 전력, 발열, 소음이 높아지는 제약, 클럭 주파수가 높아지지만 그에 따른 효과는 크지 않은 이유 등에 따라, 멀티 코어 기술을 사용하게 된다. 멀티 코어는 소비 전력과 발열을 낮추는 것을 목적으로, 코어마다 동작 전압이나 클럭 속도를 임의로 제어하며 유휴(idle) 상태를 포함한 동작 상태를 제어하는 제품도 있다.

멀티 코어와 비슷한 기술로 동시 멀티스레딩(SMT)이 있다.(이를테면 인텔의 하이퍼스레딩에서 사용하는 기술이다.) 이것은 하나의 CPU를 외부로부터 2개처럼 보이게 한다는 점에서는 같지만, 실제로 존재하는 코어는 싱글 코어라는 점에서 멀티 코어 기술과 근본적으로 다르다.

## 용어
주로 쓰이는 용어는 다음과 같다..
* **[[다이 (집적 회로)|다이]]**: 실리콘, 회로판 위에 반도체 회로를 만들어서 사각형으로 잘라낸 것이다. 반도체 산업에서 공정이 끝난 회로판이나 다이의 생산까지가 메인스트림 공정이며, 테스트와 패키지 봉입이 다운스트림 공정이 된다. 반도체를 생산하는 대기업에서 자체 생산을 하는 경우가 있지만, 다운스트림 공정은 하청 생산하는 경우가 많다.
* **[[코어]]**: 멀티 코어 CPU의 코어는 CPU 다이 위에 구성된 CPU 회로의 핵심 부분에서 캐시 메모리를 제외하는 반도체 회로 부분이다. 그러나 공유가 아닌 코어 전용의 캐시 메모리는 코어에 포함된 것이 많다. 대부분 CPU 다이는 코어, 캐시 메모리 등의 접속부로 구성된다.
* **[[서브 스트레이트]]** (실리콘 웨이퍼)
* **[[칩]]**: 반도체 부품을 뜻하지만, 다이를 가리키는 경우도 있다. 또, 표면 실장 기술(SMT)의 수동 부품을 가리키기도 한다.

## 같이 보기
* 대칭형 다중 처리
* 동시 멀티스레딩
* 멀티프로세서
* 멀티테스킹
* 병렬 연산
* 싱글코어
* 테스트

## 각주


## 외부 링크
* 멀티 코어 연산 코스 (라이스 대학교)
* BMDFM: Binary Modular Dataflow Machine - 멀티 코어 런타임 환경 (BMDFM)
* 인텔 테라급 컴퓨팅 연구 프로그램
* 멀티 코어를 파헤쳐 보기: 무어의 법칙의 이점을 넓혀 본다
* AMD 하이퍼트랜스포트 기술
* 썬 스튜디오 멀티스레딩 도구
* 멀티코어 프로그래밍의 일주일 코스 (MIT)

분류:병렬 컴퓨팅
분류:마이크로프로세서
분류:컴퓨터 구조
분류:디지털 신호 처리
분류:플린 분류