멀티 코어 프로세서 CPU는 두 개 이상의 독립 코어를 단일 집적회로로 이루어진 하나의 패키지로 통합한 것이다.
dual-core, triple-core, hexa-core, octa-core, deca-core, dodeca-core (코어의 수 별)
각 코어는 슈퍼스칼라 실행, 파이프라인 처리, 멀티스레딩과 같은 최적화를 독립적으로 수행한다. 코어의 개수에 따라, 그 개수만큼의 스레드를 동시에 처리할 때 효율적으로 동작한다.
과거에는 주파수를 늘리는 방식으로 프로세서를 증가시켰었다.
멀티 프로세싱과 멀티 프로세서
코어가 많을 수록 좋은가 ?
클럭수에 대하여
멀티 CPU는 무엇인가 ? -> CPU가 1개가 아닌 2~4개 꼽힌 것. 그리고 이걸 활용하여 성능을 높이고 싶을때 멀티스레드를 사용.
왜 칩 제조사에서 멀티코어 프로세서를 만드는가 ?
그래 어쩔 수 없이 멀티코어 코어 개수를 높여 성능을 올려야 한다. 생김새를 보면 이렇게 생겼다. CPU0은 듀얼코어 CPU, 코어는 ALU, REGISTER, CU 그리고 캐시로 이루어져 있다. 인텔에서 CPU 하나 만들어서 복붙하면 듀얼코어가 되고 그걸 또 복붙하면 쿼드코어, 옥타코어가 되는 것이다. (
AMD도 마찬가지..)
쿼드코어 CPU.... 듀얼코어 CPU 2개 쿼드코어 CPU1개 차이는 없다...... CPU가 몇개 꽂혀 있는지 확인 하는 것, 그거 말고는 프로그램 상으로는 구분이 안된다고 한다.
그럼 이제부터는 각 유닛들이 어떤 역할을 하는지에 대해서 알아보자 !
기본 구성으로는 CPU에서 처리할 명령어를 저장하는 역할을 하는 프로세서 레지스터, 비교, 판단, 연산을 담당하는 산술논리연산장치(ALU), 명령어의 해석과 올바른 실행을 위하여 CPU를 내부적으로 제어하는 제어부(control unit)와 내부 버스 등이 있다.
CPU의 내장회로는 CPU가 수행할 수 있는 기본적인 연산들의 집합인 '명령어 집합'으로 이루어져있다. 예를 들면 두 개의 숫자에 대한 가감연산 혹은 비교연산 같은 것이 있다. 각각의 기본 연산은 옵코드(opcode)라고 불리는 특정한 비트의 조합으로 나타내진다.
모든 명령어의 실제 수학적인 연산은 CPU 내부의 산술논리장치(ALU, arithmetic logic unit)이라는 조합논리회로에서 담당한다. CPU는 대부분 산술논리장치가 연산을 수행하기 위한 명령어를 메모리로부터 불러오고, 연산의 결과값을 저장하는 일을 한다. 메모리로부터 데이터를 불러오는 연산의 명령어 집합의 종류와 동작은 확연한 차이를 보인다.
산술논리장치 : 덧셈, 뺄셈 같은 두 숫자의 산술연산과 배타적 논리합, 논리곱, 논리합 같은 논리연산을 계산하는 디지털 회로이다
제어 장치 (CU) : 명령어를 순서대로 실행 할 수 있도록 제어해주는 장치.
레지스터 : 고속 기억장치로 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과등을 임시로 저장한다. CPU 종류에 따라 사용할 수 있는 레지스터 개수와 크기가 다르다.
명령어 처리 과정 간략히 : PC -> MAR -> 기억장치 -> MBR -> IR -> PC+1