Microchipillä keskeistä ei ole ISA- käskysarja-arkkitehtuuri tai piiri, vaan kykymme tukea laajan asiakaskunnan prosessointitarpeita, jotka vaihtelevat laajasti eri sovellusalueilla ja markkinoilla. Haluamme tarjota PIC-, AVR-, Arm-, MIPS- ja nyt myös RISC-V - piirejä ja kehitystyökaluja asiakkaillemme kaikenlaisina valittavina vaihtoehtoina, kirjoittaa Tim Morin, joka toimii Microchipin FPGA-liike- toimintayksikön tuotemarkkinoinnin johtajana.
SEURAAVAN SUKUPOLVEN FPGA-piireillemme on integroitu prosessorialijärjestelmä ASIC-lohkona, ja valitsimme RISC-V-käskykannan kaupallisesti tarjolle olevien arkkitehtuurien sijaan, koska se palvelee paremmin loppumarkkinoita ja asiakkaitamme. Piirit ovat erittäin tietoturvallisia, keskitason SoC-FPGA- järjestelmäpiirejä, joita käytetään laajasti kaikilla muilla markkina-alueilla paitsi mobiililaitteissa.
FPGA-järjestelmäpiireillä on erilaisia sovellusvaatimuksia näille eri loppumarkkinoille. Vastikään lanseeratulle PolarFire-järjestelmä-piireillemme päätimme tuoda markkinoille keskiluokan vähävirtaisen FPGA-piirin, joka pystyisi ajamaan Linuxin kaltaista käyttö- järjestelmää. Kun päättää tukea tällaista rikasta käyttöjärjestelmää tulee samalla abstrahoineeksi sovellusohjelmisto- kehittäjän irti alla olevasta käskykannasta ja mikroarkkitehtuurista.
On totta, että käskykanta yhdessä mikroarkkitehtuurin kanssa tuo tietyt teho-, suorituskyky- ja piiala-ominaisuudet (PPA, Power, Performance, Area) tietylle sovellukselle, mutta sovelluskehittäjälle kyse on lähinnä laskennan, I/O:n ja muistin hallinnasta. Jotkut kysyvät tietenkin ”Entäpä eko- systeemi? Toisille käskykannoille on olemassa niin paljon tukea”.
TÄMÄ ON TOTTA ja tätä pitääkin odottaa kypsältä käskykannalta. Mutta kannattaa pitää mielessä, ettei millään kahdella markkinoilla olevalla SoC-piirille ole samanlaista muistinmappausta, I/O:ta, väyläkytkintä, muistiohjainta, käynnistysprosessia, jne. Jokainen prosessoritoimittaja suunnittelee ja valmistaa tuotteita asiakkaiden tarpeisiin, eikä kaikilla asiakkailla koskaan ole samoja tarpeita. Ekosysteemit ovat hajanaisia ja jopa saman käskykannan sisällä suunnittelu täytyy kääntää, jos siirtyy toimittajalta A toimittajaan B.
Tämä ei tule koskaan muuttumaan. Tämä on myös pääasiallinen syy, miksi OEM- yritykset siirtyvät rikkaaseen käyttö- järjestelmään ja abstrahoivat alla olevan piin. Kaikki SoC-piirit ovat erilaisia! Kun ohjelmistonsuunnittelijoita on 10 jokaista rautasuunnittelijaa kohti, yritykset hyödyntävät näiden ohjelmistokehitystä niin paljon kuin mahdollista.
KUN TEIMME PÄÄTÖKSEN tukea rikasta käyttöjärjestelmää, pääsimme arvioimaan mitä asiakkaidemme vaatimukset täyttäviä prosessori-IP:tä markkinoilla oli tarjolla. Tiesimme, että lopulta käyttöjärjestelmä abstrahoi kaiken tämän pois, teho-suorituskyky-piiala -vaatimuksia lukuun ottamatta tietenkin. Tämän takia päädyimme valitsemaan RISC-V:n.
RISC-V antoi meille mahdollisuuden innovoida arkkitehtuuritasolla ilmaiseksi. Se antaa asiakkaillemme mahdollisuuden vaikuttaa mikroarkkitehtuuriin tavoilla, joiden ei aiemmin uskottu olevan mahdollisia. Tämän ansiosta he voivat kehittää räätälöityjä suunnitteluja esimerkiksi kuvantamisen ja koneoppimisen sovelluksiin, turvallisuus- kriittisiin järjestelmiin, teollisuuden IoT - ratkaisuihin, suojattuun tietoliikenteeseen ja asejärjestelmiin. Esimerkiksi PolarFire- järjestelmäpiireihin rakensimme yhdessä IP-kumppani SiFiven kanssa 5-ytimisen prosessorialijärjestelmän, jolla voidaan ajaa kovia reaaliaikasovelluksia (hard real-time) sovelluksia ja SMP-Linuxia koherentilla viestivaihtojärjestelmällä samassa prosessorialijärjestelmässä käyttäen samaa käskykantaa.
KUINKA TÄMÄ TOTEUTETTIIN? Kaikki lähtee asiakkaiden vaatimuksista, joilla voidaan ohjata konetta deterministisesti ja samalla hyödyntää Linux- ekosysteemiä yhä pienemmissä laitteissa, joissa on joko lämpö- tai pienen tehonkulutuksen budjetit. Jotkut suhteellisen yksinkertaiset muutokset olemassa oleviin CPU-määrityksiin antoi mahdollisuuden tähän. Muutoksiin kuuluivat:
- Käyttäjille annettiin mahdollisuus muuntaa osia L1-muistialijärjestelmästä tiukasti integroituun muistiin, johon on suora pääsy ja jossa ei tule lukuvirheitä.
- Käyttäjille annettiin mahdollisuus sammuttaa säikeenennakointi (brach predictions) millä tahansa ytimellä.
- Käyttäjille annettiin mahdollisuus partitioida L2-muistialijärjestelmä ns. Löysästi integroiduksi LIM-muistiksi (Loosely Integrated Memory). LIM-muisti voidaan sitoa prosessoriin determinististä prosessointia varten.
Lopputuloksena PolarFire-järjestelmäpiiri antaa asiakkaiden käyttöön innovatiivisen RISC-V-arkkitehtuuriin perus- tuvan FPGA-järjestelmän, joka antaa heille mahdollisuuden tuoda yhteen reaaliaikasovellukset ja Linuxin yhdellä piirillä. Tämän ansiosta he voivat toteuttaa vähävirtaisia, turvallisia ja luotettavia suunnitteluja.
Kirjoittaja Tim Morin on tuotemarkkinointijohtaja Microchipillä. Kolumni on alun perin julkaistu ETndigi-lehden numerossa 2/2019. Lehteä voi lukea täällä.