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

CISC

সিস্ক (কমপ্লেক্স ইনস্ট্রাকশন সেট কম্পিউটার)

Complex Instruction Set Computer — একটা instruction-এ বেশি কাজ (memory access + arithmetic একসাথে), variable length। ১৯৭০-এর ব্যয়বহুল/ধীর memory-র যুগে code density বাঁচানোর যুক্তিসঙ্গত ডিজাইন।

also: CISC

নামটা রেট্রোঅ্যাকটিভ — কেউ “CISC ডিজাইন করব” বলে শুরু করেনি, এটাই ১৯৭০-এ স্বাভাবিক পছন্দ ছিল, RISC আসার পর বিপরীত ক্যাটাগরি হিসেবে নাম হয়েছে। যুক্তি: memory ব্যয়বহুল/ধীর, তাই একটা instruction-এ যত বেশি কাজ (semantic gap কমানো), তত কম instruction, তত ছোট বাইনারি।

ক্লাসিক উদাহরণ — DEC VAX-11/780 (১৯৭৭): POLY instruction পুরো polynomial evaluate করত, একটাই instruction-এ — microcode দিয়ে বাস্তবায়িত (CPU-র ভেতরের একটা ছোট ROM-এ মাইক্রো-প্রোগ্রাম)।

x86/x86-64 এই একই ঐতিহ্যের অংশ: add eax, [addr] একটা instruction-এই memory read + add করে — RISC-V-তে এটা আলাদা lw + add দুইটা instruction লাগত।

Variable-length encoding (x86-64-এ ১-১৫ byte) code density বাড়ায় কিন্তু decode জটিল করে — পরের instruction কোথায় শুরু জানতে বর্তমানটা আংশিক decode করতেই হয় (length-decode সমস্যা), যা parallel decode কঠিন করে তোলে।

সবচেয়ে বড় twist: আধুনিক x86-64 CPU (Pentium Pro/P6, ১৯৯৫ থেকে) ভেতরে জটিল instruction ভেঙে সরল, RISC-সদৃশ micro-op-এ execute করে — ISA বাইরে CISC, microarchitecture ভেতরে RISC-সদৃশ। “CISC ভুল ডিজাইন ছিল” — এটাও ভুল ধারণা; সেই যুগের বাস্তবতায় (ধীর memory, অপরিণত compiler) এটা যুক্তিসঙ্গত সিদ্ধান্তই ছিল।