Схема на работа на Willamate
По аналогия със семейството Р6,конвейера се дели на 3 самостоятелни функционални блока-входен блок за подредена обработка(in order front end)отговарящ за декодирането и обработка на командите,ядро с изпълняване на промяна на последователността(out of order core),където се изпълняват командите и конвейер с подреден изход на командите за последователност(in order retirement).
Ето схема на 20 стъпков конвейер:
Така наречения механизъм на преобразуване(translation engine) е същевременно и блок за подбор и дешифрация,използвйки буфера на адреса на прехода,и на базата на механизма за предсказване на разклоненията съставя от тях трасета,които се съхраняват в трасиращия кеш за команди.Kогато трасето е построено,трасиращия кеш се оглежда за наличието на микрокоманди и ако има в кеша,то последващ източник на микрокоманди става не йерархията на паметта,а трасиращия кеш.
С помощта на буфера на адреса на прехода определя се адрес,указващ местоположението на следващата микрокоманда от трасиращия кеш(TC Nxt IP).След това произтича подбор на микрокоманди от трасиращия кеш(TC Fetch) и предаване(Drive),в таблицата на псевдоними на регистрите(RAT-register alias table).Pазпределят се ресурси,необходими за изпълненние-буфери на натоварване,буфери за съхранение и т.н.(Alloc) и се осъществява изображение на логическите регистри на физическото пространство за регистри(Rename)Микроперaциите се съхраняват в опашката(Queue),където стоят ,докато се появи място в планираните задачи(Schedulers)Там се изпълнява разрешение за взаимозависимост(dependencies)на микрокомандите,които след това се предават в регистровите файлове(register files),съответстващи на блоковете за изпълнение(Dispatch).Последва изпълнение на микрокоманди((Execute),а също и изчисляване на флагове(Flags).При изпълнение на команди на прехода произтича сравнение на реалния адрес на прехода и предсказаният(Branch check) и предаване на новия адрес в буфера на адреса на прехода(Drive)
Сподели с приятели: |