Linux get used and unused RAM slots details with dmidecode

Following is the command (We have to run dmidecode command with sudo/root permission):

$ dmidecode -t 17 | grep "Size:"

Output:

Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: 2048 MB
Size: 2048 MB
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: 2048 MB
Size: 2048 MB

Above output shows that there are 4 used slots and 12 unused slots.

To get number of available RAM slots:

$ dmidecode -t 17 | grep -c "Size:"

or

$ dmidecode -t 17 | grep "Size:" | wc -l

Output:

16

# dmidecode -t memory | grep "Bank" | wc -l
65


However the actual physical RAM slots are 64 .I m not sure why the extra information is displayed.
I can see (Bank Locator: /SYS/MB/P0/MR0) for all 64 entries and get one blank entry as (Bank Locator

I m confused is this the exact way to determine the RAM slots.
Why the last entry for Bank Locator is empty?

# dmidecode -t memory | grep Size
        Size: 1024 MB
        Size: No Module Installed
        Size: 1024 MB
        Size: No Module Installed
# dmidecode -t memory | grep Bank
        Bank Locator: Not Specified
        Bank Locator: Not Specified
        Bank Locator: Not Specified
        Bank Locator: Not Specified