माइक्रो-कंट्रोलर में हर पता केवल 8 बिट्स का क्यों होता है?


18

मैंने देखा है कि, 32-बिट माइक्रोकंट्रोलर में, मेमोरी का प्रत्येक पता केवल 8 बिट डेटा रखता है; यह 16 बिट एमसी के लिए भी ऐसा ही है। 32-बिट डेटा के लिए, यह 4 पतों के संयोजन का उपयोग करता है। 32-बिट डेटा को सीधे रखने के लिए (8 के बजाय 32 बिट्स या 16 में से प्रत्येक बनाने के लिए) एक पता क्यों नहीं बनाया जा सकता है?


2
यह माइक्रोकंट्रोलर की डेटा बस पर निर्भर करता है। 32-बिट माइक्रोकंट्रोलर में बाइट मेमोरी कौन सी है? क्या आपके पास कोई उदाहरण है?
स्वानंद

4
बस सच नहीं है, यही वजह है कि C और C ++ जैसी प्रोग्रामिंग भाषाएं बाइट के लिए 8 बिट से अधिक होने की संभावना को शामिल करती हैं। यह सिर्फ इतना है कि बहुमत 8 बिट बाइट्स के साथ सबसे अच्छा काम करता है, लेकिन 9 बिट या 18 बिट वहाँ से बाहर है।
प्लाज़्मा एचएच

6
यह कैंडी बार की तरह है। वे उन्हें उसी कीमत के लिए छोटा बनाते रहते हैं।
ओलिन लेथ्रोप

4
क्या इस सवाल को फिर से परिभाषित किया जा सकता है कि "सभी पते 8 बिट्स से क्यों जोड़े गए हैं"?
फ्लोरियन कैस्टेलन

2
@FlorianCastellane यह। पते आकार में 8 बिट्स नहीं हैं (जब तक कि आप स्मृति के 256 बिट्स के साथ एक डिवाइस नहीं पा सकते हैं, तब वे हो सकते हैं)।
जयजय

जवाबों:


11

यह प्रभावी रूप से एक डिज़ाइन विकल्प है, ऐसा करने का कोई कठिन कारण नहीं है। पुराने दिनों में, जब 8-बिट मूल्यों पर उच्च मात्रा वाले कमोडिटी प्रोसेसर संचालित होते थे, तो मैपिंग लगातार 1: 1 होती थी। आधुनिक 32 और 64 बिट प्रोसेसर के डिजाइन के रूप में निरंतरता के लिए, यह बाइट-एड्रेसिंग की पुरानी मैपिंग को बनाए रखने के लिए समझ में आया, भले ही डेटा बसें बढ़ गईं (बदलते कार्यान्वयन लागत व्यापार-बंद के साथ)। कुछ 32 बिट MCU अभी भी कुछ मेमोरी में केवल 16 बिट डेटा बस्स को लागू कर सकते हैं, हाई-एंड प्रोसेसर में 256 बिट या इसके बाद के संस्करण होंगे, और एक मेमोरी मेमोरी में कई कोर रजिस्टर लोड करने में सक्षम हैं। विस्तृत इंटरफेस फटने या स्ट्रीमिंग संचालन के लिए अच्छे हैं।

छोटे पते योग्य स्मृति आकार न केवल कोड में बाइट मान को संभालने के मामले में उपयोगी है, बल्कि ईथरनेट पैकेट जैसी मेमोरी में संरचनाओं के साथ काम करने के लिए जहां विशिष्ट बाइट्स को पढ़ने या संशोधित करने की आवश्यकता होती है। अक्सर इस तरह के ऑपरेशन को छोटे ऑपरेशन करने में सक्षम होने की आवश्यकता होती है लेकिन बहुत कुशलता से।

ऐसे परिदृश्य भी हैं जहां बड़े-एंडियन, छोटे-एंडियन या मिश्रित एंडियन डेटा के साथ काम करना आवश्यक है। अब इसके लिए अक्सर समर्पित हार्डवेयर समर्थन होता है, लेकिन फिर से, मेमोरी के बाइट एड्रेसिंग इस प्रकार के ऑपरेशन को कुछ परिदृश्यों में अधिक कुशल बना देगा।

