Memory interleaving, 


 wikipedia 영문판에는 Interleaved memory 라고 되어 있고, 한글판에는 memory interleaving 이라고 되어 있다. 다소 용어에는 차이가 있지만 결론적으로 memory 를 interleaving 기법을 사용하여 성능을 향상시키는 방법을 의미한다. 


일반적으로 메모리상에 존재하는 데이터에 접근할 때 메모리를 순차적으로 참조한다. 보통은 데이터가 메모리상에 올라갈 때는 순차적으로 올라가기 때문이다. 하지만 CPU가 한 워드(word)를 메모리상에서 읽어와서 조작하는 동안 해당 메모리는 접근할 수 없는 문제가 발생한다. 


[No interleaving]

No-interleavingNo-interleaving


위와 같이 No interleaving 상태에서는 1을 읽고 처리하는 동안 2에 접근할 수 없다. 

이런 문제를 해결하기 위해서 Interleaving 이라는 기법이 도입된다. 서로 다른 memory bank에 번갈아 가며 연속적인 주소를 부여함으로써 1에 접근하여 처리하는 동안에도 다음 메모리 주소에 접근할 수 있게 된다. 


[Interleaving]

InterleavingInterleaving


이는 마치 memory 대역폭이 늘어나는 것과 같은 효과를 보여준다. 


인터리빙의 종류에는 다음과 같은 것들이 있다. 

  • 상위 인터리빙 (High-Order Interleaving)

  • 하위 인터리빙 (Low-Order Interleaving)

  • 혼합 인터리빙 (High-Low-Order Interleaving)


상위 인터리빙 : 


 메모리 주소의 상위 비트들에 의해 모듈이 선택되고, 하위 비트들은 각 모듈 내의 기억 장소의 주소를 나타낸다. 


장점 : 한 모듈에서 에러가 발생해도 해당 모듈만 영향을 받음

단점 : 동시 access 를 통한 성능 향상 어려움


하위 인터리빙 :


 하위 비트들에 의해 모듈이 선택되고, 상위 비트들은 각 모듈 내의 주소를 나타낸다.


장점 : 다수의 모듈이 동시 동작 가능

단점 : 새로운 메모리 뱅크 추가시 전체에 영향을 주게됨


혼합 인터리빙 :


 메모리 뱅크를 몇 개의 모듈로 나누어 구성. 메모리 뱅크 선택은 상위 인터리빙 방식을 따르지만 뱅크 선택 후 뱅크 내 모듈 간에는 하위 인터리빙 방식을 따름


 

저작자 표시 비영리 변경 금지
신고