এটি জিজ্ঞাসা করার পরে কিছুক্ষণ হয়েছে, তবে আমি অনাথ প্রশ্নগুলি ঘৃণা করি :)
প্রথমে একটি আধুনিক x86 প্ল্যাটফর্মটিকে ওভার-সরল করুন এবং ভান করুন এতে 0x00000000 থেকে 0xFFFFFFFF এর 32-বিট ঠিকানার স্থান রয়েছে। আমরা সমস্ত বিশেষ / সংরক্ষিত অঞ্চল, টোলড (নিম্ন ব্যবহারযোগ্য ডিআরএএম এর শীর্ষস্থানীয়, ইন্টেল পার্লেন্সের শীর্ষ) গর্ত ইত্যাদি উপেক্ষা করব We আমরা এই সিস্টেমটিকে মেমরির মানচিত্র বলব ।
দ্বিতীয়ত, পিসিআই এক্সপ্রেস পিসিআই প্রসারিত করে । একটি সফ্টওয়্যার দৃষ্টিকোণ থেকে, তারা খুব, খুব অনুরূপ।
আমি আপনার তৃতীয় স্থানে যাব - কনফিগারেশন স্পেস - প্রথমে। কনফিগারেশন স্পেসের দিকে নির্দেশ করে এমন কোনও ঠিকানা সিস্টেম মেমরি মানচিত্র থেকে বরাদ্দ করা হয় । একটি পিসিআই ডিভাইসে 256 বাইট কনফিগারেশন স্পেস ছিল - এটি পিসিআই এক্সপ্রেসের জন্য 4KB পর্যন্ত বাড়ানো হয়েছে। এই 4KB স্পেসটি সিস্টেমের মেমরি মানচিত্র থেকে মেমরি ঠিকানাগুলি গ্রাস করে তবে প্রকৃত মান / বিট / সামগ্রীগুলি পেরিফেরিয়াল ডিভাইসে নিবন্ধগুলিতে সাধারণত প্রয়োগ করা হয়। উদাহরণস্বরূপ, আপনি যখন ভেন্ডর আইডি বা ডিভাইস আইডিটি পড়েন তখন লক্ষ্য পেরিফেরিয়াল ডিভাইসটি ডেটা ফেরত দেয় যদিও ব্যবহৃত মেমরি ঠিকানাটি সিস্টেমের মেমরি মানচিত্র থেকে আসে।
আপনি বলেছেন যে এগুলি "র্যামে বরাদ্দ করা হয়েছে" - সত্য নয়, আসল বিট / রাষ্ট্রীয় উপাদান পেরিফেরিয়াল ডিভাইসে রয়েছে। যাইহোক, তারা সিস্টেম মেমরি মানচিত্রে ম্যাপ করা হয়। এরপরে, আপনি জিজ্ঞাসা করেছিলেন যে এটি সমস্ত পিসিআই ডিভাইস জুড়ে নিবন্ধগুলির একটি সাধারণ সেট - হ্যাঁ এবং না। পিসিআই কনফিগারেশন স্থানটি যেভাবে কাজ করে, প্রতিটি বিভাগের শেষে একটি পয়েন্টার রয়েছে যা নির্দেশ করে যে আরও "স্টাফ" পড়তে হবে কিনা। সমস্ত পিসিআই ডিভাইসগুলি প্রয়োগ করতে হবে এবং তারপরে আরও উন্নত ডিভাইসগুলি আরও কার্যকর করতে পারে a এটি কার্যকরী অপারেশনের জন্য কতটা দরকারী, ঠিক আছে, এটি বাধ্যতামূলক এবং ভারীভাবে ব্যবহার করা হয়েছে। :)
এখন, বার্স (আপনার ঠিকানা ঠিকানা রেজিস্টার) সম্পর্কে আপনার প্রশ্ন মেমরি স্পেস এবং আই / ও স্পেসে বিভক্ত করার জন্য একটি ভাল জায়গা। কিছুটা x86 কেন্দ্রীক হওয়ায় স্পেসিফিকেশনটি টাইপ ছাড়াও একটি বার আকারের স্পেসিফিকেশনকে অনুমতি দেয়। এটি কোনও ডিভাইসকে নিয়মিত মেমরি-ম্যাপযুক্ত বার, বা আইও স্পেস বারের জন্য অনুরোধ করতে অনুমতি দেয়, যা একটি x86 মেশিনের I / O স্পেসের 4K কিছু খায়। আপনি লক্ষ্য করবেন যে পাওয়ারপিসি মেশিনে, I / O স্পেস বারগুলি মূল্যহীন।
একটি বার মূলত ডিভাইসটির হোস্টকে তার কতটা স্মৃতি প্রয়োজন এবং কী ধরণের (উপরে আলোচনা করা হয়েছে) তা জানার উপায়। আমি যদি মেমরি-ম্যাপযুক্ত স্থানের 1MB বলার জন্য জিজ্ঞাসা করি, BIOS আমাকে 0x10000000 থেকে 0x10100000 ঠিকানা নির্ধারণ করতে পারে। এটি শারীরিক র্যাম গ্রাস করছে না , কেবল জায়গার ঠিকানা দেবে (আপনি কি এখন দেখতে পাচ্ছেন যে 32-বিট সিস্টেমগুলি উচ্চ-প্রান্তের জিপিইউ যেমন জিবি র্যামের মতো এক্সপেনশন কার্ডগুলি কেন ইস্যুতে চালিত হয়?)। এখন 0x10000004 বলতে একটি মেমরি রাইটিং / পিসিআই এক্সপ্রেস ডিভাইসে প্রেরণ করা হবে এবং এটি বাইট-ওয়াইড রেজিস্টার হতে পারে যা এলইডিতে সংযুক্ত থাকে। সুতরাং আমি যদি দৈহিক মেমরি 0x10000004 এ 0xFF লিখি তবে এটি 8 টি LED চালিত হবে। এটি মেমরি-ম্যাপ করা I / O এর প্রাথমিক ভিত্তি ।
I / O স্পেসটি একইভাবে আচরণ করে, এটি পৃথক মেমরির জায়গায়, x86 I / O স্পেসে কাজ করে। ঠিকানা 0x3F8 (COM1) I / O স্থান এবং মেমরির উভয় জায়গাতেই বিদ্যমান এবং দুটি ভিন্ন জিনিস।
আপনার শেষ প্রশ্ন, বার্তাগুলি একটি নতুন ধরণের বিঘ্নিত প্রক্রিয়া, বার্তার সংকেতযুক্ত বাধা বা এমএসআই সংক্ষেপে উল্লেখ করে। লিগ্যাসি পিসিআই ডিভাইসগুলির মধ্যে চারটি বাধা পিন রয়েছে, আইএনটিএ, আইএনটিবি, আইএনটিসি, আইএনটিডি। এগুলি সাধারণত স্লটগুলির মধ্যে স্ফীত হয়ে যায় যে আইএনটিএ স্লট 0 তে আইএনটিএ গিয়েছিল, তারপরে স্লট 1 এ আইএনটিবি, তারপরে স্লট 2 তে আইএনটিসি, স্লট 3 এ আইএনটিডি এবং তারপরে আইএনটিএতে ফিরে স্লট 4 on এর কারণটি হ'ল বেশিরভাগ পিসিআই ডিভাইসগুলি কেবল আইএনটিএ প্রয়োগ করেছে এবং তিনটি ডিভাইস বলার সাথে সাথে এটি সাঁতার কাটার মাধ্যমে প্রতিটি বাধা নিয়ন্ত্রণকারীকে তাদের নিজস্ব বাধা সংকেত দিয়ে শেষ করবে। এমএসআই হ'ল পিসিআই এক্সপ্রেস প্রোটোকল স্তরটি ব্যবহার করে বিঘ্নিত সংকেতের একটি উপায় এবং পিসিআই রুট কমপ্লেক্স (হোস্ট) সিপিইউতে বাধা দেওয়ার জন্য যত্ন নেয়।
এই উত্তরটি আপনাকে সাহায্য করতে খুব দেরী হতে পারে তবে এটি ভবিষ্যতের কিছু গুগল / বিঞ্জারকে সহায়তা করবে।
অবশেষে, আমি আরও কিছু যাওয়ার আগে পিসিআইয়ের একটি ভাল, বিস্তারিত পরিচিতি পেতে ইন্টেল থেকে এই বইটি পড়ার পরামর্শ দিচ্ছি । অন্য উল্লেখটি হ'ল লিনাক্স ডিভাইস ড্রাইভারস, এলডাব্লুএন থেকে একটি অনলাইন ইবুক ।