यह हाल ही की बात है कि एक रजिस्टर में पता बिट्स की संख्या पता स्थान के लिए एक सीमित कारक रही है, इसलिए 32 बिट शब्दों के बजाय बाइट्स को संबोधित करने के लिए 2 बिट्स को बर्बाद करना 10-15 साल पहले एक चिंता का विषय नहीं होगा (और अब 64 बिट पॉइंटर्स के साथ, 48 या 56 बिट वाइड, बाइट एड्रेस को लागू करने के लिए इसका सामान्य)। परिचयात्मक कंप्यूटर विज्ञान शिक्षण अभी भी मुख्य पोस्टफ़्रेम उम्र में थोड़ा अटक गया है, और हमेशा विकास के पहलुओं को बहुत स्पष्ट रूप से संबोधित नहीं करता है। शब्दावली के बहुत सारे उपयोग (और परिभाषा) उस समय के आसपास हुए जब कम मात्रा में उच्च लागत वाले आर्किटेक्चर (सबसे सामान्य अर्थों में) अधिक संसाधन विवश और अधिक कमोडिटी केंद्रित प्रोसेसर डिजाइनों द्वारा पूरक होने लगे।

मैंने विशेष रूप से MCU के लिए उत्तर नहीं दिया है, वास्तु सीमाएं उतनी स्पष्ट नहीं हैं जितनी आप मान सकते हैं। यहां तक ​​कि एक आधुनिक ग्राउंड-अप एमसीयू डिज़ाइन में कई-कोर सर्वर प्रोसेसर के साथ एकीकृत होने का अच्छा मौका है, या उत्पादों के स्केलेबल सेट में केवल एक बिंदु के रूप में मौजूद है; या तो मेमोरी तक पहुंचने का एक सुसंगत तरीका अंतिम उपयोगकर्ता के लिए फायदेमंद है, जिसे लिखने या पोर्ट कोड की आवश्यकता है।

मैंने इस सवाल के ऐतिहासिक पहलुओं पर पालन करने के लिए रजिस्टर आकार के बारे में रेट्रोकोम्प्यूटिंग एसई पर एक सवाल पूछा ।


2
मुझे लगता है कि लंबे समय तक आकार वाले प्रोसेसर 8-बिट प्रोसेसर से पहले होते हैं। एक 8-बिट प्रोसेसर दो मल्टी-बाइट संख्याओं को जोड़ने के कुशल साधन के बिना बहुत बेकार होगा, और शुरुआती प्रोसेसर कुशलतापूर्वक एकल मशीन शब्द से बड़ी संख्या को संभाल नहीं सकते थे।
सुपरकैट

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

@ user6030: क्या ADC निर्देश होना आम नहीं है? AVR करता है (8-बिट RISC माइक्रोकंट्रोलर इसलिए gcc के लिए ADC का उपयोग करनाintlong पड़ता है और ), तो x86 करता है, इसलिए ARM करता है। मुझे लगता है कि ज्यादातर 8-बिट सीपीयू होगा, क्योंकि व्यापक रेज के साथ एक सिस्टम की तुलना में इसके लिए और भी अधिक मांग होगी। ओह, सुपरकैट कह रहा है कि शुरुआती प्रोसेसर में कुशल एडीसी की कमी थी?
पीटर कॉर्ड्स

मुझे लगता है कि रजिस्टर आकार के विकास के बारे में इसका एक वैध बिंदु है (हालांकि मेरे पास डेटा की कमी है)
शॉन होउलहेन

25

कुछ DSP (जैसे, TI C54x) हैं जो 16 बिट्स से छोटे मानों को संबोधित नहीं कर सकते हैं, और कुछ ऑडियो DSP 24 बिट्स का उपयोग करते हैं। हालाँकि, 8-बिट मान का उपयोग सभी सामान्य प्रयोजन कोड में किया जाता है, इसलिए सभी सामान्य-उद्देश्य CPU इसका समर्थन करते हैं।

और सिर्फ इसलिए कि मेमोरी पतों के लिए उपयोग की जाने वाली छोटी इकाई 8-बिट बाइट्स का मतलब यह नहीं है कि यह सबसे बड़ा होगा इकाई होगी जो वास्तव में बस में उपयोग की जाती है; अधिकांश सीपीयू अपने मूल शब्द आकार (16/32 बिट्स) या यहां तक ​​कि स्मृति को संबोधित करने के लिए एक बड़े आकार का उपयोग करते हैं, और बाइट एक्सेस का उपयोग करते समय, स्वचालित रूप से बाइट को बड़े शब्द से निकालते हैं।

