লেখকঃ রওনক শাহরিয়ার
“If I had asked people what they wanted, they would have said faster horses.” –Henry Ford
ফোর্ডের কথাটি সম্পুর্ণ সত্য। ঠিক এই কারণে
বিগত বেশ কয়েক বছর ধরে Solid State Drives (SSD) ট্রেডিশনাল হার্ড ড্রাইভের স্থান দখল করছে। এসএসডি ও হার্ড ড্রাইভ উভয়ই মেমরি সিস্টেম হলেও দুটোর মৌলিক দিক দিয়ে সম্পুর্ন ভিন্ন।
হার্ড ড্রাইভের মতো এসএসডিতেও বিশাল আকারের ডেটা সংরক্ষণ করা যায় পাওয়ার অন বা অফ অবস্থায়, একটা দীর্ঘ সময়ের জন্য। হার্ড ড্রাইভের মতো এসএসডিতে কোনো মুভিং পার্টস থাকে না এবং এটা অনেকটা ফ্লাশ ড্রাইভের মতো কাজ করে। মোট কথায় একটা এসএসডি এর সাথে USB ফ্লাশ ড্রাইভ, এসডি কার্ড বা স্মার্টফোন ও ল্যাবলেটে থাকা মেমরি চিপের মধ্যে তেমন পার্থক্য নেই।
মূলত ফ্লাশ মেমরি দুই ধরণের-
১. নর, ২. ন্যান্ড।
উভয়ের গ্রিডে ট্রান্সজিস্টর ব্যবহার করা হয়ে থাকে, তবে সেলগুলোর সংযোগ ব্যবস্থা ভিন্ন ভিন্ন। নর ফ্লাশ সেলে প্যারালালভাবে সংযুক্ত থাকে। আর ন্যান্ড ফ্লাশ সেলে সিরিজভাবে। একারণে নর ফ্লাশ সেলে অধিক পরিমাণে তারের সংযোগ থাকে, যা সেগুলোকে বড়ো এবং জটিল বানিয়ে দেয়। সেখানে ন্যান্ড সেলে খুব কম তারের সংযোগ লাগে, এবং একটি চিপের মধ্যে বহু সংখ্যক ট্রান্সজিস্টর রাখা সম্ভব হয়। যার ফলে ন্যান্ড চিপ কিছুটা কম দামে এবং ফাস্ট রিড-রাইট করতে পারে।
এবার এসএসডি নিয়ে আসা যাক। বাজারে পাওয়া এসএসডিতে মূলত একটি হার্ডকেস ব্যবহার করা হয়। এটা বাহিরে বাহিরের বিভিন্ন বস্তুর আঘাত থেকে মেইন বোর্ডকে রক্ষা করে। এসএসডি এর মধ্যে বিভিন্ন অংশ-
ন্যান্ড ফ্লাশ চিপঃ
প্রতিটা এসএসডিতে থাকে কিছু ন্যান্ড চিপ। এইগুলোতেই মূলত ডেটা স্টোর হয়।
কন্ট্রোলারঃ
রিড-রাইটের ইনিশ্ট্রাকশন ন্যান্ড চিপে পাঠায়।
ডি-র্যাম চিপঃ
এটা সাধারণ কম্পিউটার র্যামের মতোই কাজ করে। অবস্থায়ীভাবে ডেটা এখানে যায়।
ন্যান্ড চিপ কীভাবে কাজ করে?
ন্যান্ড চিপের মধ্যে থাকে অসংখ্য ন্যান্ড সেল। এখানে ০/১ বিট রূপে ডেটা স্টোর হয়। এই সেলগুলো মূলত হয়ে থাকে মসফেটস ট্রান্সজিস্টরের মতো। সেখানে ডেটা ফ্লোটিং গেটের উপরে জমা হয়। ইতিপুর্ব এসডি কার্ড লিখাতে বিস্তারিত আলোচনা করা হয়েছে-
https://m.facebook.com/groups/bcb.science/permalink/3450037035079941/
এসএসডি তে ন্যান্ড ফ্লাশ চিপ হলো মূল মেমরী। আর এর সেলগুলোকে বিভিন্নভাবে তৈরী করা হয়ে থাকে। এই সেলগুলো কত বিটের হবে তার ওপর রিড-রাইট স্পিড নির্ভর করে। বিট যত বেশি বাড়বে বিট প্যানাল্টি তত বাড়বে। অর্থাৎ একটি গেট দিয়ে একাধিক বিট বের হতে একটু বেশি সময় লাগবে। সেলে যত বিট বাড়ছে ডেটা এক্সেস টাইমও তত বেড়ে যাবে। সেজন্য অনেক ন্যান্ড ফ্লাশ চিপে ডি-র্যাম ক্যাশ ব্যবহার করা হয় যাতে রিড রাইট স্পিড এ অতিরিক্ত বাফার হয়।
নিচে কয়েক ধরণের সেল নিয়ে আলোচনা করা হলো-
Slc:
প্রথমদিকের ন্যান্ড সেলগুলো তৈরী করা হয়েছিল slc সেল বা single level shell। এর মধ্যে মূলত একটি বিট থাকে। কিন্তু এতে খরচ অনেক বেশি হয়।
Mlc:
খরচের দিকে খেয়াল রেখে mlc বা multi level shell তৈরী করা হয়। মাল্টি মানে এখানে একাধিক নয় বরং একটি সেলের মধ্যে দুইটা বিট ধারণ করতে পারে তা বোঝাই। এর ফলে একই খরচে স্টোরেজ ডাবল হয়ে যায়। যদিও এতে খরচ খুব একটা সাধারণ মানুষের নাগালে আনা যায় নি।
Tlc:
tlc বা triple level shell বা একটি সেলে তিনটি বিট ধারণ করতে পারে। এই ধরণের চিপ বর্তমানে সাধারণ এসএসডিগুলোতে ব্যবহার করা হয়।
Qlc:
Qlc বা quad level shell একটি সেলে ৪টি বিট ধারণ করতে পারে। এমন চিপ যুক্ত এসএসডি এর দাম অনেক কম হয়ে থাকে।
Plc:
গত বছর ইন্টেল ও টোশিবা plc বা penta level shell সেল নিয়েও কাজ শুরু করার ঘোষণা দিয়েছে। এতে প্রতিটা সেলে ৫ বিট ধারণ ক্ষমতা থাকবে।
ন্যান্ড ফ্লাশ চিপের মধ্যে থাকা বিভিন্ন অংশ যা উচ্চগতিতে ডেটা রাইট ও রিড করতে সহায়তা করে।
সেগুলো নিয়ে আলোচনা করা হলো-
ডাই (Die):
প্রতিটা ন্যান্ড ফ্লাশ চিপে এক বা একাধিক ডাই থাকে। ছবির নীল কালার অংশটা হলো ডাই। একটা কমান্ড স্বাধীনভাবে থাকার এটাই শেষ স্টেজ।
প্লেন (plane):
ডাই এর মধ্যে একটা বা দুইটা প্লেন থাকতে পারে। ছবিতে গাঢ় নীল রংয়ের অংশটা প্লেন। ডেটা রিড-রাইটের ক্ষেত্রে দুইটা প্লেন এক সাথে কাজ করতে পারে।
ব্লক (block):
একটা প্লেনের মধ্যে একাধিক ব্লক থাকতে পারে। ছবিতে পেস্ট কালারের অংশগুলো হলো ব্লক। আর ডেটা ইরেজ হয় এই ব্লক লেভেল এ এবং রাইট হয় পেজ লেভেল এ। সেজন্য এখানে ১২৮/২৫৬ কিলোবাইট ডেটা ইরেজ হয়ে থাকে। অনেকগুলো পেজের ডেটা এক সাথে প্রতিটা ব্লকে ইরেজ হওয়াই, কোনো ফাইল ডিলিট করার সময় অতিরিক্ত ডেটা র্যাম এ চলে যায়। আবার ইরেজ হলে পুনরায় ডেটা স্টোর হয়।
পেজ (page):
ব্লকের মধ্যে প্রচুর পেজ থাকে। ছবিতে হলুদ রঙয়ের ছোটো ছোটো খোপ হলো এক একটি পেজ। এই পেজের মধ্যে ডেটা রাইট হয়। একেকটা পেজের আকার ২/৮/১৬ কিলোবাইট হয়ে থাকে।
ডেটা ইরেজ করার সময় সেল এ আলাদা ভোল্টেজ প্রয়োগ করা হয়। সময়ের সাথে ডেটা আদান প্রদানের জন্য বার বার ভোল্টেজের প্রবাহে ট্রান্সজিস্টর এর লাইফ স্প্যান ধীরে ধীরে কমে যায়। এজন্য এসএসডিতে এক ধরণের অ্যালগরিদম ব্যবহার করা হয়, যেন ডেটা ইরেজ যে পেইজে করা হয়েছে সেই পেইজ বাদে অন্যান্য ফাঁকা পেইজগুলোতে রাইট হয়। এভাবে যখন এসএসডিতে ধীরে ধীরে ডেটা পুর্ণ হয়ে যায়, তখন সেই ইরেজ হয়ে যাওয়া ব্লকের পেজগুলোতে ডেটা রাইট হয়। এজন্য যে এসএসডি যত বেশি ব্যবহার করা হয়, তার আয়ু তত কমে আসে বা ডেটা রিড-রাইট স্পিড তত কমে যায়।
Slc এসএসডিতে সবচেয়ে বেশি সাইকেল থাকে এবং সেলে যত বেশি বিট ধারণ করবে, টোটাল সাইকেলের পরিমাণও তত কমে যাবে।
এখন এসএসডি এর গায়ে বিভিন্ন রকমের টেকনোলজির কথা উল্লেখ থাকে, যেগুলো এসএসডির মান ও লাইফ স্প্যান বৃদ্ধিতে সহায়তা করে।
এই টেকনোলজিগুলো হলো-
ট্রিম কমান্ডঃ
এই কমান্ডে হলো যখন একটি ডেটা মডিফাই করার কমান্ড দেওয়া হবে তখন যেটা কিছু জায়গাকে ইরেজ করবে। আবার যখন ডেটা মুভ করা হবে তখন সেই কমান্ডটা আবার পারফর্ম করবে। এতে করে কিছু ব্লক এ ইরেজ করার দরকার হয় না। যার জন্য এসএসডি এর লাইফস্প্যান কিছুটা বৃদ্ধি পায়।
গারবেজ কালেকশনঃ
যেহেতু ডেটা রাইট হয় পেজ লেভেলে আর ইরেজ হয় ব্লক লেভেলে, সেজন্য ছোটো কোনো ফাইল রাইট করতেও পুরো ব্লক ইরেজ করে ফেলে। যার জন্য ছোটো ফাইল রাইট করার দরকার হলেও সেটা অনেক বড়ো জায়গা দখল করে ফেলে। একে রাইট অ্যাম্পিফ্লিশন বলে। গারবেজ কালেকশন এই অযথা জায়গা দখলকে কমিয়ে দেয়।
ওভার প্রভিশনঃ
রাইট এর ইমপেক্ট কমানোর জন্য এসএসডিতে ওভার প্রভিশন করা থাকে। যেটুকু স্টোরেজ ব্যবহার করা হয় তার থেকে কিছুটা বেশি স্টোরেজ ফাঁকা রাখা থাকে। যেটা সাধারণত ব্যবহার করা যায় না কিন্তু রাইট অ্যাম্পিফ্লিশন এর ইমপেক্ট কমিয়ে দেই।
ওয়্যার লেভেলিংঃ
এটি একটি এ্যালগরিদম যা কোন কোন ব্লকে ডেটা ইরেজ হচ্ছে বা রাইট হচ্ছে তার খেয়াল রাখে। কোনো চিপে ডেটা কম রাইট হচ্ছে আবার অন্যগুলোতে বেশি হচ্ছে, এমনটা যেনো না হয়ে সব জায়গাতে একটা ব্যালেন্সড পর্যায়ে থাকে, তা খেয়াল রাখে।
এবার এসএসডি এর পারফরম্যান্স নিয়ে আলোচনা করা যাক।
হার্ড ড্রাইভ ও এসএসডি পারফরম্যান্সের বিশাল পার্থক্য রয়েছে।
এসএসডি হার্ড ড্রাইভ থেকে প্রায় ১০ গুণ বেশি রিড স্পিড এবং ২০ গুণ বেশি রাইট স্পিড সম্পন্ন।
এটি অপারেটিং সিস্টেমকে প্রা্য ১৫ সেকেন্ডে ওপেন করে, সাধারণ ফাইল রিড ৫০০ মেগাবাইট এর বেশি এবং প্রায় ১৫০ মেগাবাইট রাইট স্পিড হয়।
অ্যাপস, গেমস ও কম্পিউটারের অভারঅল পারফরম্যান্স হার্ড ড্রাইভ থেকে অনেক দ্রুত ও স্মুথ হয়।
আর আরেকটি বিষয় হলো এর আকার, আকৃতি। এসএসডি আকারে ছোটো প্রায় ২.৫ ইঞ্চি এবং আকারে হালকা।
এর ফেইলিওর রেটও অনেক কম। এবং এক্সট্রা ফিচার হিসেবে error-correcting code (ECC) থাকায়, এসএসডিতে ইরোর হওয়ার সম্ভাবনা কম।
সমস্যা:
এবার এসএসডি এর সমস্যা নিয়ে আসা যাক।
এসএসডিতে থাকা ন্যান্ড ফ্লাস চিপের জন্য এর দাম হার্ডড্রাইভের দামের তুলনায় অনেক বেশি।
এবং ন্যান্ড ফ্লাস চিপ বেশি দীর্ঘস্থায়ী নয়। মূল কারণ ন্যান্ড চিপগুলোর নির্দিষ্ট সংখ্যক সাইকেল থাকায়। ওপরে আলোচনা হয়েছে কারণ নিয়ে।
প্রতি সাইকেলে লাইফস্প্যান কমতে থাকবে। একটি mlc ন্যান্ড ফ্লাশ সেল ৩৫,০০০ বার রাইট/ইরেজ সাইকেল পর্যন্ত কাজ করবে। Mlc এর চেয়ে Tlc -তে বিট ধারণ ক্ষমতা বেশি হওয়াই Tlc -তে সাইকেল আরও কম। অর্থাৎ প্রতি জেনারেশনে সাইকেল সংখ্যা কমে আসছে।
এক্ষেত্রে হার্ড ড্রাইভের সাইকেল ও লাইফস্প্যান অনেক দীর্ঘ।
সাধারণত এজন্য অপারেটিং সিস্টেম ও অ্যাপসগুলো এসএসডিতে রাখা হয় এবং সাধারণ ফাইলগুলো হার্ড ড্রাইভে। এই কম্বিনেশন দীর্ঘস্থায়ী হবে এবং এসএসডি এর ফাস্ট রেসপন্সের সুবিধা পাওয়া যাবে ও খরচও তুলনামূলক কম হবে।
সোর্সঃ
১. পিসি বিল্ডারস বাংলাদেশের ভিডিয়ো বেশ ভালো এক্ষেত্রে-
২. http://www.qdpma.com/Storage/SSD.html
৩.৪.
https://en.m.wikipedia.org/wiki/Solid-state_drive
৫.https://www.extremetech.com/extreme/210492-extremetech-explains-how-do-ssds-work
৬.https://www.google.com/amp/s/www.businessinsider.com/what-is-ssd%3fam.?amp
রওনক শাহরিয়ার,