Desmit stundas iegultai virtualizācijai

The thrilling potential of SixthSense technology | Pranav Mistry (Novembris 2018).

Anonim

Dažas lietas, ko vērot, izstrādājot produktus iegultajam tirgum, izmantojot daudzkodolu apstrādi un virtualizāciju

AR MARĶĒJU HERMELINGU
Wind River Systems
Alameda, CA
//www.windriver.com

Ir daudz koncepciju, kas jāpatur prātā, izstrādājot produktus iegultajam tirgum, izmantojot daudzkodolu apstrādi un virtualizāciju. Šeit mēs domājam, ka ir 10 vissvarīgākie.

1. Padomājiet par savām šķirošanas iespējām

Ir vairākas iespējas, lai sadalītu daudzkodolu sistēmu. Simetriskā daudzprocess (SMP) ir viena operētājsistēma, kas kontrolē vairākus serdeņus, taču tam ir dažas plānošanas papildu izmaksas un sarežģītības. Asimetriskā daudzprocessēšana (AMP) var būt labāk piemērota iegultajām lietojumprogrammām, jo ​​tajā tiek izmantota atsevišķa operētājsistēma katrā kodolā, kas ļauj sistēmas izstrādātājam apvienot reāllaika un atvērtā koda operētājsistēmas vienā un tajā pašā dizainā. Tas arī ļauj dažādām operētājsistēmām darboties ar dažādiem serdeņiem, piemēram, tiem, kas ir optimizēti grafikam vai tīklam.

Virtualizācija dod iespēju abstraktēt operētājsistēmas slāni no procesora. Virtualizācija parasti tiek panākta, ieviešot slāni (virtuālās mašīnas monitoru vai hipervisoru) tieši procesora augšpusē, pēc tam izveidojot virtuālās mašīnas, kurās operētājsistēmas var izpildīt (sk. 1. att.).

1. attēls. Dažādas daudzkodolu konfigurācijas.

Hypervisor var tikt izmantots, lai laiku dalītu vienu kodolu starp vairākām operētājsistēmām (darbojas virtuālajās mašīnās). Tā var arī sadalīt četrkodolu mikroshēmu divās divvirzienu SMP starpsienās. Visbeidzot, to var izmantot, lai uzraudzītu asimetrisko daudzprocesu sistēmu (vai sAMP uzraudzītu AMP); vadītājs nodrošina sāknēšanas, dzīves ciklu (pauzi, restartēšanu) un uzticamības iespējas un saīsina izstrādes laiku salīdzinājumā ar tradicionālo AMP sistēmu. Virtualizācija nodrošina iespēju nodalīt un vienlaikus nodrošina drošību un uzticamību.

2. Padomājiet par operētājsistēmas izvēli

Multicore un virtualizācija nodrošina iespēju apvienot dažādas operētājsistēmas starpsienās vienā produktā. Piemēram, varat izmantot RTOS kritiskiem uzdevumiem un izmantot vispārējas nozīmes operētājsistēmu, piemēram, Linux gadījumos, kad laiks ir mazāk svarīgs. Vai arī izmantojiet RTOS kopā ar grafisko lietotāja interfeisu (GUI), kas ir ļoti atdalīts, lai jūs varētu bieži atjaunināt GUI funkcionalitāti, neietekmējot RTOS darbību (un sertifikāciju).

Operētājsistēmas izvēle arī ļauj mantotajai OS un lietojumprogrammām vienā nodalījumā apvienot ar jaunu OS citā, lai, piemēram, pievienotu vairāk jaunu funkcionalitāti.

3. Apsveriet konsolidāciju

Multicore sniedz iespēju apvienot esošos daudzprocesoru dizainus ar vienprocesora dizainu. Jo īpaši tādās nozarēs kā medicīniskā un rūpnieciskā darbība, dažādu pārstrādātāju starpā bija jānošķir dažādi drošības vai sertifikācijas līmeņi. Multicore un virtualizācija dod iespēju kombinēt šīs daudzprocesoru sistēmas uz dažādiem mikroshēmas kodoliem, kur virtualizācijas slānis uztur atdalīšanu un nodrošina, ka sistēma ir sertificējama (sk. 2. att.).

