আপেলের নতুন M1 চিপ এত অসাম কেন?

স্পর্শ এর ছবি
লিখেছেন স্পর্শ (তারিখ: বিষ্যুদ, ২৬/১১/২০২০ - ৭:০৬অপরাহ্ন)
ক্যাটেগরি:

সম্প্রতি আপেল কম্পিউটার তাদের M1 চিপ বিশিষ্ট ল্যাপটপ বাজারে ছেড়েছে। এবং এর মাধ্যমে কম্পিউটিং এর জগতে এক রকম যুগান্তকারী পরিবর্তনের সুচনা করেছে। আইফোনের পরে এটাই আপেলের সবচেয়ে বড় ধাক্কা। এই নতুন চিপে প্রোসেসর, র‍্যাম গ্রাফিক্স প্রোসিং ইউনিট, নিউরাল প্রোসেসিং ইউনিট সব একই সিলিকন খন্ডের উপর তৈরি করা হয়। এদের বলে সিস্টেম অন এ চিপ (SoC)। এর ফলে কম্পিউটারের গণনা ক্ষমতা কয়েকগুণ বেড়ে ও ব্যাটারির খরচ কয়েকগুণ কমে গেছে। এতদিন হাই এন্ড আপেল ল্যপটপ গুলো ইন্টেল এর প্রোসেসর ব্যবহার করত। যা বাজারের বেশিরভাগ ল্যাপটপ এখনও ব্যবহার করে চলেছে। কিন্তু সেখানে সবকিছু এরকম এক সাথে না থাকায় ইন্টেলের প্রোসেসরের গণনাক্ষমতা, ও তার শক্তি সাশ্রয় M1 এর থেকে যোজন পিছনে পড়ে গেছে। তো এসব খবর ইউটিউব আর নানা টেক সাইটের কল্যানে কারো জানতে বাকি নেই। যা অনেকের জানতে বাকি আছে, তাই নিয়ে এই পোস্ট। আর তা হলো, ইন্টেলও কেন এরকম M1 এর মত সিস্টেম অন এ চিপ বানিয়ে ফেলল না?

এর উত্তর জানতে আমাদের যেতে হবে ইন্টেল ও আপেলের এই চিপের মৌলিক আর্কিটেকচারের পার্থক্যে। ইন্টেল এর প্রোসেসর গুলোকে বলা হয় x86 টাইপের। যা Complex Instruction Set Computer (CISC) নামক আর্কিটেকচার মেনে বানানো। আর আপেলের M1 চিপ এর প্রোসেসর ARM আর্কিটেকচারের। ARM হচ্ছে advanced RISC Machine এর সক্ষেপ। যা Reduced Instruciton Set Computer (RISC) নামক আর্কিটেকচারের উপর ভিত্তি করে বানানো। এই RISC আর CISC এর মধ্যকার মৌলিক পার্থক্যটি কি তা বুঝতে পারলে, আমরা বুঝে ফেলব কেন ইন্টেল হেরে গেল।

এর জন্য আমাদের দেখতে হবে প্রোসেসর লেভেলে একটা কম্পিউটার কীভাবে কোনো কাজ করে। আমরা জানি কম্পিউটারের কাজ হলো নানা রকম গণনা করা। কম্পিউটারে আমরা গেম খেলি, কিংবা মুভি দেখি, যাই করি না কেন, ভিতরে ভিতরে সে নানা রকম যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি হিসেব নিকেশ করতে থাকে। যা সে করে থাকে তার মেমরিতে থাকা বিভিন্ন সংখ্যা নিয়ে।

এখন নিচের চিত্রটা দেখি।

এই চিত্রে কম্পিউটারের গণনার জন্য প্রয়োজনীয় মৌলিক তিনটি উপাদান দেখা যাচ্ছে।
মেইন মেমরি, যেখানে নানা রকম তথ্য উপাত্ত জমা থাকে। এটা আমরা সচরাচর র‍্যাম নামে চিনি। রেজিস্টার, যা মূলত কম্পিউটারের হিসাবে খসড়া খাতা। কোনো দুটি সংখ্যা যোগ করতে হলে, কম্পিউটারকে প্রথমে সংখ্যা দুটিকে তার মেইম মেমরি থেকে খসড়াখাতায় আনে। সব শেষে থাকে এক্সিকিউশন ইউনিট যা খসড়াখাতায় যোগবিয়োগ সম্পন্ন করে। এরপর ফলাফল আবার মেইন মেমরিতে ফিরিয়ে নেওয়া হয়।

