পিসিআই গণনায় ডিভাইসটি কীভাবে নির্ধারিত হয়? (বাস / ডিভাইস / ফাংশন)


8

আমি পিসিআই বাস / ডিভাইস / ফাংশন গণনা সম্পর্কে বিভ্রান্ত। পিসিআই কনফিগারেশনের উইকিপিডিয়া পৃষ্ঠাটি দেখে, আমি দেখতে পাচ্ছি যে প্রদত্ত একটি বাসের জন্য, মাস্টার ফাংশন 0 ব্যবহার করে সমস্ত ডিভাইসগুলির জন্য বিক্রেতা আইডি এবং ডিভাইস আইডি অনুরোধ করবেন যদি সমস্ত 0xFF ফিরে আসে, তবে কোনও ডিভাইস নেই এবং গণনাটি এগিয়ে চলে। যদি কোনও বৈধ ডিভাইস আইডি এবং বিক্রেতার আইডি পাওয়া যায়, তবে সেখানে একটি পিসিআই ইউনিট রয়েছে এবং এটি গণনা করা হবে। আমি নিশ্চিত না যে বাসে ডিভাইসটি কীভাবে নির্ধারিত হয় I

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

উত্তর:


6

মূল পিসিআই কাঠামোয় ("প্রচলিত পিসিআই") এবং পাশাপাশি পিসিআই-এক্স-এ, ডিভাইসগুলি "স্লট" এর সাথে মিল রেখে প্রত্যেকটির নিজস্ব সংযোগকারী একই প্যারালাল বাসের সাথে সংযুক্ত রয়েছে। প্রতিটি স্লটে একটি অনন্য আইডি পিন ছিল যা গণনার সময় জোর দেওয়া হয়েছিল। গণনাটি মূলত জিজ্ঞাসা করছিল (প্রতিটি স্লটের জন্য): "আরে, এই স্লটে কিছু আছে কি?" এই সংকেতের প্রতিক্রিয়া হিসাবে ডিভাইসটি বাসে ডেটা ড্রাইভিং করে প্রতিক্রিয়া জানায়। প্রতিক্রিয়ার অভাব বলতে কোনও ডিভাইস বোঝায় না।

একটি ডিভাইস "ব্রিজ "ও হতে পারে যার অর্থ এটি একটি অধস্তন বাস গঠন করেছিল। এই বাসটির একটি পৃথক আইডি থাকবে (প্রবাহ থেকে নির্ধারিত) এবং তার নিজস্ব স্লটগুলির সেট থাকবে যা স্বাধীনভাবে গণনা করা হত।

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

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

সমস্ত ক্ষেত্রে, বাস / ডিভাইস / ফাংশনের "ফাংশন" অংশ পেরিফেরিয়ালের মধ্যে কঠোরভাবে পরিচালিত হয়। উদাহরণস্বরূপ, একটি দ্বৈত বন্দর NIC নিয়ন্ত্রকের প্রায়শই দুটি ফাংশন থাকবে, প্রতিটি বন্দরের জন্য একটি। এগুলি স্বতন্ত্রভাবে কনফিগার করা এবং পরিচালনা করা যায়, তবে সিপিইউ থেকে ফাংশন পর্যন্ত ডেটা পাথ উভয়ের জন্য একই।


1
উত্তরটি কিছুটা বিভ্রান্তিকর: 1) পিসিআইতে "ডিভাইস নম্বর" এর অর্থ আসলে "স্লট সংখ্যা" (এবং এটি বোঝায়) ডিভাইস আইডিগুলি মূলত সমস্ত হার্ড-কোডড হয় "যার অর্থ তারের সেট (= স্লট) এর সাথে আইডি হার্ড-কোডড থাকে, সুতরাং এটি পিসিআই-এর মতোই। এখন, প্রশ্ন "হার্ড-কোডিং" কখন হয়? স্যুইচ / সেতুগুলি পুনরায় সেট করে আইডিগুলি পুনরায় বরাদ্দ করে?
এক্সিলেটস

2
হ্যাঁ। এটি আরও ভাল বলা যেতে পারে। মুল বক্তব্যটি হ'ল পিসিআই-তে, কার্ডটি একটি ভাগ করা বাসে থাকে তবে এটি কী স্লটে রয়েছে তা "জানে" এবং যখন স্লট-নির্দিষ্ট পিনটি চাপানো হয় কেবল তখনই প্রতিক্রিয়া জানায়। পিসিআইতে, ব্রিজটিতে "তারের" এর বিভিন্ন সেট থাকে। সুতরাং ব্রিজ ডিভাইসে তারের প্রতিটি সেটের জন্য একটি পৃথক স্লট নম্বর রয়েছে। ব্রিজের দৃষ্টিকোণ থেকে, সেই স্লটে একটি নির্দিষ্ট সংখ্যা রয়েছে; এটি কেবল সেখানে কিছু আছে কিনা তা নির্ধারণ করতে হবে। কার্ড নিজেই না কি জানেন স্লট এতে আছে। একবার সেতু কিছু আছে নির্ধারণ করে, তাহলে বলে ডিভাইসে কি তার স্লট সংখ্যা।
গিল হ্যামিল্টন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.