2. attēls. Migrēšana no daudzprocesora uz daudzkodolu.

4. Padomājiet par nākotni

Iespējams, ir pienācis laiks aplūkot jūsu sistēmas arhitektūru un sagatavoties nākotnei. Ja izmantojat vienas kodola ierīci, ņemiet vērā, ka pārstrādātāji tuvākajos gados iegūs tikai vairāk kodolu. Sagatavojot arhitektūru tagad, lai būtu elastīga un gatava daudzkodolu procesam, varēsit uzlabot konkurenci.

5. Apsveriet paralēlismu

Vairāki serdeņi nodrošina patiesu paralēlumu; dažādas operācijas tiks izpildītas tieši tajā pašā laikā, mainot mainīgos un buferus jūsu atmiņā. Esošā lietojumprogramma, kas lieliski darbojas vienā kodolā, var parādīt sacīkšu apstākļus, braucot ar daudzkodolu.

Atkarībā no jūsu pieteikuma, ir vairākas pieejas, lai izmantotu vairāku kodolu. Ir iespējams izpildīt vairākus jūsu pieteikuma gadījumus SMP, AMP vai sAMP konfigurācijās. Šeit rodas jautājums, vai jūsu pieteikums var gūt labumu no vairākiem gadījumiem.

Pārrakstot kodu, var būt ievērojamas veiktspējas priekšrocības, lai izmantotu vairākus serdeņus. Tas ir jo īpaši vērtīgs ar lietojumprogrammām, kurām ir vairākas atsevišķas darbības plūsmas, kurās katra plūsma var tikt piešķirta atsevišķam procesoram, un visi darbojas neatkarīgi. Viena procesora vidē kodu nevarēja paralēli sadalīt. Pārrakstot kodu, var ievērojami palielināt ātrumu vai samazināt enerģijas patēriņu par vienu un to pašu veiktspēju.

6. Saglabājiet resursus prātā

Virtuālajā sistēmā joprojām ir sastrēgumi, un parasti tie ir atmiņa, kešatmiņas un I / O. Izstrādājot virtualizētu sistēmu, ir jāpievērš uzmanība tam, kā dažādiem kodoliem piekļūst sistēmas atmiņai. To var automātiski apstrādāt ar hipervisoru, taču, lai iegūtu vairāk resursu sašaurinātas lietojumprogrammas un atkļūdošanas, skaidrs resursu kartēšana palīdz izstrādes procesam.

I / O var būt sašaurinājums, ko var novērst, vai nu palielinot I / O resursus, vai arī nodrošinot, ka ienākošie dati tiek efektīvi novietoti uz vairākiem kodoliem. Dažām sistēmām tas var būt tikpat vienkāršs kā konkrēta koda piešķiršana I / Os komplektam, bet citiem tā var būt sarežģītāka. Tas var arī ietekmēt daudzkodolu programmatūras arhitektūras izvēli, izmantojot dažādus veidus, kā sadalīt operētājsistēmas uz kodoliem.

7. Neaizmirstiet drošību

Viena no galvenajām virtualizācijas priekšrocībām ir iespēja padarīt sistēmu drošāku. Vienā virtuālajā mašīnā, kurā ir stingra drošība, darbinot tādas pamata lietojumprogrammas kā piekļuves kontrole vai resursu pārvaldība, sistēmai var pievienot citas programmas, nekaitējot drošībai. Tas kļūst aizvien svarīgāks, ja rūpnieciskajām un iegultām sistēmām ir arvien vairāk tīkla saites.

8. Neaizmirstiet startēšanu

Virtualizācijas sistēmas palaišana ar vairākiem kodoliem ir ne tikai jautājums par ieslēgšanas slēdža nospiešanu. Programmatūrai ir jāapzinās, ka tas ir daudzkodolu sistēma un izraisa vienu kodolu viena kodola režīmā, lai veiktu sākotnējos atmiņas un I / O testus; pretējā gadījumā rodas haoss, ar vairākiem serdeņiem pārbaudes atmiņas un perifērijas ierīces, kas varētu būt izlases veidā. Tas ir īpaši svarīgi sistēmas atiestatīšanas vai strāvas zuduma dēļ, jo dators var atkārtoti ieslēgt atkļūdošanas sesiju.

