Uttalandet att programvara skriven för Core CPU kommer att "generellt" köras på en dubbelkärnig CPU är
inte helt korrekt . Här är en uppdelning:
Programvarukompatibilitet:
* Programvara skriven för en enkelkärnig CPU kommer i allmänhet att köras på en dubbelkärnig CPU. Detta beror på att moderna operativsystem och kompilatorer är utformade för att hantera multikärnprocessorer. De kommer automatiskt att distribuera uppgifter mellan kärnorna om programvaran är utformad för att dra nytta av flera kärnor (dvs. multi-threaded).
* Programvara som är * specifikt * utformad för att köras på en enkärnig processor kommer inte nödvändigtvis att köras * snabbare * på en dubbelkärnig CPU. Det kommer troligen att gå med liknande hastighet, eftersom det bara använder en kärna.
Multi-core prestanda:
* För att programvara verkligen ska dra nytta av en CPU-dubbelkärnor måste den vara multi-threaded . Detta innebär att programvaran är utformad för att dela upp uppgifter i mindre, oberoende trådar som kan köras samtidigt på olika kärnor.
* Om programvaran är engravad kommer den bara att använda en kärna åt gången, även om en dubbelkärnig CPU är tillgänglig.
Sammanfattningsvis:
* Programvara som är skriven för en enkelkärnig CPU kommer vanligtvis att köras på en CPU med dubbla kärnor, men kanske inte nödvändigtvis är snabbare.
* Programvara som är utformad för att dra nytta av flera kärnor kommer att löpa betydligt snabbare på en CPU med dubbla kärnor.
Här är en analogi:
Tänk på en enkärnig CPU som en enda arbetare som gör alla uppgifter. En CPU med dubbla kärnor är som att ha två arbetare. Om uppgiften är tillräckligt enkel räcker en arbetare. Men om uppgiften är komplex och kan delas upp i mindre uppgifter kan två arbetare slutföra det mycket snabbare.
Nyckel takeaway:
Medan de flesta programvaror kommer att köras på en CPU med dubbla kärnor, för att verkligen dra nytta av den extra bearbetningskraften, måste programvaran skrivas för att dra fördel av flera kärnor.