2. Логическа организация на изчислителните системи. Основни



Дата26.01.2017
Размер104.67 Kb.
#13578
2. Логическа организация на изчислителните системи.Основни

компоненти и схеми на взаимовръзката им. Процесори – типове команди,

видове команди. Аспекти на командите – формат, операции,

вътрешно представяне (модели), команди на управление.
В
АЛУ

MAR

MBR

рег = регистри

R1

R2

Rn

рег


РС
сяка компютърна система включва три основни компонента:
процесор, памет и входно-изходни устройства, наречени периферни. Процесорът изпълнява и реализира командите на програмата. Всяка програма в даден момент от времето се намира в даден етап от своето изпълнение, тоест в някакво състояние. От друга страна, изпълнението на програмата представлява процес, който също се намира в някакво състояние. Това състояние се описва чрез понятието векторно състояние на процеса. Векторното състояние на процеса съдържа цялата информация, необходима за възобновяването на един спрян процес от точката на спиране по такъв начин, че все едно никога не е бил спиран. Включва в себе си: състоянието на програмата (изпълнимия код) в момента на спиране, състоянието на областите с данни, съдържанието на управляващите таблици (блокове) с данни на операционната система, съдържанието на регистрите на процеса и състоянието на входно-изходните устройства. Попринцип се счита, че по време на изпълнението си програмата не се изменя, поради което няма смисъл нещо константно (неизменимо) да се съхранява. Счита се, че писането на програми, които се видоизменят по време на изпълнението си, е лош стил на програмиране, и въпреки това и днес той е все още честа практика. Процесорът, реализиращ командите в ISA-а рхитектурата, обработва стъпка по стъпка последователно, една след друга, командите от основната памет. Централният процесор има един регистър, наречен Program Counter (PC), който сочи в оперативната памет изпълнението на следващата команда. Процесорът изпълнява всички команди вътре в своето тяло и между своите регистри. Всяка команда се извлича от специален регистър в паметта, наречен регистър на командата. Командите се изпълняват от специализиран вътрешен блок – аритметико-логическо устройство (АЛУ), чиято основна част е двоичният суматор. Извличането на командата се изпълнява от друга част на централния процесор, наречена управляващо устройство (УУ), то синхронизира работата на вътрешните компоненти на процесора, в това число и на аритметико-логическото устройство, чрез тактови импулси. Тялото на процесора има набор от регистри R1, R2, …, Rn с общо предназначение, които програмистът или компилаторът на съответния език използват по свое усмотрение. Освен това има набор от регистри, които са недостъпни програмно (Memory Addressing Registry – MAR) и една група от буферни регистри (MBR). Обикновено, когато се занесе стойност в MARi-регистъра, следващият такт или полутакт в MARi-регистъра обменя информация с клетка от основната памет, сочена от MARi-регистъра.

Всеки процесор работи потактово в следната схема:



  1. Управляващото устройство по съдържанието на Program Counter-а извлича от основната памет в IR-регистър (Instruction Registry) следващата за изпълнение команда.

  2. Съдържанието на Program Counter-а се увеличава с дължината на извлечената команда, тоест се премества на следващата команда, управляващото устройство изпраща сигнал към аритметико-логическото устройство за изпълнение на командата.

  3. Аритметико-логическото устройство изпълнява локализация на данните, тоест определяне на местоположението.

  4. Извлича във вътрешни MBR-регистри локализираните данни.

  5. Реализира командата.

  6. Определя местоположението на резултата.

  7. Занася резултата на определеното място.

  8. Прави проверка има ли сигнал за аварийна ситуация (за прекъсване), ако не – преход към първа стъпка, ако да – преход към първа стъпка от така наречения авариен цикъл за изпълнение на командата.

Тази последователност от тактове (стъпки) се нарича „нормален цикъл на изпълнение на командата”.

Program Counter-регистърът е винаги достъпен за програмиста, тоест програмистът може да управлява хода на изпълнението на програмата – програмно (пр.: PC=6000 – присвоява стойност).

