মাইক্রোকন্ট্রোলারদের কেন একটি ঘড়ি দরকার


31

নির্দেশিকাগুলি কেন নির্ধারিত সময়ের ব্যবধানে প্রক্রিয়া করা প্রয়োজন (যেমন একটি ঘড়ি ব্যবহারের সাথে)? পূর্ববর্তী নির্দেশনাটি সম্পন্ন হওয়ার সাথে সাথেই কি সেগুলি ক্রমিকভাবে কার্যকর করা যাবে না?

মাইক্রোকন্ট্রোলারগুলিতে ঘড়িগুলির প্রয়োজনীয়তার জন্য একটি উপমা বিশেষভাবে কার্যকর প্রমাণিত হবে।


6
অ্যাসিক্রোনাস প্রসেসর রয়েছে।
লিওন হেলার

6
আপনি কীভাবে "পূর্ববর্তী নির্দেশনাটি সম্পূর্ণ হয়ে গেলে" নির্ধারণ করবেন? আপনি যদি এটির বিষয়ে চিন্তা করেন তবে আপনার "পূর্ববর্তী নির্দেশিকাটি কি শেষ হয়েছে?" গণনা সম্পন্ন হয়েছিল, এবং "পূর্ববর্তী নির্দেশিকাটি কি" শেষ হয়েছে? "গণনা" গণনা শেষ হয়েছে, এবং ........ কেবল এটি বলা সহজ "কোনও নির্দেশিকা শেষ করতে 0.4 ন্যানো সেকেন্ড লাগে"।
ব্যবহারকারী 253751

4
লজিক গেটগুলি কখন হয়ে যায় তা বলে না। স্থিতিশীল মানের উপর স্থির হওয়ার আগে সংকেতটি কিছু সময়ের জন্য কেবল অনির্দিষ্ট হয়। সংক্ষেপে ঘড়ি নকশাটি কখন যুক্তিটি কোনও সঠিক মূল্যে স্থির হয়েছে তা জানতে দেয়। মাইক্রো ইন্সট্রাকশনগুলির মতো উন্নত কৌশলগুলি মেশিনের নির্দেশকে ছোট ছোট টুকরো টুকরো করে ভাঙতে সহায়তা করে, তাই একটি এডিডি 4 টি ক্লক টিক নিতে পারে, যখন মেমরির অ্যাক্সেসে কয়েকশত টিক লাগতে পারে।

উত্তর:


31

একটি উদাহরণস্বরূপ উদাহরণ এখানে দুটি সাহায্য করতে পারে। নিম্নলিখিত অনুমানের সার্কিটটি একবার দেখুন:

schematic

এই সার্কিটটি অনুকরণ করুন - সার্কিটল্যাব ব্যবহার করে স্কিম্যাটিক তৈরি করা হয়েছে

ধরুন এ এবং বি উভয়ই শুরু করার জন্য উচ্চ (1)। AND এর আউটপুট সুতরাং 1, এবং যেহেতু এক্সওআর উভয় ইনপুট 1 হয়, আউটপুট 0 হয়।

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

ভুলটি সার্কিটের অপারেশনের কাঙ্ক্ষিত অংশ নয়, তবে যুক্তির পরিমাণ বা তারের দৈর্ঘ্যের কারণে সার্কিটের বিভিন্ন অংশে বংশবৃদ্ধির গতিতে তফাত দেখা দেওয়ার পরে এর মতো বিভাজন ঘটবে any ।

এটি হ্যান্ডেল করার সত্যিই একটি সহজ উপায় হ'ল আপনার সংযুক্তি যুক্তির আউটপুটে একটি প্রান্ত-ট্রিগারযুক্ত ফ্লিপ ফ্লপ লাগানো, এর মতো:

schematic

এই সার্কিট অনুকরণ

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


6
প্রায় অবিলম্বে প্রচারের বিলম্বের জন্য উল্লেখ করার জন্য আপনাকে ধন্যবাদ, এটি সম্ভবত উত্তরটির 99%।

