It is ok to mix brands, although if you're looking for performance it's probably best to get the same brand, or at least chips, so you match everything up. Mixing will probably not be a problem, but I've found that it's just better to have matching memory. I use Corsair memory the most, although many different manufacturers use the same chips and just put their label on it. Crucial, Mushkin, and Samsung are also brands that I've used in other builds and not had any problems with. ECC is Error Correction Circuitry and in short is generally not needed unless you're building a system critical machine (i.e. server). This type of memory is used to help correct memory errors and the more memory you have the more errors are potentially possible, but for a system for home it's probably not really necessary. **Buffered memory uses a buffer chip to boost the clock signal sent across the memory module so that the clock signal is seen as a clean, sharp signal across the entire module. It eliminates chances of memory errors in data sent or retrieved from memory. It is commonly used in larger capacity Fast Page Mode or EDO modules. Buffered modules have a different keyway in the contact edge and can only be used when the board supports Buffered modules. Unlike Registered modules, it is not interchangeable with Unbuffered modules. (
http://www.4allmemory.com/index.cfm?fuseaction=faq.details&faq_id=91)**. Dual channel is a development in motherboard and chipset design that allows for increased bandwidth transfer when using two or more memory modules in separate transfer channels. These separate channels allow each module access to the memory controller, increasing throughput bandwidth. It is a good idea to use matched pairs of modules to ensure the best compatibility for dual channel operation. **
http://www.upgradememory.com/Computer_Memory_Glossary_W10C15775.cfm?NBP=1** Hopefully this helps answer your questions.