X86 Open로그인

추천하기 twitter 로그인 facebook 로그인 google 로그인 카카오 로그인 네이버 로그인
10
Profile

[연재] Intel 社 CPU 파헤치기 (上) rev.161129

KsJ
2016/11/28 322 10 •레벨 : 19  •보유금화 : 88652  •최근접속일 : 16-12-02 

* 해당 연재는 Intel 社 CPU에 관한 정보를 토대로 작성됨을 미리 말씀드립니다. (해당 글은 HWBattle 및 X86.co.kr 에서만 연재되는 글입니다.)

 

497b57342ddba5b049742f1038db3f90_1480327

1. CPU의 기능
 

중앙처리장치라고 불뤼는 CPU는 생각 외로 다양한 일들을 수행합니다. 물론, CPU가 하는 모든 일과 관련하여 지루하고 따분한 설명을 하는 것이 목적이 아니기 때문에 구구절절 얘기하지만은 않을 것입니다. 하지만, 적어도 어떤 역할을 하는 녀석인지는 알아두는게 좋을 것이기 때문에 간단하게나마 짚고 넘어가보도록 하겠습니다.

우선 CPU는 간단히 말해서 사람의 '두뇌'와 같은 역할을 하는 녀석이다라고 할 수 있겠습니다. 아, 물론 두뇌도 여러가지 부위가 있으니 이는 잘못된 설명이 되겠지요. 정확하게는 두뇌가 담당하는 연산/추리/판단과 같은 기능을 CPU가 수행한다고 보시면 되겠습니다. 두뇌의 '해마'가 하는 저장능력은 CPU에게 없기 때문에 해당 저장능력은 SSD / HDD가 대신 담당하여 수행하게됩니다. (Cache의 개념이 있기는 하지만 너무나 미약하므로 없다 표현하였습니다.)

이러한 물론 CPU를 이루고 있는 가장 작은 소자인 트랜지스터는 고급능력에 해당하는 판단/추리와 같은 역할을 수행해내지는 못합니다. 하지만, 간단한 연산은 할 수 있는 녀석이기 때문에 이러한 트랜지스터가 수억-수십억개가 모여 하나의 CPU를 이루게됩니다. 그리고 이러한 트랜지스터들의 집단적 연산을 통하여 보다 복잡한 연산을 처리하게 되며, 이 복잡한 연산을 통해 판단 / 추리 등을 할 수 있게 됩니다. (여기서 언급하는 CPU에서의 추리는 통계적 / 수학적 / 계산적 방식에 의거한 추리를 의미합니다. 따라서 막연한 추론이나 추리와는 다른 개념입니다.)

물론 추리의 경우에는 잘 짜여진 로직에 의거하여 동작하게 되는데, 현재는 이러한 부분이 AI (이하 인공지능)으로써 불뤼며 지속적인 연구가 이루어지고 있는 부분입니다. 아직까지는 CPU 스스로 판단하고 추리하고 사고하는 능력을 지니지는 못하지만 추후 AI의 형태로써 언제든 발전 가능성을 가지고 있다는 것입니다.

잠깐 딴길로 샜는데, 이러한 CPU를 제조하는 회사가 있습니다. 바로 Intel 社와 AMD 社입니다. 보다 편리하게 부르기 위하여 인텔, 암드라 부르도록 하겠습니다. 이 글에서는 인텔사가 만드는 CPU에 관하여 이야기할 것인데, 암드사의 APU편은 추후를 기약하도록 하겠습니다.

어쨌거나 현재 독주를 하고 있는 인텔사의 CPU는 상당한 역사를 지니고 있습니다. 초창기 시절부터 현재에 이르기까지, 꽤 오랜 세월동안 다양한 CPU들을 제조해오면서 여러가지 라인업이 탄생했다 사라지며 현재는 일부 라인업들이 이전 라인업을 계승받아 이어져 오고 있는 상태입니다. 지금 이 시점에 존재하는 CPU 라인업은 Xeon Series, i Series, Pentium Series, Celeron Series, Mobile Seires 이며, 각각 라인업은 E, i, G, M, U, Y, HQ 등의 이니셜을 단 제품군을 대표로 내놓고 있는 상태입니다.

후반에 위 제품군들에 대해 알아보는 시간을 가질 것이기 때문에, 우선은 라인업이 대략 이렇게 된다라는 것만 참고해주시면 감사하겠습니다. 그렇다면 지금은 CPU의 무엇에 대해 이야기를 하려 하는가?라면 바로 INTEL이 수많은 세월을 거치며 발전시켜온 대표적인 기술, 바로 HYPER THREADING 기술과 SPEED STEP 기술, 그리고 TURBO BOOST 기술에 대해 알아볼 것이라 말씀드릴 수 있겠습니다.

 

 

