কেন সমতা নিয়ে বিরক্ত করবেন?


12

আমি আমার অ্যাপ্লিকেশনটিতে একটি এসপিআই পেরিফেরিয়াল ব্যবহার করছি। পেরিফেরাল 15 টি ডেটা বিট সমেত প্যাকেটগুলি ফেরত দেয়, ত্রুটি সনাক্তকরণের জন্য একটি সমতা প্যাটিকেও।

একটি এসপিআই পেরিফেরিয়ালের সমতা

অতএব সমস্ত শূন্য এবং সমস্ত উভয়ই সমতা পরীক্ষায় পাস করে।

এর অর্থ হল যে আমার মাইক্রোকন্ট্রোলার সবচেয়ে সাধারণ ধরণের ত্রুটি সনাক্ত করতে পারে না: পেরিফেরিয়াল সংযোগ বিচ্ছিন্ন হচ্ছে! এই ক্ষেত্রে, প্রাপ্ত বিটগুলি সমস্ত শূন্য যা প্যারিটি চেক পাস করে।

অনুমান করে যে পেরিফেরিলের নির্মাতাদের পক্ষে ওড প্যারিটি বাস্তবায়ন করা ঠিক তত সহজ ছিল, আমার প্রশ্ন: তারা কেন এই ক্ষেত্রে সমতা ব্যবহার করতে বেছে নেবে ? এই ক্ষেত্রে এমনকি অতি সামান্য ধরণের ত্রুটিটি ধরতে অক্ষম এই বিষয়টিকে সামনে রেখে আরও কিছু সুবিধা রয়েছে কি?


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

39
@ লন্ডিন "এটির একক বিট ত্রুটিগুলি ধরায়ের ৫০% এরও কম সম্ভাবনা রয়েছে এবং বহু-বিট ত্রুটির জন্য এটি আরও খারাপ।" - যদি কিছুটা ভুল হয় তবে সাম্য ভুল হবে be সাধারণ প্যারিটিতে "50% এর চেয়ে কম" নয়, একক-বিট ত্রুটিগুলি ধরার 100% সুযোগ রয়েছে। (একইভাবে, এতে 2-বিট ত্রুটি ধরার 0% সম্ভাবনা রয়েছে এবং 3-বিট ত্রুটিগুলি ধরায় আবার 100% রয়েছে)।
মার্সেলেম

7
@ লন্ডিন - দয়া করে আপনার মন্তব্যগুলি এএমএসের নির্মাতাদের কাছে সম্বোধন করুন, যারা এই চিপগুলি তৈরি করে।
রকেটম্যাগনেট

26
@ লন্ডিন যদি প্যারিটি বিট ফ্লিপ হয় তবে প্যারিটি চেকটি ব্যর্থ হয়।
আদম হাউন

4
এটি এখনও বেশিরভাগ পরিস্থিতিতে বেশিরভাগই অকেজো। ⁽ᶜᶦᵗᵃᵗᶦᵒᶰ ᶰᵉᵉᵈᵉᵈ⁾
ড্যাসডিংসনেইন

উত্তর:


14

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

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

যদি বিজোড় প্যারিটি ব্যবহার করা হত, 8 টি উচ্চ বিট (দশমিক 255) এর ফলে পেরিফেরাল চিপের ক্ষতি সনাক্তকরণের উপায় হিসাবে অদৃশ্য প্যারিটি অকেজো রেন্ডার করে উচ্চ প্যারিটি বিট হতে পারে।

ভিন্ন ভিন্ন মানুষ ভিন্ন ভিন্ন জিনিস এর জন্য উপযোগী.


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

1
@ রকেটম্যাগনেট এছাড়াও, আপনি আপনার প্রশ্নের সাথে যুক্ত টেবিলটি পেরিফেরিয়ায় প্রেরিত ডেটা ফর্ম্যাটের জন্য বলে মনে হচ্ছে - 14 তম বিটের জন্য "0 হতে হবে" শব্দটি নোট করুন - সম্ভবত আপনার ডিভাইসের ডেটা শীটে লিঙ্ক করা উচিত ?
অ্যান্ডি ওরফে