उदाहरण के लिए, पीसीआई बस हमेशा 32-बिट लेनदेन का उपयोग करती है, लेकिन बाइट को सिग्नल तक पहुंच के लिए सक्षम करता है जो कि छोटा होना चाहिए।


धन्यवाद। क्या कोई ऐसा MC है जो मेमोरी में बाइट के बजाय एक बडा चौड़ा है?
अरुण जो चेरियन

4
शायद इंटेल 4004?
pjc50

6
@ArunCheriyan एक सीपीयू का एक उदाहरण जिसने सबसे छोटे एड्रेसेबल शब्द के रूप में निबल्स के साथ काम किया है वह है : एचपी द्वारा डिजाइन किया गया सीपीयू और पिछली शताब्दी में अपने उच्च-अंत कैलकुलेटर में वापस इस्तेमाल किया गया (विशेष रूप से प्रसिद्ध एचपी 48)। इसकी एक बहुत ही असामान्य वास्तुकला थी (64 बिट रजिस्टर, 4 बिट एएलयू, 20 बिट एड्रेस, ...)।
मंद

एक अन्य उदाहरण: TI की TMS320C3x के लिए सबसे छोटी पता योग्य इकाई 32-बिट्स है।
kkrambo

1
@davidcary ओह, ठीक है ... तिथियां और समय कभी भी मेरा मजबूत सूट नहीं रहा है। मेरी पत्नी से उसके जन्मदिन के उपहार, और समय सीमा के बारे में मेरे बॉस से पूछें ...
मंद

18

एक 16-बिट या 32-बिट माइक्रोकंट्रोलर को अक्सर डेटा में हेरफेर करने की आवश्यकता होती है जो केवल 8-बिट वाइड (एक बाइट) है। उदाहरण के लिए, टेक्स्ट स्ट्रिंग्स को आमतौर पर प्रति बाइट एक एकल वर्ण के साथ संग्रहीत किया जाता है। स्मृति संबोधन योजना होने से जो प्रत्येक व्यक्ति बाइट को माइक्रोकंट्रोलर से संबोधित करने की अनुमति देता है वह कुशलतापूर्वक 8-बिट वाइड डेटा को संसाधित कर सकता है। इसका मतलब यह है कि 32-बिट डेटा आमतौर पर उन पते पर रहता है जो 4 बाइट के गुणक हैं, जैसे 04, 08, 0 सी, आदि। लेकिन यदि मेमोरी 32-बिट चौड़ी है, तो माइक्रोकंट्रोलर एक रीड साइकल में 32-बिट्स पढ़ सकता है। । माइक्रो के अक्सर मशीन निर्देश होते हैं जो अलग-अलग लंबाई के डेटा पर काम कर सकते हैं, इसलिए आप पाएंगे कि एक चाल डेटा निर्देश (MOV) में 8, 16 और 32 बिट्स स्थानांतरित करने के लिए 3 रूप, MOV.B, MOV.W और MOV.L हो सकते हैं। एक निर्देश में डेटा।


7

मूल उत्तर है "क्योंकि वह लंबे समय से बाइट है"। कोड के एक बड़े स्थापित निकाय के साथ जो उस धारणा को बनाता है, उसे तोड़ने से सभी प्रकार की समस्याएं पैदा होती हैं।

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

प्रति पते पर एक 32-बिट शब्द होने से मेमोरी स्पीड में कोई कमी नहीं होती है। 32-बिट सिस्टम पर, निचले 2 एड्रेस बिट्स अक्सर मेमोरी में नहीं जाते हैं। प्रोसेसर आमतौर पर पूरे 32-बिट शब्द को पढ़ेगा और उस शब्द के भीतर 8-बिट बाइट का चयन (या मास्क ऑफ) करेगा। जब तक आपका पता स्थान पर्याप्त डेटा (32-बिट सिस्टम के साथ 2 ^ 32 बाइट तक सीमित) संग्रहीत कर सकता है तब तक कोई चिंता नहीं है। वास्तव में, कई 16-बिट / 32-बिट प्रोसेसर पर मूल-शब्द-लंबाई मानों की तुलना में बाइट मानों के साथ प्रसंस्करण करने में अधिक समय लगता है - 32-बिट शब्द पढ़ना और उस शब्द का हिस्सा छोड़ना स्पष्ट रूप से एक अतिरिक्त ऑपरेशन लेगा, 32-बिट शब्द को पढ़ने की तुलना में।

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


3
वास्तव में। और फिर एक अतिरिक्त सवाल है कि क्या एक प्रोसेसर हार्डवेयर में स्वचालित रूप से अनलगंटेड 32 बिट वैल्यू को लोड करने या स्टोर करने के लिए आवश्यक दो अलग-अलग एक्सेस को संभाल सकता है , या यदि यह स्पष्ट रूप से सॉफ़्टवेयर में संभाला जाना चाहिए।
क्रिस स्ट्रैटन

5

इसे ही बाइट एड्रेसेबल मेमोरी कहा जाता है । यह आम तौर पर एक अच्छी बात है, जब तक आप पता स्थान से बाहर नहीं चल रहे हैं (उदाहरण के लिए 32-बिट पॉइंटर्स के साथ 4GB, 32-बिट पॉइंटर्स के साथ 16GB के बजाय जहां हर पता एक 32-बिट शब्द है)।


ध्यान दें कि पता स्थान ऐसी सीमाएँ पार कर सकता है यदि आप पतों को उन भागों में विभाजित करते हैं जो प्रत्येक एक रजिस्टर में फिट होंगे। मेरे पास एक बार कुछ 8-बिट कंप्यूटर थे, जो अलग-अलग रजिस्टरों में रखे गए दो हिस्सों में पतों को विभाजित करके 64 KB मेमोरी तक पहुंच गए थे, और कंप्यूटरों के विज्ञापन भी 8-बिट प्रोसेसर के साथ देखे थे, जो पते को तीन में विभाजित करके 1 एमबी मेमोरी तक पहुंच सकते थे। भागों।
user6030

AVR (8-बिट RISC माइक्रोकंट्रोलर) करता है कि: 32 सामान्य-उद्देश्य 8-बिट रजिस्टरों के तीन जोड़े को 16-बिट पॉइंटर के रूप में dereferenced जा सकता है। 24-बिट पते प्राप्त करने के लिए 8-बिट सेगमेंट के साथ संयोजन करने के लिए कुछ सुविधा भी है।
पीटर कॉर्ड्स

4

एनालॉग डिवाइसेस शार्क 32 बिट डीएसपी में 32 बिट्स एड्रेसेबल मेमोरी की सबसे छोटी इकाई है, इसलिए साइज़ोफ़ (इंट) == साइज़ोफ़ (शॉर्ट) == साइज़ोफ़ (चार) == 1 (हाँ, उनके पास 32 बिट चार्ज़ हैं, पूरी तरह से प्रति सी मानक)।

इसके अलावा int_8, int_16 और इस तरह की चीजों को परिभाषित नहीं किया गया है, अन्य प्लेटफार्मों से कोड पोर्ट करते समय एक बुरा आश्चर्य।


1

पता योग्य मेमोरी यूनिट का आकार अनिवार्य रूप से इस बात के बीच एक समझौता है कि आप कितनी मेमोरी बनाम एड्रेस कर सकते हैं कि आप कितनी मेमोरी बर्बाद करेंगे।

पता योग्य स्मृति । एक 32-बिट सीपीयू पर विचार करें: यदि आप बाइट्स को संबोधित करते हैं, तो आप 4 जीबी तक मेमोरी को संबोधित कर सकते हैं। यदि आप अलग-अलग बिट्स को संबोधित करते हैं, तो वह राशि 512MB तक कम हो जाएगी, और यदि आप 32-बिट शब्दों को संबोधित करते हैं, तो आपके पास 16GB होगा। (आपका प्रश्न उत्तरार्द्ध का सुझाव देता है)।

व्यर्थ स्मृति । यदि आपके पास एक चर है जिसे एक्स बिट्स के साथ दर्शाया जा सकता है, और आप केवल इसके लिए एन बिट्स की इकाइयां आवंटित कर सकते हैं, तो आप X> N मानकर औसतन (N-1) / 2 बिट्स को बेकार कर देंगे। , आप 100% दक्षता (कम से कम देखने के बिंदु से) के साथ मेमोरी का उपयोग करेंगे। बाइट्स के साथ, आप प्रति चर (56% दक्षता) में 3.5 बिट्स, और 32-बिट शब्दों के साथ, आप 15.5 बिट्स (52% दक्षता) बर्बाद करेंगे। लेकिन यह बदतर हो जाता है: यदि आपके अधिकांश चर छोटे हैं (वर्ण, बूलियन, स्टेटस फ्लैग के बारे में सोचें), तो यदि आपकी पता योग्य इकाइयां बहुत बड़ी हैं, तो आप अधिकांश मेमोरी बर्बाद कर देंगे।

