একজন প্রসেসর কীভাবে 10 গিগাবিট প্রতি সেকেন্ড বা তার বেশি ডেটা হার পরিচালনা করতে পারে?


11

এটি জিজ্ঞাসা করার উপযুক্ত জায়গা কিনা তা আমি জানি না। এটি খুব বোকা প্রশ্ন হতে পারে। আমি ধরে নিয়েছি যে কিছু প্রসেসরের স্যুইচিং / রাউটিংয়ের জন্য ডেটা ফ্রেমগুলি প্রসেস করতে হবে। আধুনিক প্রসেসরের গতি কয়েক গিগাহার্জ। তারা কীভাবে যে হারে ডেটা আসছে তার পরিচালনার চেয়ে দ্রুত হ্যান্ডেল করবে?

উত্তর:


16

আপনি সম্পূর্ণরূপে সঠিক, যদি আমাদের বিট প্রতি নির্দেশ চক্র ব্যবহার করতে হয় তবে 10 জিবিপিএস অ্যাক্সেসযোগ্য হবে। সুতরাং লক্ষণীয় প্রথম জিনিসটি হ'ল আমরা সিপিইউ নির্দেশনা অনুযায়ী একটি শব্দ হ্যান্ডেল করি - 64 বিট।

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

একবার আমরা এই সমস্ত কাজটি শেষ করে নিলে পরবর্তী সীমাবদ্ধতা হ'ল প্যাকেটগুলি হ্যান্ডলিং করে একবারে over সুতরাং ইথারনেট নিয়ামক এবং কার্নেল উভয়ই "সেগমেন্টেশন অফলোড" এর একটি গাদা বৈশিষ্ট্য রয়েছে যাতে আমরা প্যাকেটের দলগুলি পরিচালনা করি। এমনকি আমরা ইথারনেট নিয়ামক থেকে ডেটা পুনরুদ্ধারে বিলম্ব করি যাতে এই গ্রুপগুলি আরও বড় হয়।

পরিশেষে আমাদের কাছে বিশেষ-কেস শর্টকাট রয়েছে, যেমন কার্নেলের প্রেরণ ফাইল () কল যা ন্যূনতম কাজের সাহায্যে ডিস্ক থেকে নেটওয়ার্কে যাওয়ার এক্সপ্রেস পাথ।

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

সম্পূর্ণ সিপিইউ থেকে দূরে সরে যাওয়া, আমরা এমনকি বিশেষ-উদ্দেশ্যে রাউটারগুলিও তৈরি করতে পারি যেখানে সমস্ত ফরোয়ার্ডিং কার্য হার্ডওয়্যারে ঘটে। যেহেতু পিসিআই বাস তখন সীমাবদ্ধতা হয়ে থাকবে তারা একাধিক সমান্তরাল বাস চালায়; বা একাধিক সমান্তরাল ক্রসবার সুইচ অ্যাসেমব্লিতে একাধিক সমান্তরাল বাসগুলি ses বাজারের এক প্রান্তে একটি ছোট টিসিএএম-ভিত্তিক ইথারনেট সুইচ একটি উদাহরণ হতে পারে; বাজারের অন্য প্রান্তে জুনিপার এম 40 একটি সাধারণ নকশা হবে।

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

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


দুর্দান্ত উত্তর। আপনি বিস্তারিত বলতে পারেন the packet will then be exploded into cells to reduce latency?
এডি

রাউটার ডিজাইনে আপনি কেবল ক্রস-বার স্যুইচিং (বা অন্য কোনও ধরণের আন্তঃ কার্ড বাস) এর মাধ্যমে এক লাইন কার্ড থেকে অন্য একটি প্যাকেট পাঠাতে পারেন। তবে প্যাকেটের দৈর্ঘ্যের সাথে লেটেন্সি আবদ্ধ হয় - প্যাকেটটি ক্রসবার স্যুইচিংয়ের মাধ্যমে প্রেরণ হওয়ায় আপনার আর একটি সম্পূর্ণ প্যাকেট প্রেরণ বিলম্ব হবে। এটি এড়াতে আমাদের ক্রসবারে স্যুইচিংয়ে একাধিক সমান্তরাল লিঙ্ক থাকতে পারে এবং সেই লিঙ্কগুলির মধ্যে প্যাকেটটি বিভক্ত করা যায়। তারপরে বড় প্যাকেটের জন্য বিলম্বিতা অনেক হ্রাস পেয়েছে। বিভক্ত প্যাকেটের একটি অংশকে 'সেল' বলা হয় called
vk5tu

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

0

আজ, প্রায় সমস্ত স্যুইচিং, এবং প্রচুর রাউটিং, হার্ডওয়্যার দ্বারা পরিচালিত হয়, তাই প্রসেসরের গতি ব্যতিক্রমগুলির জন্য খেলায় আসে। সার্ভারের মতো জিনিসের জন্য, এটি সম্ভব যে প্রসেসরটি যথেষ্ট দ্রুত না isn't অতীতেও এরকম ঘটনা ঘটেছে। যখন 1 জিবিপিএস ইথারনেট প্রথম প্রকাশিত হয়েছিল, পিসি এবং সার্ভারে ব্যবহৃত বাসটি কেবল 400 এমবিপিএস হ্যান্ডেল করতে পারে।

প্রসেসর পর্যাপ্ত দ্রুত না হলে যা ঘটে তা হ'ল ট্র্যাফিক বাদ পড়ে। যথাযথভাবে করা গেলে যানজট নিয়ন্ত্রণ করা হয় তাই যেহেতু প্রচুর ট্র্যাফিকই ফেলে দেওয়া যেতে পারে। রেড (র‌্যান্ডম আর্লি ডিটেকশন) এমন একটি পদ্ধতি যা প্যাকেটগুলিকে ভরাট এবং লেজ-বাদ পড়া থেকে রোধ করার জন্য এলোমেলোভাবে প্যাকেটগুলিকে কাতারে ফেলে দেয় in এটি টিসিপি সিঙ্ক্রোনাইজেশন রোধ করতে সহায়তা করতে পারে। সুইচগুলিতে প্রচুর ড্রপস পড়ে, যেখানে গতির একাধিক পোর্ট একই গতির অন্য একক বন্দরে প্রেরণের প্রয়োজন হতে পারে।


1
এটি অ্যাগ্রপ্রেস ড্রপগুলির সাথে ইনগ্রিং ছাড়াকে বিভ্রান্ত করে। সাধারণত যখন ইথারনেট ইন্টারফেসের রিং-বাফারটি বেশি পরিপূর্ণ হয় তখন ঘটে যায় - যখন কোনও সিপিইউ ডেটার আগমনের হারের সাথে তাল মিলিয়ে রাখতে পারে না। RED প্রয়োগের জন্য রিং-বাফারটি খুব ছোট।
vk5tu

@ vk5tu, আপনি আমার বক্তব্যটি মিস করেছেন যে ট্র্যাফিক সর্বদা বাদ পড়ে যায়, चाहे সে ইনগ্রেশন বা অ্যাড্রেসই হোক। যদি সিস্টেমের কোনও অংশ ট্র্যাফিকের পরিমাণটি পরিচালনা করতে না পারে তবে কিছু বাদ দেওয়া হবে এবং কিছুটিকে উদ্দেশ্যমূলকভাবে বাদ দেওয়া হবে।
রন মউপিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.