1-1. Hyper Threading

 

하이퍼 스레딩 기술은 간단하게 말해서 1개의 물리적 코어 (Physics Core)가 2개의 코어가 있는 것처럼 (Logical Core) 움직이게 만들어주는 기술입니다. 현재는 기술적 한계인지는 모르겠지만, 1개의 물리코어당 2개의 논리코어로 동작하며  그 이상의 기술이 있는데도 인텔이 적용을 하지 않는 것인지는 불분명한 상황입니다. 

그렇다면 하이퍼 스레딩은 어떠한 원리로 움직이는것인지 살펴볼 필요가 있을 것입니다. 단순히 1개의 물리적인 코어가 어떻게 2코어처럼 동작할 수 있는 것인지 납득이 잘 가지 않을 뿐더러, 하이퍼 스레딩 기술이 까짓거 대단하면 얼마나 더 대단하겠어?란 생각이 들 수 있기 때문입니다.

 

497b57342ddba5b049742f1038db3f90_1480329

 

해당 이미지는 https:// href="http://www.pctechguide.com/pentium-cpus/hyper-threading-technology" target="_blank">www.pctechguide.com/pentium-cpus/hyper-threading-technology 에서 가져온 하이퍼 스레딩의 모식도입니다. 우선 실행하여야 할 프로그램이 2개가 있습니다. 이들의 이름을 각각 Task 1, Task 2로 명명하도록 하겠습니다. 그리고 이 두 프로그램은 메모리에 상주해있는 상태입니다.

CPU는 작업을 하기 위하여 자신의 전용 작업공간인 L2 & L3 Cache에 Task 1과 Task 2 프로그램의 내용들을 채워넣습니다. 그리고 이 캐시의 내용을 Data Cache, Trace Cache로 나누어 작업합니다. Data Cache와 Trace Cache는 Register Set Control쪽에 정돈되며 Execution Units들이 정돈된 캐시 내용들을 처리합니다. 이때 잘 보아야 할 것은 Execution Units에 담겨진 Task 1과 Task 2의 정보 조각들입니다.

만약 CPU가 홀로 동작하는 1코어 Non - Hyper Threading 제품이었다면 해당 유닉들의 순서는 하나의 Task 프로세서가 모두 차있어야 할 것이기 때문입니다.

즉, Task 1에 대한 내용을 모두 처리한 후 연이어서 Task 2에 대한 내용을 처리하는 순차적 방식으로 동작하는 것이 기존 1코어의 동작방식이었다면, 하이퍼 스레딩을 지원하는 CPU는 위와같은 방식으로 2개의 Task 프로그램 작업들을 번갈아가며 동시에 처리함으로써 두 프로그램의 동시 동작에 있어 최소한의 레이턴시를 보장해준다는 것입니다.

 

이하 성능 및 부가적인 모식도에 대한 그림은 테크파워업의 링크로 대체하도록 하겠습니다. 

https:// href="http://www.techpowerup.com/reviews/Intel/Core_i5_661/14.html" target="_blank">www.techpowerup.com/reviews/Intel/Core_i5_661/14.html

 

따라서 되도록이면 하이퍼 스레딩 기술을 꼭 활성화시켜, 최대한의 성능 향상을 꾀할 수 있도록 하는 것이 CPU가 보다 더 제대로된 값어치만큼의 일을 하게 만드는 부분이 아닐까 싶습니다. 하이퍼 스레딩 기술은 오버클럭의 경우에도 활성화 시켜주게 되는 권장항목이기 때문입니다. (성능에 도움이 되면 되었지 손해가 나지 않는다는 이유에서입니다.)

 

 

1-2. Speed Step

 

스피드 스텝이라 불뤼는 이 기술은 공정에 따른 전력 효율 부분을 최대한 개선하고자 인텔이 고안해낸 기술이라 할 수 있겠습니다. 즉, 전성비를 높여주는 기술이 바로 이 스피드 스텝이라 할 수 있다는 것입니다. 물론 오버클럭이라는 작업을 진행할 때에는 해당 관련 기술을 전부 비활성화 해주기는 하지만 오버클러커가 아닌 이상 해당 기술은 인텔社의 CPU를 이용하는 사람들이라면 누구나 사용하고 있는 기술이라 할 수 있다는 것입니다.

하이퍼 스레딩 기술은 지원하지 않는 CPU가 존재하지만, 인텔의 스피드 스텝 기술은 현재 지원하지 않는 CPU가 없습니다. 즉, 모든 CPU는 이 스피드 스텝이란 기술을 사용하고 있는 것인데, 이 스피드 스텝이 뭐길래 그렇게 모든 CPU에 사용을 하고 전성비가 뛰어나진다고 말하는 건지 궁금할 것입니다. 해당 관련 기술은 친절하게도 인텔이 자사 CPU 기술문서에 모식도를 통하여 저술해놓고 있습니다.

 

