Intel® Developer Zone:
Estensioni dei set di istruzioni dell'architettura Intel

L'Instruction Set Architecture (ISA) di Intel continua ad evolversi per migliorare la funzionalità, le prestazioni e l'esperienza dell'utente. Vi presentiamo, di seguito, le estensioni programmate per l'ISA, che sono nuove come quelle programmate per miglioramenti nelle future generazioni di processori. Pubblicando queste estensioni prima del previsto, Intel aiuta a verificare che l'ecosistema del software abbia il tempo di innovare e di apparire sul mercato con prodotti nuovi e migliorati, quando i processori saranno lanciati.

Panoramica

Strumenti e download

  • Compilatore C++ Intel®

    Il compilatore C++ Intel® può essere scaricato dai clienti con licenza nel centro di registrazione Intel®. È disponibile, inoltre, il download gratuito delle versioni di valutazione dei prodotti Intel® per lo sviluppo di software.

  • Intel Intrinsics Guide

    Intel Intrinsics Guide è uno strumento di riferimento interattivo per le istruzioni intrinsiche Intel, che sono funzioni in stile C che forniscono l'accesso a numerose istruzioni Intel, incluse Intel® Streaming SIMD Extensions (Intel® SSE), Intel® Advanced Vector Extensions (Intel® AVX) e altre, senza che sia necessario scrivere codice assembly.

Intel® Advanced Vector Extensions (Intel® AVX)

Ottenere prestazioni di elaborazione superiori è una necessità crescente di tutti i segmenti di mercato del settore. Per supportare una domanda crescente e modelli di utilizzo in evoluzione, offriamo  Intel® Advanced Vector Extensions (Intel® AVX) per continuare la nostra tradizione di innovazione.

Intel® AVX è un nuovo set di istruzioni a 256 bit che rappresenta l'evoluzione di Intel® SSE ed è progettato per le applicazioni ad uso intensivo della virgola mobile (FP). È stato fatto uscire all'inizio del 2011 come parte della famiglia di processori basati sulla microarchitettura Intel® con nome in codice Sandy Bridge ed è presente in numerose piattaforme, dalle piattaforme notebook a quelle server. Intel AVX migliora le prestazioni grazie a vettori più ampi, una nuova sintassi flessibile e funzionalità complete. Il risultato è una migliore gestione dei dati e delle applicazioni per uso generico come l'elaborazione di immagini e di audio/video, le simulazioni scientifiche, le analisi di dati finanziari, la modellazione e l'analisi 3D.

Intel® Advanced Vector Extensions 512 (Intel® AVX-512)

In futuro, alcuni dei nuovi prodotti presenteranno un passaggio significativo al supporto SIMD a 512-bit. I programmi possono includere otto numeri in virgola mobile a doppia precisione e sedici a precisione singola entro i vettori a 512-bit, oltre a otto numeri interi a 64-bit e sedici a 32-bit. Questo consente di elaborare il doppio del numero di elementi dei dati che l'IntelAVX/AVX2 riesce ad elaborare con un'unica istruzione e quattro volte le capacità di Intel SSE.

Le istruzioni Intel AVX-512 sono importanti perché aprono la strada a capacità di prestazioni superiori per le attività computazionali più impegnative. Le istruzioni Intel AVX-512 offrono il più alto grado di supporto al compilatore, includendo un livello senza precedenti di ricchezza nella progettazione delle capacità di istruzione.

Le funzioni di Intel AVX-512 includono 32 registri vettore, ciascuno dell'ampiezza di 512-bit, e otto registri maschera dedicati. Intel AVX-512 è un insieme flessibile di istruzioni che include supporto per la trasmissione, mascheramento incorporato per attivare il predicato, virgola mobile incorporata per controllare l'arrotondamento, virgola mobile incorporata per la soppressione degli errori, istruzioni di scattering, istruzioni di matematica ad alta velocità e rappresentazione compatta di grandi valori di sfasamento.