এখন চিত্রে মেইন মেমরিটা অনেকটা গ্রাফ খাতার মত ছক আকারে। যেখানে ৬ টি সারি ও ৪ টি কলাম আছে। এই ছকের বিভিন্ন ঘরে বিভিন্ন সংখ্যা থাকে। আমরা কোনো ঘরের সংখ্যাটি চাই তা বুঝাতে, সেই ঘরের ঠিকানা, সারি ও কলামের নম্বর পাশাপাশি লিখে প্রকাশ করতে পারি। 4:2 ঠিকানায় x রাশিটি রয়েছে। আর 5:3 ঠিকানায় আছে y।

খসড়া খাতা, তথা রেজিস্টারের প্রতিটি ছকের আলাদা আলাদা নাম আছে। যেমন এই চিত্রে A, B, C, D, E এবং F।

এখন আমরা যদি চাই x এর সাথে y যোগ করে যোগফলটি x এর যে ঠিকানা অর্থাৎ 4:2 ঘরে রাখতে, তাহলে CISC মেশিনে যে ইন্সট্রাকশনটি চালাতে হবে তা হলো

ADD   4:2 ,   5:3 

শুধু এই একটা ইন্সট্রাকশন পেয়েই কম্পিউটার নিজে নিজে তার মেইন মেমরির 4:2 থেকে x কে এবং 5:2 ঘর থেকে y কে তুলে এনে, রেজিস্টারে বসিয়ে, মাথা খাটিয়ে তাদের যোগ ফল নির্ণয় করে ফলাফলটি আবার 4:2 নাম্বার ঘরে বসিয়ে দেবে। প্রোগ্রামারকে আর মাথা ঘামাতে হবে না।

কিন্তু এই কাজটি RISC মেশিনে করতে গেলে, বলতে হবে,

LOAD   A ,   4:2
LOAD   B ,   5:3
ADD     A ,   B
STORE  4:2 ,   A 

যেখানে বলা হচ্ছে, 4:2 ঠিকানার সংখ্যাটিকে A রেজিস্টারে লোড করো। 5:3 ঠিকানার সংখ্যাটিকে B রেজিস্টারে লোড করো। A ও B রেজিস্টারের সংখ্যাদুটিকে যোগ করো। (যোগফলটি A রেজিস্টারে জমা হবে)। এরপর A রেজিস্টারে জমা হওয়া এই যোগফলটি আবার মেইন মেমরির 4:2 ঠিকানায় লিখে ফেল।
এসব দেখে মনে হতে পারে তাহলে তো CISC কম্পিউটারই ভালো। এক কথায় কাজ শেষ। RISC এর মত এতগুলো কমান্ড না লিখলেও চলছে। বস্তুত এই ভাবনা থেকেই CISC আর্কিটেকচারের জন্ম। সমস্যা হলো, যে আর্কিটেকচারেই যাই না কেন, ভিতরে ভিতরে কম্পিউটার এই মেইন মেমরি, রেজিস্টার আর এক্সিকিউশন ইউনিট দিয়েই কাজ করে। ফলে CISC কম্পিউটারকে যদিও আমরা এক কথায় বলে দিচ্ছি কী করতে হবে, ভিতরে ভিতরে তাকে এইসব লোড করা, যোগ করা, স্টোর করা ইত্যাদি করতে হচ্ছে। এসব ধাপ না পেরিয়ে তার পক্ষে যোগ করার কোনো উপায় নেই। মাঝখান থেকে, সবকিছু অটোমেটিক করাতে গিয়ে এই আর্কিটেকচারের সার্কিট হয়ে পড়ছে জটিল। শুধু এই যোগ করা নয়, আধুনিক কম্পিউটার এমন শ'খানেক আলাদা আলাদা ইনস্ট্রাকশন ফলো করতে পারে। সেগুলো CISC এর মত স্মার্টলি করাতে গিয়েই ইন্টেল এর x86 এর ডিজাইন হয়ে গেছে জবড়জং। এটা ভুললে চলবে না আধুনিক কম্পিউটার প্রোসেসরে দেড় থেকে দুই বিলিয়ন ট্রাঞ্জিস্টর থাকে। ভাবা যেতে পারে যে এসব ট্রাঞ্জিস্টর একে অপরের সাথে সুক্ষ্ম সব তার দিয়ে ইন্ট্রিগ্রেটেড সার্কিটের (IC) এর মধ্যে যুক্ত থাকে। যার যে কোনো তারের সংযোগ ভুল হলে, বা ম্যানুফেকচারিং ডিফেক্ট হলে, পুরো প্রোসেসরটি বাতিল করে দিতে হয়।

