Wikipedia has a fairly good explanation of rank (link). I'd say RamCity (a vendor for Kingston memory) has a more succint explanation on ranks (link):
A memory rank is, simply put, a block
or area of data that is created using
some or all the memory chips on a
memory module.
A rank must be 64 bits of data wide;
on memory modules which support Error
Correction Code (ECC), the 64-bit wide
data area requires an 8-bit wide ECC
area for a total width of 72 bits.
Depending on how memory modules are
engineered, they can contain one, two,
or four areas of 64-bit wide data
areas (or 72-bit wide areas, where 72
bits = 64 data bits and 8 ECC bits).
The article goes on mentioning price variation:
Why do the single- and dual-rank
memory modules vary in price?
In general, single-rank memory modules
are built using x4 (“By 4”) DRAM chips
and are more expensive than dual-rank
memory modules (which are built using
x8 DRAM chips); both module types have
the same number of chips but the x4
DRAMs are more expensive than x8
DRAMs. Dual-rank memory modules may
limit future upgradeability and
capacity of servers when using PC2700
or PC2-3200 memory. This tradeoff
between memory cost and capacity is
important to consider when purchasing
memory modules for Intel
Lindenhurst-based servers.
In terms of performance, I'd refer to wikipedia:
The ranks cannot be accessed
simultaneously as they share the same
data path.
So to sum up everything, it appears that ranks have more to do with density and pricing than actual performance. Granted, I'm working off of generalized statements from a vendor and wikipedia, I don't think most people put much effort into researching ranks. All that matters (for most server admins) is that RAM have matching ranks. I don't think it's an actual specification or requirement but it helps keep some consistency and keeps memory interchangeable within a number of similar servers.
Keep in mind that most servers are upgradeable and RAM density has a large part in factor. It's best (albeit more expensive) to get the more dense RAM for servers to make room for future upgrades.
It does make a difference, it will only make sense if you require the RAS (Reliability, Availability, and Service) features on x4 or x8 devices and understand the trade-offs for your needs. More details can be explained in the Dell white paper Dell™ PowerEdge™ Servers
2009 - Memory.
Also, configuration and layout with details specific to the R710 are available on the Technical Guidebook for the PowerEdge R710 - (Google this because I don't have reputation for link).
The important issue to note is the difference between ECC on the chip and the "Advanced ECC" provided by Dell's BIOS for Single Device Data Correction (SDDC). You will have a performance impact on both. The ECC will recover from errors during writes to the chip. However, SDDC goes a step further and will organize the bits so that an entire chip can fail and still be recoverable. See an example and details SDDC E7500 Chipset
The issues is whether your performance and/or reliability are of the utmost concern in your specific usage of the machine. If a chip failure will cause a loss of critical data or usage on this machine and it's non-redundant in the implementation, Advanced ECC may be a great way to go. However, you do so at a performance impact which may be more important to you.
I've implemented both in the field on Dell PowerEdge servers for single Microsoft SQL Server implementations. If I can be of more help, just comment to let me know.
Hope that helps.
EDIT: Coverage gap / ECC implementations
Yes, there is a coverage gap even if you implement both. Since, you are specifically using a cluster of high availability servers, IMHO you should use the Advanced ECC. Your performance impact is minimal compared to the benefits for the clustered devices. According to Crucial you have only a 2% decrease in performance on ECC memory in general.
The gap would be more specific to the types of errors that occur and how each handles the errors. In your specific situation it shouldn't translate to data loss. Since this is an Enterprise DBMS and errors, concurrency issues, etc. are managed at the software level in order to prevent data loss. A detailed history is kept of changes in a properly configured DBMS and the software that uses it can typically setup to have the transaction "rollback" any if a severe error occurs.
ECC Implementations
ECC will attempt to correct any bit errors in memory read/write. However, if the error is more significant, then not even ECC will be able to recover, causing potential loss of data. There is more discussion on ECC as well at ServerFault/What is ECC ram and why is it better?
According to Wikipedia on ECC_Memory
ECC memory maintains a memory system effectively free from single-bit errors...
SDDC
If you refer to the E7500 chipset document above (note the 55xx/56xx from Intel require login/partnership but the idea is similar which is why I didn't link originally), which describes SDDC and how it's made possible. Basically, it uses a technique for organizing the words written to memory that ensures all are written in such a way that every word will only contain a single bit error i.e. the word should be recoverable from the single bit error (as above). Now that's per word, so it could potentially recover from up to 4-bit errors on x4 devices (1 per word) and up to 8-bit errors on x8 devices (still 1 per word) by error correcting each word.
Additional errors, more bit errors, total memory failure, channel failure, bus failure, etc. can still all cause horrible problems but that's why you have a cluster and an Enterprise DBMS.
In short, if you have everything enabled and there's too many bit errors for error correction algorithms to correct you will still have an error i.e. error coverage gap. These can be exceptionally rare though.
Best Answer
Yes, as long your configuration includes Quad-Rank DIMMs, you can populate only two slots per channel.
And it gives you maximum 96GB per CPU, so total would be 192GB, which is the maximum configurable size with quad-rank memory as per the P.129 owner's manual.
So if you need to get 256GB with 16GB DIMMs, you need to use Dual-rank, which you can find here.