उदाहरण के लिए, मान लें कि एक चर का औसत आकार 8 बिट है।

  • एक बिट-पता योग्य कंप्यूटर पर, आप 100% दक्षता के साथ आवंटित करने में सक्षम होंगे, जो आपको 512*1024*1024*100%= 0.54 बिलियन चर देगा।
  • एक बाइट-पता योग्य कंप्यूटर पर, आप 56% दक्षता के साथ आवंटित करेंगे, जो आपको 4096*1024*1024*56%= 2.4 बिलियन चर देगा। एक बिट-एड्रेसेबल कंप्यूटर की तुलना में यह लगभग 5 गुना है! बेशक, आपको 8 गुना अधिक मेमोरी खरीदने की आवश्यकता होगी।
  • 32-बिट-एड्रेसेबल कंप्यूटर पर, चूंकि आपके कम से कम आधे वैरिएबल 8 बिट्स से कम होंगे, उन्हें 7% से कम दक्षता के साथ आवंटित किया जाएगा (32 में से 4.5 बिट्स का उपयोग करके)। किसी भी स्थिति में, आपको 4.3 बिलियन वैरिएबल नहीं मिलेंगे (क्योंकि आपके पास केवल वही अलग-अलग पते हैं), और वास्तविकता में इससे कम है। जटिल गणनाओं से बचकर, मुझे लगता है कि बाइट-पता योग्य कंप्यूटर की तुलना में शायद 20-30% अधिक उपयोगी भंडारण मिलेगा, जबकि रैम के लिए 4 गुना कीमत का भुगतान करना होगा।

1

संभवतः पहले से ही अन्य उत्तरों में विभिन्न तरीके बताए गए हैं। सामान्य रूप से आज, लेकिन जरूरी नहीं कि ऐतिहासिक रूप से, एक बाइट 8 बिट्स हो। अधिकांश समय हम "बाइट एड्रेसेबल मेमोरी" से निपटते हैं, जिसका अर्थ है कि सबसे छोटी चीज जिसे हम सिंगल एड्रेस से एक्सेस कर सकते हैं, वह बाइट है। लेकिन इसका मतलब यह नहीं है कि केवल वही चीज है जिसे हम संबोधित कर सकते हैं। प्लेटफॉर्म के आधार पर एक पते पर एक बाइट, एक हाफवर्ड / शब्द (16 बिट्स), एक शब्द / डबलवर्ड (32 बिट्स) और 64 बिट्स जो भी हो, का उपयोग किया जा सकता है। निर्देश मूल रूप से निर्धारित करता है कि वांछित पहुंच का आकार (8,16,32,64, आदि) उन इकाइयों में आमतौर पर 8, 16, 32, 64 है। लेकिन यह कठिन और तेज़ नहीं है, "यह निर्भर करता है"।

