28 C
Dhaka
Tuesday, April 16, 2024

কম্পিউটার মেমোরি সম্পর্কে বিস্তারিতঃ A to Z about RAM (পর্ব ২)

- Advertisement -

প্রথম পর্বে আমরা কম্পিউটার মেমোরি কাকে বলে, কিভাবে কাজ করে, বিভিন্ন ধরনের মেমোরি, RAM এর নামকরণ এর কারণ ,কম্পিউটার মেমোরির সাধারণ ধারণা,Volatility ইত্যাদি নিয়ে আলোচনা করেছি। আজকের পর্বে থাকছে RAM এর Timing(Cache Latency),Capacity, Speed, DDR,LPDDR,GDDR,VRAM, ইত্যাদি terms নিয়ে বিস্তারিত আলোচনা।

প্রথম পর্বের লিংক

- Advertisement -

র‍্যামের Timing: CAS latency and others

র‍্যাম কতটা ফাস্ট তা তো অবশ্যই র‍্যামের স্পিডের উপর নির্ভর করেই যা নিয়ে আমরা একটু পরেই কথা বলবো, কিন্ত একই সাথে র‍্যাম এর কার্যক্রমে, অপারেশনে আরেকটি গুরুত্বপুর্ণ Term রয়েছে তা হলো Timing। আমরা র‍্যামের প্যাকেট বা বডিতে কিংবা অনলাইনে স্পেকস শিটে দেখে থাকি 15-15-15-38 কিংবা 35-35-35-72 এই ধরনের নাম্বার। এগুলোর কোনোটিই কোনো অর্থহীন random numbers নয়, প্রত্যেকটিরই রয়েছে বিশেষ তাতপর্য, স্পিডের পাশাপাশি এই ৪টি ফ্যাক্টর র‍্যামের পারফর্মেন্স এ ভুমিকা পালন করে। এই প্রত্যেকটি সংখ্যা দিয়ে কি বোঝায় তা আমরা একটু জানার চেষ্টা করি এবার-

CAS Latency:

দুটি অপারেশনের মধ্যবর্তী delay কে latency বলা যেতে পারে, মেমোরির কোনো একটা অংশের data processing/modify/reading/writing এর জন্য কত দ্রুত এক্সেস করা যায়  সেটিও হতে পারে টাইমিং এর একটা সংজ্ঞা। আমরা অনেকেই টাইমিং বলতে সরাসরি CAS Latency কেই সরাসরি বুঝে থাকি যেটা কিছুটা misleading, বরং উপরে উল্লেখিত ঐ চার সংখ্যার মধ্যে প্রথমটা হচ্ছে CAS Latency , এটি দ্বারা ইউজার বা প্রসেসরের কোনো একটা request এর ভিত্তিতে ram কত সময় পর রেস্পন্স করে সেটার measurement, response time বলা যেতে পারে। যেহেতু এটা এক ধরনের delay, তাই স্বাভাবিকভাবেই এই value যত কম হবে তত ভালো। যদি CAS 5 হয়, তাহলে এর মানে CPU এর রিকোয়েস্ট পাঠানোর পর তা RAM process করে ফেরত পাঠানোর মধ্যে ৫ টি clock cycle পরিমাণ delay হচ্ছে। (এখানে clock cycle কোনো একটা পরিমাণ সময় বুঝাচ্ছে,)  একই স্পিডের দুটি র‍্যামের মধ্যে যার CAS কম তার জন্য clock cycle ও কম লাগবে, delay ও কম হবে, সেটি অপেক্ষাকৃত বেশি fast হবে। একটা সাইকেল এর পরিধি যদি 0.5 ns হয়, তা হচ্ছে clock cycle আর এইরকম সাইকেল র‍্যামকে কতবার ঘোরা লাগছে ,সেটা হচ্ছে CAS.

