Foundationপ্রথম নীতি থেকে
LEVEL 3 · CPU Architecture

Fetch-Decode-Execute Cycle

ফেচ-ডিকোড-এক্সিকিউট চক্র

একটা CPU-র মৌলিক, অবিরাম-পুনরাবৃত্ত লুপ — PC থেকে instruction পড়া (fetch), তার মানে বোঝা (decode), তারপর কার্যকর করা (execute, প্রয়োজনে memory access, তারপর writeback) — এটাই একটা প্রোগ্রাম 'চলা'-র সংজ্ঞা।

also: instruction cycle, FDE cycle, fetch-execute cycle

পাঁচটা ধাপ, লুপে:

FETCH   → PC instruction memory-কে address করে, বিট বেরিয়ে IR-এ
          বসে, PC ← PC+4 (RV32I-তে সবসময়, fixed-length encoding-এর জন্য)
DECODE  → control unit opcode/funct3/funct7 পড়ে control signal
          বানায়; একই সাথে rs1/rs2 register file থেকে পড়া শুরু
          হয় (fixed bit-position-এর সুবিধা)
EXECUTE → ALU গণনা করে — effective address (lw/sw) অথবা প্রকৃত
          arithmetic ফলাফল (add)
MEMORY  → শুধু load/store-এ data memory touch হয়; বাকিতে স্কিপ/no-op
WRITEBACK → ফলাফল (ALU result বা memory data, MemToReg mux দিয়ে
          বাছাই) register file-এ ফেরে

Single-cycle: সব ৫ ধাপ এক clock cycle-এ, combinationally। Multi-cycle: প্রতিটা ধাপ নিজের cycle নেয়, না-লাগা ধাপ স্কিপ হতে পারে (যেমন add-এ MEMORY)। Pipelined: ভিন্ন instruction ভিন্ন ধাপে একই সাথে থাকে — সব instruction-কে তাই সব ধাপ (এমনকি “কিছু না করা” ধাপ-সহ) বাধ্যতামূলকভাবে পার হতে হয়।

হার্ডওয়্যার নিজে কোনো semantic বোঝে না — শুধু bit-pattern অনুযায়ী fixed wiring অনুসরণ করে। “এই গণনা a=b+c represent করছে” — এই অর্থ compiler/programmer-এর মাথায়, silicon-এ না।