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-এ না।