हार्डवेयर / सॉफ्टवेयर इंटरफेस और ऑपरेटिंग सिस्टम पर शुरुआती पाठ्यक्रम का अध्ययन करना, अक्सर इस विषय पर आता है कि क्या सॉफ़्टवेयर और इसके विपरीत कुछ हार्डवेयर भागों को बदलना बेहतर होगा। मैं कनेक्शन नहीं बना सकता।
हार्डवेयर / सॉफ्टवेयर इंटरफेस और ऑपरेटिंग सिस्टम पर शुरुआती पाठ्यक्रम का अध्ययन करना, अक्सर इस विषय पर आता है कि क्या सॉफ़्टवेयर और इसके विपरीत कुछ हार्डवेयर भागों को बदलना बेहतर होगा। मैं कनेक्शन नहीं बना सकता।
जवाबों:
मुझे लगता है कि अन्य उत्तर गायब हैं यह मूलभूत संबंध है:
एक सामान्य-उद्देश्य वाले कंप्यूटर (उदाहरण के लिए एक सीपीयू) को देखते हुए, हम इसे बहुत अधिक गणना करने के लिए प्रोग्राम कर सकते हैं जिसे हमने परिभाषित किया है। हालांकि, विशेष हार्डवेयर बेहतर प्रदर्शन कर सकता है, या कोई मूल्य प्रदान नहीं कर सकता है।
(यह उत्तर डेस्कटॉप प्रसंस्करण पर केंद्रित है और उस डोमेन से उदाहरण का उपयोग करता है)
यदि आप 1990 के दशक के मध्य में पीसी गेमिंग को याद करने के लिए पर्याप्त पुराने हैं, तो आप शायद क्वेक जैसे एफपीएस गेम को याद कर सकते हैं । यह "सॉफ्टवेयर प्रदान किया जाना" शुरू हुआ, जिसका अर्थ है कि सीपीयू ने ग्राफिक्स को प्रस्तुत करने के लिए आवश्यक गणना की। इस बीच, सीपीयू को इनपुट प्रोसेसिंग, ऑडियो प्रोसेसिंग, एआई प्रोसेसिंग आदि का भी प्रदर्शन करना पड़ता था। यह सीपीयू संसाधनों पर बहुत अधिक कर लगता था। इसके अलावा, ग्राफिक्स प्रोसेसिंग मुख्य धारा सीपीयू (तब या अब) के लिए अच्छी तरह से अनुकूल नहीं है। यह एक बहुत ही उच्च समानांतर कार्य है, यहां तक कि एक आधुनिक उच्च अंत सीपीयू (8) की तुलना में कई अधिक कोर की आवश्यकता होती है।
हमने ग्राफिक्स प्रोसेसिंग को सॉफ्टवेयर से हार्डवेयर में स्थानांतरित किया: 3dfx वूडू और एनवीडिया टीएनटी (अब GeForce ) दर्ज करें। ये विशेष ग्राफिक्स कार्ड थे जो सीपीयू से GPU तक प्रसंस्करण को बंद कर देते थे। इतना ही नहीं इस कार्यभार को फैलाने के लिए, अधिक कंप्यूटिंग संसाधन प्रदान करने के लिए समान कार्य करने के लिए, ग्राफिक्स कार्ड विशेष हार्डवेयर थे जो 3 डी ग्राफिक्स को बहुत तेजी से और सीपीयू की तुलना में अधिक सुविधाओं के साथ प्रस्तुत कर सकते थे।
आधुनिक युग में फास्ट फॉरवर्ड, और डेस्कटॉप पर गैर-सीपीयू ग्राफिक्स की आवश्यकता होती है । यहां तक कि ऑपरेटिंग सिस्टम एक जीपीयू के बिना काम नहीं कर सकता है। यह इतना महत्वपूर्ण है कि सीपीयू वास्तव में अब GPUs को एकीकृत करते हैं। 1
जब डीवीडी एकदम नया था, तो आप अपने डेस्कटॉप कंप्यूटर में एक डीवीडी ड्राइव स्थापित कर सकते हैं। हालाँकि, दिन का सीपीयू इतना शक्तिशाली नहीं था कि वह बिना रुके डीवीडी वीडियो और ऑडियो स्ट्रीम को डिकोड कर सके। पहले, डिकोडिंग करने के लिए एक विशेष PCI बोर्ड की आवश्यकता होती थी। यह विशेष हार्डवेयर था जो विशेष रूप से डीवीडी प्रारूप को डिकोड करने के लिए बनाया गया था और कुछ नहीं। 3 डी ग्राफिक्स के साथ बहुत पसंद है, इसने न केवल अधिक कंप्यूटिंग संसाधन प्रदान किए, बल्कि कार्य के लिए कस्टम-बिल्ट किया गया, जिससे डीवीडी प्लेबैक सुचारू हो गया।
चूंकि सीपीयू बहुत अधिक शक्तिशाली हो गए थे, इसलिए सॉफ्टवेयर में डीवीडी को "सामान्य-उद्देश्य वाले कंप्यूटर पर" अर्थ "कहा जाना संभव हो गया।" कम-कुशल प्रोसेसर के साथ भी, इसमें उपयोगकर्ताओं की अपेक्षाओं के लिए डीवीडी प्लेबैक कार्य करने के लिए पर्याप्त कच्ची गति और पाइपलाइन अनुकूलन थे।
अब हमारे पास सीपीयू सैकड़ों या हजारों बार शक्तिशाली 2 हैं जैसा कि हमारे पास था जब डीवीडी पेश किया गया था। जब ब्लू-रे साथ आया, तो हमें कभी भी विशेष हार्डवेयर की आवश्यकता नहीं थी, क्योंकि सामान्य-उद्देश्य वाला हार्डवेयर कार्य को संभालने के लिए पर्याप्त शक्तिशाली से अधिक था।
आधुनिक इंटेल सीपीयू में H.264 एन्कोडिंग और डिकोडिंग के लिए विशेष निर्देश हैं । यह एक प्रवृत्ति का हिस्सा है जहां सामान्य-उद्देश्य वाले सीपीयू विशेष कार्य प्राप्त कर रहे हैं, सभी एक ही चिप में। हमें जल्दी से डीवीडी के साथ H.264 को कुशलतापूर्वक डिकोड करने के लिए एक अलग PCI एक्सप्रेस बोर्ड की आवश्यकता नहीं है, क्योंकि CPU में समान सर्किटरी होती है।
1 जीपीयू एक प्रोसेसर को संदर्भित करता है जिसे विशेष रूप से ग्राफिकल कम्प्यूटेशन करने के लिए डिज़ाइन किया गया है। पुराने 2 डी ग्राफिक्स कार्ड जीपीयू नहीं थे : वे मॉनिटर पर बात करने के लिए डीएसीएस के साथ बस फ्रेमबफ़र थे। अंतर जीपीयू में विशेष प्रोसेसर होते हैं जो कुछ प्रकार की गणनाओं में उत्कृष्टता प्राप्त करते हैं, और जैसे-जैसे समय बीतता गया, अब वास्तव में खुद (शेडर्स) प्रोग्राम करने योग्य हैं। ग्राफिक्स हार्डवेयर में हमेशा एक विशेष सर्किटरी होती है, जो डेटा को एक फ्रेमबफ़र में एक प्रारूप में परिवर्तित करने के लिए आवश्यक होती है, जो एक केबल (वीजीए, डीवीआई, एचडीएमआई, डिस्प्लेपोर्ट) में आउटपुट हो सकती है और एक मॉनिटर द्वारा समझी जा सकती है। यह विशेष हार्डवेयर के लिए गणना उतारने की चर्चा के लिए अप्रासंगिक है ।
2 डीवीडी-वीडियो 1997 में जारी किया गया था, एक समय में जब पेंटियम 2 भी नव-रिलीज़ किया गया था। यह एक ऐसा समय था जब सीपीयू तेजी से शक्ति में वृद्धि कर रहे थे: एक डीवीडी डिकोडर के साथ एक नया पी 2 कंप्यूटर पर विचार कर सकता था, या थोड़ा पुराने पी 1 में स्थापित कर सकता था। तुलना करें कि विकिपीडिया की MIPS की सूची का उपयोग कर एक आधुनिक पीढ़ी के 6 कोर i7 , और एक आधुनिक सीपीयू कहीं भी 590 और 1,690 गुना तेज है। यह घड़ी की गति के हिस्से के कारण है, लेकिन मानक कोर के साथ-साथ आधुनिक सीपीयू के साथ-साथ प्रति घड़ी टिक के प्रति बहुत अधिक काम करने के लिए भी आधुनिक सीपीयू के लिए कदम है। यह भी प्रासंगिक है कि प्रौद्योगिकी प्रगति के रूप में, इंटेल (जो डेस्कटॉप और x86 सर्वर मार्केट पर हावी है) उन विशेष कार्यों को गति प्रदान करने में विशेष निर्देश जोड़ता है जो डेस्कटॉप उपयोगकर्ता करना चाहते हैं (जैसे वीडियो डिकोडिंग)।
मुझे आश्चर्य है कि अभी तक किसी ने भी सबसे चमकदार उदाहरणों में से एक का उल्लेख नहीं किया है: सॉफ्टवेयर-परिभाषित रेडियो।
यदि आपने कुछ 50 वर्षों के समय में एक वर्तमान स्मार्टफोन वापस लिया और 1960 के दशक के मध्य से एक सक्षम इंजीनियर को दिखाया, तो वह इसे समझने में सक्षम होगा। कि एक सुपरकंप्यूटर आपकी जेब में फिट होने वाली किसी चीज़ के लिए कम हो सकता है? चेक। आप पैकेज में एक अल्ट्रा-उच्च-गुणवत्ता वाले रंगीन टेलीविजन के बराबर हो सकते हैं? चेक। यह है कि यह बहुत तेजी से है, उस युग के कंप्यूटरों की तुलना में बहुत अधिक भंडारण आदि है? चेक। उस सॉफ़्टवेयर को लिखा गया है जो ऐसे जटिल कार्य कर सकता है? चेक।
लेकिन उस सक्षम इंजीनियर को बताएं कि ओह, इस पैकेज में अत्यंत कुशल ट्रांसमीटर और संवेदनशील रिसीवर का एक सेट शामिल है: एक डिजिटल स्प्रेड स्पेक्ट्रम ट्रांसीवर जो एक साथ कई चैनलों पर संचारित और प्राप्त कर सकता है, जो एक इंफ्रास्ट्रक्चर टॉवर के साथ संचार कर सकता है जो मीलों दूर हो सकता है ; एक अन्य डिजिटल ट्रांसीवर जो बिल्डिंग स्टेशन में कहीं बेस स्टेशन के साथ हाई स्पीड डेटा का संचार करता है; अभी तक एक और डिजिटल ट्रान्सीवर जो कम-शक्ति वाले पहनने योग्य उपकरणों के साथ संचार करता है; और एक अन्य रिसीवर जो मध्यवर्ती कक्षा में एक उपग्रह से एक कमजोर संकेत उठाता है ... वह आपको झूठा कहता है।
वह आपको झूठा कहेगा क्योंकि वह जानता है कि इस तरह की उच्च संवेदनशीलता के रिसीवर बिना ट्यून्ड सर्किट की भीड़ के बिना नहीं बनाए जा सकते हैं, जो पड़ोसी स्टेशनों को छानते हैं और ब्याज के संकेत का चयन करते हैं। और इस तरह के सर्किट को ऐसे आकारों के साथ भागों की आवश्यकता होती है जो कि प्रौद्योगिकी से अधिक भौतिकी द्वारा परिभाषित होते हैं, जैसे कि कैपेसिटर और इंडोर्स।
फिर आपको यह समझाना होगा कि एक आधुनिक रेडियो में, इसका अधिकांश भाग सॉफ्टवेयर में किया जाता है। ऐन्टेना से आने वाले सिग्नल के बाद एक मध्यवर्ती आवृत्ति में परिवर्तित किया जाता है और थोड़ा सा बढ़ाया जाता है, फिर इसे एनालॉग-टू-डिजिटल कनवर्टर द्वारा नमूना किया जाता है; और बाद में प्रसंस्करण एक डिजिटल सिग्नल प्रोसेसर में होता है। वह सब ट्यूनिंग, वह फ़िल्टरिंग, जिसमें एक पुराने स्कूल हाई-एंड रेडियो में टन के हार्डवेयर की आवश्यकता होती थी, जिसे गणितीय समीकरणों के रूप में वर्णित किया जा सकता है; और अगर ऐसा किया जा सकता है, तो डीएसपी द्वारा वास्तविक समय में उन समीकरणों को निष्पादित किया जा सकता है।
यह, मुझे लगता है, हार्डवेयर की जगह सॉफ्टवेयर के सबसे शानदार उदाहरणों में से एक है। नतीजतन, हम अपनी जेब में स्मार्टफ़ोन ले जाते हैं, जो कि एक सक्षम 1960 के इंजीनियर के लिए भी एक जादुई चाल के समान होगा।
इसकी तुलना में, यह विचार कि गेराज दरवाजा खोलने वाला, एक इलेक्ट्रॉनिक बाथरूम स्केल या टीवी रिमोट का साधारण तर्क आजकल सामान्य हार्डवेयर के बजाय एक सामान्य प्रयोजन माइक्रोकंट्रोलर और सॉफ्टवेयर का उपयोग करके लागू किया जाता है, लगभग तुच्छ लगता है (और यह निश्चित रूप से बहुत होगा। सॉफ्टवेयर-परिभाषित रेडियो की तुलना में हमारे काल्पनिक 1960 के इंजीनियर के लिए अधिक समझदार।)
इस सर्किट पर विचार करें:
यह एक फ्लिप फ्लॉप, उर्फ बिस्टेबल मल्टीविब्रेटर है। इसे इस कोड से बदला जा सकता है:
static bool toggle;
if (toggle == true)
{
lblTop.BackColor = Color.Black;
lblBottom.back Color = Color.Red;
}
else
{
lblTop.BackColor = Color.Red;
lblBottom.BackColor = Color.Black;
}
toggle = !toggle;
इसका मतलब है कि वास्तव में यह कैसा लगता है।
एक विशेष रूप से प्रसिद्ध उदाहरण Apple II के लिए स्टीव वोज्नियाक द्वारा डिज़ाइन किया गया डिस्क II ड्राइव है :
मुख्य सॉफ़्टवेयर सॉफ्टवेयर का उपयोग करके नियंत्रक को कॉम्पैक्ट बना रहा था जबकि प्रतियोगियों हार्डवेयर पर निर्भर थे। बिल फर्नांडीज के रूप में, तब एप्पल के एक इलेक्ट्रॉनिक तकनीशियन, इसे याद करते हैं, "[वोज्नियाक के] डिजाइन [] का मुख्य लाभ यह था कि इसमें सामान्य 60 से 70 के बजाय केवल छह चिप्स का उपयोग किया गया था
एक और उदाहरण जिससे आप शायद अधिक परिचित हों: एमुलेटर। वे पूरी तरह से सॉफ्टवेयर में हार्डवेयर (और सॉफ्टवेयर) के पूरे सेट को बदल देते हैं। सीपीयू, विभिन्न नियंत्रण चिप्स, यहां तक कि भंडारण उपकरण।
अब आप सभी हार्डवेयर को समाप्त नहीं कर सकते, अंततः आपको सॉफ्टवेयर को चलाने के लिए कुछ चाहिए । लेकिन सामान्य तौर पर, हार्डवेयर में आपके द्वारा लागू किया जा सकने वाला कोई भी लॉजिक कार्य सॉफ्टवेयर में भी कार्यान्वित किया जा सकता है (प्रदर्शन समान नहीं हो सकता है, यह धीमा, तेज या अलग-अलग स्थितियों में अंतर्निहित हार्डवेयर और कार्यान्वयन पर निर्भर करता है) हो सकता है।
एक और क्षेत्र जिसमें यह सच है, संश्लेषण है।
प्रारंभिक सिंथेसाइज़र 100% एनालॉग हार्डवेयर थे, जो सीधे तरंगरूप उत्पन्न करते थे, फिर उन्हें सर्किट्री (फिल्टर, एम्पलीफायरों, आदि) के माध्यम से संशोधित करते थे। ध्वनि को डिजिटल रूप से संश्लेषित करना संभव था, लेकिन इसके लिए कंप्यूटिंग संसाधनों की आवश्यकता थी जो औसत व्यक्ति बर्दाश्त नहीं कर सकता था (एक वास्तविक मेनफ्रेम और कस्टम डिजिटल-से-एनालॉग कनवर्टर हार्डवेयर)।
चिप निर्माण में सुधार के रूप में, सिंथेसाइज़र शुद्ध संकेतों से डिजिटल सिग्नल द्वारा नियंत्रित सिंथेसाइज़र चिप्स पर स्थानांतरित हो गए, लेकिन अभी भी एनालॉग सिग्नल पैदा कर रहे हैं, और फिर शुद्ध डिजिटल संश्लेषण (नमूना प्लेबैक, एफएम संश्लेषण , सच्चा जोड़ संश्लेषण, और इसी तरह)।
आज, प्रोसेसर सस्ते और पर्याप्त रूप से पर्याप्त हैं जो प्रोग्रामर को क्लासिक एनालॉग सिंथेसाइज़र के कंप्यूटर संस्करण बनाने की अनुमति देते हैं जो वास्तविक समय में उनके व्यवहार का अनुकरण करके मूल सर्किट के व्यवहार की नकल करते हैं - वास्तव में, फोन और टैबलेट अब तेजी से चलने में सक्षम हैं इन पुन: कृतियों को चलाएं; Korg आईएमएस-20 एक उदाहरण है।
क्लासिक सिंथेसाइज़र और नए दोनों डिजिटल ऑडियो प्रोग्राम जैसे एबलटन लाइव, लॉजिक या क्यूबसे के लिए वीएसटी या एयू प्लगइन्स के रूप में उपलब्ध हैं, और ये उन लोगों को सिंथेसाइज़र तक पहुंच प्रदान करते हैं जिनके पास अन्यथा स्थान या पैसा नहीं है जो उपयोग करने में सक्षम हैं। उन्हें।
संपादित करें: मुझे इस बिंदु पर VCVRack का भी उल्लेख करना चाहिए , जो वास्तविक समय में एनालॉग मॉड्यूलर संश्लेषण का अनुकरण करता है। संगीत के कुछ सेकंड के लिए मल्टी-घंटे रेंडर बार से एक कदम आगे।
>:*3
।
पूर्व समय में, कटौती काफी स्पष्ट थी। तेजी से निष्पादन की आवश्यकता वाली अधिकांश चीजों को हार्डवेयर में लागू किया जाना था। उदाहरण के लिए एक मल्टीवीब्रेटर लें जो एक आवृत्ति उत्पन्न करता है। बहुत समय पहले आपको ट्रांजिस्टर, कैपेसिटर और अंततः एक क्वार्ट्ज (निश्चित) आवृत्ति उत्पन्न करने के लिए एक जोड़े की आवश्यकता थी। अब सस्ते माइक्रो-कंट्रोलर हैं जिनकी लागत केवल कुछ सेंट है। चूंकि वे बहुत तेज़ हैं, आप उन्हें मल्टीविब्रेटर बनाने के लिए आसानी से उपयोग कर सकते हैं। और इसके अलावा आप आसानी से सॉफ्टवेयर के माध्यम से नियंत्रित कर सकते हैं कि किस आवृत्ति को उत्पन्न करने के लिए जहां पूर्व समय में आपको अलग-अलग हार्डवेयर की आवश्यकता थी। हालांकि, एक निश्चित (लेकिन अब बल्कि उच्च) आवृत्ति पर जाने के लिए आपको अभी भी शुद्ध हार्डवेयर की आवश्यकता होगी। तो आप देखते हैं, दोनों के बीच एक रेखा है, लेकिन आप जिस भाग को सॉफ्टवेयर के साथ हल कर सकते हैं वह बढ़ रहा है (तेजी से)।
वास्तव में संपादित करें "सॉफ्टवेयर हार्डवेयर को बदल सकता है" वास्तव में सही नहीं है। यह सिर्फ तथ्य है कि हार्डवेयर इतना शक्तिशाली हो गया है कि आप इसका उपयोग सॉफ्टवेयर चलाने के लिए कर सकते हैं जो हार्डवेयर का अनुकरण करता है। इसलिए कुछ सरल लेकिन स्टैटिकली सोल्डर ट्रांजिस्टर के बजाय आप सॉफ्टवेयर को समझने वाले लाखों ट्रांजिस्टर का उपयोग करते हैं। इसलिए यह शब्द "हार्डवेयर अब सॉफ्टवेयर समझ सकता है" होना चाहिए।
आर्केड गेम टैंक (लगभग 1976) और होम कंसोल गेम कॉम्बैट (1977) के बीच एक तुलना का एक अच्छा उदाहरण है कि कैसे सॉफ्टवेयर हार्डवेयर को 40 साल पहले भी बदल सकता है।
आर्केड गेम टैंक (लगभग 1976) ने दो खिलाड़ियों को टैंक के आसपास ड्राइव करने और एक दूसरे पर शूट करने की अनुमति दी। इसमें किसी भी प्रकार का प्रोसेसर शामिल नहीं था, बल्कि इसके बजाय हार्डवेयर काउंटर थे, जिसमें इलेक्ट्रॉन बीम, टैंक और शॉट्स के क्षैतिज और ऊर्ध्वाधर पदों पर नज़र रखने के साथ-साथ खिलाड़ी के स्कोर, घूर्णी कोण, बीता हुआ समय भी था। इसमें स्कोर, खिलाड़ियों के टैंक आकृतियों और पृष्ठभूमि से जुड़े बिटमैप डेटा को आउटपुट करने के लिए हार्डवेअर लॉजिक था।
अटारी 2600 वीडियो कंप्यूटर सिस्टम (एक होम गेम कंसोल लगभग 1977) में दो बिटमैप ऑब्जेक्ट्स और चार वेरिएबल-चौड़ाई पल्स जनरेटर के हॉरिजॉन्टल (लेकिन वर्टीकल!) पोजिशन को ट्रैक करने के लिए हार्डवेयर को शामिल किया गया, 20-बिट-वाइड लो को होल्ड और क्लॉक किया गया -विकास प्लेफील्ड ग्राफिक्स पैटर्न के साथ-साथ दो उच्च-रिज़ॉल्यूशन 8-बिट पैटर्न, खिलाड़ियों के लिए कुंडी रंग, पृष्ठभूमि और प्लेफील्ड, और विभिन्न वस्तुओं के बीच टकराव का पता लगाते हैं। इसमें एक सामान्य-उद्देश्य प्रोग्राम करने योग्य टाइमर भी शामिल था, लेकिन हार्डवेयर में उपरोक्त के अलावा बहुत कम थे। फिर भी, भले ही हार्डवेयर गेम टैंक की तुलना में बहुत सरल है, 2K ROM कारतूस कॉम्बैट 2600 को एक ही मूल गेम खेलने की अनुमति देता है, लेकिन कई अन्य सुविधाओं (वाहनों और पृष्ठभूमि की एक किस्म, शेख़ी शॉट्स, आदि) के कारण। यह अधिकतर आर्केड मशीन की जगह ले सकता है ' सॉफ्टवेयर के साथ हार्डवेयर। दिलचस्प बात यह है कि भले ही अटारी 2600 किसी भी व्यावसायिक रूप से बेचे जाने वाले माइक्रोप्रोसेसर-आधारित होम वीडियो गेम सिस्टम का दूसरा सबसे सरल हार्डवेयर प्लेटफॉर्म है, लेकिन यह सॉफ्टवेयर के साथ हार्डवेयर को बदलने की सुविधा के लिए इतनी अच्छी तरह से डिज़ाइन किया गया है कि जब सही ढंग से प्रोग्राम किया जाता है तो यह कई के आसपास हलकों को चला सकता है। इसके प्रतियोगी।
वाक्यांश "सॉफ़्टवेयर हार्डवेयर को प्रतिस्थापित कर सकता है" हार्डवेयर के साथ समस्याओं को आज़माने और हल न करने की चेतावनी है जब तक कि बहुत स्पष्ट लाभ न हों। सॉफ्टवेयर विकसित करने के लिए 10x-50x सस्ता है और हार्डवेयर की तुलना में प्रति यूनिट उत्पादन करने के लिए लगभग असीम रूप से सस्ता है। जब तक X वास्तव में सॉफ्टवेयर में कुशलता से नहीं किया जा सकता है, तब तक हार्डवेयर में X करना एक विजयी समाधान नहीं होगा।
बारीकियों को अच्छी तरह से निपटाया गया है, लेकिन मुझे लगता है कि यह ओपी के लिए ठोकर की संभावना है, यह सॉफ्टवेयर के साथ हार्डवेयर को बदलने के लिए बहुत संभव नहीं है। 'हार्डवेयर' में हमेशा 'सॉफ्टवेयर' समाधान की तुलना में काफी कम 'हार्डवेयर' शामिल होता है।
अंतर यह है कि एक प्रक्रिया / एल्गोरिथ्म / संगणना के तर्क को हार्डवेयर और सॉफ्टवेयर के बीच स्थानांतरित किया जा सकता है। कई उदाहरण दिए गए हैं, इसलिए मैं विस्तृत नहीं करूंगा।
वर्चुअल मेमोरी वाले शुरुआती कंप्यूटरों में, आपको एक नया पेज प्रविष्टि लोड करने के लिए TLB मिस पर टास्क स्विच करना पड़ता था। OS सॉफ़्टवेयर का एक टुकड़ा सही प्रक्रिया ढूंढता है, और पेज तालिकाओं के माध्यम से चलता है, सही प्रविष्टि ढूंढता है और इसे TLB पर वापस लिखता है। जारी रखने के लिए मूल प्रक्रिया पर वापस जाने से पहले।
अब ज्यादातर सीपीयू प्रक्रिया, पेज टेबल को पढ़ना, पेज टेबल पर चलना और टीएलबी को अपडेट करने के लिए हार्डवेयर का उपयोग करते हैं।
दोनों विधियों को पृष्ठ-दोषों को संभालने के लिए सॉफ़्टवेयर का उपयोग करने की आवश्यकता होती है, लेकिन TLB-misses handily outnumber पृष्ठ-दोषों के कारण हार्डवेयर चलना अभी भी बेहतर सॉफ़्टवेयर है।
जेनरल में यदि आपके पास एक सरल प्रक्रिया है जिसे आपको बार-बार संभालने की आवश्यकता होती है तो आपको हार्डवेयर रिप्लेसमेंट मिल जाता है। यदि आपके पास जटिल नियंत्रण प्रवाह के साथ एक जटिल हार्डवेयर समाधान है, तो आप सॉफ़्टवेयर का उपयोग करके हार्डवेयर को सरल बना सकते हैं।
ऐसे कई उदाहरण हैं जहां सॉफ्टवेयर हार्डवेयर को बदल सकता है और इसके विपरीत।
इसका एक उत्कृष्ट उदाहरण एक गणित की खोज तालिका है। हर बार सामान्य अभिव्यक्तियों के परिणामों की गणना करने के बजाय, उन्हें आपके गणित के सह-प्रोसेसर में आंतरिक रूप से संग्रहीत किया जाता है, और बस जरूरत पड़ने पर संदर्भित किया जाता है।
अधिकांश शायद पहले से ही ऑडियो फिल्टर से परिचित हैं, और सॉफ्टवेयर जो वास्तविक उपकरणों और उपकरणों की नकल या एम्पलीफायरों की नकल कर सकते हैं।
वस्तुतः बनाए जा सकने वाले किसी भी हार्डवेयर का उपयोग किया जाएगा, यदि यह भौतिक समतुल्य की तुलना में तेज़ और / या सस्ता है।
लेखांकन में, एक चालान की एक हार्ड कॉपी (उदाहरण के लिए) अब इलेक्ट्रॉनिक रूप से भेजी जा सकती है, और सॉफ्टवेयर इस तरह की कागजी कार्रवाई की प्राप्ति और इसके प्रसंस्करण को अधिक से अधिक संभालना शुरू कर रहा है। यह सॉफ्टवेयर द्वारा प्रतिस्थापित हार्डवेयर का एक उत्कृष्ट उदाहरण है।