Intel AVX-512 offre un livello di compatibilità con Intel AVX più solido di quello delle transizioni precedenti verso nuove ampiezze per le operazioni SIMD. A differenza di Intel SSE e Intel AVX, che non potevano essere mescolati senza penalità di prestazione, le istruzioni di Intel AVX e Intel AVX-512 possono essere mescolate perché sono supportate senza penalità. I registri Intel AVX registers YMM0–YMM15 mappano nei registri Intel AVX-512 ZMM0–ZMM15 (in modalità x86-64), in modo molto simile a come i registri Intel SSE mappano nei registri Intel AVX. Pertanto, in processori con supporto Intel AVX-512, le istruzioni Intel AVX e Intel AVX2 operano sui bit 128 o 256 inferiori dei primi registri 16 ZMM.

Altre informazioni sui dettagli delle istruzioni Intel AVX-512 si trovano nel blog "Istruzioni AVX-512". Le istruzioni sono documentate nel Riferimento alla programmazione di estensioni impostate di Intel® Architecture (vedere la scheda "Panoramica" su questa pagina).

Using Intel® SDE's chip-check feature
Di Mark Charney (Intel)Pubblicato il 10/03/20130
Intel® SDE includes a software validation mechanism to restrict executed instructions to a particular microprocessor. This is intended to be a helpful diagnostic tool for use when deploying new software. Use chip check when you want to make sure that your program is not using instruction features...
Webinar -"Intel® System Studio 2013: Embedded application development and debugging tools"
Di Naveen Gv (Intel)Pubblicato il 09/25/20130
Abstract The Intel® System Studio is a flexible complete software development studio which allows you to optimize Intel® Architecture based intelligent embedded systems and devices. It combines Eclipse* CDT integrated optimizing compiler solutions and signal and media processing libraries, who...
How to detect New Instruction support in the 4th generation Intel® Core™ processor family
Di Max Locktyukhin (Intel)Pubblicato il 08/05/20130
Downloads How to detect New Instruction support in the 4th generation Intel® Core™ processor family [PDF 342.3KB] The 4th generation Intel® Core™ processor family (codenamed Haswell) introduces support for many new instructions that are specifically designed to provide better performance to a bro...
Linux* ABI
Di Milind Girkar (Intel)Pubblicato il 07/18/20130
by Milind Girkar, Hongjiu Lu, David Kreitzer, and Vyacheslav Zakharin (Intel) Description of the Intel® AVX, Intel® AVX2, Intel® AVX-512 and Intel® MPX extensions required for the Intel® 64 architecture application binary interface.
Iscriversi a Articoli Intel Developer Zone
Nessun contenuto trovato
Iscriversi a Blog Intel® Developer Zone

    Intel® Software Guard Extensions (Intel® SGX)

    Visione programmatica di Intel

    I carichi di lavoro del computing di oggi stanno diventando più complessi, con centinaia di moduli software consegnati da diversi team sparsi per il mondo. L'isolamento dei carichi di lavoro su piattaforme aperte si è rivelato uno sforzo continuato, iniziando con l'architettura in modalità protetta per creare una separazione di privilegi tra sistema operativo e applicazioni. Recenti attacchi di malware, comunque, hanno dimostrato l'abilità di penetrare in modalità con alto livello di privilegi e di riuscire a controllare l'intero software su una piattaforma.

    Intel® Software Guard Extensions (Intel® SGX) è un nome per le estensioni dell'architettura Intel progettate per aumentare la sicurezza del software attraverso un meccanismo a “sandbox inversa”. Con questo approccio, invece di tentare di identificare e isolare tutto il malware presente sulla piattaforma, si sigilla software legittimo in un'enclave e lo si protegge dagli attacchi del malware, indipendentemente dal livello di privilegio di quest'ultimo. Questo sarebbe un complemento per gli sforzi continui per proteggere la piattaforma dall'intrusione del malware, simili all'installazione di una cassaforte nelle nostre case per proteggere gli oggetti di valore, persino quando aggiungiamo dispositivi di blocco e sistemi di allarme ancora più sofisticati per impedire i furti e riuscire a catturare gli intrusi.

    Per iniziare (comune a tutta l'ISA)

    Panoramica

    Strumenti e download

    • Nessuna modifica al contenuto esistente

    Contenuto tecnico

    Nessun contenuto trovato
    Iscriversi a Blog Intel® Developer Zone
    Nessun contenuto trovato
    Iscriversi a Articoli Intel Developer Zone

    Intel® Memory Protection Extensions (Intel® MPX)

    I sistemi dei computer devono affrontare attacchi dannosi sempre più sofisticati, e una delle forme più comunemente osservate è il causare o lo sfruttare le eccedenze (gli eccessi) dei buffer nelle applicazioni software.

    Intel® Memory Protection Extensions (Intel® MPX) è un nome per le estensioni Intel Architecture progettate per aumentare la robustezza del software. Intel MPX offrirà funzioni hardware da utilizzare assieme ai cambi dei compilatori per controllare che i riferimenti della memoria studiati per il momento della compilazione non diventino pericolosi al runtime. Due degli obiettivi più importanti di Intel MPX sono: offrire questa capacità a basso prezzo per il codice appena compilato, e fornire meccanismi di compatibilità con componenti software legacy. Intel MPX sarà disponibile in un futuro processore Intel®.

    Nessun contenuto trovato
    Iscriversi a Articoli Intel Developer Zone
    Nessun contenuto trovato
    Iscriversi a Blog Intel® Developer Zone

      Intel® Secure Hash Algorithm Extensions (Intel® SHA Extensions)

      Secure Hash Algorithm (SHA) è uno degli algoritmi crittografici usati più frequentemente.  Gli SHA sono principalmente utilizzati per l'integrità dei dati, l'autenticazione di messaggi, le firme digitali e la deduplicazione dei dati.  Con il continuo aumento dell'uso già diffusissimo delle soluzioni di sicurezza, gli SHA possono essere notati in più applicazioni che mai. Le estensioni Intel® SHA sono progettate per migliorare le prestazioni di questi algoritmi intensivi di computazione su processori basati sull'architettura Intel®.

      Le estensioni Intel® SHA consistono in una famiglia di sette istruzioni basate su estensioni Intel® Streaming SIMD Extensions (Intel® SSE), utilizzate assieme per accelerare le prestazioni degli algoritmi di elaborazione SHA-1 e SHA-256 su processori basati su architettura Intel.  Data la sempre crescente importanza degli SHA nei nostri dispositivi di elaborazione di uso quotidiano, le nuove istruzioni sono progettate per fornire un aumento necessario delle prestazioni della funzione di hash per un solo buffer di dati. I vantaggi delle prestazioni non aiuteranno solo a migliorare le risposte e a ridurre il consumo di alimentazione per una data applicazione; potrebbero anche consentire agli sviluppatori di adottare gli SHA in nuove applicazioni per proteggere i dati contemporaneamente al raggiungimento degli obiettivi dell'esperienza utente. Le istruizioni sono definite in un modo che semplifica la loro mappatura nel flusso di elaborazione degli algoritmi della maggioranza delle librerie software, permettendo così uno sviluppo più facile.

      Nessun contenuto trovato
      Iscriversi a Articoli Intel Developer Zone
      Nessun contenuto trovato
      Iscriversi a Blog Intel® Developer Zone
        SSE4 Intrensics on Visual Studio 2008
        Di Uday Krishna G.6
        Hi, Am optimizing my code application using Intel SSE intrinsic. It works fine with Intel compiler for 64-bit and 32-bit in MSVC 2008 IDE. The same applications behaving differently with MSVC compiler for 32/64- bit run. I would like to know is there any limitation for MSVC 2008 IDE with respect to Intel SSE intrinsics( Am using upto SSE4.2).
        BNDLDX/BNDSTX, BNDSTATUS error = 2, expected behavior?
        Di c_433
        Consider the example given at https://software.intel.com/en-us/blogs/2013/07/22/intel-memory-protectio... in particular the example "Another simple example demonstrates using of bndldx and bndstx instructions.". Adapting this example to include a main function calling foo and having p and q defined in a different source file and pointed to a couple buffers each (source included at the bottom of this post), I get BNDSTATUS set to error = 2 (invalid BD entry) for some of the BNDSTX and BNDLDX instructions. I've noticed this also happens in other test/example programs. Why does this happen? Is this behavior normal and to be expected? The program otherwise works as expected and detects the bound violation, so I'm guessing there is something obvious I'm missing. Program received signal SIGSEGV, Segmentation fault. 0x000000000040071e in _GLOBAL__sub_P_00102_0_p () at externs.c:5 5       int *q = array_q;    0x0000000000400700 <_GLOBAL__sub_P_00102_0_p+0>:     55      push   rbp ...
        Latest GCC to use with the SDE for MPX?
        Di c_431
        I'm aware there are links to download binary versions of GCC at https://software.intel.com/en-us/articles/intel-software-development-emu... however the latest experimental version of GCC appears to be quite more recent than this. However I'm confused about what branch I should be using if I want to build and use the latest MPX enabled development version of GCC with the Intel SDE. Trying to use the branch svn/mpx or origin/ienkovic/mpx, these both fail to compile on my system. If I attempt to compile the main branch then GCC builds correctly but I don't get any MPX functionality. I'm using the following guides to build and install GCC: https://gcc.gnu.org/install/configure.html https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler
        Documentation bug for DIV/IDIV
        Di sirrida0
        I refer to the current Intel 64 and IA-32 Architectures Software Developer’s Manual (e.g. 325462-051US of June 2014). For IDIV your will find that the upper bounds of quotient range is wrong for 32 and 64 bit; these must be e.g. -2^31..2^32-1 instead of -2^31..2^31-1. Also, a description for signs the of the remainders are missing; AMD is more precise: "The sign of the remainder is always the same as the sign of the dividend, and the absolute value of the remainder is less than the absolute value of the divisor." For the DIV instruction there need not be anything about magnitude since all values are positive; remove "in magnitude".
        Working assembly example for MPX?
        Di c_432
        Does there already exist some small working example of an assembly program that enables MPX and demonstrates (some) of the instructions -- when executed in the SDE? I am aware that MPX appears to be enabled in libmpx. However I'd like to see this done by hand without using libmpx, assemble the program using an MPX enabled NASM and of course still run it in the SDE, just to play around with it. I've already looked for this without finding anything, if someone could point me to such an already existing example that would be great.
        When is AVX 512 on a chip, not just an emulator?
        Di Thomas H.4
        I'm having a really hard time finding anything other than rumors about this. I have seen the official statement that Broadwell chips will be available before Christmas, but I can't tell if Broadwell includes the AVX 512 extensions or not (I've heard both ways).  Anyone know for sure? Better yet can anyone point me to a link on intel.com that provides a definitive answer?
        Intel - Version 19 of ISA Extensions manual available
        Di Russell Van Zandt1
        Intel, an old version of the ISA Extensions manual is on sticky status here. A newer version, 19, is available now: https://software.intel.com/en-us/intel-isa-extensions
        PUSH and POP of XMM/YMM registers
        Di srinivasu8
        Hi, I have written a function in that AVX2 instructions are using XMM/YMM registers. Due to use of some of these registers in this function, causing other part of application is crashing. I have observed strange behavior is that If these registers are pushed and popped as like non-volatile general purpose registers are pushed and popped. Please help me whether, we need to push and pop the SIMD registers also. If so all XMM/YMM registers are needs to be saved and how? Up to now I didn't read any thing about saving of the XMM/YMM registres also, but my application is working after these changes only  
        Iscriversi a Forum