Sw3.6-m8-1.2-Slajd23

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Architektura superskalarna i przetwarzanie potokowe

Architektura superskalarna i przetwarzanie potokowe


Jednym ze sposobów poprawy efektywności pracy jest zastosowanie większej ilości jednostek arytmetyczno-logicznych, które mogłyby pracować równocześnie. Koncepcja taka prowadzi do architektury zwanej superskalarną, ponieważ stan procesora nie jest opisywany przez skalar (wielkość jednoelementową) ale przez wektor (superskalar) stanów poszczególnych jednostek wykonawczych. Nieodzowna jest w tym momencie również modyfikacja budowy układu sterowania, który powinien dysponować pobranymi na zapas instrukcjami, które będą kierowane do równoległego wykonywania w poszczególnych jednostkach wykonawczych. Idąc dalej dochodzimy do koncepcji przetwarzania potokowego, która jest dzisiaj obecna w procesorach i mikrokontrolerach.

W mikrokontrolerze zamiast prostego rejestru instrukcji stosuje się pamięć typu FIFO, która odpowiada za gromadzenie kolejki instrukcji. Instrukcje pobierane z pamięci programu do kolejki w cyklu pre-fetch opuszczają ją w takiej samej kolejności i są kierowane do poszczególnych układów wykonawczych. Najtrudniejszym elementem przy realizacji procesora z przetwarzaniem potokowym jest zaprojektowanie algorytmu napełniania kolejki rozkazów. W przypadku rozkazu skoku następuje zmiana kolejności wykonywania instrukcji co uniemożliwia proste sięganie po kolejne porcje kodu programu. Dlatego algorytmy tego typu wykonują skomplikowaną, wstępną analizę kodu programu, po to by przewidzieć ewentualne skoki (ang. branch prediction). Konsekwencja tego jego bardziej skomplikowana budowa układu sterowania mikrokontrolera.


<< Poprzedni slajd | Spis treści | Następny slajd >>