আবার দুটি র‍্যামের মধ্যে স্পিড দ্বিগুণ ,CAS ও একটি অপরটির দ্বিগুণ হলে এদের ইফেক্টিভ রেস্পন্স টাইম একই থাকবে, অর্থাৎ দুটি র‍্যামই ভিন্ন স্পিডের হওয়া সত্বেও একই পরিমাণ দ্রুততার সাথে কাজ করবে। যেমন একটি ১০০০ মেগাহার্জ র‍্যামের ক্লক পিরিয়ড ১ ন্যানো সেকেন্ড হলে ,CAS 10 হলে এর রেস্পন্স টাইম হবে ১*১০=১০ ন্যানো সেকেন্ড, আবার অন্য একটি র‍্যামে ২০০০ মেগাহার্জ স্পিড হলে ক্লক পিরিয়ড হবে ০.৫ ন্যানোসেকেন্ড, CAS 20 হলেও এর রেস্পন্স টাইম হবে 20*0.5=10 ন্যানোসেকেন্ড।

- Advertisement -

tRCD,tRP,tRAS

দ্বিতীয় সংখ্যাটা হলো tRCD বা Row Address to Column Address Delay, RAM এর ব্লকগুলোকে যদি gridline আকারে কল্পনা করা হয় row-column এর সমন্বয়ে, তাহলে কম্পিউটারকে কোনো একটা কলামে যেতে তার row আগে খুজতে হয়, এইযে রো ও কলামে যেতে যে সময় লাগে, সেটাই tRCD.

তৃতীয় সংখ্যাটা হলো tRP বা Row Precharge Time  ,নতুন একটি row open করতে যে latency বা delay এর সৃষ্টি হয়। আর শেষেরটা হচ্ছে tRAS বা Row Active time, কোনো row এর data read/write/access/modify এর জন্য সেই row কে যে সর্বনিম্ন সময় active থাকতে হয় সেটাই হচ্ছে এই শেষের সংখ্যাটা।

effective latency:

র‍্যামের effective latency বা প্রকৃত latency আমরা বের করতে পারি যদি cas latency ও র‍্যামের স্পিড জানা থাকে। সুত্রটি হলো-

- Advertisement -

ধরি একটা ৩২০০ মেগাহার্জ র‍্যামের CAS latency ২২, তাহলে এর effective latency বা true latency হবে ১৩.৭৫ । একইভাবে একটি 4800 Mhz, 40 CAS, DDR5 র‍্যামের ক্ষেত্রে তা হবে ১৬.৬৭ । এটিই স্পিডের সাথে ক্লক সাইকেল,CAS মিলিয়ে সম্মিলিত Latency। যদি এমন হয় যে ২৪০০ বাসের ল্যাটেন্সি ১৪.২ আর ২৯৩৩ বাসের ল্যাটেন্সি ১৪.৬, এই সামান্য পার্থক্য এর জন্য High BUS এর র‍্যামটিই বেশি ভালো পারফর্ম করবে কারণ স্পিড বেশি,ল্যাটেন্সির পার্থক্য অনেক বেশিই কম।

আবার, ক্লক সাইকেল time এর সাথে CAS Latency গুণ দিলেও পাওয়া যায় Effective latency । সহজ কথায় সাইকেলের সংখ্যা=CAS, delay এর পরিমাণ হচ্ছে clock cycle, আর এই দুয়ের গুণফল হচ্ছে effective latency. ৮ ন্যানোসেকেন্ড এর ৩টি সাইকেল হলে ল্যাটেন্সি হবে ২৪ । এখানে ৮ হচ্ছে ক্লক সাইকেল, সাইকেল সংখ্যা ৩ হচ্ছে CAS Latency ।

র‍্যামের সাইজঃ

এখানে বেশি কিছু বলার নেই, আগের আর্টিকেলের কথা গুলো যদি একেবারেই সহজ করে বলি, র‍্যাম হচ্ছে আমাদের কম্পিউটারের প্রসেসরের কাজ করার জায়গা, প্রসেসর যেখানে ডেটা প্রসেস করে, আউটপুট তৈরী করে, অস্থায়ীভাবে ডেটা যেখানে অবস্থান করে কাজ চলমান অবস্থায়, সেটাই র‍্যাম। সুতরাং কাজ করার জন্য জায়গার প্রয়োজন, যত বেশি জায়গা তত বেশি কাজ করার সম্ভাবনা, কাজ করার সুবিধা্, যত বেশি সাইজ র‍্যামের ,তত বেশি ব্লক, তত বেশি info,bits,তথ্য রাখা সম্ভব ,প্রসেসরের পক্ষে এক্সেস করা সম্ভব। কতটুকু ডাটা র‍্যামে আটবে, ধরবে সেটাই র‍্যামের সাইজ। যত বেশি, তত বেশি multitasking এর সুবিধা,একসাথে অনেকগুলো app,programs,commands,instructions নিয়ে কাজ করতে সুবিধা।

