Volgende generatie Intel-cpu's krijgt SSE4-instructies

Interne memo's en roadmaps van Intel zouden bevestigen dat Intels volgende processorgeneratie ondersteuning biedt aan SSE4-instructies, naast al langer bestaande instructiesets waaronder mmx, SSE, SSE2, SSE3, en x86-64. De nieuwe lichting chips gaan momenteel nog door het r&d-leven onder de schuilnamen Conroe, Merom en Woodcrest, en zijn respectievelijk bedoeld voor desktops, notebooks en servers. De nieuwe instructies zijn onder andere bedoeld om het rekenen met absolute getallen te versnellen en de mogelijkheden van het werken met algoritmes uit te breiden. Dat laatste kan op een manier geschieden waarmee minder instructies en registers nodig zijn en er verschillende optimalisaties mogelijk worden. De nieuwe instructieset, waarover we al eerder schreven, maakt onderdeel uit van wat Intel eerder globaal omschreef als 'Significant Video Enhancements' van de volgende generatie processors.

Conroe (200px)Andere onderdelen van de 'SVE-features' zijn Clear Video Technology (CVT), een soort tegenhanger van ATi's Avivo, en ondersteuning voor UDI (unified display interface), een opvolger voor computerbeeldscherm-interfaces VGA, DVI en HDMI. Eerdere documenten van Intel omschreven CVT als een technologie 'supporting advanced decoding, post-processing capabilities and enhanced 3d.' Deze laatste features zullen wellicht in de i965-chipset zijn ondergebracht, en niet per se in de cpu. Conroe, Merom en/of Woodcrest zullen naar verwachting op het Intel Developer Forum (van 7 tot 9 maart) hun opwachting maken. De eerste chips van deze nieuwe generatie worden nog dit jaar verwacht.

Door Jack Leenders

15-02-2006 • 13:03

40

Bron: DailyTech

Lees meer

Reacties (40)

40
37
24
10
2
10
Wijzig sortering
SSE2, SSE3, en x86-64 kan ik begrijpen dat ze die er nog in laten, maar mmx en sse1 niet echt.
Zijn er dan nog steeds programma's die gemaakt worden die dat gebruiken?
SSE2 is ook al wat jaartjes oud naar mijn idee dus ik denk dat daar nog wel gebruik van gemaakt wordt, maar mmx??
Toendertijd was het geweldig, maar tegenwoordig heb ik daar zo m'n vraagtekens bij.
Er komt namelijk wel steeds een instructieset bij, maar er verdwijnen er geen. Of denk ik nu raar?? :)

/edit
@ JoJiRo
Twee zielen, een gedachte. :)
Intel kan deze instructies er niet uit halen, want iedere versie bouwt weer door op de vorige. Alhoewel MMX zelf nooit veel gebruikt is bouwt SSE hier op voort. SSE2 voegt weer wat dingen toe aan SSE en SSE3 voegt daar weer meer aan toe. je zou eigenlijk kunnen zeggen dat de processors alleen SSE3 ondersteunen: support voor MMX t/m SSE2 zit hier dan inherent bij.

Plus het aantal transistors voor ondersteuning voor het oude MMX en SSE is dusdanig gering dat het niet loont om de ongebruikte instructies (instructies die 'verbeterd' zijn door latere versies) eruit te slopen. Je zou dan alleen maar compatibility problemen krijgen, voor een minimale winst.

Wat ik wel verwacht dat ze gaan doen (en dat doen ze geloof ik al) is het 'emuleren' van de oude instructies. Dus het gebruik van een uitgebreidere/betere nieuwe instructie om de oude uit te voeren. Bijvoorbeeld een nieuwe 64 bit instructie gebruiken om de oude 32 bits instructie te draaien..
MMX en SSE zijn niet afhankelijk van elkaar.
MMX gebruikt de 8 80-bit floating-point registers als 64-bit integer registers terwijl SSE gebruik maakt van 8 (extra) 128-bit registers.

SSE biedt alleen 32-bit floating point ondersteuning;
SSE2 biedt 64-bit floating point en integer ondersteuning;
AMD' 3DNow! gebruikt de MMX registers en voegt hier 32-bit floating point aan toe.
bedankt om dit uit te leggen aan sommigen. want velen posten hier zonder te begrijpen wat die instructiesets zijn of hoe ze tov mekaar gelinkt zijn.
Ik denk dat veel programma's het nog gebruiken. En ik denk niet dat de features die MMX heeft ook in SSE3 zitten. Dus haal je MMX er uit verlies je functionalitijd. en waarschijnlijk kost het niet veel moeite om het te ondersteunen.
bepaalde functies van mmx zijn bij x86-64 niet meer nodig, maar ik ben dan ook vrij zeker dat ze +/- dezelfde functie er niet 2x in steken, het is niet omdat een bepaalde functie ondersteund wordt dat deze een eigen hardware unit heeft