इसके अलावा प्रोसेसर और / या सिस्टम के डिजाइन के आधार पर यह मानने का कोई कारण नहीं है कि पहुंच का आकार मेमोरी का आकार या सबसे छोटी पहुंच का आकार है। बड़ी और बड़ी आवश्यकताओं के साथ यह समय के साथ कम और कम समझ में आता है कि वास्तव में सबसे छोटे आकार का उपयोग करके मेमोरी सिस्टम को लागू करने के लिए, जिस कंप्यूटर पर आप इसे पढ़ रहे हैं वह संभवतः सभी एक्सेस के लिए 32 बिट वाइड डेटा बस या 64 बिट वाइड डेटा बस का उपयोग करता है, आप एक बाइट को पढ़ना चाहते हैं, यह 64 बिट पढ़ता है और बाकी बिट्स को टॉस करता है, क्यों यह अतिरिक्त कुछ भी खर्च नहीं करता है बस प्रोसेसर कोर के पास सभी तरह से चौड़ा रखें और प्रोसेसर सही बाइट लेन का चयन करता है। बस को संकरा बनाने के लिए या बाइट गलियों में बाइट्स को घुमाने के लिए अधिक तर्क और या घड़ियों की लागत होती है, (कभी-कभी ऐसा किया जाता है)। एक माइक्रोकंट्रोलर में आंतरिक मेढ़े 32 बिट्स हो सकते हैं उदाहरण के लिए अगर यह सिस्टम के लिए समझ में आता है। 16 हो सकता है। हां लिखने के लिए आप अधिक चक्र जलाते हैं, आपको लाइन के साथ कहीं-कहीं पढ़ना-संशोधित करना होगा। अपने पीसी पर एक सिंगल बाइट लिखना चाहते हैं, कहीं पर 64 बिट रीड होता है, और फिर उस 64 बिट्स में से एक बाइट को संशोधित किया जाता है, इस पर निर्भर करता है कि आप उसके बाद क्या करते हैं, 64 बिट्स केवल 8 बिट्स के साथ नाटक करने के लिए वापस जा सकते हैं। पहले क्या था, कैशिंग और आपके कोड से अलग यह एक सामान्य नियम नहीं है। राइट्स आग हैं और भूल जाते हैं, हालांकि, मेमोरी कंट्रोलर प्रोसेसर से पता और डेटा एकत्र कर सकता है और प्रोसेसर को चालू रखने की अनुमति देता है, जबकि यह अंततः लेखन की बचत घड़ियां करता है, शायद अधिक घड़ियां जो एक रीड-संशोधित-राइट में जला दी जाती हैं (यदि पहले से कैश में),

इस सब के लिए आज भी कुछ अपवाद हैं, कुछ प्रणालियों में शायद निर्देश या पहुंच प्रकार हैं जो कि थोड़ा पते योग्य हैं, कुछ प्रणालियां हैं जहां पता एक बाइट के अलावा किसी और चीज की इकाइयों में है। एक बाइट हमेशा 8 बिट्स नहीं होती थी और शायद अभी भी सिस्टम चल रहे हैं जो कि सच है (हम ऑक्टल और 9 बिट बाइट का इस्तेमाल करते थे 18 या 36 बिट शब्द मानव प्रोग्रामर और चिप डिजाइनरों के लिए बहुत मायने रखता है जो ऑक्टल सोचते हैं, ए 8 बिट हेक्साडेसिमल विचारकों के लिए बहुत मायने रखता है)।

अब आप जिस कंप्यूटर पर यह पढ़ रहे हैं, उस ड्रामा कंट्रोलर के लिए डेटा बस 32 या 64 बिट्स चौड़ी हो सकती है, वास्तविक ड्रामा मॉड्यूल संभवतः कई 8 बिट वाइड भागों से बना होता है, जिसे आप आसानी से देख सकते हैं। यदि इसके एक तरफ 8 या 9 चिप हैं तो संभवतः यह 64 बिट या 72 बिट (64 बिट प्लस ईसीसी के 8 बिट) चौड़ी बस है जिसे 8 बिट वाइड भागों के साथ लागू किया गया है। यदि आपके पास मॉड्यूल के एक तरफ 4 या 5 चिप्स हैं, लेकिन अभी भी पिंस के टन हैं, तो यह या तो 32 बिट चौड़ा है (इन दिनों की संभावना नहीं है) या चिप्स के 4 16 बिट चौड़े हैं और अगर 5 वें हैं तो यह हो सकता है 16 बिट्स चौड़े हो और केवल 8 का उपयोग किया जाता है या यह 8 बिट चौड़ा हिस्सा है। 32 बिट वाइड पार्ट भी हैं, लेकिन 8 बिट वाइड सबसे आम है। एक बहुत ही सामान्य अभ्यास जो वापस जाता है।

