Em sistemas mais antigos, o barramento frontal (FSB) estava sincronicamente ligado à ponte norte e ao controlador de memória. Isso significava que, sem o uso de divisores de clock (introdução de circuitos PLL complicados e caros para manter o controle de diferentes taxas de clock), seu barramento de memória operaria em a velocidade do FSB. No seu caso, a DDR-400 foi a resposta, já que os módulos de memória DDR-400 têm um clock de 200 MHz.
Agora, com o progresso do histórico, os sistemas que ainda usavam um FSB agora tinham um divisor de clock entre ele e o controlador de memória. Isso permitiu o uso de diferentes velocidades de memória independente da velocidade do FSB (portanto, se definirmos o FSB para 400 MHz e tivermos uma relação de relógio de 1: 2, a memória funcionará a 400 * 1/2 = 200 MHz).
Suponho que, como esse não é um curso de arquitetura de computadores, e como havia apenas uma resposta, estava implícito que o sistema não tinha um divisor de relógio. Se funcionasse (e, de fato, quase todos os computadores desde o final dos anos 90), poderíamos simplesmente resolver a taxa para fazer com que qualquer dos módulos de memória listados acima funcionem com o computador.Para fazer o DDR-333 funcionar, por exemplo, precisamos de um clock de memória de 166 MHz, ou um divisor de clock de 5: 6. Para DDR3-667, precisamos de um clock de memória I / O (não de velocidade de memória, DDR3 é diferente) de 333 MHz, ou 5: 3. Finalmente, o PC100 trabalharia com um divisor de 1: 2 para um clock de memória de 100 MHz.
TL, DR: Sem um divisor de clock de memória, o FSB precisa corresponder à velocidade do clock da memória. Com um divisor de clock, desde que você possa criar uma relação inteiro X: Y para corresponder à memória: velocidades FSB, então você pode usar esse módulo de memória (e essa relação pode esteja satisfeito com todos os módulos de memória listados na sua pergunta).