ALU में विभिन्न प्रकार के कार्य (जैसे, जोड़, घटाना और आदि) कैसे लागू होते हैं?


9

मुझे आश्चर्य हो रहा है क्योंकि एएलयू को करने के लिए बहुत सारे कार्य करने की आवश्यकता है, मैं कैसे एक को लागू करना शुरू कर सकता हूं (एक होमवर्क जहां मैं Logisim के साथ एक MIPS प्रणाली को लागू करने वाला हूं, बुनियादी गेट्स, फ्लिप-फ्लॉप आदि का उपयोग करके)।

जिस भाग के बारे में मैं उलझन में हूँ, वह यह है कि मैं ALU कैसे लागू कर सकता हूँ, जो Add / Subtract / AND / OR / etc जैसे विभिन्न कार्य कर सकता है। क्या मुझे अधिक नियंत्रण तर्क की आवश्यकता है (नीचे "प्रबल असाइनमेंट" में शीर्ष दाएं देखें)।

पिछले असाइनमेंट में, मैंने एक ALU लागू किया है जो Add / Subtract / Negate कर सकता है। अब मुझे लगता है कि ALU जैसे कार्य करने में सक्षम होना चाहिए

मेरा प्रबल काम

जवाबों:


7

आंतरिक रूप से सभी उत्तरों की गणना करते हुए, और फिर उनके बीच चयन करने के लिए एक मक्स का उपयोग करना काम करेगा, यह निश्चित रूप से एक न्यूनतम डिजाइन नहीं है।

इस बात पर विचार करें कि आप समस्या का बिट-स्लाइस कर सकते हैं; दो 8 बिट इनपुट के साथ तर्क के एक एकल ब्लॉक के बजाय, आप इसे दो 4-बिट अनुभागों के रूप में विभाजित कर सकते हैं, जब तक कि आप उन्हें एक सही समग्र परिणाम प्राप्त करने के लिए लिंक कर सकते हैं। सौभाग्य से, स्लाइस को जोड़ना एक बिट से भी बदतर नहीं है, जो इसके अलावा मामले में कैरी बिट का प्रतिनिधित्व करता है। इसलिए प्रत्येक 4-बिट स्लाइस में कैरी-इन बिट और कैरी-आउट बिट होता है। (ध्यान दें कि AND और NOR जैसे तार्किकों को भी इसकी आवश्यकता नहीं होगी, हालाँकि यदि बाद में आप बाईं / दाईं पाली को लागू करते हैं, तो यह बिट आसानी से पुन: purposed है)।

एक चरम पर ले जाया गया आप 1-बिट के 8 स्लाइस का उपयोग कर सकते हैं। 1-बिट स्लाइस के बारे में सोचना उपयोगी है, क्योंकि यह एक ऐसे दृष्टिकोण के बारे में सोचना आसान बनाता है जो बड़े स्लाइस के लिए वापस आता है। तो 1-बिट स्लाइस के साथ, आपके पास सिर्फ 7 इनपुट हैं: 4 बिट फ़ंक्शन कोड, इनपुट A से थोड़ा, इनपुट B से थोड़ा और कैरी-इन बिट। आपके पास सिर्फ दो आउटपुट हैं: कार्य करना, और बाहर ले जाना। तो अब आप केवल 7 इनपुट के संदर्भ में दो आउटपुट फ़ंक्शन लिख सकते हैं, जो मानव क्षमता के दायरे में यथोचित रूप से कम करने के लिए है। आप एक मुट्ठी भर फाटकों के साथ समाप्त हो जाएंगे जो जरूरी नहीं कि हमेशा सभी कार्यों की गणना करेंगे, लेकिन यह कोई फर्क नहीं पड़ता कि स्लाइस के भीतर क्या होता है , केवल यह कि यह सही परिणाम पैदा करता है जब बाहर से देखा जाता है।

अब आप कुछ तरीकों से जा सकते हैं। एक तरीका यह है कि आप इन 1-बिट स्लाइस में से 8 का उपयोग करें और आप कर रहे हैं। एक और तरीका यह है कि बड़े स्लाइस बनाएं और फिर उन का उपयोग करें। 1-बिट से 2-बिट तक जा रहे हैं, समीकरण 7 इनपुट से 9 तक जाते हैं, और 4-बिट से 13 इनपुट के कार्यों की आवश्यकता होगी। यह आसान नहीं है, लेकिन गणना-सब कुछ-तब-मक्स दृष्टिकोण की तुलना में अधिक कॉम्पैक्ट परिणाम देगा। इसके अलावा, अगर आप 74181 4-बिट ALU स्लाइस के इंटर्नल्स को देखते हैं, तो आपको वहां एक मक्स दिखाई नहीं देगा।


