A memory controller (290/300), comprising: a decoder configured to receive memory access requests, and to decode the memory access requests into decoded memory addresses, each of the decoded memory addresses including a bank address and a row address; a queue configured to receive and store, along with other address information, the corresponding decoded memory address or a corresponding remapped physical address for each memory access request; an arbiter coupled to the queue configured to select entries from the queue efficiently based on the other address information, wherein the memory controller further comprises: a conflict detector, coupled to the arbiter configured to: detect accesses to memory rows in a subset of memory and to monitor, for each memory row of the subset, a corresponding memory row activation count and a corresponding memory row accesses per activation count; identify a frequent conflict, wherein a frequent conflict is determined if, for a memory row of the subset, the corresponding memory row activation count is greater than a predetermined memory row activation count threshold, and the corresponding memory row access per activation count is less than a predetermined memory row access per activation count threshold; and selectively trigger remapping of a memory row associated with the identified frequent conflict from an original memory bank to a memory row in a second memory bank; and an indirection table coupled to the conflict detector, configured to selectively perform said remapping and to provide said corresponding remapped physical address. a decoder configured to receive memory access requests, and to decode the memory access requests into decoded memory addresses, each of the decoded memory addresses including a bank address and a row address; a queue configured to receive and store, along with other address information, the corresponding decoded memory address or a corresponding remapped physical address for each memory access request; an arbiter coupled to the queue configured to select entries from the queue efficiently based on the other address information, wherein the memory controller further comprises: a conflict detector, coupled to the arbiter configured to: detect accesses to memory rows in a subset of memory and to monitor, for each memory row of the subset, a corresponding memory row activation count and a corresponding memory row accesses per activation count; identify a frequent conflict, wherein a frequent conflict is determined if, for a memory row of the subset, the corresponding memory row activation count is greater than a predetermined memory row activation count threshold, and the corresponding memory row access per activation count is less than a predetermined memory row access per activation count threshold; and selectively trigger remapping of a memory row associated with the identified frequent conflict from an original memory bank to a memory row in a second memory bank; and an indirection table coupled to the conflict detector, configured to selectively perform said remapping and to provide said corresponding remapped physical address. a conflict detector, coupled to the arbiter configured to: detect accesses to memory rows in a subset of memory and to monitor, for each memory row of the subset, a corresponding memory row activation count and a corresponding memory row accesses per activation count; identify a frequent conflict, wherein a frequent conflict is determined if, for a memory row of the subset, the corresponding memory row activation count is greater than a predetermined memory row activation count threshold, and the corresponding memory row access per activation count is less than a predetermined memory row access per activation count threshold; and selectively trigger remapping of a memory row associated with the identified frequent conflict from an original memory bank to a memory row in a second memory bank; and detect accesses to memory rows in a subset of memory and to monitor, for each memory row of the subset, a corresponding memory row activation count and a corresponding memory row accesses per activation count; identify a frequent conflict, wherein a frequent conflict is determined if, for a memory row of the subset, the corresponding memory row activation count is greater than a predetermined memory row activation count threshold, and the corresponding memory row access per activation count is less than a predetermined memory row access per activation count threshold; and selectively trigger remapping of a memory row associated with the identified frequent conflict from an original memory bank to a memory row in a second memory bank; and an indirection table coupled to the conflict detector, configured to selectively perform said remapping and to provide said corresponding remapped physical address.