1-2-1. P-State

 

 

497b57342ddba5b049742f1038db3f90_1480330

 

 

 

ACPI 규격에 따른 State 구분은 P-State와 C-State 2가지 상태로 둘 수 있는데, P-State는 CPU가 Active 상태일때 동작하며, C-State는 CPU가 Halt 상태일 때 동작합니다. 여기서 스피드 스텝은 CPU가 동작 상태일 때, P-State 상에서 CPU의 동작 주파수를 유동적으로 조절하여 전력 소모를 감축하는 기술을 의미합니다. 현재는 이 스피드 스텝이란 기술은 EIST로 명명되었으며, 스카이레이크에서는 스피드 시프트라는 새로운 기수로 업데이트된 상태입니다.

스피드 스텝은 크게 P-State와 C-State라 불뤼는 2가지 동작 단계로 구분됩니다. P-State의 경우에는 위 모식도를 보면 아시겠지만 C-State 0 Level에서 동작한다는 사실입니다. 즉, CPU가 None Halt (활성화) 상태일 때에 동작하는 것이 P-State이며 CPU의 배수를 유동적으로 조절함으로써 전력소모를 줄인다 할 수 있겠습니다.

예로 3.0 Ghz로 동작하는 CPU가 있을 때에, 1.0 Ghz만큼의 작업량이 CPU에 주어졌다고 가정하도록 하겠습니다. 이 때, CPU가 3.0으로 동작하며 일을 처리하는 것과 1.0으로 동작하며 일을 처리한다면 이들의 효율성은 분명 다른 값을 나타낸다 할 수 있을 것입니다. 물론 3.0으로 동작하며 1.0을 처리하는 것이 1.0으로 동작하며 1.0의 작업량을 처리하는 것보다 시간이 더 적게 걸릴 것이겠지만, 이게 장시간 작업으로 이어진다고 했을 때에 과연 CPU가 소모하는 전력과 관련하여 효율성이 뒤어나다고 할 수 있을까라는 의문을 남기기에 충분하다는 사실입니다.

위와같은 사실로 이끌어낼 수 있는 정보는 바로 'P-State는 자신이 처리해야 할 양만큼으로 CPU의 동작 Hz를 조절함으로써 위와같은 자원의 낭비를 막고, 최소한의 전력으로 최대한의 능력을 이끌어내는 것'이란 부분입니다. 그러나 P-State의 기술적 한계는 분명 존재합니다. 모든 클럭에 대해 유기적 조절이 불가능하기 때문에 최대한 작업량에 가까운 주파수로 동작한다라는 것입니다. 이를 보완하기 위하여 C-State라는 개념이 추가적으로 도입되었다는 것입니다.

 

1-2-2. C-State​

C-State는 CPU가 쉬고 있을 때에, 그에 걸맞는 전력 감소를 함으로써 전력을 보다 효율적으로 감축하는 것을 목표로 한다 할 수 있겠습니다. 다만 이 부분은 CPU의 스피드 스텝과 관련한 기술 보다는 ACPI 규격에 따른 Power Management 기술에 보다 더 가깝기 때문에 위에서 언급된 P-State와는 그 동작 방식이 궤를 달리합니다. 이 C-State는 사실상 CPU의 발전과 함께 ACPI가 발전해 왔다고 볼 수 있겠으며, ACPI의 리비전에 따라 그 근방에 출시된 CPU들의 G0상태에서의 C-State 동작이 다소 차이를 보인다는 것입니다. 되도록, 모든 CPU의 C-State에 대해 살펴보고는 싶지만, 현재 가장 많이 사용되고 있는 하스웰 계열 CPU와 스카이레이크 계열 CPU에 대한 C-State에 대해서만 살펴보도록 하겠습니다. (부득이하게 모바일계열은 모두 생략하겠습니다.)​

C-State는 CPU가 쉬고 있을 때에도 CPU가 깨어있는 상태로 동작하여야만 하는가?에서 출발한 기술이라 할 수 있겠습니다. 즉, CPU가 쉬고 있을 때를 가정한 Halt (비활성화) 상태에서의 CPU 전력 감소 기술이란 것입니다. C-State는 P-State와 달리 CPU의 발전에 따라 지원해주는 상태 수 (n)이 다릅니다. 현재 나온 스카이레이크의 경우 최다 C10단계까지 지원되며, 구세대 CPU일 수록 C-State의 숫자가 작아지며 그나마도 가장 기본적인 C-State Enable 정도만 남고 맙니다.

 

1-2-2-1. i3 / i5 / i7 4xxx Series C-State​​

 

497b57342ddba5b049742f1038db3f90_1480331

 

