Home » COMPUTER » Direct memory access (DMA)

Direct memory access (DMA)

DMA বা “Direct Memory Access” হল data transferring method , এই method এর মাধ্যমে CPU এর প্রয়োজনীয়তা ছাড়াই RAM এবং কম্পিউটার এর অন্যান্য অংশের মধ্যে data transfer হয়।

কম্পিউটার এর প্রায় সব input বা output কে CPU process করে, কিন্তু অধিকাংশ ক্ষেত্র তার দরকার থাকে না বা এই data কম্পিউটার এর অন্য অংশে process হবে। এই সমস্ত ক্ষেত্রে DMA এর সাহায্যে processing time কমানো হয় এবং এর ফলে কম্পিউটার এক অংশ থেকে অন্য অংশে data, efficient ভাবে চলাচল করতে পারে।

তবে কম্পিউটার এর কোন device কে যদি direct memory access এর সুবিধা পেতে হয় তবে সেটি অবশ্যই DMA channel এ assigned থাকতে হবে।

কম্পিউটার এর সব ধরনের port এ কিছু DMA channel থাকে যার সাথে বিভিন্ন device কে assign করা যায়। যেমন PCI controller এবং hard drive controller দুটিরই নিজস্ব DMA channel আছে।

DMA Controller কি?

DMA controller হল hardware device যার সাহায্যে direct memory access সংগঠিত হয়। এটি একটি control unit যা I/O device’s interface circuit এর অংশ, এটি CPUএর কোন রকম হস্তক্ষেপ ছাড়াই main memory এবং I/O device গুলির মধ্যে data block পাঠাতে সক্ষম।

DMA Controller এর কাজ করার পদ্ধতি

DMA controller bus এবং input-output device এর মধ্যে interface এর মত কাজ করে। যদিও CPUএর কোন রকম হস্তক্ষেপ ছাড়াই data transfer করে কিন্তু এটি কে controll করে processor। processor , DMA controller কে data transfer শুরু করার অনুমতি দেয়।

DMA controller এর মধ্যে থাকা address unit, transfer এর addresses generate করে এবং I/O device select করে। এবং এর control unit, transfer হওয়া data block এর হিসেব রাখে এবং transfer এর দিক নির্দেশ করে।

DMA controller, data transfer এর জন্য processor এর সাথে bus share করে। কোন নির্দিষ্ট সময়ে যে device bus ব্যবহার করে তাকে bus master বলা হয়। যখন কোন data transfer প্রয়োজন হয় তখন processor অন্যান্য program execution বন্ধ করে দেয় এবং DMA controller কে address bus ব্যবহার করে transfer এর অনুমতি দেয়। DMA controller bus এর control পাওয়ার পর processor থেকে পাওয়া instruction অনুযায়ী memory এবং I/O device গুলির মধ্যে data transfer সম্পন্ন করে।

DMA controller এর কাজ সম্পন্ন হয়ে গেলে processor কে bus request signal পাঠায় এবং bus grant signal এর সাহায্যে Processor পুনরায় Bus এর control নেয় ।

যদি কোন I/O device এর data transfer করার দরকার হয় তবে সেই device থেকে একটি DMA request signal DMA controllerএ যায়, এবং controller যদি অন্য কোন transfer এ বাস্ত না থাকে তবে তখন controller, processor কে bus request signal পাঠায়। processor এর কাছথেকে bus grant signal পর data transfer শুরু হয়।

DMA data transfer modes

a) Burst Mode: এই modeএ DMA সম্পূর্ণ data transfer হওয়ার পর bus কে CPU এর কাছে ছাড়ে তার আগে নয় । এবং CPU, transfer সম্পূর্ণ হওয়া পর্যন্ত অপেক্ষা করে।

b) Cycle Stealing Mode: এই modeএ, DMA প্রতি byte data transfer এর পর bus এর control , CPU কে দেয়। এবং পরতিনিওত bus control request পাঠাতে থাকে । এই modeএ CPUকে গুরুত্ব পূর্ণ কাজ করার জন্য দীর্ঘ সময় অপেখ্যা করতে হয় না।

c) Transparent Mode: এই modeএ, DMA শুধু মাত্র তখনই data transfer করে যখন CPU, bus ব্যবহার করেনা।