একজন ডিএমএ নিয়ন্ত্রণকারী কীভাবে কাজ করে?


14

অ্যান্ড্রু এস টেনেনবাউম, হার্বার্ট বোস, 2014 দ্বারা অ্যান্ড্রু এস টানেনবাউম দ্বারা বিভাগ 5.1.4 থেকে আধুনিক মেমরি অ্যাক্সেসের মধ্যে সরাসরি মেমরি অ্যাক্সেস ,

ব্যাখ্যাটি সহজ করার জন্য, আমরা ধরে নিয়েছি যে সিপিইউ একটি সিঙ্গল সিস্টেম বাসের মাধ্যমে সমস্ত ডিভাইস এবং মেমরি অ্যাক্সেস করে যা চিত্র 5-5-তে দেখানো হয়েছে, সিপিইউ, মেমরি এবং I / O ডিভাইসগুলিকে সংযুক্ত করে।

এখানে চিত্র বর্ণনা লিখুন

  1. ডিএমএ কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য, আসুন প্রথমে ডিএমএ ব্যবহার না করা হলে ডিস্ক রিড হয় কী তা দেখা যাক।

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

    প্রশ্ন: দ্বিতীয় ধাপে,

    • ডেটা " নিয়ন্ত্রকের বাফার থেকে " মূল স্মৃতিতে স্থানান্তরিত হয় না ? কেন এটি " নিয়ন্ত্রকের বাফার থেকে " এবং " একটি নিয়ামক ডিভাইসের নিবন্ধ থেকে " উভয়ই বলে ?

    • দ্বিতীয় ধাপে, সিপিইউতে বাধা না দিয়ে এবং আবার ওএসকে জড়িত না করে নিয়ন্ত্রক তার বাফার থেকে মূল স্মৃতিতে ডেটা স্থানান্তর করতে পারে?

  2. যখন ডিএমএ ব্যবহার করা হয়, তখন পদ্ধতিটি আলাদা।

    • প্রথমে সিপিইউ তার রেজিস্টারগুলি সেট করে ডিএমএ নিয়ামককে প্রোগ্রাম করে যাতে কোথায় স্থানান্তর করতে হয় তা জানতে পারে (চিত্রের 5 ম পদক্ষেপ 1)।
      এটি ডিস্ক নিয়ন্ত্রকের কাছে একটি আদেশও জারি করে যাতে এটির অভ্যন্তরীণ বাফারটিতে ডিস্ক থেকে ডেটা পড়তে এবং চেকসামটি যাচাই করতে বলে।
    • বৈধ ডেটা যখন ডিস্ক নিয়ন্ত্রকের বাফারে থাকে তখন ডিএমএ শুরু হতে পারে। ডিএমএ কন্ট্রোলার ডিস্ক নিয়ন্ত্রণকারীকে (বাসায় 2) বাসে একটি রিড অনুরোধ জারি করে স্থানান্তর শুরু করে । এই পঠন অনুরোধটি অন্য যে কোনও পড়ার অনুরোধ হিসাবে দেখায় এবং ডিস্ক নিয়ামক জানেন না (বা যত্ন করে) এটি সিপিইউ থেকে এসেছে বা কোনও ডিএমএ নিয়ামক থেকে এসেছে কিনা। সাধারণত, লিখতে হবে এমন মেমরি ঠিকানা বাসের ঠিকানা লাইনে থাকে, সুতরাং ডিস্ক নিয়ন্ত্রক যখন তার অভ্যন্তরীণ বাফার থেকে পরবর্তী শব্দটি আনবে তখন এটি কোথায় লিখতে হবে তা জানে। মেমোরিতে লেখাটি হ'ল আরেকটি স্ট্যান্ডার্ড বাস চক্র (পদক্ষেপ 3)।
    • লেখাটি সম্পূর্ণ হয়ে গেলে, ডিস্ক নিয়ন্ত্রণকারী ডিএমএ নিয়ামককে, বাসের (ধাপে 4) উপরে একটি স্বীকৃতি সংকেত প্রেরণ করে। ডিএমএ নিয়ামক তারপরে ব্যবহারের জন্য মেমরি ঠিকানাটিকে বাড়িয়ে তোলে এবং বাইট গণনা হ্রাস করে। যদি বাইট গণনাটি এখনও 0 এর চেয়ে বেশি হয়, 2 থেকে 4 পদক্ষেপগুলি গণনা 0 না হওয়া অবধি পুনরাবৃত্তি হবে।
    • সেই সময়, ডিএমএ নিয়ন্ত্রক সিপিইউকে বাধা দেয় যাতে এটি স্থানান্তর এখন সম্পূর্ণ হয়ে যায় complete যখন অপারেটিং সিস্টেম শুরু হয়, তখন এটিতে ডিস্ক ব্লকটিকে মেমোরিতে অনুলিপি করতে হবে না; এটি ইতিমধ্যে আছে।

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

  3. কোনও ডিভাইসের একটি ডিভাইস নিয়ামক ডিভাইসটি নিয়ন্ত্রণ করে এবং ডিভাইসে অপারেশন করে। কোন ডিএমএ নিয়ন্ত্রণকারী এবং ডিভাইসগুলি পরিচালনা করে?

