Elektroda.pl
Elektroda.pl
X
Elektroda.pl
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Risc-V - słów kilka o architekturze

_lazor_ 26 Maj 2019 20:48 2193 22
  • Risc-V - słów kilka o architekturze
    Wiele dzisiejszych architektur powstało podczas wieloletniego procesu udoskonalania i tworzenia coraz lepszych rozwiązań, aby były one jak najbardziej doskonałe. Firmy odpowiedzialne za daną architekturę wymagają opłat licencyjnych za wykorzystanie ich dzieła w produkcie. Czy jest więc możliwe, stworzenie architektury, która była by całkowicie za darmo i jednocześnie mogła konkurować z istniejącymi już na rynku firmami? Jak najbardziej i jednym (ale nie jedynym) tworem tego typu jest Risc-V, open source ISA.

    Czym dokładnie jest ISA? Jest to teoretyczny opis działania procesora. W ISA możemy znaleźć między innymi:
    - listę rozkazów
    - typy danych
    - dostępne tryby adresowania
    - ilość dostępnych dla programisty rejestrów
    - zasady obsługi wyjątków i przerwań
    - obsługa poziomów uprzywilejowania, wirtualizacji i innych elementów wymaganych przez systemy operacyjne (nie mylić z RTOS).

    Fundacja Risc-V wspólnie z ponad 200 firmami rozwija ISA , które będzie bardzo elastyczne a jednocześnie niezawodne. Ciekawą cechą Risc-V jest skalowalność. Nie ma większych problemów by na bazie Risc-V stworzyć bardzo malutki 32 bitowy układ do zastosowań embedded oraz spory procesor na którym można odpalić 64 bitowy system operacyjny. Dla porównania w ARM cortex-A mamy dwa różne zestawy instrukcji, a rdzenie z armv8.x mogą pracować co prawda w trybie 32bit lub 64bit jednak oba tryby posiadają znaczące różnice w rejestrach systemowych.
    Razem z mniejszą złożonością ISA oraz modularnym podejściem do zagadnienia, fundacja Risc-V zapewniła że poszczególne zestawy instrukcji podstawowych oraz rozszerzonych (po ich zaakceptowaniu) zostaną „zamrożone”. Oznacza to że w założeniu kod napisany na Risc-V odpali się na każdym podobnym układzie czy to dziś czy za kilka lat. Jednocześnie uproszczone ISA zapewnia mniejszą złożoność hardware samego rdzenia, a co za tym idzie znacznie mniejszą wymaganą powierzchnię. Daje to nadzieję na bardzo tanie układy w bardzo malutkich obudowach.

    Oczywiście Risc-V nie jest tylko teoretycznym rozważaniem i jeśli ktoś posiada wiedzę i umiejętności w FPGA, może własnoręcznie syntezować własny rdzeń. Niestety nie rozpiszę się na ten temat, gdyż ja nie posiadam ani wiedzy, ani doświadczenia jeśli chodzi o FPGA.

    Nazwy układów z architekturą risc-V mają odzwierciedlenie w zawartości samego układu. Weźmy dla przykładu RV32EMAC. RV oznacza architekturę risc-V, 32 jest wartością ilu bitowy jest rdzeń, E oznacza wykorzystanie podstawowego Embeddedowego zestawu instrukcji całkowitoliczbowych (największymi równicami do RV32I jest zmniejszona ilość rejestrów (do 16) oraz usunięcie liczników (counters) wymaganych w wersji RV32I), M instrukcje mnożenia oraz dzielenia (całkowitoliczbowe), A instrukcje atomowe, C instrukcje skompresowane.
    Ograniczona ilość rejestrów do 16, pozwoliła na zaoszczędzeniu przestrzeni układu (nie wliczając pamięci oraz peryferiów) o 25%, jednak z tego powodu do wersji E, nie przewidziano możliwości dodatnia instrukcji dla liczb zmiennoprzecinkowych.

    W celu przystępnego przetestowania architektury Risc-V polecam płytkę Hifive1 lub gdy piszę te słowa dostępnego w przedsprzedaży Hifive1 Rev B. SiFive przygotował własne wydanie Eclipse – FreedomStudio, dzięki niemu w bardzo prosty sposób możemy postawić swoje kroki w świecie Risc-V.

    Zastanawiam się od dłuższego czasu co myśleć o tej architekturze. Na pewno jest przemyślana i warta uwagi. Otwarte źródła nie tylko dla ISA ale również IP core, pozwalają syntezować dowolny core za darmo na FPGA. Daje to możliwość w stosunkowo prosty sposób nauczenia się jak działa RISCowy procesor na poziomie samej elektroniki.
    Aktualnie jest to dość niszowa architektura, jednak zainteresowanie wielu dużych firm, które aktywnie pracują nad własnymi produktami na bazie Risc-V, może dawać nadzieje że w przyszłości będą to bardziej popularne układy. Aktualne układy demonstracyjne pokroju HiFive nie odstraszają cenowo, co również może dawać nadzieję na to, że układy produkowane w większym nakładzie będą bardzo konkurencyjne cenowo.
    Dość sporym problemem może być to, że Risc-V nie należy porównywać do układów pokroju AVR czy ARM cortex-m a do cortex-A czy SPARC. A trzeba pamiętać, że ARM z swoimi cortex-A bardzo silnie zdominował rynek projektów embedded. Czy Risc-V uda się zdobyć jakąś część z rynku embedded? Mam nadzieję, że tak. Aktualnie mamy bardzo niezdrową sytuację gdy jedna firma przejęła bardzo dużą część rynku. Układ, który z definicji jest łatwo skalowalny od maleńkich układów embeddowych poprzez serwery i superkomputery jest czymś wartym uwagi.
    Czy dla programistów oznacza to jakieś zmiany? Zdecydowanie nie, mamy wsparcie dla klasycznych toolchainów pokroju GCC, Clang czy LLVM. Nauczenie się assembly w wypadku Risc-V jest naprawdę trywialne, można by rzec że jest to prawdziwy RISC ;) Jeśli w dodatku pracujemy na poziomie systemu operacyjnego, to nie ma tak naprawdę różnicy na jakiej architekturze pracujemy.
    Risc-V jest czymś więcej niż tylko kolejną architekturą, jest to twór na którym można się nauczyć praktycznie projektować procesory i to w wydaniu open source. Dzięki wsparciu naprawdę dużej ilości firm, które inwestują w tą architekturę, może ona stać się realną konkurencją dla ARM.

    A co wy myślicie o tej architekturze? Czego byście się chcieli o niej dowiedzieć bardziej szczegółowo? Zapraszam do dyskusji.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • PCBway
  • #2
    Marek_Skalski
    Poziom 35  
    Szanse powodzenia, to jak zawsze będzie kwestia pieniędzy i decyzji dużych graczy. Jeżeli w ciągu 5 lat znajdą się przynajmniej 3 duże firmy oferujące układy, których rdzenie będą oparte na RISC-V, zamiast na ARM, to będzie szansa na realne współzawodnictwo. Duże firmy w tym przypadku to według mnie nVidia, AMD, Broadcom w procesorach i NXP, MCP, ST, Renesas, TI w mikrokontrolerach.

    Zastanawiam się czy ta architektura może wspierać dodatkowe zabezpieczenie kodu poprzez modyfikacje instrukcji? Mając kod dla ARM w określonej wersji, jesteśmy w miarę dobrze odtworzyć jego działanie i wynik. A dla RISC-V, który z założenia może mieć modyfikowane instrukcje lub dodatkowe, czy posiadanie kodu programu umożliwia odtworzenie jego działania? Czy ISA może być dodatkową linią obrony?

    Ciekawi mnie też kwestia wydajności obliczeniowej w funkcji pobranej mocy i wymagań dotyczących procesu technologicznego. Jeżeli można je produkować w technologii 40-90 nm, to świetnie wpasowują się w świat mikrokontrolerów. Jeżeli RISC-V można bez problemu produkować w technologii <20 nm to mają szansę wejść w konkurencję z poczciwymi Intel x86, gdzie obserwujemy zastój od 3 lat.
  • PCBway
  • #3
    _lazor_
    Moderator Projektowanie
    Marek_Skalski napisał:
    Zastanawiam się czy ta architektura może wspierać dodatkowe zabezpieczenie kodu poprzez modyfikacje instrukcji? Mając kod dla ARM w określonej wersji, jesteśmy w miarę dobrze odtworzyć jego działanie i wynik. A dla RISC-V, który z założenia może mieć modyfikowane instrukcje lub dodatkowe, czy posiadanie kodu programu umożliwia odtworzenie jego działania? Czy ISA może być dodatkową linią obrony?


    Risc-V ma moduły instrukcji, które są w fazie rozwijania oraz w fazie zamrożonej. Idea jest taka aby nie ruszać już tych zamrożonych, dzięki czemu wszystkie układy korzystające z zamrożonych modułów instrukcji będą ze sobą kompatybilne na zawsze (przynajmniej tak zapewnia fundacja). Jeśli ktoś stworzy własny moduł instrukcji, to cóż nikt nie zapewni im wsparcia oficjalnego (chyba że będą go tworzyć z fundacją i zrobią ten moduł open source).

    Marek_Skalski napisał:
    Ciekawi mnie też kwestia wydajności obliczeniowej w funkcji pobranej mocy i wymagań dotyczących procesu technologicznego. Jeżeli można je produkować w technologii 40-90 nm, to świetnie wpasowują się w świat mikrokontrolerów. Jeżeli RISC-V można bez problemu produkować w technologii <20 nm to mają szansę wejść w konkurencję z poczciwymi Intel x86, gdzie obserwujemy zastój od 3 lat.


    Nie za bardzo wypowiem się czy dane układy można produkować w danym procesie technologicznym (fizyka kwantowa to trochę za dużo dla mnie), ale to będzie zależało od producenta układu i ich dostępu do sprzętu.
    Inna sprawa czy taki Risc-V potrzebuje technologii mniejszej niż 90nm? x86 jest CISC-iem, i to naprawdę złożonym. Kiedyś byłem na wewnątrz firmowym omówieniu ich mikroarchitektury. Powiem tak, tam mają co miniaturyzować, a co ma zyskać taki Risc-V na miniaturyzacji?

    Jak na razie większość tworzy procesory aplikacyjne na bazie Risc-V, chociaż jest szansa że nawet mikrokontrolery nie będą na bazie RVxxE tylko RVxxI, ale to zobaczymy w przyszłości, aktualnie w sumie nie ma za bardzo mikrokontrolerów na bazie Risc-V.
  • #4
    speedy9
    Pomocny dla użytkowników
    _lazor_ napisał:
    Szanse powodzenia, to jak zawsze będzie kwestia pieniędzy i decyzji dużych graczy. Jeżeli w ciągu 5 lat znajdą się przynajmniej 3 duże firmy oferujące układy, których rdzenie będą oparte na RISC-V, zamiast na ARM, to będzie szansa na realne współzawodnictwo. Duże firmy w tym przypadku to według mnie nVidia, AMD, Broadcom w procesorach i NXP, MCP, ST, Renesas, TI w mikrokontrolerach.

    A ja bym poszedła raczej w stronę zaangażowania Huawei, BBK Electronics (Oppo, Vivo, OnePlus), Xiaomi czy Lenovo. Może im zależeć na rozwoju alternatywnej architektury, zwłaszcza dla urządzeń mobilnych w świetle wojny handlowej. A i pieniądze też się myślę znajdą. Te firmy w sumei sprzedają więcej smartfonów niż Apple i Samsung w sumie, więc potencjał jest, zwłaszcza jak Qualcomm zerwie z nimi umowy.
  • #5
    Marek_Skalski
    Poziom 35  
    Coś sie popsuło z cytowaniem.
    Zgadzam się, z Tobą - jeżeli Huawei zdecyduje się na RISC-V, to szansa na rozwój tej architektury znacznie wzrośnie. Dzisiaj Huawei opiera swoje systemy o procesory Kirin, które są budowane na rdzeniach ARM. Z drugiej strony, Huawei jest jednym z największych graczy w fundacji RISC-V i dzisiaj ma dużą potrzebę znalezienia alternatywy dla amerykańskich technologii. Tutaj już niestety wkracza polityka, więc logika nie ma zastosowania.

    _lazor_ napisał:
    co ma zyskać taki Risc-V na miniaturyzacji

    Wymiar technologiczny przekłada się na efektywność energetyczną i wielkość struktury. Im mniejszy wymiar, tym mniejszy pobór mocy, mniejszy rozmiar całego układu i do pewnego poziomu niższy koszt produkcji. Przykładowo, kupując licencję na rdzeń Cortex dostajemy strukturę RTL oraz wymagania dotyczące minimalnego wymiaru technologicznego. Wbrew pozorom niewiele firm ma dzisiaj swoje fabryki; wiele z nich to producenci fabless, którzy kontraktują wykonanie układów, np. w TSMC. Tak robi Huawei, który nie ma dostępu do nowoczesnych maszyn fotolitograficznych. Zmiana architektury z ARM na RISC-V niewiele da, jeżeli TSMC odmówi współpracy ze względu na amerykańskie embargo. Wtedy pozostanie tylko Intel lub Samsung. Nikt inny nie dysponuje dzisiaj technologią produkcji układów w wymiarze 7-10 nm. 14 nm czy 20 nm to też duże wymagania i nie łatwo znaleźć dostawcę.
    Gdyby ktoś opracował przełom jak w przypadku pamięci (3D-NAND, V-NAND), to wtedy można zwiększyć wymiar technologiczny 4-5x, co pozwala produkować układy łatwiej (stare maszyny), chociaż nie będzie taniej.
  • #6
    speedy9
    Pomocny dla użytkowników
    Marek_Skalski napisał:
    Zmiana architektury z ARM na RISC-V niewiele da, jeżeli TSMC odmówi współpracy ze względu na amerykańskie embargo

    Chyba jednak chińczycy szybciej dogadają się z TSMC niż z Intelem lub Samsungiem. Zawsze mogą "przekonać" TSMC, że produkcja chipów dla Apple lub Nvidii nie jest im do niczego potrzebna ;)
  • #7
    khoam
    Poziom 31  
    speedy9 napisał:
    Zawsze mogą "przekonać" TSMC, że produkcja chipów dla Apple lub Nvidii nie jest im do niczego potrzebna

    Raczej spodziewałbym się opóźnień i przestojów w dostawach dla tych odbiorców, które wynikną z przyczyn, których nie udało się przewidzieć i nie zawinionych przez TSMC.
  • #8
    TechEkspert
    Redaktor
  • #10
    Marek_Skalski
    Poziom 35  
    Patrząc na te wyniki, to nie wiem czy nadal zachwycać się RISC-V. Zegar z trudem przekracza 300 MHz, a wydajność (2.35 Coremark/MHz) taka sobie w porównaniu do ARM (Cortex-A9, A15, A72), OMAP, nie mówiąc o układach Intela.
    Układy testowe wykonane w technologii 28 nm, oferują dużo więcej. Na przykład Artix 7 to technologia mająca 7-9 lat. W tym samym czasie dostępne były procesory Ivy Bridge, Haswell, Cortex-A53 (ARMv8-A). Trochę duża różnica w wydajności tych syntezowanych jednostek.
    Zapotrzebowanie energetyczne trudno oszacować - FPGA zawsze zużywa więcej energii niż układ zoptymalizowany do zadania, tutaj procesor.
    Pewnym pocieszeniem może być fakt, że dostępne są procesory wykonane w technologii 28 nm z nominalnym taktowaniem 400 MHz, które podobno można przetaktować do 800 MHz. Ale właśnie... przetaktować. Skoro można, to dlaczego nie są standardowo taktowane takim zegarem? Sipeed MAIX.
  • #11
    piotrva
    Moderator na urlopie...
    @Marek_Skalski - wyniki, które ja przedstawiłem (o ile o tych mówisz) dotyczą syntezy rdzenia RISC-V w układzie FPGA. I nie można porównywać tego do rdzeni robionych jako ASIC.
    http://linuxgizmos.com/sifive-launches-first-risc-v-sbc-that-runs-linux/
    ta płytka z tego co wyczytałem chodzi na 1 GHz, a można do 1.5 przetaktować.
    Jednostki syntezowane w układach FPGA pełnić mogą tu dwojakie role.
    Po pierwsze zapoznanie się z RISC-V bez dodatkowych kosztów - biorę z szafki płytkę z FPGA i już się bawię.
    Po drugie jeśli ktoś decyduje się na rdzeń syntezowany w FPGA to najczęściej z tego powodu, że nie potrzebuje sprzętowego rdzenia i jego wydajności, a jednocześnie chce realizować pewne zadania idealne dla procesorów, jednocześnie potrzebując dedykowanej logiki.
  • #12
    _lazor_
    Moderator Projektowanie
    Wydajność samego rdzenia będzie zależała od zawartych instrukcji, jako że aktualnie testowane są podstawowe to ciężko od nich wymagać by były wydajne. Jak na razie idea jest taka by te procki były małe (w sensie powierzchni) oraz nie skomplikowane. W końcu RISC to ma być zredukowana ilość instrukcji, a taki ARM ma dwa zestawy (ARM i thumb) oraz same instrukcje są powiązane z rejestrami systemowymi. Poziom skomplikowania rzutuje się na bardziej rozbudowany hardware.
    Dużo mi osób mówiło, że ARM to nie do końca RISC, no cóż teraz się z nimi zgadzam.

    Nadal uważam, że elastyczność tej architektury to jej największa zaleta. Mam nadzieję, że z czasem rozrośnie się ilość instrukcji i wtedy będzie to architektura, która będzie mogła nawet być używana w DSP (cortex-A i ich NEON to taki delikatny DSP, bardzo potulny).
    Takimi rozwijanymi aktualnie setami instrukcji są literki P (packed-SIMD), T (Transactional memory) czy V (Vector operation).
    W sumie była by to pierwsza architektura tak przestronnie używana.
  • #13
    Użytkownik usunął konto
    Poziom 1  
  • #14
    _lazor_
    Moderator Projektowanie
  • #15
    -XantiO-
    Poziom 21  
    Panowie z SiFive powiedzieli, że RISC-V jest optymalną architekturą dla 16nm (mają umowę z Samsungiem i TMSC z czego pierwsze serie oparli na Samsungu. Problemem z wysokimi zegarami jest ponoć niestabilość kontrolera pamięci czego nikt nie chce potwierdzić ale wydaje się to dość prawdopodobne.

    Ja aktualnie mam do testów zsyntezowanego RISC-V w Artix-7 i jestem w stanie osiągnąć około 90MHz przy opcji z MMU.
  • #16
    khoam
    Poziom 31  
    stmx napisał:
    W RISC-V jest wiele technologii, która jest własnością firm a jedynie zobowiązały się do nie egzekowania tych praw, co nie dotyczy sytuacji takich jak embargo, sankcje itp


    The RISC-V ISA is free and open for use by anyone in all types of implementations without restriction. Designers are free to develop proprietary implementations for commercial exploitation or open-source implementations to be shared as they see fit. The RISC-V Foundation encourages both types of implementations. For commercial RISC-V implementations, a license to the RISC-V trademarks is required which is granted to members of the RISC-V Foundation.

    Zank towarowy "RISC-V" jest chroniony w zastosowaniach komercyjnych, a nie technologia.
  • #17
    Użytkownik usunął konto
    Poziom 1  
  • #18
    khoam
    Poziom 31  
    stmx napisał:
    W RISC-V wiele z tych patentów jest użytych.

    Dołączam się do posta #14 i proszę o podanie źródeł tych informacji. Po głębszym przemyśleniu oczywiście.

    Przy okazji załączam ciekawy dokument.
  • #19
    Użytkownik usunął konto
    Poziom 1  
  • #20
    khoam
    Poziom 31  
    stmx napisał:
    Widac nie rozumiesz róznicy miedzy ISA a implementacją tej ISA

    Cały czas chodzi mi o RISC-V ISA, a nie konkretną implementację. Będą te linki?
  • #22
    -XantiO-
    Poziom 21  
    @piotrva w planach mam skrobnięcie takiego mini poradnika na temat FPGA+RISC-V+Linux.

    Sprawa wygląda tak, że ja Ameryki nie odkrywałem:
    https://rwmj.wordpress.com/2016/07/25/risc-v-on-an-fpga-pt-1/
    Ten kolega odkrył wszystko za mnie a ja tylko krok po kroku wszystko z jego strony/bloga dopasowywałem pod siebie. Mógłbym powiedzieć, że jest to istna kopalnia wiedzy w tym temacie (ogólnie Richard WM Jones jest dość znany z takich mało popularnych tematów).

    Ja osobiście przeszedłbym z chęcią na jakiegoś intelowskiego FPGA ale ciężko mi się zabrać za nowe środowisko. Głównie problemem jest brak czasu. A projektowanie PCB pod obudowę UBGA-484 nie będzie zajęciem na jeden wieczór (chociaż i tak mnie to nie minie).
  • #23
    piotrva
    Moderator na urlopie...
    Trochę mało informacji jak zrobić to od absolutnego zera, jak widzę z przejrzenia - ot odpalić skrypt dostarczony przez producenta ;P

    No ja mam tylko w swojej stajni Intelowskie cuda, więc jak bym kiedyś odpalał to tylko na tym :D