RISC কম্পিউটার বোকাসোকা। তাকে প্রতিটা ধাপ বলে বলে গিলিয়ে খাইয়ে দিতে হয়। এ কারণে তার সার্কিটটা সরলত। তাছাড়া এই প্রতিটি ধাপ এত সহজ যে এক ক্লক সাইকেলেই সে একটি ধাপ সম্পন্ন করতে পারে। CISC এর মত এক ইন্সট্রাকশনের ভিতরে গোপনে গোপনে অনেক কাজ তাকে করতে হয় না। আর এই সারল্যের কারণে, RISC প্রোসেসর সহজেই তার গণনার কাজ পাইপলাইনিং করতে পারে। অনেকট ফ্যাক্টরি ফ্লোরের শ্রমবিভাজনের মত। যেমন, একটা গণনার জন্য সংখ্যা, মেমরি থেকে রেজিস্টারে তুলতে তুলতে, অন্য দুটো রেজিস্টার এর উপর এক্সিকিউশন ইউনিট অন্য একটা হিসাব করে ফেলতে পারে। এ কাজটা ইন্টেল তথা CISC এও করা হয়। কিন্তু আর্কিটেকচারে কমপ্লেক্সিটির কারণে কাজটা অতি দুরুহ। একই ভাবে, প্রসেসরের একাধিক কোর দিয়ে সমান্তরালে একাধিক গণনা করা সহ গণনা ধাপ প্রতি সময়ও RISC এ কম লাগে।

তাছাড়া ধরুন আমরা কম্পিউটার দিয়ে কোনো দরজা দিয়ে কত জন লোক একে একে ঢুকছে তা গণনা করছি। এর মানে প্রতিবার একজন লোক প্রবেশ করার সাথে সাথে আমাকে ১ যোগ করতে হবে মোট সংখ্যার সাথে। একমাত্র সব লোক এসে গেলে, তখন ফলাফল টি মেমরিতে লিখলেই হলো। ফলে RISC এ শুধু শেষে একবার STORE কমান্ড দিয়েই কাজ খতম। প্রতি ধাপের গণনা রেজিস্টারেই করে ফেলা সম্ভব। কিন্তু CISC টাইপ আর্কিটেকচারে, প্রতিবার ১ যোগ করেই, যোগ ফলটিকে আবার মেমরীতে লিখতে হচ্ছে। পরেরবার আবার ১ যোগ করতে আবার মেমরি থেকে তুলে এনে সবগুলো কাজ করতে হচ্ছে। স্পষ্ট করে STORE কমান্ড এখানে না দিলেও, ভিতরে ভিতরে এই স্টোর করার কাজটি প্রতি ধাপেই করছে CISC কম্পিউটার। ফলে তাকে বেগার খাটতে হচ্ছে। আর এখানেই RISC আর্কিটেকচার এর থেকে পিছিয়ে পড়ছে CISC। উল্লেখ্য, যে এটা একটা অতি সরলীকৃত উদাহরণ।

আপেল তার M1 সিস্টেম অন চিপে এই RISC আর্কিটেকচারের এডভান্সড ভার্সন ARM ব্যবহার করছে। ফলে তাদের প্রসেসিং ইউনিটের গঠন বেশ সরল। আর সহজেই তাকে অপটিমাইজ করা সম্ভব। এবং একটা সিস্টেমেই গ্রাফিক্স প্রোসেসিং ইউনিট, র‍্যাম, নিউরাল প্রোসেসিং ইউনিট সব তুলনামূলকভাবে কম প্রচেষ্টাতেই জুড়ে দেওয়া সম্ভব। অপরদিকে Intel তাদের জটিল ইনস্ট্রাকশন সম্বলিত CISC আর্কিটেকচার দিয়ে উচ্চক্ষমতার প্রোসেসর বানাতেই হিমসিম খাচ্ছে। সাথে আরো সাঙ্গপাঙ্গ জোড়া তাদের পক্ষে অসম্ভবের কাছাকাছি। এমনকি, এ ধরনের বেশ কিছু প্রকল্পে তারা সাম্প্রতি ফেইলও করেছে।