हमें यह जानना होगा कि माइक्रोकंट्रोलर क्या है। चूंकि आप 32 बिट का उल्लेख करते हैं, इसलिए यह काफी संभावना है (विस्तृत जानकारी के बिना हालांकि हम यह नहीं बता सकते हैं) कि उस हिस्से के अंदर की मेमोरी 32 बिट्स चौड़ी है, और इसके लिए सभी एक्सेस 32 बिट्स चौड़े हैं। यह निर्देश निश्चित रूप से निर्धारित करेगा कि कार्यक्रम क्या चाहता है जो संभवतः 8 बिट, 16 बिट और 32 बिट एक्सेस प्रकार प्रदान करता है, लिखने वाले छोटे लोगों को कहीं-कहीं एक रीड-मॉडिफाई-राइट की आवश्यकता होती है, आपको बस बाइट लेन को अनदेखा करना पढ़ता है। उसी फ्लैश के लिए जाता है, हालांकि फ्लैश राइट एक अन्य विषय है। लेकिन आंतरिक फ्लैश सबसे अधिक संभावित 32 बिट्स है और सभी रीड 32 बिट्स की इकाइयों में हैं। एक बाहरी फ्लैश हालांकि, यह एक और कहानी है, सबसे अधिक संभावना है कि वे एक बिट वाइड (स्पि या आई 2 सी) हैं, हालांकि स्पाई पार्ट्स कभी-कभी 1, 2 या 4 बिट्स का समर्थन कर सकते हैं, लेकिन एक मिसो पिन सबसे आम है। आंतरिक रूप से वे बाइट्स की इकाइयों में व्यवस्थित होते हैं, 8 बिट चौड़ा या 16 या 32 हो सकता है, या जो जानता है, तो आप बाहर जाते हैं और उन्हें बाइट्स की इकाइयों में संबोधित करते हैं। spi के साथ आप एक ही बाइट और एक ही ट्रांजैक्शन में पूरी मेमोरी के बीच कहीं भी शिफ्ट हो सकते हैं, फ्लैश पार्ट डिजाइन पर निर्भर करता है।


0

आप 1 बिट प्रोसेसर भी प्राप्त कर सकते हैं!

डेटा चौड़ाई रजिस्टर (संचायक) की चौड़ाई का पालन करेगी। यह आम तौर पर 'प्रोसेसर की चौड़ाई' है, जबकि एड्रेस बस अलग (आमतौर पर व्यापक) हो सकता है, लेकिन तकनीकी रूप से उपयोग के आधार पर संकरा हो सकता है।

8 बेशक दो नंबर की शक्ति है। हमारे पास 8 बिट्स - और COST / प्रौद्योगिकी की क्षमता के सर्वव्यापी उपयोग के लिए धन्यवाद करने का इतिहास है। लंबे समय तक 8 बिट्स ने शासन किया, कारण का एक हिस्सा बुस की चौड़ाई और रजिस्टरों (और रैम) को 8 बिट्स से अधिक चौड़ा बनाने में कठिनाई (16 बिट डेटा में कोई बिंदु नहीं है यदि आपके रजिस्टर सभी 8 बिट हैं)। 8 बिट्स निफ्टी है, और हेक्स में बहुत मायने रखता है। 8 बिट्स आपकी वर्णमाला, संख्याएं, आरेखण और नियंत्रण वर्ण (ASCII), या 0 से 255 या + -127 पकड़ सकते हैं। 256 बाइट्स से अधिक डेटा तक पहुँचना (8bit एड्रेस बस) पेजिंग के साथ आसान है, पृष्ठ का चयन करें, फिर बाइट जैसे 256 के 256 पेज आपको 64K (65536) में मिल जाते हैं। आमतौर पर पेज ज़ीरो एक स्क्रैच पैड होता है क्योंकि यह एक्सेस करने में तेज़ होगा क्योंकि इससे पेज सेट होने की ज़रूरत नहीं होगी। मेरे पहले कंप्यूटर में स्थिर रैम के 1k x 8bit थे! (गतिशील रैम सस्ता था, लेकिन इसे ताज़ा करने के लिए अधिक हार्डवेयर की आवश्यकता है)। कुछ झंडों (c, nc, z, nz) के साथ, जोड़, घटाना, बाएँ और दाएँ घुमाएँ, आप 8bit मशीन पर कुछ बहुत जटिल गणित कर सकते हैं। आप एक अस्थायी बिंदु अंकगणितीय इकाई की जरूरत नहीं है! सुपर फास्ट नहीं, लेकिन उल्लेखनीय! कई शुरुआती प्रोसेसर एकल चरणबद्ध हो सकते हैं, और सरल स्थिर रैम के साथ उपयोग किया जाता है, जिससे डिबगिंग वास्तव में आसान हो जाती है; कुछ ऑक्टल बफ़र्स और शुरुआती लाल एल ई डी को जोड़कर, आप पता और डेटा बस्स बदलते हुए देख सकते हैं :)

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