Простими словами, конфлікт банків - це випадок, коли будь-який шаблон доступу до пам'яті не може розподілити введення-виведення між банками, доступними в системі пам'яті. Наступні приклади розробляють концепцію:
Припустимо, у нас є двовимірний масив цілих чисел 512x512, а наша DRAM або система пам’яті містить 512 банків. За замовчуванням дані масиву будуть розміщені таким чином, щоб arr [0] [0] перейшов до банку 0, arr [0] [1] перейшов до банку 1, arr [0] [2] до банку 2 .... arr [0] [511] переходить до банку 511. Для узагальнення arr [x] [y] займає номер банку y. Тепер деякий код (як показано нижче) починає отримувати доступ до даних в основному стовпці, тобто. змінюючи x, зберігаючи y постійним, кінцевим результатом буде те, що весь послідовний доступ до пам'яті потраплятиме в один і той же банк - отже, конфлікт банків.
int arr[512][512];
for ( j = 0; j < 512; j++ ) // outer loop
for ( i = 0; i < 512; i++ ) // inner loop
arr[i][j] = 2 * arr[i][j]; // column major processing
Зазвичай таких проблем компілятори уникають шляхом буферизації масиву або використання простої кількості елементів у масиві.