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) এটা যুক্তিসঙ্গত সিদ্ধান্তই ছিল।