एक माइक्रोकंट्रोलर पर गुणन की तुलना में हार्डवेयर विभाजन को अधिक समय क्यों लगता है? उदाहरण के लिए, dsPIC पर, एक विभाजन में 19 चक्र होते हैं, जबकि गुणा में केवल एक घड़ी चक्र होता है।
मैं कुछ ट्यूटोरियल से गुजरा, जिसमें विकिपीडिया पर डिवीजन एल्गोरिथ्म और गुणा एल्गोरिथ्म शामिल था। यहाँ मेरा तर्क है।
एक विभाजन एल्गोरिथ्म, विकिपीडिया पर पुनर्स्थापित करने के साथ एक धीमी विभाजन विधि की तरह , एक पुनरावर्ती एल्गोरिथ्म है। इसका अर्थ है कि चरण से परिणाम (मध्यवर्ती) k
का उपयोग चरण के इनपुट के रूप में किया जाता है k+1
, जिसका अर्थ है कि इन एल्गोरिदम को समानांतर नहीं किया जा सकता है। इसलिए, n
विभाजन को पूरा करने में कम से कम चक्र लगते हैं , जबकि n
लाभांश में बिट्स की संख्या होती है। 16-बिट लाभांश के लिए, यह कम से कम 16 चक्रों के बराबर है।
एक गुणन एल्गोरिथ्म को पुनरावर्ती होने की आवश्यकता नहीं है, जिसका अर्थ है कि इसे समानांतर करना संभव है। हालांकि, कई अलग-अलग गुणन एल्गोरिदम हैं, और मेरे पास कोई सुराग नहीं है जिसका उपयोग माइक्रोकंट्रोलर द्वारा किया जा सकता है। हार्डवेयर / माइक्रोकंट्रोलर पर गुणन कैसे काम करता है?
मुझे एक दद्दा गुणक एल्गोरिदम मिला है , जिसे समाप्त करने के लिए केवल एक घड़ी चक्र लेना है। हालाँकि, जो मुझे यहां नहीं मिलता है वह यह है कि दद्दा का एल्गोरिथ्म तीन चरणों में आगे बढ़ता है, जबकि चरण 1 से परिणाम चरण 2 में उपयोग किए जाते हैं, आदि इसके अनुसार, इसे समाप्त करने के लिए कम से कम तीन घड़ी चक्र लगेंगे।