Software Archive
Read-only legacy content
17061 Discussions

Is there any way to disable the use of part of memory controller?

Jie_Y_1
Beginner
747 Views

Hi everyone, 

Could someone please tell me if there are any approaches to disable the use of part of MC? 

Thank you,

Yin

0 Kudos
4 Replies
McCalpinJohn
Honored Contributor III
747 Views

I have not looked at all of the different models, but the Xeon Phi SE10P with ECC enabled uses a block-oriented memory mapping.

Starting at the beginning of the physical address space (address 0), consecutive 62-cache-line blocks of physical addresses are assigned to channel 0 on one of (a permutation of) the 8 memory controllers.  Subsequent 62-cache-line blocks are assigned to channel 1 on the same permutation of the 8 memory controllers.  For subsequent 62-cache-line blocks the mapping is repeated until the top of memory is reached. 

Because the blocks are 62 cache lines in size, each 4KiB virtual memory page has its cache lines split between exactly two DRAM channels (one on each of two different memory controllers).   Up to 62 of the 64 cache lines of a 4KiB page can be mapped to a single DRAM channel, with all even-numbered splits occurring (2+62, 4+60, 6+58, etc) at various addresses. 

Because each 4KiB page is guaranteed to only access 2 DRAM channels, it is theoretically possible to set up an application to use only a subset of the 8 memory controllers and 16 DRAM channels.  It would not be very much fun, but it is theoretically possible.

0 Kudos
Jie_Y_1
Beginner
747 Views

Dr.McCalpin, 

Thank you so much for the reply and the valuable answer you gave me. 

Sorry that I have another question.

Does Xeon Phi provide any libraries for controlling caches? For example designating cache line states.

Thank you. 

0 Kudos
McCalpinJohn
Honored Contributor III
747 Views

The only cache control capability on Intel processors is via "cache hints".   These are implemented as PREFETCH instructions on most Intel processors.  On Xeon Phi there is a cache hint modifier available for any instruction that references memory, with more options available for the various VPREFETCH* instructions as well as the VGATHER* and VSCATTER* instructions.  These are all described in the Xeon Phi Instruction Set Reference Manual (document 327364).

0 Kudos
Jie_Y_1
Beginner
747 Views

Thank you so much!

0 Kudos
Reply