4세대 하스웰 계열의 C-State는 C0, C1, C1E, C3, C6, C7의 단계를 제공합니다. 각 단계에 대한 설명은 다음과 같습니다.

 

C0 - 활성화 상태 (이 단계에서는 P-State가 동작합니다.)

C1 - 자동 비활성화 (Halt) 상태

C1E - 자동 비활성화, 낮은 주파수, 낮은 전압

C3 - L1 / L2 캐시를 비움, 동작 주파수 X

C6 - 종료되기 전 코어의 상태를 저장

C7 - C6와 동일하나 L3 캐시를 추가로 비움

 

참고로 C7의 경우는 모든 SKUs에서 동작하지 않습니다.

 

 

497b57342ddba5b049742f1038db3f90_1480331

위 그림은 각 C-State 상태에서의 내장 그래픽을 가진 듀얼코어 프로세서가 소비하는 TDP를 나타내는 표입니다.

CPU에 따라 소비되는 전력소모량은 다를 수 있으므로 참고용으로만 부탁드리겠습니다.

 

1-2-2-2. i3 / i5 / i7 6xxx Series C-State​​​

 

 

 

497b57342ddba5b049742f1038db3f90_1480331

 

위 그림은 스카이레이크 계열에서 동작하는 C-State의 상태입니다. 기존 하스웰과 견주어 C2와 C8상태가 추가로 더해졌습니다.

6세대 하스웰 계열의 C-State ( C0, C1, C1E, C2, C3, C6, C7, C8) 단계에 대한 설명은 다음과 같습니다.

 

C0 - 활성화 상태 (이 단계에서는 P-State가 동작합니다.)

C1 - 자동 비활성화 (Halt) 상태

C1E - 자동 비활성화, 낮은 주파수, 낮은 전압

C2 - C3 상태 전에 임시로 메모리 경로로 개방

C3 - L1 / L2 캐시를 비움, 동작 주파수 X

C6 - 종료되기 전 코어의 상태를 저장하며 PLL 비활성화

C7 - C6와 동일하며 LLC를 추가로 비울 수도 있음 

C8 - C7과 동일하며 LLC를 비움

 

 

 

497b57342ddba5b049742f1038db3f90_1480331

 

이상은 스카이레이크 계열 CPU들의 C-State의 상태에 따른 전력소모를 정리한 표입니다.

마찬가지로 참고용으로만 부탁드리겠습니다.

 

이렇게 CPU의 스피드스텝에 대해서 모두 살펴보았는데, 몇가지 눈에 띄는 부분들이 보였을 것입니다. 왜 오버클럭을 하면서 해당 항목을 모두 비활성화 해주는 것이 권장되는지와 CPU의 TDP를 줄이는 위 기술들로 말미암아 인텔이 외계인 고문관으로 불뤼는 이유에 대해서 말입니다. CPU를 보다 건강하고 오래 사용하고자 하신다면 해당 기술을 반드시 활성화하여 주시길 바라겠습니다. ( BIOS 에서 특별히 건드린 옵션이 없다면, 기본적으로 활성화된 상태입니다. )

 

 

1-3. Turbo Boost

 

인텔의 터보부스트 기술은 하이퍼 스레딩과 함께 CPU의 성능을 극대화시켜줄 수 있는 특별한 기능이라 할 수 있겠습니다. 기존 CPU는 기본 동작 주파수와 Low-Frequency라 불뤼는 낮은 동작 주파수를 지닙니다. 기본적으로는 High-Frequency / Low-Frequency로 분류되지만 편의상 High-Frequency를 기본 동작 주파수의 범주에 넣어 표현하였습니다.

각설하고, CPU가 보장하는 기본 동작 주파수는 High-Frequency의 최대 주파수 값을 말해주는데, 중요한 것은 터보부스트 기술은 이 기본 동작 주파수 보다 더 높은 동작 주파수를 보장해준다는 것입니다. 즉, 인텔社가 공식적으로 지원하는 인텔표 오버클러킹 기술이라 할 수 있다는 것입니다. 여기서 들수있는 의문은 바로 "아니, 그렇다면 애초에 해당 최대 Turbo 주파수를 기본 동작 주파수로 맞춰놓고 터보주파수를 그 이상으로 동작하게끔 만들어주면 좋을텐데 왜 저렇게 해둔거지?"라는 부분일텐데, 공식적인 입장은 아니지만 필자 나름대로의 추측은 다음과 같습니다.

현재 미세공정화에 따른 CPU동작 주파수의 High-Frequency는 사실상 한계에 다다른 상태입니다. 즉, 4.0의 벽을 넘기가 힘든 상태라는 것인데, 인텔은 해당 CPU가 안정적으로 동작 가능한 최대 동작 주파수를 Max-Turbo Frequency로 지정하고, 동작주파수에 따른 안정성 및 기타 부분들을 판단하여 기본 동작 주파수를 설정하여 제품을 출하하는 것이 아닐까란 것입니다.