কম্পিউটারের প্রোসেসরের গতি বোঝাতে আমরা গিগা হার্জ, মেগা হার্জ এমন অনেক শব্দ ব্যবহার করি। এটা প্রকাশ করে একটা কম্পিউটার প্রতি সেকেন্ডে কতটি গননা সাইকেল পূরণ করতে পারে। ধরা যাক ২ গিগা হার্জের একটা RISC ও একটি CISC প্রসেসর আছে। তারা উভয় এই সেকেন্ডে 2 x 10^9 টি গণনা সাইকেল সম্পন্ন করে। এখন RISC কম্পিউটার প্রতি সাইকেলে একটা করে ইনস্ট্রাকশন চালাতে পারছে। CISC কম্পিউটার এর ইনস্ট্রাকশন ভিতরে ভিতরে জটিল হওয়ায়, তাকে প্রতি ইনস্ট্রাকশোনে অনেকগুলো সাইকেল ব্যয় করতে হচ্ছে। তাহলে সব মিলিয়ে জিতলো কে? সেটা বুঝতে নিচের সমীকরণটি দেখি।

এখন আমরা বুঝতে চাই কোন আর্কিটেকচারে প্রোগ্রাম প্রতি সময় কেমন লাগবে। দুটি কম্পিউটারই 2 গিগা হার্জের। তাই সাইকেল প্রতি সময় তাদের সামান সমান লাগবে। (সময় / সাইকেল) এখানে কনস্টান্ট। CISC এ প্রোগ্রাম প্রতি ইনস্ট্রাকশন কম দিতে হচ্ছে। ওদিকে প্রতিটি ইন্সট্রাকশন বেশি বেশি সাইকেল খরচ করছে। অর্থাত এখানে (সাইকেল/ ইনসট্রাকশ) বেশি, আবার (ইনস্ট্রাকশোন / প্রোগ্রাম) কম। ফলে দুটি গুনফল কমও হচ্ছে না বেশিও হচ্ছে না।
অপরদিকে RISC এ (সাইকেল/ ইনস্ট্রাওশন) কম। কারণ প্রতিটি ইন্সট্রাকশন ১ ধাপেই করে ফেলে এই কম্পিউটার। কিন্তু, একটা সিম্পল যোগ করতেই তাকে অনেকগুলো ইন্সট্রাকশন দিতে হয়। ফলে (ইনস্ট্রাকশন/ প্রোগ্রাম) বেড়ে যায়। এদেরও গুণফল মাঝারি থাকে।
ফলে দেখা যায়, গুণে ভাগে RISK থেকে CISC খুব বেশি এডভান্টেজ দিতে পারছে না। মাঝখান থেকে তার আর্কিটেকচার জটিল হওয়ায়, এটা তৈরি করা, আপডেট করা, এবং নতুন টেকনলজির সাথে ইনট্রিগ্রেট করা হয়ে পড়েছে দুরহ। তাচাহড়া উপরের আলোচনায় দেখেছি, যে আধুনিক পাইপলাইনিং থেকে একাধিক কোর ব্যবহার করে সমান্তরাল কম্পিউটিংও RISC আর্কিটেকচারে সহজে ইমপ্লিমেন্ট করা যাচ্ছে। ARM এর কাছে Intel এর হেরে যাওয়ার মূল কারণটা এখানেই। ফলে যতই, স্মার্ট ইঞ্জিনিয়ার, যত ভালো ফেব্রিকেশন ফ্যাসিলিটি ইন্টেল বানাক না কেন, তারা বাজি ধরেছে দুর্বল ঘোড়ার উপর। সে ফল তাদের পেতেই হবে।

