Modified Harvard architecture
ஒரு மாற்றியமைக்கப்பட்ட ஹார்வர்ட் கட்டமைப்பு என்பது ஹார்வர்ட் கணினி கட்டமைப்பின் மாறுபாடு ஆகும், இது தூய ஹார்வர்ட் கட்டமைப்பைப் போலல்லாமல், அறிவுறுத்தல்களைக் கொண்ட நினைவகத்தை தரவுகளாக அணுக அனுமதிக்கிறது. ஹார்வர்ட் கட்டிடக்கலை என ஆவணப்படுத்தப்பட்ட பெரும்பாலான நவீன கணினிகள், உண்மையில், மாற்றியமைக்கப்பட்ட ஹார்வர்ட் கட்டிடக்கலை ஆகும். ஹார்வர்ட் கட்டிடக்கலை அசல் ஹார்வர்ட் கட்டிடக்கலை கணினி, ஹார்வர்ட் மார்க் I, அறிவுறுத்தல்களையும் தரவுகளையும் சேமிக்க முற்றிலும் தனித்தனி நினைவக அமைப்புகளைப் பயன்படுத்தியது. CPU அடுத்த அறிவுறுத்தலைப் பெற்று, தரவை ஒரே நேரத்தில் மற்றும் சுயாதீனமாக ஏற்றியது அல்லது சேமித்தது. இது ஒரு வான் நியூமன் கட்டிடக்கலை கணினிக்கு மாறாக உள்ளது, இதில் அறிவுறுத்தல்கள் மற்றும் தரவு இரண்டும் ஒரே நினைவக அமைப்பில் சேமிக்கப்படுகின்றன மற்றும் (CPU தற்காலிக சேமிப்பின் சிக்கல் இல்லாமல்) திரும்ப அணுகப்பட வேண்டும். அறிவுறுத்தல் மற்றும் தரவு நினைவகத்தின் இயற்பியல் பிரிப்பு சில நேரங்களில் நவீன ஹார்வர்ட் கட்டிடக்கலை கணினிகளின் தனித்துவமான அம்சமாக கருதப்படுகிறது. மைக்ரோகண்ட்ரோலர்களுடன் (முழு கணினி அமைப்புகளும் ஒற்றை சில்லுகளில் ஒருங்கிணைக்கப்படுகின்றன), அறிவுறுத்தல்களுக்கு வெவ்வேறு நினைவக தொழில்நுட்பங்களைப் பயன்படுத்துதல் (எ. கா. ஃபிளாஷ் மெமரி) மற்றும் தரவு (பொதுவாக வாசிப்பு/எழுதும் நினைவகம்) வான் நியூமன் இயந்திரங்களில் பிரபலமடைந்து வருகிறது. ஹார்வர்ட் இயந்திரத்தின் உண்மையான வேறுபாடு என்னவென்றால், அறிவுறுத்தல் மற்றும் தரவு நினைவகம் வெவ்வேறு முகவரி இடங்களை ஆக்கிரமித்துள்ளது. வேறு வார்த்தைகளில் கூறுவதானால், ஒரு நினைவக முகவரி ஒரு சேமிப்பு இருப்பிடத்தை தனித்துவமாக அடையாளம் காணவில்லை (இது ஒரு வான் நியூமன் இயந்திரத்தில் செய்வது போல); முகவரிக்குச் சொந்தமான நினைவக இடத்தை (அறிவுறுத்தல் அல்லது தரவு) அறிந்து கொள்வதும் அவசியம். வான் நியூமன் கட்டமைப்பைக் கொண்ட ஒரு கணினி, அந்த குறியீட்டில் மேலே விவரிக்கப்பட்டுள்ளபடி ஹார்வர்ட் இயந்திரங்களை விட சாதகமாக உள்ளது, மேலும் தரவைப் போலவே அணுகலாம் மற்றும் சிகிச்சையளிக்கலாம், மேலும் நேர்மாறாகவும். இது, எடுத்துக்காட்டாக, வட்டு சேமிப்பகத்திலிருந்து தரவை நினைவகத்தில் படிக்க அனுமதிக்கிறது, பின்னர் குறியீடாக செயல்படுத்தப்படுகிறது, அல்லது ஜஸ்ட்-இன்-டைம் தொகுப்பு போன்ற தொழில்நுட்பங்களைப் பயன்படுத்தி சுய-உகந்த மென்பொருள் அமைப்புகளை தங்கள் சொந்த நினைவகத்தில் இயந்திரக் குறியீட்டை எழுதவும் பின்னர் அதை இயக்கவும் அனுமதிக்கிறது. மற்றொரு உதாரணம் சுய-மாற்றியமைக்கும் குறியீடு, இது ஒரு நிரலை தன்னை மாற்றியமைக்க அனுமதிக்கிறது. இந்த முறைகளின் ஒரு குறைபாடு செயல்படுத்தக்கூடிய இடப் பாதுகாப்பு தொடர்பான சிக்கல்கள் ஆகும், இது தீம்பொருள் மற்றும் மென்பொருள் குறைபாடுகளிலிருந்து ஏற்படும் அபாயங்களை அதிகரிக்கிறது. மாற்றியமைக்கப்பட்ட ஹார்வர்ட் கட்டிடக்கலை அதன்படி, சில தூய ஹார்வர்ட் இயந்திரங்கள் சிறப்பு தயாரிப்புகள் ஆகும். பெரும்பாலான நவீன கணினிகள் அதற்கு பதிலாக மாற்றியமைக்கப்பட்ட ஹார்வர்ட் கட்டமைப்பை செயல்படுத்துகின்றன. அந்த மாற்றங்கள் குறியீடு மற்றும் தரவுகளுக்கு இடையிலான கடுமையான பிரிவினையைத் தளர்த்துவதற்கான பல்வேறு வழிகளாகும், அதே நேரத்தில் ஹார்வர்ட் கட்டமைப்பின் உயர் செயல்திறன் ஒருங்கிணைந்த தரவு மற்றும் அறிவுறுத்தல் அணுகலை ஆதரிக்கின்றன. பிளவு-கேச் (அல்லது கிட்டத்தட்ட-வான்-நியூமன்) கட்டமைப்பு மிகவும் பொதுவான மாற்றம் படிநிலையின் கீழ் மட்டங்களில் உள்ள அறிவுறுத்தல்கள் மற்றும் தரவுகளுக்கான தனித்தனி CPU தற்காலிக சேமிப்புகளுடன் ஒரு நினைவக படிநிலையை உருவாக்குகிறது. அறிவுறுத்தல்கள் மற்றும் தரவுகளுக்கு ஒரு ஒற்றை முகவரி இடம் உள்ளது, இது வான் நியூமன் மாதிரியை வழங்குகிறது, ஆனால் CPU அறிவுறுத்தல் தற்காலிக சேமிப்பிலிருந்து வழிமுறைகளைப் பெறுகிறது மற்றும் தரவு தற்காலிக சேமிப்பிலிருந்து தரவைப் பெறுகிறது. பெரும்பாலான புரோகிராமர்கள் செயலி கோர் ஒரு (மாற்றியமைக்கப்பட்ட) ஹார்வர்ட் கட்டமைப்பை செயல்படுத்துகிறது என்ற உண்மையை ஒருபோதும் அறிந்திருக்க வேண்டியதில்லை, இருப்பினும் அவர்கள் அதன் வேக நன்மைகளிலிருந்து பயனடைகிறார்கள். ஒரு அறிவுறுத்தல் தற்காலிக சேமிப்பில் உள்ள அறிவுறுத்தலின் தற்காலிக சேமிப்பு நகலை கடை மாற்றவோ அல்லது செல்லாததாக்கவோ செய்யாவிட்டால், நினைவகத்தில் அறிவுறுத்தல்களை உருவாக்கி சேமித்து வைக்கும் புரோகிராமர்கள் மட்டுமே தற்காலிக சேமிப்பு ஒத்திசைவு போன்ற சிக்கல்களைப் பற்றி அறிந்திருக்க வேண்டும். மற்றொரு மாற்றம் ஹார்வர்ட் இயந்திரத்தின் "தனி முகவரி இடம்" தன்மையைப் பாதுகாக்கிறது, ஆனால் அறிவுறுத்தல் நினைவகத்தின் உள்ளடக்கங்களை தரவுகளாக அணுக சிறப்பு இயந்திர செயல்பாடுகளை வழங்குகிறது. தரவு நேரடியாக அறிவுறுத்தல்களாக செயல்படுத்த முடியாததால், அத்தகைய இயந்திரங்கள் எப்போதும் "மாற்றியமைக்கப்பட்ட" ஹார்வர்ட் கட்டமைப்பாக பார்க்கப்படுவதில்லைஃ அணுகலைப் படியுங்கள்ஃ நிரல் தொடங்கும் போது ஆரம்ப தரவு மதிப்புகளை அறிவுறுத்தல் நினைவகத்திலிருந்து தரவு நினைவகத்தில் நகலெடுக்க முடியும். அல்லது, தரவை மாற்றியமைக்காவிட்டால் (இது பை அல்லது உரை சரம் போன்ற ஒரு நிலையான மதிப்பாக இருக்கலாம்), தரவு நினைவகத்தில் இடத்தை எடுக்காமல் அறிவுறுத்தல் நினைவகத்திலிருந்து நேரடியாக இயங்கும் நிரல் மூலம் அதை அணுகலாம் (இது பெரும்பாலும் பிரீமியத்தில் உள்ளது). எழுதும் அணுகல்ஃ மறு நிரலாக்கத்திற்கான திறன் பொதுவாக தேவைப்படுகிறது; சில கணினிகள் முற்றிலும் ரோம் அடிப்படையிலானவை. எடுத்துக்காட்டாக, ஒரு மைக்ரோகண்ட்ரோலர் வழக்கமாக அதன் அறிவுறுத்தல்களைப் பிடிக்கப் பயன்படுத்தப்படும் ஃபிளாஷ் நினைவகத்தில் எழுதுவதற்கான செயல்பாடுகளைக் கொண்டுள்ளது. மென்பொருள் புதுப்பிப்புகள் உள்ளிட்ட நோக்கங்களுக்காக இந்த திறன் பயன்படுத்தப்படலாம். EEPROM/PROM மாற்றுவது ஒரு மாற்று முறையாகும். மேக்சிம் ஒருங்கிணைந்த மேக்ஸ்க் போன்ற ஒரு சில ஹார்வர்ட் கட்டிடக்கலை செயலிகள், எந்தவொரு நினைவகப் பிரிவிலிருந்தும் பெறப்பட்ட அறிவுறுத்தல்களைச் செயல்படுத்த முடியும்-அசல் ஹார்வர்ட் செயலியைப் போலல்லாமல், நிரல் நினைவகப் பிரிவிலிருந்து பெறப்பட்ட அறிவுறுத்தல்களை மட்டுமே செயல்படுத்த முடியும். இத்தகைய செயலிகள், மற்ற ஹார்வர்ட் கட்டிடக்கலை செயலிகளைப் போலவே-மற்றும் தூய வான் நியூமன் கட்டமைப்பைப் போலல்லாமல்-ஒரு அறிவுறுத்தலைப் படிக்கவும், தரவு மதிப்பை ஒரே நேரத்தில் படிக்கவும் முடியும், அவை தனித்தனி நினைவகப் பிரிவுகளில் இருந்தால், ஏனெனில் செயலி (குறைந்தபட்சம்) சுயாதீனமான தரவு பேருந்துகளுடன் இரண்டு தனித்தனி நினைவகப் பிரிவுகளைக் கொண்டுள்ளது. இந்த வகையான மாற்றியமைக்கப்பட்ட ஹார்வர்ட் கட்டமைப்புக்கும் தூய வான் நியூமன் கட்டமைப்புக்கும் இடையிலான மிகவும் வெளிப்படையான புரோகிராமர்-புலப்படும் வேறுபாடு என்னவென்றால்-ஒரு நினைவகப் பிரிவிலிருந்து ஒரு அறிவுறுத்தலைச் செயல்படுத்தும்போது-அதே நினைவகப் பிரிவை ஒரே நேரத்தில் தரவுகளாக அணுக முடியாது. ஒப்பீடுகள் தூய ஹார்வர்ட் மற்றும் வான் நியூமன் இயந்திரங்களிலிருந்து மாற்றியமைக்கப்பட்ட ஹார்வர்ட் இயந்திரங்களை வேறுபடுத்த மூன்று பண்புகள் பயன்படுத்தப்படலாம்ஃ அறிவுறுத்தல் மற்றும் தரவு நினைவுகள் வெவ்வேறு முகவரி இடங்களை ஆக்கிரமித்துள்ளன தூய ஹார்வர்ட் இயந்திரங்களுக்கு, அறிவுறுத்தல் சேமிப்பு இருப்பிடத்தைக் குறிக்கும் அறிவுறுத்தல் இடத்தில் ஒரு முகவரி "பூஜ்ஜியம்" மற்றும் ஒரு தனித்துவமான தரவு சேமிப்பு இருப்பிடத்தைக் குறிக்கும் தரவு இடத்தில் ஒரு தனி முகவரி "பூஜ்ஜியம்" உள்ளது. இதற்கு மாறாக, வான் நியூமன் மற்றும் பிளவு-கேச் மாற்றியமைக்கப்பட்ட ஹார்வர்ட் இயந்திரங்கள் ஒரே முகவரி இடத்தில் அறிவுறுத்தல்கள் மற்றும் தரவு இரண்டையும் சேமித்து வைக்கின்றன, எனவே முகவரி "பூஜ்ஜியம்" என்பது ஒரே ஒரு இருப்பிடத்தை மட்டுமே குறிக்கிறது, மேலும் அந்த இடத்தில் உள்ள பைனரி முறை ஒரு அறிவுறுத்தலாக விளக்கப்படுகிறதா அல்லது தரவு எவ்வாறு வரையறுக்கப்படுகிறது நிரல் எழுதப்பட்டது. இருப்பினும், தூய ஹார்வர்ட் இயந்திரங்களைப் போலவே, அறிவுறுத்தல்-நினைவகம்-தரவு மாற்றியமைக்கப்பட்ட ஹார்வர்ட் இயந்திரங்களும் தனித்தனி முகவரி இடங்களைக் கொண்டுள்ளன, எனவே அறிவுறுத்தல் மற்றும் தரவு இடத்திற்காக "பூஜ்ஜியம்" என்ற தனித்தனி முகவரிகளைக் கொண்டுள்ளன, எனவே இது அந்த வகை மாற்றியமைக்கப்பட்ட ஹார்வர்ட் இயந்திரங்களை தூய ஹார்வர்ட் இயந்திரங்களிலிருந்து வேறுபடுத்துவதில்லை. அறிவுறுத்தல் மற்றும் தரவு நினைவகங்கள் மைய செயலாக்க அலகுக்கு (CPU) தனித்தனி வன்பொருள் பாதைகளைக் கொண்டுள்ளன இது தூய அல்லது மாற்றியமைக்கப்பட்ட ஹார்வர்ட் இயந்திரங்களின் புள்ளியாகும், மேலும் அவை ஏன் மிகவும் நெகிழ்வான மற்றும் பொதுவான வான் நியூமன் கட்டமைப்புடன் இணைந்து வாழ்கின்றனஃ CPU க்கு தனித்தனி நினைவக பாதைகள் வழிமுறைகளைப் பெறவும், தரவை ஒரே நேரத்தில் அணுகவும் அனுமதிக்கின்றன, இதன் மூலம் செயல்திறனை மேம்படுத்துகிறது. தூய ஹார்வர்ட் இயந்திரங்கள் தனித்தனி முகவரி இடங்களுடன் தனித்தனி பாதைகளைக் கொண்டுள்ளன. பிளவு-தற்காலிக சேமிப்பு மாற்றியமைக்கப்பட்ட ஹார்வர்ட் இயந்திரங்கள் CPU தற்காலிக சேமிப்புகள் அல்லது பிற இறுக்கமாக இணைக்கப்பட்ட நினைவுகளுக்கான தனித்தனி அணுகல் பாதைகளைக் கொண்டுள்ளன, ஆனால் ஒரு ஒருங்கிணைந்த அணுகல் பாதை மீதமுள்ள நினைவக படிநிலையை உள்ளடக்கியது. ஒரு வான் நியூமன் செயலி அந்த ஒருங்கிணைந்த அணுகல் பாதையை மட்டுமே கொண்டுள்ளது. ஒரு புரோகிராமரின் பார்வையில், ஒரு மாற்றியமைக்கப்பட்ட ஹார்வர்ட் செயலி, இதில் அறிவுறுத்தல் மற்றும் தரவு நினைவுகள் ஒரு முகவரி இடத்தைப் பகிர்ந்து கொள்கின்றன, இது பொதுவாக வான் நியூமன் இயந்திரமாக கருதப்படுகிறது, தற்காலிக சேமிப்பு ஒத்திசைவு ஒரு பிரச்சினையாக மாறும் வரை, சுய-மாற்றியமைக்கும் குறியீடு மற்றும் நிரல் ஏற்றுதல் போன்றது. இது குழப்பமாக இருக்கலாம், ஆனால் இதுபோன்ற சிக்கல்கள் பொதுவாக கணினி புரோகிராமர்கள் மற்றும் ஒருங்கிணைப்பாளர்களுக்கு மட்டுமே தெரியும். இந்த விஷயத்தில் பிற மாற்றியமைக்கப்பட்ட ஹார்வர்ட் இயந்திரங்கள் தூய ஹார்வர்ட் இயந்திரங்களைப் போன்றவை. அறிவுறுத்தல் மற்றும் தரவு நினைவகங்களை வெவ்வேறு வழிகளில் அணுகலாம் அசல் ஹார்வர்ட் இயந்திரம், மார்க் I, மின்-இயந்திர கவுண்டர்களில் ஒரு பஞ்ச் காகித நாடா மற்றும் தரவுகளில் அறிவுறுத்தல்களை சேமித்து வைத்தது. இருப்பினும், இது முற்றிலும் அந்த நேரத்தில் கிடைத்த தொழில்நுட்பத்தின் வரம்புகளால் ஏற்பட்டது. இன்று பிஐசி மைக்ரோகண்ட்ரோலர் போன்ற ஹார்வர்ட் இயந்திரம் அறிவுறுத்தல்களுக்கு 12-பிட் அகல ஃபிளாஷ் நினைவகத்தையும், தரவுகளுக்கு 8-பிட் அகல எஸ்ஆர்ஏஎம்-ஐயும் பயன்படுத்தலாம். இதற்கு மாறாக, ஏஆர்எம்7டிடிஎம்ஐ போன்ற வான் நியூமன் மைக்ரோகண்ட்ரோலர் அல்லது மாற்றியமைக்கப்பட்ட ஹார்வர்ட் ஏஆர்எம்9 கோர், ஃபிளாஷ் மெமரி மற்றும் எஸ்ஆர்ஏஎம்-க்கு (அந்த சந்தர்ப்பங்களில் 8 பிட் பைட்டுகளாக) சீரான அணுகலை வழங்குகிறது. மாற்றியமைக்கப்பட்ட ஹார்வர்ட் கட்டமைப்பின் நவீன பயன்பாடுகள் தற்காலிக சேமிப்பில்லாத டிஎஸ்பி அல்லது மைக்ரோகண்ட்ரோலர் தேவைப்படும் பயன்பாடுகளுக்கு வெளியே, பெரும்பாலான நவீன செயலிகள் சிபியு தற்காலிக சேமிப்பைக் கொண்டுள்ளன, அவை அறிவுறுத்தல் மற்றும் தரவைப் பிரிக்கின்றன. மிகவும் கடுமையான வரையறையின்படி ஹார்வர்ட் இயந்திரங்களாக இருக்கும் செயலிகளும் உள்ளன (நிரல் மற்றும் தரவு நினைவகம் வெவ்வேறு முகவரி இடங்களை ஆக்கிரமித்துள்ளன), மேலும் அவை நிரல் நினைவகத்தை தரவுகளாகப் படிக்க மற்றும்/அல்லது எழுதுவதற்கான செயல்பாடுகள் உள்ளன என்ற பலவீனமான அர்த்தத்தில் மட்டுமே மாற்றியமைக்கப்படுகின்றன. எடுத்துக்காட்டாக, அட்மெல் ஏ. வி. ஆரில் உள்ள எல். பி. எம் (சுமை நிரல் நினைவகம்) மற்றும் எஸ். பி. எம் (சேமிப்பு நிரல் நினைவகம்) அறிவுறுத்தல்கள் அத்தகைய மாற்றத்தை செயல்படுத்துகின்றன. இதே போன்ற தீர்வுகள் பிஐசி மற்றும் இசட்8என்கோர் போன்ற பிற மைக்ரோகண்ட்ரோலர்கள், டிஐ சி55எக்ஸ் கோர்கள் போன்ற டிஜிட்டல் சிக்னல் செயலிகளின் பல குடும்பங்கள் மற்றும் பலவற்றில் காணப்படுகின்றன. அறிவுறுத்தல் செயலாக்கம் இன்னும் நிரல் முகவரி இடத்திற்கு மட்டுப்படுத்தப்பட்டிருப்பதால், இந்த செயலிகள் வான் நியூமன் இயந்திரங்களைப் போலல்லாமல் மிகவும் வேறுபட்டவை. வெளிப்புற வயரிங் ஒரு கண்டிப்பாக ஹார்வர்ட் CPU மையத்தை மாற்றியமைக்கப்பட்ட ஹார்வர்டாக மாற்றலாம், எடுத்துக்காட்டாக, இன்டெல் 8051 குடும்ப மைக்ரோகண்ட்ரோலரில் ஒரு AND கேட் வழியாக வெளிப்புறமாக 'PSEN #' (புரோகிராம் ஸ்பேஸ் ரீட்) மற்றும் 'ஆர். டி #' (வெளிப்புற தரவு ஸ்பேஸ் ரீட்) சமிக்ஞைகளை இணைப்பதன் மூலம், மைக்ரோகண்ட்ரோலர் "வான் நியூமன் இணைக்கப்பட்டுள்ளது" என்று கூறப்படுகிறது, ஏனெனில் வெளிப்புற தரவு மற்றும் நிரல் முகவரி இடங்கள் ஒருங்கிணைக்கப்படுகின்றன. தனித்தனி முகவரி இடங்களைக் கொண்டிருப்பது உயர் மட்ட மொழிகளுடன் நிரலாக்கத்தில் சில சிரமங்களை உருவாக்குகிறது, அவை படிக்க மட்டுமே தரவுகளின் அட்டவணைகள் சாதாரண எழுதக்கூடிய தரவுகளிலிருந்து வேறுபட்ட முகவரி இடத்தில் இருக்கலாம் என்ற கருத்தை நேரடியாக ஆதரிக்கவில்லை (எனவே வெவ்வேறு அறிவுறுத்தல்களைப் பயன்படுத்தி படிக்க வேண்டும்). சி நிரலாக்க மொழி தரமற்ற நீட்டிப்புகள் மூலம் அல்லது உட்பொதிக்கப்பட்ட செயலிகளை ஆதரிக்க இப்போது தரப்படுத்தப்பட்ட நீட்டிப்புகள் மூலம் பல முகவரி இடங்களை ஆதரிக்க முடியும். மேலும் காண்க ஹார்வர்ட் கட்டிடக்கலை வான் நியூமன் கட்டிடக்கலை குறிப்புகள் குறிப்புகள் கணினி கட்டிடக்கலை கணினிகளின் வகுப்புகள்