ধন্যবাদ!


দেখে মনে হচ্ছে আপনার বোঝাপড়াটি বাস মাস্টারিংয়ের উপর ভিত্তি করে, যা আমার ধারণা that পাঠ্যপুস্তকে বর্ণিত ডিএমএ ধারণার চেয়ে বেশি আধুনিক। পাঠ্যপুস্তকের ডিএমএ ধারণাটি আরও আদিম।
রবিং

বইটি যে সরলিকৃত মডেলের ব্যবহার করে তার জন্য আমি চিত্রটি যুক্ত করেছি।
টিম

চিত্রের 3 তীরটি পাঠ্যের বর্ণনার সাথে মেলে না বলে মনে হচ্ছে ... অভিনন্দন। কোনটি সঠিক তা নির্ধারণ করতে, পদক্ষেপ 3 এর জন্য বাসের সময়কালীন চিত্রটি প্রয়োজন হবে। আরও গুরুত্বপূর্ণভাবে, একটি ডিভাইসটি ধাপে ধাপে ধরে রাখার জন্য কোন ডিভাইসটি দায়বদ্ধ তা খুঁজে বের করতে হবে control ডিস্ক নিয়ামকটি কি প্রথমে ডিএমএ নিয়ন্ত্রণকারীকে ডেটা প্রেরণ করে এবং তারপরে ডিএমএ নিয়ামক তথ্যটি পুনরাবৃত্তি করে (বাসে তার নিজস্ব ভোল্টেজ রেখে) ) স্মৃতি?
রওয়ং

চতুর্থ ধাপে "অ্যাক" সন্দেহজনক। ডিএমএ কি অনুলিপি করতে হবে বাইট সংখ্যাটি ইতিমধ্যে জানেন না?
রওয়ং

কীভাবে স্পষ্ট করবেন তা নিশ্চিত নন। ওএস এবং আর্কিটেকচারের কোন বইগুলি আপনি অধ্যয়ন করেছেন বা আপনি সেরা বলে মনে করেন?
টিম

উত্তর:


7

চতুর্থাংশ 1

প্রথম পদক্ষেপে, আমরা ডিএমএ ব্যবহার করছি না, সুতরাং ডিস্ক নিয়ন্ত্রকের সামগ্রীটি প্রসেসরের দ্বারা টুকরো টুকরো পড়তে হবে। প্রসেসর অবশ্যই করবে (ধরে নিই ডেটা আসলে কোনও কিছুর জন্য ব্যবহৃত হবে, এবং কেবল ফেলে দেওয়া হচ্ছে না) এটি সিস্টেমের স্মৃতিতে সঞ্চয় করে।

