Tout est compatible si il est au fomart 16x (je parle de la taille physique en gros la longueur).
Il y a plusieurs types de PCI-express (le port pci existe aussi mais c'est autre chose et c'est plus vieux)
Le 1x, 4x, 8x, 16x
Ils ont en théorie plusieurs longueurs : http://www.hardwaresecrets.com/imageview.php?image=1724
Comme tu peux le voir sur l'image le port pci-e est séparé en deux. La partie de droite sur la photo sert pour l'alimentation électrique (pour les grosses cartes graphiques cette alimentation n'est pas suffisante donc on rajoute des câbles venant de l'alim) et le partie de gauche sert au transferts de données.
Le x1 est plus lent que le x4, lui même plus lent que le x8 qui lui est plus lent que le x16.
Mais il reste possible de brancher des cartes x1 dans des ports plus grands, par exemple si je veux brancher une carte wifi (qui sont généralement en pci-e x1) dans un port 16x y'a aucun soucis ça marchera. Toutes les cartes mères pour ordinateur fixe d'aujourd'hui ont un port pci-e x16 pour mettre une carte graphique donc oui ça marchera.
Maintenant il est aussi possible de faire l'inverse c'est à dire de mettre une carte pci-e plus grande dans un slot plus petit. C'est un peu plus difficile en pratique mais c'est possible.
Il suffit de scier le petit bout (c'est un peu risqué) pour faire rentrer la carte, si tu t'es bien débrouillé ça marche, sinon tu as tué une carte mère. Heuresement certains fabriquants de carte mère intelligents font des ports pci-e sans petit bout pour permettre l'installation de cartes plus grandes. C'est plus lent mais ça marche.