Dertil har man øget mængden af L1 cache i forhold til Pentium 4. Core 2 processorerne vil få 64KB L1 cache, hvilket er fordelt ligeligt imellem data og instruktion. Dette er langt mere L1 cache end i Pentium 4 arkitekturen, der grundlæggende havde 8KB L1 cache til data og 12KB til instruktion. Da Intel skiftede fra Northwood til Prescott blev mængden af cache til data fordoblet fra 8KB til 16KB, men Core processorerne har altså mere end det dobbelte.
L2 cache bliver på enten 2MB eller 4MB afhængigt af model, men da der er tale om dual-core processorer vil L2 cache'en blive delt imellem de to CPU kerner. Dette sker fordi Intel har implementeret deres Smart Cache. Med den kan man dynamisk allokere cache-mængde til hver enkelt processorkerne. Kører man således en applikation, som kun kan udnytte den ene processor vil denne ene processor få den fulde mængde cache til sin rådighed.
Dette er på papiret smart, men som man hurtigt vil se så er denne feature meget lidt værd i praksis - en dual-core processor vil nemlig næsten altid bruge begge cores i større eller mindre grad fordi operativsystemet (og flere andre underliggende applikationer) bruger CPU-tid. Derfor har Intel med deres Smart Cache implementeret en Crossbar funktion, som dynamisk deler cache-mængden imellem de to processorkerner.
Udover denne glimrende funktion har Intel gjort en del for at pre-fetche data til cache'en endnu bedre end før. Dels er selve pre-fetch algoritmen optimeret, men en ny feature går ud på at hvis processor-kerne 1 skal bruge data som ligger i cache'en hos processor-kerne 2, så kan processor-kerne 1 tage den databid direkte. Tidligere ville man i dette tilfælde skulle have data'en ud af processor-kerne 2's cache og ind i processoren igen, hvilket gav høj latency.
Men ikke kun data til cache pre-fetches bedre. Intel Smart Memory Access dækker over en generelt forbedret pre-fetch del i processoren. For x86 kode gælder det normalt at cirka 20 procent af instruktionerne kræver adgang til hukommelsen og her er netop prefetch-delen vigtig. Core 2 processorerne har her seks uafhængige pre-fetch enheder, der alle har en forbedret algoritme til at ramme præcis den data som processoren skal bruge. Dertil har Smart Memory Access fået en ny feature, som tillader at en ny instruktion kan startes selvom den er afhængig af resultatet af en tidligere instruktion - dette minimerer out-of-order, hvor en instruktion ellers må bremses fordi der ventes på data.