এক্ষেত্রে বাফার হ'ল হার্ড-ডিস্কে (ম্যানেজার) নিজেই মেমরির একটি অংশ এবং কন্ট্রোলার ডিভাইস নিজেই হার্ড-ডিস্কের (নিয়ন্ত্রণকারী) একটি নিয়ন্ত্রণ রেজিস্টার নিবন্ধ করে।

ওএস (বা অন্য কোনও সফ্টওয়্যার) জড়িত না হওয়ার জন্য কোনও ধরণের ডিএমএ ক্রিয়াকলাপের প্রয়োজন হবে এবং আপনার প্রশ্নের এই অংশে আপনি যে পাঠ্যের অংশটি নিয়ে আলোচনা করছেন তা ডিএমএ ব্যবহার করছে না। সুতরাং, না, এই ক্ষেত্রে এটির মতো হবে না।

Q2 এর

সুতরাং, ডিএমএ নিয়ামকের পুরো বিষয়টি হ'ল ডিভাইসের অভ্যন্তরীণ বাফার থেকে জিনিসটিকে প্রধান স্মৃতিতে সংরক্ষণ করার ক্লান্তিকর কাজ সম্পাদন করা "। সিপিইউ উভয়ই ডিএমএ নিয়ামক এবং ডিস্ক ডিভাইস নিয়ে কাজ করবে। যদি ডিস্কটি নিজে এটি করতে পারে তবে ডিএমএ নিয়ামকের প্রয়োজন হবে না।

এবং প্রকৃতপক্ষে, আধুনিক সিস্টেমের মধ্যে,, DMA সামর্থ্য সাধারণত হার্ড-ডিস্ক নিয়ামক প্রবেশ করেছেন, এই অর্থে যে নিয়ামক "বাস নিয়ন্ত্রণ" ক্ষমতা, যার মানে যে নিয়ামক নিজেই হয়েছে সালে নির্মিত হয় IS ডিভাইস জন্য DMA নিয়ামক। তবে এগুলিকে দুটি পৃথক ডিভাইস হিসাবে দেখার জন্য ডিএমএর পুরো ধারণাটি বোঝা একটু কম হয়ে যায়।

Q3 (ধরণের)

যদি আপনি হার্ডডিস্কটিকে ইটের স্ট্যাক হিসাবে সবেমাত্র একটি বিল্ডিং সাইটে সরবরাহ করা হিসাবে মনে করেন, এবং প্রসেসরটি হ'ল ইটভাটা যা ঘর তৈরির জন্য ইট দেয়। ডিএমএ কন্ট্রোলার হলেন সেই শ্রমিক যা ইটভাটা থেকে শুরু করে ইটভাটার জন্য প্রয়োজনীয় যেখানে ইটভাটা ইট লাগানোর প্রকৃত কাজটি করতে মনোনিবেশ করতে পারে (যা দক্ষ কাজ, যদি আপনি কখনও চেষ্টা করে থাকেন তবে নিজেই), এবং "আনুন এবং বহন করুন" এর সহজ কাজটি কম দক্ষ শ্রমিক দ্বারা করা যেতে পারে।

অজানা প্রমাণ: আমি যখন প্রথম ডিস্ক থেকে মেমরিতে ডিএমএ স্থানান্তর সম্পর্কে জানতে পেরেছিলাম ১৯৯ 1997 বা তখন আইডিই কন্ট্রোলাররা যখন ডিএমএ ব্যবহার শুরু করেছিলেন এবং আপনাকে আইডিই ডিএমএ করার অনুমতি দেওয়ার জন্য একটি "মাদারবোর্ড আইডিই কন্ট্রোলার" ড্রাইভার পাওয়া দরকার ছিল এবং সেই সময় হার্ড-ডিস্ক থেকে পড়াতে সিপিইউ সময়ের প্রায় 6-10% সময় লাগবে, যেখানে একই সেটআপের ডিএমএ সিপিইউ সময়ের প্রায় 1% সময় ব্যবহার করবে। সেই সময়ের আগে, কেবলমাত্র এসসিএসআই ডিস্ক নিয়ন্ত্রক সহ অভিনব সিস্টেমগুলি ডিএমএ ব্যবহার করবে।


