আমার আরডুইনোতে কেন একটি ঘড়ি আছে?


9

অবশ্যই আমি জানি এটি বিলম্বের সময় নিয়ন্ত্রণ করা দরকারী, তবে অন্য কোনও ব্যবহার?

একটি 16 মেগাহার্জ ঘড়ি সহ, আমার প্রোগ্রামের প্রতিটি লাইন 1/16000000 সেকেন্ড নেবে, তাই না?

এমনকি খুব খুব বড় লাইনটি কি এক সেকেন্ডের 1/16000000 নেবে?

একটি 8 মেগাহার্টজ ঘড়ি সহ, প্রতিটি লাইন সময় দ্বিগুণ নেবে, ঠিক? পুরো "মেইন লুপ" ডাবল সময় লাগবে, তাই না?


3
আপনি সি নির্দেশাবলী এবং মেশিনের (সমাবেশ) নির্দেশাবলীর মধ্যে বিভ্রান্ত করছেন। এমনকি আপনি যদি সরাসরি সমাবেশে লিখেছিলেন তবে আপনি এটির ভাল ব্যবহার করতে পারেন কারণ প্রোগ্রামটি রৈখিক নয়। আমি বোঝাতে চাইছি, নাম হিসাবে যেমন বাধা দেয়, অন্য নির্দেশে গিয়ে আবার শুরু করে স্বাভাবিক কোড প্রবাহকে বাধাগ্রস্ত করে। সুতরাং সম্ভবত একটি লাইন এবং পরবর্তী একের মধ্যে এটি আইএসআর কার্যকর করতে বাধ্য করা হবে, যা খুব দীর্ঘ হতে পারে
ফ্রেগ্রি ৮

2
আপনি যদি আট মিলিহার্ট্জে আপনার চিপটি ঘড়ি রাখেন তবে কোডের সর্বাধিক সরল রেখাটি চিরতরে নেবে। আমি আপনাকে মেগা হার্টজ রেঞ্জের (মেগাহার্টজ) একটি ঘড়ি ব্যবহার করার পরামর্শ দিই ।
এডগার বোনেট

প্রতিটি মেশিন নির্দেশ কার্যকর করতে প্রয়োজনীয় চক্রের সংখ্যাটি নির্দেশ সেট ম্যানুয়ালটিতে বর্ণিত হয়েছে ।
এডগার বোনেট

অভিশাপ আমার ঘুমাতে হবে;), সম্পাদিত ধন্যবাদ
n0tis

উত্তর:


13

আমার আরডুইনোতে কেন একটি ঘড়ি আছে?

কারণ কম্পিউটার এবং মাইক্রোকন্ট্রোলার ইত্যাদি কাজ করে।

একটি 16mhz ঘড়ি সঙ্গে, আমার প্রোগ্রামের প্রতিটি লাইন 1/16000000 সেকেন্ড লাগবে, তাই না?

না।

এমনকি খুব খুব বড় লাইনটি কি এক সেকেন্ডের 1/16000000 নেবে?

না।

ঘড়িটি মেশিন কোড নির্দেশাবলী মেমরি থেকে আনা এবং সম্পাদন করা হয় তা গতিতে সংজ্ঞায়িত করে । বেশিরভাগ নির্দেশাবলী 1 টি ঘড়ির চক্র নেয় তবে কিছু কিছু আরও নেয়।

সি কোডের একটি লাইন যে কোনও সংখ্যক সমাবেশ নির্দেশিকায় সংকলিত হতে পারে, যা মেশিন কোডে (কাঁচা সংখ্যা) রূপান্তরিত হয়। লাইনটি কী করে তার উপর নির্ভর করে 1 টি সংসদীয় নির্দেশনা থেকে শুরু করে হাজার হাজার সমাবেশের নির্দেশাবলী পর্যন্ত যে কোনও জায়গায় এটি হতে পারে।

একটি 8 মেগাহার্টজ ঘড়ি সহ, প্রতিটি লাইন সময় দ্বিগুণ নেবে, তাই না? পুরো "মেইন লুপ" ডাবল সময় লাগবে, তাই না?

চিপের প্রতিটি ক্রিয়াকলাপ ঘড়ির সাহায্যে পরিচালিত হয়। যদি ঘড়িটি আধ গতিতে থাকে তবে চিপটি অর্ধ গতিতে চলছে, তাই প্রতিটি ক্রিয়াকলাপ দ্বিগুণ দীর্ঘ সময় নেবে, হ্যাঁ।


এছাড়াও, বাধা দেয়।
njzk2

1
গৌণ নিটপিক: অপেক্ষাকৃত অপরিশোধিত না হলেও "বিধানসভা সংক্রান্ত নির্দেশাবলীর যে কোনও জায়গা থেকে ..." হওয়া উচিত ...
পিটার

2
দরিদ্র ছেলেটিকে বিভ্রান্ত করবেন না। সে যেমন আছে তেমন একটা কঠিন সময় পার করছে।
Majenko

@ মাজেঙ্কো: বিভ্রান্তি একটি প্রয়োজনীয়তা। এটা কঠিন.
ইন্টেলএফএক্স

@ ইনটেলফ্যাক্স "আইটি"? এটি আইটি নয়, প্রোগ্রামিং করছে ....
বালিনকিংঅফমারিয়া

10

@ মাজেঙ্কোর পোস্টে উত্তর দেওয়া হয়নি: হ্যাঁ, 8 মেগাহার্টজ ঘড়ি সহ প্রতিটি লাইন দ্বিগুণ সময় নেবে। লাইনটি এমন কোনও কিছুর জন্য অপেক্ষা না করে যা ক্লক চালিত নয় - যেমন বাহ্যিক ইনপুট।

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

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

আটমেগা (যা আরডুইনোতে চিপ) এর জন্য, আটমেল (যিনি চিপটি ডিজাইন করেছিলেন) ঘোষণা করেছেন যে এটি এক সেকেন্ডের 1 / 20,000,000 - এটি 20MHz।

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

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


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

অতিরিক্ত জটিলতা: ক্যাশে মিস হয়।
মার্টন-ব্লেস পেরেজ পিনিলা

এমন অনেকগুলি বিষয় রয়েছে যা আমি উল্লেখ করি নি: ক্যাশে (কোনও প্রকারের), বহু-থ্রেডিং, মাল্টি-কোর ... আমি ইতিমধ্যে আমার পোস্টে সম্ভবত খুব বেশি গভীরতায় চলেছি।
আমাদানন ইনক।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.