हार्डवेयर जटिल है; यह एक सरल व्याख्या है।
एक विशिष्ट आधुनिक कंप्यूटर में 32-बिट डेटा बस हो सकती है। इसका मतलब यह है कि सीपीयू को जो भी लाने की ज़रूरत है वह किसी विशेष मेमोरी पते के सभी 32 बिट्स लाएगा। चूंकि डेटा बस 32 बिट्स से कम कुछ भी नहीं ला सकती है, इसलिए पता बस पर सबसे कम दो एड्रेस बिट्स का भी उपयोग नहीं किया जाता है, इसलिए ऐसा लगता है कि रैम को 32-बिट शब्दों के अनुक्रम में व्यवस्थित किया गया है 8- बिट बाइट्स।
जब सीपीयू एक बाइट के लिए एक fetch करता है, बस पर पढ़ने चक्र 32 बिट लाएगा और फिर सीपीयू उन बिट्स में से 24 को त्याग देगा, शेष 8 बिट्स जो भी रजिस्टर में लोड हो जाएगा।
- की उचित भागों लोड करने के लिए बस में दो अलग-अलग पढ़ने चक्र निष्पादित करें: सीपीयू एक 32 बिट मूल्य है कि नहीं एक 32-बिट सीमा पर गठबंधन लाने के लिए चाहता है, यह कई सामान्य विकल्प है डेटा शब्द और उन्हें दोबारा इकट्ठा करें
- पता
- के कम दो बिट्स को फेंकने वाले पते पर 32-बिट शब्द को पढ़ें, 32-बिट शब्द में एकत्रित बाइट्स के कुछ अप्रत्याशित संयोजन को पढ़ें, संभवतः वह नहीं चाहता था
- एक अपवाद फेंक
मैंने जिन सीपीयू के साथ काम किया है, वे सभी चार पथों को ले चुके हैं। आम तौर पर, अधिकतम संगतता के लिए सभी एन-बिट रीड को एन-बिट सीमा पर संरेखित करना सबसे सुरक्षित है। हालांकि, आप निश्चित रूप से शॉर्टकट ले सकते हैं यदि आप सुनिश्चित हैं कि आपका सॉफ़्टवेयर कुछ विशेष CPU परिवार पर चलाएगा, जिसे ज्ञात असाइन किए गए पढ़ने के व्यवहार के साथ जाना जाता है। और यहां तक कि अगर असाइन किए गए पढ़ना संभव है (जैसे x86 परिवार CPUs पर), तो वे धीमे हो जाएंगे।
स्रोत
2009-10-18 07:46:27
http://www.ibm.com/developerworks/library/pa-dalign/ – KawaiKx
* पता बस पर सबसे कम दो पता बिट्स का भी उपयोग नहीं किया जाता है * यदि ऐसा है तो 32 बिट पते को केवल 30 के साथ कैसे संबोधित किया जाता है बिट? अगर मैं ग़लत हूं तो मेरी गलती सुझाएं। –