5

এটি কোনও উত্তর নয়; এটি স্পষ্ট করার জন্য একটি অনুরোধ যা মন্তব্যে ফিট করার জন্য খুব দীর্ঘ।

এই প্রশ্নের যে কেউ উত্তর দেওয়ার আগে, আপনাকে অবশ্যই কম্পিউটার সিস্টেমের আর্কিটেকচারটি পরিষ্কারভাবে ব্যাখ্যা করতে হবে যা নিয়ে আলোচনা করা হচ্ছে। যথা:

  • এই বর্ণনায় জড়িত বাস সিস্টেমগুলি কী কী?

    • বেশিরভাগ কম্পিউটার সিস্টেমে একটি মেমোরি বাস রয়েছে।
    • বেশিরভাগ কম্পিউটারে অন্যান্য ধরণের বাস সিস্টেম রয়েছে।
  • ডিস্ক আইও কি মেমোরি বাসের মধ্য দিয়ে যায়?

    • অন্য কথায়, ডিস্ক ঠিকানাগুলির জন্য ঠিকানা বাস লাইন এবং ডেটার জন্য ডেটা বাস লাইন ব্যবহার করে?
  • ডিস্ক নিয়ামক কি মেমোরি বাসটিকে এই হিসাবে দেখেন ...

    • একটি স্মৃতি বাস? অর্থাৎ এটি মনে করে যে এটি কোনও মেমরি চিপের সাথে কথা বলছে; যেমন আরএএস (সারি অ্যাক্সেস স্ট্রোব), সিএএস (কলাম অ্যাক্সেস স্ট্রোব), ...
    • খুব অসম্ভাব্য - মেমরি চিপের সাথে কথা বলার জন্য ডিআরএএম টাইমিং (লেটেন্সি) অনুসারে কমান্ড জারি করা সম্পর্কে অতি-সুনির্দিষ্ট হওয়া দরকার - খুব ঘড়ি চক্র খুব তাড়াতাড়ি বা খুব দেরিতে, ডেটা ক্ষতিগ্রস্থ হবে।
  • সুতরাং ... ডিস্ক কন্ট্রোলার কি মনে করে বাস "আসলে"?

  • বেশিরভাগ কম্পিউটার সিস্টেমে "Port I / O" নামে এক ধরণের আইও থাকে।

    • পোর্ট I / O হয় মেমরি বাসে পিগিগ্যাক করতে পারে, অথবা তাদের আরও একটি ডেডিকেটেড বাস থাকতে পারে।
    • পোর্ট আই / ও এর স্বতন্ত্র বৈশিষ্ট্যটি হ'ল যে কোনও ব্যক্তি একক (বা একটি পূর্বনির্ধারিত ধ্রুব সংখ্যার) বাস চক্রে জিনিসগুলি শেষ করতে পারে - ডিআরএএম সময়গুলির বিপদগুলি নিয়ে চিন্তার দরকার নেই।
  • আরও উন্নত (ভাল, দুই দশক আগে থেকে) সিস্টেমগুলিতে, নতুন ধরণের বাস সিস্টেম রয়েছে। উদাহরণস্বরূপ, আইএসএ, পিসিআই, এজিপি, পিসিএমসিআইএ ... এসসিএসআই, এটিএ, এসএএস, সাটা, এফসি-আল ...


