Кіріспе
Код пен деректердің әрқайсысы үшін жеке шинасы бар компьютерлік архитектура. Гарвард университетінің архитектура бағдарламасы.
the architecture program at Harvard University
The Harvard architecture is a computer architecture with separate storage and signal pathways for instructions and data. It is often contrasted with the von Neumann architecture, where program instructions and data share the same memory and pathways. This architecture is often used in real time processing or low power applications. The term is often stated as having originated from the Harvard Mark I relay based computer, which stored instructions on punched tape (24 bits wide) and data in electro mechanical counters. These early machines had data storage entirely contained within the central processing unit, and provided no access to the instruction storage as data. Programs needed to be loaded by an operator; the processor could not initialize itself. However, in the only peer reviewed published paper on the topicThe Myth of the Harvard Architecture published in the IEEE Annals of the History of Computingthe author demonstrates that:
'The term "Harvard architecture" was coined decades later, in the context of microcontroller design' and only 'retrospectively applied to the Harvard machines and subsequently applied to RISC microprocessors with separated caches';
'The so called "Harvard" and "von Neumann" architectures are often portrayed as a dichotomy, but the various devices labeled as the former have far more in common with the latter than they do with each other';
'In short [the Harvard architecture] isn't an architecture and didn't derive from work at Harvard'. Modern processors appear to the user to be systems with von Neumann architectures, with the program code stored in the same main memory as the data. For performance reasons, internally and largely invisible to the user, most designs have separate processor caches for the instructions and data, with separate pathways into the processor for each. This is one form of what is known as the modified Harvard architecture. Harvard architecture is historically, and traditionally, split into two address spaces, but having three, i. e. two extra (and all accessed in each cycle) is also done, while rare.
Гарвард архитектурасы – нұсқаулар мен деректер үшін бөлек сақтау және сигналдық жолдары бар компьютерлік архитектура. Ол көбінесе фон Нейман архитектурасымен салыстырылады, онда бағдарламалық нұсқаулар мен деректер бірдей жад пен жолдарды бөліседі. Бұл архитектура көбінесе нақты уақыт өңдеуде немесе аз қуатты қолданбаларда қолданылады. Термин көбінесе Гарвард Mark I релелік компьютерінен бастау алған деп айтылады, ол нұсқауларды перфорацияланған лентада (24 бит енімен) және деректерді электромеханикалық тіркегіштерде сақтаған. Бұл алғашқы машиналарда деректерді сақтау толығымен орталық процессорлық блок ішінде болды және нұсқауларды дерек ретінде қолжеткізуге болмады. Бағдарламаларды оператор жүктеуі керек еді; процессор өзін-өзі инициализациялай алмады. Алайда, тақырып бойыншағы жалғыз рецензияланған мақаласында – «Гарвард архитектурасының мифы» (IEEE Компьютер тарихының жылнамасы) авторы мынаны көрсетеді:
the architecture program at Harvard University
The Harvard architecture is a computer architecture with separate storage and signal pathways for instructions and data. It is often contrasted with the von Neumann architecture, where program instructions and data share the same memory and pathways. This architecture is often used in real time processing or low power applications. The term is often stated as having originated from the Harvard Mark I relay based computer, which stored instructions on punched tape (24 bits wide) and data in electro mechanical counters. These early machines had data storage entirely contained within the central processing unit, and provided no access to the instruction storage as data. Programs needed to be loaded by an operator; the processor could not initialize itself. However, in the only peer reviewed published paper on the topicThe Myth of the Harvard Architecture published in the IEEE Annals of the History of Computingthe author demonstrates that:
'The term "Harvard architecture" was coined decades later, in the context of microcontroller design' and only 'retrospectively applied to the Harvard machines and subsequently applied to RISC microprocessors with separated caches';
'The so called "Harvard" and "von Neumann" architectures are often portrayed as a dichotomy, but the various devices labeled as the former have far more in common with the latter than they do with each other';
'In short [the Harvard architecture] isn't an architecture and didn't derive from work at Harvard'. Modern processors appear to the user to be systems with von Neumann architectures, with the program code stored in the same main memory as the data. For performance reasons, internally and largely invisible to the user, most designs have separate processor caches for the instructions and data, with separate pathways into the processor for each. This is one form of what is known as the modified Harvard architecture. Harvard architecture is historically, and traditionally, split into two address spaces, but having three, i. e. two extra (and all accessed in each cycle) is also done, while rare.
«Гарвард архитектурасы» термині ондаған жылдардан кейін микроконтроллерлерді жобалау контекстінде пайда болды және тек «Гарвард машиналарына ретроспективті түрде қолданылды, содан кейін бөлек кэштері бар RISC микропроцессорларына қолданылды»;
the architecture program at Harvard University
The Harvard architecture is a computer architecture with separate storage and signal pathways for instructions and data. It is often contrasted with the von Neumann architecture, where program instructions and data share the same memory and pathways. This architecture is often used in real time processing or low power applications. The term is often stated as having originated from the Harvard Mark I relay based computer, which stored instructions on punched tape (24 bits wide) and data in electro mechanical counters. These early machines had data storage entirely contained within the central processing unit, and provided no access to the instruction storage as data. Programs needed to be loaded by an operator; the processor could not initialize itself. However, in the only peer reviewed published paper on the topicThe Myth of the Harvard Architecture published in the IEEE Annals of the History of Computingthe author demonstrates that:
'The term "Harvard architecture" was coined decades later, in the context of microcontroller design' and only 'retrospectively applied to the Harvard machines and subsequently applied to RISC microprocessors with separated caches';
'The so called "Harvard" and "von Neumann" architectures are often portrayed as a dichotomy, but the various devices labeled as the former have far more in common with the latter than they do with each other';
'In short [the Harvard architecture] isn't an architecture and didn't derive from work at Harvard'. Modern processors appear to the user to be systems with von Neumann architectures, with the program code stored in the same main memory as the data. For performance reasons, internally and largely invisible to the user, most designs have separate processor caches for the instructions and data, with separate pathways into the processor for each. This is one form of what is known as the modified Harvard architecture. Harvard architecture is historically, and traditionally, split into two address spaces, but having three, i. e. two extra (and all accessed in each cycle) is also done, while rare.
«Сонымен аталатын «Гарвард» және «фон Нейман» архитектуралары көбінесе дихотомия ретінде бейнеленеді, бірақ бұрынғысы деп аталатын әртүрлі құрылғылар бір-бірінен гөрі соңғысымен көбірек ортақ нәрселері бар»;
the architecture program at Harvard University
The Harvard architecture is a computer architecture with separate storage and signal pathways for instructions and data. It is often contrasted with the von Neumann architecture, where program instructions and data share the same memory and pathways. This architecture is often used in real time processing or low power applications. The term is often stated as having originated from the Harvard Mark I relay based computer, which stored instructions on punched tape (24 bits wide) and data in electro mechanical counters. These early machines had data storage entirely contained within the central processing unit, and provided no access to the instruction storage as data. Programs needed to be loaded by an operator; the processor could not initialize itself. However, in the only peer reviewed published paper on the topicThe Myth of the Harvard Architecture published in the IEEE Annals of the History of Computingthe author demonstrates that:
'The term "Harvard architecture" was coined decades later, in the context of microcontroller design' and only 'retrospectively applied to the Harvard machines and subsequently applied to RISC microprocessors with separated caches';
'The so called "Harvard" and "von Neumann" architectures are often portrayed as a dichotomy, but the various devices labeled as the former have far more in common with the latter than they do with each other';
'In short [the Harvard architecture] isn't an architecture and didn't derive from work at Harvard'. Modern processors appear to the user to be systems with von Neumann architectures, with the program code stored in the same main memory as the data. For performance reasons, internally and largely invisible to the user, most designs have separate processor caches for the instructions and data, with separate pathways into the processor for each. This is one form of what is known as the modified Harvard architecture. Harvard architecture is historically, and traditionally, split into two address spaces, but having three, i. e. two extra (and all accessed in each cycle) is also done, while rare.
«Қысқасы [Гарвард архитектурасы] архитектура емес және Гарвардтағы жұмыстардан туындаған жоқ». Қазіргі заманғы процессорлар пайдаланушыға фон Нейман архитектурасы бар жүйелер болып көрінеді, бағдарламалық код деректермен бірдей негізгі жадта сақталады. Өнімділік үшін, ішкі және көбінесе пайдаланушыға көрінбейтін көптеген жобаларда нұсқаулар мен деректер үшін процессордың бөлек кэштері бар, әрқайсысы үшін процессорға жеке жолдар бар. Бұл Гарвард архитектурасының модификацияланған түрінің бірі. Гарвард архитектурасы тарихи және дәстүрлі түрде екі адрес кеңістігіне бөлінеді, бірақ үш, яғни екі қосымша (және барлығы әр циклде қолжетімді) кеңістіктер де кездеседі, бірақ бұл сирек.
the architecture program at Harvard University
The Harvard architecture is a computer architecture with separate storage and signal pathways for instructions and data. It is often contrasted with the von Neumann architecture, where program instructions and data share the same memory and pathways. This architecture is often used in real time processing or low power applications. The term is often stated as having originated from the Harvard Mark I relay based computer, which stored instructions on punched tape (24 bits wide) and data in electro mechanical counters. These early machines had data storage entirely contained within the central processing unit, and provided no access to the instruction storage as data. Programs needed to be loaded by an operator; the processor could not initialize itself. However, in the only peer reviewed published paper on the topicThe Myth of the Harvard Architecture published in the IEEE Annals of the History of Computingthe author demonstrates that:
'The term "Harvard architecture" was coined decades later, in the context of microcontroller design' and only 'retrospectively applied to the Harvard machines and subsequently applied to RISC microprocessors with separated caches';
'The so called "Harvard" and "von Neumann" architectures are often portrayed as a dichotomy, but the various devices labeled as the former have far more in common with the latter than they do with each other';
'In short [the Harvard architecture] isn't an architecture and didn't derive from work at Harvard'. Modern processors appear to the user to be systems with von Neumann architectures, with the program code stored in the same main memory as the data. For performance reasons, internally and largely invisible to the user, most designs have separate processor caches for the instructions and data, with separate pathways into the processor for each. This is one form of what is known as the modified Harvard architecture. Harvard architecture is historically, and traditionally, split into two address spaces, but having three, i. e. two extra (and all accessed in each cycle) is also done, while rare.
Жадының егжей-тегжейі
Гарвард архитектурасында екі жадтың қасиеттерін ортақ пайдалану қажеттілігі жоқ. Атап айтқанда, сөз ені, уақыттық сипаттамалары, іске асыру технологиясы және жад адресінің құрылымы әртүрлі болуы мүмкін. Кейбір жүйелерде алдын ала бағдарламаланған міндеттерге арналған нұсқаулар тек оқуға арналған жадта сақталуы мүмкін, ал деректер жады әдетте оқу-жазу жадына ие болуы керек. Кейбір жүйелерде нұсқаулар жады деректер жадынан әлдеқайда көп, сондықтан нұсқаулар адрестері деректер адрестерінен кеңірек болады.
Фон Нейман сәулеттерімен салыстыру
Таза фон Нейман архитектурасы бар жүйеде нұсқаулар мен деректер бір жадта сақталады, сондықтан нұсқаулар деректерді алуға арналған бірдей дерек жолы арқылы алынады. Бұл процессордың бір уақытта нұсқауды оқып, деректерді жадтан оқуға немесе жазуға мүмкіндік бермейді. Гарвард архитектурасын қолданатын компьютерде процессор бір уақытта нұсқауды оқып, тіпті кэшсіз деректер жадына қол жеткізуді орындай алады. Осылайша, Гарвард архитектурасы компьютерлері берілген схемалық күрделілік үшін жылдамырақ болуы мүмкін, себебі нұсқауларды алу және деректерге қол жеткізу бір жад жолы үшін бәсекелес болмайды. Сонымен қатар, Гарвард архитектуралы машинада ерекше код және дерек адрестік кеңістіктері болады: нұсқаулық адресінің нөлі дерек адресінің нөлінен өзгеше. Нұсқаулық адресінің нөлі жиырма төрт биттік мәнді анықтаса, дерек адресінің нөлі сол жиырма төрт биттік мәннің бөлігі емес, сегіз биттік байтты көрсетеді.
Гарвард архитектурасының өзгертілген нұсқасымен салыстыру
Өзгертілген Гарвард архитектуралы машина Гарвард архитектуралы машинаға өте ұқсас, бірақ ол нұсқаулар мен деректердің қатаң бөлінуін жеңілдетеді, сонымен бірге процессорға екі (немесе одан да көп) жад шинасына бір уақытта қол жеткізуге мүмкіндік береді. Ең көп таралған өзгерту – ортақ адрестік кеңістікпен қолдау көрсетілетін бөлек нұсқаулар және деректер кэштері. Процессор кэштен орындалғанда, ол таза Гарвард машинасы ретінде жұмыс істейді. Негізгі жадқа қол жеткізгенде ол фон Нейман машинасы сияқты жұмыс істейді (мұнда код деректер сияқты жылжытылуы мүмкін, бұл өте қуатты техника). Бұл өзгерту қазіргі заманғы процессорларда кеңінен қолданылады, мысалы ARM архитектурасы, Power ISA және x86 процессорлары. Кейде оны дұрыс емес түрде Гарвард архитектурасы деп атайды, ол "өзгертілген" екенін ескермейді. Тағы бір өзгерту нұсқаулық жад (мысалы, ROM немесе флэш-жад) мен процессор арасында байланыс жолын қамтамасыз етеді, бұл нұсқаулық жадтағы сөздерді тек оқуға болатын деректер ретінде қарауға мүмкіндік береді. Бұл техника кейбір микроконтроллерлерде, соның ішінде Atmel AVR-де қолданылады. Бұл мәтіндік тізбектер немесе функция кестелері сияқты тұрақты деректерге дерек жадына көшірусіз тікелей қол жеткізуге мүмкіндік береді, соның салдарынан сирек (және қуатты) дерек жадын оқу/жазу айнымалылары үшін сақтап қалады. Нұсқаулық жадтан деректерді оқу үшін арнайы машина тілі нұсқаулары беріледі немесе перифериялық интерфейс арқылы нұсқаулық жадқа қол жеткізуге болады. (Бұл өзі тұрақты деректерді қамтитын нұсқаулардан өзгеше, бірақ жеке тұрақтылар үшін екі механизмнің де бірін-бірі алмастыруы мүмкін.)
Жылдамдық
Соңғы жылдары процессордың (CPU) жылдамдығы негізгі жадқа қол жеткізу жылдамдығымен салыстырғанда бірнеше есе артты. Өнімділікті сақтау үшін негізгі жадқа жүгіну санының азаюына көңіл бөлу қажет. Мысалы, егер процессордағы әрбір команда жадқа қол жеткізуді қажет етсе, процессордың жылдамдығы артқанның өзінде компьютерге ешқандай пайда болмайды – бұл жадтың шектеуі деп аталатын мәселе. Өте жылдам жад жасау мүмкін, бірақ бұл шығын, қуат тұтыну және сигналдарды бағыттау мәселелеріне байланысты тек шағын көлемдегі жад үшін ғана қолайлы. Шешім – процессордың кэші деп аталатын, жақында қол жеткізілген деректерді сақтайтын, өте жылдам жадтың шағын бөлігін пайдалану. Процессорға қажетті деректер кэште болғанда, өнімділік процессордың негізгі жадтан деректерді алуы керек болған кездегіден әлдеқайда жоғары болады. Дегенмен, ол қайталанатын бағдарламалар немесе деректерді сақтаумен шектелуі мүмкін, сондай-ақ сақтау көлемінің шектеулігі және басқа да потенциалды проблемалар болуы мүмкін.
Ішкі және сыртқы жобалау
Қазіргі заманғы жоғары өнімді CPU чиптері Гарвард және фон Нейман архитектураларының ерекшеліктерін біріктіреді. Атап айтқанда, Гарвард архитектурасының "бөлінген кэш" түрі кеңінен қолданылады. CPU кэш жады нұсқаулар кэшіне және деректер кэшіне бөлінеді. CPU кэшке қол жеткізгенде Гарвард архитектурасы қолданылады. Бірақ кэштен қателік туған жағдайда, деректер негізгі жадтан алынады, ол формальды түрде жеке нұсқаулар мен деректер бөлімдеріне бөлінбегенімен, RAM, ROM және (NOR) флэш жадқа бір уақытта қол жеткізу үшін жеке жад контроллерлері қолданылуы мүмкін. Осылайша, деректер мен код бір жад контроллері арқылы өткен кезде фон Нейман архитектурасы кейбір жағдайларда көрінеді, ал аппараттық жүзеге асыру кэшке және кейбір негізгі жадқа қол жеткізуде Гарвард архитектурасының тиімділігін пайдаланады. Сонымен қатар, CPU-лар көбінесе жазу буферлерімен жабдықталған, олар кэштелмеген аймақтарға дерек жазғаннан кейін CPU-дың жұмысын жалғастыруына мүмкіндік береді. Фон Нейман архитектурасы жадта нұсқаулар дерек ретінде жазылғанда көрінеді, сондықтан бағдарламалық жасақтама жаңа жазылған нұсқауларды орындауға тырысқанға дейін кэштердің (деректер және нұсқаулар) және жазу буферінің синхрондалғанын қамтамасыз етуі керек.
Гарвард архитектурасының қазіргі заманғы қолданылуы
Таза Гарвард архитектурасының басты артықшылығы – бір мезгілде бірнеше жад жүйесіне қол жеткізу мүмкіндігі – қазіргі заманғы CPU кэш жүйелерін пайдаланатын өзгертілген Гарвард процессорларының арқасында төмендетілді. Салыстырмалы түрде таза Гарвард архитектурасы қолданылатын құрылғылар көбінесе кэштерді жоюдан туындайтын шығындар мен қуатты үнемдеу сияқты артықшылықтары, код пен деректердің жеке адрес кеңістіктеріне ие болудан туындайтын бағдарламалау қиындықтарынан басым түсетін салаларда қолданылады. Цифрлық сигнал процессорлары (DSP) әдетте Гарвард архитектурасын пайдаланып, кішкентай, жоғары дәрежеде оңтайландырылған аудио немесе бейне өңдеу алгоритмдерін орындайды. Олар кэштерді пайдаланбайды, өйткені олардың жұмысы толық қайталанатын болуы керек. Көптеген адрес кеңістіктерін басқару қиындықтары, орындалу жылдамдығына қарағанда маңыздылығы төмен. Сондықтан, кейбір DSP-лер SIMD және VLIW өңдеуді жеңілдету үшін бөлек адрес кеңістіктерінде бірнеше дерек жадына ие. Мысалы, Texas Instruments TMS320 C55x процессорлары бірнеше параллель дерек шиналарына (екі жазуға, үш оқуға) және бір команда шинасына ие. Микроконтроллерлер шағын көлемдегі бағдарламалық (флэш-жад) және дерек (SRAM) жадымен сипатталады және бір мезгілде командаларды және деректерді өңдеу арқылы өңдеу жылдамдығын арттыру үшін Гарвард архитектурасының мүмкіндіктерін пайдаланады. Жеке сақтау, бағдарламалық және дерек жады әртүрлі бит еніне ие болуы мүмкін, мысалы, 16 биттік командалар және 8 биттік деректер қолданылуы мүмкін. Бұл сонымен қатар командаларды алдын ала жүктеуді басқа операциялармен бірдей орындауға мүмкіндік береді. Мысалдарға Microchip Technology, Inc. компаниясының PIC және Atmel Corp компаниясының AVR (қазір Microchip Technology компаниясының бөлігі) жатады. Мұндай жағдайларда да, бағдарламалық жадқа тек оқуға арналған кестелер үшін немесе қайта бағдарламалау үшін дерек сияқты қол жеткізу үшін арнайы командаларды қолдану кең таралған; бұл процессорлар өзгертілген Гарвард архитектурасының процессорлары болып табылады.