Skip to content

Instantly share code, notes, and snippets.

@cyring
Created March 18, 2024 12:34
Show Gist options
  • Save cyring/eb13992a3b9482eb4bde77a2cf62c605 to your computer and use it in GitHub Desktop.
Save cyring/eb13992a3b9482eb4bde77a2cf62c605 to your computer and use it in GitHub Desktop.
DIMM 24-48 GB
@cyring
Copy link
Author

cyring commented Mar 18, 2024

The DIMM size formula is:

8 * (Bank * Rank * Rows * Columns) Bytes

Using geometry values, applying formula in GB

echo $(( (8*(32*1*131072*2048))/(1024*1024*1024) ))
64

Refering to Ryzen 7950X datasheet
2024-03-18-131909_748x899_scrot

Based on the dump register

# ./zencli smu 0x50040

[0x00050040] READ(smu) = 0x0026070c (2492172)
   60   56   52   48   44   40   36   32   28   24   20   16   12   08   04   00
 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0110 0000 0111 0000 1100

We are getting in bit field [19:16] a value of 0110 (bin) or 6 (dec)

Thus the number of columns is:

echo $(( 1<<(5+6) ))
2048

A number of 2048 columns is new to me.
Up to now, all Zen' UMC have returned 1024

if we assume that 0110 (bin) rather means 1536, we are getting:

echo $(( (8*(32*1*131072*1536))/(1024*1024*1024) ))
48

@cyring
Copy link
Author

cyring commented Mar 21, 2024

  • 24GB DIMM case : UNSOLVED

Rank = 1

[0x00050040] READ(smu) = 0x00150508 (1377544)
   60   56   52   48   44   40   36   32   28   24   20   16   12   08   04   00
 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0101 0000 0101 0000 1000
Field Bin Dec Compute Result
NumBanks 01 1 8 << 1 16
NumCol 0101 5 1 << (5+5) 1024
NumRow 0101 5 1 << (10+5) 32768
echo $(( (8*(16*1*32768*1024))/(1024*1024*1024) ))
4 GB
[0x00050048] READ(smu) = 0x0025070c (2426636)
   60   56   52   48   44   40   36   32   28   24   20   16   12   08   04   00
 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0101 0000 0111 0000 1100
Field Bin Dec Compute Result
NumBanks 10 2 8 << 2 32
NumCol 0101 5 1 << (5+5) 1024
NumRow 0111 7 1 << (10+7) 131072
echo $(( (8*(32*1*131072*1024))/(1024*1024*1024) ))
32 GB
[0x0005004c] READ(smu) = 0x00150508 (1377544)
   60   56   52   48   44   40   36   32   28   24   20   16   12   08   04   00
 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0101 0000 0101 0000 1000
Field Bin Dec Compute Result
NumBanks 01 1 8 << 1 16
NumCol 0101 5 1 << (5+5) 1024
NumRow 0101 5 1 << (10+5) 32768
4 GB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment