Въведение
Компютърната архитектура е атрибутът на компютъра, който програмистите виждат, тоест логическата структура и функционалните характеристики на компютъра, включително взаимовръзката между неговите различни твърди и меки компоненти. За дизайнерите на компютърни системи компютърната архитектура се отнася до изучаването на основните дизайнерски идеи на компютрите и произтичащата от тях логическа структура; за програмистите се отнася до функционалното описание на системата (като набор от инструкции, метод на програмиране и т.н.).
Основни понятия
Компютърната архитектура се отнася до системната структура на софтуера и хардуера. Има две значения: едното е структурата на системата, гледана от гледна точка на програмиста. Това е изследване Концептуалната структура и функционалните характеристики на компютърната система са свързани с характеристиките на софтуерния дизайн; втората е структурата на системата, гледана от гледна точка на дизайнера на хардуера, което всъщност е съставът или реализацията на компютърната система (вижте компютърна организация), като се фокусира главно върху производителността Разумността на съотношението цена. За да обяснят и проучат атрибутите (външните характеристики) на компютрите, гледани от гледна точка на програмирането, Адам и други първи предлагат концепцията за структура на компютърна система през 1964 г.
Концептуална структура и функционални характеристики, които са компютърни атрибути, гледани от гледна точка на програмисти. Той включва представянето на данните в машината, режима на адресиране, работата с тези данни и контрола на изпълнението на тези операции (а именно системата от инструкции). За машини с общо предназначение обикновено включва представяне на данни, режим на адресиране, дефиниране на регистър, система от инструкции, механизъм за прекъсване, дефиниране на работно състояние на машината и превключване на състояния, входна и изходна структура на ниво машина и поддръжка за защита на информацията и др.
Computer architecture mainly studies the distribution of software and hardware functions and the determination of software and hardware interfaces. Since the 1970s, significant progress has been made in computer software. Although computers have made huge breakthroughs in performance, speed, price, reliability, organization, and implementation technology compared to the end of the 1950s, their system structure has not made any obvious and breakthrough progress. The system structure of most machines still does not deviate from the scope of the von Neumann type. The system structure seen by programmers has not changed much from the end of the 1950s. For example, with regard to the instruction system, programmers are basically still designing much more complex software based on the viewpoint of computer system structure in the late 1950s. The serious disconnection between the hardware composition of traditional computers and high-level languages and operating systems will adversely affect the reliability of software, the efficiency of source program compilation, and the efficiency of system problem-solving. This is an important aspect of the computer system structure that needs to be resolved. Subject. The data flow computer system structure thought that appeared in the 1970s changed the instruction control flow control method of the traditional computer to the data control flow control method, so that it is possible to automatically remove the obstacles of computational correlation and achieve the goal of high parallelism.
Разпределението на компютърен софтуер и хардуерни функции трябва да се разглежда главно от разходите за внедряване, въздействието върху скоростта и други изисквания за производителност, тоест как да се разпредели може да се подобри съотношението производителност-цена. Втвърдяването или укрепването на основните и общи функции на операционната система е благоприятно за подобряване на ефективността на изпълнение и скоростта на операционната система и намаляване на режийните разходи; докато функциите са нестабилни, т.е. такива, които трябва постоянно да се променят, а внедряването на софтуер е благоприятно за осигуряване на необходимата гъвкавост. Разходите за внедряване включват разходи за разработка и повтарящи се производствени разходи. Цената на хардуерния дизайн и повтарящото се производство е по-висока от тази на софтуера. Функциите, подходящи за хардуерно внедряване, трябва да са стабилни, често използвани и сравнително малки, а забавянето на скоростта на внедряване на софтуера ще има по-голямо въздействие върху производителността на компютърната система. . Хардуерното внедряване е икономически изгодно само за компютърни системи с голям изход.
Осем вида атрибути
1. Представяне на данни в машината: типът и форматът на данните, които могат да бъдат директно разпознати и управлявани от хардуера
2·Режим на адресиране: най-малката възможна адресна единица, вид на режима на адресиране, адресна операция
3·Регистърна организация: дефиниция, количество и правила за използване на операционен регистър, индексен регистър, контролен регистър и специален регистър
4. Система за инструкции: тип операция на машинна инструкция, формат, подреждане и механизъм за управление между инструкциите
5·Система за съхранение: минимална адресна единица, метод на адресиране, капацитет на основната памет, максимално адресируемо пространство
6·Механизъм на прекъсване: тип прекъсване, ниво на прекъсване и метод на реакция на прекъсване и др.
7·Входна и изходна структура: режим на входна и изходна връзка, процесор/памет и входно и изходно оборудване Начинът на обмен на данни и контролът на процеса на обмен на данни
8·Информационна защита: метод за защита на информацията, хардуерен механизъм за защита на информацията.
Изследователско съдържание
Концептуалната структура и функционалните характеристики на компютъра, които се отнасят до атрибутите на компютърната система в очите на системния програмист и също така включват компютърната система, видяна от дизайнера на машината Логическата структура. Накратко, това е подробно описание на връзката между различните части на компютъра. Това е цялостна концепция за хардуер, софтуер, алгоритми и език. Терминът компютърна архитектура се нарича още структура на компютърна система. Той се превърна в предмет с широк спектър от съдържание и се превърна в задължителен курс за компютърни специалности в колежи и университети. Основното съдържание на неговите изследвания е както следва:
1. Системата с инструкции включва типа операция, формата и адресирането на машинните инструкции.
2. Системата за съхранение включва многостепенна йерархия за съхранение, виртуална структура за съхранение, високоскоростна буферна структура за съхранение и защита на съхранението.
3. Системата за вход и изход включва структура на канала, структура на процесора за вход и изход и т.н.
4. Структурата на централния процесор включва структура на фон Нойман, структура, различна от фон Нойман, структура на припокриване, структура на конвейер, структура на паралелна обработка и др.
5. Мултикомпютърната система включва технология за взаимно свързване, многопроцесорна структура, структура за разпределена обработка, структура на компютърна мрежа и др.
6. Комуникационните връзки човек-машина включват интерфейс човек-машина, надеждност на компютъра, достъпност и поддръжка (трите се наричат RAS технология), устойчива на грешки технология, диагностика на грешки и др.
Освен това се изучава езикът за описание на компютърния хардуер, оценката на производителността на компютърната система и друго съдържание.
История на развитието
Компютърната архитектура е преминала през четири различни етапа на развитие.
Първа фаза
Преди средата на 60-те години това беше ранната ера на развитие на компютърната архитектура. През този период хардуерът с общо предназначение стана доста разпространен, но софтуерът се пише специално за всяко конкретно приложение. Повечето хора смятат, че разработването на софтуер е нещо, което не трябва да се планира предварително. Софтуерът в момента всъщност е програма с по-малък мащаб и програмистът и потребителят на програмата често са едни и същи (или една и съща група) хора. Поради малкия мащаб, програмата е доста лесна за писане, няма систематичен метод и няма управление на работата по разработката на софтуер. Тази индивидуализирана софтуерна среда прави дизайна на софтуера само неясен процес, имплицитно извършван в съзнанието на хората. С изключение на програмния списък не са запазени никакви други документи.
Втора фаза
От средата на 1960-те до средата на 1970-те това беше второто поколение разработка на компютърна архитектура. През последните 10 години компютърните технологии отбелязаха голям напредък. Многопрограмната и многопотребителска система въведе новата концепция за взаимодействие човек-компютър, създаде ново царство от компютърни приложения и изведе координацията на хардуера и софтуера на ново ниво. Системите в реално време могат да събират, анализират и трансформират данни от множество източници на информация, така че контролът на процеса да може да се извършва за милисекунди вместо за минути. Напредъкът в технологиите за онлайн съхранение доведе до появата на първото поколение системи за управление на бази данни. Важна характеристика на този етап е появата на "софтуерни работилници", широко използване на продуктов софтуер. Въпреки това, "софтуерните работилници" основно все още използват индивидуализираните методи за разработка на софтуер, които са били формирани в ранните дни. С нарастващата популярност на компютърните приложения, броят на софтуера се разшири драстично. Грешките, открити по време на работа на програмата, трябва да бъдат коригирани; потребителите трябва да променят съответно програмата, когато имат нови изисквания; когато хардуерът или операционните системи се актуализират, програмите обикновено трябва да бъдат модифицирани, за да се адаптират към новата среда. Гореспоменатата работа по поддръжката на софтуера изразходва ресурси с тревожна скорост. По-сериозно, индивидуалният характер на много програми ги прави в крайна сметка неподдържани. "Софтуерната криза" току-що започна да се появява. През 1968 г. компютърни учени от Организацията на Северноатлантическия пакт организираха международна конференция във Федерална република Германия, за да обсъдят софтуерната криза. На тази конференция терминът "софтуерно инженерство" беше официално предложен и използван и се роди нова инженерна дисциплина.
Трета фаза
Третото поколение разработка на компютърна архитектура започна в средата на 70-те години и продължи цели 10 години. През последните 10 години компютърните технологии отбелязаха голям напредък. Разпределените системи значително увеличиха сложността на компютърните системи. Локалните мрежи, широкообхватните мрежи, широколентовите цифрови комуникации и повишеното търсене на "незабавен" достъп до данни поставят по-високи изисквания към разработчиците на софтуер. През този период обаче софтуерът все още се използва главно в индустрията и академичните среди, с много малко лични приложения. Основната характеристика на този период е появата на микропроцесорите и микропроцесорите са широко използвани. „Умни“ продукти с микропроцесори като ядро могат да се видят навсякъде. Разбира се, най-важният интелигентен продукт е персоналният компютър. За по-малко от 10 години персоналните компютри се превърнаха в популярна стока.
Четвърта фаза
Четвъртото поколение разработка на компютърна архитектура започна в средата на 80-те години и продължава до днес. На този етап това, което хората усещат, е комбинираният ефект на хардуер и софтуер. Мощните настолни компютри, локалните мрежи и широкообхватните мрежи, управлявани от сложни операционни системи, съчетани с усъвършенстван приложен софтуер, се превърнаха в текущата основна тенденция. Компютърната архитектура бързо се промени от централизирана хост среда към разпределена среда клиент/сървър (или браузър/сървър). Световната информационна мрежа предоставя условия на хората да извършват широк обмен и пълно споделяне на ресурси. Софтуерната индустрия вече е заела ключова позиция в световната икономика. С напредването на времето продължават да се появяват нови технологии. Обектно-ориентираната технология бързо замени традиционните методи за разработка на софтуер в много области.
„Технологията от четвърто поколение“ за разработка на софтуер промени начина, по който софтуерната индустрия разработва компютърни програми. Експертните системи и софтуерът за изкуствен интелект най-накрая излязоха от лабораторията и навлязоха в практически приложения, решавайки голям брой практически проблеми. Софтуерът за изкуствена невронна мрежа, използващ размита логика, демонстрира блестящите перспективи за разпознаване на образи и обработка на антропоморфна информация. Технологията за виртуална реалност и мултимедийните системи позволяват да се комуникира с потребителите по напълно различни начини от преди. Генетичните алгоритми ни позволяват да разработим софтуер, който се намира на големи паралелни биологични компютри.
Принцип
Компютърната архитектура решава проблемите, които компютърната система трябва да реши като цяло и функции. Това е различна концепция от компютърната композиция и компютърната реализация. Една архитектура може да има множество компоненти, а една композиция може също да има множество физически реализации.
Логическата реализация на структурата на компютърната система, включително състава на вътрешния поток от данни и контролния поток на машината, и логическия дизайн. Неговата цел е да комбинира рационално различни компоненти и оборудване в компютър, за да постигне специфична системна структура, като същевременно отговаря на желаното съотношение цена-производителност. Най-общо казано, обхватът на изследването на компютърната композиция включва: определяне на ширината на пътя на данните, определяне на степента на споделяне на функционални компоненти чрез различни операции, определяне на специални функционални компоненти, определяне на паралелността на функционалните компоненти, проектиране на стратегии за буфериране и опашка и проектиране на контролни механизми и определяне коя надеждна технология да се използва и т.н. Физическа реализация на компютърна композиция. Включително физическата структура на процесора, основната памет и други компоненти, интеграцията и скоростта на устройството, разделянето и свързването на устройства, модули, плъгини и задни платки, дизайн на специални устройства, технология за предаване на сигнали, захранване , технологии за охлаждане и сглобяване и свързани технологии Производствен процес и технология.
Класификация
Класификация на Флин
През 1966 г. Майкъл Дж. Флин предложи да се класифицират компютърните системи според паралелизма на потока от инструкции и потока от данни, който се дефинира по следния начин.
·Поток от инструкции: последователността от инструкции, изпълнявани от машината
·Поток от данни: последователността от данни, извикана от потока от инструкции, включително входни данни и междинни резултати
· Паралелна степен: Максималният възможен брой инструкции или данни, изпълнени паралелно.
Флин разделя компютърните системи на 4 категории според различните методи за организация на потока от инструкции и данни.
1·Единичен поток от инструкции Единичен поток от данни (Единичен поток от инструкции, Единичен поток от данни, SISD)
SISD всъщност е традиционен еднопроцесорен компютър с последователно изпълнение и неговите компоненти за инструкции декодират само една инструкция и присвояват данни само на една операционна част.
2·Единичен поток от инструкции Множество поток от данни (SIMD)
SIMD е представен от паралелен процесор. Структурата е показана на фигура 1. Паралелният процесор включва множество. Двете повтарящи се единици за обработка PU1 до PUn се управляват от една единица за инструкции и им се разпределят различни данни, изисквани от всяка според изискванията на един и същ поток от инструкции.
3·Поток с множество инструкции Единичен поток от данни (MISD)
Структурата на MISD, има n единици за обработка, според изискванията на n различни инструкции. Различна обработка на един и същ поток от данни и неговите междинни резултати. Изходът на един процесор се използва като вход на друг процесор.
4·Поток от множество инструкции Множество поток от данни (MIMD)
Структурата на MIMD се отнася до изпълнението на операции, задачи, инструкции и други нива на паралелизъм. За многомашинните системи мултипроцесорите принадлежат към MIMD.
Класификация в стил Фън
През 1972 г. Feng Zeyun предложи да се използва максимален паралелизъм за класифициране на компютърната архитектура. Така наречената максимална степен на паралелизъм Pm се отнася до максималния брой двоични цифри, които една компютърна система може да обработи за единица време. Ако приемем, че броят на двоичните битове, които могат да бъдат обработени във всеки тактов цикъл △ti, е Pi, средният паралелизъм в T тактови цикъла е Pa=(∑Pi)/T (където i е 1, 2, ..., T) . Средната степен на паралелизъм зависи от степента на работа на системата и няма нищо общо с приложението. Следователно средната степен на използване на системата в периода T е μ=Pa/Pm=(∑Pi)/(T*Pm). Точка в правоъгълна координатна система се използва за представяне на компютърна система. Абсцисата представлява ширината на думата (N бита), т.е. броя на двоичните цифри, обработени по едно и също време в една дума; ординатата представлява ширината на битовия срез (M бита), тоест в един бит. За броя на думите, които могат да бъдат обработени едновременно във филма, максималната степен на паралелизъм е Pm=N*M.
Четири различни компютърни структури са получени от това:
①Сериен и битов сериен текст на думата (накратко WSBS). Където N=1 и M=1.
②Word parallel, bit serial (abbreviated as WPBS). Where N=1, M>1.
③Word serial, bit parallel (referred to as WSBP). Where N>1, M=1.
④Word parallel, bit parallel (referred to as WPBP). Where N>1, M>1.
Технологични иновации
Компютърната архитектура се основава на теорията на машината на Тюринг и принадлежи към архитектурата на фон Нойман. По същество теорията на машината на Тюринг и архитектурата на фон Нойман са едномерни последователни, докато многоядрените процесори принадлежат към разпределена и дискретна паралелна структура и несъответствието между двете трябва да бъде разрешено.
На първо място, проблемът със съвпадението между модела на серийната машина на Тюринг и физически разпределения многоядрен процесор. Моделът на машината на Тюринг означава сериен модел на програмиране. Трудно е за серийните програми да използват множество процесорни ядра, които са физически разпределени, за да постигнат ускорение на производителността. В същото време моделът на паралелно програмиране не е добре популяризиран и е ограничен само до ограничени области като научните изчисления. Изследователите трябва да търсят подходящ механизъм за постигане на съвпадащия проблем между серийния модел на машината на Тюринг и физически разпределения многоядрен процесор или да намалят разликата между двете, за да решат проблема с „програмирането на паралелна програма е трудно, ускоряването на серийната програма е малък".
По отношение на поддръжката на многонишкови паралелни приложения, бъдещите многоядрени процесори трябва да се разглеждат от следните две посоки. Първият е да се въведе нов програмен модел, който може по-добре да изрази паралелизма. Тъй като новият модел на програмиране позволява на програмистите ясно да изразят паралелността на програмата, производителността може да бъде значително подобрена. Например процесорът Cell предоставя различни модели на програмиране за поддръжка на различни приложения. Трудността се състои в това как ефективно да се популяризира моделът на програмиране и как да се реши проблемът със съвместимостта. Вторият тип посока е да се осигури по-добра хардуерна поддръжка, за да се намали сложността на паралелното програмиране. Паралелните програми често трябва да използват механизма за заключване, за да постигнат синхронизация и взаимно изключване на критични ресурси. Програмистът трябва внимателно да определи местоположението на заключването, тъй като консервативната стратегия за заключване ограничава производителността на програмата, а прецизната стратегия за заключване значително увеличава сложността на програмирането. Някои проучвания са направили ефективни проучвания в това отношение. Например, механизмът Speculative Lock Elision позволява операцията за заключване, изпълнена от програмата, да бъде игнорирана без конфликти, като по този начин намалява сложността на програмирането, като същевременно взема предвид производителността на паралелното изпълнение на програмата. Този механизъм позволява на програмистите да се концентрират върху коректността на програмата, без да се налага да вземат предвид ефективността на изпълнение на програмата твърде много. По-радикално, механизмът за кохерентност и съгласуваност на транзакциите (TCC) разглежда проблемите с последователността на данните в единици от операции за достъп до множество памети (транзакции), което допълнително опростява сложността на паралелното програмиране.
Основните търговски многоядрени процесори са насочени главно към паралелни приложения. Как да използвате многоядрени за ускоряване на серийни програми все още е проблем, който заслужава внимание. Ключовата технология е да се използва софтуер или хардуер за автоматично извличане на кодове или нишки, които могат да се изпълняват паралелно на многоядрен процесор от серийна програма. Има три основни метода за многоядрено ускорение на серийни програми, включително паралелен компилатор, спекулативна многонишковост и базиран на нишки механизъм за предварително извличане. При традиционната паралелна компилация компилаторът трябва да положи много усилия, за да гарантира, че няма зависимост на данните между нишките, които ще бъдат разделени. Има много размити зависимости по време на компилация, особено когато са разрешени указатели (като C програми), компилаторът трябва да приеме консервативни стратегии, за да гарантира коректното изпълнение на програмата. Това силно ограничава степента на едновременност, която серийните програми могат да докоснат, и също така определя, че паралелният компилатор може да се използва само в тесен диапазон. За да решат тези проблеми, хората предлагат спекулативни многонишкови и базирани на нишки механизми за предварително извличане. Въпреки това, тъй като тази концепция беше представена досега, повечето от изследванията в тази посока са ограничени до академичния свят и само няколко комерсиални процесори са приложили тази технология и те са ограничени само до специални области на приложение. Вярваме, че комбинацията от технология за динамична оптимизация и спекулативна многонишковост (включително базиран на нишки механизъм за предварително извличане) е възможна бъдеща тенденция на развитие.
Второ, проблемът за съвпадение на едномерното адресно пространство на фон Ноймановата архитектура и многомерното ниво на достъп до паметта на многоядрения процесор. По същество архитектурата на фон Нойман използва едномерно адресно пространство. Поради неравномерно забавяне на достъпа до данни и различни копия на едни и същи данни на множество процесорни ядра, възникват проблеми с последователността на данните. Изследванията в тази област са разделени на две категории: Един тип изследвания основно въвеждат ново ниво на достъп до паметта. Новото ниво на достъп до паметта може да приеме едномерна разпределена реализация. Типичен пример е добавянето на разпределена и унифицирана адресна регистърна мрежа. Характеристиката на глобалното унифицирано адресиране избягва съобразяването с последователността на данните. В същото време, в сравнение с традиционния достъп до кеш с голям капацитет, регистрите могат да осигурят по-високи скорости на достъп. Както TRIPS, така и RAW са внедрили подобни мрежи за основни регистри. Освен това новото ниво на достъп до паметта може да бъде и лично. Например, всяко ядро на процесора има собствено лично пространство за достъп до паметта. Предимството е, че пространството за съхранение на данни е по-добре разделено и не е необходимо да се разглеждат проблеми с последователността на данните за някои лични данни. Например клетъчният процесор настройва частен буфер за данни за всяко SPE ядро. Друг вид изследване включва главно разработването на нов протокол за съгласуваност на кеша. Важната тенденция е да се отпусне връзката между коректност и изпълнение. Например, спекулира се, че протоколът Cache спекулира и изпълнява свързани инструкции, преди да бъде потвърдена съгласуваността на данните, като по този начин намалява въздействието на операциите за достъп до паметта с дълга латентност върху тръбопровода. В допълнение, Token Coherence и TCC също възприеха подобни идеи.
Трето, разнообразието от програми и проблемът за съвпадение на една структура на системата. Бъдещите приложения показват характеристиките на разнообразието. От една страна, оценката на процесора не се ограничава само до производителността, но включва и други показатели като надеждност и безопасност. От друга страна, дори ако имате предвид само стремежа към подобряване на производителността, различните приложения също съдържат различни нива на паралелизъм. Разнообразието от приложения кара бъдещите процесори да имат конфигурируема и гъвкава архитектура. TRIPS направи ползотворни проучвания в това отношение. Например неговите процесорни ядра и системи за съхранение на чип имат конфигурируеми възможности, така че TRIPS да може едновременно да копае паралелизъм на ниво инструкции, паралелизъм на ниво данни и паралелизъм на ниво инструкции.
Появата на нови процесорни структури като многоядрени и Cell е не само забележително събитие в историята на процесорната архитектура, но и подрив на традиционните изчислителни модели и компютърна архитектура.
През 2005 г. бяха разкрити поредица от компютърни архитектури с широкообхватно влияние, които могат да положат фундаментална основа за компютърната архитектура през следващите десет години, поне за процесора и дори за цялата компютърна архитектура. Символично ръководство. С увеличаването на изчислителната плътност, стандартите за измерване и методите на производителността на процесора и компютъра се променят. От гледна точка на приложението е открита най-задоволителната комбинация от мобилно и отклонение и може да взриви ръчно Бързо разширяване на оборудването. Въпреки че ръчните устройства са сравнително популярни в днешно време, по отношение на изчислителна мощност, мащабируемост и консумация на енергия, те напълно играят ролята, която трябва да има ръчното устройство; от друга страна, ориентираните към производителността сървърни и настолни терминали започват да обмислят намаляване на консумацията на енергия. Наваксайте тенденцията на природозащитното общество.
Самата клетка се адаптира към тази промяна и сама създава тази промяна. Поради това от самото начало набляга на различни стилове на дизайн. Освен че може да се разширява многократно, вътрешният SPU (Synergistic Processor Unit) на процесора има добра мащабируемост, така че може да се изправи едновременно. Обработката с общо и специално предназначение реализира гъвкавата реконструкция на ресурсите за обработка. Това означава, че чрез подходящ софтуерен контрол, Cell може да се справи с множество типове задачи за обработка, като същевременно е в състояние да рационализира сложността на дизайна.