অনেকে ভাবতে পারে, CISC তথা (x86) আর্কিটেকচারের এত সব অসুবিধা সত্ত্বেও তাহলে ইন্টেল কেন এতেই লেগে ছিল। দুইটি কারণ, ১ প্রতিদ্বন্দিতার অভাব। প্রোসেওস্র মার্কেটে ইন্টেলের এত আধিপত্য ছিল যে ARM এর মত এক কোনায় পড়ে থাকা আর্কিটেকচার তাদের জন্য হুমকি হতে পারে তা তারা বিশ্বাস করেনি। আর দ্বিতীয়ত লেগাসি। যেহেতু অতীতে এই CISC এর একটা প্রয়োজন ছিলো, সেই সময়কা অভ্যাস, বা লেগাসি ইন্টেল ধরে রেখেছে। কিন্তু এই লেগাসিই বা শুরু হলো কেন? কারণ এক সময় কম্পিউটারের মেমরি ছিলো খুব সীমিত। আর প্রচন্ড দামি। কয়েক কিলোবাইট র‍্যাম ওয়ালা কম্পিউটার আমার এই লেখার পাঠকদের মধ্যেই অনেকে হয়তো ব্যবহার করেছেন এক সময়। তো কম্পিউটারের প্রতিটি প্রোগ্রামকেই মেমরিতে রাখতে হয়। ফলে প্রোগ্রামে যদি ইনস্ট্রাকশন সংখ্যা কম হয়, তাহলে কম মেমরি লাগে। তাই সে যুগে এই CISC টাইপ আর্কিটেকচারই সুলভ কম্পিউটার বানাতে প্রয়োজন ছিল। এক লাইনের বদলে চার পাচ লাইন কোড থাকে মেমরিতে লোদ করতে হতো না। কিন্তু এখন একটা পেন ডেরাইভেই এক টেরাবাইট মেমরি ধরে। র‍্যাম থেকে প্রোসেসররের রেজিস্টার, ক্যাশ মেমরি, SSD ডিস্ক সবকিছুর এত উন্নতি সাধিত হয়েছে যে, এখন অতি উচ্চগতির, সুবিশাল মেমরি ভান্ডার খুবই সহজলভ্য। তাই, অনেক কাঠখড় পুড়িয়ে, কমপ্লেক্স ইনস্ট্রাকসন সেট ওয়ালা প্রোসেসর বানিয়ে তেমন কোনো লাভই নেই। তার চেয়ে ৫ টা ইন্সট্রাকশন বেশি খরচ করে, প্রোসেসরের গাঠনিক জটিলতা যদি কমানো যায় সেটাই লম্বা দৌড়ে ভাল। আর উপরের সমিকরণে তো দেখলাম, গতির দিক দিয়ে ইনস্ট্রাকশোন কমিয়ে কোণো লাভ হয় না। কারণ ইন্সট্রাকশনের ভিতরে জটিলতা বেড়ে গিয়ে সেই বেশি সাইকেল খরচ হয়ে যায়।

তবে আপেলের মতো একটা অথোরেটেরিয়ান কোম্পানি এই ব্রেকথ্রু করায় কম্পিউটিং জগতের জন্য বরে শাপ হলো। M1 এর এই ক্লোজড সিস্টেমের সমতুল্য মুক্ত সিস্টেম যত তাড়াতাড়ি বাজারে আসে ততোই ভালো। তা সে ইন্টেল বা অন্য যার হাত ধরেই আসুক না কেন। উল্লেখ্য বাজারে আপেল ছাড়াও ARM আর্কিটেকচারের বেশ কিছু প্রোসেসর আছে। তাড়াও M1 এর সমতুল্য সিস্টেম অন এ চিপ বাজারে আনতে উঠে পড়ে লাগবে নিশ্চয়ই। তবে সে জয় যাত্রায় ইন্টেল সামিল হতে পারবে কি না, তা নিয়ে সন্দেহ আছে।

ছবি: 
03/04/2008 - 11:53পূর্বাহ্ন
03/04/2008 - 11:53পূর্বাহ্ন

মন্তব্য

মেহেদী হাসান এর ছবি

দারুন লিখেছেন। কম্পিউটার আর্কিটেকচার নিয়ে আগ্রহ বেড়ে গেল।

স্পর্শ এর ছবি

ধন্যবাদ।


ইচ্ছার আগুনে জ্বলছি...

লুৎফুল আরেফীন এর ছবি

অতি সুন্দর লেখা! পড়ে ভালো লাগল! অনেকদির পরে সচলে ঢুকেই আপনার লেখার মধ্যে আটকে গেলাম!

স্পর্শ এর ছবি

অনেক ধন্যবাদ। অনেকদিন পর আপনার মন্তব্য পেলাম। হাসি


ইচ্ছার আগুনে জ্বলছি...

সাক্ষী সত্যানন্দ এর ছবি

ইটা রাইখ্যা গেলাম... রেখে গেলাম। পরে মনযোগ দিয়ে পড়ব।

____________________________________
যাহারা তোমার বিষাইছে বায়ু, নিভাইছে তব আলো,
তুমি কি তাদের ক্ষমা করিয়াছ, তুমি কি বেসেছ ভালো?

Md. Mostafizur Rahman এর ছবি

অনেক ধন্যবাদ লেখাটির জন্য ।

নতুন মন্তব্য করুন

এই ঘরটির বিষয়বস্তু গোপন রাখা হবে এবং জনসমক্ষে প্রকাশ করা হবে না।