1
ক্রিয়াকলাপের এর একটি কার্যকারী উদাহরণ মাইক্রোচিপ (এবং অন্যান্য) মাইক্রোকন্ট্রোলারগুলির ডিজিটাল আই / ও পেরিফেরিয়ালে লক্ষ্য করা যায়। আপনি যদি পোর্টটি রেজিস্টারগুলি একটানা পঠন-সংশোধন / লেখার নির্দেশাবলী ব্যবহার করে আউটপুটগুলি (LATCH এর পরিবর্তে) আপডেট করার জন্য ব্যবহার করেন তবে পিনের অবস্থা যখন পরিবর্তন হয় তখন এটি পড়তে পারা যায়। আরও বিশদের জন্য dsPIC33E / 24E ডকুমেন্টেশনের বিভাগ 10.2.2 দেখুন।
এভিল ডগ পাই

আমি কি এটি ঠিক বুঝতে পেরেছি যে ক্রমবর্ধমান সার্কিটগুলি সমালোচনামূলকভাবে ক্লকিংয়ের দরকার নেই কেবল কারণ তারা বিস্কুট পাবে, কিন্তু এই ভুলের কারণে কিছু ফ্লিপ-ফ্লপ ভুল মান সংরক্ষণ করতে পারে?
lakesare

20

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

ডিজিটাল সার্কিট তত্ত্বে, অনুক্রমিক যুক্তি হ'ল এক ধরণের লজিক সার্কিট যার আউটপুট কেবল তার ইনপুট সংকেতের বর্তমান মানের উপর নির্ভর করে না বরং ইনপুট ইতিহাসের পূর্ববর্তী ইনপুটগুলির ক্রম অনুসারে নির্ভর করে। এটি সম্মিলিত যুক্তির বিপরীতে, যার আউটপুটটি কেবলমাত্র বর্তমান ইনপুটটির ফাংশন। এটি, ক্রমযুক্ত যুক্তির স্টেট (মেমরি) থাকে যখন মিলিত যুক্তি থাকে না। বা, অন্য কথায়, ক্রমযুক্ত যুক্তি হ'ল মেমরির সাথে সম্মিলিত যুক্তি।

যেমন:

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


15

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

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

ক্লকড যুক্তি প্রমাণ করে যে পুরো প্রসেসরের জুড়ে সময়টি প্রত্যাশিত ভোল্টেজ, তাপমাত্রা এবং প্রক্রিয়াকরণ ভেরিয়েবলগুলি জুড়ে কাজ করে। অনেকগুলি সফ্টওয়্যার সরঞ্জাম উপলব্ধ রয়েছে যা এই সময় নির্ধারণে সহায়তা করে এবং নেট প্রক্রিয়াটিকে "টাইমিং ক্লোজার" বলা হয়। করতে পারেন ক্লকিং (এবং, আমার অভিজ্ঞতা, নেই ) কোথাও 1/3 মধ্যে একটি মাইক্রোপ্রসেসর ব্যবহৃত ক্ষমতার 1/2 নিয়ে যান।

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

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

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

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

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

"প্রথম থেকে আগত" "লক-আউট" সংকেত প্রক্রিয়া অর্জন করা একটি সার্কিট ডিজাইনের সমস্যা, এবং এর সাথে মোকাবিলার বিভিন্ন উপায় রয়েছে। বর্ণের অবস্থা 1 এর লক্ষণ। দুর্বল নকশা অনুশীলন; বা 2)। প্রসেসরে আসার বাহ্যিক সংকেত। ক্লকিং আসলে একটি সংকেত-বনাম-ঘড়ির রেসের শর্তটি প্রবর্তন করে যা "সেট আপ" এবং "হোল্ড" লঙ্ঘনের সাথে সম্পর্কিত।

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

(আশা করি এটা কাজে লাগবে).

যা কিছু বলেছিল, যদি আপনার কাছে টাকা থাকে ...


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

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

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

Using synchronous logic greatly simplifies the analysis of situations where the system will need to respond to a truly-asynchronous event by ensuring that race conditions will have a very low probability of escaping a very small portion of the overall device. Analyzing that small portion of the device to ensure that race conditions are unlikely to escape is apt to be a much more tractable problem than allowing race conditions to occur almost anywhere and trying to analyze their effects to prove they're acceptably unlikely to cause trouble.
supercat

10