niets om ons zorgen over te maken dus :)

bepaalde optimalisaties kunnen op die manier wel omgekeerd werken, maar aangezien dit normaal enkel voor oudere progs is, who cares?
Hierboven al redelijk uitgelegd, maar met verschillende onjuistheden, dus...

* MMX en SSE zijn gescheiden eenheden. MMX deelt zijn registers met de FPU, SSE heeft eigen registers.
* Een processor met SSE en zonder MMX is mogelijk.
* Een processor met SSE2/3/4 zonder SSE1 is onmogelijk.
* De SSE-eenheden kunnen zowel integer- als vlottendekommabewerkingen aan.
* De MMX-eenheid op AMD-processoren ook, dat heet 3Dnow. Bij Intel is de MMX-eenheid alleen-integer.

De MMX-eenheid wordt in principe overbodig gemaakt door SSE, maar is nog steeds nuttig (extra registers bijvoorbeeld). Hij wordt nog steeds veel gebruikt en zal om die reden niet verdwijnen.
* De SSE-eenheden kunnen zowel integer- als vlottendekommabewerkingen aan.
Is dat de nieuwe vertaling voor floating point? :)
Nee, de handleiding van de Commodore 64 schreef het al zo. 8-)
SSE2 is ook al wat jaartjes oud naar mijn idee dus ik denk dat daar nog wel gebruik van gemaakt wordt, maar mmx??

MMX/MMX2 wordt wel degelijk nog veel gebruikt, en in tegenstelling tot wat andere mensen hieronder uitleggen is het ook absoluut niet waar dat SSE1/2/3 'voortbouwt' op MMX. Er is namelijk in essentie weinig verschil tussen MMX en SSE, het zijn allebei zogenaamde SIMD (single instruction-multiple data) instructiesets, die dus met 1 instructie een bewerking op meerdere operands kunnen uitvoeren (bijvoorbeeld 8 getallen optellen en afronden in 1 instructie etc).

Het wezenlijke verschil tussen MMX aan de ene kant en SSE (of 3DNow! van AMD) is dat MMX een SIMD instructie set is voor integer (geheeltallige) operands en SSE/3DNow voor floating point operands... En daarbij dan dat SSE idd verder doorontwikkeld is met gespecialiseerdere instructies, omdat PC applicaties tegenwoordig voor de meeste taken met floating point rekenen...

Quote van Intel uit het artikel:
De nieuwe instructieset, waarover we al eerder schreven, maakt onderdeel uit van wat Intel eerder globaal omschreef als 'Significant Video Enhancements' van de volgende generatie processors.

