Come configurare smartphone e PC. Portale informativo
  • casa
  • Recensioni
  • Qualche parola sul test di sistemi hardware complessi. Scelta della piattaforma hardware...

Qualche parola sul test di sistemi hardware complessi. Scelta della piattaforma hardware...

Un assistente continua a dirci la stessa cosa: “Voi siete analisti. È necessario navigare nelle moderne architetture di macchine. Devi imparare a scegliere una piattaforma hardware, perché la velocità di elaborazione dei dati ed esecuzione dei programmi applicativi lo è fattore chiave per affari. Pertanto, l'argomento della lezione di oggi sarà la microistruzione per il recupero degli operandi dalla memoria nei processori di terza generazione. Penso che tu capisca quanto a fondo studieremo le moderne piattaforme hardware =).

Ho pensato (che è fantastico di per sé): In base a quali criteri, quali approcci dovresti scegliere una piattaforma hardware? Su quali principi scelgono le aziende o deve scegliere il componente hardware del loroInfrastruttura IT? Non ho trovato risposte specifiche a tutte le domande, ma ho trovato l'articolo "Ottimizzazione del processo di scelta di una piattaforma hardware per applicazioni aziendali critiche" e ho deciso di presentarti il ​​più interessante. E poiché è necessario un collegamento a Elashkin Research quando si utilizzano i materiali del sito, sono felice di dirlo: http://www.elashkin.com:

Operazione obbligatoria per qualsiasi implementazione o modifica di un sistema informativo esistente è una valutazione delle prestazioni del sistema richieste e pianificare le risorse informatiche necessarie per la sua implementazione. Attualmente non esiste soluzione esatta di questo problema vista generale e se, nonostante la sua complessità e il suo costo, un tale algoritmo viene proposto da qualsiasi produttore, anche piccole modifiche all'hardware, alla versione del software, alla configurazione del sistema o al numero o al comportamento standard degli utenti porteranno a errori significativi. Tuttavia, ci sono molti modi per valutare la configurazione software e hardware richiesta per ottenere le prestazioni desiderate. Tutti questi metodi possono essere utilizzati nel processo di selezione, ma il consumatore deve comprenderne la portata e i limiti. Maggioranza metodi esistenti la valutazione delle prestazioni si basa su un particolare tipo di test. Può essere distinto due tipi principali test: componente e integrale. In test dei componenti viene eseguito il test dei singoli componenti della soluzione, che vanno dalle prestazioni dei processori o dei sottosistemi di archiviazione delle informazioni al test delle prestazioni del server nel suo insieme, ma senza il carico utile sotto forma di una particolare applicazione aziendale. approccio integrale caratterizzato da una valutazione delle prestazioni della soluzione nel suo complesso, sia nella sua parte software che hardware. In questo caso, è possibile utilizzare sia un'applicazione aziendale che verrà utilizzata nella soluzione finale, sia alcune applicazioni modello che emulano alcuni processi aziendali e carichi di lavoro standard. La classificazione dei test di Elashkin Research si basa sul confronto tra l'hardware e il software utilizzati nei test e pianificati per l'installazione presso la sede del cliente. In base a questa classificazione si possono distinguere i seguenti tipi di prove:

