क्या केवल रैम के रूप में आंतरिक कैश का उपयोग करते हुए, एक बिजली की आपूर्ति और एक रॉम से ज्यादा कुछ नहीं के साथ एक सीपीयू फ़ंक्शन हो सकता है?


61

क्या कोई CPU (जैसे Intel i3 / i5 / i7 / Xeon) ऑन-चिप कैश रैम का उपयोग कर सकता है, जो कि इसके केवल कार्यात्मक रैम के रूप में, बिना किसी बाहरी मेमोरी बैंक के संलग्न हैं?

या बाहरी रैम होनी चाहिए , और कैश को एक्सेस या अकेले इस्तेमाल नहीं किया जा सकता है?

आधुनिक डेस्कटॉप / सर्वर सीपीयू में प्रायः 1990 के कंप्यूटरों की तुलना में अधिक आंतरिक कैश रैम होती है, जो पूरे सिस्टम मेमोरी में होती है, इसलिए सरल कोड को चलाने के लिए पर्याप्त पर्याप्त होना चाहिए।

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

यह किसी भी प्रकार के आधुनिक ऑपरेटिंग सिस्टम को चलाने का सवाल नहीं है, बल्कि एक कस्टम रॉम में प्रोग्राम किए गए सरल कोड को चलाने या हेक्स इनपुट कीपैड के साथ हाथ से प्रवेश करने का है।


1
पूरी तरह से सीपीयू पर निर्भर करता है और आप वास्तव में "कैश" से मतलब रखते हैं क्योंकि कुछ सीपीयू में उनके रैम का निर्माण होता है और उन्हें बाहरी चिप्स की आवश्यकता नहीं होती है।
प्लाज़्मा एचएच

42
मूल रूप से, यदि आप प्रोसेसर में ही पता करने योग्य मेमोरी को शामिल करते हैं, तो आप वह निर्माण करते हैं जिसे हम माइक्रोकंट्रोलर कहते हैं। ये मौजूद हैं।
मार्कस मूलर

1
कौन कहता है कि आपको किसी भी रैम की आवश्यकता है?
क्रिस स्ट्रैटन

1
निर्भर करता है कि आप "फ़ंक्शन" को कैसे परिभाषित करते हैं। मैं शर्त लगाता हूं कि एक i7 केवल एक बैटरी से जुड़ा हुआ है जो इससे जुड़ी एक बैटरी के साथ पूरी तरह से सक्षम है।
दिमित्री ग्रिगोरीव

2
कई चीजें हैं जो आप केवल कुछ रजिस्टरों के साथ कर सकते हैं और कोई अतिरिक्त रैम नहीं। उदाहरण के लिए, एक फ़ंक्शन जनरेटर।
डेविड श्वार्ट्ज

जवाबों:


67

पीसी बूट अनुक्रम के इस अत्यंत विस्तृत खाते को देखें: http://www.drdobbs.com/parallel/booting-an-intel-Healthecture-system-par/232300699?pgno=2

चूंकि इस बिंदु पर कोई DRAM उपलब्ध नहीं है, इसलिए कोड शुरू में स्टैकलेस वातावरण में काम करता है। अधिकांश आधुनिक प्रोसेसर में एक आंतरिक कैश होता है जिसे सॉफ्टवेयर स्टैक प्रदान करने के लिए RAM के रूप में कॉन्फ़िगर किया जा सकता है। इस कैश-अस-रैम फीचर का उपयोग करते समय डेवलपर्स को बेहद चुस्त कोड लिखना होगा क्योंकि बूट अनुक्रम में इस बिंदु पर एक बेदखली सिस्टम के लिए अस्वीकार्य होगी; सामंजस्य बनाए रखने के लिए कोई स्मृति नहीं है। यही कारण है कि प्रोसेसर बूट प्रक्रिया में इस बिंदु पर "नो इविक्ट मोड" (एनईएम) में काम करते हैं, जब वे कैश-अस-रैम आधार पर काम कर रहे होते हैं। एनईएम में, प्रोसेसर में कैश-लाइन मिस एक बेदखली का कारण नहीं होगा। उपलब्ध सॉफ़्टवेयर स्टैक के साथ कोड विकसित करना बहुत आसान है, और डीरलाइज़ेशन से पहले भी स्टैक का उपयोग करने के लिए आरंभीकरण कोड अक्सर न्यूनतम सेटअप करता है।

आप रैम के बिना पीसी चलाकर इसका निरीक्षण कर सकते हैं: यह बीप्स की एक श्रृंखला खेलेगा। जो प्रोग्राम निभाता है वो BIOS फ्लैश रोम से चलाया जाता है।

मैंने कुछ एआरएम प्रोसेसर पर भी इस व्यवहार को देखा है। एसओसी के अंदर कॉन्फ़िगरेशन रजिस्टर होगा जो आपको बूट अनुक्रम में रैम के रूप में जल्दी से कैश का उपयोग करने की अनुमति देता है, ताकि DRAM को खोजने, गणना करने और कॉन्फ़िगर करने वाले प्रोग्राम को चलाने के लिए।



2
X86 का "कैश-अस-रैम" (सीएआर) मोड कैसे काम करता है , इस पर अधिक विवरण , जो इसे उपयोग-केस के रूप में लाता है INVD(जब कार मोड से बाहर निकलता है, तो मेमोरी में लिखे बेकार डेटा के बजाय कैश को अमान्य करें, संभवतः कुछ मूल्यवान)।
पीटर कॉर्ड्स

जब DRAM उपलब्ध नहीं है तो बेदखल करने में क्या बुराई है? क्या रैम से लिखने की बजाय पढ़ने में समस्या नहीं है ?
मेहरदाद