인텔은 자신들이 설계한 TDW와 TDP의 범주 내에서 최대한 동작하는 CPU를 출하하려 할 것이나 공정에 따른 수율 Miss 현상등으로 인하여 나타날 수 있는 제품들의 안정성 문제를 고려하였을 때에 무턱대고 높은 동작 주파수를 가진 제품들을 시장에 풀기에는 무리가 있다라는 부분입니다. 차라리 가능성이 있는 제품들은 K시리즈로써 오버클럭이 가능하게끔 출시하는 것이 인텔도 좋고 소비자도 좋을테니 따로 라인을 추가한 부분도 이러한 부분 때문이 아닐까, 짐작만 할 뿐입니다.

물론, 어디까지나 해당 부분은 필자의 추측이므로 인텔의 공식적 답변이 아님을 재차 말씀드리는 바입니다. 어쨌거나 터보부스트 기술은 CPU가 자신이 지닌 기본 동작 주파수를 넘어선 동작주파수로 작동한다는 것을 말해주며, 이 때에 소비하는 CPU의 TDW / TDP는 인텔이 표기한 TDW / TDP가 된다라는 사실입니다. 이 기능 또한 특별한 이유가 없다면 해제하여야만 할 것이고 하이퍼 스레딩을 제한 터보 부스트와 스피드 스텝은 서로간 얽혀있는 기술이기 때문에 어느 한쪽의 설정이 조금이라도 변경되면 동작하지 않거나, CPU의 클럭이 기본 제원값이 아니면 동작하지 않습니다.

이러한 부분은 오버클럭을 함으로써 CPU의 클럭을 조절하거나 bios 옵션을 조절함으로써 목격할 수 있는데, 해당 기능을 활성화 시키면서도 오버클럭을 진행할 수 있는 방식은 형재로썬 Uncore Overclocking 방법밖에 없는 것으로 알고 있습니다. 따라서, 오버클러커가 아닌 이상은 해당 기술 또한 기본적으로 활성화시켜 사용하는 것이 좋다고 할 수 있겠습니다.

 

 

497b57342ddba5b049742f1038db3f90_1480337

 

 

위는 터보부스트가 어떻게 동작하는지를 그림으로 나타낸 것입니다. 여러개의 코어가 있을 때에 1개의 코어만 활성 중이면 Max​ Turbo Frequency로 동작하며 여러개의 코어가 동시에 활성화되면 Min Turbo Frequency로 CPU가 동작하게됩니다. 즉, 활성화되는 코어가 많을 수록 기본 동작 주파수로부터 오버되는 주파수가 적어지는 것입니다.

그러나, 최근 인텔이 HEDT 및 Xeon 시리즈를 내놓으면서 Turbo Boost 3.0을 선보이며 위와같은 동작방식을 조금 바꿔버렸습니다. 그것은 바로 모든 코어가 동작할 때에도 Max Turbo Frequency인 상태에서 동작할 수 있게끔 만든 것입니다. 물론, 기존 터보부스트 2.0 만으로도 충분히 매력적이지만 브로드웰-E 시리즈부터 이와같은 터보부스트 3.0이 탑재되었으니 되도록 같은 제품을 사더라도 해당 기술을 지원하는지를 살펴 좋은 CPU를 구매하는 것이 현명한 선택이 될거라 생각합니다.

 

 

1-4. L1 / L2 / L3 Cache & UnCore

 

497b57342ddba5b049742f1038db3f90_1480338

 

인텔사의 CPU 성능은 사실상 위의 2가지 기술인 하이퍼 스레딩 기술과 터보 부스트 기술로 인해 비약적으로 높아졌다고 할 수 있을 만큼 그리 짧지 않은 시간 속에서 많은 이들의 검증을 받은 부분이라 할 수 있겠습니다. 하지만, 사실상 CPU의 당락을 결정하는 요소가 위 기술들 말고도 더 있다는 것이며 지금부터 살펴볼 L1 / L2 Cache가 바로 이 부분에 해당한다 할 수 있겠습니다.

L1 / L2 Cache는 Cache Memory라 하며 엄연히 Register와는 다른 개념의 메모리이며, 속도가 가장 빠른 것은 Register, 그 다음이 Cache Memory이고 이 다음으로는 일반 Dynamic Memory, 마지막으로는 Hard Disk 순입니다. 사실상 모든 프로그램에 대한 내용을 처리하기 위해서는 CPU의 레지스터에 등록되어야 처리가 가능하며, L1 / L2 Cache는 이러한 작업을 위해 각 Core별로 할당된 일종의 CPU 전용 작업 공간으로써 반복되는 처리 내용을 Cache Memory에 저장하여 CPU가 Processor의 저리를 위해 소비하는 접근지연시간을 단축시켜 성능을 향상시키는 역할을 하게 됩니다.