Dit vind ik een rare quote. Ik ken de nieuwe instructies niet die in SSE4 gaan komen en ik ben ook geen SSE1/2/3 expert, maar ik weet wel dat video algoritmes vrijwel exclusief met integers rekenen omdat de hoeveelheid data veel te groot is voor floating point, en video algoritmes over het algemeen even goed met integers te implementeren zijn. DSP cores voor video processing (zoals in zo'n beetje elk embedded systeem dat iets met video doet) hebben in ieder geval zo goed als nooit floating point ondersteuning.
aar ik weet wel dat video algoritmes vrijwel exclusief met integers rekenen
Moderne GPUs ondersteunen nu ook floating point en ik denk dat Intel hetzelfde wil gaan doen.
Moderne GPUs ondersteunen nu ook floating point en ik denk dat Intel hetzelfde wil gaan doen.

Ok, alleen dacht ik bij 'video algoritmes' eigenlijk meer aan video playback, pre/post-processing, en/de-coding, filtering etc, etc... Niet 3D rendering, wat een GPU doet (daarvoor zou immers ook geen SSE4 voor nodig zijn, de GPU doet dat allemaal al)....
Ok, alleen dacht ik bij 'video algoritmes' eigenlijk meer aan video playback, pre/post-processing, en/de-coding, filtering etc, etc...
JPEG zit vol met floating point algoritmen volgens mij. Ik neem aan dat dat ook voor MPEG geldt.
Anoniem: 134763 15 februari 2006 13:07
MMX kwam als eerste uit alsk me goed herinner in een Pentium 166MHz processor.

Word het dan niet is tijd dat ze een oude instructieset als dat eruit halen, zodat deze ruimte kan maken voor dingen als SSE4, of worden deze instructies nog vaak gebruikt in software?

Je kan natuurlijk niet altijd backwards compatible zijn, net als dat niet alle Windows 95 software of XP draait etc.
In de x86-64-instructieset heeft AMD een groot aantal verouderde instructies geblokkeerd in 64-bit mode, waaronder AAM, SETALC en dergelijke. Men is hier wel conservatief mee geweest, instructies als LODSB, door velen als oude troep beschouwd maar in kringen van assemblerprogrammeurs zeer geliefd omdat ze maar 1 byte kosten, worden gewoon ondersteund.

Ook de 16-bit protected mode en v86-mode zijn geblokkeerd, zonder dat daar vanuit het gezichtspunt van de processor reden toe lijkt.

Naar de reden waarom moeten we voorlopig gissen, maar we kunnen wel een vermoeden bedenken: AMD wil in de toekomst de mogelijkheid hebben processoren uit te brengen die niet over deze functies beschikken. Dat kan alleen door nu al te zorgen dat geen enkel 64-bit programma de betreffende instructies kan gebruiken.

Zo'n processor zou dan alleen een 64-bits besturingssysteem kunnen draaien, waar zowel 32- als 64-bits applicaties op kunnen draaien.

MMX is gewoon aanwezig in 64-bits mode, en terecht, het wordt nog veel gebruikt, ook al kan SSE hetzelfde.
Naar de reden waarom moeten we voorlopig gissen,
Een van de redenen is om plaats te maken voor nieuwe instructies. Het is te vergelijken met een alfabet. Als je bepaalde letters niet meer gebruikt is het handiger daar nieuwe functies aan te hangen dan langere woorden te gebruiken.
De vraag is: zitten deze instructiesets er echt expliciet op, of is het eigenlijk de SSE3 core die bv. MMX en SSE2 uitvoert? In dat geval zou je de SSE3 core 'MMX en SSE2 compatible' kunnen noemen.

De reden dat MMX e.d. altijd nog in de processor flags genoemd worden is inderdaad om oude software niet op een dwaalspoor te zetten.
Een (mobiele) Pentium 133 MHz zelfs.
MMX wordt vaak nog gebruikt, al was het maar om snel stukken geheugen te kopiëren. De memory manager in de nieuwe Delphi 2006 (FastMM) gebruikt bijv. MMX om geheugen te kopiëren en te initialiseren.
Tja.

Alles wat geprogrammeerd is voor de 8086 of nieuwer, draait nog steeds op alle x86 processoren van vandaag. Dus waarom een uitbreiding van de instructieset die beter en moderner is dan x86 er van jou dan wel uit moet, kan ik niet helemaal plaatsen.
De instructiesets vervangen elkaar niet, maar vullen elkaar aan. SSE 1 t/m 4 doen andere dingen dan MMX doet, dus als je MMX weg zou halen zou je ook functionaliteit van de CPU weghalen die niet op een andere manier beter of zelfs even goed gedaan kan worden.
Je kan natuurlijk niet altijd backwards compatible zijn, net als dat niet alle Windows 95 software of XP draait etc.
Dat zegt meer over die (slechte) software dan over Windows.
Dat heeft lang niet altijd met 'slechte' programma's te maken.

Vergeet niet, Win95 moest kunnen draaien op de gangbare hardware van die tijd, zoals bv. een 16MHz 386SX met 4MB geheugen. Als je dan als ontwikkelaar een stuk extra performance wist te winnen door bv. rechtstreeks de hardware aan te spreken i.p.v. via de drivers te werken (volstrekt legitiem in Win9x), dan deed je dat.
En juist dat soort applicaties doen 't niet meer in een NT-model, waar alles via de HAL (hardware abstraction layer) moet.
die 386 ging t toch echt niet redden met win95

ik had toen een 486DX2 66mhz met 24mb ram, en dat was al drama
De toevoeging van SSE4-instructies betekent dat de processor een aantal nieuwe instructies erbij krijgt.
Dat betekent niet dat het geheel architectureel meer overhead heeft door de oude extensies nog altijd te bewaren.

Met andere woorden, het is niet gezegd dat het weglaten van MMX chipruimte zou vrijmaken voor andere zaken.

Wat ik me afvraag is of AMD deze uitbreidingen ook zal mogen gebruiken - met x86-64 had AMD een deal met Intel gemaakt dat Intel AMD's instructieset kon gebruiken en dat AMD de SSE3 instructieset van Intel mocht implementeren, wat dus ook gedaan is in de K8 core.

Ik hoop dat ze dat met SSE4 ook mogen, anders krijg je weer een 3DNow verhaal...
Anoniem: 13443 @RobT15 februari 2006 14:42
ze hebben een cross-licensing agreement zonder dat daarbij sprake is van een tijdslimiet oid. (dat is al van héél lang geleden toen AMD identieke CPU's voor intel maakte) Dus dat zal zeer waarschijnlijk wel.
Het enige nadeel voor AMD is alleen dat ze pas 2 jaar nadat intel het voor het eerst gebruikt AMD het pas mag gebruiken. Dus intel heeft de 1e 2 jaar het alleenrecht.

Edit:
Het heeft ook te maken met het feit dat AMD maar 10% van zijn productie mag uitbesteden.
SSE3 en X86-64 is geen apart contract voor gemaakt, het valt namelijk nog steeds onder hetzelfde contract, dat 2 kanten op werkt.

Er is een recent artikel op Firingsquad waarin nog een aantal dingen hierover (instructiesets) naar boven komen.
Dat 3D-now! verhaal had te maken met de zwakke Floating point prestaties van de K6 tov de PII met pentium-pro core toen 3D spellen ineens opkwamen. AMD moest daarvoor zelf iets verzinnen, want intel had daar niets voor. MMX is voor integer, 3Dnow zijn SIMD-instructies voor FP.
Die cross-licensing betrof zover ik weet niet SSE1, 2 en 3 - daarom had AMD destijds 3DNow ontwikkeld.

Met de x86-64 cross-licence heeft AMD geregeld dat ze SSE3 konden gebruiken/implementeren. Vandaar mijn oorspronkelijke vraag. Heb jij (of iemand anders) een linkje over die 2 jaar?
Wat ik veel interessanter vind is dat Intel in hun SSE4 eigenlijk dingen inbakt wat je eerder bij GPU's kan verwachten.
Zij er al programma's die SSE3 gebruiken? :+
Ja, maar dan op het OSX platform: namelijk Rosetta dat SSE3 optimaal benut om PowerPC applicaties lekker snel te draaien op x86-CPU's. SSE3 geeft een aanzienlijke snelheidswinst t.o.v. SSE2 voor Rosetta.
zat! Zoek een positieve test van een intel cpu en kijk wat voor programma's er gebruikt worden. Of welke programmas er in BAPCO sysmark zitten. Allemaal geoptimaliseerd voor SSE3 :+

(games niet meegerekend.)
Blijft er gewerkt worden met de 775 socket, of kan men beter wachten op een nieuwe socket (en chipset)?
't wordt volgens mij een heel nieuw platform, dus ja ik neem aan ook een nieuwe socket.
Voor zover ik weet is het gewoon de 775 socket, alleen heb je goed kans dat je moederbord het niet aan kan vanwege de controllerchip die er op zit. De i975x zou misschien met een BIOS update geschikt te maken zijn voor de Conroe, maar ja, wil je dat of een mobo die echt voor de Conroe bedoelt is ...
Ik denk dat Intel dit wel uitgedacht heeft.
Zulken dingen vallen hoogstwaarschijnlijk over hun bedrijfstrategie. Ik vind het goed dat ze op deze manier onafhankelijk blijven.
Je kunt het op 2 manieren zien.

AMD vind juist dat hun voor de consument het makkelijk moeten maken en dus alles ondersteunen. Zodat de consument geen hinder heeft.

Maar dat zou de betekenen dat hun niets mogen bedenken omdat Intel het toch wel beter weet en het zelf nog eens een keer zal maken. Dit is natuurlijk niet eerlijk. Wat dat is dus gebeurt bij 64 Bit en de NX bit. AMD bedacht het en intel bracht en onder een andere naam uit en het was niet compaible met wat AMD had.
Zal wel komen maar de vraag is wanneer. De A64 kregen ook SSE3 maar dat duurde wel even. Mischien dat de AM2 het al heeft maar ik verwacht zelf dat de volgende revisie het pas zal hebben dus de G revisie:

E = Venice / San Diago En de Tolledo en demark
F = AM2

Op dit item kan niet meer gereageerd worden.