Останалите основни компоненти на компютърните системи са: основната памет (RAM – Random Access Memory) и входно-изходните устройства. Основната памет е хранилище на команди. Обикновено във всяка клетка на SRAM-паметта един бит информация се реализира чрез 6-8 транзистора, а при DRAM-паметта – само 1 транзистор. Освен това при DRAM-паметта има затихване на електронния сигнал, поради което през определен такт от време трябва да се прави тъй нареченото „опресняване” на паметта, тоест презареждане с електронен заряд на паметта – поради тази спецификация DRAM-паметта е много бавна. Обменът на информация между регистрите на централния процесор и оперативната памет става чрез така наречената шина на паметта. Има няколко метода за свързване на тези два основни компонента с входно-изходните устройства.

Първият е шинната организация:



Тя е въведена за пръв път през 1978г. от DEC (Digital Equipment Corporation) за VAX11 (Virtual Address Extension) за организация на връзка с компонентите. Днес тя е широко използвана при персоналните компютри за микротехнологията, като процедурата е следната: Имаме един специален универсален набор от електронни линии (стандартизирани медни проводници), наречени шина – това са линии за адреси, линии за данни, линии за управление, линии за синхронизация, линии за прекъсване и допълнителни линии (специализирани) в зависимост от конкретната архитектура. Тази концепция позволява различни допълнителни устройства да бъдат включвани към обща шина, стига само тези устройства да спазват интерфейса на общата шина. Има едно единствено ограничение, че групата линии е само една, и, когато започне обмен, например между регистрите и клетките за данни от паметта, тези линии са заети и не може да върви паралелен обмен с други компоненти, тоест има едно изчакване. Днес има предвидени компромисни механизми, които да позволят донякъде паралелност между централния процесор и някое друго периферно устройство, като шината е снабдена с един допълнителен компонент – „устройство за управление на шината”, който посредством специализирани управляващи линии на шината (например за Intel – AEN и ALG линии), управлява заемането и освобождаването на шината, като: Ако е започнал обмен между операционната памет и някое външно устройство, реално в това време централната памет не може да извлече следващи команди – шината е заета. За целта устройството за управление на шината през определен квант от време отнема шината и я предава за малко на централния процесор, за да извлече следваща команда и след това отново я връща на двете обменящи устройства. По този начин устройството за управление на шината успява донякъде да осъществи паралелност.

Вторият подход е чрез индивидуални информационни канали: (ПВИ – процесор за вход и изход)
Приложен от IBM в 3601370 модел компютри, така наречените mainframe компютри.

Принципът на индивидуалните информационни канали е всеки с всеки, a, за да намалее донякъде броят на линиите, IBM е възприела концепция за специализирани процесори за вход-изход, те са до 7, като за един процесор за вход-изход може да има няколко входно-изходни устройства. Интерфейсът с тези входно-изходни устройства става по специализирани линии, наречени голям интерфейс. От централната памет излизат линии, които извличат команди от операционната памет, без това да се отразява на обмена между някоя област на паметта и някое входно-изходно устройство. Разработена през 60те години от IBM, тази технология днес държи 40% от пазара в света. При тази организация е интересен обменът между процесорите за вход/изход (ПВИ) и операционната памет (ОП). По-късно тази концепция е добавена и към персоналните компютри. Процесорът за вход-изход е нормална компютърна система, тя има в себе си процесор, със свой набор от машинни команди, с друга семантика и структури, има своя памет и свои регистри. При IBM паметта е само за буфери за данни, няма място за паметта за машинните програми. Машинните програми за вход-изход се намират в оперативната памет. Процесорите за вход-изход също имат свой Program Counter и свой регистър на командите. Централният процесор има един регистър CR (Challenge Register) – 64 битов, който чрез централния процесор изпълнява машинни команди (пр.: Start 1 Input/output, която като параметър има номера на процесор за вход-изход и номер на изходно устройство към него). Реализирането на такава команда води до изпращането на сигнал към съответния процесор за вход-изход, а по друга линия му изпраща номера на входно-изходното устройство. Активираният процесор за вход-изход прочита в себе си СR-регистъра и от него извлича команда след команда, за да я изпълнява. Щом свърши този набор от машинни команди, това означава, че е свършил и процесът на обмен.

И
Уi – устройство за вход/изход

Вi - буфер