এখন "আলোচিত কম্পিউটার সিস্টেম" সম্পর্কে অনেক অনিশ্চয়তা উত্থাপিত হওয়ার সাথে সাথে আপনি কেন বুঝতে পারবেন যে আপনি কেন আপনার প্রশ্নের সুস্পষ্ট উত্তর পাবেন না।

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


একেবারে নীচের লাইনে:

  • একটি ডিএমএ একটি প্রোগ্রামেবল ডিভাইস। অর্থাৎ সিপিইউ চূড়ান্ত দায়িত্ব আছে কহন , DMA কি করতে হবে তা। অবশ্যই, সময় স্লটের সময় যেখানে ডিএমএ সিস্টেমটি গ্রহণ করে, সিপিইউ ডিএমএ শোটি চালিয়ে দিয়ে সহযোগিতা করবে।

  • সিপিইউর নিয়ন্ত্রণে (এবং ওএস যা এটি চালায়) এর অধীনে কোনও ডিএমএর নিয়ন্ত্রণ গ্রহণের ক্ষমতা থাকে ডিস্ক নিয়ামক থেকে মূল স্মৃতিতে ডেটা স্থানান্তর করার সুবিধার্থে এক বা একাধিক বাসের বহুবচন (বহুবচন)

  • সময়সীমার সময় যেখানে ডিএমএ বাসটি বহন করে (বহুবচন), সেখানে ডিএমএ bus বাসের উপর কমান্ড জারি করবে - অর্থাত্ তার সাধারণ নিয়ামকের জায়গায়, অর্থাৎ ডিএমএ ভান করে যে এটি সিপিইউয়ের কাজ করছে।

  • যদি ডেটা স্থানান্তর দুটি পৃথক বাস জড়িত, ডিএমএ বিভিন্ন বাসে এটি করতে পারে।

  • বেশ কয়েকটি বাইট (শব্দ ইত্যাদি) সরাতে সক্ষম হতে, ডিএমএতে অনুলিপি থাকা বাকী পরিমাণের ডেটা ট্র্যাক করার জন্য একটি লুপ কাউন্টার রয়েছে।

  • মূল মেমোরিতে লিখতে সক্ষম হতে, ডিএমএতে একটি মেমরি ঠিকানা নিবন্ধ থাকে, যা সিপিইউ দ্বারা প্রোগ্রামযোগ্য, যাতে সিপিইউ ডিএমএকে ডেটা কোথায় লিখতে পারে তা বলতে পারে।

  • সিস্টেমের বাসের নকশার উপর নির্ভর করে ডিএমএর সাথে ডিআরএএম সময়চক্রের ভয়াবহ বিবরণ মোকাবেলা করতে হতে পারে বা নাও হতে পারে।

  • একসময়, ডিএমএ আবিষ্কার হওয়ার কিছু পরে, কিছু পেরিফেরাল ডিভাইসগুলি তাদের নিয়ন্ত্রণকারীদের ডিএমএকে প্রাক-প্যাকেজ করতে শুরু করে - এটিকে বলা হয় বাস মাস্টারিং । তবুও, ডিএমএ সিপিইউ প্যাকেজ, মাদারবোর্ড, বা আই / ও কার্ডে বসে কিনা, এটি অবশ্যই শেষ পর্যন্ত সিপিইউয়ের নিয়ন্ত্রণে (প্রোগ্রামিং) থাকা আবশ্যক, কারণ তাদের অবশ্যই কোনওরকম সিস্টেম বাসে প্রবেশের জন্য আলোচনা করতে হবে (বহুবচন), এবং মূল স্মৃতি।

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


যদি আপনি এটি খুব বিভ্রান্তিকর মনে করেন - তবে আমি এটিও বিভ্রান্তিকর মনে করি - আপনার ডায়াগ্রামের প্রয়োজন হবে। প্রচুর ডায়াগ্রাম। সিস্টেম ডায়াগ্রাম। বাস চিত্র। সময় ডায়াগ্রাম। রাজ্যের রূপান্তর চিত্র প্রভৃতি


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.