ডেটা (Data) :
সংরক্ষণের জন্য কম্পিউটার বা আইসিটি ডিভাইসে ব্যবহৃত মাধ্যম বা ধারককে মেমোরি বা স্মৃতি বলে। প্রক্রিয়াকরণের সুবিধার জন্য মেমোরিতে ডেটা জমা রাখা যায় এবং প্রয়োজনে তা সহজে কাজে লাগানো যায়। কম্পিউটার মেমোরি নিয়ে আলোচনা করতে হলে প্রথমে কয়েকটি বিষয় জানতে হবে। সেগুলো নিম্নরূপ—
• মেমোরি সেল (Memory cell) : মেমোরির প্রতিটি সুনির্দিষ্ট স্থানকে মেমোরি সেল বলে। মেমোরি সেলে একটি করে বিট (0 বা 1) সংরক্ষণ করা যায় ।
• মেমোরি অ্যাড্রেস (Memory address) : ডেটা রাখা জন্য মেমোরিতে অনেকগুলো সুনির্দিষ্ট স্থান থাকে। স্থানগুলো শনাক্ত করার জন্য প্রয়োজনীয় ব্যবস্থাও থাকে, এই ব্যবস্থাকে মেমোরি অ্যাড্রেস বলে।
• উদ্বায়ী বা অস্থায়ী (Volatile) মেমোরি : তড়িৎ প্রবাহ বন্ধ হলে যে মেমোরি থেকে ডেটা মুছে যায় তাকে বলে উদ্বায়ী বা Volatile মেমোরি। সাময়িকভাবে উদ্বায়ী মেমোরিতে সেই সব ডেটা বা নির্দেশ রাখা হয়। যেমন— ফ্লিপ ফ্লপের মেমোরি উদ্বায়ী মেমোরি।
• অনুদ্বায়ী বা স্থায়ী (Non-Volatile) মেমোরি : বিদ্যুৎ সরবরাহ বন্ধ হলেও যে মেমোরি থেকে ডেটা মুছে যায় না তাকে অনুদ্বায়ী বা স্থায়ী (Permanent) মেমোরি বলে। চৌম্বক টাইপের মেমোরি স্থায়ী মেমোরি।
• পরিবর্তনযোগ্য (Erasable) মেমোরি : যে মেমোরিকে পরিবর্তন করা যায় অর্থাৎ পূর্বের ডেটা মুছে সেখানে নতুন কিছু লেখা যায় তাকে পরিবর্তনযোগ্য মেমোরি বলে। যেমন— বিভিন্ন হার্ডডিস্ক (Hard Disk), ফ্লপি ডিস্ক (Floppy disk) ইত্যাদি ।
• অপরিবর্তনীয় (Non-erasable) মেমোরি : যে মেমোরি অপরিবর্তনীয় অর্থাৎ যে মেমোরি থেকে ডেটা মুছে সেখানে নতুন কিছু লেখা যায় না তাকে অপরিবর্তনীয় মেমোরি বলে। যেমন- পাঞ্চ কার্ড ও পাঞ্চ টেইপ ।
• ধ্বংসাত্মক (Destructive) মেমোরি : যে মেমোরি পাঠ করার সঙ্গে সঙ্গে মুছে যায় (কারণ পাঠ করার পর প্রতি বিটেই থাকে () তাকে ধ্বংসাত্মক মেমোরি বলে। যেমন- চৌম্বক কোরো মেমোরি। এক্ষেত্রে যা পাঠ করা হয় তাকে আগে একটি বিশেষ রেজিস্টারে রাখা হয়, পাঠ শেষ হওয়ার পরে তাকে আবার পূর্বের অবস্থানে রাখা যায়।
• অধ্বংসাত্মক (Non-Destructive ) মেমোরি : পাঠ করলেও যে মেমোরি মুছে যায় না তাকে অধ্বংসাত্মক মেমোরি বলে। যেমন- চৌম্বক টেইপ বা পাঞ্চ টেইপ।
• অ্যাকসেস (Access): অ্যাকসেস বলতে বোঝায় ALU (Arithmatic Logic Unit) বা কন্ট্রোল এককের পক্ষে কোনো ডেটা পাঠ বা লেখার জন্য মেমোরির সঙ্গে অ্যাকসেস করা। অ্যাকসেস প্রধানত চার ধরনের। যথা-
১. র্যানডম (Random) অ্যাকসেস : যদি কোনো মেমোরির বিট বা শব্দকে একবারই অ্যাকসেস করা যায় তবে তাকে র্যানডম অ্যাকসেস বলে। এক্ষেত্রে কোনো অবস্থানের বিটকে অ্যাকসেস করতে হলে তার আগের অবস্থানের বিট অ্যাকসেস করা দরকার হয় না। সুতরাং সব বিটেরই অ্যাকসেস সময় সমান । উদাহরণস্বরূপ : সেমিকন্ডাক্টর মেমোরির অ্যাকসেস র্যানডম অ্যাকসেস।
২. সিরিয়াল সিকোয়েন্সিয়াল (Sequential) অ্যাকসেস : যদি প্রথম অবস্থান থেকে শুরু করে বিটগুলোকে পরপর অ্যাকসেস করতে হয় তাহলে তাকে সিরিয়াল বা সিকোয়েন্সিয়াল অ্যাকসেস বলে। এক্ষেত্রে যে বিটের অবস্থান যত পরে তার অ্যাকসেস সময় তত বেশি। এটা একটি ধীরগতি ব্যবস্থা। যেমন— চৌম্বক টেইপ।
৩. প্রত্যক্ষ (Direct) অ্যাকসেস : এখানে অনেকটা র্যানডম অ্যাকসেসের মতো যেকোনো অবস্থানের শব্দ পড়া যায়, তবে তার আগে কিছু সময় অপেক্ষা করতে হয়। যেমন- হার্ডডিস্ক বা ফ্লপিতে বিভিন্ন বৃত্তীয় ট্র্যাকে ডেটা সঞ্চিত থাকে। কোন ট্র্যাকের ডেটা পড়তে বা লিখতে হলে তার আগের ট্র্যাকের ডেটা পড়তে হয় না, তবে Read- Write হেডকে সঠিক ট্র্যাকে নিয়ে যেতে হয়। তারপর এই ট্র্যাকের প্রথম অবস্থান থেকে ডেটা পড়া শুরু করে সঠিক অবস্থানে যেতে হয়। একে বলে প্রত্যক্ষ অ্যাকসেস, এক্ষেত্রে র্যানডম অ্যাকসেসের চেয়ে বেশি কিন্তু সিরিয়াল অ্যাকসেসের চেয়ে কম সময় লাগে।
৪. বৃত্তীয় (Cyclic) অ্যাকসেস : এক্ষেত্রে বিটগুলো বৃত্তাকার সাজানো ও ঘূর্ণায়মান থাকে। যখন কোনো বিট একটি রিড/রাইট হেডের নিচ দিয়ে যায় তখন সেই বিট পড়া বা লেখা যায়। সুতরাং কোনো বিটের অ্যাকসেস সময় সেই মুহূর্তে বিটটি রিড/রাইট হেডের কত দূরে আছে তার উপর নির্ভর করে। যেমন চৌম্বক ড্রাম (Magnetic Drum)। এটি একটি ধীরগতি ব্যবস্থা, যদিও সিরিয়াল সিকোয়েন্সিয়াল অ্যাকসেসের চেয়ে দ্রুত গতিসম্পন্ন।
• চক্র সময় (Cycle time) : প্রধান মেমোরিতে পরপর দুই বার Read/Write নির্দেশ দেওয়ার মধ্যে যে সর্বনিম্ন সময়ের ব্যবধান থাকা প্রয়োজন তাকে চক্র সময় বলে। অধ্বংসাত্মক মেমোরির ক্ষেত্রে অ্যাকসেস সময় ও চক্র সময় একই কিন্তু ধ্বংসাত্মক মেমোরির ক্ষেত্রে ডেটা পুনরায় লিখতে কিছু সময় লাগে যাকে রেস্টোরেশন (Restoration) সময় বলে। সুতরাং এক্ষেত্রে অ্যাকসেস সময় ও রেস্টোরেশন সময়ের যোগফলই হলো চক্র সময়।
• সিক টাইম (Seek time): চৌম্বক ডিস্কের ক্ষেত্রে রিড-রাইট (Read- Write) হেডকে সঠিক ট্র্যাকে নিয়ে যেতে যে সময় লাগে তাকে সিক টাইম বলে। এর গড় মান ৩০ মিলিসেকেন্ডের কম ।
• ল্যাটেন্সি টাইম (Latency time ) : রিড-রাইট (Read/Write) হেডকে সঠিক ট্র্যাকে নিয়ে যাওয়ার পরে উপযুক্ত শব্দ তার নিচে আসতে যে সময় লাগে তাকে ল্যাটেন্সি সময় বলে। সুতরাং সিক ও ল্যাটেন্সি সময় যোগ করলে অ্যাকসেস সময় পাওয়া যায়। চৌম্বক ডিস্কের একবার পূর্ণ আবর্তনে যে সময় লাগে তার অর্ধেক সময় হলো গড় ল্যাটেন্সি সময় ।
• ডেটা ট্রান্সফার হার (Data transfer rate): প্রতি সেকেন্ডে যতগুলো বিট বা বাইট এক ডিভাইস থেকে অন্য ডিভাইসে স্থানান্তর করা যায় তাকে ডেটা ট্রান্সফার হার বলে। যেমন 4MB/sec ডেটা ট্রান্সফার হার মানে হলো প্রতি সেকেন্ডে 4 মেগাবাইট ডেটা স্থানান্তর করা।
মেমোরির শ্রেণিবিভাগ ছকের সাহায্যে নিচে দেওয়া হলো-
প্রধান মেমোরি (Main Memory )
যে মেমোরির সঙ্গে প্রসেসরের অন্তর্গত অ্যারিথম্যাটিক লজিক ইউনিট (ALU) এর প্রত্যক্ষ অ্যাকসেস থাকে তাকে প্রধান মেমোরি বলে। বর্তমানে কম্পিউটারের মেমোরি বলতে এই প্রধান মেমোরিকেই বোঝানো হয়। দ্রুতগতিতে হিসাব করতে সক্ষম ALU এর সঙ্গে প্রত্যক্ষ অ্যাকসেস থাকায় প্রধান মেমোরিকেও দ্রুত গতিসম্পন্ন হতে হয়। ফলে প্রধান মেমোরির বিট খরচ বেশি হয়। তথ্য প্রক্রিয়াকরণের সময় যে সেব ডেটা ও নির্দেশ সবসময় প্রয়োজন তাদের এই মেমোরিতে সাময়িকভাবে রাখা হয়। এছাড়া ALU যখন হিসাব করে তার জন্য প্রয়োজনীয় ডেটা ও নির্দেশ, সেকেন্ডারী স্টোরেজ থেকে এনে সাময়িকভাবে এই মেমোরিতে রাখা হয়। হিসাব শেষ হওয়ার পর তাদের আবার সেকেন্ডারী স্টোরেজে সংরক্ষণ করা হয়। প্রধান মেমোরির অ্যাকসেস সময় সাধারণত ন্যানোসেকেন্ড (Nanosecond) বা তার চেয়েও কম সময়।
প্রধান মেমোরির প্রকারভেদ
কম্পিউটারে ব্যবহারের জন্য বিভিন্ন ধরনের প্রধান বা প্রাথমিক মেমোরির তৈরি হয়েছে। নিম্নে সবচেয়ে বেশি ব্যবহৃত কয়েকটি প্রধান মেমোরির নাম দেয়া হলো-
1. চৌম্বক কোর (Magnetic Core) মেমোরি
2. পাতলা পর্দা (Thin Film) মেমোরি
3. অর্থ পরিবাহী (Semiconductor) মেমোরি
4. চৌম্বক বাবল (Magnetic Bubble) মেমোরি
5. চার্জ কাপলড (Charge Coupled) মেমোরি
এছাড়াও কয়েকটি নতুন প্রাথমিক মেমোরির উদাহরণ ক্রাইওজেনিক (Cryogenic) মেমোরি, আলোর মেমোরি, সারফেস এ্যাকোস্টিক (Surface Acoustic) মেমোরি।
সহায়ক মেমোরি (Auxiliary Memory)
যে মেমোরিতে বিভিন্ন তথ্য, নির্দেশাবলি, অডিও/ভিডিও, ইমেজ স্থায়ীভাবে সংরক্ষণ করা যায় তাকে সহায়ক মেমোরি বলে। এ ধরনের মেমোরির কেন্দ্রীয় প্রক্রিয়াকরণ অংশের (CPU) সঙ্গে সরাসরি সংযোগ থাকে না বিধায় ধীরগতি সম্পন্ন হয়। এতে বিপুল পরিমাণ তথ্য বা প্রোগ্রাম সংরক্ষণ করা যায়। বিদ্যুৎ চলে গেলে বা কম্পিউটার বন্ধ করলেও তথ্য বা প্রোগ্রাম হারিয়ে বা মুছে যায় না।
ক্যাশ মেমোরি (Cache Memory )
কম্পিউটারে কাজের গতি বৃদ্ধি করার জন্য প্রসেসর ও প্রধান মেমোরির মধ্যবর্তী স্থানে স্থাপিত বিশেষ ধরনের মেমোরিকে ক্যাশ মেমোরি (Cache Memory) বলে। এর সংযোগ সময় খুব কম এবং এক ধরনের ধরনের Static মেমোরি। কোনো প্রোগ্রাম নির্বাহের সময় যে সমস্ত উপাত্ত খুব অল্প সময়ের ব্যবধানে বারবার প্রয়োজন হয় সেসব উপাত্ত ক্যাশ মেমোরিতে রক্ষিত হয়। এই মেমোরি নিয়ন্ত্রণের জন্য অতিরিক্ত ইলেকট্রনিক বর্তনী প্রয়োজন হয়। কার্যকারিতার উপর ভিত্তি করে ক্যাশ মেমোরিকে দু'ভাগে ভাগ করা যায়। যথা-
১. অভ্যন্তরীণ বা ইন্টারনাল ক্যাশ মেমোরি (Internal Cache Memory )
২. বহিঃস্থ বা এক্সটার্নাল ক্যাশ মেমোরি (External Cache Memory )
অভ্যন্তরীণ ক্যাশ মেমোরি (Internal Cache Memory ) : মাইক্রোপ্রসেসরের অভ্যন্তরে অবস্থান করে যে ক্যাশ মেমোরি কাজ করে সেটিকে অভ্যন্তরীণ ক্যাশ মেমোরি বলে।
বহিঃস্থ ক্যাশ মেমোরি (External Cache Memory) : যে মেমোরি কম্পিউটারের মাদারবোর্ডের উপর একীভূত বর্তনী (IC-Integrated Circuit) হিসেবে কাজ করে সেগুলোকে বহিঃস্থ ক্যাশ মেমোরি বলে। এছাড়া আরো কিছু ক্যাশ মেমোরি আছে। যেমন-
১. ক্লায়েন্ট/সার্ভার ক্যাশ (Client/Server Cache
২. ডিস্ক ক্যাশ (Disk Cache )
৩. রিমোট ক্যাশ (Remote Cache)
৪. ইন্টারমিডিয়েট ক্যাশ (Intermediate Cache)
৫. ওয়েভ সার্ভার/প্রস্কি সার্ভার ক্যাশ (Web Server/Proxy Server Cache)
৬. ডিস্ট্রিবিউটেড ডাইরেক্টরি ক্যাশিং (Distributed Directory Caching) ইত্যাদি।
ক্যাশ মেমোরির সুবিধাসমূহ
• ক্যাশ মেমোরির অ্যাকসেস টাইম প্রধান মেমোরির অ্যাকসেস টাইমের এক সপ্তমাংশ ।
• ক্যাশ মেমোরির অ্যাকসেস টাইম কম।
• ক্যাশ মেমোরি দ্রুতগতি সম্পন্ন ।
• ক্যাশ মেমোরি কম্পিউটারকে দ্রুতগতি সম্পন্ন করে তোলে।
আধুনিক কম্পিউটারের প্রাণ হলো সেন্ট্রাল প্রসেসিং ইউনিট। সেন্ট্রাল প্রসেসিং ইউনিটের হৃৎপিন্ড হলো প্রসেসর। প্রসেসরকে খুব দ্রুত কাজ করতে সাহায্য করে ক্যাশ মেমোরি। ক্যাশ মেমোরিও প্রসেসরের খুব কাছে অবস্থান করে, তারপর র্যাম। কম্পিউটারের কেন্দ্রিয় প্রক্রিয়াকরণ অংশকে কাজ করার জন্য অনেকগুলো প্রসেস সম্পূর্ণ করতে হয়। বিশেষ করে কাজ করার সময় প্রসেসর প্রোগ্রামের অনেক ডেটা বারবার Read/Write করতে থাকে । তখন এই অবস্থায় প্রোগ্রামে বারবার ব্যবহার হওয়া ডেটাগুলো ক্যাশ মেমোরি সংরক্ষণ করে রাখে। যখনই প্রসেসরে কোনো নির্দেশ (command) দেওয়া হয়, তখনই প্রসেসর প্রথমে র্যাম (RAM) থেকে ডেটা না নিয়ে ক্যাশ মেমোরির কাছে সেই ডেটা বা কমান্ড খোঁজার চেষ্টা করে। ক্যাশ মেমোরির কাছে যদি সে কাঙ্ক্ষিত ডেটাগুলো পেয়ে যায়, তবে প্রসেসরের কাজ করার প্রসেস অনেক বেশি গতিশীল হয়ে যায়। এ কারণে প্রসেসরে কাজের গতি বৃদ্ধির জন্য ক্যাশ মেমোরি অনেক গুরুত্বপূর্ণ।
আরও দেখুন...