ма два вида процесори, които работят в два режима: мултиплексорен и селекторен. При мултиплексорния режим процесорът за вход-изход има за всяко устройство, включено към него, 1 буфер за обмен на данни на точно фиксирани адреси. Той работи по следната схема: извършва обмен между своя и буфера на устройството на 1 байт и след това обмен на 1 байт с буфера на второ устройство, и след това започва отново – наведнъж. Буферът се анулира и започва наново. Този режим се прилага при бавните устройства: принтерите, комуникационните линии, които са по-бавни. Тази технология позволява да има паралелен едновременен печат върху много устройства. Вторият вид процесори със селекторен режим се свързва с бързите устройства (магнитни дискове) или с компютърните мрежи. Той има само 1 буфер и работи на принципа: прави обмен с едно устройство и изпълни обмена с този буфер и след това премини към следващо устройство. Той може да получава много заявки, но избира само една. Преди няколко години се появиха хибриди между мултиплексорния и селекторния режим, които работят на мултиселекторен режим.

Последният модел на взаимовръзка е при супер-компютрите:



Той е въведен от CDC (Control Data Corporation). Характерно при него е, че централният процесор (ЦП) няма пряка връзка с процесорите за вход-изход (ПВИ), т.е. няма пряко управление върху тях. Основната памет е разделена на две части: оперативна (ОП) и Extended Computer Storage (ECS). Централният процесор има връзка и с двата вида основна памет. В оперативната памет има една строго фиксирана област, наречена пощенска кутия (Post Box – PB). Когато процесорът изпълнява команда, свързана с инициализацията за вход-изход, тази машинна команда води до записване в съответната пощенска кутия на параметрите за вход-изход. След това централният процесор продължава обработката на следващите команди от програмата. През това време всеки процесор за вход-изход, който е свободен, проверява пощенската кутия и, ако има заявка в нея, той прочита параметрите на заявката в свои регистри и започва да изпълнява заявката. Процесорът за вход-изход може да изпълнява различни видове заявки – предварително специфицирани. Всяка такава заявка се реализира от набор от машинни команди, организирани в подпрограми, които се кръщават с три символни имена. Пощенската кутия съдържа в едно поле името на подпрограмата, получавайки това име като параметър. Процесорът за вход-изход се обръща към тази програма за реализация на заявката. Когато тази подпрограма завърши работа, тя връща в същата пощенска кутия статус и флагове от завършване на операцията. Тази подпрограма се набира ръчно от пулта за управление на вход-изход. Слабост на тази архитектура е, че при грешка в подпрограмите и възможно зацикляне, централният процесор няма възможност да се намеси и да прекрати щетите, било то апаратно или чрез средствата на операционната система, затова единствен изход от ситуацията е restart на цялата КС.

Ние разглеждаме ISA-архитектурите, които се характеризират с последователност на изпълнението на набор от команди. Този набор определя функционалността на компютърната система. Самата архитектура детерминира какви са механизмите за съхранение и степента на приемственост. Степента на приемственост се определя от приемствеността в реализацията на командите и в развитието на теорията на компилаторите. Всяка фирма производител на компютърни системи се стреми да предостави на различните групи потребители едни и същи възможности, но с различно качество, т.е. възможност за изпълнение на един и същ набор от машинни команди, но с различна скорост – бързи, но скъпи машинни команди, или бавни, но евтини. От гледна точка на приемствеността в софтуерната технология, до 1984 г. се е считало, че най-добър машинен код може да създаде програмистът. От 1984 до 1992 г. се е считало, че транслаторът може да произведе машинен код, не по-лош от този на човека, а днес се счита, че програмистът и компилаторът могат да създадат еднакво добър машинен код. Предпоставка за качество на процесора се явява структурата на командите. Машинните команди се съхраняват в една или няколко клетки на паметта, във вид на двоичен набор. Този двоичен набор има определена структура, например една част съдържа поле, показващо каква операция трябва да се изпълни, и друга част (поле), показваща местоположението на данните, които трябва да извършат тази аритметична операция, и местоположението на резултата, т.е. къде трябва да се запише. Структурата на всеки такъв двоичен набор зависи от семантиката на операцията, заложена в него. Тази детерминирана структура на командите се нарича формат на командите. Форматът на командите е ключов момент в изграждането на всяка компютърна система, поради което и досега учените продължават да изследват аспектите (характеристиките) на този формат с цел извличане на основни критерии при проектиране на компютърни системи. Един от аспектите е дължината на командите – дали да бъде фиксирана или променлива. Фиксираната дължина позволява конвейерна работа на процесора, така нареченият механизъм pipelining, т.е. процесорът да може да обработва едновременно няколко машинни инструкции, които в даден момент се намират в различен етап от цикъла на изпълнението им. Днес масовата практика е дължината на командите да бъде 2 или 4 байта. Когато дължината е фиксирана, процесорът може да извлече следващата команда, за да почне обработката й, защото знае къде започва. Недостатък е, че има твърде много команди, за които не са необходими толкова много полета. Ето защо днес се прилага и другият подход – команди с променлива дължина. При тях конвейерност трудно се постига, тъй като дължината на текущата команда може да се определи едва, когато е завършила. Днес като практика се използва хибрид между двете: променливи и фиксирани (при Pentium има 2- и 4-байтови команди).

