Prosessorimarkkinoita kuluttajalaitteissa hallitsevat rautaisella otteella x86- ja ARM-arkkitehtuurit. Lähitulevaisuudessa tilanne saattaa kuitenkin muuttua, sillä useiden teknologiajättien huhutaan korvaavan ARM-arkkitehtuurin ainakin joissain merkittävistä tuotesegmenteistä avoimella RISC-V-arkkitehtuurilla.
Hexuksen mukaan The Information on koostanut raportin, jonka mukaan peräti 80 teknologia-alan yritystä työskentelee parhaillaan RISC-V-arkkitehtuuriin parissa. Määrä ei sinänsä olisi välttämättä suuri, mutta kun joukkoon lukeutuvat jätit kuten Google, Marvell, Mellanox, NVIDIA, Qualcomm, Samsung, Tesla ja Western Digital, on kyse merkittävästä trendistä.
Raportin mukaan arkkitehtuuri houkuttelee valmistajia juuri avoimuutensa vuoksi: RISC-V on täysin vapaasti kenen tahansa käytettävissä ilman lisensointimaksuja tai muuta vastaavaa. ARM:n lisensointi- ja rojaltimaksuista irrottautuminen mahdollistaisi raportin mukaan selvästi nykyistä halvempien piirien valmistamisen esimerkiksi itse ajaviin autoihin. RISC-V:n ei kuitenkaan uskota korvaavan ARM-arkkitehtuuria esimerkiksi mobiililaitteissa, vaan vain tuoreemmissa tuotekategorioissa, jotka vaativat juuri niille suunniteltuja prosessorimalleja.
RISC-V-arkkitehtuuriin liittyen Hexus kertoo lisäksi, että markkinoille on noussut uusi startup-yritys SiFive. Yritys keräsi ensimmäisellä rahoituskierroksellaan 50 miljoonaa dollaria eri sijoitusyhtiöiltä työstääkseen työkaluja, joilla muut startup-yritykset voisivat tuottaa pienessä skaalassa kustomoituja piirejä ennen massatuotantoa.
SiFiven työkalut tarjoavat yrityksille useita erilaisia kustomoitavia sapluunoita eri tehtäviin erikoistuneista RISC-V-prosessoreista. Lisäksi yhtiö aikoo perustaa kauppapaikan, jossa käyttäjät voisivat jakaa itse suunnittelemiaan tiettyihin tehtäviin erikoistuneita RISC-V-ytimiä muiden käytettäviksi.
Lähde: Hexus
Kuulostaa hyvältä. Itse kuulin tuosta SiFivestä noin puoli vuotta sitten. Ilmeisesti kyseisessä firmassa on potentiaalia, mutta saa nähdä.
RISC-V olisi tervetullut kilpailija ARMin rinnalle.
RISC-V on tosiaankin vihdoin ensimmäinen täysin avoin käskykanta, jolla on laajalti tukea ja odotettavissa kunnollisia kääntäjiä yms.
Siinä on myös korjattu 1980-luvun RISC-käskykantojen pahimmat ongelmat:
* unaligned-muistiaccessit on sallittu (eli siis muistiosoitteen ei tarvi olla jaollinen muistiaccessin koolla)
* risc-V on little-endian eikä big-endian
* ei delay-slotteja
Ihan mielenkiinnosta, onko tämä vain yhteensopivuuskysymys olemassaolevien järjestelmien kanssa, vai onko tästä jotain perustavanlaatuista etua toteutuksessa?
Sekä-että.
Enemmän yhteensopivuusjuttu että
1) toimii esim. GPGPU-jutuissa paremmin yhteen näyttisten (jotka on myös little-endian) kanssa.
2) valitettavasti Cllä softan pystyy kirjoittamaan siten että se toimii vain jommalla kummalla endiannessilla. Maailmassa aina silloin tällöin tule vastaan softaa, joka bugaa "väärällä endiannessilla". x86 ja ARM on little-endian joten kaikki softat testataan niillä paljon paremmin, big-endianilla bugava softa menee helpommin testauksesta läpi.
3) Jos tehdään vaikka jotain verkkopelin kommunikaatioprotokollaa, yhteensopivuus alustojen välillä on paljon helpompaa jos ne käyttää samaa endiannessia.
Mutta toteutuksessakin on eroja, esim. SIMD-käskykannan tekeminen monella erikokoisella vektori- ja elementtityypillä onnistuu selvästi konsistentimmin little-endianilla kuin big-endianilla.
Oma prosessorinkehitystyökalumme tuki alunperin vain big endiania, mutta siinä vaiheessa kun aloimme tekemään SIMD-tukea, päätimme lisätä little endian-tuen jotta SIMD-toteutus olisi helpompi, ja päätimme, että SIMD-käskyt toimii vain little-endian moodissa.
Myös Debianista on tulossa RISC-V porttaus:
Manuel A. Fernandez Montecelo :: Personal Debian page — Debian GNU/Linux port for RISC-V 64-bit (riscv64) in Debian infrastructure (debian-ports)
Pikkasen epäilen että RISC-V:t yleistyy vain sellaisissa sulautetuissa toteutuksissa joihin jokatapaukseessa tarvii räätälöintiä (ts suoraan kaupanhylllyltä ARM/x86 ei käy) ja joissa ei tarvi käyttöliitymää.
Kun sellaissa toteutuksissa joissa tarvii sen käyttöliitymän on sen ohjelmapuolen teko ja ylläpito jo itsessään merkittävä kustannustekijä ja se kustannustekijä olisi vain suurempi jos ylläpidon joutuisi hoitamaan töysin itse sen oman RISC-V toteutuksen vuoksi.
Aluksi pääsääntöisesti näin, mutta ei tarvi sitä räätälöintiä: ARM vaatii royalteja jokaisesta ARM-ytimestä ja RISC-Vn voi tehdä ilmaiseksi. Ja x86 nyt on täysin ulkona noista hyvin vähävirtaisisista sulautuista jutuista.
ARMin lisäksi niissä kisaa lähinnä MIPS (johon RISC-V:llä on selvää sukulaisuussuhdetta, RISC-V on kuin "korjattu MIPS" josta jätetty MIPSin typeryydet pois).
Mutta aika näyttää mitä myöhemmin tulee.
X86lla ja ARMilla pyörivän linux-/unix-softan pitäisi kuitenkin kääntyä aika heittämällä RISC-V:lle sitten kun sille vaan löytyy valmis linux-distribuutio. Se, mitä tosin ei löydy niin nopeasti on esim. hyvin optimoidut softa-videodekooderit tms.
Mutta: ARM on Androidin ja iOSn de facto-prosessoriarkkitehtuuri, ja käytännössä kaikki android-softien natiivikoodi on ARM-koodia.
Sen takia ARMin asema on erittäin vahva, ja ARM tulee hyvin pitkään pysymään maailman eniten valmistettuna prosssoriarkkitehtuurina.
Onhan ARMille sitä infrastruktuuri paljon enemmän, mutta koko ajan sitä tulee lisää RISC-Vllekin.
RISC-V:stä löytyy esim. open sourcena kokonainen valmis prosessoripiiri, rocketchip.
Ja esim. sifiveltä voi tilata sitä kustomointityötä myös rahalla ettei tarvi itse tehdä kaikkea mitä ei open sourcena löydy.
x86 ei skaalaudu yhtä alas kuin ARM ja RISC-V mutta muuten en näkisi kovin suuresti eroja tämän suhteen.
Sekä ARMille että RISC-Vlle on hiukan helpompi tehdä etupäältään hyvin leveitä superskalaariprosessoreita kuin x86lle, mutta se etupään leveys ei ole mikään oleellinen pullonkaula nyky-x86lla.
Lähinnä eroja tulee siitä, että RISC-V on näistä selvästi "puhtain" arkkitehtuuri jossa on vähiten historian painolastia jota pitää vaan tukea ja jonka pitää toimia oikein vaikka sitä käytettäisiin hyvin harvoin. Tämä tarkoittaa että on helpoin suunnitella toimiva RISC-V-prossu ja vaikein suunnitella toimiva x86-prossu, ARMin mennessä siihen välille (kuitenkin lähemmäs RISC-V:tä kuin x86sta)
Toistaiseksi markkinoilla ei ole ollut numeronmurskauksen soveltuvia ARM-prossuja mutta ARM on julkaissut uuden SVE-vektorikäskykannan. Se on kätevämpi kuin mikään AVX-512 ja voi potentiaalisesti tarkoittaa sitä että ARM mahdollistaa tulevaisuudessa järeämmän numeronmurskauksen kuin x86 lähiaikoina. RISC-V:n SIMD-tilanne on vielä kai vähän vaiheessa, jotain ehdotuksia on mutta en tiedä niistä tarkemmin.
Tietääkö joku paljonko ARM vaatii rahaa per ydin? Uutisessa kun viitattiin RISC-V:n tulevan huomattavasti edullisemmaksi, niin lisensoinnin on oltava suht kallista
Taitaa ARM pitää tuonkaltaiset sopimusjutut NDA:n alla että voi veloitta sen mukaan paljonko kulloiseltakin asiakkaalta on nyhdettävissä.
https://www.arm.com/-/media/global/company/investors/Financial Result Docs/ARM_SB_Q3_2017_Financial_Data_NonFinancial_KPIs_Final.xlsx?revision=d5a14a82-5e25-4e47-bd95-41b80b6668f4&la=en
Tuossa on arm:n julkiset pörssitiedotteet.
Lisensointitulot $120-$190 miltsiä kvartaalissa ja rojaltit $250-$300miltsiä kvartaalissa. Yhteensä luokkaa 300-500 miltsiä kvartaalissa.
En osaa arvioida, että montako arm-soc:ia valmistetaan kvartaalissa, mutta jos nyt vaikka katsotaan älypuhelimia ja tabletteja:
Global smartphone shipments by quarter 2009-2017 | Statistic
https://www.statista.com/statistics/273268/worldwide-tablet-sales-by-operating-system-since-2nd-quarter-2010/
Havaitaan, että keskiarvona menee alle taala per älypuhelin/tabletti. Se vaan on varmasti jakautunut niin, että high-end Arm ytimiä käyttävistä menee se dollari ja low-endeimmistä ja itse suunnitelluista sitten jotain dollarin osia.
Tuon lisäksi armeja käytetään vaikka missä muualla. Smart-tv:eissä, stb:eissä (appletv:t, kaapeli-tv boksit, satelliitti-tv boksit, jne) ja miljoonissa eri embedded ratkaisuissa. Todennäköisesti Armin tuloja kyllä hallitsee tuo smartphone-puoli.
Kannattaa huomioida, että ARM lisensoi aika paljon muutakin kuin pelkkiä prosessoriytimiä ja ainoa tapa myydä lisenssejä ei ole per-chip vaan monet ip-lisenssit yleisestiottaen myydään aikalisensseinä, kaikenkattavina tai tuotekohtaisina tai sekä että, ja hinnat varmasti neuvotellaan myös ostajan mukaan joko ihan firmakohtaisesti tai joidenkin taulukoiden mukaisesti.
Sen tarkemmin ei uskalla sanoa, kun en jaksa tarkistella mikä on julkista tietoa ja mikä ei…
Mutta toki jos laskee tuollaisen könttäsumman saa siitä varmaan jonkun ajatuksen kustannuksista. Täysin ilman mitään oikeaa tietoa asiasta, niin homma mennee niin, että mitä enemmän niitä piirejä teet, sitä vähemmän tulee kustannuksia /piiri. Eli high-endin hinta ei välttämättä ole niin kallis sitten kuitenkaan.
No mites tämä Broadcom Vulcan/Cavium ThunderX2 josta Cray tekee uusimmat supertietokoneensa, niissähän lienee 4-way SMT ja kaksi NEON yksikköä per ydin ja kykenevät 4:ään FMA laskuun per kellojakso? Kyllä tuota jo jonkinlaisena numeronmurskaimena voi pitää eikä Cray varmaan ole sitä huonon numeronmurskaussuorituskyvyn takia valinnut.
Skylake-SP:n teoreettinen throughput-nopeus on 4 kertaa suurempi, 16 tuplatarkkuuden FMAta/kellojakso. (kaksi 8-leveätä vektoria)
Intelillä löytyy skylake-SP:stä 28-ytiminen versio. Eli intelillä koko piirillä raakoja teoreettisia flopseja 3.5 kertaa enemmän/kellojakso.
Mutta todellinen suorituskykyero millään tosimaailman softalla on tosin paljon pienempi, ja tuossa ThunderX2ssa on muistikaistaa oikein mukavasti.
Että joo, kyllähän tuo ThunderX2 oikeastaan sopii numeronmurskaukseen, muttei se siinä inteliä voita.
Jensen Huang interview: Nvidia’s post-Arm strategy, Omniverse, and self-driving cars
venturebeat.com
Hyvin todennäköisesti kyseessä ei ole mitään standardeja RISC-V-ytimiä vaan hyvin erikoistuneita ytimiä, jossa RISC-V-käskykantaa on laajennettu melko reippaasti.
RISC-V:ssä on virallisesti jätetty kahdeksasosa käskyenkoodausavaruudesta täysin vapaaksi omille laajennoksille, toinen kahdeksasosa vapaaksi tietyin rajoittein, ja käytännössä vielä paljon enemmän kun jätetään tukematta joitain harvinaisempia standardin mukaisia laajennoksia ja otetaan niiden opcodet omaan käyttöön.
ARMv8ssa taas (melkein) koko opkoodiavaaruus on jo käytetty ihan sen ARMv8-käskykannan toimesta, että sinne on saatu mukaan paljon enemmän kaikkea hyödyllistä eikä turhaan jätetty käyttämättä bittejä jotka voisi käyttää hyödyllsiesti.
Eli kun on haluttu lisäillä paljon omia erikoiskäskyjä, se on ollut helpompi tehdä RISC-Vn päälle kuin ARMin päälle.
Lisäksi ARMia on myös lisenssipoliittisesti vaikeampi laajentaa kuin RISC-V:tä. Voi tulla helpommin lisenssiongelmia vastaan esim. kääntäjien ja debuggaustyökalujen kanssa jos liikaa lähtee ARMia customoimaan, mutta haluaisi silti jotain tukea laajennoksilleen. Applella tosin on omia käskykantalaajennoksia ARMin päällä, että kyllä se neuvoteltavissa kuitenkin on.