본문 바로가기

L I N U X

Linux kernel NUMA

linux kernel 공부중에 NUMA가 짜꾸 나오길래 찾아봤다

----------------------------------------------

http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access
스터디도중 NUMA관련얘기두 나왔고 밑에글에도 관련이 있는듯하여 올려봅니다^^~~

Non-Uniform Memory Access or Non-Uniform Memory Architecture  라고 한답니다. 즉 쉽게 말한면 CPU마다 각각의 독립적인 메모리가 있어서 다른CPU의 메모리에 접근하려고 할떄의 비용과 자신의 메모리에 접근할때의 비용이 다른 경우를 의미한답니다.

지금분석하는 arm mpcore라든지 현재 데스크탑이나 노트북환경은 모두 UMA환경이라고 볼 수 있을것 같습니다. 따라서 우리에게는 생소한 구조가 될듯 합니다. 밑에글에서 제가 잘못 말한거 같은데 NUMA건 UMA건 어쨌건간에 SMP환경에서 국한되는 이야기 인거 같습니다. AMP환경이라면 동일 CPU가 아니기 때문에 clock도 틀릴것이고 뭐 이것저것(^^..)틀리기 때문에 단순한 이런 구조로는 안될 것같습니다만..잘은 모르겠습니다ㅋㅋ.

basic concept
->CPU가 메모리의 속도를 훨씬 추월함으로 인하여 CPU가 메모리접근 시간동안 starve상태에 빠져 이를 개선하기 위한 방법으로 cache가 등장하였고 또 이를위해 cache miss를 최소화하는 알고리즘이 등장하였다고합니다. 하지만 이것도 운영체제와 application이 방대해짐에 따라 큰 효과를 거두기는 어려워졌고 또한 multi processor환경에서 하나의 cpu만이 memory에 접근할 수 있기 때문에 starve현상은 더욱 심해졌다고 합니다. 그래서 나온것이 각각의 cpu마다 memory를 가지는 구조가 나타났는데 이것이 NUMA구조인 것입니다. single task에 국한된 데이터 뿐만 아니라 모든 프로세서가 접근할수있는 그런 data도 포함해야 하기 떄문에 이를 위한 방법으로 소프트웨어or하드웨어적인 메모리 뱅크간의 이동 메커니즘도 필요하다고 합니다.


더 자세한 자료는