2013-06-25 11 views
7

Według "Computer Architecture i Organizacji" Miles Murdoca i Vincenta Heuring,Dlaczego procesory CISC są trudniejsze do potokowania? W jakim sensie niektóre instrukcje są "bardziej złożone" niż inne?

CISC instrukcje nie bardzo dobrze pasuje potokowych architektur. Aby umożliwić efektywną pracę potoków, każda instrukcja musi mieć podobieństwo do innych instrukcji, przynajmniej pod względem względnej złożoności instrukcji .

Dlaczego to prawda? Co oznacza złożoność instrukcji, nie wszystkie instrukcje wykonują jeden cykl zegara, aby rozpocząć wykonywanie; jeśli instrukcja czyta lub zapisuje do pamięci, to zajmie to więcej czasu, ale procesory RISC czytają też zapis do pamięci (oczywiście)?

+0

Najlepszym sposobem, aby dowiedzieć się, co autorzy książki mają na myśli, to zapytać ich bezpośrednio. Odnośnie innych części twojego pytania, na nowoczesnych procesorach proste instrukcje (ADD/SUB/MOV, instrukcje logiczne, przesunięcia) zazwyczaj wykonywane są w 1 cyklu, mnożenie całkowite wykonuje się w 3-4 cyklach, mnożenie zmiennoprzecinkowe w 3-6, ruchome -punkt dodawania w 2-5. –

+0

@MaratDukhan, ale czym jest cykl? Nawet [Wyszukiwarka Google] (https://www.google.com/search?q=define%3Acycle&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a#client = firefox-a & hs = Migawka & rls = org.mozilla: en-US: oficjalny & q = zegar + cykl & tbs = dfn: 1 & tbo = u & sa = X & ei = 9hfJUZvXLrD1igLztYHYDw & ved = 0CC0QkQ4 & bav = on.2, or.r_qf. & bvm = bv.48340889, d.cGE & fp = a6e1eebee3fff02f & biw = 1920 & bih = 956) powiedział, że jest to najbardziej podstawowa jednostka czasu lub ilość czasu potrzebna do ukończenia jednej instrukcji, co daje okrężną definicję. – Celeritas

+1

Linia produkcyjna, która generuje jeden widget na minutę, w żaden sposób nie oznacza, że ​​tworzenie widgetu zajmuje minutę, może zająć kilka godzin lub dni na jeden widget. ta linia produkcyjna prawdopodobnie ma bardzo mało zmian w widgecie, więc linia montażowa może się płynnie, z minuty na minutę na zawsze. Instrukcje oczywiście biorą liczbę cykli zegara od początku do końca na nowoczesnych komputerach lub starych. Starają się uśrednić jedną (lub więcej) instrukcję (-y) ukończoną na cykl zegara dla serii instrukcji, następnie dostajemy przeciągnięcie i próbujemy ponownie. –

Odpowiedz

10

"Złożoność" instrukcji zależy od tego, jak bardzo ich rozmiar i format mogą się różnić. Weźmy na przykład architekturę x86 IA32 (Intel 32-bit), która jest CISC. Rozmiar instrukcji może wynosić od 1 do 12 bajtów, a ich format również jest bardzo różny (format określa, ile bitów jest używanych dla każdego pola, gdzie znajdują się te bity itd.).

Oznacza to, że będziesz wiedzieć tylko, kiedy skończysz pobieranie instrukcji po rozpoczęciu jej dekodowania. Niektóre instrukcje wymagają pobrania tylko jednego cyklu, inne - i to komplikuje proces rurociągu.

Wszystkie instrukcje ARM (architektura RISC) mają dokładnie 4 bajty. Tak więc po pobraniu 4 bajtów wiesz, że możesz wysłać te bajty na fazę dekodowania potoku i możesz od razu rozpocząć pobieranie następnej instrukcji.

1

Chodzi o to, że z architekturami CISC są zazwyczaj instrukcje, które są relatywnie dłuższe niż RISC. Tak więc planowanie jest trudniejsze. W CISC często występują mieszanki prostszych instrukcji i bardziej skomplikowanych instrukcji, które trwają dłużej. Tak więc w potoku są rzeczy zwane niebezpieczeństwami, które mogą stwarzać problemy dla płynnego pipeliningu. Instrukcje X86 Floating Point będą dłuższe niż ładowanie lub przechowywanie na x86, na przykład.

+0

Więc tak naprawdę to, co mówisz, jest z CISC, istnieje więcej zagrożeń związanych z rurociągami? – Celeritas

+0

Tak, im bardziej regularny lub podobny zestaw instrukcji, tym łatwiej zaplanować. Instrukcje mogą różnić się nie tylko długością, ale także złożonością. – BillH

+0

Co to jest "planowanie"? – Celeritas

Powiązane problemy