৪ জিবি র‍্যাম থাকলে আজকালকার যুগে কাজ করা অনেক কঠিন কারণ ২.৫-৩ জিবি র‍্যাম উইন্ডোজের ডিফল্ট সিস্টেমই সর্বক্ষণ ব্যবহার করে। সেক্ষেত্রে আমরা যদি একাধিক সফটওয়্যার যদি চালাতে চাই, বিশেষ করে ব্রাউজারে যদি একাধিক ট্যাব যেমন ফেসবুক ,ইউটিউব,অন্যান্য সাইট একসাথে চালাতে চাই সেক্ষেত্রে একটা slowness,lag লক্ষ করা যাবে কারণ যতটুকু পরিমাণ র‍্যাম ফাকা রয়েছে তা যথেষ্ট নয়।

র‍্যামের স্পিড(Bus speed @Hertz)

সহজ কথায়,র‍্যামের কাজ করার হার, প্রতি সেকেন্ডে কতটুকু পরিমাণ ইনফরমেশন র‍্যাম প্রসেসরকে দিতে পারে অথবা প্রসেসর থেকে নিতে পারে, প্রতি সেকেন্ডে কতটুকু ডেটা আদান প্রদান করতে পারে সেটাই র‍্যামের speed। এটাকে প্রসেসরের frequency বা clock speed এর সাথেও তুলনা করা যেতে পারে। তবে আমরা যে মেমোরির ফ্রিকোয়েন্সি ৩২০০ মেগাহার্জ দেখি, তার মুল ফ্রিকোয়েন্সি মুলত ১৬০০ বা অর্ধেক, কিন্ত DDR type এর কারণে একই সাইকেলে উভয় দিকে data transfer এর কারণে কার্যত স্পিড দ্বিগুণ হয়।

স্পিড vs Timing- র‍্যামের speed ও Timing এর সম্পর্কঃ

স্পিড বাড়ার সাথে সাধারণত র‍্যামের ল্যাটেন্সি বা টাইমিং বাড়ে এটা হচ্ছে সাধারণ হিসাব। উপরের আলোচনার থেকে মোটামুটি এটা স্পষ্ট যে র‍্যামের ক্ষেত্রে অবশ্যই বেশি স্পিড preferable ও কম latency number preferable, সুতরাং আমাদের র‍্যাম কেনার সময় স্পিড ও latency এর মাঝে একটা sweet spot খুজে নিতে হবে, ৩২০০ মেগাহার্জ এর কোনো র‍্যাম কেনার সময় আমাদের দেখতে হবে এই স্পিডের এভেলেবল র‍্যামগুলোর মাঝে সবথেকে কম latency রেটিং কোন ব্রান্ডের কোন মডেলে রয়েছে।

আবার যদি এমন হয় যে ২৪০০ মেগাহার্জ র‍্যামের ল্যাটেন্সি ১৫ কিন্ত ৩২০০ মেগাহার্জের ক্ষেত্রে ১৬, সেক্ষেত্রে ৮০০ মেগাহার্জ স্পিড এর বৃদ্ধি এর বিপরীতে ল্যাটেন্সির বৃদ্ধি খুবই সামান্য, সেক্ষেত্রে ৩২০০ মেগাহার্জের র‍্যামই ভালো পারফর্ম করবে। আর স্পিড,টাইমিং এর কিছু সম্পর্ক, অংক তো একটু আগে আমরা উপরে আলোচনা করেই এসেছি।

DDR কি

