CPU får sina data från flera platser, beroende på vad programmet gör:
* huvudminnet (RAM): Detta är CPU:s primära datakälla. Instruktioner och data som CPU behöver åtkomst ofta laddas i RAM. CPU hämtar ständigt instruktioner och data från RAM.
* cache -minne: Detta är en mindre, snabbare typ av minne som ligger närmare CPU. Ofta åtkomst till data från RAM kopieras till cache för ännu snabbare hämtning. Det finns vanligtvis flera nivåer av cache (L1, L2, L3), där L1 är den snabbaste och minsta, och L3 är den långsammaste och största. CPU kontrollerar Cache först innan du går till RAM.
* Register: Dessa är extremt snabba lagringsplatser * inuti * själva CPU. De har de uppgifter som CPU arbetar aktivt med. Register är CPU:s mest omedelbara åtkomstpunkter för data.
* Input/Output (I/O) -enheter: Detta inkluderar saker som hårddiskar, SSD:er, nätverkskort och USB -enheter. CPU begär data från dessa enheter, och data överförs sedan till RAM (och därefter till cache och register) innan CPU kan bearbeta dem.
Kort sagt är CPU:s dataflöde vanligtvis: I/O -> RAM -> Cache -> Register -> CPU . CPU försöker alltid få data från den snabbaste källan; Om data inte finns i register eller cache, hämtar de dem sedan från RAM, och slutligen, om det behövs, från långsammare I/O -enheter.