Друг важен момент при командите са операциите. Операциите, изпълнявани от процесора, са: 1. аритметичните операции; 2. операции с плаваща аритметика; 3. операции с десетична аритметика; 4. операции за трансформиране на данни; 5. операции за преход; 6. операции за обръщение към функции или подпрограми; 7. операции за формиране на цикли; 8. логически операции.

Всяка компютърна система притежава тези операции. В зависимост от тяхната семантика и проектантски решения се определя функционалността на компютърната система. Главна характеристика на командите е какви механизми на съхранение се използват при операцията. Прилагат се няколко модела. Да разгледаме как следващият пример се прилага в различните модели. Примерът е: на променлива с с местоположение клетка М[c] в паметта се присвоява сборът на променливите а и b със съответно местоположение на клетките в паметта М[a] и М[b].

I механизъм: стековият – при него трябва първо в стека (паметта на процесора) да се занесе променливата а, след това променливата b, след това да се получи a+b и това да се върне в клетка с. Това може да се запише така: 1. S[++TOP]:=M[a]; 2. S[++TOP]:=M[b]; 3. S[--TOP]+S[--TOP] –> S[++TOP]. Така процесорът ще реализира операцията.

II механизъм: чрез вътрешен регистър – 1. на показан регистър R:=M[a]; 2. R:=R+M[b]; 3. M[c]:=R.

III механизъм: използва се акумулатор (вътрешен регистър) – операцията винаги се извършва между него и друг регистър: 1. A:=M[a]; 2. A:=A+M[b]; 3. M[c]:=A.

Разликата между II и III механизъм е, че при третия не ни е нужно да имаме поле, в което да указваме А, докато при втория винаги трябва да показваме кой с кого влиза в отношение.



IV механизъм: памет-паметM[c]= M[a]+M[b]. Този механизъм практически не се използва, изключение правят 390 модел компютри на IBM. Той е тежък и скъп механизъм и като негова модификация се използва V механизъм.

V механизъм: регистър-регистър – 1. R1:=M[a]; 2. R2:=M[b]; 3. M[c]= R1+ R2.

Последният механизъм е най-бърз и най-скъп. Забелязва се тенденция към използването на акумулатори. Докато преди години той беше само теория, то той започна да се прилага с навлизането на Java. Използват се и някои смесени механизми.
Каталог: uni -> magistarski -> Magistarski%20Test -> - %20 -> -> KARH -> KArh
uni -> Условия и ред за приемане, отчитане и унищожаване на документи с фабрична номерация нормативна уредба
uni -> "Икономиката е история на човешката трудова дейност." Маршал
uni -> Програма за развитието на силите на мозъка. През 1978 г въз основа на разработените принципи той започва да обучава хора, а към 1980 г неговите лекции вече се ползват с колосален успех в цял свят
KArh -> 6. Логическа организация на изчислителните системи. Модели на адресация
Magistarski%20Test -> 1. Коя от следните думи има нещо общо с изброените 3 пяна, сол, вълк


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница