Паралелизъм на инстукциите

Конверизацията на инструкциите (КИ) е принцип, който позволява едновременното (паралелното) изпълнение на различните фази на няколко инструкции. Този принцип е ключов за съвременните архитектури.
За да бъде реализиран инструкциите се разбиват на фази с еднаква продължителност, всяка от които се обработва от отделно стъпало на изпълнителния конвейер.

При класическите последователни архитектури инструкциите по принцип са неделини (атомарни). В разглеждания случай това свойство на инструкциите е изпълнено. Конвейера се характеризира с два основни параметъра. Производителност  Р (пропусквателна способност): P = ni/T ;  латентност L = n.Tc , където  n е броя стъпала на конвейера (дълбочина на конвейера) и отговаря на времето за престой на една инструкция в конвейера. При идеално балансиран конвейер (без загуби ) параметъра
CPI = nc/ni = 1 (брой машинни цикли/ брои инструкции). При CPI >>1  – последователна машина; CPI = 1 – машината е конвейерна с един конвейер;  0<<CPI <<1 – суперскаларна машина (има по-вече от един конвейер).
Papers\p8-patterson.pdf fig.2.a

Реализация на DLX без конвейер. Фази на изпълнение на инструкциите. Потоков модел на DLX с многоциклова реализация.

H&P\Figures\Zed\3[1].1.ps

А) IF  – стъпалото, в което се изпълнява тази фаза включва следните апаратни компоненти: памет на инструкциите(Instruction memory IM), регистър на инструкциите (Instruction registry IR), програмен брояч (Program counter PC) , следваща стойност на програмния брояч (Next program counter NPC), адресен суматор (Add). Програмния брояч е свързан с адресната магистрала на IM .Извлечената инструкция от тази памет се записва в IR. Следващата стойност на програмния брояч (адреса на следващата инструкция ) е винаги по-голям с 4 от текущия адрес, това дава възможност адреса на следващата инструкция да се определи преди фазата на декодиране. Семантиката на фазата се описва по следния начин:

[IR]<-IM[[PC]]
[NPC]<-[PC]+ 4

Б) Фаза на декодиране на инструкцията и на извличане на регистровите операнди (ID) – стъпалото, което изпълнява тази фаза съдържа следните апаратни компоненти:  целочислен регистров файл (GPR registers),  3 x 32bit регистъра (A,B,Imm) и комбинационна логика Sign Extend, която разширява 16 битовия непосредствен операнд на входа и в 32 битов изходен операнд със същата стойност. Семантиката на фазата е следната:

[A]<- Reg[[IR]6..10]
[B]<-Reg[[IR]11..15]
[Imm]<-32   [IR]1616   ##[IR]16..32        underlined – разширение на знака

На практика тук е посочено само извличането на регистровите операнди и записването им във временните регистри А и В. Това извличане е възможно да се извърши едновременно с декодирането, тъй като адресните полета на rs1, rs2 и rd са фиксирани и не зависят от типа инструкция. Поради същата причина 16 битовата константа Immediate от инструкциите от тип И също може да се формира паралелно с декодирането.

Фаза на изпълнение  (EX)  -  апаратните компоненти, поддържащи фазата са следните : 32 битово целочислено АЛУ, изходен регистър ALU Output, 2 входни мултиплексора, служещи за избор на операнд на АЛУ-то, цифров компаратор (Zero?), който сравнява стойността на 32 битовия регистър А с нула. На изхода на компаратора се формила логическа 0 или 1, в зависимост от това дали съдържанието на регистър А се различава или съвпада с 0. Стойността на изхода на компаратора се фиксира в тригера Cond  (condition). В зависимост от вида на инструкцията, в тази фаза се извършва една от следните операции:

  • изпълнение в АЛУ-то на инструкции от тип R.
  • [ALUOut]<-[A] func [B]
  • Изпълнение в АЛУ-то на операция с непосредствен операнд от тип I.
  • [ALUOut]<-[A] op [Imm]
  • Изчисление не ефективен адрес при операции load-store от тип I.
  • [ALUOut]<-[A] + [Imm]
  • Изчисление на адреса на условния преход  от тип I условен преход
  • [ALUOut]<-[NPC]+[Imm]
  • [Cond]<-[A] op φ

Фаза за обръщение към паметта за данни  – такава фаза имат само инструкциите за обръщение към паметта load-store и условните преходи. Апаратните компоненти в стъпалото са паметта за данни (Data memory DM), буфера(Load memory data LMD) , в който се фиксира прочетената от паметта дума и мултиплексора определящ адреса на следващата инструкция. Връзката на паметта за данни с елементите на процесора е следната:

Обръщение към паметта

store        DM[[ALUOut]]<-[B]
load        [LMD]<-DM[[ALUOut]]

Условни преходи

If ( [Cond] )
[PC]<-[ALUOut]
Else
[PC]<-[NPC]

Д) фаза за обратен запис в регистровия файл
Апаратно фазата се поддържа само от един мултиплексор, който служи за избор на източник – LMD (load) или ALU Output при останалите инструкции.

Аритметико-логическа обработка при операции от тип R
rd        Reg [[IR]16..20]<-[ALUOut]
-     -||- -||-  при инструкции от тип I
rd        Reg[[IR]11..15]<-[ALUOut]
-    Инструкция Load от тип I
rd        Reg[[IR]11..15]<-[LMD]

Сходни статии:

  1. По-важни алгоритми Програма за преобразуване на еднобайтово число в допълнителен код Инструкцията NEG преобразува в допълнителен код, като инвертира всички 8 бита на числото и добавя единица. За знак използва флага N...
  2. Програмиране на AVR-контролери Програмен модел Аритметическите и логическите операции се изпълняват от така нареченото Аритметично-логическо устройство (АЛУ). То има два входа и един изход. На входовете се въвеждат операндите, а на изхода се...

Студио за уеб дизайн услуги, изработка на сайтове, SEO оптимизация и Интернет реклама Seven Web Design представя своите професионални уеб дизайн умения на високо ниво. Seven Web Design е продукт на Уеб Дизайн България Груп ООД ®
Comments are closed.