3
ত্রুটিযুক্ত পতাকা হিসাবে পরিবর্তিত টেবিলটি বিট 14 দেখায় এবং আমার পরামর্শটি হ'ল ডিভাইসটি সংযোগ বিচ্ছিন্ন হওয়ার পরে সিরিয়াল রিটার্ন ডেটার সমস্ত 1 ডেটা তৈরির জন্য একটি পুল-আপ ব্যবহার করা উচিত কারণ তখন ডিকোড করা বিট 14 কোনও সমস্যা নির্দেশ করবে।
অ্যান্ডি ওরফে

1
পছন্দ করুন সংশোধন চলছে।
অ্যান্ডি ওরফে

1
যথাযথ প্রত্যাশা হ'ল যে সফ্টওয়্যারটি স্পি কন্ট্রোলার ব্যবহার করে সেগুলি যদি কোনও ঝুঁকি থাকে তবে ফিরে আসা ডেটা যাচাই করা উচিত। যদি আপনার এক বা অন্য পক্ষের নিয়ন্ত্রণ না থাকে তবে উচ্চতর স্তরের সফ্টওয়্যারটিতে অবশ্যই আপনার এটি করা দরকার। আপনি স্পি ডিজাইনের উভয় পক্ষকে নিয়ন্ত্রণ করেন এবং এটি আপনার বিট ত্রুটির প্রয়োজনীয়তা মেটান যদি আপনি কেবল এই সময় দিতে পারেন তবে আপনি যা করতে পারবেন না তা এই ক্ষেত্রে শোনা যায়। সুতরাং আপনার সফ্টওয়্যারটি সমস্ত শূন্য এবং সকলের জন্য অনুসন্ধান করা উচিত, স্পি নিয়ন্ত্রকের কাজ নয়, বা সামান্য উপযোগিতা রয়েছে এমন প্যারিটি নয় ...
old_timer

5

সমতা বা যে কোনও ব্লক ত্রুটি সনাক্তকরণ, এর উদ্দেশ্য হ'ল একটি ডেটা ট্রান্সমিশনের মধ্যে ত্রুটিগুলি সনাক্ত করা। প্যারিটি হয় না কিনা তা সনাক্ত করতে বা না তথ্য সঞ্চার স্থান গ্রহণ করা হয় পরিকল্পিত।

ট্রান্সমিশন লাইন দেওয়া, বিভিন্ন ধরণের উদ্বেগ রয়েছে। যে দুটি এখানে প্রাসঙ্গিক তা হ'ল: 1) লাইন নিজেই সম্পূর্ণরূপে ব্যর্থতা এবং 2) নির্দিষ্ট সংক্রমণে ডেটা ত্রুটিগুলি ব্লক করে। অন্যদের তুলনায় কম প্রাসঙ্গিক হ'ল উদাহরণস্বরূপ, ভুল লাইন ভোল্টেজ, প্রোটোকল ত্রুটি বা সুরক্ষা ত্রুটি। সমতা 2 টি দিয়ে সহায়তা করে তবে 1 নয়। 1 টি সংযোগ করার জন্য একটি সংক্রমণ লাইনের উভয় প্রান্তের সাবসিস্টেমের জন্য (কোনও সংযোগের সম্পূর্ণ ব্যর্থতা), অন্য একটি প্রোটোকল বৈশিষ্ট্য প্রয়োজন।

একক প্যারিটি বিটের ত্রুটি সনাক্তকরণের হার প্রায়শই 50% এর বেশি থাকে। ঠিক সেই হারটি প্রোটোকলটিতে ডেটা বিভাগের হাইরিস্টিকের উপর নির্ভর করে। বলুন আপনার একটি প্যাকেট রয়েছে, (এমএসবি) 1011010111011110, এবং সর্বশেষে প্রেরিত বিটে একটি বিট ত্রুটি রয়েছে, প্যারিটি চেক ব্যর্থ হবে এবং সঠিকভাবে এটি প্যাকেটটিকে প্রত্যাখ্যান করবে। একইভাবে, যদি আপনার প্রথম বিটে (প্যারিটি বিট) কোনও ডেটা ত্রুটি থাকে তবে প্যাকেটটি প্রত্যাখ্যান করা হবে।

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

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

কোনও ডিভাইস এখনও সংযুক্ত আছে কিনা তা পরীক্ষা করতে, স্ট্যাকের মধ্যে আরও কিছু চেষ্টা করুন। তুলনা করে, টিসিপি / আইপি (আইপি, বিশেষত) প্যারিটি বিট নির্দিষ্ট করে না যেখানে ৮০২.x ইথারনেট স্পেসিফিকেশন অনেকগুলি করে। আইপি, অন্যদিকে, একটি জটিল আছে, "আপনি কি সেখানে আছেন?" প্রোটোকল। আপনি এসপিআই শীর্ষে কি চলছে? ডেটা লিঙ্ক পরিচালনার উত্তর সম্ভবত সেখানে রয়েছে।


1
802.3 এবং .11 CRC32 ব্যবহার করুন; আইপি এবং টিসিপি এবং (allyচ্ছিকভাবে) ইউডিপি একটি 16-বিট একের পরিপূরক যোগফল ব্যবহার করে, যা খুব কম মেশিন বা এমনকি এএলইউ আজ 1 এসসি হ'ল বেশিরভাগই স্বাক্ষরবিহীন সংযোজন প্লাস বহনকারী দ্বারা বাস্তবায়িত হয়।
dave_thompson_085

মুল বক্তব্যটি হল সমতাটি খুব সহজেই লাইনের সম্পূর্ণ ব্যর্থতা সনাক্ত করতে পারে। আমি যদি সমস্ত 1 বা সমস্ত 0 গুলি ফিরে পাই তবে এটি ব্যর্থতা হওয়া উচিত।
রকেটম্যাগনেট

4

বিজোড়ের চেয়েও সমতার কোনও সুস্পষ্ট সুবিধা নেই। যোগাযোগ এবং স্টোরেজ স্কিমগুলিতে সর্বাধিক সম্ভাব্য বা সর্বোচ্চ-ব্যর্থতা মোডগুলিকে ফাঁদে ফেলতে প্যারিটি পোলারিটি (বিজোড় বা এমনকি) নির্বাচন করা উচিত।

আপনি যেমনটি বলেছেন, কোনও প্রতিক্রিয়াহীন লক্ষ্য বা ভাঙা ডেটা তারের প্রাপ্তির ফলস্বরূপ একটি এমআইএসও লাইন উচ্চ বা নিম্ন আটকে থাকতে পারে।

এমনকি এসপিআই-তে বাইটের মতো বিট সংখ্যক যোগাযোগ করার সময়, একটি অদ্ভুত সাম্য বিট এই অল -1 এর বা সমস্ত -0 এর ডেটাতে একটি ত্রুটি সনাক্ত করতে পারে তবে প্যারিটিও তা করবে না।

যাইহোক, এসপিআইর উপর 15 টি বিট সহ আপনার আবেদনে যেমন একটি বিজোড় সংখ্যক বিট যোগাযোগ করার সময় এর মতো স্পষ্ট বিজয়ী নেই। এমনকি সমতা সমস্ত -1 এর ক্ষেত্রে একটি ত্রুটি সনাক্ত করতে পারে তবে অল -0 এর ক্ষেত্রে মিস করবে। বিপরীতভাবে, বিজোড় সমতা সমস্ত -0 এর ক্ষেত্রে একটি ত্রুটি সনাক্ত করতে পারে তবে অল -1 এর ক্ষেত্রে মিস করবে।


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

0

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


0

আপনি এই প্রশ্নটি করতে ঠিক বলেছেন, সমতা সমান নিয়ে আমারও সমালোচনা আছে। আপনার উদাহরণ হিসাবে যেমন সামান্য বিট যোগ করার আগে একটি অদ্ভুত সংখ্যক ডেটা বিটের সাথে, এবং সাধারণ হিসাবে, এমনকি সমতাও সমস্ত 0 এবং সমস্ত 1 গুলি বৈধ সংক্রমণিত শব্দের মঞ্জুরি দেয়, যা মৃত লিঙ্ক বা মৃত চিপ সনাক্তকরণে অকেজো। এই বিষয়ে টনি এম এর পূর্বের উত্তরটি ভুল। প্রমাণের জন্য এখানে 7 বিটের ডেটা উদাহরণ টেবিলটি দেখুন: - https://en.wikedia.org/wiki/Parity_bit

অদ্ভুত সাম্যটি সমস্ত 0s বা সমস্ত 1s ক্ষেত্রে একটি বিপরীত রাষ্ট্র বিট প্রবেশ করবে, সুতরাং লিঙ্ক এবং চিপটি বেঁচে আছে তা প্রমাণ করে এবং এই ক্ষেত্রে আরও ভাল পছন্দ হবে be

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