SDRAM সম্পর্কে আমরা জেনেছি আগেই, এখানে প্রতি ক্লক সাইকেলে একবার ডেটা ট্রান্সফার হয় একদিক থেকে, কিন্ত DDR এর ক্ষেত্রে ব্যাপারটা ভিন্ন, নাম থেকেই বোঝা যাচ্ছে, DDR বলতে বোঝানো হয় double data rate,অর্থাৎ এই ক্ষেত্রে ডেটা ট্রান্সফার এর পরিমাণ দ্বিগুণ হয়ে যায়। SDR বা Single data rate এর ক্ষেত্রে clock এর যেকোনো একটি edge থেকেই ডেটা ট্রান্সফার হয়, কিন্ত DDR এর ক্ষেত্রে clock এর rising ও falling উভয় edge এই একই সময়ে data ট্রান্সফার হয়, ফলে স্পিড দ্বিগুণ হয়। উভয় ক্ষেত্রে base frequency একই থাকে কিন্ত উভয় দিক দিয়ে ট্রান্সফার এর কারণে DDR এর স্পিড হয় ২ গুণ। SDR এক এক সাইকেলে ডেটা একবার ট্রান্সফার হয়, DDR এর ক্ষেত্রে তা হয় ২ বার।

এখানে internal ও external ,মোট ২টি মেমোরি বাস থাকে, internal bus এর স্পিড একই থাকে কিন্ত external bus এর স্পিড হয় দ্বিগুণ ।এক্ষেত্রে internal memory array প্রতি সেকেন্ডে মেমোরি বাসে যে পরিমাণ data পাঠানো হয় তার সংখ্যা দ্বিগুণ করে। এটাকে বলা হয় prefetching।

আমরা যে DDR2,DDR3,DDR4 র‍্যাম দেখি তা মুলত DDR প্রযুক্তির বিভিন্ন জেনারেশন যেখানে বিভিন্ন রকমের উত্তম পদ্ধতির ব্যবহার করা হয়, বিভিন্ন বিষয়ে improvement থাকে, সব মিলিয়ে প্রতি জেনারেশন থেকে ২ গুন বেশি স্পিড,ফ্রিকোয়েন্সি achieve করা হয়। বিভিন্ন রকমের technological পরিবর্তনের কারণে এই ram গুলো backward compatible হয় না।

প্রযুক্তি,capacity,বৈশিষ্ট্যগত অনেক পার্থক্য থাকে DDR এর এক একটি প্রজন্মের মধ্যে। এমনকি দুই সাইকেলে ট্রান্সফার হওয়া ডাটার পরিমাণ ও প্রতি জেনারেশনে বৃদ্ধি পায়। নিচে DDR3,DDR4 এর মধ্যকার কিছু বৈশিষ্ট্যগত পার্থক্য দেওয়া হলো (courtesy:guru99)। মুলত প্রতি জেনারেশনে Higher capacities,higher speeds, low power consumption,reduced heat dissipation এর প্রতিই লক্ষ রাখা হয়।

LPDDR?

LPDDR হচ্ছে DDR মেমোরি টাইপেরই low power সংস্করণ, যে সমস্ত ছোট ডিভাইস, low power consuming tablets,smartphones এর SoC তে ব্যবহার করা হয় LPDDR র‍্যাম। LPDDR4 এর আরো বেশি power efficient ভার্সনের প্রস্তাব করে স্যামসাং যা মাত্র 0.6v এ রান করতে পারে , এটির নাম LPDDR4X.

Macbook Air, Macbook pro,Microsoft Surface ডিভাইসগুলোতে LPDDR মেমোরির ব্যবহার রয়েছে।

DDR-L?

DDRL বলতে lowe voltage DDR মেমোরি বুঝানো হয় (1.35v), এটি LPDDR এর মত হলেও কিছু পার্থক্য রয়েছে, LPDDR থেকে DDRL এর cost কম।

GDDR টা আবার কি

সহজ ভাষায় গ্রাফিক্স কার্ডের মেমোরি Unit এর type হচ্ছে GDDR. এগুলোর ব্যান্ডউইডথ অনেক বেশি হয়ে থাকে,speed,bus-width ও বেশি হয়ে থাকে। এক কথায় যে মেমোরি গ্রাফিক্স কার্ডের সাথে কাজ করে, graphical data process করে, store করে সেটাই GDDR . GDDR Memory গুলো অপেক্ষাকৃত কম পাওয়ার ব্যবহার করে ও কম তাপ উৎপন্ন করে। RISC (Reduced Instruction Set Computers) ম্যাশিনগুলো GDDR ব্যবহার করে।