Atkal hipervisor nodrošina šo funkciju no lodziņa. Ar startēšanu saistītais jēdziens ir lauka uzlabošana. Daudzas sistēmas saņem atjauninājumus šajā jomā un ir jāuzsāk ar jaunināšanu pēc iespējas mazāk laika. Virtualizācija nodrošina jaukas iespējas, jo ir vienkārši palaist papildu operētājsistēmu karstām rezerves daļām, kuras var ielādēt, kamēr sākotnējā OS tiek restartēta. Šī karstā rezerves var koplietot to pašu kodolu kā OS, kurā ir slodze, vai arī tā var darboties atsevišķā kodolā.

9. Neaizmirstiet rīkus

Ar liela apjoma iegultām sistēmām problēmas bieži vien nav tikai atkļūdošana, bet tiek atrasts, kā atkļūdošanu. Analīzes rīki nodrošina sistēmas pārskatu (notikumu pēdas, atmiņas izmantošana, kodu pārklājums un daudz ko citu), lai atrastu vietas, kurās izpilde ir nepareiza, tādā veidā, ka atkļūdotājs var tikt izmantots faktiskā koda izpētei.

Multicore sistēmas atkļūdošana ir nedaudz vairāk iesaistīta nekā viena kodola sistēma. Padomājiet par to, lai apturētu lietošanu vienā kodolā. Citas sistēmas kodols turpina gūt panākumus. Tādēļ jebkura saziņas bufera starp programmām uz dažādiem serdeņiem būs ātri aizpildīt un pārpildīt. Arī cenšoties noteikt globālo sistēmas stāvokli visās serdes ir grūti, nespējot pārtraukt visus serdes uzreiz. Mijiedarbība ar mikroshēmu, izmantojot JTAG saskarnes, nodrošina spēju vienmēr apturēt visus kodolus uz mikroshēmas (gandrīz) un vienlaicīgi var būt ļoti noderīgi sistēmas palaišanas laikā (skat. Nr.8).

10. Izpētiet un izmērojiet

Multicore sistēmas ir pilnīgi jauna pieeja iegultajam dizainerim un var nodrošināt ievērojamus veiktspējas priekšrocības un izmaksu ietaupījumus. Bet tie ir ļoti atkarīgi no pieteikuma. Runājot ar dažiem ekspertiem, tiks pievērsta uzmanība precīzām projekta vajadzībām.

Labākās multicore konfigurācijas (SMP, AMP, sAMP vai virtualizētas) atrašana nav vienkārša; tas prasa rūpīgu izmeklēšanu. Pat tad, ja konkrēta konfigurācija ar augstu uzticamības pakāpi nav precīzi paredzama konkrēta lietojuma veiktspēja.

Konfigurācijas un izpildes kritēriju noteikšana patiešām ir vienīgais veids, kā nodrošināt pareizu darbību. Salīdzinošie kritēriji tomēr ir ļoti vispārīgi, un jūsu pieteikums var atšķirīgi noteikt aparatūru nekā etalons.

Visprecīzākais etalons ir tas, kas iegūts no jūsu pieteikuma, testa komplekts, kas mēra konfigurācijas lietojumprogrammas sniegumu un ziņo par jūsu vajadzībām atbilstošajiem numuriem. Virtualizācija atkal palīdz iestatīt konfigurāciju.

Piemērs

Pēdējos gados ir ieviesti iegulto sistēmu hiperprinteri. Viens no šādiem piedāvājumiem ir Wind River Hypervisor, kas nesen ir atjaunināts līdz 1.1 versijai un darbojas ar viena kodola un daudzkodolu procesoriem. Jaunas iespējas ietver atbalstu jaunākajām Intel mikroarhitektūrām, piemēram, procesoriem, kuru pamatā ir Nehalem (ar Freescale QORIQ atbalstu pēc šī gada beigām), integrāciju ar jaunākajām VxWorks un Wind River Linux versijām, vienlaikus atbalstot citas operētājsistēmas, lai nodrošinātu lielāku elastību, papildu iespējas starpvirziena mašīntīklam un optimizācijai izmantošanai kopā ar On-Chip atkļūdošanu 3.2. ■