Организация на компютъра Всички лекции от курса са подготвени по книгите на доц. д.н. Димитър Тянев [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга 1 [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга 2; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА упражнения, ISBN 978-954-20-0258-0, Варна 2007г. ЛИТЕРАТУРА ОСНОВНА • Димитър С. Тянев, Организация на компютъра, Изд. ТУ – Варна, 2008; • http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] • William Stallings, Computer Organization and Architecture, Seventh Edition, ISBN 0-13-185644-8 3 ЛИТЕРАТУРА ДОПЪЛНИТЕЛНА • Kai Hwang, Zhiwei Xu, Scalable Parallel Computing, McGraw Hill, 1998. • Michael Flynn, Computer Architecture (Pipelined and Parallel Processor Design), Jones and Bartlett Publishers, 1995. • Harry Jordan, Gita Alaghband, Fundamentals of Parallel Processing, Prentice Hall, 2003. • Пламенка Боровска, Компютърни системи, Изд. “Сиела”, 2005 4 ЛИТЕРАТУРА WEB SITES: • High performance clusters www.topclusters.org • Info centre for computer clusters www.buyya.com/cluster/ • Supercomputers Cray www.cray.com • Supercomputers www.top500.org • Advanced Clustering Technologies, Inc. www.advancedclustering.com • Encyclopedia Article About MPI www.thefreedictionary.com • IEEE Task Force on Cluster Computing www.clustercomp.org • IEEE Technical Committee on Scalable Computing www.ieeetfcc.org • Infiniband Trade Association http://www.infinibandta.org/home 5 Лекция 1: Видове данни и тяхното представяне в цифровите процесори Съдържание • Основни понятия и теоретични положения. • Представяне на трите вида данни: логически, символни и числови. • Организация на разрядната мрежа. Форми и формати – стандарти. Точност на представянето. • Операция събиране. • Машинни кодове за изобразяване на числата. • Теореми за събиране на числа, изобразени в машинни кодове. • Логически функции за откриване на препълването. • Двоично-десетични машинни кодове. 7 Цифрова изчислителна машина • Как ще представяме данните; • Как ще ги въвеждаме и извеждаме; • Как и кой ще преработва данните Входни вместо нас; данни • Как ще организираме автоматичното й функциониране; • Какви възможности тя ще ни предостави и какви ограничения ще ни наложи; • Какви нейни параметри и характеристики ще ни интересуват; • Как ще комуникираме с нея; • Каква е теоретическата и техническата база за практическото й реализиране. Изходни данни 8 Видове данни • Данните, които обработват цифровите машини, се делят на три вида: · Логически, · Символни, · Числови. 9 Видове данни • Човек използва различни системи за представяне на данните: говорима; писмена; жестомимична и др. 10 Видове данни • Единственото средство за представяне на данните в електронните изчислителни машини са устойчивите във времето природни явления. • Две устойчиви състояния • Елементите, които могат да съществуват дълготрайно (устойчиво) в такива състояния, се наричат двузначни. • Устойчивите състояния се означават със символите 0 и 1. • Тези два символа с еднакъв успех се използват за означаване както на логически, така и на числови данни. Елементите, които ги реализират (разбирайте техническите средства), се наричат логически и в същото време цифрови. 11 Видове данни • Двузначната система не може да се приложи буквално за представяне на данните от входноизходния поток на интересуващото ни техническо средство (изчислителна машина), а само в условията на еднозначен двоичен код. • КОД - изразно средство, съпоставимо еднозначно в права и обратна посока на съответен първичен елемент. • Кодът на даден първичен елемент, се формира в логическа схема, наречена шифратор (кодер). Възстановяването на първичния елемент по зададената му кодова комбинация се постига от логическа схема, наречена дешифратор (декодер). 12 Видове данни – логически данни • Логическите данни представляват логическите константи "лъжа" и "истина“. • Кодират с двоичните цифри 0=”лъжа”, 1=”истина”. • Изчислителните устройства оперират с логическите данни като изпълняват известните логически операции: - Логическо отрицание НЕ; (NOT) - Логическо събиране (дизюнкция) ИЛИ; (OR) - Логическо умножение (конюнкция) И; (AND) - Логическа неравнозначност (EOR; XOR) - Логическа равнозначност 13 Видове данни – логически данни • Примери за използване на логически операции: Пример 1 - маскиране: Пример 2 – логическа неравнозначност: 14 Видове данни – символни данни • За представяне на множеството символи се построяват кодови таблици. • Кодови таблици: • ISO-7 (КОИ-7) – 7-битов код, който стандартизира символната азбука на системи за телеобработка, предаване на данни по съобщителни канали и за нанасяне на данни върху перфолента. • ISO-8 (КОИ-8) – 8-битов код, който стандартизира символната азбука на изчислителните системи за връзка с периферни устройства. • EBCDIC (ДКОИ) – 8-битов код, стандартизиран от IBM като код за използване в изчислителните системи. • ASCII (American Standard Code for Information Interchange) – 6, 7 или 8-битов код, стандартизиран най-общо като код за обмен на информация. 15 Видове данни – символни данни • Стандартизираното множество от символи, чийто обем е 256 символа, се дели най-общо на две части – подмножество графични символи и подмножество управляващи (служебни) символи. 16 Видове данни – символни данни • ASCII кодова таблица – първа част Decimal Hex-code code 000 00 001 01 002 02 … … 010 0A … … 013 0D … … 032 20 033 21 … … 043 2B … … 048 30 049 31 … … 057 39 Symbol NUL SOH STX … LF … CR … space ! … + … 0 1 … 9 Decimal Hex-code code 058 3A … … 064 40 065 41 066 42 … … 090 5A 091 5B 092 5C 093 5D … … 096 60 097 61 098 62 … … 122 7A 123 7B Symbol : … @ A B … Z [ \ ] … ‘ a b … z { 17 Видове данни – символни данни • ASCII кодова таблица – втора част Decimal Hex-code code 128 80 129 81 130 82 … … 158 9E 159 9F 160 A0 161 A1 … … 190 BE 191 BF 192 C0 193 C1 … … 203 CB 204 CC 205 CD Symbol A Б В … Ю Я а б … ю я └ ┴ … ╦ ╠ ═ Decimal Hex-code code 213 D5 214 D6 … … 224 E0 225 E1 226 E2 234 235 236 237 238 … 241 … 238 255 EA EB EC ED EE … F1 … EE FF Symbol № § … a b G W d ¥ Φ e … ± … e blank 18 Видове данни – символни данни • Последователностите от символи се наричат символни низове или просто низове. Пример: Кодовата последователност или символният низ: 87 A4 B0 A0 A2 А5 A9 20 21 означава съобщението: З д р а в е й ! ( Здравей ! ) 19 Видове данни – числови данни . • Разрядна мрежа (РМ) Дължината на РМ = броя на разрядите. Онази част от разрядната мрежа, в която може да се помести една цифра на числото, се определя като един разряд. 20 Видове данни – числови данни . • Разрядната мрежа в изчислителните устройства найчесто е така организирана, че положението на запетаята на числата спрямо нея е фиксирано и неизменно – отдясно или отляво. РМ с ДФЗ РМ с ЛФЗ • Число, представено в разрядна мрежа с показаната по-горе структура, е във форма с фиксирана запетая. 21 Видове данни – числови данни . • Характеристики на разрядната мрежа: Най-голямо и най-малко представими числа; Диапазон на представимите числа: • В общия случай възможностите на дадена разрядна мрежа с дължина n q-ични разряда са ограничени от числата и и диапазонът на представимите числа за нея се определя така: [0÷qn-1]. r е цифрата на най-голямото елементарно количество в съответната бройна система – например 1 за двоичната, 9 за десетичната или F за шестнадесетичната. 22 Видове данни – числови данни . • Характеристики на разрядната мрежа: За двоични числа без знак, представяни в разрядната мрежа с дължина L=n[b], диапазонът се ограничава от числата (000...0) и (111...1), т.е. [ 0÷2n-1]. Този диапазон е в областта на целите числа, тъй като, когато те са без знак, най-често се интерпретират като представени с дясно фиксирана запетая. Пример за 32-битова разрядна мрежа: 23 Видове данни – числови данни . • Характеристики на разрядната мрежа: За числа със знак При дясно фиксирана запетая: За двоична бройна система: Модулът на най-голямото двоично число, възможно за цифровата част на разрядната мрежа с дясно фиксирана запетая е 24 Видове данни – числови данни . • Характеристики на разрядната мрежа: За числа със знак При ляво фиксирана запетая: За двоична бройна система: [ -(1 – 2n-1)÷ +(1 – 2n-1) ]. 25 Видове данни – числови данни . • Характеристики на разрядната мрежа: Дискрет (равномерна стъпка) на разрядната мрежа - константа – най-малкото по модул представимо число, различно от нула. При дясно фиксирана запетая d = 20 = 1. При ляво фиксирана запетая d = 2-(n-1). т. е. дискретът и в двата случая по същество е теглото на най-младшия разряд в разрядната мрежа. В общия случай: 26 Видове данни – числови данни . • Характеристики на разрядната мрежа: Представимите числа са разпределени равномерно в диапазона със стъпка равна на дискрета. Вътре в този диапазон има безкрайно много други числа, които не могат да бъдат представени с определения брой разряди. Те се наричат непредставими, а в случай на нужда могат да бъдат заместени от най-близкото до тях представимо число. Пример: 5,786 може да се представи с числото 6, ако изискванията за точност се удовлетворяват. 27 Видове данни – числови данни . • Характеристики на разрядната мрежа: Всички числа, които са разположени върху числовата ос вън от диапазона на представимите числа – вляво или вдясно от него, са също непредставими числа. Те не могат да бъдат заместени от никое представимо число, тъй като изискванията за точност не позволяват това. За тези числа обикновено се казва, че препълват отляво или отдясно разрядната мрежа. 28 Видове данни – числови данни . • Характеристики на разрядната мрежа: Точност на представимите числа Разрядната мрежа, поради своята крайност, отрязва младшите значещи цифри на числото, попадащи вдясно от нея. Отхвърлената част от числото представлява всъщност абсолютната грешка, с която се плаща, за да стане едно число представимо. Абсолютната грешка клони към теглото на наймладшата позиция 20 = q0 = 1 в РМ с ДФЗ и 2-(n-1), съответно q-(n-1) в РМ с ЛФЗ. 29 Видове данни – числови данни . • Характеристики на разрядната мрежа: Точност на представимите числа. Обобщение: Абсолютната грешка на двоични (q-ични) разрядни мрежи с фиксирана запетая се изменя в диапазона 30 Видове данни – числови данни . • Характеристики на разрядната мрежа: • С цел да повишат универсалността на своите процесори, повечето производители поддържат няколко вътрешносхемни формати на числовите данни. Най-често стандартите определят за числата с фиксирана запетая следните формати: • Байт - 8[b] ; Byte Integer (BI) ; • Дума - 16[b] ; Word Integer (WI) ; • Двойна дума - 32[b] ; Double Word Integer (DI) ; • Дълга дума - 64[b] ; Long Integer (LI) . 31 Видове данни – числови данни . • Числа с плаваща запетая - мултипликативен вид на числата Числото се представя като произведение от значещата му част и нейния мащаб. Пример: Х1 = 0,000000000035060 или Х2 = -120740000000000, Х1 = 0,000000000035060 = 3506,0 .10-14 ; Х2 = -120740000000000,0 = -12074,0 .10+10 . 3506 или 12074 е значеща част, a числата 10-14 или 10+10 – мащабен коефициент или просто мащаб. Мащабът е число, кратно на основата на бройната система (в примера q=10). 32 Видове данни – числови данни . • Числа с плаваща запетая - мултипликативен вид числата. Числото се представя като произведение от значещата му част и нейния мащаб. Пример: Х1 = 0,000000000035060 или Х2 = -120740000000000, Х1 = 0,000000000035060 = 3506,0 .10-14 ; Х2 = -120740000000000,0 = -12074,0 .10+10 . 3506 или 12074 е значеща част, a числата 10-14 или 10+10 – мащабен коефициент или просто мащаб. За мащаб - число, кратно на основата на бройната система (в примера q=10). Така не се променят цифрите в значещата част на числото! Единствено при този вид на мащабния коефициент, при преминаване от естествен към мултипликативен вид на числото, се съхраняват цифрите на значещата му част. 33 Видове данни – числови данни . • Числа с плаваща запетая - мултипликативен вид числата. Представянето на числата в мултипликативен вид се нарича още представяне във форма с плаваща запетая (ПЗ). • Мащабът е степенна функция, чийто степенен показател има характер на цяло число със знак. • Степенният показател се нарича порядък и показва на колко позиции е изместен разделителят (запетаята) в значещата част (наричана мантиса), спрямо позицията му (й) в естествения вид на числото. • Знакът на порядъка показва посоката на числовата ос, в която следва да се премести разделителят (запетаята), за да се възвърне естественият вид на числото. 34 . Видове данни – числови данни . • Числа с плаваща запетая Представяне в разрядната мрежа на: знак на числото; мантиса на числото; знак на порядъка; порядък. Мантисата се представя като нормализирано число с ляво фиксирана запетая. Ако полето на мантисата има дължина m разряда и ако то е организирано с ляво фиксирана запетая, тогава мантисата, представена в него, е нормализирана, ако удовлетворява неравенството: Най-голямата нормализирана мантиса е числото: 35 . Видове данни – числови данни .. • Числа с плаваща запетая Представяне в разрядната мрежа на: знак на числото; мантиса на числото; знак на порядъка; порядък. Порядъкът се представя като цяло число със знак, с дясно фиксирана запетая. Максималният порядък, който може да бъде представен в k разряда, е . Максималното представимо число във форма с плаваща запетая, изобразено в бройна система с основа q, е: 36 . Видове данни – числови данни .. • Числа с плаваща запетая Структура на разрядна мрежа с плаваща запетая Диапазон на представимите числа: от до 37 . Видове данни – числови данни .. • Числа с плаваща запетая Ако искаме да разширим диапазона на представимите числа, следва да удължим полето за представяне на порядъка. Това може да стане само за сметка на полето на мантисата. Мултипликативният вид на записа на числата води до тяхното неравномерно разпределение върху числовата ос. Диапазонът на представимите числа се разделя на толкова зони, наричани бинади за двоичната бройна система (или декади за десетична система), колкото са различните стойности на порядъка. 38 . Видове данни – числови данни .. • Числа с плаваща запетая • Порядъкът се представя неявно чрез друга величина, наречена характеристика, чиито стойности са числа без знак. Превръщането на порядъка в число без знак се постига чрез изместване на неговия диапазон в положителната посока на числовата ос. Новополучената величина се нарича изместен порядък или характеристика и се определя така: H = p+D , където с D е означена константа, която се нарича изместване. 39 . Видове данни – числови данни .. • Числа с плаваща запетая • Изместването D се дефинира като най-малкото число, с помощта на което се постига неравенството H ≥ 0, за всяко възможно p. Очевидно е, че стойността на изместването D зависи от конструктивните параметри на разрядната мрежа и по-точно от дължината на полето на порядъка, откъдето следва, че неговата стойност е равна на числото, представляващо теглото на знаковия разряд в полето на порядъка, т.е. D = 2k-1 40 . Видове данни – числови данни .. • Числа с плаваща запетая • Премахвайки знака на порядъка, структурните елементи на числото, които следва да се представят в разрядната мрежа, остават три. Тяхното подреждане в разрядната мрежа най-често е по следния начин: 41 ,. Видове данни – числови данни .. • Числа с плаваща запетая • "скрит бит" на мантисата (HB – Hidden Bit). • Скритият бит на мантисата присъства само по време на изчисленията. При запомняне на числата в паметта скритият бит не се съхранява. • Едно число във форма с плаваща запетая, с нормализарана мантиса, с изместен порядък и с техника на скрития бит, се определя така: 42 ,. Видове данни – числови данни .. • Числа с плаваща запетая • Структура на РМ с ПЗ, с изместен порядък и скрит бит 43 ,. Видове данни – числови данни .. • Числа с плаваща запетая • Структурата на разрядната мрежа е стандартизирана от американската организация IEEE (Institution of Electrical and Electronic Engineers). Стандартът е известен в литературата под номер 754 (IEEE 754 и поновия 854) и се спазва от всички производители на компютърна техника. Главното предназначение на стандарта е да осигури преносимостта на програмите. • Стандартът определя два формата за двоични числа – формат ”единична точност” (SP – Single Precision) с дължина 32[b] и ”двойна точност” (DP – Double Precision) с дължина 64[b]. Във формат SP са определени 8[b] за представяне на характеристиката, а във формат DP – 11[b]. 44 ,. Видове данни – числови данни .. • Числа с плаваща запетая • Стандартът предоставя допълнителна свобода на производителите като определя в допълнение на основните формати още два, неречени ”разширени” – (SEP – Single Extended Precision) и (DEP – Double Extended Precision). • Дължините на полетата за тези разширени формати не са фиксирани, но са ограничени отдолу. 45 Видове данни – числови данни • Числа с плаваща запетая Single Single Extended Double Double Extended Дължина на разрядната мрежа 32 ≥ 43 64 ≥ 79 Дължина на полето H 8 ≥ 11 11 ≥ 15 Дължина на полето F 23 ≥ 31 52 ≥ 63 Стойност на изместването D 127 неопределена 1023 неопределена Максимален порядък 127 ≥ 1023 1023 ≥ 16383 Минимален порядък -126 ≤-1022 -1022 ≤ -16382 неопределена 10-308 – 10+308 неопределена Основен диапазон на числата 10-38 – 10+38 46 Видове данни – числови данни • Числа с плаваща запетая • Област на отрицателно антипрепълване: от до ; • Област на положително антипрепълване: от до . 47 Представяне на числа със знак • Знаците на числата се кодират така: “+” - с 0 и “–” с 1 • Прав код на числата: • За числа с дясно фиксирана запетая: • За числа с ляво фиксирана запетая: • Така правият код на едно число (като съдържание на разрядната мрежа) ще представлява двоична комбинация от вида: 48 Представяне на числа със знак •Прав код на числата: Пример: +73 – 01001001 - 73 - 11001001 49 Представяне на числа със знак • Обратен код на числата q – основа на бройната система; d – единица на разрядната мрежа (за двоична бройна система d = 1) • Числото нула има двойно представяне в обратен код: • Може да се запише още, че: 50 Представяне на числа със знак • Обратен код на числата + 73 – 01001001 - 73 - 10110110 51 Представяне на числа със знак • Допълнителен код на числата: • За (двоични) числа с дясно фиксирана запетая: • За числа с ляво фиксирана запетая: 52 Представяне на числа със знак • Допълнителен код на числата (двоичните) • Диапазон на представимите числа: - (2n-1) ÷ + (2n-1 – 1) • Числото нула съответства на комбинация нула “000...00”; • В допълнителен код старшите незначещи цифри на числото, с които се допълва цифровата част на разрядната мрежа, съвпадат с цифрата на знака. • Знакът на числото, получено в резултат на аритметична операция, се получава автоматично. Резултатът също е число в допълнителен код. 53 Представяне на числа със знак • Допълнителен код на числата (двоичните) +73 – 01001001 - 73 - 10110111 54 Представяне на числа със знак • Връзка между обратен и допълнителен код • Други зависимости: 55 Представяне на числа със знак • Модифицирани кодове на числата Знаковите разряди са два. Анализът на знаковите разряди на резултата позволява лесно да се определи наличието на пренос или препълване при извършването на аритметични операции. 56 Основи на аритметиката на двоични числа • Операция събиране Две многоразрядни числа без знак се събират (X+Y=Z) по определение, поразрядно, започвайки от младшите цифри на операндите X, Y, последователно към старшите, въз основа на полиномния им вид. 57 Основи на аритметиката на двоични числа • Операция събиране Поразрядното сумиране се представя със следната система уравнения: n е дължината на разрядната мрежа. 58 . Основи на аритметиката на двоични числа • Операция събиране •Пренос и препълване при сумиране: Резултатът при препълване се удължава отляво, но само с една позиция, в която стои цифрата 1 (независимо каква е основата q на използваната бройна система). •При събиране на числа без знак 59 . Основи на аритметиката на двоични числа • Операция събиране •Пренос и препълване при събиране на числа със знак При събиране в допълнителен код или 60 . Основи на аритметиката на двоични числа • Операция събиране •Пренос и препълване при събиране на числа със знак При събиране в модифициран допълнителен код 61 Основи на аритметиката на двоични числа • Операция изваждане Свежда се до операцията Z = X + ( -Y ) • Операция умножение ( X . Y = Z) се определя като Y-кратно събиране на множимото X или като X-кратно събиране на множителя Y (по силата на комутативния закон), т.е. 62 Основи на аритметиката на двоични и числа • Операция деление ( X/Y = Z ) определя частното Z като число, което показва колко пъти делителят Y се съдържа в делимото X, ако Y ≠ 0. Частното може да се намери, като се преброят възможните последователни изваждания на делителя от делимото или на делителя от получаваните разлики, наричани частични остатъци. В зависимост от стойността на последния частичен остатък w, частното се представя така: 63 Двоично кодирани десетични числа • BCD-числа (BCD – Binary Coded Decimal). • Представянето на десетичните символи чрез техните двоични кодови комбинации, е своеобразна имитация на десетичните числа с машинни средства. Пример: 268,47 → 0010 0110 1000 , 0100 0111 • Двоично-десетичните числа се представят най-често във форма с фиксирана запетая, т.е. като последователност (низ) от двоични кодове на десетичните цифри на числото. 64 Двоично кодирани десетични числа • Формати на BCD-числата: • пакетиран – две BCD – цифри в един байт Пример: 1001 0111BCD = 9710 • непакетиран – една BCD – цифра в един байт Пример: 00001001 00000111BCD = 9710 65 Двоично кодирани десетични числа Съставеният за целите на двоичнодесетичните изчисления код на десетичните цифри е желателно да притежава следните пет свойства, наричани изисквания на Рутисхаузер: 1. Еднозначност. Съответствието между кодовата комбинация и десетичната цифра трябва да бъде еднозначно. Ако това е изпълнено, става възможно да се оперира с двоично-десетично кодирани числа, при това декодирането е ефективно. 66 Двоично кодирани десетични числа 2. Монотонност. Според това свойство, на цифри, означаващи по-голямо елементарно количество, се полага код, който може да се интерпретира като по-голямо двоично число (или противоположното). Такова съотношение способства за по-лесно реализиране на операция сравнение. 3. Четност. На четни десетични цифри трябва да съответстват четни двоични комбинации (или противоположното). Свойството четност спомага за извършване на правилно десетично закръгляне и спомага за по-голяма простота при изпълнение на операция деление. 67 Двоично кодирани десетични числа 4. Допълняемост. Това свойство е в сила, ако във всяка сума от две десетични цифри , която е равна на максималната цифра , цифрите са кодирани с такива тетради, че едната може да бъде получена от другата чрез поразрядна инверсия. Това свойство способствува синтеза на допълнителен и обратен код на числата със знак. 5. Тегловна значимост. Според това свойство елементарното количество, означено с дадена десетична цифра, трябва да се получава от двоичния код като сума от теглата на позициите, в които има значеща цифра. 68 Двоично кодирани десетични числа Ако теглата на позициите са положителни, то може да се покаже, че единственият код, който притежава безусловно свойството еднозначност, е кодът на прякото заместване (8421). 69 Двоично кодирани десетични числа Кодове с излишък относно кода на прякото заместване (8421) Формулата на тяхното получаване е сумата (8421)+C, където С е константа, формираща всяка кодова комбинация след означената операция. 70 Двоично кодирани десетични числа Кодове с излишък относно кода на прякото заместване (8421) Всички кодове с излишък равен на 7 и поголям от 7 (С>=7), не притежават свойството монотонност. Тези, които са с излишък помалък от 7 (C<7), притежават свойствата еднозначност, четност и монотонност, но само един от тях (кодът с излишък три, C=3) притежава свойството допълняемост. Свойствата на кодовете с излишък са тясно свързани с тези на кодовете, имащи отрицателни тегла. 71 Двоично кодирани десетични числа BCD 8421 BCD 8421+3 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 Десетични цифри 0 1 2 3 4 5 6 7 8 9 Забранени комбинации BCD 8421 1010 1011 1100 1101 1110 1111 BCD 8421+3 0000 0001 0010 1101 1110 1111 72 Основи на аритметиката на двоично кодирани десетични числа • Операция събиране • Код 8421 • Корекция на резултата: Zi = Zi + 6(10), ако 10(10) ≤ Zi ≤ 15(10) или ако е възникнал междутетраден пренос • Код 8421+3 • Корекция на резултата: Zi = Zi + 3(10), ако не е възникнал междутетраден пренос Zi = Zi - 3(10), ако е възникнал междутетраден пренос 73 Машинни кодове на двоично кодирани десетични числа • Код 8421 74 Машинни кодове на двоично кодирани десетични числа • Код 8421+3 r = q – 1 = 9; 75 Литература: [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] – Глава 1. ПРЕДСТАВЯНЕ НА ДАННИТЕ; [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга [2]; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА - упражнения, ISBN 978-954-20-02580, Варна 2007г. 76 Организация на компютъра 1 Лекция 2: Операционни структури за работа с фиксирана запетая 2 Съдържание Общи положения Операции върху числа с фиксирана запетая Операция събиране и операция изваждане Логически структури и микропрограми за събиране и изваждане с използване на комбинационен и натрупващ суматор 3 Операционни структури Общи положения Синтез на логически структури. Всяко конкретно множество от реализирани в даден процесор операции е съставено от изпълними операции. Неизпълнима операция - такава, която не може да бъде изпълнена в логическата структура на изчислителното устройство. Дадена операция може да бъде реализирана и програмно, като се използва наборът от изпълними за даденото устройство операции. 4 Операционни структури Общи положения Типична относителна честота на отделните математически операции в хода на изчислителния процес 5 Операционни структури Общи положения • Превръщането на една операция в изпълнима означава, че нейното изпълнение е организирано в операционната част на изчислителното устройство, а алгоритъмът, по който тя ще функционира, е вложен в управляващата част на устройството. 6 Операционни структури Общи положения 1. Стремеж към минимални апаратни разходи. 2. Стремеж към максимално бързодействие. 7 Операционни структури Операции върху числа с фиксирана запетая Операция събиране, операция изваждане Извършват се върху числа със знак, представени в допълнителен код. За да се построи устройство за събиране, на първо място е необходим логически възел, наречен суматор – комбинационен или натрупващ. 8 Операционни структури Операции върху числа с фиксирана запетая Операция събиране, операция изваждане УС1:РгХ:=ШД УС2:РгY:=ШД УС3:РгY:=0 УС4:РгX:=0 УС5:БуфРг:=(РгY) УС6:БуфРг:=not(РгY) УС7:БуфРг:=0 УС8:ТП:=1, (+1СМ) УС9:РгСМ:=СМ УС10:РгСМ:=0 УС11:ТП:=(РгПр[c]) УС12:РгПр:=СФПр УС13:ТП:=0 Логическа структура на устройство за събиране и изваждане с комбинационен суматор 9 Операционни структури Операции върху числа с фиксирана запетая Операция събиране, операция изваждане Обединена блок-схема на микропрограми за събиране и изваждане 10 Операционни структури Операции върху числа с фиксирана запетая Операция събиране, операция изваждане Микропрограми за събиране с пренос и изваждане със заем 11 Операционни структури Операции върху числа с фиксирана запетая Операция събиране, операция изваждане с натрупващ суматор УС1:РгВх:=ШД УС2:РгВх:=0 УС3:АКМ:=(АКМ) +(РгВх) УС4:АКМ:=(АКМ) +not(РгВх) УС5:АКМ:=0 УС6:РгПр:=СФПр УС7:ТП:=0 УС8:ТП:=1,(+1АКМ) ] УС9:ТП:=(РгПр[C 12 Операционни структури Операции върху числа с фиксирана запетая Операция събиране, операция изваждане с натрупващ суматор Обединена микропрограма за събиране и изваждане в устройство с натрупващ суматор 13 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга [2]; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА упражнения, ISBN 978-954-20-0258-0, Варна 2007г. 14 Организация на компютъра 1 Лекция 3: Операционни структури за работа с фиксирана запетая Операции умножение и деление. Унитарни операции 2 Съдържание Операция умножение Базова логическа структура на устройство за умножение, основана на комбинационен суматор Базова логическа структура на устройство за умножение, основана на натрупващ суматор Операция деление Унитарни операции 3 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Многократно (К-кратно, където К е другият множител) натрупваща се сума на единия от множителите. Циклически алгоритъм с предварително известен брой повторения. Недостатък – различно времетраене (зависи от броя събирания, т. е. от модула на единия от множителите). 4 Операционни структури Операции върху числа с фиксирана запетая Операция умножение yi са цифрите на модула на множителя, записан в nразрядна двоична мрежа като число със знак в прав код. X.yi - поразрядни произведения В двоична бройна система X.1=X и X.0=0! Произведението при този вид на множителя може да се получи чрез логическо изместване на множимото наляво на i разряда. 5 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Умножение с младшите разряди напред: Умножение със старшите разряди напред: 6 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Умножение с младшите разряди напред: Схема за умножение с неподвижна междинна сума • Суматор с двойна дължина; • Изместващ регистър на множимото с двойна дължина; • Изместващ регистър на множителя с единична дължина. 7 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Умножение с младшите разряди напред: Схема за умножение с неподвижно множимо Оптимизирана схема за умножение с неподвижно множимо 8 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Умножение със старшите разряди напред: Схема за умножение с неподвижна междинна сума 9 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Умножение със старшите разряди напред: Схема за умножение с неподвижно множимо Тази схема предлага удобното ѝ обединяване в обща логическа структура с операция деление. Oт всички организационни схеми на алгоритми за умножение, разгледани до момента, найикономична се оказва третата – оптимизирана схема за умножение с неподвижно множимо, ето защо тя намира най-широко практическо приложение. 10 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Произведението е число, което има двойна дължина и когато операция умножение се реализира в съответствие с избраната организационна схема, препълване не е възможно да настъпи. Това означава, че произведението е представимо число и препълването е принципно невъзможно. 11 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Режим на единична дължина на произведението Операндите X и Y, както и резултатът Z, се възприемат като числа, побиращи се в n-битови регистри. Режим на двойна дължина на произведението 12 Операционни структури Операции върху числа с фиксирана запетая Операция умножение В режим на единична дължина, при умножение на числа с дясно фиксирана запетая е възможно да настъпи препълване, ако старшата половина на произведението е различна от нула. При умножение на числа с ляво фиксирана запетая положението е по-благоприятно, тъй като възможната за изхвърляне половина от произведението е младшата, т.е. във всички случаи крайният резултат, възприеман като произведение, следва да включва старшата половина от резултата. 13 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Произведение с единична дължина може да се формира чрез закръгляне до старшите n разряда, при запазване на задоволителна точност, което не е възможно при числа с дясно фиксирана запетая. В режим на двойна дължина както при дясно, така и при ляво фиксирана запетая произведението е представимо, но то следва да се декларира като число, представено в друг формат, различен от този на множителите. 14 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Дължина на разрядната мрежа - n[b]. Двойна дължина - 2.n[b]. Модулът на произведението има дължина равна на сумата от дължините на цифровите части на съмножителите, т.е. (n-1)+(n-1)=2.(n-1)[b]. Когато този модул се разположи в двойния формат, остават свободни два разряда, единият от които е предназначен за знака на произведението. 15 Операционни структури Операции върху числа с фиксирана запетая. Операция умножение Базова логическа структура на устройство за умножение, основана на комбинационен суматор 16 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Микропрограма за умножение на числа с ДФЗ, представени в ПК, в устройство с комбинационен суматор 17 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Микропрограма за умножение на числа с ЛФЗ, представени в ПК, в устройство с комбинационен суматор За да се осигури задължителната незначеща цифра, която се намира в най-младшия разряд, при числа с ляво фиксирана запетая е необходимо да се нулират знаците на операндите преди началото на същинското умножение. 18 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Базова логическа структура на устройство за умножение на числа в прав код по метода с младшите разряди напред по схемата с неподвижно множимо и с натрупващ суматор 19 Операционни структури Операции върху числа с фиксирана запетая Операция умножение Микропрограма за умножение на числа с ДФЗ в ПК в устройство с натрупващ суматор 20 Операционни структури Операции върху числа с фиксирана запетая Умножение на числа, представени в допълнителен код Две групи според знака на множителя: - В първа група са случаите, когато множителят е положителен, т.е. Y>0 Всички поразрядни произведения се изчисляват правилно. Всички междинни суми се натрупват също правилно. Произведението се получава по естествен път в допълнителен код. 21 Операционни структури Операции върху числа с фиксирана запетая Умножение на числа, представени в допълнителен код Две групи според знака на множителя: - Втората група съдържа всички случаи, в които множителят е отрицателен, т.е. Y<0. Цифрите на множителя не съответстват на тези в неговия модул – той е представен в допълнителен код. Прилагайки същия алгоритъм за умножение, получаваме по същество псевдопроизведението на множимото с онова, което стои в цифровата част на множителя. 22 Операционни структури Операции върху числа с фиксирана запетая Умножение на числа, представени в допълнителен код Ако множителят Y е представен в допълнителен код, то: Yдк = 2n - |Y| Умножението с него се извършва само с цифрите от цифровата му част - битове [n-2¸0], където се намира числото 2n-1 - |Y|. Това число е получено от стойността на кода чрез премахване на теглото на знаковия разряд, т.е. Тогава стойността на псевдопроизведението може да бъде записана така: След анализ записваме: , т. е. Този израз изразява начина, по който може да се получи истинското произведение, ако вече е получено псевдопроизведението. Tази последна операция изваждане се нарича корекция. 23 Операционни структури Операции върху числа с фиксирана запетая Операция деление Операция деление Z=X/Y е производна от операция изваждане. Частното се търси като число, което показва колко пъти делителят се съдържа в делимото (за числа с ДФЗ). Операцията е изпълнима, ако е изпълнено съотношението: Ако съотношението не е изпълнено, операцията е неизпълнима, а резултатът е нула (Z = 0). 24 Операционни структури Операции върху числа с фиксирана запетая Операция деление Ако делителят е равен на нула, операцията е не само неизпълнима, но и недефинирана. Резултатът се сигнализира чрез установяване на признака за препълване V = 1. Операция деление може да бъде неопределена, неизпълнима, точна или неточна и в общия случай частното е реално число (т.е. число с цяла и дробна част). 25 Операционни структури Операции върху числа с фиксирана запетая Операция деление Между операндите и резултатите съществува следната зависимост: Rx e остатъкът от делението и е цяло число. Z (резултатът) е също цяло число. Разглеждаме резултата (и остатъка) като число от същия тип, какъвто е типът на операндите ( в случая – цели числа) и говорим за целочислено деление. 26 Операционни структури Операции върху числа с фиксирана запетая Операция деление Както за операция умножение, така и за операция деление, се търсят алгоритми за реализация, които гарантират предварително нейното времетраене. За техния синтез следва да бъдат взети под внимание всички характеристики на числата, на първо място трябва да бъде отчетен фактът, че числата са представени в позиционна бройна система, а на второ място - че те са в двоична бройна система. 27 Операционни структури Операции върху числа с фиксирана запетая Операция деление Ако делимото е полином от k-ти ред - , , делителят е също полином, но от l-ти ред - , то частното е полином от ред (k-l), т.е. частното има (k-l+1) на брой неизвестни цифри в цялата си част. Като се има предвид, че модулите и на двата операнда X и Y са записани в поле с константна дължина (n разряда – разрядната мрежа е с дясно фиксирана запетая), то чрез една лява нормализация на операндите тази величина може да бъде определена. 28 Операционни структури Операции върху числа с фиксирана запетая Операция деление Тогава: Ly – Lx = (k – l) Lx, Ly – брой на изместванията на делимото и делителя съответно. Броят на неизвестните цифри на частното е: N = k – l + 1 = Ly – Lx + 1 29 Операционни структури Операции върху числа с фиксирана запетая Операция деление Делението на два полинома се дефинира математически еднозначно по следния начин: Последователността от двоични цифри {zk-l, zk-l-1, …, z0} (коефициенти на полинома на цялата част на частното) представляват неизвестните цифри на частното. 30 Операционни структури Операции върху числа с фиксирана запетая Операция деление Изравнявайки реда на полинома на делителя до този на делимото, се получава: е най-старшата цифра на търсеното частно R1 - първата разлика между делимото и нормализирания делител. 31 Операционни структури Операции върху числа с фиксирана запетая Операция деление За определяне на следващата цифра Zk-l-1 в частното е необходимо да се възстанови нормализираният вид на разликата спрямо нормализирания делител. След възстановяване на съвместния нормализиран вид на двата полинома, те се подлагат отново на деление, което се реализира отново по същия начин, т.е. по определение. Резултатът, в смисъла на целочисленото деление, 32 Операционни структури Операции върху числа с фиксирана запетая Операция деление Процедирайки по този начин (с изравняване на реда на двоичните полиноми и делейки ги по определение), могат да бъдат определени последователно всички останали младши цифри на частното. Продължителността на алгоритъма не зависи от модулите на операндите - той има толкова стъпки, колкото са неизвестните цифри на частното. И тъй като те не могат да бъдат повече от (n-1), то максималният брой тактове няма да надхвърля това число. 33 Операционни структури Операции върху числа с фиксирана запетая Операция деление За реализиране на операция деление е необходимо устройство, в което да се изпълняват операции събиране, изваждане и изместване. Възможни са две схеми за организация: • С неподвижен делител и изместващ се наляво частичен остатък; • С неподвижен частичен остатък и изместващ се надясно делител. 34 Операционни структури Операции върху числа с фиксирана запетая Операция деление Организационна схема за деление с неподвижен делител 35 Операционни структури Операции върху числа с фиксирана запетая Операция деление Организационна схема за деление с неподвижен частичен остатък 36 Операционни структури Операция деление - Базова логическа структура на устройство за деление на числа, представени в прав код, по схемата с неподвижен делител 37 Операционни структури Унитарни операции Събиране и изваждане с единица: "Увеличи", "Намали" Z = X + 1, Z = X - 1. • Най-често тези операции се изпълняват върху резултат от предходно действие Z := Z + 1, Z := Z - 1 , и служат за организиране на броячи. • При изпълнение на този вид операции се формират и в регистъра на признаците се фиксират всички признаци на резултата, с изключение на тригера за пренос С, който остава непроменен. 38 Операционни структури Унитарни операции • Аритметическо допълнение По същество това е операция, при която операндът сменя знака си, а цифровата му част се инвертира и увеличава с единица, т.е. тя се преобразува по правилото за получаване на допълнителен код. В устройството за събиране тази операция се изпълнява като операция изваждане: X := 0 - X , в резултат на което форматът на резултата не се удължава, а признаците му се формират както при операция изваждане. 39 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга [2]; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА упражнения, ISBN 978-954-20-0258-0, Варна 2007г. 40 Организация на компютъра 1 Лекция 4, Лекция 5: Операционни структури за работа с плаваща запетая 2 Съдържание Операционни структури за работа с плаваща запетая Аритметика с плаваща запетая. Алгоритми на операция събиране и операция изваждане Операция умножение Операция деление Техника на скрития бит и техника на изместения порядък. Логически структури на устройства за работа с плаваща запетая 3 Операционни структури Операции върху числа с плаваща запетая Мантисата е число с ляво фиксирана запетая, а порядъкът е число с дясно фиксирана запетая. Реалното число, представено във форма с плаваща запетая, се разглежда винаги като число със знак. Структура на РМ с ПЗ и изместен порядък 0,1 <= |М| < 1,0 D = 2k-1 4 ,. Видове данни – числови данни .. Операции върху числа с плаваща запетая Структура на РМ с ПЗ, с изместен порядък и скрит бит • Скритият бит на мантисата присъства само по време на изчисленията. При запомняне на числата в паметта скритият бит не се съхранява. • Едно число във форма с плаваща запетая, с нормализарана мантиса, с изместен порядък и с техника на скрития бит, се определя така: 5 Операционни структури Операции върху числа с плаваща запетая Операции събиране и изваждане Z=X+Y, Z=X-Y – свеждат се до операция събиране Ако за порядъците е изпълнено съотношението px < py и изнесем зад скоби мащабния коефициент на първия операнд, ще получим следния израз: Според този израз, преди да се извърши основната операция събиране, трябва да се извърши операцията умножение на мантисата My с новополучения мащаб . . Мантисата My трябва да се измести относно фиксираната запетая на толкова разряда, колкото е модулът на разликата от порядъците. Посоката на изместване се определя от знака на същата разлика. 6 Операционни структури Операции върху числа с плаваща запетая Операции събиране и изваждане Ако (py – px) е положително число, мантисата My трябва да се измести наляво. Изместването наляво е крайно опасно поради факта, че мантисата се намира в поле с ляво фиксирана запетая. Всяко изместване наляво означава загуба на старши значещи цифри от мантисата My, което е недопустимо. 7 Операционни структури Операции върху числа с плаваща запетая Операции събиране и изваждане За практическата реализация на операция събиране не е без значение кой от мащабните коефициенти ще бъде изнесен зад скоби. За предпочитане е да бъде изнесен мащабният коефициент, който съответствува на по-големия порядък. В този случай разликата на порядъците ще бъде гарантирано отрицателна. Това означава, че мантисата, която ще се денормализира, ще се измества винаги и само надясно. 8 Операционни структури Операции върху числа с плаваща запетая Операции събиране и изваждане 9 Операционни структури Операции върху числа с плаваща запетая Операции събиране и изваждане Алгоритъмът е последователност от следните общи етапи: 1. Проверка на значенията на мантисите. Ако мантисата на втория операнд My = 0 , то за резултат се приема първият операнд: Z = X. Ако мантисата на първия операнд Mx = 0, то за резултат се приема: · При събиране - вторият операнд Z = Y ; · При изваждане - Z = -Y . 10 Операционни структури Операции върху числа с плаваща запетая Операции събиране и изваждане Алгоритъмът е последователност от следните общи етапи: 2. Сравнение на порядъците. За да се направи необходимият избор, порядъците px и py се сравняват. Ако разликата между порядъците е толкова голяма, че числата се оказват несравними, т.е. ако където с m е означена дължината на полето от разрядната мрежа, в което се представя мантисата, то за резултат се приема операндът с по-големия порядък. 11 Операционни структури Операции върху числа с плаваща запетая Операции събиране и изваждане Алгоритъмът е последователност от следните общи етапи: Ако порядъците са равни, т.е. ако (px – py) = 0, то следващият (трети) етап се прескача. 3. Изравняване на порядъците. Изравняване на порядъците се извършва чрез изместване на мантисата надясно на онзи операнд, който има по-малък порядък. Изместването се извършва, докато изчислената разлика (px – py) се нулира, т.е. докато се постигне равенството px = py. 12 Операционни структури Операции върху числа с плаваща запетая Операции събиране и изваждане Алгоритъмът е последователност от следните общи етапи: 4. Събиране на мантисите. Извършва се събиране (изваждане) на така подготвените мантиси на двата операнда. Това става с използване на допълнителен код. Получената сума е предварителната стойност на мантисата на резултата. В получения вид обаче, тази мантиса не може да остане, тъй като най-вероятно тя не е нормализирана. 13 Операционни структури Операции върху числа с плаваща запетая Операции събиране и изваждане Алгоритъмът е последователност от следните общи етапи: 5. Нормализация на резултата. Ако получената сума, която трябва да съответства на Mz, е нула, то нормализацията е невъзможна. Тогава за резултат се приема машинната нула. В зависимост от машинния код, използван за представяне на мантисата, машинната нула може да бъде със знак или без знак. 14 Операционни структури Операции върху числа с плаваща запетая Операции събиране и изваждане Тези закони не биха били в сила, ако в системата с плаваща запетая за дробната мантиса вместо прав код се използуваше допълнителен код. Ето защо при представяне на числата във форма с плаваща запетая правият код има определено теоретично предимство пред допълнителния код! 15 Операционни структури Операции върху числа с плаваща запетая Операция умножение Следва, че алгоритъмът на операция умножение на числа с плаваща запетая практически се свежда към този за операция умножение на числа с фиксирана запетая. Умножението на мантисите и събирането на порядъците са абсолютно независими операции и те могат да се изпълняват паралелно във времето. 16 Операционни структури Операции върху числа с плаваща запетая Операция умножение Алгоритъмът на тази операция съдържа следните етапи: 1. Проверка на значенията на мантисите. В случай че един от множителите е числото нула, то за резултат се приема числото нула (машинната нула). 17 Операционни структури Операции върху числа с плаваща запетая Операция умножение Алгоритъмът на тази операция съдържа следните етапи: 2. Същинско умножение. Ако мантисите на числата са различни от нула, то следва да се изпълни същинското умножение. Мантисите се умножават като числа с ляво фиксирана запетая според един от вече разгледаните алгоритми за умножение. Мантисите се умножават по модул, а знакът на произведението се формира отделно. 18 Операционни структури Операции върху числа с плаваща запетая Операция умножение Алгоритъмът на тази операция съдържа следните етапи: 2. Същинско умножение. Мантисите на съмножителите са нормализирани, така че модулът на произведението им е число, което се намира в диапазон, който се формира от минималния и максималния модул на съмножителите: което означава, че може да има ненормализиран вид с ниво на недостиг не по-голямо от единица (r=1), т.е. предварителната стойност на мантисата на произведението може да има един от следните два вида: • ±0,01zzz…zz - лява граница на диапазона; • ±0,1zzzz…zz - дясна граница на диапазона. Алгоритъмът за умножение трябва да завършва с процедурата за нормализация на резултата. 19 Операционни структури Операции върху числа с плаваща запетая Операция умножение Алгоритъмът на тази операция съдържа следните етапи: 2. Същинско умножение. Паралелно с умножението на мантисите може да се извърши събиране на порядъците. Тъй като порядъците са числа със знак, това се извършва в допълнителен код. Получената сума е само предварителна стойност на порядъка на резултата. При получаване на тази сума е възможно да настъпи препълване, което следва да се интерпретира във връзка с полученото произведение. 20 Операционни структури Операции върху числа с плаваща запетая Операция умножение Алгоритъмът на тази операция съдържа следните етапи: 3. Нормализация на резултата. Възможното ниво за недостиг в произведението на мантисите е предварително известно и евентуалното изместване на мантисата е само на един разряд. Освен това при формиране на окончателния резултат се налага да се вземат под внимание още и резултатът от събирането на порядъците и формáта на резултата, който е възможно да наложи закръгляване на мантисата. 21 Операционни структури Операции върху числа с плаваща запетая Операция умножение Алгоритъмът на тази операция съдържа следните етапи: 3. Нормализация на резултата. Когато се налага нормализиране на мантисата Mz чрез изместване наляво на един разряд, трябва да се извърши и компенсиране на порядъка pz , чрез изваждане на единица от неговата предварителна стойност. Ако предварителната стойност на порядъка е равна на минимално възможната pmin, то следващото компенсиране pmin -1, ще доведе до отрицателно препълване в полето на порядъка. Тогава като резултат следва да се формира числото нула (машинна нула). Ако потребителят желае да не загуби значещата част на произведението, то той може да остави за порядък числото и да установи условието за денормализиран резултат, т.е. в този случай произведението ще има вида: 22 Операционни структури Операции върху числа с плаваща запетая Операция умножение Алгоритъмът на тази операция съдържа следните етапи: 3. Нормализация на резултата. Отрицателното препълване може да надхвърли двойно възможностите на полето на порядъка, т.е. реалната сума на двата порядъка може да достигне стойността 2.pmin. В този случай е безсмислено изпълнението на същинското умножение на мантисите и за резултат от операцията може да се приема отново числото нула. 23 Операционни структури Операции върху числа с плаваща запетая Операция умножение Алгоритъмът на тази операция съдържа следните етапи: 3. Нормализация на резултата. При събиране на порядъците, освен отрицателно препълване, напълно възможно е и положително препълване, при това в същата степен, т.е. реалната сума на двата порядъка може да достигне стойността 2.pmax. Положителното препълване в полето на порядъка е причина за окончателно препълване на разрядната мрежа и се сигнализира с отделен признак "препълване при плаваща запетая". В този случай същинското умножение на мантисите е безсмислено и може да се предотврати, a за резултат може да се приеме абстракцията безкрайност. 24 Операционни структури Операции върху числа с плаваща запетая Операция деление Частното Z ще има мантиса Mz , която ще се получи в резултат на деление на мантисите на двата операнда, а порядъкът му pz ще се получи като разлика от порядъците на делимото и делителя: Oперация деление на числа с плаваща запетая се осъществява чрез познатите операции деление и изваждане на числа с фиксирана запетая. Тези две операции са независими и могат да се изпълняват паралелно във времето. 25 Операционни структури Операции върху числа с плаваща запетая Операция деление Алгоритъмът на тази операция съдържа следните етапи: 1. Проверка на значенията на мантисите. Логически проверки, отнасящи се до условието за изпълнимост и условието за дефинираност на операцията - изисква се проверка на мантисата на делителя. При делител нула операцията завършва с флаг за препълване и резултат +безкрайност или - безкрайност. 26 Операционни структури Операции върху числа с плаваща запетая Операция деление Алгоритъмът на тази операция съдържа следните етапи: 1. Проверка на значенията на мантисите. Мантисите на двата операнда са с ляво фиксирана запетая, при това са нормализирани. Ето защо мантисата на частното може да се разглежда като полином винаги от нулев ред, чиито коефициенти се получават последователно от старшите към младшите в резултат на m на брой последователни преходи в цикъла на същинското деление. С други думи етапът на лявата нормализация в алгоритъма липсва, а броят на неизвестните цифри на частното е предварително известен – те са m на брой, т.е. предварителната стойност на мантисата на частното се търси във вида: Mz = z,zzz … z. В случай че делимото е числото нула, за резултат се приема числото нула и операцията завършва. 27 Операционни структури Операции върху числа с плаваща запетая Операция деление Алгоритъмът на тази операция съдържа следните етапи: 2. Същинско деление. Когато и двата операнда са различни от нула, мантисите трябва да се разделят фактически, при което се получава m-разрядно число. Това число има цяла част, която може да бъде различна от нула, ето защо следва да оценим възможния диапазон за отношението. Модулът на полученото частно се намира в границите: които са получени, като се имат предвид стойностите на минималната и на максималната нормализирана мантиса в разрядната мрежа. 28 Операционни структури Операции върху числа с плаваща запетая Операция деление Алгоритъмът на тази операция съдържа следните етапи: 2. Същинско деление. От указаните граници става ясно, че мантисата мoже да се получи като нормализирана или като ненормализирана отдясно, т.е. предварителната стойност на мантисата на частното може да има един от следните два вида: • ±0,1zzz…zz - лява граница на диапазона; • ±1,zzzz…zz - дясна граница на диапазона. С други думи отношението на мантисите може да бъде нормализирано число или число с препълване. Следователно алгоритъмът за деление трябва да завършва с процедурата за нормализация на резултата. Ако такава е необходима, частното се измества на един разряд надясно, а порядъкът се компенсира с прибавяне на една единица. 29 Операционни структури Операции върху числа с плаваща запетая Операция деление Алгоритъмът на тази операция съдържа следните етапи: 2. Същинско деление. Паралелно с делението на мантисите може да се извърши изваждане на порядъците. Тъй като порядъците са числа със знак, това се извършва в допълнителен код. Получената разлика е само предварителна стойност на порядъка на резултата. При получаване на тази разлика е възможно да настъпи препълване, което следва да се интерпретира във връзка с полученото частно. 30 Операционни структури Операции върху числа с плаваща запетая Операция деление Алгоритъмът на тази операция съдържа следните етапи: 3. Нормализация на резултата. В случай че се налага изместване на предварителната стойност на мантисата надясно на един разряд, е необходима компенсация на порядъка. Към предварителната стойност на порядъка се прибавя единица, при което е възможно да настъпи положително препълване в полето на порядъка. Положителното препълване е само на един порядък и е възможно, ако предварителната стойност на порядъка е равна на pmax. Предварителната стойност на частното в този случай може да се изрази така: 31 Операционни структури Операции върху числа с плаваща запетая Операция деление Алгоритъмът на тази операция съдържа следните етапи: 3. Нормализация на резултата. Това е ситуация, при която, след опит да се отстрани препълването в полето на мантисата, се получава препълване в полето на порядъка и обратно. Тази ситуация е непоправима, в резултат на което може да се вземе решение за окончателно "препълване при плаваща запетая". 32 Операционни структури Операции върху числа с плаваща запетая Операция деление Описаните две препълвания са взаимно свързани и не могат да се преодолеят. Единственият шанс този резултат да се запази като нормален и да участва в следващите изчисления е той да се приеме в този си вид, което е възможно само в разрядна мрежа, използваща техниката на скрития бит. Този факт е една допълнителна обосновка за прилагането на тази техника в стандарта на IEEE. 33 Операционни структури Логическа структура на устройство за работа с плаваща запетая с натрупващ суматор Структура на разрядната мрежа Мантисата и порядъкът на числата са представени като числа със знак в прав код За реализация на операциите събиране и изваждане за вътрешен инверсен код се използва модифициран обратен код. 34 Операционни структури Логическа структура на устройство за работа с плаваща запетая с натрупващ суматор 35 Операционни структури Логическа структура на устройство за работа с плаваща запетая с натрупващ суматор • Изпълнение на операция събиране 36 Операционни структури Логическа структура на устройство за работа с плаваща запетая с натрупващ суматор • Изпълнение на операция умножение 37 Операционни структури Логическа структура на устройство за работа с плаваща запетая с натрупващ суматор • Изпълнение на операция деление 38 Литература: [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга [2]; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА упражнения, ISBN 978-954-20-0258-0, Варна 2007г. 39 Организация на компютъра Хорариум: 2л. + 2л.у. 1 Лекция 6: Операционни структури за двоично-десетични и специални операции 2 Съдържание Двоично-десетична аритметика Машинни кодове на двоично-десетични числа Логическа структура на устройства за работа с двоично-десетични числа Операции за преобразуване на бройната система Операции за преобразуване на фόрмата на числата 3 Операционни структури за 2-10 аритметика Двоично-десетична аритметика За целите на обработката 2/10-те числа най-често се представят в прав код, в пакетиран формат. 89(10) → 1000 1001(2-10) Изпълнението на операциите изваждане и деление изискват прилагане на обратен и допълнителен код. 4 Операционни структури за 2-10 аритметика Операции събиране и изваждане • Устройство за събиране и изваждане на десетични числа представени в код “8421” Общ алгоритъм за събиране (изваждане) на 2-10 числа със знак (Z=X+Y), представени в прав код: 1. Представяне на операндите в допълнителен код. 2. Изпълнение на операцията и формиране на признаците на резултата. 3. Проверка за препълване. 4. Ако резултатът е верен, той се преобразува и представя в прав код. 5 Операционни структури за 2-10 аритметика 6 Операционни структури за 2-10 аритметика Фактическото събиране на две 2/10-чни числа в двоичното АЛУ на конвенционален процесор се постига чрез машинна програма от две машинни команди – една за двоично събиране и втора за 2/10-чна корекция. За осъществяване на 2/10-чната корекция се използуват автоматично формирани и запаметени при първото двоично събиране признаци или поразрядни (тетрадни) корекции. Тази втора по ред операция се осигурява със специална машинна команда и се нарича “двоично-десетична корекция”. Така при първото двоично събиране се формират два резултата – междинна двоична сума и поразрядна 2/10чна корекция. Второто двоично събиране в същия суматор се извършва между тези две числа. 7 Операционни структури за 2-10 аритметика • Поразрядната корекция зависи от 2/10-чния код. Ако този код е “8421”, тетрадната корекция е числото +6. То се добавя към онези разряди, които след първото двоично събиране са генерирали тетраден пренос или като тетрадна сума представляват “забранена” комбинация. В случай че кодът е “8421+3”, тетрадната корекция е задължителна за всеки отделен разряд и тя зависи от това, дали съответният разряд е генерирал тетраден пренос. Ако е генерирал, корекцията е числото +3, ако не – числото +13. • В процесори, обработващи двуцифрени 2/10-чни числа, двата тетрадни преноса обикновено се фиксират в регистъра на признаците, съответно в бит С от старшата тетрада, а в бит Н – от младшата 8 Логически операции • Най-често реализираните логически операции са: "Логическо събиране", (дизюнкция, ИЛИ, OR); "Логическо умножение", (конюнкция, И, AND); "Логическа инверсия", (НЕ, NOT); "Логическа неравнозначност", (Сума по mod2, Изключващо ИЛИ, XOR). • Логическите операции се реализират само върху основния формат на разрядната мрежа. • Тъй като те са определени само върху логическите константи, в многоразрядните процесори изпълнението им е поразрядно. В този смисъл, съдържанието на участвуващите в операцията регистри се интерпретира като двоична комбинация, непритежаваща количествено значение. 9 Логически операции Операции "Сравнение". Сравнението е действие, с помощта на което алгоритмите "се ориентират" в хода на обработката на данните. На сравнение се подлагат както числови, така и нечислови данни. Операцията "Сравнение" има за цел да формира признаците на резултата, без да го фиксира и без да променя операндите. Сравнението е акт на проверка на отношение на първия операнд спрямо втория: X > Y; X >+ Y; X < Y; X <= Y; X = Y Сравнението се извършва по отношение на нулата (X-Y) ↔ 0 10 Логически операции Операции "Сравнение". При операция сравнение се извършва изваждане на втория операнд от първия, без да се фиксира разликата. Фиксират се само нейните признаци C, Z, S, P и др. в регистъра на признаците на резултата. 11 Логически операции Операции от тип "Изместване". "Логическо изместване" ; "Аритметическо изместване" ; "Циклическо изместване" (Ротация) . • Според посоката, изместванията са наляво или надясно. • Операциите от тип изместване са едноместни, т. е. операндът е един. 12 Логически операции Операции от тип "Изместване". "Логическо изместване" 13 Логически операции Операции от тип "Изместване". Аритметическо изместване 14 Логически операции Операции от тип "Изместване". Циклическо изместване (ротация) 15 Операции за преобразуване на бройните системи Преобразуване на числа с ДФЗ от десетична в двоична бройна система По схемата на Хорнер: 16 Операции за преобразуване на бройните системи Преобразуване на числа с ДФЗ от десетична в двоична бройна система Алгоритъмът за това преобразуване е циклически повторенията ще бъдат толкова, колкото са цифрите на изходното десетично число. В променливата S се натрупва стойността на търсения еквивалент като двоична сума. 17 Операции за преобразуване на бройните системи Преобразуване на числа с ДФЗ от десетична в двоична бройна система 18 Операции за преобразуване на бройните системи Преобразуване на числа с ДФЗ от десетична в двоична бройна система • За да може да бъде получен двоичният еквивалент на всяко m-разрядно десетично число, следва дължината на двоичните възли (акумулатор и буферен регистър) да бъде достатъчна, в противен случай ще се получи препълване в двоичното поле. • Двоичната дължина от n бита ще бъде: т. е. n ≥ m.(3,3222591) • Дължината на двоичното поле от n бита, е 3,3222591 пъти по-голяма от дължината m на десетичното поле, т. е. един десетичен разряд е еквивалентен на 3,3222591 двоични разряда. • 19 десетични разряда са еквивалентни на 64 двоични, тъй като 19.(3,3222591) ≈ 64 [b] 19 Операции за преобразуване на бройните системи • Преобразуване на числа с ЛФЗ от десетична в двоична бройна система 20 Преобразуване на фόрмата на числата Разрядна мрежа с дължина n[b] Числа с фиксирана запетая Порядъкът се определя по формулата p = (n-1) - L , L - броят на изместванията на числото в разрядната мрежа при неговата лява нормализация. Числото L е число със знак, тъй като изместванията са възможни в посока както наляво, така и надясно. Случаят с изместване надясно се отнася единствено за най-малкото число, представимо в допълнителен код в разрядната мрежа с фиксирана запетая. 21 Преобразуване на фόрмата на числата Известно е, че: • Всяко число с фиксирана запетая е представимо във форма с плаваща запетая. • Всяко число с фиксирана запетая, чийто модул има дължина по-малка от дължината на полето, определено за мантисата, се представя точно. • Всяко число с фиксирана запетая, чийто модул има дължина по-голяма от дължината на полето, определено за мантисата, се представя неточно. 22 Преобразуване на фόрмата на числата Алгоритъмът на това преобразуване изисква изходното число да бъде представено в прав код. Значещата част на числото, намираща се в разрядната мрежа, следва да се превърне в нормализирана мантиса. За целта цялото число трябва да се нормализира спрямо левия край на разрядната мрежа. В процеса на нормализация следва да се определи и порядъкът на числото. 23 Преобразуване на фόрмата на числата Нека си представим числото Х в разрядната мрежа по следния начин: • Изместването на числото Х наляво го превръща в полином от (n-2)-ри ред. Ако се приеме, че редът на полинома на изходното число е k, където k<(n-2), то нормализираният вид на числото се получава след [(n2)-k] на брой едноразрядни измествания наляво, т.е. 24 Преобразуване на фόрмата на числата • Тъй като редът k на изходното число е неизвестен, необходимо е в процеса на нормализиране да бъдат преброени изместванията наляво. Ако броят на изместванията се означи с h, то от уравнението (n-2) - k = h се определя k = (n-2) - h Тъй като порядъкът на цифрата 1 е +1, то окончателният израз за порядъка на числото ще бъде В крайна сметка числото Х ще има вида: , където . Неизвестният порядък се определя в процес на нормализиране с помощта на изваждащ брояч, чиято начална стойност е (n-1). 25 Преобразуване на фόрмата на числата Преобразуване на двоични числа с плаваща запетая в двоични с фиксирана запетая Трябва да се реши уравнението по отношение на h. Неизвестното h изразява броя на изместванията на мантисата спрямо десния край на разрядната мрежа. Изместванията трябва да компенсират и k-битовата дължината на полето за порядък. Тогава 26 Преобразуване на фόрмата на числата Преобразуване на двоични числа с плаваща запетая в двоични с фиксирана запетая Стойността h може да се изчисли, като от константата [(n-2)+1] (или респективно от константата [(n-2)+1+k] ) се извади стойността на порядъка Px на изходното число. Ако получената разлика е положително число (h>0), посоката за изместване на мантисата е надясно, ако обаче е отрицателно (h<0) - наляво. Броят на изместванията е |h| , стойност която се явява начална за изваждащ брояч, организиращ циклическия алгоритъм. Препълването, което е възможно да настъпи в разрядната мрежа с ФЗ, се открива чрез отношението h > (n-1). 27 Преобразуване на фόрмата на числата Преобразуване на двоични числа с плаваща запетая в двоични с фиксирана запетая Не всяко число, представено във форма с плаваща запетая, може да се преобразува в число, представено във форма с фиксирана запетая. Представимите с фиксирана запетая числа след преобразуване са значително по-малко. При загуба на дробната част цялата част, която остава, е точна. 28 Преобразуване на фόрмата на числата Преобразуване на двоични числа с плаваща запетая в двоични с фиксирана запетая Изходното число, представено във форма с плаваща запетая, в общия случай се превръща в число, чийто естествен вид има както цяла, така и дробна част. Във форма с фиксирана запетая такова число не може да бъде изобразено, без да загуби дробната си част, т.е. това преобразуване в общия случай не е точно. Обикновено то се реализира без закръгляне и представлява отделяне и представяне само на цялата част на числото. В случаите, когато за формата с фиксирана запетая се използва същата дължина на разрядната мрежа, съществуват числа, които са непредставими и предизвикват препълване. Това се дължи на факта, че диапазонът на представимите числа за формата с плаваща запетая е много по-голям от този на формата с фиксирана запетая. 29 Преобразуване на фόрмата на числата Преобразуване на двоични числа с плаваща запетая в двоични с фиксирана запетая • Всички числа с ПЗ, които имат отрицателен порядък, са числа по-малки от единица. В естествен вид, т.е. във форма с ФЗ, те имат нулева цяла част, ето защо в тези случаи преобразуването се свежда до просто нулиране на разрядната мрежа. Във всички останали случаи порядъкът на изходното число е положително число. • Същността на преобразуването е такова изместване на значещата част, т.е. на мантисата, при което тя ще има нулев порядък. 30 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга [2]; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА упражнения, ISBN 978-954-20-0258-0, Варна 2007г. 31 Организация на компютъра 1 Лекция 6_1: Общи принципи в архитектурата на АЛУ 2 Съдържание Архитектура на АЛУ Конвейерна организация на операционните структури Апаратно насищане 3 Операционни структури Архитектура на АЛУ Основната част от изпълнимите операции в една цифрова машина се изпълняват в аритметичнологическото устройство (АЛУ). АЛУ съответства на общата структура, показана на фигурата. Според нея АЛУ се състои от две части - операционна и управляваща. В операционната част се съдържат възли, схеми и връзки между тях, с чиято помощ се реализират алгоритмите на изпълнимите операции. В управляващата част са вложени микропрограмите на тези алгоритми. 4 Операционни структури Архитектура на АЛУ Обикновено за изпълнение на всяка изпълнима операция се използва една и съща обща и единствена логическа структура на операционната част на АЛУ, която притежава необходимото множество микрооперации и логически условия за изпълнение на съставените микропрограми. Най-икономичната структурна реализация на операционната част може да се постигне чрез прилагане на принципа на обединените операции, т. е. от многото логически структури, синтезирани за отделните изпълними операции, трябва да се синтезира една обща и не конкретно ориентирана структура, възлите, схемите и връзките в която да се използват от всеки отделен алгоритъм. 5 Операционни структури Архитектура на АЛУ Крайният вид на логическата структура, постигната от конструктора, се получава при следните водещи критерии: а) Включване на минимален брой логически възли при максимална и универсална употреба на всеки един от тях; б) Изграждане на минимален брой логически връзки при максимална и универсална употреба на всяка една от тях; в) Стремеж за съставяне на микропрограма с максимално бързодействие за всяка операция. 6 Операционни структури Архитектура на АЛУ а) Включване на минимален брой логически възли при максимална и универсална употреба на всеки един от тях – типичен пример – суматорът. Обикновено неговата дължина е равна на дължината на разрядната мрежа, свързана с избрания основен формат и форма на представяните числа. В този възел трябва да бъдат обединени всички специални и индивидуални изисквания на отделните операции като например: различни схеми за откриване на препълването; различни схеми за формиране на признаците на резултата; необходимите допълнителни разряди както отляво, така и отдясно на разрядната мрежа; възможност за различни схеми за закръгляне; възможност за работа както с по-дълги, така и с по-къси формати на данните; възможност за подаване на +1 в различни разряди (във връзка с получаването на допълнителен код); възможност да бъде "прозрачен" по отношение на един от входовете си; възможност да бъде нулиран (ако е натрупващ); възможност да изпълнява поразрядните логически операции; и други, което прави възела многофункционален. 7 Операционни структури Архитектура на АЛУ б) Изграждане на минимален брой логически връзки при максимална и универсална употреба на всяка една от тях При изграждане на връзките между възлите в една логическа структура са възможни два похода: Връзки с произволна организация - изграждат се на принципа "всеки с всеки". Подобна организация дава възможност за директна и самостоятелна връзка между два възела, което позволява в даден момент активни да бъдат много връзки едновременно. Връзки с магистрална организация - принципът на свързване е "един с всички и всички с един", което означава, че дадена връзка (линия или шина) е обща за група логически възли, като ги свързва по входове и изходи в една обща точка. 8 Операционни структури Архитектура на АЛУ б) Изграждане на минимален брой логически връзки при максимална и универсална употреба на всяка една от тях Магистралната организация опростява управлението, но снижава бързодействието на алгоритмите. 9 Операционни структури Архитектура на АЛУ Възможни са два вида организация на операционната част на АЛУ: • Логическа структура с общи микрооперации; • Логическа структура със собствени микрооперации 10 Операционни структури Архитектура на АЛУ • Логическа структура с общи микрооперации обща функционална комбинационна част ОФКЧ комбинационни схеми КЧX и КЧY запомняща част ЗЧ 11 Операционни структури Архитектура на АЛУ • Логическа структура със собствени микрооперации В една логическа структура със собствени микрооперации всеки възел има свои оригинални параметри и функции, своя собствена съвкупност от входно/изходни връзки с другите възли и своя собствена съвкупност от признаци. 12 Операционни структури Архитектура на АЛУ Основни достойнства и недостатъци на всеки от двата вида организации: - операционната част на автомата, която е организирана по метода със собствени микрооперации, позволява достигане на високо бързодействие при значителни апаратни разходи, - организацията по метода с общи микрооперации позволява сравнително икономична реализация на същия набор от микрооперации, но при снижено бързодействие. 13 Операционни структури Архитектура на АЛУ Върху логическата структура и общата организация на функциониране на АЛУ в най-голяма степен влияят формата и форматът на данните, които ще бъдат обработвани. Във връзка с това най-общо могат да бъдат различени следните АЛУ: Последователни; Паралелни; Паралелно-последователни. А също така: АЛУ за работа с фиксирана запетая; АЛУ за работа с плаваща запетая; АЛУ за работа с двоично кодирани десетични числа; Специализирани АЛУ. 14 Операционни структури Конвейерна организация на операционните структури Търсенето на по-висока производителност на изчислителните структури въз основа на идеята за тяхната конвейерна организация се основава на факта, че протичащият в тях изчислителен процес е структурен процес, чиито елементи са отделните операции. 15 Операционни структури Конвейерна организация на операционните структури Изпълнявайки алгоритъма, управляващото устройство ще издаде управляващ сигнал за реализиране на събиране или управляващ сигнал за реализиране на изваждане. Така в един “диалог”, между операционната и управляващата части, протича изчислителният процес. Традиционна представа за изчислителен процес 16 Операционни структури Конвейерна организация на операционните структури Разбирането за конвейерна организация на изчислителния процес не възприема подобен диалог. Естествената представа за управлението на изчислителния процес се свежда до необходимостта от ритмично придвижване на данните (междинните резултати) от степен към степен, в посока към изхода. Тази организация може да се постигне технически, заради детерминираната във всеки алгоритъм еднозначна функционална връзка между стойността на всеки флаг и съответстващите й изходни управляващи сигнали. Тази функционалност може да бъде реализирана апаратно вместо програмно, т. е. - в операционната част на изчислителното устройство. 17 Операционни структури Конвейерна организация на операционните структури Конвейеризирано ниво за операции събиране и изваждане 18 Операционни структури Конвейерна организация на операционните структури Конвейерно изпълнение на операция събиране 19 Операционни структури Конвейерна организация на операционните структури В случай на безкрайно следващи една след друга еднотипни операции, изпълнявани в операционно устройство с конвейерна организация от k на брой нива, изчислителният процес би имал k пъти повисока скорост в сравнение с изпълнението му върху устройство без конвейерна организация. Повишаването на скоростта се дължи на факта, че в устройството с конвейерна организация във всеки един момент (такт) се съдържат (т.е. са стартирани) k на брой операции, намиращи се в различни фази на завършеност. 20 Операционни структури Конвейерна организация на операционните структури С нарастване броя на нивата в конвейера расте и вероятността за неговото спиране, което се дължи на нарастване на вероятността за зависимост между стартираните в него операции. Изводът е, че производителността на изчислителното устройство в повечето случаи не е строго пропорционална на броя на степените на конвейера. 21 Операционни структури Апаратно насищане Благодарение на мултиплицирането на операционните устройства (например АЛУ), в структурата на съвременните процесори (например 4 броя устройства за работа с фиксирана запетая и 2 броя за работа с плаваща запетая), се появява възможността за паралелно изпълнение на няколко, иначе последователно предвидени по алгоритъм, машинни операции. Това е качествено ново равнище в развитието на цифровите процесори. Процесорите с такава структура са получили наименованието суперскаларни. 22 Операционни структури Апаратно насищане Определението суперскаларни се появява в края на 80-те години на миналия век и е предназначено да характеризира процесори, в които са реализирани допълнителни апаратни средства за ускоряване на машинните операции върху скаларни данни (скалар - математически термин, означаващ единствена стойност). Определението е предложено с цел да бъдат разграничени тези процесори от процесорите, които изпълняват една операция върху множество операнди, определяни от своя страна като векторни процесори. 23 Операционни структури Апаратно насищане Множество функционални устройства на пътя на командния поток 24 Операционни структури Апаратно насищане Новото явление се нарича паралелизъм. То е резултат от апаратното насищане (резултат на апаратните излишъци). Апаратното насищане способства за паралелно изпълнение във времето на няколко операции. Този ефект обаче, няма никаква връзка с алгоритмите на отделните операции и точно в този смисъл не влияе и не се отразява на логическата структура на отделните операционни устройства, както и на самото множество от функционални устройства. Проблемите, които създава подходът на апаратното насищане, се отнасят най-вече до общата организация на изчислителния процес в тези условия, т.е. това са проблеми на управлението. 25 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга [2]; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА упражнения, ISBN 978-954-20-0258-0, Варна 2007г. 26 Организация на компютъра 1 Лекция 7, Лекция 8: Логическа структура на запомнящи устройства 2 Съдържание Общи сведения и класификация на запомнящите устройства Логическа структура на адресируеми запомнящи устройства Полупроводникови статични памети Полупроводникови динамични памети Полупроводникови флаш памети Логическа структура на запомнящи устройства с последователен достъп за следващата лекция: Логическа структура на запомнящи устройства с асоциативен достъп Асоциативни операции 3 Запомнящи устройства Общи сведения и класификация на запомнящите устройства Предназначението на паметта е да съхранява информацията във времето и при нужда бързо да я предоставя за четене или да я приема за съхраняване. В паметта (в запомнящото устройство), трябва да са възможни за изпълнение две основни операции – “Четене” и “Запис”. 4 Запомнящи устройства Общи сведения и класификация на запомнящите устройства Данни Адрес M = 2k - обем (размер) на адресното пространство В повечето реални случаи клетките имат дължина 8 бита (1 байт) или дължина кратна на 8. Множеството от клетки се нарича запомнящ масив. • Запомнящият масив на паметта има обем Q, който изразява общия брой запомнящи елементи, които го изграждат: Q=M.n [b]. 5 Запомнящи устройства Общи сведения и класификация на запомнящите устройства Запомнящите устройства се характеризират още със следните технически параметри: Време за достъп (access time). То може да бъде различно при запис и при четене. Продължителност на цикъла за обръщение (memory cycle time) - е минималното време, с което могат да следват едно след друго няколко обръщения. Производителност (transfer rate). Измерва се с броя на обръщенията за единица време. 6 Запомнящи устройства Общи сведения и класификация на запомнящите устройства В зависимост от продължителността на съхраняване на данните и скоростта за достъп, паметта в един компютър се дели главно на две части основна (първична) и допълнителна (външна). Допълнителната памет се реализира в така наречените външни (периферни) запомнящи устройства. Основната памет се нарича още оперативна (ОП) - това е паметта, с която процесорът оперира непосредствено, като в нея се намират текущо изпълняваните програми и техните данни. Устройството, което я реализира, се нарича оперативно запомнящо устройство (ОЗУ). 7 Запомнящи устройства Общи сведения и класификация на запомнящите устройства Основните признаци, по които се правят най-често класификации на запомнящите устройства, са : Според физическия принцип, използван за реализация на свойството паметливост; Според схемната реализация на запомнящия елемент; Според възможните операции; Според метода за достъп. 8 Запомнящи устройства Общи сведения и класификация на запомнящите устройства Според физическия принцип, използван за реализация на запомнящите елементи, запомнящите устройства се делят главно на: Електронни; Магнитни; Оптически. 9 Запомнящи устройства Общи сведения и класификация на запомнящите устройства Електронни запомнящи елементи – тригери o две устойчиви състояния; o статични - заемат значителна площ върху кристала на интегралната схема. Свръхбързи памети с неголям обем (от порядъка на 1[M]), с тенденция да нараства. Имат значително повисока консумация на ток. o Енергонезависими. 10 Запомнящи устройства Общи сведения и класификация на запомнящите устройства Динамични запомнящи елементи – използва се кондензатор (реализиран чрез полупроводников преход), който “помни” заредената в него стойност. Изискват опресняване (регенерация). Малък брой електронни елементи (3, 2 или даже 1), изграждащи запомнящия елемент - той заема много малка площ върху полупроводниковия кристал, което позволява на съвременните интегрални схеми да побират памет с много голям обем. Динамичните памети са енергозависими. 11 Запомнящи устройства Общи сведения и класификация на запомнящите устройства Магнитни ЗУ След поставянето им в условията на постоянно магнитно поле, феромагнитният материал се преструктурира така, че след отпадане на полето той притежава остатъчна магнитна индукция. Остатъчната магнитна индукция формира собствено магнитно поле на намагнитения материал, което става негово трайно във времето свойство. Остатъчната магнитна индукция може да бъде положителна и отрицателна, което означава, че магнитните запомнящи елементи са двузначни. 12 Запомнящи устройства Общи сведения и класификация на запомнящите устройства Според възможните в паметта основни операции "запис" и "четене", запомнящите устройства се делят главно на два вида : ЗУ за четене и за запис - (RAM - Random Access Memory); ЗУ само за четене - (ROM - Read Only Memory): o EPROM (erasable programmable ROM); o EEPROM (electrically erasable programmable ROM); o FROM (flash ROM). 13 Запомнящи устройства Общи сведения и класификация на запомнящите устройства Според логическата организация на метода за достъп запомнящите устройства се определят като: ЗУ с произволен достъп (адресируеми); ЗУ с последователен достъп (магазинни); ЗУ с асоциативен достъп. 14 Запомнящи устройства Логическа структура на адресируеми запомнящи устройства • Адресна (ША), входна; • Даннова (ШД), двупосочна; • Управляваща - съставът от линии е различен при различните видове ЗУ. 15 Запомнящи устройства Логическа структура на адресируеми запомнящи устройства ЗУ с векторна организация (2Д) на запомнящия масив • блок за адресен избор - БАИ • буферни усилватели за запис - БУЗ • буферни усилватели за четене - БУЧ 16 Запомнящи устройства Логическа структура на адресируеми запомнящи устройства ЗУ с векторна организация (2Д) на запомнящия масив Логическа схема на запомнящия елемент 17 Запомнящи устройства Логическа структура на адресируеми запомнящи устройства ЗУ с векторна организация (2Д) на запомнящия масив 18 Запомнящи устройства Логическа структура на адресируеми запомнящи устройства ЗУ с матрична организация (3Д) на запомнящия масив Блокове за хоризонтално и вертикално адресно избиране БХАИ, БВАИ 19 Запомнящи устройства Логическа структура на адресируеми запомнящи устройства Логическа структура 3Д с организация 4x3 20 Запомнящи устройства Логическа структура на адресируеми запомнящи устройства Сравнение между 2Д и 3Д структури спрямо разходите за реализация При организация 2Д При организация 3Д 21 Запомнящи устройства Запомнящи устройства с последователен достъп Наричат се стекови (магазинни). Изборът на клетка е предопределен апаратно – не се издават адреси (безадресни ЗУ). • Съществуват два метода за организиране на последователния достъп до клетките от запомнящия масив: Организация FIFO (First In / First Out) – пръв влязъл / пръв излязъл - опашка Организация LIFO (Last In / First Out) – последен влязъл / пръв излязъл - стек. 22 Запомнящи устройства Запомнящи устройства с последователен достъп Организация FIFO (First In / First Out) – пръв влязъл / пръв излязъл - опашка 23 Запомнящи устройства Запомнящи устройства с последователен достъп Организация FIFO (First In / First Out) – пръв влязъл / пръв излязъл - опашка Три типа FIFO памети: От тип изместващ регистър. Представлява памет с неизменен обем на записаните данни. Нуждае се от синхронизация на операциите четене и запис, като при запис изходната дума задължително трябва да се прочете (пренесе), за да не се загуби. Това се дължи на необходимостта от изместване на данните при всяка от основните операции. 24 Запомнящи устройства Запомнящи устройства с последователен достъп Организация FIFO (First In / First Out) – пръв влязъл / пръв излязъл - опашка Три типа FIFO памети: Вторият тип се нарича с транзитен пренос (или още непресичащи се операции запис и четене). В структурата на този тип FIFO памет обемът на записаните данни може да се променя. Въпреки това е необходима синхронизация на операциите четене и запис. В логическата структура на този тип памет изместване на данните в посока към изхода се осъществява само при операция четене. 25 Запомнящи устройства Запомнящи устройства с последователен достъп Организация FIFO (First In / First Out) – пръв влязъл / пръв излязъл - опашка Три типа FIFO памети: Третият тип се нарича с конкурентни операции. В логическата структура на тази FIFO памет е възможна асинхронност между операциите запис и четене, тъй като няма зависимост между двете операции. От това следва, че към памет от този тип могат да се подключат системи с различни скорости на работа и не е необходима синхронизация на тези системи. FIFO паметите с конкурентни операции се делят на два вида: синхронни и асинхронни. В логическата структура на този тип памет не се извършва изместване на данните при изпълнение на основните операции. 26 Запомнящи устройства Запомнящи устройства с последователен достъп Организация FIFO (First In / First Out) – пръв влязъл / пръв излязъл - опашка Логическа структура на FIFO памет от тип с транзитен пренос 27 Запомнящи устройства Запомнящи устройства с последователен достъп Организация FIFO (First In / First Out) – пръв влязъл / пръв излязъл - опашка Логическа структура на FIFO памет от тип с конкурентни операции 28 Запомнящи устройства Запомнящи устройства с последователен достъп Организация FIFO (First In / First Out) – пръв влязъл / пръв излязъл - опашка Логическа структура на FIFO памет от тип с конкурентни операции Нормално състояние на паметта - (АБ ЗП) > (АБ ЧТ) 29 Запомнящи устройства Запомнящи устройства с последователен достъп Организация FIFO (First In / First Out) – пръв влязъл / пръв излязъл - опашка Логическа структура на FIFO памет от тип с конкурентни операции Допълнителен признак за отчитане превъртането на броячите 0 – блокира се операция четене; 1 – блокира се операция запис 30 Запомнящи устройства Запомнящи устройства с последователен достъп Организация FIFO (First In / First Out) – пръв влязъл / пръв излязъл - опашка Логическа структура на FIFO ЗУ с изместващи регистри 31 Запомнящи устройства Запомнящи устройства с последователен достъп Организация LIFO (Last In / First Out) – последен влязъл / пръв излязъл - стек В модела LIFO данните се изместват в двете посоки, в зависимост от операцията. 32 Запомнящи устройства Запомнящи устройства с последователен достъп Организация LIFO (Last In / First Out) – последен влязъл / пръв излязъл - стек Aдресният брояч се нарича стеков указател. Ако стековият указател винаги сочи последната запълнена с данни клетка, то той се нарича винаги готов за четене. Ако стековият указател винаги сочи първата свободна за запис клетка, то той се нарича винаги готов за запис. Какъв да бъде стекът – винаги готов за запис или винаги готов за четене, зависи от приложението на устройството и от това, коя от основните операции изисква по-бързо прехвърляне (предаване) на данните. 33 Запомнящи устройства Запомнящи устройства с последователен достъп Организация LIFO (Last In / First Out) – последен влязъл / пръв излязъл - стек Прав стек - като запълването му е в посока на големите адреси, при което стековият указател увеличава своето съдържание. Стек, при който стековият указател "се движи" в обратно направление, се нарича обратен. 34 Запомнящи устройства Запомнящи устройства с последователен достъп Организация LIFO (Last In / First Out) – последен влязъл / пръв излязъл - стек Програмен стек Използва част от RAM паметта (операционната система решава коя част) В стека се съхраняват: Състоянието на процесора при прекъсване Адреса на връщане от подпрограма Потребителски данни 35 Запомнящи устройства с асоциативен достъп Логическа структура на запомнящи устройства с асоциативен достъп Асоциативни операции 36 Запомнящи устройства Запомнящи устройства с асоциативен достъп Достъпът до елементи от масива е разрешен, само ако те имат предявени признаци на данните. или Достъп получават онези клетки от паметта, чието съдържание в най-голяма степен съответства на предявената на входа информация. или Достъп се получава до онези клетки, които успеят да осъществят асоциативна връзка със стойностите на входните признаци. 37 Запомнящи устройства Запомнящи устройства с асоциативен достъп 38 Запомнящи устройства Запомнящи устройства с асоциативен достъп Кодировка на сигналите за съвпадение: F0 – сигнал за отсъствие на думи в ЗМ, които удовлетворяват условията на търсенето: F1 – сигнал за наличие на едно съвпадение: F2 – сигнал за наличие на повече от едно съвпадение: 39 Запомнящи устройства Запомнящи устройства с асоциативен достъп • Операцията контрол на асоциацията може да има две разновидности: "Асоциативен контрол на съвпаденията" и "Асоциативен контрол на несъвпаденията". • Съответно са възможни операции "Четене" и "Запис" с търсене на съвпадение и операции "Четене" или "Запис" с търсене на несъвпадение. • Чрез операцията "Контрол на асоциацията" е възможно да бъде определен броят на думите в паметта, които удовлетворяват асоциативния признак, без при това да се извличат от клетките техните съдържания, както това би се реализирало във всяко друго запомнящо устройство. 40 Запомнящи устройства Запомнящи устройства с асоциативен достъп • Операция изчистване - изпълнява едновременно нулиране на всички клетки на запомнящото устройство. • Операция маркировка - извършва едновременно установяване на битовете на заетост на всички клетки. 41 Запомнящи устройства Запомнящи устройства с асоциативен достъп • Логически синтез на функцията съвпадение Нейни аргументи са асоциативният признак АП, маската М и съдържанието на клетката от запомнящия масив Q. Всички аргументи са многоразрядни комбинации, което ни дава право да декомпозираме тази функция във вида: където са функции на поразрядните съвпадения. 42 Запомнящи устройства Запомнящи устройства с асоциативен достъп • Логически синтез на функцията съвпадение Поразрядните съвпадения се представят чрез следната таблица на истинност: Съвпадение има винаги, когато маската е нула, а в противен случай само ако АПj=Qi,j. или 43 Запомнящи устройства Запомнящи устройства с асоциативен достъп • Логически синтез на функцията съвпадение Примерна схема на асоциативен запомнящ елемент 44 Запомнящи устройства Запомнящи устройства с асоциативен достъп АЗУ с организация 4х4 45 Запомнящи устройства Запомнящи устройства с асоциативен достъп В асоциативното запомнящо устройство операциите за търсене се изпълняват по силата на алгоритми, заложени в качеството им на изпълними операции. Благодарение на апаратната им реализация тези алгоритми се изпълняват със скорост, многократно надвишаваща софтуерната им алтернатива. 46 Запомнящи устройства Запомнящи устройства с асоциативен достъп Асоциативни операции върху числа: "Асоциативно търсене на по-голямо" ; "Асоциативно търсене на по-малко" ; "Асоциативно търсене на максимално" ; "Асоциативно търсене на минимално" ; "Асоциативно търсене в интервал (между)" ; "Асоциативно търсене на следващото поголямо” ; "Асоциативно търсене на следващото по-малко". 47 Запомнящи устройства Запомнящи устройства с асоциативен достъп Асоциативно логическо търсене Асоциативно търсене на логическо съвпадение Логическо търсене ИЛИ, НЕ, НЕ-И, НЕ-ИЛИ 48 Запомнящи устройства Запомнящи устройства с асоциативен достъп Асоциативно търсене чрез броене Търсене по количество еднакви битове Търсене по максимум (минимум) единици (нули) и др. 49 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга [2]; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА упражнения, ISBN 978-954-20-0258-0, Варна 2007г. 50 Организация на компютъра 1 Лекция 9, Лекция 10: Организация на изчислителния процес 2 Съдържание Структура на изчислителния процес Централен процесор Машинна команда, команден цикъл. Видове машинни команди и командни системи. 3 Организация на изчислителния процес Общи положения Изчислителният процес е структурен и неговите елементи на най-ниско ниво са микрооперациите. Микрооперациите се изпълняват от логическите възли на отделните устройства. Микрооперациите, които са функции на логическите възли, се инициират чрез управляващите сигнали. Управляващите сигнали са резултат от изпълнението на дадена микропрограма, която е вложена в управляващия автомат на съответното операционно устройство. 4 Организация на изчислителния процес Общи положения Цифровата изчислителна машина е подчинена на следните принципи: 1. Принцип на програмно управление ; 2. Принцип на запомнената в паметта програма ; 3. Принцип за използване на двоична бройна система ; 4. Принцип на електронна реализация ; 5. Принцип за стремеж към максимална производителност . 5 Организация на изчислителния процес Общи положения Алгоритъмът, като израз на изчислителния процес, предписва изпълнението на определени операции в съответния ред. Изпълнението на операциите върху операндите се извършва от операционното устройство, т.е. от аритметично логическото устройство (АЛУ). Второто абсолютно задължително в структурата на всяка цифрова машина е запомнящото устройство (ЗУ) или още паметта. 6 Организация на изчислителния процес Общи положения Изпълнението на дадена операция в АЛУ или в ЗУ се инициира (заповядва) в резултат на специална управляваща информация. Тази управляваща информация (управляваща дума) е вложена (опакована) в едно двоично поле и се нарича машинна команда или просто команда. Машинната команда е външна за логическата структура на операционното устройство (АЛУ или ЗУ) управляваща информация и следва да се разбира като сигнал ПУСК на съответната му функция. 7 Организация на изчислителния процес Общи положения Структурен елемент в блок-схема на алгоритъм и неговия еквивалент Изразеният на ниво изпълними операции алгоритъм съдържа операционни блокове, в които са вписани изпълними машинни операции. Освен това обаче, задължителен елемент на всеки блок е изходният алгоритмичен преход. Без този преход не е възможно да се изрази ходът на изчислителния процес. 8 Организация на изчислителния процес Машинна команда Машинната програма представлява последователност от машинни команди. Управляващата информация, представляваща машинната команда, следва да бъде структурирана за решаването на следните три задачи: 1. Управляваща информация за това коя точно операция да бъде изпълнена; 2. Управляваща информация за това кои са операндите на операцията. 3. Управляваща информация за това коя да бъде следващата машинна команда според реда за действие, определен в алгоритъма на изпълняващото се изчисление. 9 Организация на изчислителния процес Машинна команда Управляващата информация, т.е. командата, се изразява в едно двоично поле, в което в общия случай се съдържат три подполета: Операционната част на командата е абсолютно задължителна – тя посочва необходимата изпълнима операция. Адресната част не е задължителна за всяка машинна команда. Машинни команди, които не съдържат в структурата си адресна част, се наричат безадресни команди. 10 Организация на изчислителния процес Машинна команда Една машинна команда се изпълнява, т.е. тя е актуална (активна), когато се изпълнява нейната микропрограма (т.е. алгоритъмът ѝ на ниво микрооперации). 11 Организация на изчислителния процес Машинен език Пренасянето на алгоритъма в процесора с цел автоматично и независимо от потребителя изпълнение се постига чрез неговото изразяване (описване) с помощта на съответните машинни команди, т.е. той се описва със средствата на машинния език. На машинен език в крайна сметка следва да се окаже всяка програма! Системата от машинни команди на даден процесор и правилата за тяхната употреба представляват същността на неговия машинен език. Извод - различните процесори имат различни машинни езици. 12 Организация на изчислителния процес Машинна програма Последователността от машинни команди, изразяваща (описваща) даден алгоритъм, се нарича машинна програма. Машинната програма осъществява управлението на изчислителния процес в процесора и получава необходимите резултати вместо нас. Автоматичното изпълнение на машинната програма се постига, само ако тя се съдържа в паметта. Нейното изпълнение следва да бъде специално организирано (управлявано) чрез реализиране и изпълнение на алгоритмичните преходи между командите. Именно този механизъм, реализиращ автоматичния преход (предаване на управлението) от команда към команда, по хода на изпълнение на програмата, т.е. на алгоритъма, е заложен в отделно устройство, наричано централно управляващо устройство (ЦУУ). 13 Организация на изчислителния процес Машинна програма Организацията на автоматичните изчисления, т.е. изпълнението на една програма, изисква: а) в организационно отношение - реализация на повтарящи се действия от вида: • доставяне на машинна команда от паметта; • изпълнение на заповяданата от машинната команда операция; • автоматичен преход към следващата машинна команда. б) в структурно отношение - в едно цяло да функционират три устройства: • операционно, което реализира операциите; • запомнящо, в което се намират данните и командите; • управляващо, което осъществява общата организация на изчислителния процес. 14 Организация на изчислителния процес Команден цикъл В организационно отношение изчислителният процес се управлява в един цикъл от безкрайно повтарящи се действия: …… / доставяне / изпълнение / преход /, / доставяне / изпълнение / преход /, / доставяне / изпълнение / преход/, / доставяне / изпълнение / преход/, и т.н. ...... Този безкраен цикъл представлява основният алгоритъм, по който работи централното управляващо устройство и се нарича команден цикъл. Този алгоритъм е заложен в централното управляващо устройство като краен управляващ автомат. 15 Организация на изчислителния процес Състав на цифровата изчислителна машина Цифровата изчислителна машина се състои основно и задължително от три устройства - аритметичнологическо (АЛУ), запомнящо (ЗУ) и управляващо (УУ), които функционират съвместно според алгоритъма на командния цикъл - безкрайно повторение на действията доставяне, изпълнение, преход. Съвкупността от тези три устройства и тази организация на тяхното съвместно функциониране формира понятието централен процесор (CPU - central processor unit) или просто процесор. Централният процесор представлява същността на цифровата изчислителна машина. 16 Организация на изчислителния процес Цифров процесор 17 Организация на изчислителния процес Цифров процесор Първичен организационен алгоритъм (команден цикъл) 18 Организация на изчислителния процес Цифров процесор Множеството от изпълними операции, които реализира цифровата изчислителна машина, се определя въз основа на анализ на широк клас алгоритми, за автоматизацията на които тя е предназначена. В частност, на това множество влияние оказват структурната организация и начинът на реализация на отделните устройства в машината. Множеството изпълними операции се разделя на няколко основни групи: 1. Операции за обработка на данни; 2. Операции за пренасяне на данни от едно място на друго; 3. Операции за управление на прехода към следващата команда; 4. Операции за въвеждане и извеждане на данни; 5. Операции за управление на процесора. 19 Организация на изчислителния процес Цифров процесор Микропроцесор - полупроводникова интегрална схема (чип), която е произведена чрез съвременни интегрални технологии, миниатюризиращи електронните схеми. Същността на понятието микропроцесор най-често се разбира като съвкупност само на две от основните устройства на цифровата изчислителна машина - АЛУ и ЦУУ. Като съставна част на тази структура можем да добавим и системата от машинни команди, елементи на системата за прекъсване, на входно-изходната система и на запомнящата система. ОЗУ не присъства в този тип интегрални схеми. Това устройство се реализира отделно, вън от интегралната схема на микропроцесора. 20 Организация на изчислителния процес Цифров процесор Когато в една интегрална схема са запечатани и трите основни устройства на цифровата изчислителна машина, се говори за едночипов микрокомпютър (микроконтролер). Специализирани процесори – комуникационни, сигнални, логически програмируеми и др. Всяко средство, което реализира изчислителен процес върху цифрово представени данни, неминуемо съдържа за целта цифрова изчислителна машина. 21 Организация на изчислителния процес Структура на операционната част на машинната команда В операционната част на командата се намира кодът на операцията (КОП). Кодът на операцията може да бъде хомогенен, т.е. интерпретиран цялостно. В повечето реални случаи обаче, той е структуриран, т.е. нехомогенен. Във втория случай двоичната комбинация КОП е възможно да бъде съставена от няколко части със собствена функционалност (собствена интерпретация), наречени спецификатори. Така кодът на операцията може да се определи като краен списък от спецификатори: КОП < С1, С2, С3, … > . 22 Организация на изчислителния процес Структура на операционната част на машинната команда а) Спецификатор за тип на командата. Този спецификатор (двоична комбинация от два или три бита) определя структурата, дължината и общата интерпретация на командата от гледна точка на трансфера на информацията, свързана с действието. Повечето команди са: От тип "регистър-регистър"; От тип "регистър-памет"; От тип "памет-памет"; От тип "за преход"; От тип "други". 23 Организация на изчислителния процес Структура на операционната част на машинната команда б) Спецификатор за форма и формат на операндите. За придаване на универсални качества на процесорите производителите създават възможност една и съща операция да се изпълнява върху операнди с различна дължина, т.е. операнди с различни формати, но с една и съща форма, например с фиксирана запетая. Така за всяка отделна операция се получава едно подмножество от различни машинни команди. Например, в процесори с 32битова разрядна мрежа, за числа представени във форма с фиксирана запетая, са възможни: набор машинни команди за събиране на 8-битови операнди ; за събиране на 16-битови операнди и за събиране на 32-битови операнди. 24 Организация на изчислителния процес Структура на операционната част на машинната команда б) Спецификатор за форма и формат на операндите. Що се отнася до фόрмата, в която са представени числата, в качеството им на операнди, това е признак, по който се образува едно друго подмножество машинни команди (КОП) за всяка отделна операция. 25 Организация на изчислителния процес Структура на операционната част на машинната команда в) Спецификатор на същинския код на операцията - онази част от двоичната комбинация в полето КОП, която пряко съответства на същността на заповяданата от командата операция. Винаги се съдържа в първия (по ред на извличане) байт на машинната команда. г) Спецификатор за разширение на КОП. В някои процесори, с цел по-лесно декодиране на командата, т.е. за избор на управляващия алгоритъм, се прилага удължаване на операционната част на машинната команда обикновено с още един или два байта. (За целта този факт се указва допълнително.) Това дава възможност общата дължина на командата да се определя по време на нейното изтегляне от оперативната памет. 26 Организация на изчислителния процес Структура на операционната част на машинната команда д) Спецификатор за привилегированост на командата. При наличието на такъв спецификатор става възможно изграждането на по-надеждно програмно осигуряване, тъй като командата поставя предварителни условия за своето изпълнение. е) Спецификатор за циклическо повторение. Този спецификатор е свързан с особено изпълнение на регистъра на командата. Обикновено той присъства в командни системи на процесори, в които е реализиран така нареченият команден буфер. Извлечените от оперативната памет машинни команди се “складират” в командния буфер, където очакват своето изпълнение, т.е. извличането е изпреварващо изпреварва във времето самото им изпълнение. 27 Организация на изчислителния процес Структура на операционната част на машинната команда Микропроцесори на фирмата Motorola Старшите четири бита на кода на операцията кодират 16 типа команди, например: MOVE.B - прехвърляне на байт, Вcc, BSR, BRA - условни преходи, AND, MUL, ABCD, EXG и др. Младшите 6 бита в повечето случаи съдържат ефективен адрес или регистрови адреси, което означава, че в основната си реализация командната система разчита на формата "регистър-регистър". 28 Организация на изчислителния процес Структура на операционната част на машинната команда Едночипов микроконтролер PIC16Fxx Всички байтово ориентирани команди имат 6-битов КОП (Opcode=00 хххх), като всички комбинации съдържат в двата най-старши бита нули (00). Комбинациите (00 0000) и (00 0001) са използвани по два пъти и се декодират допълнително чрез бит b7. В адресната част се съдържат два структурни елемента, които се използват по следния начин: - Ако в 7-ми бит d=0 , тогава се използва регистър W ; - Ако в 7-ми бит d=1 , тогава се използва регистър с номер #reg, посочен в младшата част на полето. 29 Организация на изчислителния процес Структура на операционната част на машинната команда Едночипов микроконтролер PIC16Fxx Всички битово ориентирани команди имат 4-битов КОП (Opcode=01хх), като всички комбинации съдържат в двата най-старши бита 01. В адресната част се съдържат два структурни елемента, които определят номера на обработвания бит (#bit) и номера на използвания регистър (#reg). 30 Организация на изчислителния процес Структура на операционната част на машинната команда Виртуални процесори Езици за програмиране, осигуряващи разпространение и разпределена обработка на програми. Идеята се състои в доставка върху всяка реална платформа на независимо от нея универсално изчислително средство за изпълнение на доставения по мрежата програмен код. Така се появява езикът JAVA и реализиращата го виртуална JAVA-машина (JVM). Под понятието виртуална машина се разбира програмна реализация на машинен модел. С други думи, конструираната JAVA-машина, не е реална (физическа), а съществува върху реалната компютърна система във вид на програма. 31 Организация на изчислителния процес Структура на операционната част на машинната команда Виртуални процесори Технологичен цикъл за обработка на Java-програми 32 Организация на изчислителния процес Структура на операционната част на машинната команда Виртуални процесори Основната част от командите са еднобайтови. Кодът на операцията във всички случаи заема един байт. Останалите байтове (ако съществуват) се отнасят до адресната част на командите. 33 Организация на изчислителния процес Структура на операционната част на машинната команда За да се облекчи изучаването на системата машинни команди и технологията на програмиране в системата на даден процесор, кодът на операцията на машинните команди обикновено се изобразява в предварителния текст на програмите не фактически (чрез двоичната си комбинация), а чрез мнемоничен код – съчетание от букви (най-често части от думи), явно подсказващи същинската операция. Така например, за операция събиране обикновено се употребява мнемониката ADD (addition - събиране), а за изваждане – мнемониката SUB (subtraction изваждане). 34 Организация на изчислителния процес Структура на операционната част на машинната команда Правилата, по които се изразяват мнемонично машинните команди, а от там целите програми, а така също и някои допълнителни правила, свързани например със задачата за разпределение на адресното пространство на процесора за нуждите на програмата, както и някои други, формират така наречения асемблерен език. Машинните програми се съставят и представят от програмиста на асемблерен език, но съществуват в оперативната памет и се изпълняват на фактическия машинен език. Преобразуването (транслирането или още компилирането) на асемблерския текст на една програма в машинен код се извършва автоматично от друга специална програма. 35 Организация на изчислителния процес Структура на адресната част на машинната команда В адресната част на машинните командите в съвременните процесори се съдържат адреси или само на операнди, или само на команди. От тази гледна точка броят на адресите в структурата на машинни команди определя адресността на процесора. Безадресни, едноадресни, двуадресни и триадресни процесори, машинните команди на които имат съответно структурите: < КОП > ; < КОП Адр. > ; < КОП Адр.1, Адр.2 > ; < КОП Адр.1, Адр.2, Адр.3 > . Адресността на машинната команда зависи от метода за достъп до данните, който е реализиран в съответното запомнящото устройство. 36 Организация на изчислителния процес Структура на адресната част на машинната команда Триадресен процесор Възможността в адресната част на командите да се указват три адреса означава, че за всяка двуместна операция могат да се посочват не само адресите на операндите, но и адресът за поместване на резултата. Така се определя следната структура и действие на командите. Пример: събиране < ADD Адр.1, Адр.2, Адр.3 > ; Адр.3 := (Адр.1) + (Адр.2) 37 Организация на изчислителния процес Структура на адресната част на машинната команда Двуадресен процесор В повечето практически случаи конструкторите предпочитат да съкратят формáта (дължината) на командата, като приемат, че резултатът се записва на мястото на първия операнд. Пример: събиране < ADD Адр.1, Адр.2 > ; Адр.1 := (Адр.1) + (Адр.2) ; При използване на такива команди след тяхното изпълнение първият операнд се изтрива и на негово място се помества резултатът. Двуадресната командна система е по-ефективна от триадресната, тъй като всяка команда е по-къса, а оттук програмата, съставена от такива команди, заема по-малко клетки в паметта. 38 Организация на изчислителния процес Структура на адресната част на машинната команда Едноадресен процесор Едноадресен е този процесор, чийто машинни команди не могат да съдържат в адресната си част повече от един адрес. Това е възможно, само когато архитектурата на аритметично-логическото устройство е реализирана въз основа на принципа на натрупващия суматор . Процесор от натрупващ тип е такъв процесор, в който “всяка операция се изпълнява с резултата от предходното действие”. В такъв случай изчисленията в процесора (и в частност в АЛУ) се организират така, че един от операндите винаги да се намира в регистър с общо предназначение, който се подразбира от КОП на командите. 39 Организация на изчислителния процес Структура на адресната част на машинната команда Едноадресен процесор Регистърът, чието съдържание се взема в качеството му на първи операнд и после съхранява резултата, обикновено се нарича акумулатор и се отбелязва Акм или Асс. Структурата и действието на машинните команди в такива процесори се представят по следния начин: Примери: събиране : < ADD Адр.1 > ; Асс := (Асс) + (Адр.1) запис: < STORE Адр.1 > ; Адр.1 := (Acc) зареждане: < LOAD Адр.1 > ; Acc := (Адр.1) 40 Организация на изчислителния процес Структура на адресната част на машинната команда Безадресен (стеков) процесор Развивайки идеята за подразбиращия се от кода на операцията адрес на операнд и върху двата операнда на двуместните операции, се стига до организацията на изчисленията чрез стек. В този случай регистрите с общо предназначение в АЛУ са организирани за достъп чрез метода LIFO. Ако се приеме, че всяка аритметична операция се извършва на върха на стека - между първата и втората върхови клетки, то не е необходимо посочването на адрес. Примери: зареждане : < LOAD Адр.1 > ; TL:=(Адр.1) , PUSH ; запис : < STORE Адр.1 > ; Адр.1:=(TL), POP . 41 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга [2]; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА упражнения, ISBN 978-954-20-0258-0, Варна 2007г. 42 Организация на компютъра Хорариум: 2л. + 2л.у. 1 Лекция 11: Методи за адресиране на командите 2 Съдържание Преходи Принудителна адресация на командите Естествена адресация на командите Команди за управление на прехода Команди реализиращи подпрограмна техника 3 Организация на изчислителния процес Методи за адресиране на командите Съществуват два основни вида предаване на управлението или два вида преходи - безусловни и условни. Адресът за връзка със следващата по действие команда, който текущата съдържа в себе си, се нарича адрес за преход. 4 Организация на изчислителния процес Методи за адресиране на командите А) Принудителнo адресиране на командите Когато в структурата на машинните команди присъствва адресът за преход, говорим, че логическата връзка между отделните команди е осъществена чрез метода на принудителното адресиране. Всяка машинна команда заповядва операцията, извлича операндите си, изпълнява действието, получава резултат и предава управлението на следващата команда. Независимо къде се намира последната, чрез командния цикъл на процесора, могат да се свържат и изпълнят в логическа последователност машинни команди, разположени в произволни адреси. 5 Организация на изчислителния процес Методи за адресиране на командите А) Принудително адресиране на командите Това, че програмистът може да разположи следващата команда от програмата в произволно място в паметта, е съществено достойнство на този метод за адресиране, тъй като по този начин може да се постигне висока степен на уплътняване в адресното пространство и ефективно използуване на паметта. Недостатъци на принудителното адресиране: затруднено разполагане на програмата в паметта от страна на автоматизираните средства за програмиране ; удължаване на машинната команда, а оттам – снижаване на бързодействието на програмата. Тези недостатъци се засилват в случаите, когато трябва да се реализира алтернативен преход, при който в “Поле 3” на адресната част на командата трябва да бъдат указани поне два адреса за преход. 6 Организация на изчислителния процес Методи за адресиране на командите Б) Естествено адресиране на командите Когато машинните команди са разположени в последователни клетки от паметта, то микропрограмната процедура за извличане на машинната команда подготвя и адреса на следващата команда. Функционалността на тези адреси е инкрементна, а тя се реализира апаратно лесно с помощта на един сумиращ брояч, който се нарича програмен брояч (ПБ). Програмният брояч формира адресите на клетките, съдържащи машинните команди и в този смисъл може да се интерпретира като адресен указател, следователно неговата дължина трябва да съответства на обема на адресното пространство на процесора. 7 Организация на изчислителния процес Методи за адресиране на командите Б) Естествено адресиране на командите При този начин на функциониране на програмния брояч, следващият адрес, който се оказва автоматично получен като негово съдържание, е в същото време и адрес на следващата команда във всички случаи на линейни алгоритмични (програмни) участъци. Този начин на получаване на адреса на следващата команда прави напълно излишно адресното поле за преход и то не присъства в структурата на машинната команда. Модифицирането на програмния брояч с +1 дава наименованието естествено адресиране на този метод. 8 Организация на изчислителния процес Методи за адресиране на командите Б) Естествено адресиране на командите При разклонените и други (преход към подпрограми, при поява на прекъсване, при команди от тип заместване, или при преход към друго състояние, или режим на работа на процесора) алгоритмични структури методът на естественото адресиране е неудобен. Преминаването от една адресна последователност към друга представлява безусловен алгоритмичен преход със скок. Този скок се изразява в рязка смяна на съдържанието на програмния брояч. За реализиране на адресните преходи системата от машинни команди на всеки реален процесор се допълва със сравнително голяма група от специални команди за управление на прехода. 9 Организация на изчислителния процес Методи за адресиране на командите Б) Команди за управление на прехода Това са машинни команди, които реализират само адресния преход към следващата команда. Те нямат операнди и не предизвикват действия в операционните устройства на процесора. Естественото адресиране с помощта на програмния брояч е невъзможно. 10 Организация на изчислителния процес Методи за адресиране на командите В1) Команди за безусловен преход (БПр) Тези команди са предназначени да реализират безусловните алгоритмични преходи. Необходимостта от тези команди се обосновава от практически съществуващото положение, че трябва да бъдат свързани в логическа последователност машинни команди, които не са разположени в последователни клетки. 11 Организация на изчислителния процес Методи за адресиране на командите В1) Команди за безусловен преход (БПр) Принудителният безусловен адресен преход, който се реализира с командата за безусловен преход трябва да запазва в новата адресна последователност реализацията на основния метод за адресиране на командите - естествения ред, ето защо действието на командите за безусловен преход е твърде просто и се описва в два пункта: 1. Формиране на адреса за преход АПР ; 2. Зареждане на адреса за преход АПР в програмния брояч (ПБ:= АПР). Следователно структурата на всички команди за безусловен преход е едноадресна. 12 Организация на изчислителния процес Методи за адресиране на командите В1) Команди за безусловен преход (БПр) Пряката адресация има съществен недостатък програмите, съдържащи такива команди, са непреместваеми. Затова пък в състава на системно локализирани програми (например в памет от тип ROM) те са предпочитани. При косвено адресирана машинна команда се предполага, че в адресната част на командата за безусловен преход се намира указател (косвен адрес на прехода). Последното се разбира от спецификатора за косвено адресиране КА. 13 Организация на изчислителния процес Методи за адресиране на командите В1) Команди за безусловен преход (БПр) При относително адресирана машинна команда се предполага, че в адресната част на командата за безусловен преход най-често се намира отместване. Адресирането на безусловния преход може да се извърши само относно текущото положение, т.е. относно адреса на текущата команда. Отместването е число със знак и следователно трябва да бъде изразено в допълнителен код. 14 Организация на изчислителния процес Методи за адресиране на командите В2) Команди за условен преход (УПр) Машинните команди от тази група са предназначени да реализират алтернативните алгоритмични преходи. Тези преходи се наричат условни, тъй като извършването им зависи от предварително поставено условие. Блок-схемите и програмите в тези случаи се наричат разклонени. 15 Организация на изчислителния процес Методи за адресиране на командите В2) Команди за условен преход (УПр) В процесори с развита командна система съществуват специфични машинни команди за условен преход, предназначени за реализация на циклически алгоритмични структури. Машинните команди за условен преход, свързани с проверка на условие, формирано върху признаците на резултата при операции в индексните регистри, се наричат индексни. Специфичното за тези команди е това, че освен проверката на условието, свързано с индексния регистър, те включват в своята микропрограма и модификацията на съдържанието на регистъра, която обикновено е декрементна операция. 16 Организация на изчислителния процес Методи за адресиране на командите В3) Команди, реализиращи подпрограмна техника (извикване на подпрограма и връщане от подпрограма) При съвместното функциониране на софтуер с подпрограми говорим, че изпълнението на текущата програма се прекъсва, стартира се изпълнението на подпрограмата, а след нейното завършване се възобновява изпълнението на прекъснатата програма. В този процес съществуват два основни проблема: Автоматично свързване на две различни програмни единици за съвместна работа; Обмен на параметри (данни) между тях. 17 Организация на изчислителния процес Методи за адресиране на командите В3) Команди реализиращи подпрограмна техника Командите за преход към подпрограма (ППП) имат едноадресна структура, като тази на командите за безусловен преход. Адресната част на тези команди съдържа началния (стартовия) адрес на подпрограмата. Освен смяната на адресната последователност, командата за ППП трябва да осигури възможност за връщане на управлението след изпълнение на подпрограмата, обратно в програмата, която я е повикала. За да се осигури тази възможност, командата за ППП трябва, преди да измени съдържанието на програмния брояч, да запомни текущото му съдържание. Най-често адресът на връщане се запомня в стека. Командата за връщане от подпрограма (ВПП) е безадресна команда, или още стекова - нейната структура съдържа само КОП. 18 Организация на изчислителния процес • По време на изпълнение на типичната машинна команда се открояват допълнително следните общи етапи в нейната микропрограма: Изчисляване на изпълнителния адрес на операндите ; Прочитане и доставяне (извличане) на операндите от оперативната памет ; Изпълнение на операцията в операционното устройство (АЛУ); Фиксиране на резултата и неговите признаци. 19 Организация на изчислителния процес • Управляващото устройство е съсредоточило в себе си цялата власт – държи под контрол и управлява всички процеси в структурата на процесора. 20 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга [2]; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА упражнения, ISBN 978-954-20-0258-0, Варна 2007г. 21 Организация на компютъра 1 Лекция 12: Методи за адресиране на операндите 2 Съдържание Методи за адресиране на операндите. Основни методи за адресиране на операндите – непосредствен, пряк, косвен, относителен, индексен Структура на машинните команди и апаратура за реализация на методите за адресиране на операнди Достойнства и недостатъци на методите за адресиране 3 Организация на изчислителния процес Методи за адресиране Адресите могат да се изобразяват явно или неявно. Ето защо се използват още понятията изпълнителен адрес и адресен код. Изпълнителен адрес е двоичната комбинация, която се зарежда в адресния регистър на оперативната памет, т.е. това е истинският (действителният или още абсолютният) адрес на клетката от паметта, в която се намира (или от която започва) операндът. 4 Организация на изчислителния процес Методи за адресиране Адресен код е някаква двоична информация, отнасяща се за адреса на посочваната клетка. Адресният код съдържа указател и начални данни – списък от елементите <Sp.,reg.,const>. Указателят (Sp) показва определен начин (един от възможните) за преработка на началните данни (reg.,const.). Началните данни се намират в регистровата памет (РП) на процесора. 5 Организация на изчислителния процес Методи за адресиране Отделните функционалности, според които се извършва преработката, включително и случая, когато тя фактически липсва, се наричат методи за адресиране. В резултат на преработката, т.е. на метода за адресиране, се получава изпълнителният адрес d. Когато адресът е неявен, адресният код не може да се зареди в адресния регистър на оперативната памет, тъй като не може да се използва непосредствено в качеството му на истински адрес, а трябва да се преработи, т. е. налага се да се използва хардуерен преобразувател. 6 Организация на изчислителния процес Методи за адресиране 7 Организация на изчислителния процес Методи за адресиране на операндите Безадресни команди Това са команди, които не съдържат в структурата си адресна част. Те се представят само от кода на операцията (КОП). а) команди с подразбиращ се операнд. Това са команди, които изпълняват определена операция, в която операндът(-дите) се подразбира(-ат) от кода на операцията. Обикновено тези операции се наричат унитарни. Такива операции са например +1 (increment), -1 (decrement), нулиране и др., в които единият от операндите се явява съдържание на точно определен логически възел в структурата на процесора. Резултатът от операцията се явява новото му съдържание. 8 Организация на изчислителния процес Методи за адресиране на операндите Безадресни команди б) команди с подразбиращ се адрес. Това са команди, които адресират (намират) операндите си в регистровата памет на процесора (например в стека). Тези команди са много бързи. Те се изпълняват върху стандартните формати на данните, тъй като регистрите с общо предназначение обикновено имат дължината на разрядната мрежа. 9 Организация на изчислителния процес Методи за адресиране на операндите Непосредствено адресиране Според този метод се приема, че командата не търси операнда, тъй като той се съдържа в самата нея, т.е. командата “носи” със себе си своя операнд. Такъв операнд, който за нуждите на операцията се доставя от самата команда, се нарича непосредствен. Непосредственият операнд се поставя (записва) в адресната част на машинната команда от програмиста при съставяне на програмата. 10 Организация на изчислителния процес Методи за адресиране на операндите Пряко адресиране Пряко адресиран е всеки операнд, чийто абсолютен (действителен) адрес се съдържа в адресната част на машинната команда. 11 Организация на изчислителния процес Методи за адресиране на операндите Пряко адресиране При съставяне на програмата програмистът следва да запише в адресните полета на тази команда началните адреси на операндите – за първи операнд адрес a, а за втори операнд адрес b. Дължината на операнда е без значение – началният му адрес е единствен. 12 Организация на изчислителния процес Методи за адресиране на операндите Пряко адресиране Командите с пряко адресиране са едни от най-бързо изпълняващите се. В същото време прякото адресиране притежава един съществен недостатък - фиксираният в командата (в програмата) адрес на операнда е един и същ при всяко стартиране на програмата, което означава, че по място в адресното пространство на оперативната памет той е непреместваем. 13 Организация на изчислителния процес Методи за адресиране на операндите Косвено адресиране Според този метод в адресната част на командата не се намира нито самият операнд, нито неговият изпълнителен адрес, а адресен указател, който посочва къде се намира адресът на операнда. Съдържащият се в командата адрес се нарича косвен адрес, той не е изпълнителен. 14 Организация на изчислителния процес Методи за адресиране на операндите Косвено адресиране Адресът-препратка е пряк (действителен) адрес. Това прави този адрес непреместваем, но неговото съдържание може да бъде променяно преди всяко ново обръщение. Последното означава, че операндът придобива свойството да бъде свободен и преместваем. За да се получи достъп до операнда, указателят се използва за отваряне на клетка, в която се съдържа изпълнителният адрес. 15 Организация на изчислителния процес Методи за адресиране на операндите Косвено адресиране 16 Организация на изчислителния процес Методи за адресиране на операндите Относително адресиране Този метод за адресиране изисква допълнителна апаратура за своята реализация и е наложен от изискванията за ефективно програмиране. Изпълнителният адрес АИ на операндите при този метод се формира въз основа на закона Аи = B + D, където В се нарича база (базов адрес), a D (displacement) - отместване (или относителен адрес). Отместването се измерва относно базовия адрес в брой адресируеми единици. 17 Организация на изчислителния процес Методи за адресиране на операндите Относително адресиране Преместването на базовия адрес нагоре или надолу в адресното пространство не променя конструкцията на изпълнителния адрес. 18 Организация на изчислителния процес Методи за адресиране на операндите Индексно адресиране Това е единственият метод за адресиране, който е разработен по причина на алгоритмични (софтуерни) проблеми. Предназначен е за адресиране на еднотипни данни (масиви), които са разположени в последователни клетки от паметта. Подреждането им се изразява чрез техния индекс. 19 Организация на изчислителния процес Методи за адресиране на операндите Индексно адресиране Изчисляването на изпълнителния адрес на текущия операнд на машинната команда трябва да се извършва вън от програмата, т.е. с апаратни средства. 20 Организация на изчислителния процес Методи за адресиране на операндите Индексно адресиране Техническата реализация на преадресирането се изразява във въвеждане в структурата на процесора на регистри със специално предназначение - индексни регистри, които да формират и да съхраняват индекса на текущия елемент, с чиято помощ се изчислява изпълнителният адрес. В съвременните процесори индексните регистри са част от регистровата памет и са тяхна архитектурна характеристика. 21 Организация на изчислителния процес Методи за адресиране на операндите Индексно адресиране В индексните регистри трябва да е възможно изпълнението на унитарни операции. Тези операции правят индексните регистри програмно достъпни. За целта в системата от машинни команди се разработва специална група команди, наричани команди за работа с индексните регистри. 22 Организация на изчислителния процес Методи за адресиране на операндите Индексно адресиране Структура на машинната команда при индексно адресиране Изпълнителният адрес на операнда се формира по закона: Аи = (X) + D, D – отместване При изпълнение на програмата преадресирането се извършва в индексния регистър с отделна команда, която реализира закона X:=(X)+k, където k е дължината на алгоритмичната стъпка в масива. 23 Организация на изчислителния процес Методи за адресиране на операндите Колко често се използват отделните методи за адресиране в реалните програми Оценки за три програмни продукта, масово използвани в компютри с архитектура VAX. 24 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга [2]; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА упражнения, ISBN 978-954-20-0258-0, Варна 2007г. 25 Организация на компютъра 1 Лекция 13: Система за прекъсване 2 Съдържание Прекъсване. Видове прекъсвания. Система за прекъсване - предназначение и характеристики. Обслужване на прекъсванията 3 Организация на изчислителния процес Система за прекъсване – общи положения Процесорът е в състояние да реагира на външна намеса в изчислителния процес не в произволен момент, а само в момент, съответствуващ на границата между два структурни елемента, т.е. между две команди, тъй като основният алгоритъм за управление на изчислителния процес е командният цикъл. В този смисъл, възможността на процесора за ответна реакция е първично заложена в него чрез условния блок за проверка на заявките за прекъсване. 4 Организация на изчислителния процес Система за прекъсване – общи положения Успешното управление на реакцията на процесора в отговор на външни събития е свързано със състоянието на процесора. Под състояние на процесора в даден момент най-общо се разбира съвкупността от съдържанието на всички възли с памет в структурата му. 5 Организация на изчислителния процес Система за прекъсване – общи положения Процесорът реагира на прекъсването чрез превключването му към друга програма, т.е. изчислителният процес, съответстващ на текущата програма, се прекъсва. Прекъсването на изпълнението на текущата програма следва да се осъществи по такъв начин, че да бъде възможно възстановяване на изпълнението ѝ след отминаване на причинилите го събития и свързаните с тях действия, при това от точката на прекъсването ѝ нататък. 6 Организация на изчислителния процес Система за прекъсване – общи положения При прекъсване състоянието на процесора се представя от съдържанието само на онези възли, загубата на което е фатално за възобновяване на прекъснатия изчислителен процес от точката, в която го е заварило външното събитие. Тази най-необходима информация обикновено се нарича дума за състоянието или вектор на състоянието. 7 Организация на изчислителния процес Система за прекъсване – общи положения Типичната за думата на състоянието информация се формира от: Съдържанието на програмния брояч, който съхранява текущия адрес. Текущият адрес е функция на командния цикъл и в случая представлява маркер за точката на прекъсване; Съдържанието на адресните регистри, съхраняващи базови, косвени и индексни адреси; Съдържанието на регистрите с общо предназначение, съдържащи междинните резултати; Съдържанието на регистъра на признаците; Други възли със служебна информация, отнасяща се до текущия режим на работа на процесора. 8 Организация на изчислителния процес Система за прекъсване – общи положения Принципно най-важното в разглеждания проблем е случайният характер на събитията, които могат да прекъснат текущите изчисления. Този случаен характер ги прави непредсказуеми както по време, така и по вид. По тази причина реакцията на процесора, т.е. на потребителя, не може да бъде заложена (запрограмирана) предварително в програмите. 9 Организация на изчислителния процес Система за прекъсване – общи положения Възможността за реакция на процесора е предвидена в командния цикъл, а настъпващите събития, изискващи вниманието на процесора, са длъжни за целта да подават сигнали, наричани заявки за прекъсване. Заявките за прекъсване трябва да се подават към централното управляващо устройство на специален вход – заявка за прекъсване (IRQ – Interrupt Request). 10 Организация на изчислителния процес Система за прекъсване – общи положения Възможността за прекъсване на работата на една програма, изпълнението на определени действия, свързани с настъпилото събитие, и връщане на управлението обратно на изходната програма, без при това програмистът да е ангажиран явно в управлението на този процес, е важно архитектурно свойство на съвременните изчислителни машини. Това свойство се постига чрез една съвкупност от специални за целта апаратни и програмни средства, която се нарича система за прекъсване. 11 Организация на изчислителния процес Система за прекъсване – общи положения Основните функции на системата за прекъсване са: Регистриране на заявките за прекъсване и избор на заявка за прекъсване; Запомняне на състоянието на прекъснатата програма и автоматичен преход към програма, обслужваща източника на заявката за прекъсване; Възстановяване на състоянието на прекъснатата програма, ако обслужващата програма вземе решение за това. 12 Организация на изчислителния процес Система за прекъсване – общи положения МППОП (микропрограмна процедура за осъществяване на прекъсването) Тр - време за реакция на системата Тпр – време за осъществяване на преход Тоб – време за обслужване Тв – време за възстановяване (връщане от прекъсване) КВП – команда за връщане от прекъсване 13 Организация на изчислителния процес Система за прекъсване – общи положения Програмен стек Програмният стек е основно средство за реализация на прекъсването. Стекът се реализира като LIFO-памет, чийто адресен регистър се нарича стеков указател (SP – Stack Pointer), а запомнящият масив на това запомнящо устройство се реализира като се “арендува” част (област) от основната RAM-памет на системата. 14 Организация на изчислителния процес Система за прекъсване – общи положения Определяне на мястото (началния адрес) и обема на стека е задача на операционната система. Началният адрес на областта, избрана за стека, се нарича дъно на стека. Зареждането (НЗ) на стековия указател с начален адрес също е задача на операционната система. Това тя прави при зареждане на ново задание. Програмният стек обикновено е стек винаги готов за запис, т. е. във всеки момент съдържанието на SP сочи първата свободна за запис клетка. 15 Организация на изчислителния процес Система за прекъсване – общи положения Обслужващата програма минава през следните етапи: 1. Съхранение (при нужда) на допълнителна информация за прекъсваната програма и определяне на новото състояние на процесора чрез зареждане на собствените параметри на обслужващата програма; 2. Анализиране на състоянието на източника, подал ЗП, и вземане на решение за конкретни действия; 3. Изпълнение на конкретните действия; 4. Възстановяване на параметрите на прекъснатата програма; 5. Изпълнение на операция "връщане от прекъсване". 16 Организация на изчислителния процес Система за прекъсване – общи положения Какъв е общият брой възможни за подаване заявки за прекъсване и какво е тяхното отношение спрямо изчислителния процес? Колкото броят е по-голям, толкова по-гъвкава и развита може да бъде периферната система на процесора. 17 Организация на изчислителния процес Система за прекъсване – общи положения Максимално възможна дълбочина на вложените прекъсвания, която системата за прекъсване може да поддържа - това е максималният брой програми, които могат да стоят прекъснати, без да е загубена възможността да бъдат завършени. Ако, например, след прехода към обслужващата програма и по време на нейното цялостно изпълнение, приемането на други ЗП е забранено, това определя дълбочината на единица. Дълбочината е цялото число N, ако е възможно да бъдат взаимно прекъснати N на брой програми. 18 Организация на изчислителния процес Система за прекъсване – общи положения Обслужване на вложени прекъсвания 19 Организация на изчислителния процес Видове прекъсвания 1. Вътрешни прекъсвания (програмни и апаратни) ; 2. Външни прекъсвания. 20 Организация на изчислителния процес Видове прекъсвания Според вероятните за поява причини, заявките за прекъсване се класифицират в три основни групи: 1. Външни прекъсвания: · От периферни устройства, изискващи обслужване; · От таймер; 2. Аварийни прекъсвания: · Поради грешки при изпълнение на програмите - при несъществуващ КОП, при аритметични операции, при обръщение към паметта, при защита на операционната система; · От диагностичната система - при загуба на информация в предаваните данни, при отпадане на захранването, при нарушаване на работните условия на отделни ИС. 3. Програмни прекъсвания – при преход към подпрограма или към процедура, при преход към друго задание (процес), при връщане от прекъсване. 21 Организация на изчислителния процес Видове прекъсвания Според изискванията си за обслужване, прекъсванията могат да се класифицират в две групи: 1. Прекъсвания, които изискват безусловно обслужване – немаскируеми (NMI); 2. Прекъсвания, които се обслужват при определени условия – маскируеми (IRQ). 22 Организация на изчислителния процес Команден цикъл и МППОП 23 Организация на изчислителния процес Команден цикъл и МППОП Маската може да се управлява според нуждите на потребителя. За целта в командната система на всеки процесор се реализират машинни команди за присвояване стойност на маската. В командната система на процесорите IA-32 това са двойката безадресни команди CLI (изчистване на маската), т.е. “забрани външни прекъсвания” и STI (установяване на маската), т.е. “разреши външните прекъсвания”. Стойността на маската се съхранява в тригер, който обикновено е включен в състава на регистъра на състоянието на процесора. 24 Организация на изчислителния процес Команден цикъл и МППОП - МППОП на 8-битови микропроцесори Motorola 25 Организация на изчислителния процес Команден цикъл и МППОП - МППОП на 8-битови микропроцесори Motorola Характерното за тази твърде елементарна 8-битова архитектура е, че адресът α, от който в края на МППОП се извлича новото съдържание на програмния брояч, се формира апаратно върху адресната шина и е константен. Стойността му зависи от вида на прекъсването. Началните адреси на обслужващите програми са постоянно записани в тези константни адреси : Разположение на векторите за прекъсване 26 Организация на изчислителния процес Включване на външни и вътрешни ЗП 27 Организация на изчислителния процес Видове прекъсвания В съвременните компютърни системи се е наложило понятието събитие. Събитията основно се делят на вътрешни и външни. Вътрешните събития се наричат още изключения, а външните – прекъсвания. 28 Организация на изчислителния процес Видове прекъсвания Вътрешните изключения се делят на три вида: 1. Грешки (faults). Грешките се откриват преди или по време на изпълнението на машинната команда. Най-често се явяват в системата на виртуалната памет, когато е заявен адрес към несъществуваща страница или сегмент. В този смисъл изпълнението на командата е опорочено и с нея може да се постъпи по два възможни начина – да се рестартира или да се организира нейното продължение. 29 Организация на изчислителния процес Видове прекъсвания 2. Капани (traps). Тази ситуация възниква на границата между две команди. Капаните са контролни точки, които могат да бъдат залагани умишлено от потребителя, с цел контрол на изчислителния процес, обикновено при тестване на софтуера, чрез вмъкване в кода на програмата на еднобайтова команда INT. 30 Организация на изчислителния процес Видове прекъсвания 3. Повреди (aborts). При такива ситуации не винаги се разполага с адреса на командата, по време на която е настъпило изключението. По тази причина не винаги е възможен рестарт на командата и следователно на хода на изчислителния процес. Типични изключения от този вид са различни апаратни грешки, откривани от контролиращи логически схеми, или при противоречиви (недопустими) стойности в системните таблици. След обработка на прекъсването изчисленията продължават нормално от следващата команда. 31 Организация на изчислителния процес Видове прекъсвания Заявките за обработка на изключенията се генерират от вътрешните схеми на процесора. В рамките на една команда могат да съществуват причини за няколко изключения, но в даден момент ще възниква само едно изключение. Процесорът ще обработва възникващите изключения последователно и ще рестартира машинната команда до нейното пълно изпълнение. 32 Организация на изчислителния процес Обслужване на прекъсвания Обслужването на немаскируемите заявки за прекъсване по определение трябва да бъде безусловно, но в същото време те са няколко и тяхното едновременно появяване не е изключено. От това положение следва, че тяхното обслужване не може да бъде друго освен последователно и за целта следва да съществува някакъв ред. Този ред е фиксиран от конструкторите на процесора. Редът за обслужване на вътрешните и външните немаскируеми прекъсвания за всеки процесор е фиксиран в командния цикъл чрез съответното подреждане на условните им преходи. 33 Организация на изчислителния процес Обслужване на прекъсвания Ред, в който МППОП проверява всички едновременно възникнали изключения и прекъсвания: 1. Проверка за капан след току що завършилата команда (постъпков режим – трасировка или прекъсване по стойност на резултата) ; 2. Проверка за грешки на следващата команда според съдържанието в регистрите за трасиране на изпълнението; 3. Проверка за наличие на заявки за външни прекъсвания; 4. Проверка за грешка при липса на сегмент; 5. Проверка за грешка при липса на страница; 6. Проверка за грешка при дешифриране на командата; 7. Проверка за наличие на FPU; 8. Проверка за грешки при операции в FPU, ако проверката е включена. (Представеният ред се отнася за архитектурата IA-32.) 34 Организация на изчислителния процес Насищане на системата за прекъсване Насищане настъпва в онзи момент, когато една ЗП застига все още необслужена заявка от същия тип. В този случай застигнатата заявка може да бъде загубена, което не е допустимо. Насищането е параметър, който може да се свърже с максимално допустимата честота на следване на заявките за прекъсване, която е функция от параметъра време за реакция – Тр. Влизането на системата за прекъсване в състояние на насищане води до зацикляне, от което е невъзможно да се излезе без допълнителна външна намеса. Такова състояние е възможно при некоректно поведение от страна на външното устройство, подаващо заявка за обслужване. 35 Организация на изчислителния процес Обозначаване на прекъсванията В съвременните компютърни системи възможните източници на заявки за прекъсване (или накратко – прекъсванията) получават уникални номера. Използваните числа като номера на прекъсванията са числата от естествения ред в интервала [0,255], които като двоични имат дължина 8[b]. Номерът на прекъсването се нарича още код за прекъсване. 36 Организация на изчислителния процес Обозначаване на прекъсванията Общоприети конвенции за разпределение на номерата на прекъсванията. Така например, за платформи с общо предназначение с архитектура IA-32, разпределението на номерата е известно и широко описано в литературата. За такива системи фирма Intel е резервирала номерата от 00 до 31 за обозначаване на изключенията. 37 Организация на изчислителния процес Обозначаване на прекъсванията 38 Организация на изчислителния процес Обозначаване на прекъсванията Номерът на прекъсването е функционално свързан с началния адрес на съответната обслужваща програма – Апр=F(V). Тази функционалност се реализира в микропрограмната процедура за осъществяване на прекъсването МППОП. Функцията F(V) изразява преобразуването на номера на прекъсването V в табличен адрес ТА, ТА=F(V). Този табличен адрес е косвен и неговото съдържание (ТА) следва да се извлече и използва като адрес за преход към съответната обслужваща програма. 39 Организация на изчислителния процес Обозначаване на прекъсванията Схемата на преход от сигнал към обслужваща програма 40 Организация на изчислителния процес Проблемът “избор на заявка за прекъсване” Системи за реализация на избора • Програмен полинг Микропрограмната процедура за осъществяване на прекъсването е крайно опростена. При решение за обслужване на ЗП МППОП съхранява текущото състояние на процесора и зарежда в програмния брояч фиксиран адрес. Прекъснал текущата програма, процесорът стартира винаги една и съща програма – програмата "Полинг". Тази програма трябва по чисто програмен път: 1. Да обходи всички източници на ЗП ; 2. Да избере най-приоритетния от тях ; 3. Да стартира съответствуващата му обслужваща програма. 41 Организация на изчислителния процес Проблемът “избор на заявка за прекъсване” Системи за реализация на избора • Програмен полинг 42 Организация на изчислителния процес Проблемът “избор на заявка за прекъсване” Системи за реализация на избора • Апаратен полинг 43 Организация на изчислителния процес Всички операции във външните устройства, които потребителската програма изисква, се изпълняват практически с помощта и под управлението на операционната система. Тъй като работата на външните устройства се организира най-вече чрез системата за прекъсване, то следва, че операционната система обработва и всички прекъсвания. 44 Организация на изчислителния процес Проблемът “избор на заявка за прекъсване” • Въвеждане на приоритет (степен на значимост), който оценява както всяка отделна причина за прекъсване, така и характеризира всеки отделен вход за ЗП в системата за прекъсване. • Приоритетът (оценката на степента на значимост) е цяло число. 45 Организация на изчислителния процес Plug-and-Play върху шина PCI Всяко PCI-устройство има така нареченото конфигурационно пространство. Това пространство е с обем от 256 байта. Зад всеки адрес от това пространство стоят още две конфигурационни полета – за устройство и за функция, така че адресът се интерпретира според следната структура: Адрес на шина [8 бита] :: Устройство [5 бита] :: Функция [3 бита] Това дава 256 шини, на всяка от тях могат да се мултиплексират до 32 устройства, всяко от които поддържа максимум 8 функции, които могат да бъдат адресирани и конфигурирани. Всяко PCI-устройство трябва да отговаря поне на функция номер 0. Първите 64 байта от конфигурационното пространство са стандартизирани, останалите са на разположение на производителите. 46 Организация на изчислителния процес Технология Plug-and-Play (PnP) Тази технология е разработена с цел да улесни потребителя при добавяне на нов хардуер към компютърната конфигурация. Идеята е хардуерът да предоставя на програмното осигуряване възможности за гъвкаво конфигуриране. Така от своя страна софтуерът може да променя голяма част от настройките на хардуера, който става напълно “видим”. Най-съществената част са номерата на прекъсванията и входно-изходните адреси. 47 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – упражнения книга [2]; [3]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. [4]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА упражнения, ISBN 978-954-20-0258-0, Варна 2007г. 48 Организация на компютъра 1 Лекция 14: Организация на входно-изходния обмен 2 Съдържание Организация на входно-изходната система Входно-изходни операции 3 Организация на изчислителния процес Организация на входно-изходната система Освен задължителните устройства, същността на процесора се определя още и от следните четири системи: 1. Система от машинни команди; 2. Система за прекъсване; 3. Входно-изходна система; 4. Запомняща система. 4 Организация на изчислителния процес Организация на входно-изходната система Цифровият процесор, в съответствие с теорията на крайните автомати, представлява краен автомат, който съществува в обкръжението на други подобни автомати, явяващи се за него външни. Връзката на процесора с външния свят е чисто информационна - между него и външната среда могат да протичат единствено процеси на обмен на данни. Следователно можем да твърдим, че за процесора външният свят представлява памет. Така, от същността на взаимодействието на процесора с външните устройства, произлиза наименованието на разглежданата система – входно-изходна. 5 Организация на изчислителния процес Организация на входно-изходната система Входно-изходни операции • Под входно-изходни операции (операции за въвежданеизвеждане) най-общо се разбира процесът по пренасяне на данни от външно устройство в оперативната памет на процесора или обратно. • Процесите въвеждане и извеждане (в най-общото им разбиране) не могат да се определят като изпълними операции, тъй като по същество те се осигуряват от цяло множество такива. • Същността на тази постановка се състои в изясняване на основните подходи за реализация на входно-изходните операции в качеството им на изпълними операции, т.е. от гледна точка на процесора и на системата машинни команди. 6 Организация на изчислителния процес Организация на входно-изходната система Входно-изходни операции • Операцията, свързваща "приемника" с "предавателя", се нарича входно-изходна операция. • Едната страна в двойката предавателприемник винаги е клетка в основната памет (или регистър от регистровата памет), а от другата страна е буферен регистър в структурата на външно устройство. 7 Организация на изчислителния процес Организация на входно-изходната система Входно-изходни операции • Процесорът “вижда” елементите на входноизходната система не непосредствено, а като клетки в своето адресно пространство. • Съвкупността от тези клетки (адреси), зад които се крие дадено външно устройство, се нарича програмен модел на външното устройство. 8 Организация на изчислителния процес Организация на входно-изходната система Входно-изходни операции • Клетката, до която процесорът има програмен достъп при входно-изходна операция, е прието да се нарича порт за вход-изход. • Портът може да се разбира още като буферен регистър. • Портът може да бъде достъпен както за четене, така и за запис или само за четене и само за запис. • Така всяко външно устройство от входно-изходната система представлява за процесора съвкупност от няколко порта - програмен модел на външното устройство. 9 Организация на изчислителния процес Организация на входно-изходната система Входно-изходни операции • В процеса на въвеждане-извеждане между процесора и системата за вход-изход се предават главно два вида данни - единият вид е предназначен и необходим за управление на процеса, а другият вид по същество представлява самите данни. • Управляващите данни, които изпраща процесорът към системата за вход-изход, се използват за инициализация на желания режим за работа, а управляващите данни, които процесорът прочита от системата за вход-изход, обикновено представляват някаква дума за състоянието на външното устройство. 10 Организация на изчислителния процес Организация на входно-изходната система Обобщен програмен модел на (конторлер на) външно устройство 11 Организация на изчислителния процес Организация на входно-изходната система Входно-изходни операции • Четирите регистъра на представения модел се разглеждат като клетки в адресното пространство на процесора. • За изпълнение в тях на основните операции всяка програма трябва да употреби съответните машинни команди. В такива команди, освен кодът на операцията, трябва да се посочи адресът на предавателя и адресът на приемника, т. е. тяхната структура може да се определи като двуадресна. • Машинните команди за реализация на входно-изходни операции се отделят и разглеждат в отделна група на командната система. 12 Организация на изчислителния процес Организация на входно-изходната система Входно-изходни операции Два подхода за непосредствената реализация на входно-изходните операции като изпълними. (Под изпълнима операция разбираме такава операция, която може да бъде заповядана с машинна команда.) 1. Изпълнение на операциите в единното адресно пространство на основната памет; 2. Изпълнение на операциите в разделно адресно пространство. 13 Организация на изчислителния процес Организация на входно-изходната система Единно адресно пространство В този случай входно-изходната система не се разпознава от процесора като такава. На входно-изходните портове процесорът гледа като на клетки от оперативната памет и изпълнява в тях обичайните за оперативната памет операции четене и запис. Процесорът не се нуждае от допълнителни машинни команди, различни от тези за работа с оперативната памет. В повечето системи, осъществяващи входно-изходни операции в единното адресно пространство на процесора, то е разделено на области – за оперативна работа и за вход-изход. 14 Организация на изчислителния процес Организация на входно-изходната система Единно адресно пространство Предимства: • Липсата на специализирани машинни команди за входно-изходни операции в такива системи облекчава командната им система. • Броят на адресите, които могат да бъдат резервирани за разполагане на входно-изходни портове, е неограничен (теоретично). • Тъй като наборът от команди, които могат да работят с клетки от оперативната памет, е сравнително многоброен, то следва, че същите команди могат да се използват и върху съдържанието на входно-изходните клетки. • Значително се опростява системната шина на процесора. 15 Организация на изчислителния процес Организация на входно-изходната система Единно адресно пространство Недостатъци: • При разрастване входно-изходната система би могла да попречи на оперативните функции на оперативната област от паметта, тъй като я ограничава по обем, а в някои случаи и я раздробява на няколко отделни области. • Този подход не е най-подходящият за реализиране на системата на унифицирания интерфейс, тъй като го усложнява, което може да доведе в крайна сметка до ниско бързодействие на входно-изходния процес като цяло. 16 Организация на изчислителния процес Организация на входно-изходната система Разделно входно-изходно адресно пространство Към системната шина на процесора се създава изолирано адресно пространство, предназначено за функциите на входно-изходната система. 17 Организация на изчислителния процес Организация на входно-изходната система Разделно входно-изходно адресно пространство Структура на машинните команди за вход-изход в архитектурата IA-32 000 ¸ 00F 060, 064 3F8 ¸ 3FF Контролер за ПДП №1 ; Контролер на клавиатура ; Порт СОМ1 . 18 Организация на изчислителния процес Организация на входно-изходната система Разделно входно-изходно адресно пространство По структура командите са двуадресни - единият адрес (Рг.№) представлява номер на регистър от регистровата памет на процесора, а другият (Адрес на ПОРТ) е абсолютен (пряк) адрес на порт във входно-изходната памет на процесора. При адресиране на клетка от оперативната памет не се използват други методи за адресиране освен пряк. Това е така, защото програмните модели на различните външни устройства са твърдо разпределени във входно-изходното адресно пространство на процесора. Не е разрешено една програма или операционната система да премества даден порт от един в друг адрес. 19 Организация на изчислителния процес Организация на входно-изходната система Разделно входно-изходно адресно пространство За по-лесна реализация на адресните дешифратори и формиране на сигнали от типа Е (Enable) или CS (Chip Select), се избират адресите от началото на адресното пространство. В исторически план първоначално са използвани младшите 10, в последствие - младшите 12, а още по-късно - младшите 16 бита от адреса. Това определя реално използваемо входно-изходно пространство в обем от 1[KB], 4[KB] и 64[KB] съответно. 20 Организация на изчислителния процес Организация на входно-изходната система Разделно входно-изходно адресно пространство На IBM дължим стандартизацията на разпределението на входно-изходното пространство за компютърните системи с архитектура IA-32, към която се придържат производителите на контролери. 21 Организация на изчислителния процес Организация на входно-изходната система Разделно входно-изходно адресно пространство 12-битов 16-чен адрес Предназначен за 000 ¸ 00F Контролер за ПДП №1 ; 010 ¸ 01F Разширение за КПДП №1 ; 020 ¸ 021 Програмируем контролер за прекъсване №1 ; 040 ¸ 05F Таймер ; 060 Диагностичен регистър POST (само запис) ; 061 Източници на NMI и управление на звука ; 060, 064 Контролер на клавиатура ; 070 ¸ 07F CMOS-памет и маска за NMI ; 22 Организация на изчислителния процес Организация на входно-изходната система Входно-изходно адресно пространство Когато към процесора са подключени няколко еднакви устройства за вход-изход, всяко от тях има свой собствен интерфейс. Апаратните средства на интерфейса са еднакви, но портовете имат различни адреси. Обменът с тези устройства обикновено се осъществява с помощта на една и съща драйверна програма, която всеки път трябва да работи с различни адреси. Тази програма за съвместно използване се разработва лесно, когато процесорът използва единно адресно пространство, където за машинните команди са достъпни различни методи за адресиране. Когато, обаче, процесорът използва изолирано адресно пространство, разработването на драйвер за съвместно използване е по-трудно, ето защо адресирането на портовете обикновено е само пряко. 23 Организация на изчислителния процес Организация на входно-изходния обмен Две основни архитектурни разновидности на входноизходната система: 1. С непосредствени връзки; 2. С разделни връзки (с канални връзки). В система с непосредствени връзки входно-изходните операции са изпълними и в командната система на процесора са реализирани с машинни команди от вида "Въведи" и "Изведи". В система с разделни връзки входно-изходните операции не са изпълними. В командната система на процесора обаче, са реализирани машинни команди от вида "Изпълни въвеждане" и "Изпълни извеждане", чрез които тези операции могат да се предизвикват за изпълнение в така наречения канал за вход-изход. 24 Организация на изчислителния процес Архитектурни разновидности на входно-изходната система Системи с непосредствени връзки С демултиплексирана шина Времедиаграми те са графичен израз на микропрограмите на машинните команди от типа LOAD, STORE, INPUT и OUTPUT. 25 Организация на изчислителния процес Архитектурни разновидности на входно-изходната система Системи с непосредствени връзки Система с мултиплексирана шина ALE (Address Latch Enable) - сигнал за запис на адреса във външен регистър за адреса на паметта . 26 Организация на изчислителния процес Архитектурни разновидности на входно-изходната система Системи с непосредствени връзки Процесорът сам управлява входно-изходните операции, като изпълнява микропрограмните им алгоритми. Външен израз на това изпълнение са изходните сигнали и данни, появяващи се в определени моменти върху системната му шина. Външните устройства, чийто интерфейс обикновено се различава от този на процесора, се подключват към системната шина чрез така наречените периферни интерфейсни адаптери. Периферните интерфейсни адаптери могат да бъдат специализирани и универсални. Входно-изходни контролери – по-сложни, способни да управляват повече от едно външно устройство от даден тип. 27 Организация на изчислителния процес Архитектурни разновидности на входно-изходната система Системи с непосредствени връзки Като непосредствено включени и управлявани от процесора, външните устройства пренасят (приемат или предават) данни основно под управлението на специализирани програми. В двете посоки трансферът на данните преминава през самия процесор, който може да се счита за посредник, а обменът се нарича програмно управляван. 28 Организация на изчислителния процес Архитектурни разновидности на входно-изходната система Системи с непосредствени връзки Използвайки тази архитектура, оптималната организация на входно-изходния обмен се характеризира с това, че найчесто се основава на използването на прекъсвания. Използването на прекъсванията дава възможност на процесора да не изчаква бавните действия на външното устройство и да се превключи на друга програма. Така ефективността му се повишава. За да се засили този ефект, данновите регистри за вход-изход се подменят с даннови буфери, побиращи по-голям обем данни. 29 Организация на изчислителния процес Архитектурни разновидности на входно-изходната система Системи с канални връзки Специализирани контролери, които реализират алгоритмите на машинните команди за вход-изход апаратно и вън от процесора. Цел на този подход - да се освободи входно-изходната система от процесора като посредник в процеса на трансфер на данни и неговото управление да бъде поето от специализирана схема. Организираният от тази схема непосредствен обмен на данни между оперативната памет и външното устройство се нарича апаратно управляван, а създаваният поток от данни – канал за пряк достъп до паметта. Самата схема се нарича контролер на каналите за пряк достъп до паметта – DMA (Direct Memory Access). 30 Организация на изчислителния процес Архитектурни разновидности на входно-изходната система Системи с канални връзки Входно-изходна система с канална организация 31 Организация на изчислителния процес Понятие за интерфейс Включването на външните устройства към компютърната система (към съответния контролер) се осъществява чрез интерфейс за вход-изход - сложна съвкупност от физически линии и шини за връзка, логически и електронни схеми, чрез които се осъществява процесът на обмен по строго определени предварителни уговорки, концепции и алгоритми. Хардуерен състав на интерфейса 32 Организация на изчислителния процес Понятие за интерфейс И в двете устройства се съдържа апаратура, която се отнася към интерфейса и която осигурява на ответната страна необходимата съвместимост. 1. Информационна съвместимост - съгласуваност във взаимодействията между функционалните елементи на системата, които трябва да са в съответствие с определена съвкупност от логически условия. Тези логически условия определят: · логическата структура на интерфейсната част на всяко устройство; · протокола на интерфейса - за целта в интерфейсната част се съдържа управляващ автомат, реализиращ протокола за обмен; · метода за кодиране на данните и техния формат, командите, адресната информация и информацията за състоянието; · времевите параметри и съотношения на управляващите сигнали, както и ограниченията върху тяхната форма и взаимодействие. 33 Организация на изчислителния процес Понятие за интерфейс Съвместимост 2. Електрическа съвместимост - съгласуваност между статическите и динамическите параметри на електрическите сигнали с отчитане на пространствените ограничения при техническата реализация на елементите в интерфейсната част на устройствата. Условията на електрическата съвместимост определят: · типа на приемо-предаващите елементи ; · съотношенията между логическите и електрическите сигнали и границите на тяхното изменение ; · коефициентите за натоварване по изход и по вход на приемопредаващите елементи и допустимите стойности на товарно съпротивление в линиите за свързване на устройствата ; · схемата за съгласуване на линиите, тяхната допустима пределна дължина и подредбата им в съединителните елементи (съединители) ; · изискванията към захранването, към защитата от шум и към заземяването. 34 Организация на изчислителния процес Понятие за интерфейс Съвместимост 3. Конструктивна съвместимост - съгласуваност между конструктивните елементи на интерфейса, които са предназначени да осигурят механическия контакт на електрическите съединения, както и механическата подмяна на схемни елементи и блокове в устройствата, ако такава се предвижда. Условията за конструктивна съвместимост определят: · типа на съединителните елементи ; · конструкцията на печатната платка, на носещата рамка и на стойката за монтиране ; · конструкцията на кабелното съединение. 35 Организация на изчислителния процес Понятие за интерфейс Интерфейсът се проектира така, че да осигурява: 1. Работа със стандартизирани формати на данните; 2. Работа със стандартизирано множество от управляващи сигнали; 3. Независимост от командната система на процесора; 4. Независимост от принципа за представяне на информацията във външното устройство. 36 Организация на изчислителния процес Понятие за интерфейс Интерфейсът на външното устройство се определя от физическия принцип на запаметяване и характера на използвания носител на информация. Видове интерфейси: · За последователно предаване (бит след бит). Физическата даннова връзка представлява един проводник. Примери за реални интерфейси, организирани на този принцип: COM, тип USB, тип FireWire и интерфейсите на локалните и на глобалните компютърни мрежи. · За паралелно предаване, например, 8 бита (1 байт) едновременно, т.е. физическата връзка е реализирана чрез множество паралелно положени проводници. Типичен пример е паралелният интерфейс за присъединяване на принтер (LPT-порт, 8 бита) и още интерфейс от тип АТА (16 битов), SCSI (8 или 16 бита), интерфейс на PCI-шина (32 или 64 битова). 37 Организация на изчислителния процес Понятие за интерфейс Видове интерфейси: •Асинхронни - Данновата връзка пренася единствено логически стойности на отделните битове. Тяхното правилно възприемане в приемната страна се основава на предварителни конструктивни съглашения. Последните се отнасят до възможните за предавателя и за приемника синхронизиращи честоти, които следва да се еднакви. Освен това се уговаря и логиката (алгоритъма) за предаване, която приемникът следва да съблюдава. Тази логика обикновено се нарича протокол. 38 Организация на изчислителния процес Понятие за интерфейс Видове интерфейси: •Синхронни - Синхронни са онези системи, които освен логическите стойности на предаваните битове използват някаква система от сигнали, с чиято помощ ги “опаковат” и пренасят. Характерно за този тип интерфейси е, че данните се предават на големи блокове (няколко хиляди бита). 39 Организация на изчислителния процес Понятие за интерфейс Видове интерфейси: • Вътрешни - Вътрешните са известни под името системни или комуникационни шини, или просто шини. • Външни - Външните носят наименованието на съответния стандарт – например RS-232, SCSI (Small Computer Systems Interface), USB (Universal Serial Bus), FireWare (стандарт IEEE 1394) и др. 40 Организация на изчислителния процес Понятие за интерфейс Видове интерфейси: Според режима за предаване на информацията интерфейсите се определят: •С еднопосочно предаване (симплекс); •С двупосочно, редуващо се по една обща връзка предаване (полудуплекс); •С двупосочно едновременно предаване (пълен дуплекс). 41 Организация на изчислителния процес Методи за управление на обмена Програмно управляван обмен: • Нефорсиран програмен обмен - входно-изходният процес, иницииран от текущата програма, се управлява от процесора, чрез изпълнение на процедура за въвеждане-извеждане. При изпълнение на тази процедура външните устройства са пасивни участници в процеса. За това какво става в тях, процесорът е длъжен сам да разбере, след прочитане и анализ на тяхната дума за състоянието. 42 Организация на изчислителния процес Методи за управление на обмена Програмно управляван обмен: • Форсиран програмен обмен - инициираната от програмата входно-изходна процедура стартира входно-изходния процес като такъв, но непосредствената входно-изходна операция се изпълнява по инициатива на външното устройство, което подава за целта заявка за прекъсване. Има се предвид операция на команда INPUT или OUTPUT. Обменът по същество се реализира в рамките на обслужващата прекъсването програма. 43 Организация на изчислителния процес Методи за управление на обмена Най-характерното и за двете разновидности на програмно управляемия обмен е това, че порцията данни, която се предава между основната памет и външното устройство, минава през посредника, т.е. през регистър на процесора. 44 Организация на изчислителния процес Методи за управление на обмена Апаратно управляван обмен - прилага се за управление на входно-изходни операции с високоскоростни външни устройства, за които програмната процедура за обмен е твърде бавна, вследствие на което е вероятна загубата или пропускът на информация. По същество при този обмен процесорът се изключва (спира) и функциите на процедурата за обмен се поемат от апаратни средства, осигуряващи изискваната скорост. Така тези средства осъществяват пряка (директна) връзка между основната памет и външното устройство. Става дума за (споменатите вече) каналите за пряк достъп до паметта. В този смисъл апаратно управляваният обмен е обмен без посредник. 45 Организация на изчислителния процес Методи за управление на обмена Апаратно управляван обмен В процеса въвеждане-извеждане на различни нива е необходима синхронизация в действията между приемащия и предаващия информацията. В системи с непосредствени връзки грижата за това има процесорът, а в системи с канални връзки - всички йерархични елементи в управлението на канала. 46 Организация на изчислителния процес Съвременна архитектура на входно-изходната система 47 Организация на изчислителния процес Видове входно-изходни архитектури Архитектурата на дънните (системните) платки се развива главно под влиянието на концепциите за входно-изходен обмен в процесорните схеми от една страна и на концепциите за входно-изходен обмен в периферните системи от друга страна. Разновидностите са три и често взаимно се припокриват: 1. Шинно-мостова архитектура ; 2. Хъбова архитектура ; 3. Архитектура “HyperTransport” (HT). 48 Организация на изчислителния процес Видове входно-изходни архитектури За повече подробности: http://tyanev.com/home.php?s=368&lang=bg&mid=18& mod=1&b=12 5.5. Организация на входно-изходната система 5.5.1. Входно-изходни операции 5.5.2. Организация на входно-изходния обмен 5.5.2. Продължение 1 5.5.2. Продължение 2 5.5.3. Съвременна архитектура на входно-изходната система 5.5.3.1. Шинно-мостова архитектура на входно-изходната система. Архитектура PCI Express. Кодиране 8b/10b 5.5.3.2. Хъбов архитектура на входно-изходната система 5.5.3.3. Архитектура "Hyper Transport" на входно-изходната система 49 50 Организация на изчислителния процес Видове входно-изходни архитектури Шинно-мостова архитектура 51 Организация на изчислителния процес Видове входно-изходни архитектури Хъбова архитектура В хъбовата архитектура на системните платки северният мост (North Brodge) започва да се нарича Memory Controller Hub(MCH). В същото време, южният мост South Bridge, започва да се нарича I/O Controller Hub (ICH). Връзката между двата хъб-компонента е специална – високоскоростен хъб-интерфейс. Хъбовата архитектура на входно-изходната система притежава следните предимства: •Увеличена пропускателна способност; •Снижено натоварване на системната PCI-шина; •По-проста монтажна схема. 52 Организация на изчислителния процес Видове входно-изходни архитектури Хъбова архитектура 53 Организация на изчислителния процес Видове входно-изходни архитектури Хъбова архитектура 54 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. 55 Организация на компютъра 1 Лекция 15: Организация на управлението 2 Съдържание Командният цикъл като основен алгоритъм за функциониране на управляващото устройство Синхронен и асинхронен метод на управление Управляващи устройства с програмно закрепена логика Логическа структура на УА с принудителна и с естествена адресация Методи за кодиране на управляващите сигнали 3 Организация на управлението Общи положения Изчислителният процес е структурен и неговите елементи на най-ниско ниво са микрооперациите. Микрооперациите се изпълняват от логическите възли на отделните устройства. Микрооперациите, които са функции на логическите възли, се активират чрез управляващите сигнали. Управляващите сигнали са резултат от изпълнението на дадена микропрограма, която е вложена в управляващия автомат на съответното операционно устройство. 4 Организация на управлението Общи положения Микропрограмата, която представя функционирането на операционното устройство във времето, се превръща по време на своето изпълнение в последователност от управляващи сигнали. Управляващите сигнали обикновено се появяват в началото на всеки текущ такт и изчезват с началото на следващия такт. Управляващите сигнали (УС) представляват правоъгълни импулси, определяни като логически сигнали. Те се интерпретират като логически, защото, като микрозаповеди, имат само две значения: УС = 0 - няма заповед (не се изпълнява микрооперация) УС = 1 - има заповед за микрооперация 5 Организация на управлението Общи положения Съвкупността от едновременно подадените в рамките на текущия такт управляващи сигнали се нарича микрокоманда, а последователността от микрокоманди – микропрограма. Последователността от управляващи сигнали (от микрокоманди) се реализира от специален клас логически устройства, които се наричат крайни автомати или още автомати с памет, или просто управляващи автомати. С течение на времето, при функциониране, управляващият автомат се превключва последователно от едно вътрешно състояние към друго. 6 Организация на управлението Общи положения Всеки управляващ автомат има едно вътрешно състояние, в което престоява обикновено най-дълго време и то се нарича начално (изходно) състояние S(0). След изпълнение на своята функция управляващият автомат се оказва автоматично отново в изходното си състояние. 7 Организация на управлението Общи положения Удържането на автомата неограничено дълго време в изходно състояние се осигурява от зацикления условен преход, както е показано на фигурата. От това състояние той може да бъде изваден само чрез външен сигнал, с цел да реализира своята функция за пореден път. Така изходното (началното) състояние може да се определи като състоянието, в което се очаква изпълнението на определени начални условия - сигнал “Пуск”. 8 Организация на управлението Синхронен и асинхронен метод за управление Причината за изчезване на даден управляващ сигнал, т.е. за превключване на управляващото устройство от едно състояние в друго може да бъде само една - завършване на преходния процес на превключването в текущо управлявания възел и установяване на всичките му изходи в истинните логически стойности! Когато за този факт управляваният възел съобщава чрез оповестяващ сигнал сам, се говори, че осъществяваното от автомата управление е асинхронно. Когато за този факт се съди по априорни оценки на бързодействието, постигани чрез допълнителен външен сигнал (обикновено периодичен), се говори, че управлението е синхронно. Управлението е синхронно именно с този външен периодичен сигнал. 9 Организация на управлението Асинхронен и синхронен метод за управление асинхронно синхронно управление Може да се използва и синхронно-асинхронен метод за управление. 10 Организация на управлението Синхронен и асинхронен метод за управление Основният и масово прилаган метод за управление е синхронният. За реализиране на този метод в структурата на автомата се въвежда тактов генератор, за който се говори, че е двигателят на всяка цифрова система. Тактовите импулси, които се наричат още синхронизиращи, фиксират моментите на превключване в логическите схеми, които съответно се наричат синхронни. 11 Организация на управлението Синхронен и асинхронен метод за управление Крайният автомат, който интерпретира микропрограмата на операционното устройство, се нарича микропрограмен автомат. Синтезираните по съответната методика управляващи автомати се определят като автомати с апаратно закрепена логика. Логиката на изчисление на управляващите сигнали, които се генерират от схемата на управляващия автомат, е фиксирана твърдо в логическите схеми и не може да бъде променяна. Препрограмирането, т.е. промяната на алгоритъма на функциониране или добавянето на нови функции в структурата на автомата, е свързано с неговото физическо разрушаване. 12 Организация на управлението Управляващи автомати с програмно закрепена логика Управляващите автомати могат да бъдат синтезирани въз основа на принципа за програмно управление. Според този принцип при синтеза се изхожда от алгоритмичната същност на управляващия автомат. Алгоритмичната същност се изразява чрез блоксхемата на микропрограмата, в която еднозначно е изразено управлението. В този смисъл и според посочения принцип, цялата последователност от микрокоманди може да бъде запoмнена в паметта на автомата, където алгоритмичните преходи се превръщат в адресни преходи. С други думи, логиката на алгоритмичните преходи се превръща в логика на адресните преходи. 13 Организация на управлението Управляващи автомати с програмно закрепена логика Обща структура на управляващ автомат с програмно закрепена логика 14 Организация на управлението Управляващи автомати с програмно закрепена логика Микропрограмната памет (МПП) има поне толкова клетки, колкото са микрокомандите в блок-схемата на микропрограмата. Текущо изпълняваните микрооперации в операционното устройство се инициират от управляващите сигнали {УС} на текущата микрокоманда, която в продължение на текущия такт се съхранява в регистъра на микрокомандата Рг.МК. 15 Организация на управлението Управляващи автомати с програмно закрепена логика Алгоритмичният преход към следващата микрокоманда се реализира чрез адресния механизъм, заложен в схемата за формиране на адреса за преход СФАП. Формираният от тази схема адрес Адр отваря съответната клетка в микропрограмната памет, откъдето се извлича следващата микрокоманда. Схемата СФАП формира адреса за преход според методите за адресиране. 16 Организация на управлението Управляващи автомати с програмно закрепена логика Тъй като в паметта на управляващия автомат се съдържа цялата микропрограма, той се нарича микропрограмен управляващ автомат със съхранена микропрограма (МПУА), а най-често се нарича просто микропрограмен. Обикновено тези автомати са синхронни. Това означава, че появата (записът) на микрокомандите в Рг.МК е синхронна с тактовите импулси. Всяка микрокоманда престоява в този регистър поне един период на тактовата последователност, което определя и времето (продължителността) за активност на управляващите сигнали. 17 Организация на управлението Управляващи автомати с програмно закрепена логика Основна задача на микрокомандата е да подаде управляващите сигнали към операционното устройство. Ето защо една нейна част е предназначена за изобразяване на множеството на управляващите сигнали {УС}. Тази част се нарича операционна. Освен тази задача, по силата на принципа за програмно управление, микрокомандата има за задача още да управлява адресния преход към следващата (според алгоритъма) микрокоманда. Ето защо в нейната структура има още и адресна част. Така структурата на микрокомандата съответства на структурата на машинната команда, което е следствие от принципа на програмно управление. 18 Организация на управлението Управляващи автомати с програмно закрепена логика За управляващия автомат по-важна е задачата за определяне на адреса за преход към следващата микрокоманда. От гледна точка на микропрограмния софтуер, в този смисъл микрокомандите могат да се интерпретират единствено и само като команди за управление на прехода – безусловни или условни. 19 Организация на управлението Управляващи автомати с програмно закрепена логика Тъй като функциите на управляващия автомат най-често са постоянни и непроменящи се, то съдържанието на паметта на автомата е постоянно, откъдето следва, че тя може да се реализира като постоянна – от тип ROM. Съдържанието на паметта на автомата може винаги да бъде сменено, без да се променя нещо в структурата му, което означава, че апаратната реализация не зависи от алгоритмичния "пълнеж" на паметта. Смяната на съдържащата се в паметта микропрограма с друга означава смяна на функцията – нещо, което е невъзможно за автоматите с твърдо закрепена логика. Ето защо МПУА се наричат още препрограмируеми автомати. 20 Организация на управлението Логическа структура на УА с принудителна адресация Структура на микрокомандата Примерна логическа структура КУ управлява MUX1 по правилото: if (КУ) then GO TO A2 else GO TO A1 end if 21 Организация на управлението Логическа структура на УА с принудителна адресация Двуадресната структура на микрокомандата позволява изключително ефективно използване на адресното пространство. При принудителния метод на адресиране следващата микрокоманда може да се намира в произволна клетка, а това позволява максимално уплътняване на паметта. Наличието на два адреса в структурата на микрокомандата не винаги е необходимо. В случаите, когато тя реализира безусловен алгоритмичен преход например, съдържанието на полето А2 е без значение. В този смисъл микрокомандата неефективно използва клетката, в която се намира, тъй като полезната информация заема само част от нея. В това се състои недостатъкът на описаната структура. 22 Организация на управлението Логическа структура на УА с принудителна адресация Едноадресна структура на микрокомандата • Вторият адрес не присъства в микрокомандата, а, когато е необходим, се изчислява като функция на първия: А2=f(A1). • Една от най-лесните за апаратна реализация функционални зависимости е : т.е. адресът за преход Апр е равен на А1 при безусловен преход, тъй като тогава КУ=0, или е равен на сумата (А1+1), тъй като тогава КУ=1. 23 Организация на управлението Логическа структура на УА с принудителна адресация Примерна логическа структура Когато микрокомандата е за условен преход, чрез полето Х в мултиплексора на оповестяващите сигнали МUХ, се избира за проверка съответният оповестяващ сигнал. Ако последният не е активен, то КУ=0 и тогава адресът за преход е Апр=А1. Ако сигналът е активен, то КУ=1 и Апр=(А1+1). • Тази конструктивна реализация означава, че, когато при програмиране се употребява микрокомандата за условен преход, в адресното пространство е необходима свободна двойка съседни клетки. Ако в адресното пространство не могат да се намерят два съседни свободни адреса, условният преход не може да бъде реализиран. 24 Организация на управлението Логическа структура на УА с принудителна адресация Блок-схема на управляващ алгоритъм на микропрограмата за събиране и изваждане Формат на микрокомандата Структура на мултиплексорите: МUХ1 - (2х3) към (1х3); МUХ2 - 4 към 1. Входовете на МUХ2 и съответните им комбинации: Х=00 : “Пуск” ; Х=01 : КОП ; Х=10 и Х=11 : Нула. 25 Организация на управлението Логическа структура на УА с принудителна адресация Формат на микрокомандата Х=00 : “Пуск” ; Х=01 : КОП ; Х=10 и Х=11 : Нула. Код (текст) на микропрограмата: 26 Организация на управлението Логическа структура на УА с принудителна адресация Формат на микрокомандата Код (текст) на микропрограмата: 27 Организация на управлението Логическа структура на УА с естествена адресация • Адресирането на микрокомандите по принципа на тяхното естествено подреждане в паметта на управляващия автомат позволява те да се превърнат в безадресни. • Управляващият автомат трябва да работи с микрокоманди, които имат различна структура – такива, които ще подават само управляващи сигнали и такива, които ще реализират различните преходи. За различаване на двата вида микрокоманди в структурата им се включва отделно поле за код на вида – микрокоманден код (МКК). Кодирането е следното: МКК=1 – изпълнима микрокоманда (за безусловен преход); МКК=0 – микрокоманда за управление на прехода (за условен преход). 28 Организация на управлението Логическа структура на УА с естествена адресация • Останалата част от структурата на мокрокомандата се интерпретира според кода ѝ, както следва: • Адресната част на микрокомандата за управление на прехода при метода на естественото адресиране има структурата: където с Х е означен кодът за избор на условието за преход, с А е означен адресът за преход. 29 Организация на управлението Логическа структура на УА с естествена адресация • Адрес за преход при "изпълнима" микрокоманда: Рг.АМК := (Рг.АМК) + 1 Реализацията на този закон изисква брояч. 30 Организация на управлението Логическа структура на УА с естествена адресация • Ако извлечената микрокоманда е от вида "за преход", то адресът за преход се формира според стойността на кода на проверяваното условие КУ и записаната в полето А на микрокомандата стойност. Възможни са следните случаи: 1) Когато е употребен код за безусловен преход (БП), Х=БП, то винаги КУ=1 и адресният регистър получава съдържанието: Рг.АМК := А 2) Когато е употребен код за условен преход (УП), Х=УП, то адресът за преход е функция от стойността на кода на условието КУ, както следва: 31 Организация на управлението Логическа структура на УА с естествена адресация 32 Организация на управлението Превключвания в МПУА с естествена адресация 33 Организация на управлението Микропрограма в МПУА с естествена адресация 34 Организация на управлението Оптимизация на операционната част на микрокомандата • Хоризонтално кодиране - двоична комбинация от стойностите на управляващите сигнали в операционната част на микрокомандата (за всеки управляващ сигнал в операционната част се отделя един разряд) Предимства: Позволява изобразяването на повече от един активен сигнал, т.е. позволява паралелно изпълнение на много микрооперации, стига те да са възможни в структурата на операционното устройство. По този начин хоризонталното кодиране позволява да се реализира в пълна степен бързодействието, което конструкторът на операционното устройство е постигнал в алгоритъма на неговото функциониране. 35 Организация на управлението Оптимизация на операционната част на микрокомандата • Хоризонтално кодиране - двоична комбинация от стойностите на управляващите сигнали в операционната част на микрокомандата Недостатъци: Операционната част на микрокомандата е твърде голяма по дължина. Голяма част разрядите в операционната част съдържат неактивни управляващи сигнали. 36 Организация на управлението Оптимизация на операционната част на микрокомандата Ако бързодействието на управляващия автомат не е от съществено значение за неговите функции, то като първостепенен критерий при синтеза на формата на микрокомандата може да остане минимизирането на нейната операционна част. Това означава минимизиране на общите апаратни разходи при реализация на автомата. 37 Организация на управлението Оптимизация на операционната част на микрокомандата Методът, при който в операционната част на микрокомандата не се изобразява множеството управляващи сигнали, а неговият двоичен код, се нарича вертикално кодиране. Всяка микрокоманда може да заповядва само една микрооперация, т.е. да подава само един управляващ сигнал, тъй като в нейната операционна част може да бъде записана само една кодова комбинация. Това означава, че всяка комбинация от едновременно възможни за изпълнение микрооперации, ще се разпадне на няколко последователни, които ще се подредят вертикално в блок-схемата на алгоритъма. С други думи този метод изисква декомпозиция на операционните блокове. 38 Организация на управлението Оптимизация на операционната част на микрокомандата Вертикално кодиране Вертикална декомпозиция на микрокомандата 39 Организация на управлението Оптимизация на операционната част на микрокомандата Вертикално кодиране Предимства: • Свободните кодови комбинации могат да се използват за реализиране на микрокоманди без управляващи сигнали, т.е. на празен такт (какъвто в посочения алгоритъм е необходим). • Съставянето на микропрограмата в този случай на кодиране не зависи от структурата на управляващия автомат, което означава, че то може да бъде приложено както в структури с принудително адресиране, така и в структури с естествено адресиране, а така също и в смесени. 40 Организация на управлението Оптимизация на операционната част на микрокомандата Вертикално кодиране Недостатъци: Снижено бързодействие; Изисква допълнителен логически възел дешифратор 41 Организация на управлението Оптимизация на операционната част на микрокомандата Смесени методи за кодиране на управляващите сигнали: - вертикално-хоризонтален - хоризонтално-вертикален. 42 Организация на управлението Оптимизация на операционната част на микрокомандата • При вертикално-хоризонталния метод за кодиране принадлежността към съответното подмножество j се кодира вертикално, а поредният номер на елемента r, се кодира хоризонтално. В полето ОЧ на микрокомандата се определят две подполета - едно за изобразяване на номера на подмножеството и второ за изобразяване на елементите на подмножествата. Структура на операционната част на микрокоманда при вертикално-хоризонтално кодиране 43 Организация на управлението Оптимизация на операционната част на микрокомандата Формиране на управляващите сигнали при вертикалнохоризонтално кодиране 44 Организация на управлението Оптимизация на операционната част на микрокомандата При хоризонтално-вертикалния метод за кодиране, принадлежността към съответното подмножество j се кодира хоризонтално, а поредният номер на елемента r, се кодира вертикално. Това означава, че в полето на операционната част на микрокомандата се определят толкова подполета, колкото са подмножествата, тъй като при хоризонталното им кодиране те трябва да бъдат изобразени едновременно. Във всяко подполе за изобразяване на подмножество се съдържа код на активния в момента елемент, представляващ управляващ сигнал. 45 Организация на управлението Оптимизация на операционната част на микрокомандата Структура на операционната част на микрокоманда при хоризонтално-вертикално кодиране 46 Организация на управлението Оптимизация на операционната част на микрокомандата Дешифриране на управляващите сигнали при хоризонтално-вертикално кодиране 47 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] Глава 7. ОРГАНИЗАЦИЯ НА УПРАВЛЕНИЕТО • 7.1. Общи положения • 7.2. Логическа структура на управляващи автомати с програмно закрепена логика • 7.2.1. Микропрограмен автомат с принудителна адресация • 7.2.2. Микропрограмен автомат с естествена адресация • 7.3. Оптимизация на операционната част на микрокомандата • 7.4. Оптимизация на адресната част на микрокомандата [2]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. 48 Организация на компютъра Хорариум: 2л. + 2л.у. 1 Лекция 16: Организация на запомнящата система 2 Съдържание Йерархична организация на компютърната запомняща система Структура на буферните памети за команди и за данни Организация на обмена между буферната и първичната памет 3 Организация на запомнящата система Йерархична структура на компютърната запомняща система Компютърната запомняща система се изгражда като йерархична система, в която по възможно найоптимален начин се съчетават различни по тип запомнящи устройства - както такива с високо бързодействие, имащи висока цена и в същото време не особено голям обем, така и запомнящи устройства със средно и ниско бързодействие, но с голям обем и ниска цена. 4 Организация на запомнящата система Йерархична структура на компютърната запомняща система 5 Организация на запомнящата система Йерархична структура на компютърната запомняща система 6 Организация на запомнящата система Йерархична структура на компютърната запомняща система Най-близо до операционната част на процесора, т.е. до АЛУ, се намира регистровата памет. Съвкупността от регистри е предназначена да обслужва вътрешните потребности на процесора за съхраняване на данни. Функционалното предназначение на отделните регистри може да бъде фиксирано или нефиксирано. Регистровата памет обикновено се нарича регистров файл или още просто регистри с общо (и/или специално) предназначение(РО(С)П). 7 Организация на запомнящата система Йерархична структура на компютърната запомняща система Наборите от регистри в един процесор могат да бъдат няколко и да обслужват различни негови функции и потребности. Регистрите могат да бъдат достъпни или недостъпни за потребителя. 8 Организация на запомнящата система Йерархична структура на компютърната запомняща система По-надолу в йерархията на паметта стои буферната памет (БП), а после следват основната (първичната) памет (ОП); вторичната (външната) памет (ВП) и архивната памет (АП). 9 Организация на запомнящата система Йерархична структура на компютърната запомняща система Буферната памет има за задача да буферира информационния поток между две нива в йерархическата система, като при това съгласува различните скорости за достъп в различните нива на паметта. Буферната памет е междинно, спомагателно и съгласуващо звено и като такова следва да остава скрито за основните нива и неговото функциониране да не зависи от потребителя. 10 Организация на запомнящата система Йерархична структура на компютърната запомняща система В съвременните процесори буферната памет представлява силно развита и сложно организирана йерархична подсистема, съдържаща 3 и повече нива. Откъм нивото на основната памет, във връзка с възможностите на съвременните интегрални технологии, се различават "вътрешна" и "външна" буферни памети. В литературата като цяло буферната памет обикновено се нарича кеш-памет, т.е. скрита памет. 11 Организация на запомнящата система Йерархична структура на компютърната запомняща система Първичната памет е бавна в сравнение със скоростите в процесора. Високоскоростната преработката на данни в процесора може реално да бъде забавена от бавния процес за доставка на нови данни от паметта. За да се намали ефектът от това несъответствие, между процесора и основната памет се въвежда буферната памет. Идеята е проста и се основава на разбирането, че буферната памет може да играе роля на посредник между двете нива, който при необходимост поема управлението върху трансфера на данните. Ето защо елементната база за реализация на буферната памет трябва да бъде с високо бързодействие. 12 Организация на запомнящата система Йерархична структура на компютърната запомняща система В реалните системи високата скорост се осигурява от една страна чрез бързодействащи схеми, от друга страна чрез разполагането им на много малко разстояние от процесора (включително чрез разполагане върху кристалната подложка на самия процесор) и на трето място чрез специални структурни решения. Целият механизъм (структурните решения) трябва да бъде скрит от потребителя (или още от процесора), който разглежда паметта като напълно хомогенно устройство. Това е така, защото при изпълнение на основна операция (четене или запис) машинната команда не разполага с нищо друго освен с адреса на операнда. Операциите по обмен с буферната памет са напълно автоматизирани, т.е. тяхното управление е апаратно. 13 Организация на запомнящата система Йерархична структура на компютърната запомняща система Механизмът, по който се обслужват операциите на обмен между процесора и първичната памет при наличието на буферна памет, се основава на достъп от вида FIFO, или на асоциативен достъп. 14 Организация на запомнящата система Йерархична структура на компютърната запомняща система Основната памет, главното изискване към която е да бъде с възможно по-голям обем, се изгражда от поевтини запомнящи схеми, най-често динамични, т.е. DRAM. В тази памет, наричана още оперативна, се съдържат данните и командите на всяка активна потребителска програма. Основната памет изпълва физически адресното пространство на процесора. 15 Организация на запомнящата система Йерархична структура на компютърната запомняща система Следващото ниво в йерархията на запомнящата система е външната памет. Външната памет се характеризира със своята специална реализация. Носители на информация най-често са магнитни, от които снемането, както и поставянето на информация, е свързано с механично движение. Процесите на запис и четене от такива носители се реализират върху специално проектирани устройства, т.нар. външни запомнящи устройства (ВЗУ). 16 Организация на запомнящата система Йерархична структура на компютърната запомняща система Паметта, реализирана чрез външните запомнящи устройства, има много голям обем (обикновено надхвърля стократно обема на основната памет). От трета страна скоростта на изпълнение на операции от тип четене и запис в тази памет е много по-ниска от тази в основната памет, така че проблемът дисбаланс в скоростите на обмен между тези две нива е реален и той се решава с помощта на вмъкване между двете нива на буферна памет. 17 Организация на запомнящата система Йерархична структура на компютърната запомняща система Запомняща система, в организацията на която се използва специална концепция и механизъм, с помощта на които значително се разширява обемът на основната памет, чрез разширяване на адресното пространство на процесора върху външни запомнящи устройства, се нарича виртуална памет. Адресното пространство на виртуалната памет се дефинира чрез значително удължаване на адресното поле. Дългият адрес определя такъв обем на паметта, който практически може да се приеме за неограничен. Използвайки това адресно поле в качеството на абстрактен адрес, програмистът разглежда запомнящата система като абстрактна и хомогенна памет. Практически се приема, че той разполага с неограничен брой клетки за съхраняване на информация. 18 Организация на запомнящата система Йерархична структура на компютърната запомняща система Йерархичната запомняща система се характеризира с различни и сложни алгоритми за обмен на информация между различни по вид запомнящи устройства, реализиращи различните нива на системата. За да се организира функционирането на такава система, се прилага принципът за локално обръщение към ЗУ. Същността на този принцип се състои в това, че разстоянието между областите в паметта, между които се извършва активен обмен, трябва да бъде сравнително малко. Областите, които имат по-активен обмен, следва да се намират в побързи запомнящи устройства. 19 Организация на запомнящата система Йерархична структура на компютърната запомняща система Паметта се структурира с помощта на единица за обмен, която се нарича блок или пакет. Между отделните нива в системата на паметта информацията се движи опакована в тези единици за обмен, т.е. по блокове (пакети). Прехвърлянето на един блок от едно ниво в друго ниво може да бъде извършено ефективно, ако обемът на блока е избран правилно. Блоковете могат да бъдат определени както с фиксиран, така и с променлив обем. Все пак съществуват голям брой различни компютърни конфигурации, които обменят данни на ниво адресируема единица, т.е. клетка. Такива са обикновено системите с поелементарна процесорна архитектура. 20 Организация на запомнящата система Йерархична структура на компютърната запомняща система Управлението на паметта изисква: а) Система за управление на адресното пространство; б) Система за съгласуване на обмена на блокове между отделните нива; в) Система за избор на блокове за подмяна, намиращи се в по-високото ниво и загубили активност. 21 Организация на запомнящата система Йерархична структура на компютърната запомняща система Системата за управление на адресното пространство води на отчет незаетите с полезна информация области в паметта и реагира по подходящ начин при заявки за достъп в тези области. Обикновено когато блоковете от полезна информация са с фиксирана дължина, управляването на тяхното движение не създава трудности при намиране на свободна област и при преподреждане, с цел обединяване на свободните области. Такива трудности възникват, когато блоковете са с променлива дължина. 22 Организация на запомнящата система Йерархична структура на компютърната запомняща система Системата за съгласуване на обмена на блокове между отделните нива управлява предаването на блоковете към по-високото ниво в паметта. Системата е длъжна да прехвърли блок с полезна информация от по-ниско към по-високо ниво по силата на някакво условие. Условията, които се използуват, са формулирани така: а) Само в онзи момент, когато съдържащата се в блока информация стане необходима; б) Само когато настъпи време за използване на информацията, определено отнапред, с оглед на предварителна подготовка преди необходимия момент. 23 Организация на запомнящата система Йерархична структура на компютърната запомняща система Системата за избор на блокове за подмяна, намиращи се в по-високото ниво, загубили активност, организира последователността от нуждаещите се за прехвърляне блокове от високите към ниските нива на паметта. Такава необходимост се появява в случаите, когато втората система не може да осъществи прехвърляне поради липса на свободни области за блок, движещ се от по-ниско към по-високо ниво. 24 Организация на запомнящата система Йерархична структура на компютърната запомняща система Алгоритмите за управление на паметта зависят от общата концепция на конструкторите за организация на адресното пространство на даден процесор. 25 Организация на запомнящата система Йерархична структура на компютърната запомняща система Регистрова памет Регистровата памет се реализира върху кристалната подложка на процесора. Регистрите, които са свързани със структурата и с обслужването на АЛУ, обикновено имат размерите на разрядната мрежа. Наборът от регистри с общо предназначение може да бъде организиран като запомнящо устройство с произволен достъп или като запомнящо устройство с последователен достъп (например в АЛУ за работа с плаваща запетая). Обемът на отделните набори регистрова памет е малък, найчесто в пределите максимум до 128 клетки за тези с общо предназначение или в обем, определен според функционалното предназначение и вида на устройството в чиято структура се намират. 26 Организация на запомнящата система Йерархична структура на компютърната запомняща система Буферна памет Ролята и мястото на буферната памет в йерархията на запомнящата система е на посредник между две съседни нива, чиято задача е да “изглажда” конфликтите при обмена на данни между тях. Два информационни потока – команден (еднопосочен) и даннов (двупосочен). Главната задача на буферирането е да съгласува високата скорост на процесора с ниската скорост на обмен с паметта. Във връзка с предназначението си, а именно да повишат производителността на паметта, буферните запомнящи устройства се наричат още свръхоперативни (СОЗУ). 27 Организация на запомнящата система Йерархична структура на компютърната запомняща система Буферна памет – буфери за данни В непосредствена близост до паметта могат да се изграждат еднопосочни буфери, които съдържат данни, очакващи записа си и прочетени данни, очакващи своето използване. Според тази интерпретация може да се говори за буфери за запис и за буфери за четене. Този тип буфери представляват просто опашки, т.е. тяхната логическа структура се определя от дисциплината FIFO. 28 Организация на запомнящата система Йерархична структура на компютърната запомняща система Буферна памет Принципът на буфериране се прилага: • на процесорно ниво, в това число и на микропрограмно ниво, • в структурите на интегралните схеми на RAMпаметта, • при управление на входно-изходната система и обмена на данни с външните устройства, • в многопроцесорните системи и комплекси, • в компютърните мрежи, • при реализация на множество софтуерни проблеми • и в много др. 29 Организация на запомнящата система Йерархична структура на компютърната запомняща система Буферна памет В буферната памет, която посредничи между процесора и основната памет, се реализират по един или друг начин следните идеи: • За изпреварващото извличане на данни и на машинни команди; • За предварителен анализ на машинните команди; • За “предсказване” на алгоритмичните преходи; • За спекулативното изпълнение на машинните команди ; • За планирано изменение реда на изпълняващите се команди; • За множеството FIFO-буфери (опашки), поемащи данновите потоци включително и на микрокомандно ниво. 30 Организация на запомнящата система Йерархична структура на компютърната запомняща система Буферна памет Алгоритми за управление на особените ситуации – принудително изпразване на опашките, стратегиите за избор и изхвърляне на блокове от кеш-паметите; В тази част се реализират алгоритмите за конвейерно управление на изчислителния процес и алгоритмите за управление на суперскаларността и многофункционалното апаратно насищане, с помощта на което може да се реализира естественият паралелизъм на последователно запрограмираните операции; Структурите с няколко процесорни ядра също следва да се обслужват от буферната памет; 31 Организация на запомнящата система Йерархична структура на компютърната запомняща система Буферна памет Средствата и алгоритмите за реализация на виртуалната памет, които имат пряко отношение към придвижването на информацията по всички нива на йерархичната запомняща система; Допълнителни утежняващи обстоятелства, свързани с факта, че всичко, ставащо по различните нива на буферната система, протича на фона на непрестанния поток от всевъзможни прекъсвания, от прекъсвания в контролни точки (при трасиране), от грешки поради лошо предсказани преходи и всички извънредни ситуации в работата на процесора, които той следва да успява да обработи. 32 Организация на запомнящата система Йерархична структура на компютърната запомняща система Буферна памет Тази памет представлява сложна йерархична структура, и тя функционира като невидима за програмиста. Последното означава, че той не разполага със средства за нейното управление, т.е. той не може да й повлияе. 33 Организация на запомнящата система Буфериране на машинни команди Ходът на изчислителния процес зависи от реално изпълняващите се алгоритмични преходи и в частност от машинните команди за управление на преходите. Това означава, че предварителното извличане на командите трябва да се извършва в съответствие с хода на програмата, а не с техния последователен ред. От тук следва изводът, че извличането на машинните команди следва да бъде съпроводено с техния предварителен анализ. Целта на предварителния анализ на всяка машинна команда е да се разпознае нейната принадлежност към групата за управление на прехода. 34 Организация на запомнящата система Буфериране на машинни команди Възможностите са две – ако тя не е от тази група, това означава, че в следващите последователни адреси се съдържат най-вероятните за изпълнение команди. Тогава извлечената команда се записва в буфера (в опашката от извлечени и подготвени за изпълнение машинни команди), а съдържанието на програмния брояч се увеличава. 35 Организация на запомнящата система Буфериране на машинни команди Ако извлечената машинна команда се окаже команда за безусловен преход, тя не се записва в буфера. Машинната команда за безусловен преход всъщност променя рязко последователността от изпълняващи се команди, като посочва друга начална точка, чрез адреса за преход. В този смисъл изпълнението на тази машинна команда може да бъде осъществено още по време на нейния предварителен анализ, без тя да достига операционната част на процесора. 36 Организация на запомнящата система Буфериране на машинни команди Схема за буфериране при команда за безусловен преход (БП) 37 Организация на запомнящата система Буфериране на машинни команди В случай че анализираната машинна команда се окаже команда за условен преход, тя се записва в буфера, но без да може да се изпълни. Проблемът е в това, че докато не бъде изпълнена стоящата преди нея в опашката машинна команда, ходът на изчислителния процес е неизвестен. А възможностите за него са две – или преход към следващия по ред адрес, или преход към съвършено различен адрес, вписан в самата команда. Като имаме предвид, че подготвените в опашката команди продължават да се придвижват към непрекъснато работещите конвейери, другият край на опашката ще започне да се опразва и спешно следва да се вземе решение как да продължи процесът на извличане на команди. 38 Организация на запомнящата система Буфериране на машинни команди Въпросът за избор при буфериране след команда за условен преход (УП) 39 Организация на запомнящата система Буфериране на машинни команди Възможни са няколко конструктивни решения за горе формулираната задача: • Временно блокиране на буфера до фактическото изпълнение на условния преход; • Организиране на конкурентни опашки (опашки и за двете разклонения); • Извличане чрез предсказване на прехода. 40 Организация на запомнящата система Буфериране на данни – кеш памет Един от елементите в запомнящата система е значително по-производителен - това е централният процесор, т. е. всичко онова, което е разположено върху интегралната схема, която наричаме микропроцесор. По тази причина буферирането на трансфера на данни между тези две нива за сега остава едно трайно структурно решение на проблема. 41 Организация на запомнящата система Буфериране на данни – кеш памет Буферирането се постига чрез междинна допълнителна бързодействаща памет с неголям обем, играеща ролята на посредник. Главното разбиране за тази памет е, че тя не се намира в адресното пространство на процесора и не може да се адресира от машинните команди. С други думи, тя е невидима за програмата (за потребителя), откъдето произлиза и името й – кеш памет (cache memory) – скрита памет. Кеш паметта се реализира като бърза статична RAMпамет. 42 Организация на запомнящата система Буфериране на данни – кеш памет Задачите, които се възлагат на кеш паметта, са следните: • Осигуряване на бърз достъп до интензивно използваните данни; • Съгласуване на интерфейса на процесора и на контролера на паметта; • Предварително зареждане на данните; • Отложен (задържан) запис на данните. 43 Организация на запомнящата система Буфериране на данни – кеш памет Работата на потребителските програми се характеризира с временно задържане на обръщенията, които те извършват в оперативната памет, в ограничени по обем адресни области. Принцип за локализиране на програмното действие – има два аспекта: пространствен и временен. 44 Организация на запомнящата система Буфериране на данни – кеш памет Изхождайки от принципа за локално действие на програмата, може да се допусне, че клетките, в които е ограничено това действие, формират така наречения блок (фрейм - frame). В интерес на повишената производителност, към която се стремим, е лесно разбираемо, че е изгодно в буферната памет да се съдържа копие от онази малка област, в която се намират актуалните за момента данни. Буферираните данни са копие на съдържащите се в основната памет, при което те се озовават в непосредствена близост до процесора, с всички произтичащи от това ползи. Блокът в същност е едно копие, в което данните се съдържат с минимално излишество. 45 Организация на запомнящата система Буфериране на данни – кеш памет Бързият достъп до данните, в условията на буферна памет, следва да се обезпечи единствено чрез подходящо използване на техния адрес, който формира процесорът. Ако на пътя на излизащия от процесора адрес стои кеш паметта, в която се съдържат копия на някои области от оперативната памет, то е естествено най-напред да се провери дали съдържанието на клетката, която сочи той, не се намира в някое от тях. Ако проверката установи такъв факт на присъствие, събитието се нарича кеш-попадение (cache hit), в противен случай събитието се нарича кешпропуск (cache miss). 46 Организация на запомнящата система Буфериране на данни – кеш памет Като се отчете фактът, че кеш паметта не може да бъде адресируема, то достъпът до данните в нея може да бъде единствено асоциативен. В ролята на асоциативен признак е възможно да бъде използван единствено адресът, който процесорът е формирал. Ако в кеш паметта се намират копията на много клетки, единствената прилика, която може да се установи между тях е, че техните адреси се различават само в младшите си няколко разряда, а старшата им част е еднаква. 47 Организация на запомнящата система Буфериране на данни – кеш памет Методът за достъп в кеш паметта (в буферната памет за данни) следва да бъде асоциативен, като за асоциативен признак на търсенето трябва да се използва старшата част на адреса. Този асоциативен признак се нарича още таг (от tag връзка). При това положение кеш паметта усложнява своята структура в сравнение с тази на асоциативното запомнящо устройство, тъй като тя, за разлика от него, освен асоциативните признаци, трябва да съхранява и съответствуващите им данни. Така логическата структура на кеш паметта се състои от два основни елемента - справочник и даннов масив. 48 Организация на запомнящата система Буфериране на данни – кеш памет Обща структура на кеш памет 49 Организация на запомнящата система Буфериране на данни – кеш памет Обобщен алгоритъм за функциониране на кеш паметта 50 Организация на запомнящата система Концепция за виртуална памет Задачата за управление на йерархическата памет от страна на програмиста е твърде сложна. В същото време, разполагането на едно програмно осигуряване по продължението на двете нива на запомнящата система създава впечатлението, че адресното пространство е разширено по посока на външната памет. В тази връзка естествено възниква желанието за една хомогенна (единна) интерпретация на запомнящата система. 51 Организация на запомнящата система Концепция за виртуална памет Единната интерпретация е възможна само като абстрактна. Понятието “логическо” или още “виртуално адресно пространство”, обвързва в една обща апаратнопрограмна система скъпата и бърза оперативна памет с бавната и евтина външна памет. Абстрактната интерпретация на запомнящата система е възможна само чрез понятието адресно пространство. Практически физическата запомняща система, която е съставена от различни запомнящи устройства, може да се разбира като хомогенна, само ако на нея се гледа като на едно "неограничено" по обем адресно пространство. 52 Организация на запомнящата система Концепция за виртуална памет Системата, състояща се от тази интерпретация, от механизмите за реализация на съответствието между абстрактните (логическите) и физическите адреси и механизмите за управление на обмена между основната и външната памети, се нарича виртуална памет. Виртуалната памет е адресируема памет. Адресът се нарича виртуален. Съставните части на виртуалната памет позволяват на програмиста, при реализиране на потребителската задача, да разглежда компютърната запомняща система като памет с едно ниво, принадлежаща единствено на неговата програма. 53 Организация на запомнящата система Концепция за виртуална памет Механизмите на виртуалната памет се реализират с апаратни и програмни средства. Основните задачи, които се решават с помощта на тези механизми, са: а) Преобразуване на виртуалните адреси във физически; б) Управление на динамичното разпределение на информацията между отделните нива на физическата памет по време на хода на изчислителния процес; в) Защита на информацията от опити за неправомерно използване, което е възможно поради нейното движение по йерархията на паметта. 54 Организация на запомнящата система Концепция за виртуална памет За да може процесорът (който олицетворява програмиста) да работи в абстрактното адресно пространство на виртуалната памет, трябва да притежава система за поддръжка на значително подълги адреси от тези, необходими за работа с основната памет. Така например в процесор Pentium дължината на виртуалния адрес е 48 бита, а в процесор PowerPC той е 52 битов. 55 Организация на запомнящата система Концепция за виртуална памет Структура на виртуалния адрес Структурата на виртуалния адрес се състои от 2 полета: • Индекс на линейното адресно пространство на процесора; • Линеен адрес на процесора. Индексът, с дължина от V[b], представлява старшата част на виртуалния адрес. Младшата част на виртуалния адрес съдържа линейния адрес на процесора, с дължина L[b]. Обемът на физическото адресно пространство на процесора се определя от дължината на този адрес: Q = 2L При типичната дължина L=32[b], обемът на адресното пространство на процесора е Q=4[G]. Съдържанието на полето индекс се управлява от операционната система и то не е структурен елемент на машинните команди. 56 Организация на запомнящата система Концепция за виртуална памет Структура на виртуалния адрес Всяка отделна програма притежава формално цялото адресно пространство на процесора и разполага в него съставните си части както за нея е най-удобно. Адресното пространство на всяка отделна програма има размерите на адресното пространство на процесора, защото машинните команди, с които е реализирана, са определени именно за това адресно пространство. 57 Организация на запомнящата система Концепция за виртуална памет Структура на виртуалния адрес Виртуалната памет представлява един набор от паралелни адресни пространства. 58 Организация на запомнящата система Концепция за виртуална памет Задачата за преобразуване на виртуалния адрес във физически се възлага на устройството за управление на паметта (MMU – Memory Management Unit). 59 Организация на запомнящата система Концепция за виртуална памет Обикновено зареждането на потребителските програми е свързано с тяхното разделяне на по-малки (съставни) части, които могат да имат различни или еднакви размери, с което се цели по-ефективно използване на физическата памет. Структурирането на програмите позволява разнообразни ситуации при тяхното зареждане в оперативната памет. Каквито и да са тези ситуации обаче, заявеният от програмата (командата) (процесора) виртуален адрес следва да бъде проектиран (преобразуван) в правилен физически адрес. 60 Организация на запомнящата система Концепция за виртуална памет Съответствие при структурирана програма 61 Литература [1]. http://tyanev.com/ - On-line книги – ОРГАНИЗАЦИЯ НА КОМПЮТЪРА – книга [1] [2]. Димитър Тянев, ОРГАНИЗАЦИЯ НА КОМПЮТЪРА, том първи (ISBN 978-954-20-0412-7), Варна 2008г. 62