মাইক্রোকন্ট্রোলারদের একটি ঘড়ি ব্যবহার করা প্রয়োজন কারণ তাদের যে কোনও সময় ঘটতে পারে এমন ঘটনার প্রতিক্রিয়া জানাতে সক্ষম হওয়া দরকার, প্রায় একই সাথে অন্যান্য বাহ্যিক ঘটনা বা কন্ট্রোলারদের দ্বারা উত্পন্ন ইভেন্টগুলির সাথে এবং প্রায়শই একাধিক সার্কিট রয়েছে যা জানতে হবে যে কিনা একটি ইভেন্ট এক্স এর আগে অন্য ইভেন্টের আগে ওয়। এই জাতীয় সার্কিটগুলি X এর আগে Y নির্ধারিত হয়েছিল কিনা তা নির্ধারণ করা যায় না বা এই জাতীয় সমস্ত সার্কিট এটি সিদ্ধান্ত নেয় যে এক্স Y এর আগে ছিল না, তবে এটি প্রায়শই সমালোচিত হবে যে যদি কোনও সার্কিট সিদ্ধান্ত নেয় যে এক্স এর আগে রয়েছে হ্যাঁ, তাহলে অবশ্যই সকলকে এটি করা উচিত। দুর্ভাগ্যক্রমে, এটি নিশ্চিত করা কঠিন যে সার্কিটগুলি নির্ধারিত সময়ের মধ্যে গ্যারান্টিযুক্ত sensকমত্যে পৌঁছে যাবে যে এক্স এর আগে ওয়াই, বা এমনকি তারা conকমত্যে পৌঁছেছে কি না সে সম্পর্কে aকমত্যে পৌঁছে যাবে। সিঙ্ক্রোনাস যুক্তি এটিতে প্রচুর সাহায্য করতে পারে।

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

"যথাসম্ভব দ্রুত" চলমান সম্পূর্ণ-অ্যাসিনক্রোনাস সিস্টেমগুলি ডিজাইন করা অবশ্যই সম্ভব, তবে কোনও সিস্টেম অত্যন্ত সহজ না হলে কোনও নকশাকে কোনও জাতি শর্তে বিভক্ত করা এড়ানো শক্ত হবে। ঘড়ির প্রয়োজন ছাড়াই জাতিদের শর্তগুলি সমাধান করার উপায় রয়েছে, তবে জাতিগুলির পরিস্থিতি প্রায়শই ঘড়ি ব্যবহার না করে অনেক দ্রুত এবং সহজেই সমাধান করা যেতে পারে। যদিও অ্যাসিঙ্ক্রোনাস যুক্তি প্রায়শই ক্লকড যুক্তির চেয়ে দ্রুত জাতি পরিস্থিতি সমাধান করতে সক্ষম হয়, তবে যে অনুষ্ঠানগুলি এটি করতে পারে না সেগুলি একটি বিশেষ সমস্যা হিসাবে দেখা দেয়, বিশেষত কোনও ব্যবস্থার অংশগুলির পক্ষে conক্যমত্যে পৌঁছেছে কি না সে সম্পর্কে sensক্যমত্যে পৌঁছাতে অসুবিধা দেওয়া হচ্ছে। ধারা অনুসারে ধারাবাহিকভাবে এক মিলিয়ন নির্দেশনা চালাতে পারে এমন একটি সিস্টেম সাধারণত একটি সেকেন্ডের চেয়ে বেশি কার্যকর হবে যা মাঝে মাঝে প্রতি সেকেন্ডে চার মিলিয়ন নির্দেশিকা চালাতে পারে তবে জাতিগত অবস্থার কারণে সম্ভবত একসময় মিলিক্যান্ডের (বা তার বেশি) স্টল থাকতে পারে।


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

@ নিক জোনসন: যদি ক্রমানুসারে অপারেশনগুলি সম্পাদন করা হয় তা যদি কখনও গণনা করা হয় না এমন কিছুগুলির উপর নির্ভর করে না, যদি ALU এর মতো প্রতিটি বিভাগের "বৈধ" ইনপুট এবং "বৈধ" আউটপুট এবং জিনিস থাকে তবে সমস্যাগুলি সমাধান করা সম্ভব না নির্ধারিত ক্রম হিসাবে যাতে ব্যবস্থা করা যেতে পারে। চাকাগুলি যখন পড়ে তখন সেই ক্রমটি যখন ক্রিয়াকলাপগুলি ঘটে তা সময়ের উপর নির্ভর করে (উদাহরণস্বরূপ, যদি কারও একটি সমান্তরাল অপারেশন রয়েছে যা একটি শেয়ার্ড মেমোরি বাস ব্যবহার করা প্রয়োজন এবং তাদের দু'টি কাছাকাছি-একই সাথে অনুরোধ জারি করে, কোনটির সালিশ প্রথমে যাওয়া উচিত ...
সুপারক্যাট

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

এই কারণেই মহাশূন্যে যাওয়া এত কঠিন, সম্ভাব্যতাগুলি অপ্রত্যাশিতভাবে পরিবর্তিত হয়।
ম্যাজিক স্মোক

6

এমসিইউগুলি একটি সিঙ্ক্রোনাস সিক্যুয়ালিয়াল লজিক সার্কিটের একটি খুব জটিল উদাহরণ। সবচেয়ে সহজ ফর্মটি সম্ভবত ক্লকড ডি-ফ্লিপ-ফ্লপ (ডি-এফএফ), অর্থাত্ একটি সিঙ্ক্রোনাস 1 বিট মেমরি উপাদান।

There are memory elements that are asynchronous, for example the D-latch, which is (in a sense) the asynchronous equivalent of the D-FF. An MCU is nothing more than a bunch of millions of such basic memory elements (D-FF) glued together with tons of logic gates (I'm oversimplifying).

এখন আসুন এই বিষয়টিতে আসা যাক: কেন এমসিইউগুলি অভ্যন্তরীণভাবে মেমরি উপাদান হিসাবে ডি-ল্যাচগুলির পরিবর্তে ডি-এফএফ ব্যবহার করে? এটি মূলত নির্ভরযোগ্যতা এবং ডিজাইনের স্বাচ্ছন্দ্যের জন্য: ডি-ল্যাচগুলি যত তাড়াতাড়ি তাদের ইনপুট পরিবর্তিত হয় এবং তাদের ফলাফলগুলি যত তাড়াতাড়ি আপডেট করা হয় ততক্ষণ প্রতিক্রিয়া জানায়। এটি একটি লজিক সার্কিটের বিভিন্ন অংশের (অযৌক্তিক প্রতিক্রিয়া লুপ এবং দৌড়) এর মধ্যে অদ্ভুত অযৌক্তিক মিথস্ক্রিয়াকে অনুমতি দেয়। অ্যাসিনক্রোনাস বিল্ডিং ব্লকগুলি ব্যবহার করে একটি জটিল ক্রমিক ক্রমিক সার্কিট ডিজাইন করা সহজাতভাবে আরও বেশি কঠিন এবং ত্রুটির প্রবণ। সিঙ্ক্রোনাস সার্কিটগুলি ঘড়ির প্রান্তগুলি সনাক্ত হওয়ার পরে বিল্ডিং ব্লকগুলির ক্রিয়াকলাপটি সময় তাত্ক্ষণিকভাবে সীমাবদ্ধ করে এ জাতীয় ফাঁদগুলি এড়ায়। প্রান্তটি পৌঁছে গেলে একটি সিঙ্ক্রোনাস লজিক সার্কিট তার ইনপুটগুলিতে ডেটা অর্জন করে , তবে এখনও এর ফলাফলগুলি আপডেট করে না. As soon as the inputs are acquired, the outputs are updated. This avoids the risk that an output signal is fed back to an input which hasn't been completely acquired and mess things up (said simply).

This strategy of "decoupling" input data acquisition from outputs updating allows simpler design techniques, which translates in more complex systems for a given design effort.


5

What you're describing is called asynchronous logic. It can work, and when it does it's often faster and uses less power than synchronous (clocked) logic. Unfortunately, asynchronous logic has some problems that prevent it from being widely used. The main one I see is that it takes a lot more transistors to implement, since you need a ton of independent synchronization signals. (Microcontrollers do a lot of work in parallel, as do CPUs.) That's going to drive up cost. The lack of good design tools is a big up-front obstacle.

Microcontrollers will probably always need clocks since their peripherals usually need to measure time. Timers and PWMs work at fixed time intervals, ADC sampling rates affect their bandwidth, and asynchronous communication protocols like CAN and USB need reference clocks for clock recovery. We usually want CPUs to run as fast as possible, but that's not always the case for other digital systems.


3

Actually You are seeing the MCU as a complete unit,but the truth is it itself is made of different gates and TTL and RTL logic's, often FF array,the all need the clock signal individually,

To be more specific think about simply accessing a address from the memory,this simple task may itself involve multiple operation like making the BUS available for the data lines and the address-lines.
The best way to say is ,the instruction themselves occur in small units of operation that require clock cycles,these combined for machine cycles ,which account for various MCU properties like speed(FLOPS** in complicated MCU's),pipe lining etc.

Response to OP's comment

To be very precise,I give you an example there is a chip called ALE(Address latch enable) usually for the purpose of multiplexing the lower address bus for transmitting both address and data on same pins,we use a oscillators(the intel 8051 uses 11.059MHz local oscillator as clock) to fetch the address and then data.

As you may know that basic parts of MCU are CPU,ALU and internal register and so on,the CPU(controlling s/g) sends the address to all the address pins 16 in case of 8051,this occurs at timing instant T1 and after the address is the corresponding matrix of capacitor storing (charge as a signal )(*memory mapping *) is activated and selected.

After selection the ALE signal is activated ie ALE pin is made high at the next clock say T2(usually a High signal but change as per processing unit design),after this the lower address buses act like data lines,and data is written or read (depending upon the output at the RD/WR pin-of the MCU).
You can clearly see that all events are timely sequential

What would happen if we wont use clock Then we will have to use asynchronous clocking method ASQC this would then make each gate dependent on the other and may result in hardware failures,Also this kills the Pipe-lining of instruction impossible,Long Dependent and irregular time to complete task.
So it is something undesirable


That kind of makes sense. But why do these various compartments of the MCU need the clock signal to operate? What theoretically would occur if they didn't use a clock?
M-R

1
@Martin, logic gates change state immediately when their input changes. Clocked, sequential logic only evaluates it's inputs during a clock event. This is the basic principle that drives digital memory circuits. It gives us the ability to selectively move data from one place to another with absolute control, allowing the creation of general purpose hardware that can be programmed via softaware to do - well, anything.
Sean Boddy

3
@SeanBoddy: Logic gates do not chance state immediately, there is a short lag which is viewable on an oscilloscope. If we didn't use a clock, the differences in these timings between components could cause race-conditions producing the wrong results.
BlueRaja - Danny Pflughoeft

@BlueRaja - well good golly gumdrops, how about that. Maybe I'll go back through 4 years of power electronics notes and 8 years of navy training to find out where I missed that one thing.
Sean Boddy

2

The fundamental problem that a clock solves is that transistors are not really digital devices: they use analogue voltage levels on the inputs to determine the output and take a finite length of time to change state. Unless, as has been mentioned in another answer, you get into quantum devices, there will be a period of time in which the input transitions from one state to another. The time this takes is affected by capacitive loading, which will be different from one device to the next. This means that the different tranisistors that make up each logic gate will respond at slightly different times. The clock is used to 'latch' the outputs of the component devices once they have all stabilised.

As an analogy, consider the SPI (Serial Peripheral Interface) communications transport layer. A typical implementation of this will use three lines: Data In, Data Out and Clock. To send a byte over this transport layer the master will set its Data Out line and assert the Clock line to indicate that the Data Out line has a valid value. The slave device will sample its Data In line only when instructed to do so by the Clock signal. If there were no clock signal, how would the slave know when to sample the Data In line? It could sample it before the line was set by the master or during the transition between states. Asynchronous protocols, such as CAN, RS485, RS422, RS232, etc. solve this by using a pre-defined sampling time, fixed bit rate and (overhead) framing bits.

In other words, there is some kind of Common Knowledge required to determine when all the transistors in a set of gates have reached their final state and the instruction is complete. In the (100 blue eyes) puzzle stated in the link above, and explained in some detail in this question on Maths Stack Exchange, the 'oracle' acts as the clock for the people on the island.

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