Les caches L1 et L2 sont des zones de petite capacité permettant au processeur de retenir des données pour optimiser le traitement de celles-ci. Le cache L1 est plus petit que le L2 mais aussi plus rapide. La présence d'un cache L2 (voire des fois d'un L3) de plus grande capacité permet d'éviter de passer par la RAM pour des calculs, ce qui ralentirait la vitesse de calcul du processeur. Les cores 0, 1 représentent des coeurs du processeur (des unités de traitement indépendantes les unes des autres).
Pour thread mes connaissance atteignent leurs limites si tu parles de :
http://fr.wikipedia.org/wiki/Thread_(informatique)
En revanche si tu parles du multi-threading, c'est une astuce qui consiste à diviser un core physique en plusieurs cores logiques. Cela permet d'augmenter virtuellement le nombre de cores, mais ceux-ci sont moins performant en général qu'un core physique entier.