2017-04-06 4 views
1

Un scénario hypothétique est quand un ordinateur a 2 dimms, comment le contrôleur de mémoire distribue les données entre les deux?Comment Memory Controller distribue-t-il les données aux modules DIMM?

Il doit utiliser quelques bits de l'adresse, mais quels bits et pourquoi ces bits. Je dirais que la taille de la banque/rangée de dimm est logique, car nous aurions un grand nombre de rowbuffers valides simultanément et pourrions augmenter la bande passante.

Comment cela se passe-t-il réellement? (Supposons une architecture CPU commune sur x86)

Répondre

1

Here il présente des résultats en fonction de ses expériences pour Intel CPUs Sandy Bridge:

Bits 0-5: Ce sont les plus bas 6 bits de l'indice d'octet dans une rangée (c'est-à-dire l'index de 6 bits dans une ligne de cache de 64 octets). Bit 6: Il s'agit d'un numéro de canal 1 bit, qui sélectionne entre les 2 barrettes DIMM.

Bits 7-13: Il s'agit des 7 bits supérieurs de l'index dans une rangée (c'est-à-dire les bits supérieurs du numéro de colonne). Bits 14-16: Ceux-ci sont XOR'd avec les 3 bits inférieurs du numéro de ligne pour donner le numéro de banque à 3 bits.

Bit 17: Il s'agit d'un numéro de rang à 1 bit qui sélectionne les 2 rangs d'un module DIMM (généralement les deux côtés de la carte de circuit imprimé du module DIMM).

Bits 18-32: Il s'agit du numéro de ligne de 15 bits.

Bits 33+: Il peut se définir parce que la mémoire physique commence à des adresses physiques supérieures à 0.