CPU에 가장 가까운 캐시 메모리는 L1 Cache이며 그 다음은 L2 Cache입니다. 이 둘의 차이는 CPU의 거리로 인해 나누어지는 것이 가장 일반적인 부분이며, 보다 자세하게 말한다면 L1 캐시의 경우 명령어에 대한 내용을 담는 Instruction Cache​와 Data를 담는 Data Cache 두가지로 나뉘어져 있으며 L2 캐시는 이들에 대한 구분이 없다는 것입니다.

문제는 이들의 크기가 너무나 작다는 것이지만, 이러한 문제점은 CPU에 가까이 밀집된 L1 / L2 캐시의 접근 지연 시간으로 인해 상쇄되고도 남을 정도로 효율성이 상당하다 할 수 있겠습니다. CPU 레지스터의 경우 접근시간이 1ns (나노세컨드) 안쪽이며 Cache Memory의 경우 0.5 ~ 2.5ns이기 때문입니다. DRAM의 경우가 50 ~ 70 ns임을 고려할 때에 최소 20배 이상 캐시메모리가 빠르다는 것을 알 수 있습니다.

다만 유감스럽게도 해당 L1 / L2 캐시는 오버 클럭을 하면서 함께 오버가 되지는 않는다는 부분입니다. 물론 아주 확실한 정보는 아니기 때문에 잘못된 정보일 수는 있겠지만 캐시메모리가 오버클럭되는지에 대한 부분은 필자도 익히 들은 바가 없기 때문에 이와같이 말씀드림을 양해 부탁드리겠습니다. 필자가 L1 / L2 Cache가 오버클럭되지 않는다고 생각하는 이유는 단순한데, 바로 CPU 내의 또다른 Temporary Memory (임시 메모리)와 비스무리한 녀석처럼 보이기 때문입니다.

메모리 오버는 대체로 대역폭과 관련되는데 반해 해당 캐시 메모리는 대역폭이란 개념이 딱히 없거니와, 오버클럭을 함으로써 성능향상을 꾀하는 목적이라면 해당 L1 / L2 Cache에 대한 직접적 Latency에 대한 조절이 가능해야겠지만 정작 그런 옵션을 제공하는 부분이 없다는 것입니다. '아마 이 부분은 Core와 Cache Memory가 근접해 있기 때문에 Core의 동작주파수 향상은 빠른 일처리로 인하여 Cache에 접근하는 빈도수가 상대적으로 많아지니 그만큼 일처리가 더 빨라지므로 굳이 캐시 오버를 지원하지 않아도 되는게 아닐까?'란 막연한 추측으로 답을 대신해 봅니다.

CPU를 고른다면 ​두말 할 것 없이 ​보다 많은 L1 / L2 Cache를 가진 CPU를 골라야 할 것입니다. 이후는 세세한 CPU의 명령어 지원 셋트에 따른 성능 차이와 L3 Cache를 포함한 UnCore에 대한 부분일 것입니다.

 