Diamo un'occhiata più da vicino a ciascun gruppo di test. C'è un numero enorme prove universali(SPECint2000 per operazioni a orientamento intero, SPECfp2000 per operazioni in virgola mobile, ecc.), ma i più famosi sono i test TPC(Consiglio per le prestazioni dell'elaborazione delle transazioni). TPC è un'organizzazione indipendente senza scopo di lucro fondata per ricercare le prestazioni dei sistemi di elaborazione delle transazioni e di gestione dei database (DBMS) e per diffondere informazioni sulle prestazioni imparziali e riproducibili nei benchmark TPC per l'industria dei computer. I test più utilizzati di questa organizzazione nel settore sono TPC-C (test di elaborazione delle transazioni) e TPC-H (query di data warehouse). La stessa procedura di prova include una chiara standardizzazione e obbligatorio audit da parte di una società indipendente certificata. D'altra parte, i test stessi sono estremamente semplificati e differiscono notevolmente dai sistemi reali. Dal nostro punto di vista, questi test forniscono solo Informazioni importanti per confrontare hardware diverso e soluzioni software, consentono di confrontarli tra loro, ma non sono applicabili per la scelta di un sistema specifico per risolvere il problema del cliente. I test specializzati sono molto più veri. Questi test utilizzano un software che può essere utilizzato nel progetto. Le prove più famose benchmark SAP. Durante il test secondo la metodologia SAP, viene testato il funzionamento di tutti i sistemi e sottosistemi: processori, I/O, traffico di rete, gestione degli errori e altro. Ogni Benchmark dell'applicazione standard SAP consiste in un insieme di script eseguibili che simulano transazioni e processi aziendali tipici che corrispondono ai normali scenari di lavoro con il sistema. SAP offre una serie di dati di test per il test. Affinché i test delle prestazioni SAP siano conformi condizioni reali sfruttamento e potrebbero essere utilizzati per il dimensionamento, simulano il comportamento di un cliente che compila moduli standard. A ciascuno di questi client simulati viene concesso un ritardo di 10 secondi prima di eseguire il passaggio successivo nei dialoghi, che corrisponde al pensiero medio in tempo reale degli operatori esperti dal vivo. Durante l'esecuzione dei test, il numero di client simulati in esecuzione contemporaneamente aumenta continuamente fino a quando il tempo di risposta in linea del sistema supera i 2 secondi specificati per i test. Questo carico è molto di più sistemi reali rispetto al carico nei test TPC, poiché tiene conto del fatto che un tempo di risposta del sistema accettabile è più importante per il funzionamento rispetto a numero totale transazioni effettuate. Questa modifica relativamente piccola ha un impatto decisivo sulle impostazioni del sistema e sul carico di tutti i suoi componenti, rendendolo il più vicino possibile al vero lavoro degli utenti. Di conseguenza, i test specializzati, e in particolare il benchmark SAP, sono più adatti per valutare le prestazioni delle piattaforme server. A causa del focus dei test sulla comprensione dei loro risultati da parte di persone che prendono decisioni e non sono tenute a comprendere i dettagli tecnici e i termini, il risultato del test è il numero di transazioni commerciali completamente elaborate. Tali operazioni possono essere: il numero di ordini inseriti, il numero di merci prodotte, il numero di ordini di montaggio, ecc. In generale, tali prove sono molto più vicine a vita reale, ma anche avere una serie di svantaggi. Innanzitutto, questo è un piccolo numero di applicazioni per le quali sono stati sviluppati tali test. Oltre al benchmark SAP, è possibile notare Oracle Applications Standard Benchmark, PeopleSoft, i test Siebel e una serie di altre applicazioni. Se prevedi di utilizzare altre applicazioni o hardware non standard e applicazioni software, anche questi test non sono molto informativi. Inoltre, la configurazione hardware, come nel caso dei test TPC, è focalizzata sul raggiungimento massima performance e differisce da quelle configurazioni che verranno utilizzate in un progetto reale.

Ancora di più risultati accurati si può ottenere in prove pilota. Nell'ambito di tali progetti, i rappresentanti del produttore o dell'integratore di sistema testano e configurano l'applicazione su apparecchiature il più vicino possibile al sistema del cliente. In questo caso, vengono utilizzati i dati più accurati sui profili di carico dell'applicazione e si ottengono i consigli di selezione più accurati. Oltretutto, i test pilota consentono di ottimizzare le prestazioni dell'applicazione grazie alla messa a punto dei parametri dell'ambiente operativo e ad una speciale configurazione della piattaforma server. Un importante risultato applicato dei test pilota è la capacità di utilizzare i loro risultati per costruire un modello di comportamento del sistema sotto vari carichi e, di conseguenza, una metodologia per calcolare la configurazione del server richiesta per le condizioni di lavoro nel progetto di un cliente. Questo processo è chiamato dimensionamento(Ridimensionamento). Il dimensionamento si basa su determinati modelli matematici basati sul numero di utenti, sul throughput, sulla potenza di elaborazione e sui risultati dei test prestazionali. La scelta di un modello per i calcoli dipende dalla quantità di informazioni disponibili sulle condizioni di funzionamento dell'applicazione presso l'azienda del cliente. Come maggiori informazioni sul comportamento degli utenti, tipi di richieste e transazioni, attività durante certo periodo e la frequenza delle richieste raccolte, più accuratamente sarà possibile costruire un modello operativo dell'applicazione e scegliere la configurazione ottimale della piattaforma server.

Confrontando tutti i metodi sopra elencati, si può notare che nella serie test pilota universali – specializzati aumenta l'accuratezza delle stime delle prestazioni richieste e, di conseguenza, la validità della scelta. Dal nostro punto di vista, il processo di selezione dovrebbe basarsi su tutti i tipi di test, ma ogni test ha il proprio ambito. I test TPC e altri test universali consentono di scegliere le piattaforme più promettenti e confrontare le offerte di diversi produttori, ma sono solo informazioni di riferimento che non tiene conto delle specificità del business. Test specializzati consentono di selezionare con maggiore precisione un modello di server specifico e la sua configurazione. Tuttavia, le decisioni più informate vengono prese solo sulla base dei risultati del prove di carico. Solo loro ti consentono di configurare in modo ottimale la piattaforma server selezionata e ottimizzarla per le massime prestazioni.

“Le prestazioni del sistema sono uno degli aspetti chiave del funzionamento infrastruttura dell'informazione. Tuttavia, questo è uno dei problemi più difficili e complessi. Molti momenti difficili risiedono nel campo della sottile interazione tra i componenti software e hardware dei sistemi e per capirli non è sufficiente avere esperienza di lavoro solo con il livello software o hardware. Sfortunatamente, il numero di specialisti che comprendono i processi profondi in tali sistemi è piccolo, nonostante il fatto che solo attraverso un'ottimizzazione profonda sia possibile ottenere una crescita delle prestazioni di decine, centinaia e persino migliaia di punti percentuali. L'influenza di una scelta competente della piattaforma e della sua ottimizzazione sui parametri economici del funzionamento dei sistemi e del ritorno sull'investimento non può essere sopravvalutata, ma l'attuale pratica industriale di scegliere piattaforme software e hardware e la loro configurazione è tutt'altro che perfetta. Questo è tanto più sorprendente in quanto accesso libero c'è un'enorme quantità di informazioni fattuali sulla performance vari sistemi e i risultati dei test, ma per poterlo utilizzare è necessario comprendere le condizioni e i principi del test, l'essenza dei processi che si verificano in tali sistemi e i limiti e i vantaggi di ciascun metodo ... " Mikhail Elashkin, Direttore della ricerca Elashkin

"Caratteristica approccio moderno all'IT dal lato aziendale è che l'infrastruttura IT non è più accessoria, costosa. Oggi fa parte dell'attività stessa. Vediamo come i clienti smettono di trattare i nostri servizi dalla posizione di "server con uno o un altro numero di processori, RAM, dischi, ecc." Ci hanno assegnato compiti completamente diversi ora. "Ho bisogno di elaborare 25.000 documenti all'ora." "Devo essere in grado di eseguire 30 handler contemporaneamente." "Ho bisogno di supportare modalità operativa 28 filiali" - questi sono i requisiti tipici affari moderni. Come possiamo dirlo questa attrezzatura soddisfa le esigenze del cliente? Naturalmente, non dai risultati dei test del settore. Possiamo ottenere la stima più accurata dai risultati delle prove di carico. Questo è un lavoro per veri professionisti che sono profondamente esperti di strumenti software applicati e di sistema, che sono sensibili all'hardware. La nostra azienda dispone di un gruppo di esperti specializzato che si occupa del test del software applicato. Solo sulla base delle sue esperte valutazioni possiamo garantire al cliente che la soluzione proposta farà fronte all'incarico a lei affidato…” Vyacheslav Elagin, azienda I-Teco, direttore del Competence Center.

PS: Certo, non so come sia tradotto dal francese, ma è molto divertente...
________________
Ordina la rimozione dei detriti da costruzione www.grigus.ru. Lavoro molto veloce e professionale. Rifiuti domestici, rifiuti edili: tutto viene portato via da camion e camion KAMAZ. Esportazione di bidoni della spazzatura.

Questa voce è stata pubblicata il 23 novembre 2006 alle 00:52 ed è archiviata sotto .

Piattaforme hardware

Compatibilità per piattaforma hardware significa che i computer sono costituiti da nodi e dispositivi che hanno lo stesso sistema di comando e codifica dei dati, e quindi possono essere scambiati. Sebbene ciò non sia necessario, se i dispositivi differiscono notevolmente in specifiche tecniche, uno non può essere sostituito dall'altro. Ma per diverse piattaforme hardware, tutti i componenti sono completamente diversi e incompatibili.

Per i PC, ora sono rimaste solo due piattaforme hardware competitive: PC IBM e Apple Macintosh (Figura 3) Inoltre, l'IBMPC domina chiaramente, oltre il 90% dei computer appartiene a questa piattaforma. Un tempo, Apple Macintosh era più adatto per la grafica e l'editoria, ma ora le capacità di entrambe le piattaforme sono uguali qui. Tuttavia,


Computer Apple non scompaiono, ma trovano comunque uso.


Per i server ad alte prestazioni, o viceversa, i chip primitivi, esistono altre piattaforme hardware: SunMicrosystems, Compaq, HewlettPackard, ecc.

Nella configurazione hardware del computer ruolo importante gioca principio dell'architettura aperta. Questa è la costruzione di un computer secondo un principio modulare, quando tutti i dispositivi informatici dello stesso tipo hanno:

1. protocolli (standard) concordati per la trasmissione dei dati;

2. dimensioni geometriche standard e connettori unificati per il collegamento.

L'architettura aperta consente Aggiornamento(Aggiornamento), cioè aggiornare un computer semplicemente sostituendo un dispositivo con un altro senza influire su tutto il resto.

Invece di un dispositivo obsoleto, ne hanno messo uno nuovo, con i migliori parametri e collegare alla stessa presa. Il sistema operativo registra un nuovo dispositivo e lo determina i migliori piloti. Se non sono all'interno del sistema operativo, allora i driver giusti venire da mezzi esterni o da Internet. Successivamente, il computer inizia a funzionare con parametri che sono molte volte migliori. Una procedura semplice ed efficace.

Sostituzione di un dispositivo hardware con un altro la migliore prestazione svolto in una certa misura in alcuno dispositivi tecnici, ma da nessuna parte raggiunge tali proporzioni come nella tecnologia informatica. Ad esempio, è difficile immaginare un'auto in cui vengono messe nuove parti del motore e della trasmissione al posto di quelle obsolete, a seguito delle quali la potenza dell'auto viene aumentata più volte.

L'aggiornamento ha i suoi limiti, e su un molto vecchio computer non puoi mettere tutto il più moderno. Di tanto in tanto compaiono standard di connessione fondamentalmente nuovi, vecchi bus di sistema interrotto, gli standard sono cambiati dispositivi di base come la scheda madre. E poi l'aggiornamento diventa privo di significato, è più facile acquistare un nuovo computer.

La piattaforma IBMPC ha un'architettura aperta, mentre Apple ne ha una chiusa.

L'architettura aperta ¾ è esattamente ciò che ha permesso alla piattaforma IBM di assumere una posizione di leadership nella produzione di computer e sconfiggere i concorrenti in una sola volta. E ora i computer basati sulla piattaforma IBM sono dominanti nel mondo.

Tuttavia, la stessa IBM, introducendo un'architettura aperta per i suoi prodotti, ha risolto con successo problemi tattici, ma ha perso strategicamente. Dispositivi con architettura aperta per computer IBM ha iniziato a creare centinaia di aziende in tutto il mondo - in America, Europa, Asia. Non ci sono divieti legali su questo. E l'architettura del bus tecnicamente aperta lo rende abbastanza facile.

Di conseguenza, IBM ha cessato di essere l'unico leader nella produzione di tecnologia informatica. È diventata solo una delle principali società tra i primi cinque produttori.

  1. Soluzioni hardware- si tratta di schede speciali che trasportano processore aggiuntivo, RAM e memoria video di un'altra piattaforma hardware. In realtà, sono un computer separato inserito in un PC esistente. Come un normale computer, può essere dotato di qualsiasi sistema operativo a scelta dell'utente e del relativo software. Allo stesso tempo si può facilmente passare da un sistema operativo all'altro, scambiare file tra di loro ed eseguire altre operazioni, mentre le prestazioni di entrambi i sistemi rimangono elevate e non si influenzano a vicenda, poiché non hanno praticamente risorse condivise, ad eccezione di il mouse, la tastiera e il monitor. Lo svantaggio principale di tali schede è il loro alto prezzo, anche se leggermente più piccolo di un singolo PC.
  2. Soluzioni software- Si tratta di programmi di emulazione appositamente scritti che consentono di eseguire software progettati per personal computer di un tipo su un altro PC. Esistono diversi tipi di emulatori:
    • emulatori di esecutori consentono di eseguire programmi scritti per altri sistemi operativi;
    • emulatori hardware riprodurre il reale Personal computer con tutte le sue caratteristiche hardware e software. In questo caso, l'utente ottiene il controllo assoluto sul suo PC virtuale e può eseguire quasi tutte le operazioni su di esso, come con un computer reale. Lo svantaggio di questi emulatori è una certa lentezza;
    • emulatori di sistemi operativi consentono di riprodurre su PC un sistema operativo incompatibile con questa piattaforma hardware. Un esempio di un tale emulatore è un emulatore del sistema operativo. Sistemi Windows, che consente a un computer Macintosh di eseguire un sistema operativo scritto per PC compatibili con IBM. Tali programmi funzionano un po' più velocemente degli emulatori hardware, ma hanno molte limitazioni. Ad esempio, l'utente non può scegliere personalmente il sistema operativo.

Secondo definizione ufficiale, proposto da OSHWA.org: “Le soluzioni hardware aperte sono soluzioni la cui progettazione è pubblica e aperta allo studio, alla modifica, alla distribuzione, alla vendita. Questo vale sia per la soluzione stessa che per i suoi derivati ​​e parti costitutive. I dati iniziali del progetto e dei suoi componenti devono essere presentati in un formato che ne consenta l'ulteriore modifica. IN ideale l'hardware aperto utilizza strumenti e materiali prontamente disponibili, processi standard, infrastruttura aperta, contenuti gratuiti e strumenti di sviluppo open source codice sorgente per dare agli utenti la massima libertà di utilizzo."

Vale la pena notare qui che le piattaforme hardware aperte non sono necessarie per offrire strumenti di sviluppo gratuiti. Per "strumenti di sviluppo" si intende vasta gamma strumenti di progettazione e debug, che vanno da strumenti di misura (multimetri, oscilloscopi) e ambienti integrati (IDE), a utility basate sul web che forniscono una gestione funzionale del progetto. È importante notare che molte delle famose piattaforme open source come Arduino, LaunchPad, BeagleBone e STM Nucleo forniscono gratuitamente librerie software, esempi di codice e persino interi framework come Arduino IDE o mbed.org.

Alcuni strumenti di sviluppo sono essi stessi piattaforme aperte, il che li rende molto accessibili a causa del loro costo relativamente basso. Un esempio è la scheda di misurazione universale Red Pitaya, che scorre sotto Controllo Linux. Infatti, Red Pitaya è un complesso di misura che sostituisce le apparecchiature di laboratorio inaccessibili agli utenti ordinari a causa del suo prezzo elevato. Red Pitaya offre 125 ingressi analogici MSPS e 100 uscite KSPS al servizio del progettista. Questo universale dispositivo di misurazione può agire come una varietà di strumenti standard, come: un oscilloscopio con una larghezza di banda di circa 50 MHz, un analizzatore di spettro, un misuratore di impedenza LCR, un analizzatore di Bode, un teslametro, un generatore di funzioni con risoluzione a 14 bit, anche adatto per audio, ecc. .d. Per visualizzare i risultati della misurazione, Red Pitaya si collega a un tablet, PC o smartphone. Aggiungi un modulo di estensione del sensore e puoi connettere Red Pitaya a Schede Arduino e sensori SEEED Studio Grove, che amplierà ulteriormente le funzionalità di questo complesso di misura.

Riso. 1. Universale sistema di misurazione Red Pitaya è un esempio di piattaforma hardware aperta ed è caratterizzata dalla massima disponibilità. Red Pitaya ha le funzionalità di oscilloscopio, analizzatore di spettro, misuratore di impedenza, analizzatore Bode, teslametro, generatore di funzioni, ecc.

La scheda Red Pitaya è stata introdotta sulla piattaforma Internet Kickstarter nel 2013. È diventato uno spin-off per un'azienda che sviluppa strumenti per acceleratori di particelle. Pertanto, Red Pitaya è uno strumento di misurazione e controllo open source con supporto per programmazione visiva. Red Pitaya è supportato da Matlab, LabView, Python e Scilab. Con il codice open source, le capacità di Red Pitaya possono essere estese con funzionalità aggiuntive e utilità create dall'utente.

Molte piattaforme aperte possono anche essere trasformate in strumenti di sviluppo. Ad esempio, usando Arduino UNO puoi creare un analizzatore logico digitale. Tuttavia, vale la pena notare che questa non è la funzione principale di tali piattaforme. Fondamentalmente, la maggior parte delle soluzioni open source sono progettate per aiutare con test, debug e risoluzione dei problemi. Allo stesso tempo, anche la migliore scheda di debug è inutile se non esiste una documentazione completa e dettagliata per essa.

Considera gli strumenti più comuni utilizzati quando si lavora con piattaforme hardware aperte.

  1. Il primo strumento di progettazione è forse il più importante e il meno "tecnico". Questa è una matita normale. È la matita che ti permette di "incarnare" istantaneamente su carta le idee concepite, segnare i risultati dei test e correggere le modifiche per ripristinare ulteriormente l'intero quadro del progetto mesi o addirittura anni dopo.
  2. Attrezzatura. Ciò include un'ampia gamma di strumenti, che vanno dagli strumenti di misura (multimetri, oscilloscopi) agli organizzatori di archiviazione componenti elettronici. Sfortunatamente, l'attrezzatura è tutt'altro che gratuita, ma se sei vicino alla comunità degli sviluppatori, prendere in prestito l'uno o l'altro dispositivo di misurazione non sarà un problema. Inoltre, molti strumenti sono ora disponibili nei negozi online e sono venduti a prezzi molto bassi.
  3. La programmazione in codice nativo non è facile, quindi compilatori e interpreti vengono utilizzati per creare software incorporato, consentendo agli sviluppatori di scrivere programmi utilizzando lingue di alto livello o anche eseguire la programmazione grafica.

Gli ambienti integrati (IDE) sono un altro strumento per lo sviluppo di software embedded. Gli IDE sono piattaforme software, che combinano un editor di codice sorgente, un compilatore/interprete, un debugger, uno strumento di automazione della compilazione e talvolta strumenti di test. Molti ambienti integrati consentono di eseguire il debug del codice e di analizzarne il funzionamento in dispositivi reali. Sono disponibili strumenti per visualizzare il dispositivo ed eseguire simulazioni prima dell'assemblaggio di un prototipo reale. Gli IDE ottimizzano e accelerano notevolmente il processo di sviluppo.

Gli strumenti di sviluppo e modifica del software vengono solitamente creati per core di processore specifici. Per la maggior parte delle schede, i produttori specificano quale ambiente di sviluppo utilizzare.

Considera i principali tipi di IDE utilizzati per creare software embedded:

  1. Ambienti di sviluppo integrati (IDE) gratuiti, come Arduino IDE, Energia IDE per TI LaunchPads, che possono essere scaricati gratuitamente dal sito Web del produttore e installati sul PC.
  2. IDE online che non richiedono l'installazione su un PC, ma richiedono l'accesso a Internet. I loro vantaggi sono che non richiedono aggiornamenti e non occupano spazio sul disco rigido. Un esempio di tali programmi è Mbed.org.
  3. Ambienti di sviluppo a pagamento. Come accennato in precedenza, i compilatori ti consentono di lavorare con certo tipo core del processore e, per essere precisi, con un determinato insieme di processori/microcontrollori specifici. Ad esempio, se una coppia di processori con Nucleo ARM® Cortex ® -M4, potrebbe trattarsi di una situazione in cui un processore è supportato dall'IDE e il secondo no. Pertanto, prima di acquistare un IDE, è necessario verificare che il processore di destinazione sia nell'elenco dei dispositivi supportati. Esempi di ambienti di sviluppo a pagamento sono, ad esempio, Keil di ARM e IAR Embedded Workbench di IAR Systems.
  4. Libero versioni di prova ambienti a pagamento con un limite di tempo. Molti IDE come IAR e Keil hanno prove gratuite per un periodo di tempo limitato. lavoro gratuito. Dopo periodo di prova termina, il programma è bloccato e richiede l'acquisto di una licenza.
  5. Versioni gratuite di ambienti a pagamento con funzionalità limitate. Esistono versioni limitate di ambienti a pagamento con funzionalità ridotte. Un esempio di tale ambiente è la build Keil per microcontrollori STM32L0 con un limite di dimensione del codice.
  6. Ambienti liberi e open source, come varie soluzioni GNU. Un esempio di ambiente libero è l'IDE Eclipse. L'IDE Eclipse consente di aggiungere plug-in per supportare vari linguaggi di programmazione, in particolare C++ o Python. Vale la pena notare che nella maggior parte dei casi, i compilatori gratuiti sono inferiori alle controparti commerciali in termini di qualità dell'ottimizzazione del codice. Tuttavia, questo divario si sta riducendo nel tempo.
  7. I microcontrollori provengono dal produttore in una forma non programmata. Per il "firmware" fisico dei programmi è richiesto un dispositivo speciale: un programmatore. L'eccezione sono i microcontrollori che hanno un bootloader integrato (bootloader). Il bootloader è un piccolo programma integrato che consente di programmare microcontrollori utilizzando una delle popolari interfacce USB, UART, CAN, ecc.

Considera le opzioni per la programmazione di microcontrollori senza un bootloader integrato.

  • Molte schede popolari (come LaunchPad e Nucleo) hanno programmatori integrati. Ciò ti consente di collegarli a un PC con tramite USB e fare programmazione.
  • Per le schede che non dispongono di un programmatore integrato, è necessario utilizzare la programmazione in-circuit (In-System Programming, ISP). Ciò richiede un programmatore esterno. Solitamente il programmatore è collegato ad un PC tramite porta USB o COM, e al microcontrollore tramite un'apposita interfaccia di programmazione (SWIM, JTAG, SPI, UART, ecc.). Gli esempi includono il programmatore ST-LINK/V2-1 per microcontrollori STM32/STM8 di STMicroelectronics, i programmatori Atmel per microcontrollori AVR, i programmatori di microchip per microcontrollori PIC.

Riso. 2. STM32 Nucleo è un ottimo esempio di piattaforma aperta. Le schede Nucleo sono dotate di un debugger ST-LINK/V2-1 integrato (evidenziato in rosso)

  1. debugger. Un debugger è un insieme di strumenti che consente ai programmatori di monitorare l'esecuzione di un programma e trovare errori nel codice. Il debugger è costituito da tre parti principali: la parte del programma, che viene eseguita in IDE, hardware implementato in un microcontrollore, hardware implementato in un dispositivo speciale, chiamato anche debugger. Vale la pena notare qui che per tutti i moderni microcontrollori, il programmatore e il debugger rappresentano lo stesso dispositivo. Pertanto, ad esempio, per la programmazione e il debug di STM32 / STM8, sarà sufficiente il programmatore / debugger ST-LINK / V2-1.

Diamo un'occhiata ad alcuni degli elementi chiave e degli strumenti utilizzati durante il debug dei sistemi embedded:

  • GDB o GNU Debugger sono popolari debugger software con cui vengono utilizzati lingue differenti programmazione. Molti di loro supportano modalità remota”, che consente di controllare il dispositivo in fase di debug utilizzando un'applicazione in esecuzione su un PC.
  • JTAG è un'interfaccia originariamente sviluppata per testare i sistemi embedded, ma in seguito "de facto" è diventata lo standard del settore. Attualmente, JTAG è ampiamente utilizzato, anche nelle piattaforme aperte.
  • I punti di interruzione vengono utilizzati per interrompere l'esecuzione di programmi in posti giusti. Questa funzione è necessaria per una considerazione dettagliata del contesto, ad esempio lo stato delle porte I/O, il contenuto dei registri, ecc. Un altro caratteristica utile debugger è la capacità di eseguire il debug passo dopo passo del programma.
  • Open OCD (Open On-Chip Debugger) è un pacchetto open source che fornisce debug integrato, programmazione in-circuit e test per un'ampia varietà di piattaforme, rendendo Open OCD attraente per molti produttori di chip. Open OCD supporta molti debugger, incluso JTAG.
  1. Strumenti per il monitoraggio dei bug e il controllo della versione
  • Avere uno strumento di tracciamento dei bug lo è requisito obbligatorio per piattaforme aperte indipendentemente dal numero di sviluppatori e utenti. Ci sono molti strumenti di tracciamento dei bug. Ad esempio, Bugzilla o Mantis BT possono essere scaricati e installati gratuitamente sui server, inoltre ci sono servizi che possono fornire hosting a un costo nominale.
  • I sistemi di controllo della versione sono un altro strumento fondamentale per le piattaforme aperte, soprattutto perché le piattaforme aperte coinvolgono più utenti e sviluppatori che lavorano insieme. Strumenti come Git e Subversion lo sono sistemi popolari versione e gestione dei contenuti. Servizi come GitHub forniscono hosting dei contenuti del progetto, monitoraggio dei bug e revisioni collaborative del codice.

Le piattaforme hardware aperte aiutano a semplificare il processo di sviluppo e a ridurne significativamente i costi. Allo stesso tempo, la piattaforma deve disporre di strumenti di sviluppo e debug affidabili ed economici, altrimenti è improbabile che susciti interesse tra gli utenti.

Invece di una conclusione, un altro pensiero dopo

Molto spesso, gli sviluppatori si limitano a diventare specialisti all'interno di un singolo processore o microcontrollore. Naturalmente, uno studio approfondito di tutti i registri e le caratteristiche del core del processore è un grande vantaggio per un particolare progetto. Tuttavia, vale la pena notare che la tecnologia non si ferma e la capacità di adattarsi rapidamente a piattaforme diverse è un'abilità molto più preziosa della conoscenza di tutte le complessità di un'unica soluzione. Progetti aperti semplificare notevolmente tale formazione su larga scala riducendo costi e tempi. Prova a fare esperienza con Arduino, metti le mani su Microcontrollori PIC, lavora con un programmatore esterno! Questo processo di autoeducazione può anche aiutare a trovare un lavoro, ad esempio studenti inesperti, se si "accendono" su qualsiasi forum. Sviluppo varie soluzioni e l'architettura affinerà le tue capacità di autoapprendimento, che saranno la chiave per una carriera lunga e di successo.

Introduzione Dopo aver scoperto le capacità in 3DMAX delle moderne schede video, è il momento di eseguire gli stessi test per confrontare le moderne piattaforme hardware a processore singolo.
Al momento, ci sono solo due famiglie di processori sul mercato di massa che possono essere considerate "promettenti": le piattaforme Socket478 e Socket462 (SocketA). Non prenderò in considerazione le piattaforme "obsolete" basate su processori Socket370 e Socket423, poiché non ha senso acquistare sistemi a processore singolo basati su questi processori per funzionare in 3DMAX.
Naturalmente, i sistemi già acquistati basati su entrambi i processori Socket370 basati sul core Tualatin e sulla cache L2 da 512 Kb, nonché i sistemi basati su processori Socket423 precedenti consentono di lavorare in modo produttivo in 3DMAX. Tuttavia, il costo di questi sistemi "obsoleti" oggi rende non redditizio l'acquisto, poiché i sistemi basati su questi processori non hanno un vantaggio in termini di prestazioni o sono addirittura inferiori ai sistemi basati su processori delle famiglie Socket478 e Socket462 allo stesso prezzo. Questa è una conseguenza della politica di Intel di sostituire le linee di processori "obsolete" con nuove "promettenti", che si manifesta in un aggiornamento più rapido delle linee di processori "promettenti" e, di conseguenza, in una riduzione più rapida dei prezzi per processori di questi "promettenti " Linee.
I chipset più produttivi per i processori Socket478 e Socket462, schede su cui sono attualmente disponibili per la vendita, sono i850 e Apollo KT266A. Non ha senso assemblare piattaforme basate su schede chipset i845D con supporto per la memoria SDRAM DDR PC2100, poiché la memoria RDRAM PC800 attualmente costa lo stesso o anche meno della SDRAM DDR PC2100, fornendo prestazioni notevolmente superiori.

Quindi, in questo articolo considereremo le prestazioni di un sistema basato su una scheda con un chipset i850 (Abit TH7II) e processori Pentium4 - 2,2 GHz, 2,0 GHz con una cache L2 da 512 Kb (core Northwood) e processori Pentium4 - 2,0 GHz, 1,7 GHz con cache L2. Livello 256 Kb (core Willamette). Prima di tutto, siamo interessati al guadagno di prestazioni, che può essere fornito da un raddoppio della cache L2. se un aumento della frequenza di clock fornisce un guadagno di prestazioni comparabile.
Per il confronto con questo sistema, ho scelto una piattaforma composta da una scheda madre basata sul chipset Apollo KT266A (Epox 8KHA+) e un processore AthlonXP 2000+ (la velocità di clock effettiva è 1667Mhz). Ho preso un solo processore per Socket462 perché AMD è molto indietro rispetto a Intel nel processo di aumento delle frequenze di clock dei suoi processori e la frequenza di clock di questo processore "top" è persino inferiore alla frequenza di clock del Pentium4 junior processore considerato in questo materiale.

Descrizione delle configurazioni hardware

Per tariffa indicatori di velocità Ho usato gli stessi test delle recensioni precedenti. Lascia che ti ricordi che questi benchmark sono consigliati per il test in 3D Studio MAX dal produttore del programma stesso.
A partire da questo articolo, mi sono astenuto dal testare con l'anti-aliasing abilitato, poiché tutte le moderne schede video eseguono l'anti-alias senza perdita di prestazioni.

Piattaforma n. 1:

Processore: Pentium 4 2,2 GHz (512 Kb L2), Pentium 4 2,0 ​​А GHz (512 Kb L2), Pentium 4 2,0 ​​GHz (256 Kb L2), Pentium 4 1,7 GHz (256 Kb L2).
Scheda Madre - Abit TH7II (i850)
Memoria – 1024 Mb PC800 RDRAM



Piattaforma n. 2:

Processore - AthlonXP 2000+ (1667 Mhz)
Scheda Madre - Epox 8KHA+ (Apollo KT266A)
Memoria – 1024 Mb PC2100 SDRAM
Scheda video - NVIDIA GeForce4 Ti4600 (Detonator versione 27.51)
Disco rigido: 20 Gb IBM DTLA 7200 giri/min


Software:

Windows 2000 SP2
3ds max 4.26 (rendering OpenGL), 1280x1024 32 bit

Testare le caratteristiche di velocità quando si lavora in finestre di proiezione

1 . Il primo benchmark è uno "stress test": l'animazione della scena viene riprodotta in quattro finestre di proiezione. Tuttavia, il metodo di rendering è diverso. In due finestre superiori la scena è rappresentata come “Wireframe” (cioè in modalità “wireframe” o “wireframe”), in basso a sinistra “Smooth + HighLights” + “Edged Faces” (in modalità ombreggiata con bordi selezionati), in basso a destra - "Liscio + In evidenza":

Questa scena contiene pochissimi poligoni - solo 28mila, tuttavia, a causa della riproduzione simultanea dell'animazione in tutte e quattro le finestre, gli fps "totali" sono molto piccoli.


Poligoni: 28868
Sorgenti luminose: 1
Modalità: Wireframe, Smooth+Highlights


Con la visualizzazione simultanea dell'animazione in tutte e quattro le finestre di proiezione, la maggior parte del carico per il rendering della scena ricade sul bundle processore- memoria. Come possiamo vedere, in questo benchmark Processore AMD"si tiene bene", confermando il suo voto. L'aumento dall'aumento della cache di secondo livello in Processori Intel molto piccolo, circa il 5%

2 . Il secondo benchmark è una scena con sette oggetti geometrici di base, con una complessità totale di diecimila poligoni.

Sei oggetti sono statici, uno si muove lentamente sulla scena, “passando attraverso” altri oggetti. Questo benchmark verifica la correttezza della visualizzazione dell'"intersezione" degli oggetti e la velocità con cui il driver e l'hardware della scheda video possono gestirlo.


Poligoni: 9712
Sorgenti luminose: 1
Modalità: Smooth+Highlights


A differenza del precedente, questo benchmark, in questo caso, carica il bus AGP e mostra la velocità della porta AGP della scheda madre. In caso di errata attuazione dell'AGP valore fps scende in questo benchmark a circa 80-100.
Pertanto, vediamo che l'implementazione di AGP è buona su entrambe le piattaforme. Tuttavia, in questo benchmark, aumentando la cache si ottiene un aumento molto maggiore rispetto al precedente, fino al 20%.

3 . La scena del terzo benchmark contiene una palla che si muove molto lentamente su uno sfondo di 15.000 poligoni.

La palla non interseca altri oggetti da nessuna parte. Poiché la palla si muove molto lentamente, il pilota "corretto" apporterà pochissime modifiche in ogni fotogramma. In altre parole, questo benchmark testa la capacità della scheda video di non ridisegnare oggetti non aggiornabili ad ogni frame.


Poligoni: 15653
Sorgenti luminose: 1
Modalità: Smooth+Highlights


Questo benchmark è simile al precedente e anche i risultati dei sistemi sono simili ai risultati mostrati nel benchmark precedente: l'AthlonXP 2000+ dimostra ancora una volta l'"onestà" del suo rating e il raddoppio della cache L2 nel Pentium4 fornisce un notevole aumento di velocità.

4 . Questo benchmark mostra la capacità di una scheda video di gestire geometrie molto complesse Il benchmark mostra le prestazioni delle schede video in modalità Smooth+HighLights in scene con geometrie complesse.


Poligoni: 200270
Sorgenti luminose: 1
Modalità: Smooth+Highlights


In questo benchmark geometrico, il risultato dipende dalla potenza della FPU (poiché è necessario calcolare la geometria complessa) e dalla larghezza di banda della memoria (poiché è necessario disegnare superfici in modalità Smooth + HighLight). Nella prima Athlon ha un netto vantaggio, però, portata La RDRAM è molto più grande, quindi la piattaforma Socket462 ha prestazioni inferiori rispetto al sistema Pentium4 a 2,0 GHz.

5 . Il quinto benchmark verifica la capacità delle schede video di elaborare geometrie estremamente complesse. Questa volta il numero di poligoni è quasi raddoppiato e ammonta a quasi 376.000. Le case ora si trovano sulla stessa "superficie".

Questo benchmark è in grado di "mettere in ginocchio" qualsiasi scheda video: gli fps medi non superano i tre frame. Il file stesso è stato creato, ovviamente, non a fps=3, le case sono state create separatamente in file diversi e durante l'"installazione a terra", la parte inutilizzata della geometria è stata "spenta" per aumentare le prestazioni.


Poligoni: 376875
Sorgenti luminose: 1
Modalità: Smooth+Highlights


In un benchmark geometrico più difficile, la situazione è simile alla precedente, tuttavia, con un aumento della geometria elaborata, l'influenza della memoria cache diminuisce e l'influenza dell'unità FPU cresce.

6 . Test comparativo della velocità di elaborazione di più sorgenti luminose. Poiché la maggior parte delle schede grafiche non supporta più di 8 luci, questo test e i due test successivi contengono 8 diversi tipi di luci. In questo test, 8 sorgenti luminose SpotLight, in movimento, illuminano una sorta di “asteroide”:

Va notato che la visualizzazione dell'illuminazione creata da Spotlights è un processo molto più dispendioso in termini di risorse rispetto alla visualizzazione dell'illuminazione creata da Omni e luci direzionali.


Poligoni: 39600
Sorgenti luminose: 8
Modalità: Smooth+Highlights



7 . Lo stesso “asteroide”, solo ora è illuminato da otto sorgenti luminose Direzionali. Le luci direzionali sono "più lente" di Omni, ma "più veloci" delle luci Spotlight.


Poligoni: 39600
Sorgenti luminose: 8
Modalità: Smooth+Highlights



8 . Ancora lo stesso “asteroide” e ancora otto sorgenti luminose. Ora queste sono luci di tipo Omni, le luci più veloci in 3DMAX.


Poligoni: 39600
Sorgenti luminose: 8
Modalità: Smooth+Highlights


Nei benchmark di illuminazione, l'AthlonXP 2000+ mostra risultati paragonabili a quelli del Pentium4 2.0GHz. Il guadagno in termini di prestazioni derivante dall'aumento della memoria cache non supera il 10%.

9 . Una scena con una geometria "luce" e un'unica fonte di luce, solo quattromilacinquecento poligoni, che occupano l'intera finestra di proiezione, è un punto di riferimento per la velocità di rasterizzazione nella modalità Smoth + Highlights.

Durante lo spostamento della fotocamera, la scheda video deve rasterizzare i poligoni grandi e piccoli (rispetto alle dimensioni dello schermo)


Poligoni: 4684
Sorgenti luminose: 1
Modalità: Smooth+Highlights


Nel benchmark di rasterizzazione, l'AthlonXP 2000+ ha mostrato uno scarso risultato, inferiore a quello di un Pentium4 con la stessa frequenza di clock (1700 Mhz). Ciò è spiegato dal fatto che in questo benchmark tutto dipende dalla velocità di trasferimento dei dati sul bus di memoria del processore.

10 . Benchmark che mostra la velocità delle schede video con texture. Il file contiene molte trame e un minimo di geometria. Il punto di riferimento è una palla rotante, con 48 trame sovrapposte alle facce.

La geometria minima e le trame massime di questa scena mostrano la velocità di elaborazione delle trame da parte della scheda video al massimo.


Poligoni: 224
Sorgenti luminose: 1
Modalità: Smooth+Highlights



11 . Stanza completamente strutturata in cui la telecamera si muove all'interno. Questo benchmark è il più vicino a applicazioni reali, poiché contiene molte trame, geometrie complesse e diverse fonti di luce. Questo benchmark mostra le capacità delle schede video durante l'elaborazione di scene complesse in modalità Smooth + Highlight.


Poligoni: 12413
Sorgenti luminose: 8
Modalità: Smooth+Highlights



12 . Le "onde" animate con texture mostrano la velocità con cui le texture vengono elaborate e modificate.


Poligoni: 880
Sorgenti luminose: 1
Modalità: Smooth+Highlights


Nei tre benchmark di trama, i sistemi devono calcolare le trame rotanti (nel primo benchmark di trama), correggere le trame stazionarie con una telecamera rotante (nel secondo) e deformare la trama (nel terzo).
Non è difficile indovinare che nel primo benchmark delle texture la larghezza di banda della memoria e la dimensione della cache sono le più importanti: ecco perché Athlon "non è all'altezza" del Pentium4 2.2GHz.
La correzione delle texture viene eseguita dalla FPU, quindi nel secondo benchmark Athlon2000+ si avvicina al Pentium4 2.2GHz. Inoltre, aumentando la memoria cache si ottiene un aumento del 15%.
Anche la distorsione delle texture è gestita dall'FPU e in questo benchmark l'AthlonXP 2000+ mostra miglior risultato di Pentium4 2.2GHz.

13 . Il benchmark misura la velocità di lavoro in modalità Wireframe. 111 mila poligoni in modalità wireframe saranno un serio test per qualsiasi scheda video moderna.


Poligoni: 111270
Sorgenti luminose: 1
Modalità: Wireframe


Questo benchmark delle texture contiene la stessa scena del benchmark n. 4, tuttavia, a differenza del quarto benchmark, qui questa scena è renderizzata in modalità Wireframe. Pertanto, in questo benchmark, tutto dipende dalla potenza della FPU: Ahtlon mostra un risultato paragonabile ai risultati dei processori Pentium4 operanti a 2GHz, e l'aumento della quantità di memoria cache in questo test non dà alcun aumento di velocità.

Tutti i benchmark di cui sopra sono consigliati per testare le schede video dal produttore 3DMAX, tuttavia, come abbiamo visto, testano le capacità delle schede video in base alle singole funzioni e non ci sono test "generali" tra di loro. Quindi ho aggiunto un altro benchmark: questa è una scena con otto luci, 61371 poligoni e molti piani trasparenti. La complessità di questo file è abbastanza tipica per oggi, l'intero file, insieme alle trame, richiede più di 6Mb. L'animazione è costruita per il miglior test possibile: la telecamera si muove nella stanza, catturando tutti gli oggetti. Ecco come appare il primo fotogramma dopo il rendering finale:

Ho usato questa scena per testare le schede video in entrambe le modalità Wireframe e Smoth+Highlights. Pertanto, abbiamo ottenuto due benchmark:

14 . Scena in modalità Wireframe


Poligoni: 61371
Sorgenti luminose: 8
Modalità: Wireframe


Poiché la scena in questo benchmark è mostrata in modalità Wireframe, come nel benchmark precedente, la quantità di memoria cache non ha un effetto evidente e il risultato di AthlonXP2000+, grazie alla potente FPU, si è rivelato uguale al risultato di Pentium4 2.2GHz, che funziona a una frequenza superiore del 50% e ha il doppio della quantità di memoria cache.

15 . La stessa scena in modalità Smooth+HighLight


Poligoni: 61371
Sorgenti luminose: 8
Modalità: liscia + alta luce


Poiché la scena è renderizzata in modalità Smooth+HighLight, i risultati di Athlon non sono buoni come nel benchmark precedente. Tuttavia, i risultati di AthlonXP 2000+ sono uguali a quelli di Pentium4 2.0GHz e Athlon conferma ancora una volta il suo rating.
512Kb di memoria cache invece di 256Kb, in questo benchmark, come nella maggior parte dei benchmark con geometria "media" e modalità Smooth + HighLight, consente di ottenere un aumento di velocità di circa il 15%.

Testare le caratteristiche di velocità durante il rendering finale

Ho realizzato il rendering finale di tre scene della consegna 3ds max4 con gli stessi parametri, alla stessa risoluzione di 800x600, poiché la percentuale dei risultati delle piattaforme testate è la stessa per tutte le risoluzioni da 640x480 a 1600x1200. Ecco quelle scene:

Tabella dei risultati (tempo in secondi: più basso è, meglio è):


La velocità del rendering finale dipende principalmente dalla potenza dell'FPU, quindi nel rendering finale l'AthlonXP2000+ "ha funzionato" solo leggermente peggio del Pentium4 2.2GHz.

conclusioni

Sulla base della totalità dei risultati in tutti i benchmark che testano il funzionamento nelle finestre di proiezione, AthlonXP 2000+ mostra risultati paragonabili a quelli del Pentium4 2.0A GHz. Inoltre, quando si lavora in modalità Wireframe, AthlonXP2000+, grazie ad una FPU estremamente potente, dimostra un risultato vicino o uguale a quello del Pentium4 2.2GHz (nonostante quest'ultimo funzioni a +50% di clock speed e abbia il doppio della cache). Pertanto, se trascorri la maggior parte del tuo tempo lavorando in modalità Wireframe, l'AthlonXP2000+ è la scelta migliore. Nel test di velocità di rendering finale, anche i risultati dell'AthlonXP 2000+ sono approssimativamente uguali a quelli del Pentium4 2.2GHz. Quindi, al costo del processore AthlonXP 2000+ a $ 250. (e con Pentium4 2.0AGHz e 2.2GHz al prezzo rispettivamente di $ 350 e $ 550) e schede madri più economiche, la piattaforma Socket462 è di gran lunga la più redditizia nella categoria "prezzo-prestazioni". Tuttavia, il massimo processore veloce per 3DMAX è Pentium4 2.2GHz.
La differenza nelle prestazioni dei processori Pentium4 con 256Kb di cache e 512Kb nella stragrande maggioranza dei test che simulano il lavoro nelle finestre di proiezione e il calcolo del rendering finale non supera il 5%, quindi non ha senso cambiare un processore con 256Kb di cache in nuovi processori con 512Kb di cache. D'altra parte, anche l'acquisto di processori con una cache più piccola oggi è inutile: i prezzi per processori con cache da 265 Kb e 512 Kb sono quasi uguali.

Articoli correlati in alto