Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
TwojePC.pl © 2001 - 2024
Poniedziałek 27 października 2014 
    

Technologia dynamicznej wirtualizacji wielu rdzeni procesora, czyli VISC


Autor: EmilM | źródło: Kitguru, Bright Side of News | 07:11
(18)
Każdy w miarę zorientowany w świecie komputerów z pewnością zauważył, że od dobrych kilku lat mamy zastój w rozwoju mikroprocesorów X86. Firma Intel stawia głównie na schodzenie w niższe procesy litograficzne i jest to droga jak najbardziej słuszna, jednak mało przyszłościowa i coraz droższa. Warto pamiętać, że nieuchronnie zbliżamy się do fizycznych ograniczeń krzemowej technologii produkcji. AMD stawia natomiast na heterogeniczną architekturę (CPU + GPU), która na rynku rozgościła się nie najlepiej i trudno tu mówić o jakimkolwiek sukcesie.

Inżynierowie nowo powstałej firmy Soft Machines, w której swoje udziały ma m.in. Global Foundries, były wiceprezes Intela, oraz grupa Mubadala, znana z inwestycji w AMD, uważają, że znaleźli rozwiązanie problemów obecnej architektury procesorów, działających w modelu wykonywania po za kolejnością. Doszliśmy bowiem do optymalnej wartości jednostek wykonawczych. Innymi słowy dodawanie kolejnych rdzeni i jednostek powoduje wzrost kosztów, poboru prądu i wydzielanie ciepła w niemal wykładniczy sposób.

Zdaniem SoftMachines ratunkiem jest technologia Variable Instruction Set Computing (VISC), która polega na dynamicznej wirtualizacji optymalnej do danej sytuacji liczby wątków procesora. Co więcej poszczególne wątki mogą być różnej wydajności, dzięki czemu moc CPU powinna być wykorzystana praktycznie w 100%.
Mikroprocesory VISC mają wydobywać z obciążenia roboczego paralelizm na poziomie instrukcji, a następnie rozplanowywać to obciążenie na wielu małych wątkach uruchamianych niezależnie na tworzonym dla nich zbiorze wirtualnych rdzeni. Realizowane jest to przez coś nazywanego globalną witryną (global front end) czuli układem logicznym, przekładającym wątki na wirtualne rdzenie o pożądanych rozmiarach.Co ważne, technologia ta może być stosowana niezależnie od architektury CPU i powinna działać zarówno z procesorami x86 jak i ARM.
W benchmarku SPEC2006 procesor wykorzystujący VISC, z 2 wirtualnymi rdzeniami zmierzył się z konkurentami w postaci pojedynczych rdzeni procesorów ARM Cortex A15, A57, Apple A7, Intel Atom oraz Intel Haswell. Wyniki można zobaczyć poniżej.
Dla procesora tego przygotowano już działający system Linux, UEFI BIOS oraz system Android w wersji 4.0. SoftMachines pracuje już nad własnym SOC, wykorzystującym technologię VISC oraz wyposażonym w IGP i kontroler pamięci. Pytaniem pozostaje kiedy coś takiego trafi na rynek i czy firma będzie licencjonować swoje rozwiązanie innym producentom.

 
    