(* 보다 자세한 내용을 알기 원하는 분들께서는 나무위키의 글타래를 참고해주시면 감사하겠습니다.

https://namu.wiki/w/%EC%BA%90%EC%8B%9C%20%EB%A9%94%EB%AA%A8%EB%A6%AC )

 

마지막으로 CPU의 L3 Cache와 UnCore에 대해서 살펴보도록 하겠습니다. L3 Cache는 모든 Core가 공유하는 Cache Memory로써 L1 / L2 Cache가 각 코어당 개별적으로 할당된 Cache라는 점에서 대조적이라 할 수 있겠습니다. L3 Cache를 포함한 부분 부터는 UnCore 영역이라 말하는데, 이 영역에는 QPI와 PCI-E Lane들과 같은 부분들이 모두 포함됩니다.

QPI, PCI-E Lane과 관련하여서 자세하게 저술하기에는​ 페이지가 부족하므로 간략하게만 기술하도록 하겠습니다. QPI는 QuickPath Interconnect​라 불뤼는 시스템 버스의 일종인데, 기존의 주변장치와의 통신을 위해 사용된 노스브릿지의 역할을 대신하는 녀석이라 보면 되겠습니다. 이 QPI 또한 오버클럭이 가능합니다. (BCLK 조절을 통하여서만 가능합니다.)

PCI-E Lane의 경우는 메인보드에 장착된 PCI-E 레인과 소통하는 직접적 연결통로로써, 지원되는 레인 수가 많을 수록 메인보드에 연결된 PCI-E 기기와의 통신을 더욱 원활하게 할 수 있다는 이점이 있습니다. 만약 CPU에 PCI-E 레인이 존재하지 않는다면 모든 PCI-E레인은 메인보드의 칩셋에 연결된 North Bridge 통로를 거쳐 CPU와 통신하여야 하므로 속도가 대폭 떨어질 것입니다.

이로 인하여 일부 하이커스토머들의 경우엔 그래픽카드와 같이 동작 레일에 따라 성능이 민감하게 변할 수 있는 기기들의 성능하락을 방지​하기 위하여 PCI-E 레인 수를 최대한 많이 지원하는 CPU를 사용하기도 합니다. 다만, 현재 나온 PCI Express 3.0 x16의 대역폭을 모두 지원하는 그래픽카드는 아직까지 나오지 않은 상태이기 때문에 아주 큰 손실이 발생하지는 않습니다.

이렇게 QPI와 PCI-E Lane에 대해 간략히 살펴보았으며, L3 Cache에 대해서도 간단하게 살펴본다면 L1 -> L2 -> L3 순서대로 CPU로부터 멀어진다고 보면 되겠습니다. L3는 앞서 언급하였다 시피 CPU로부터 가장 멀리 떨어진 Cache이자 메인보드에 장착된 RAM과 그나마 가장 가까이 소통하는 메모리로써 Shared Memory라고 불뤼기도 합니다.

L1 / L2 Cache에 대해 설명하면서 빼놓은 부분이 있는데, 코어는 자신이 작업하면서 가장 많이 사용될법한 정보들과 명령어들을 L1 / L2 / L3 캐시 순서대로 저장하며 자신이 작업을 할 때 L1 -> L2 -> L3 순서로 먼저 자료를 찾습니다. 만약 정보가 있다면 캐시 히트라 불뤼고 정보가 없다면 DRAM으로부터 정보를 가져와 처리하는데 이것을 캐시 미스라합니다.

L1 / L2 / L3 캐시의 용량이 크면 클 수록 캐시 미스가 날 확률이 줄어들며, 용량이 적을 수록 캐시 미스가 날 확률이 높아집니다. 이로 인하여 보다 많은 캐시를 가진 CPU가 상대적으로 좋은 성능을 나타내게 되는 것입니다. 사실상 Core보다도 Cache의 용량 상승이 CPU의 성능에서 더 큰 영향력을 나타내는데, 이는 앞서 설명한 캐시 히트와 캐시 미스에 대한 부분과 깊은 연관성을 가지기 때문입니다.

캐시 미스가 많이 발생할 수록 DRAM과 통신하여야만 하는 횟수가 증가하며, 이것은 동일 작업을 처리하는데 있어 처리 지연 시간이 캐시 히트일 때와 비교해 상당한 차이가 나게 되는 부분입니다.

 

 

1-5. 1부 글을 마치며...

 

이렇게  CPU의 주요한 부분들을 모두 살펴보았습니다. 하이퍼 스레딩, 스피드 스텝, 터보부스트, 그리고 캐시와 언코어에 대해 하나 둘씩 살펴보며 CPU가 생각 보다는 그리 단순한 구조를 가진 녀석이 아니라는 것을 알 수 있었을 것입니다. 동전 네개면 모두 가려지고도 남는 크기를 가진 CPU, 사실상 코어는 동전 2개정도면 가려지고도 남을만큼 작은 녀석임에도 불구하고 내뿜는 위력과 성능은 가히 어마무시하다고 할 수 있겠습니다. 

이로 인하여 날로 발전하는 CPU의 쿨링 시스템들과, 미세 공정화로 인한 누수전류의 감소, 저전력 설계 등 끊이지 않는 노력에도 불구하고 사실상 CPU에 사용되는 실리콘 소자의 재료적 한계로 인하여 발전이 점점 더뎌지고 있는 것이 현실입니다. 과연, 발전의 끝은 어디일지 두고볼 일이겠지만, 분명 그 한계는 점점 선명하게 다가오고 있다는 것은 변함없는 사실이라 할 수 있겠습니다.

 

다음 2부에서는 인텔 CPU의 라인업에 대해서 살펴보는 시간을 가지도록 하겠습니다.

 

읽어주셔서 감사합니다.

 

* ---------------------------------------------------------------------------------------------------------------------------------------------------------- rev161129

(제보로 인한) 본문 내용 정정ㄱ 

P-State 관련 내용 수정ㄱ

스피드 스텝은 크게 P-State와 C-State라 불뤼는 2가지 동작 단계로 구분됩니다. P-State의 경우에는 위 모식도를 보면 아시겠지만 C-State 0 Level에서 동작한다는 사실입니다. 즉, CPU가 None Halt (활성화) 상태일 때에 동작하는 것이 P-State이며 CPU의 배수를 유동적으로 조절함으로써 전력소모를 줄인다 할 수 있겠습니다.

ACPI 규격에 따른 State 구분은 P-State와 C-State 2가지 상태로 둘 수 있는데, P-State는 CPU가 Active 상태일때 동작하며, C-State는 CPU가 Halt 상태일 때 동작합니다. 여기서 스피드 스텝은 CPU가 동작 상태일 때, P-State 상에서 CPU의 동작 주파수를 유동적으로 조절하여 전력 소모를 감축하는 기술을 의미합니다. 현재는 이 스피드 스텝이란 기술은 EIST로 명명되었으며, 스카이레이크에서는 스피드 시프트라는 새로운 기수로 업데이트된 상태입니다.

 

C-State 관련 내용 수정ㄱ

C-State는 CPU가 쉬고 있을 때에도 CPU가 깨어있는 상태로 동작하여야만 하는가?에서 출발한 기술이라 할 수 있겠습니다. 즉, CPU가 쉬고 있을 때를 가정한 Halt (비활성화) 상태에서의 CPU 전력 감소 기술이란 것입니다. C-State는 P-State와 달리 CPU의 발전에 따라 지원해주는 상태 수 (n)이 다릅니다. 현재 나온 스카이레이크의 경우 최다 C10단계까지 지원되며, 구세대 CPU일 수록 C-State의 숫자가 작아지며 그나마도 가장 기본적인 C-State Enable 정도만 남고 맙니다.

C-State는 CPU가 쉬고 있을 때에, 그에 걸맞는 전력 감소를 함으로써 전력을 보다 효율적으로 감축하는 것을 목표로 한다 할 수 있겠습니다. 다만 이 부분은 CPU의 스피드 스텝과 관련한 기술 보다는 ACPI 규격에 따른 Power Management 기술에 보다 더 가깝기 때문에 위에서 언급된 P-State와는 그 동작 방식이 궤를 달리합니다. 이 C-State는 사실상 CPU의 발전과 함께 ACPI가 발전해 왔다고 볼 수 있겠으며, ACPI의 리비전에 따라 그 근방에 출시된 CPU들의 G0상태에서의 C-State 동작이 다소 차이를 보인다는 것입니다. 되도록, 모든 CPU의 C-State에 대해 살펴보고는 싶지만, 현재 가장 많이 사용되고 있는 하스웰 계열 CPU와 스카이레이크 계열 CPU에 대한 C-State에 대해서만 살펴보도록 하겠습니다. (부득이하게 모바일계열은 모두 생략하겠습니다.)​

good poor

xpandi 좌절금지 zisqo 고추잠자리 Siri XEXEX 동동이 아이뱅크 키아누리눅스 Mactopia님
10명이 이글을 호평하셨습니다. 0명이 불평하셨습니다.

★ 글쓴이에게 고마우시면 커피한잔 후원(클릭) ★ 추천 정보가 입력되지 않았습니다.
twitter 공유 facebook 공유 googleplus 공유 카카오스토리 공유 네이버라인으로 공유

글쓴이의 서명이 비어 있습니다.

★ 글쓴이에게 고마우시면 커피한잔 후원(클릭) ★ 추천 정보가 입력되지 않았습니다.
  • Profile
    2016/11/29
    0 0

    선추천 후정독...

    추천을 안할래야 안할수가 없네요 맥토피아님 한번에 5개 추천은 안되나요? ㅎㅎㅎ

  • Profile
    2016/11/29
    0 0
    키아누리눅스 : 선추천 후정독... 추천을 안할래야 안할수가 없네요 ... 에 달린 대댓글입니다.

    읽어주셔서 감사드립니다 :D

  • Profile
    2016/11/29
    0 0
    콴s = Ksj
  • Profile
    2016/11/29
    0 0
    Siri : 콴s = Ksj 에 달린 대댓글입니다.

    헉... 저의 비밀을..!! (수줍

  • Profile
    2016/11/29
    0 0
    KsJ : 헉... 저의 비밀을..!! (수줍 에 달린 대댓글입니다.

    헉...뭔가 제가 모르는....콴s???

    ★ 답변이에게 고마우시면 커피한잔 후원(클릭) ★ 답변이에게 따뜻한 마음으로 전달됩니다. 엑팔 운영자입니다. 광고 및 파트너 문의는 개별 연락 부탁 드립니다.
  • Profile
    2016/11/29
    0 0
    KsJ : 헉... 저의 비밀을..!! (수줍 에 달린 대댓글입니다.

    헤헤헤 스토킹 전문...

일반로그인 twitter 로그인 facebook 로그인 google 로그인 카카오 로그인 네이버 로그인
서버에 요청 중입니다. 잠시만 기다려 주십시오...