{
  "schemaVersion": 1,
  "id": "atlas-lesson-cpu-out-of-order",
  "title": "Out-of-order CPU pipeline",
  "category": "learning",
  "format": "Atlas lesson",
  "description": "Finds ready independent instructions while preserving architectural results.",
  "canonicalUrl": "https://semiaifoundry.com/learn/atlas/cpu-out-of-order/",
  "publishedDate": null,
  "revisionDate": "2026-10-07",
  "author": null,
  "topic": "Processing architectures",
  "series": null,
  "license": null,
  "rightsUrl": "https://semiaifoundry.com/ai-atlas/licenses.html",
  "version": "1.3.0",
  "status": "Published educational lesson",
  "evidenceScope": "The diagram is a logical pipeline. Queue sizes, prediction accuracy and workload speedups are not inferred from the Arm example.",
  "contentCoverage": "published-lesson",
  "artifactUrl": "https://semiaifoundry.com/ai-atlas/lesson-data/cpu-out-of-order-fdead33f81ab27be.json",
  "interactiveUrl": "https://semiaifoundry.com/ai-atlas/#cpu-out-of-order",
  "related": [],
  "supersedes": [],
  "supersededBy": [],
  "contentHash": "5771bcde0a26eeb6bc77b84369d1a53baf2db25bf4f5a3b57ccab551cca1aace",
  "contentLength": 4783,
  "jsonUrl": "https://semiaifoundry.com/agents/publications/atlas-lesson-cpu-out-of-order.json",
  "markdownUrl": "https://semiaifoundry.com/agents/publications/atlas-lesson-cpu-out-of-order.md",
  "sections": [
    {
      "id": "section-1",
      "title": "Out-of-order CPU pipeline",
      "start": 41,
      "end": 363
    },
    {
      "id": "section-2",
      "title": "The mechanism",
      "start": 363,
      "end": 1559
    },
    {
      "id": "section-3",
      "title": "Science and assumptions",
      "start": 1559,
      "end": 1587
    },
    {
      "id": "section-4",
      "title": "Dependency bound",
      "start": 1587,
      "end": 2180
    },
    {
      "id": "section-5",
      "title": "Engineering example",
      "start": 2180,
      "end": 2427
    },
    {
      "id": "section-6",
      "title": "Distinctions and tradeoffs",
      "start": 2427,
      "end": 2874
    },
    {
      "id": "section-7",
      "title": "Specifications and interfaces",
      "start": 2874,
      "end": 3143
    },
    {
      "id": "section-8",
      "title": "Interfaces",
      "start": 3143,
      "end": 3309
    },
    {
      "id": "section-9",
      "title": "Check your understanding",
      "start": 3309,
      "end": 3338
    },
    {
      "id": "section-10",
      "title": "Which pair offers the best opportunity for overlapping execution?",
      "start": 3338,
      "end": 3749
    },
    {
      "id": "section-11",
      "title": "Evidence and scope",
      "start": 3749,
      "end": 4055
    },
    {
      "id": "section-12",
      "title": "Sources",
      "start": 4055,
      "end": 4388
    },
    {
      "id": "section-13",
      "title": "Continue exploring",
      "start": 4388,
      "end": 4411
    },
    {
      "id": "section-14",
      "title": "Foundations",
      "start": 4411,
      "end": 4567
    },
    {
      "id": "section-15",
      "title": "Related lessons",
      "start": 4567,
      "end": 4783
    }
  ],
  "citations": [
    {
      "title": "Explore in Atlas",
      "url": "https://semiaifoundry.com/ai-atlas/#cpu-out-of-order"
    },
    {
      "title": "Arm Neoverse V2 Core Technical Reference Manual",
      "url": "https://documentation-service.arm.com/static/633fe1ec4c59b30b517730b8"
    },
    {
      "title": "Published lesson data",
      "url": "https://semiaifoundry.com/ai-atlas/lesson-data/cpu-out-of-order-fdead33f81ab27be.json"
    },
    {
      "title": "Atlas releases and licensing",
      "url": "https://semiaifoundry.com/ai-atlas/licenses.html"
    },
    {
      "title": "Host CPU",
      "url": "https://semiaifoundry.com/learn/atlas/host-cpu/"
    },
    {
      "title": "Register file",
      "url": "https://semiaifoundry.com/learn/atlas/register-file/"
    },
    {
      "title": "Scalar, vector and CPU matrix units",
      "url": "https://semiaifoundry.com/learn/atlas/cpu-vector-matrix/"
    },
    {
      "title": "Cache coherence and NUMA placement",
      "url": "https://semiaifoundry.com/learn/atlas/coherence-numa/"
    }
  ],
  "recordHash": "caa0cea211ee8fea91ab067ddfd6c8e49975135ca2975515363b11c5060195bf",
  "contentFormat": "text/markdown",
  "content": "Processing architectures · Atlas v1.3.0\n\n# Out-of-order CPU pipeline\n\nFinds ready independent instructions while preserving architectural results.\n\n[Explore in Atlas](https://semiaifoundry.com/ai-atlas/#cpu-out-of-order)Core to multi-socket server; diagrams are logical\n\nLearning objectiveDistinguish true dependence, register naming and speculative scheduling.\n\n## The mechanism\n\nA CPU often runs code whose next action depends on a branch, pointer or recently loaded value. An out-of-order core searches a window of decoded work for instructions whose inputs are ready. Register renaming separates accidental name reuse from real data dependencies, while a retirement mechanism makes completed work visible in the required order. Prediction can keep the window supplied but wrong predictions waste work. Arm Neoverse V2 provides a public example of rename and issue structures. This organization explains CPU strength in control-heavy services without claiming that every CPU or every workload benefits equally.\n\n1.  Fetch a predicted instruction path so useful work can enter the machine before every branch resolves.\n2.  Rename destination registers to avoid false dependencies caused by reusing an architectural register name.\n3.  Place operations into queues and issue those whose true operands and execution resources are available.\n4.  Wait for a dependent load while allowing unrelated arithmetic or another independent load to proceed.\n5.  Retire completed instructions in the required order; squash younger speculative work after a misprediction.\n\n## Science and assumptions\n\n### Dependency bound\n\n$$\nT\\ge\\frac{L_{\\mathrm{critical}}}{f}\n$$\n\nExecution time cannot be shorter than dependency-critical path cycles divided by clock rate.\n\nSymbols and units\n\nT\n\nExecution-time lower bound\n\ns\n\nL\\_critical\n\nDependency-critical path length\n\ncycles\n\nf\n\nClock rate under the stated timing assumption\n\ncycles/s\n\nLcritical is the dependent path length in cycles and f is clock frequency in cycles/s; T is seconds. Parallel units cannot shorten a strict dependency path.\n\nAssumptions A simplified bound that omits memory queueing and assumes the identified path remains critical.\n\n## Engineering example\n\nSynthetic trace: a four-cycle multiply and a four-cycle unrelated load may overlap toward four cycles. Making the load address depend on the multiply raises the ideal path toward eight cycles, before cache-miss penalties.\n\n## Distinctions and tradeoffs\n\nOut-of-order execution changes the internal schedule; it does not authorize arbitrary changes to the program’s observable behavior.\n\nLarger windows and prediction structures discover more parallelism but consume area and power; dependent pointer chasing still exposes memory latency.\n\nCPUs prepare batches, tokenize requests, manage runtimes and execute irregular operators that surround dense accelerator kernels.\n\n## Specifications and interfaces\n\nExecution window\n\nFinite instruction population\n\nReady work must fit within implementation queues.\n\nLatency versus throughput\n\nCycles versus instructions/cycle\n\nA long dependent chain can remain slow despite multiple execution units.\n\n### Interfaces\n\nInstruction stream Input\n\nDecoded operations, branches and operand names\n\nArchitectural state Output\n\nCommitted registers and ordered memory effects\n\n## Check your understanding\n\n### Which pair offers the best opportunity for overlapping execution?\n\n1.  Two additions using independent inputs\n2.  A load followed by a load whose address is the first result\n3.  A divide followed by an operation requiring its result\n\nAnswer and reasoning\n\nTwo additions using independent inputs\n\nIndependent operands let the issue machinery choose both operations without violating a true data dependency.\n\n## Evidence and scope\n\nThe diagram is a logical pipeline. Queue sizes, prediction accuracy and workload speedups are not inferred from the Arm example.\n\nUse the execution investigation for the shared tensor-to-memory-to-result thread; no current standalone calculator models this lesson’s full mechanism.\n\n## Sources\n\n-   [Arm Neoverse V2 Core Technical Reference Manual](https://documentation-service.arm.com/static/633fe1ec4c59b30b517730b8)\n\n[Published lesson data](https://semiaifoundry.com/ai-atlas/lesson-data/cpu-out-of-order-fdead33f81ab27be.json) · [Atlas releases and licensing](https://semiaifoundry.com/ai-atlas/licenses.html)\n\n## Continue exploring\n\n### Foundations\n\n-   [Host CPU](https://semiaifoundry.com/learn/atlas/host-cpu/)\n-   [Register file](https://semiaifoundry.com/learn/atlas/register-file/)\n\n### Related lessons\n\n-   [Scalar, vector and CPU matrix units](https://semiaifoundry.com/learn/atlas/cpu-vector-matrix/)\n-   [Cache coherence and NUMA placement](https://semiaifoundry.com/learn/atlas/coherence-numa/)"
}