K O M E N T A R Z E
    

  1. papka (autor: piwo1 | data: 27/10/14 | godz.: 07:35)
    fajnie sie to czyta. tylko rzeczywistosc bedzie zgola inna.

  2. Cały problem to frontend (autor: rmarcin | data: 27/10/14 | godz.: 08:38)
    Jak już się wie jak zrównoleglić to reszta jest detalem. Ale znalezienie zależności w kodzie nie jest takie proste i wymaga sporych obliczeń. Kod z zależnościami można transformować, ale znowu to wymaga obliczeń.

  3. rmarcin (autor: Teriusz | data: 27/10/14 | godz.: 09:24)
    Tylko, że czasami w kodzie niektóre polecenia muszą być robione liniowo jedne po drugim i nie zawsze można to zrównoleglić. W takich przypadkach czasami jeden rdzeń czeka na drugi by wykonał obliczenia. Tutaj sprawa jest o tyle fajniejsza, że można w takich liniowych obliczeniach zaprzęgnąć dwa rdzenie jednocześnie, a później mogą działać rozdzielnie i później ponownie razem w jednym wątku. VISC pozwala na to by żaden z rdzeni nie czekał bezczynnie na drugi i to jest właśnie świetne.

  4. Druga sprawa to taka, (autor: Teriusz | data: 27/10/14 | godz.: 09:33)
    że w przypadku normalnych jednakowych rdzeni, a takie się obecnie produkuje, różne równolegle obliczane zadania nie kończą się w tym samym momencie i któryś z rdzeni czeka na wyniki innego. Tutaj w VISC mocy do obliczenia danego wątku można przydzielać asymetrycznie wedle potrzeb tak by zadania jak trzeba zakończyły się równocześnie.

  5. Wydajemi sie (autor: VP11 | data: 27/10/14 | godz.: 10:39)
    ze na polskim portalu rysunki powinni miec polskie nazewnictwo. Niestety bardzo zle sie czyta raz po polsku raz po angielsku.
    10-15 minut wiecej pracy a powstanie porzadny artykul.


  6. czy aby (autor: kombajn4 | data: 27/10/14 | godz.: 10:54)
    czegoś podobnego nie proponowało dawno temu AMD? To się miało nazywać odwrócony Hyper-Threading, ale jakoś o całym pomyśle słuch zaginął.

  7. @3. (autor: TeXXaS | data: 27/10/14 | godz.: 11:01)
    Czytasz to co piszesz? Masz 100 linii obliczeń, gdzie każda zależy od wyniku z poprzedniej - jak chcesz to odpalić na 2 rdzeniach?
    Prędzej uwierzę, że wezmą optymalizacje z maszyny wirtualnej javy i użyją na poziomie kodu maszynowego.


  8. VP11 a mi sie wydaje (autor: RusH | data: 27/10/14 | godz.: 11:06)
    ze nie ma inzynierow/informatykow bez angielskiego, wiec jak nie rozumiesz to i po polsku bys nie zrozumial

  9. Jakby to byl taki przelom to nikt nie kupowalby 4 rdzeniowych procesorow (autor: rookie | data: 27/10/14 | godz.: 11:33)
    Takie i3 uzywajace dynamiczna wirtualizacje mogloby przescignac i7 nie uzywajacego dynamicznej wirtualizacji...

  10. Errr (autor: Shamoth | data: 27/10/14 | godz.: 12:20)
    A nie było przypadkiem tak, że kiedy intel eksperymentował z rozdzielaniem 1 rdzenia na 2 wirtualne to AMD poszło zgoła inną drogą i bawili się w łączenie 2 rdzeni w wirtualny 1... Nie wiem tylko co się z tym stało bo w obecnej chwili kiedy procki mają po 8-12 rdzeni a aplikacje, niech będzie gry ;] są w stanie wykorzystać w 100% 4 rdzenie, bo dokładanie kolejnych ma marginalny wpływ na wydajność, to jak by tak scalić te nadmiarowe w 4 mocniejsze albo zaprząc je do innych zadań jak obsługa warstwy sieciowej czy audio...

  11. @6. (autor: pio2 | data: 27/10/14 | godz.: 12:21)
    Też cos takiego mi się przypomina i miała to byc technologia architektuy Bulldozer. Taki moduł miałby wtredy dużo większy sens. A poza tym Intel robi cos takiego na poziomie pojedynczego rdzenia. Tutaj virtualizacja zasobow miałaby dotyczyc całego procesora. Ciekawe jak musi wyglądać front-end

  12. TeXXaS (autor: Teriusz | data: 27/10/14 | godz.: 12:23)
    Czytam to co piszę i nie tylko to. Dlatego proponuję byś zapoznał się z tym:
    http://softmachines.com/...s/2014/10/MPR-11303.pdf

    Front End tworzy tak zwane "threadlets" czyli rozbicie instrukcji na składowe pomniejsze instrukcje, a następnie są one odpowiednio adresowane i rozdzielane na poszczególne fizyczne rdzenie.

    Poczytaj! Będziesz wiedział więcej jak działa VISC :)


  13. która gra (autor: Menah | data: 27/10/14 | godz.: 12:40)
    jest w stanie wykorzystać w 100% 4 rdzenie?

  14. BTW. (autor: Teriusz | data: 27/10/14 | godz.: 12:48)
    Co jak co, ale architektura VISC bardzo mi tu pachnie architekturą rodem z GPU i uniwesalnymi shaderami oraz multiprocesorami strumieniowymi.

  15. @11 i 14 ... wtedy rdzenie APU będą mogły mieć dowolną ilość... (autor: SebaSTS | data: 27/10/14 | godz.: 13:40)
    ... ARM + CPU + GPU... To jest ich VISION $ FUSION ;) Prawdziwa przyszłość.

  16. jak dla mnie jest to zwykly opis OOO (autor: RusH | data: 27/10/14 | godz.: 14:49)
    tyle ze moze maja jakies nowe podejscie do OOO i zamiast na poziomie instrukcji to analizuja na poziomie wiekszych skrawkow kodu

  17. Ja to bym chcial wiedziec... (autor: gantrithor | data: 27/10/14 | godz.: 17:18)
    ile tranzystorow logicznych bylo w tym procesorze visc a ile w probce Intel Haswell no i jakie czestotliwosci byly tych ukladow bo jesli ma sie okazac ze 8 rdzeniowy uklad tworzyl 2 wirtualne rdzenie i walczyl z 1 rdzeniem intela to cos tu nie halo.

    W zasadzie nie jest to glupie rozwiazanie zalozmy ze 2 rdzenie intela to tak naprawde jeden rdzen ale z podwojona iloscia wszystkich komponetnow byl by on 2 razy wydajniejszy w pojedynczym watku oraz byl by w stanie oddac polowe komponentow aby wytworzyc drugi rdzen uzyskujac 2 wirtualne rdzenie na 1 fizycznym.


  18. @17 (autor: cyriak | data: 27/10/14 | godz.: 18:12)
    według obrazka wszystkie proce miały po 1 core włączonym przy czym visc miał dwa virtualne cores - ipc to współczynnik instructions per cycle - ilość wykonanych instrukcji w cyklu zegara (albo coś w ten deseń)

    
D O D A J   K O M E N T A R Z
    

Aby dodawać komentarze, należy się wpierw zarejestrować, ewentualnie jeśli posiadasz już swoje konto, należy się zalogować.