मैं स्पेक्ट्रम के अंत के साथ शुरू करने के लिए "अपने सिर को प्राप्त करने के लिए आसान चारों ओर" अपने उत्तर को अधिक लक्षित कर रहा था, लेकिन अधिक इष्टतम (हार्डवेयर-वार) संभावना को इंगित करने के लिए धन्यवाद।
मार्टिन थॉम्पसन

5

हां, आपको अधिक नियंत्रण तर्क की आवश्यकता है।

आपका पिछला असाइनमेंट विशुद्ध रूप से अंकगणितीय था (क्या यह एक शब्द है?), इसलिए आप एक एकल योजक का उपयोग कर सकते हैं और नियंत्रण संकेतों का उपयोग करके उन इनपुट को मालिश कर सकते हैं जो आप चाहते हैं।

आपके नए कार्य तार्किक हैं , इसलिए आपको तार्किक संचालन करने के लिए एक और ब्लॉक की आवश्यकता है। नियंत्रण संकेतों से इस ब्लॉक की कार्यक्षमता बदल जाएगी।

फिर अपने आरेख के तल पर आपको नियंत्रण संकेतों द्वारा संचालित एक मल्टीप्लेक्सर (कभी-कभी 'मक्स' कहा जाता है) की आवश्यकता होगी, यह चुनने के लिए कि आप कौन से उत्तरों को आउटपुट करने जा रहे हैं (एक योजक से और यह "इनपुट मालिश" सर्किट है या तर्क ऑपरेटर से एक)।

यदि आप अपने ALU नियंत्रण रेखाओं के लिए नए एनकोडिंग का चयन कर सकते हैं, तो मुझे MSB का उपयोग "अंकगणित / तर्क" के रूप में करने के लिए किया जा सकता है, और अन्य अगर "समझदारी" का चयन करते हैं, तो यह समझ में आता है, क्योंकि यह डिकोड को सरल बनाता है। अंतिम मौक्स।


हां, अंकगणित एक शब्द है :)
माजेंको

1
मुझे लगता है कि सिर्फ अंकगणित आप चाहते हैं शब्द है। ध्यान दें कि इस शब्द में तीसरे शब्दांश पर उच्चारण है। दूसरे शब्दांश पर उच्चारण के साथ, यह एक अलग शब्द है, जिसमें आप बेसिक न्यूमेरिकल ऑपेरटेशन जैसे कि ग्रेड स्कूल में सीखते हैं, के मैकेनिक्स का जिक्र है।
ओलिन लेट्रोप

1

तार्किक संचालन को संभालने के लिए एक अच्छा तरीका यह है कि दो ऑपरेंड के बिट्स एक 4-इनपुट मल्टीप्लेक्स के चयनकर्ता इनपुट के रूप में काम करते हैं, और मल्टीप्लेयर के "डेटा" इनपुट को वांछित ऑपरेशन के अनुरूप चार-बिट पैटर्न (आमतौर पर) में फ़ीड करते हैं एक 8-बिट ALU, आठ मल्टीप्लेक्सर्स होंगे - प्रत्येक बिट के लिए एक - और सभी 8 मल्टीप्लेक्सर्स के "डेटा" इनपुट एक साथ बंधे होंगे)।


एक मल्टीप्लेक्सर को एक बहुत छोटे रोम के रूप में उपयोग करने की तरह - और यह वास्तविक रोम का उपयोग करने के लिए जाने का एक और तरीका है।
जस्टजेफ

एनएक्स 1-बिट रॉम एक मल्टीप्लेक्स है जिसका "डेटा" इनपुट हार्ड-वायर्ड है। मेरे द्वारा वर्णित परिदृश्य में, मल्टीप्लेक्स के "डेटा" इनपुट एक ऑपरेटर-चयन होगा। व्यवहार में, एक शायद 16 या कुछ तार्किक ऑपरेशनों में से कुछ का चयन करने के लिए एक छोटी सी रॉम का उपयोग करेगा, साथ ही 3- या 4-बिट ओपकोड से एक या कुछ अन्य ऑपरेशन कर सकता है (एक, यदि वांछित हो, तो सीधे ओपोड पास से गुजर सकता है तार्किक इकाई, लेकिन उन मामलों में अन्य संचालन का चयन करने के लिए अन्य मल्टीप्लेक्सर्स का उपयोग करें जहां ओपकोड एक उपयोगी तार्किक ऑपरेशन नहीं उत्पन्न करेगा)।
सुपरकैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.