VRAM

যেই র‍্যাম বা মেমোরি কম্পিউটারের graphical information,graphical data প্রসেস করে,access করে, modify,store করে তাকেই VRAM বলা যেতে পারে, VRAM এর সম্পর্ক আমাদের গ্রাফিক্স কার্ড বা GPU এর সাথে, GPU যখন কাজ করে, ভিডিও/গান,এনিমেশন,ছবি বা সিম্পল আমাদের ডিসপ্লে ,non stop তাকে অন্যান্য ইনফরমেশনের মত এগুলোকে তাকে প্রসেস করতে হয়,এক্সেস,মডিফাই,রেন্ডার করতে হয়, এই কাজের জন্য যে মেমোরির দরকার হয় non stop, ন্যানো সেকেন্ডে graphical data,access,store,modify,render এর জন্য, সেটিই video memory বা VRAM. স্ক্রিনে আমরা যা দেখি,ছবি,ভিডিও, মুভি,ওয়ালপেপার,ডিজাইন বা স্ক্রিনের simple অক্ষর গুলো,GUI (GRAPHICAL USER INTERFACE), এগুলো যেহেতু সবই ক্ষুদ্র ক্ষুদ্র pixel,line এগুলো সবই graphically process,represent করতে হয় GPU কে, এর জন্যই VRAM কাজ করে। visual data নিয়ে যা কাজ করে তাই মুলত VRAM.

একটা প্রোগ্রাম এর লজিক,algorithm, calculation,looping,switching,decision,brancihng এর দায়িত্বভার থাকে CPU এর কাধে। অন্যদিকে color,resolution,texture,shadow,reflection এগুলোর দায়িত্ব থাকে VRAM এর কাধে। আমরা কিছু গেম এ দেখতে পাই যে VRAM এর amount ও used vram দেওয়া থাকে, আমরা texture,shadow,reflection,resolution সহ অন্যান্য গ্রাফিক্স কোয়ালিটি যত বাড়াই এর usage তত বাড়তে থাকে কারণ বেশি পরিমাণ graphical data GPU কে প্রসেস করতে হয়।

র‍্যামের চ্যানেলঃ

প্রসেসরের সাপোর্ট ও মাদারবোর্ডে পর্যাপ্ত স্লট থাকা সাপেক্ষে যদি একটি পিসিতে একই voltage,একই timing,একই bus speed ও একই ক্যাপাসিটির একাধিক র‍্যাম ব্যবহার করা হয় তাহলে bandwidth বৃদ্ধি পাবে ও data transfer ফাস্ট হবে। এই ব্যাপারটিকে র‍্যামের চ্যানেল বলা হয়, দুটি র‍্যাম এর সিস্টেমকে বলা হয় ডুয়াল চ্যানেল মেমোরি। মুলত 64 bit এর পোর্ট সংখ্যা যদি দ্বিগুণ হয় তাহলে তা 128 bit এ পরিণত হয়,দুটি স্টিক দুটি লেনে একই সাথে দুটি আলাদা আলাদা মেমোরি কন্ট্রোলারে যুক্ত থেকে ডেটা আদান প্রদান করে,memory banks এর সংখ্যা বৃদ্ধি পায়,। এক্ষেত্রে লেন সংখ্যা বৃদ্ধি পাওয়ায় বেশি ডাটা,দ্রুত ট্রান্সফার হয় ফলে পারফর্মেন্স বৃদ্ধি পায়।সহজে বুঝার জন্য আমরা কোনো একটি রাস্তায় লেন এর সংখ্যার সাথে ব্যাপারটি তুলনা করতে পারি, একাধিক লেন থাকলে যান চলাচলা সহজ হয়,বেশি যানবাহন চলাচল করতে পারে ও যানজট কমে যায়।

প্রথম পর্বের লিংক

- Advertisement -

LEAVE A REPLY

Please enter your comment!
Please enter your name here