14

आम तौर पर, कैश मेमोरी पता योग्य नहीं होती है। कोई प्रोग्राम जानबूझकर इससे डेटा संग्रहीत या पुनर्प्राप्त नहीं कर सकता है।


2
+1 यह बहुत ही सूक्ष्म उत्तर है। Cachelines लोड और सेवानिवृत्त हैं मुख्य मेमोरी से पता योग्य पहुंच से लगभग यादृच्छिक तरीके से।
अले..चेन्स्की

17
हाँ, यही कारण है कि इसे एक विशेष मोड की आवश्यकता होती है (जैसा कि पीजेसी के उत्तर में), या किसी प्रकार की विशेष प्रवंचना। एक अन्य विकल्प (स्वीकृत उत्तर के अलावा) सिस्टम को यह सोचने के लिए हो सकता है कि इसमें कुछ DRAM है, लेकिन वास्तविक मेमोरी केवल डेटा को फेंक देती है, और रीड ऑल-जीरो (या पते के कुछ क्षेत्र के लिए ROM से वास्तविक डेटा) का उत्पादन करती है। जब तक सभी लोड कैश में हिट होते हैं, सिस्टम सही तरीके से व्यवहार करेगा। IDK के बारे में पर्याप्त है कि कैसे x86 जूते को पता है कि किसी भी वास्तविक कैश-फ्लश की आवश्यकता के बिना 64-बिट लंबे मोड में आना संभव है।
पीटर कॉर्ड्स

3
हालाँकि, इन-पैकेज eDRAM कैश के साथ Skylake CPU इसे मेमोरी-साइड कैश (मेमोरी कंट्रोलर के अलावा और ब्रॉडवे के विपरीत सब कुछ के रूप में) के रूप में उपयोग करते हैं, इसलिए यह DMA को गैर-सीपीयू सिस्टम डिवाइस, या सीपीयू कार्ड से एक्सेस कर सकता है। स्टोर करने के लिए "अस्वीकार्य" मेमोरी क्षेत्र (जो एल 1 / एल 2 / एल 3 को बायपास करता है)।
पीटर कॉर्डेस

3
@PeterCordes हालांकि इसका उत्तर "नहीं" सिर्फ इसलिए नहीं है क्योंकि एक विशेष मोड की आवश्यकता है - सवाल यह है कि क्या विशेष मोड मौजूद है।
user253751

1
सवाल यह है - अगर आप कैश का इस्तेमाल करते हैं तो क्या होता है और यह सुनिश्चित करें कि यह कभी भी न छूटे या फ्लश हो जाए - यह पता योग्य हो जाता है कि कुछ भी नहीं में एक पते पर लिखा जाता है RAM, नहीं? वास्तविक लेखन को फर्श पर गिरा दिया जाता है, लेकिन रीड को वैसे भी कैश से परोसा जाता है?
रैकडॉन्बमैन

9

हालांकि यह प्रश्न में निर्दिष्ट प्रोसेसर परिवारों को सीधे संबोधित नहीं करता है, नीचे दी गई योजना पहले के x86 प्रोसेसर पर काम करेगी, हां, यह रैम या कैश के बिना संचालित करना संभव है, हालांकि इस दृष्टिकोण के लिए कुछ रचनात्मक प्रोग्रामिंग कौशल की आवश्यकता होती है।

1980 में मैं एक रेडियो रिसीवर के लिए डिज़ाइन में आया , जिसने यूके में प्रसारित एमएसएफ समय संकेतों को डिकोड किया । इस डिज़ाइन में Z80 प्रोसेसर का उपयोग किया गया था और इसमें केवल प्रोग्राम स्टोरेज के लिए ROM था। प्रोसेसर के भीतर आंतरिक रजिस्टरों का उपयोग करके सभी प्रसंस्करण और डेटा भंडारण किया गया था। यह स्पष्ट रूप से मतलब है कि कोई उप-कॉल नहीं हो सकता है क्योंकि स्टैक को पकड़ने के लिए मेमोरी उपलब्ध थी।

तब रैम की लागत अधिक थी और चूंकि यह एक शौक परियोजना थी, लागत को कम रखना महत्वपूर्ण था, इसके अलावा यह एक दिलचस्प अकादमिक अभ्यास था। यह व्यापक रूप से उपलब्ध माइक्रोकंट्रोलर्स के दिनों (£ 100 IIRC पर eprom लागत के साथ 8751) से पहले भी था।


अपने आप को उन डेटा पर प्रतिबंधित करना जो रजिस्टर में रखे जा सकते हैं, वास्तव में आपके द्वारा निष्पादित किए जा सकने वाले उपयोगी कार्यों को सीमित कर सकते हैं। मुझे लगता है कि आधुनिक प्रोसेसर में कैश मेमोरी के बारे में सवाल अधिक था।
मार्क रैनसम

बेशक यह बिना कहे चला जाता है कि रैम का उपयोग न करना उस कार्यक्षमता को सीमित करता है जो संभव है। आवेदन में उद्धृत किया गया है कि बहुत सीमित डेटा भंडारण संसाधनों, एक रेडियो फ्रंट एंड और एक एलसीडी डिस्प्ले के साथ कितना संभव है।
u

-3

आमतौर पर एक सीपीयू को बाहरी घड़ी की आवश्यकता होगी। लेकिन इसके साथ, हाँ यह हो सकता है।


1
यह स्पष्ट करना उचित होगा कि उपयोगकर्ताओं के प्रश्न का उत्तर क्यों और अच्छी तरह से दिया गया है। यह जवाब कमजोर पक्ष पर है।
वोल्टेज स्पाइक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.