SSE3

Streaming SIMD Extensions 3 (SSE3, oznaczany również przez firmę Intel jako Prescott New Instructions lub PNI) – zestaw instrukcji SIMD wykorzystywany w architekturze IA-32. Wcześniejsze zestawy SIMD stosowane na platformie x86, od najstarszej to: MMX, 3DNow! (używany tylko przez AMD), SSE i SSE2.

SSE3 wprowadza 13 nowych rozkazów w stosunku do swojego poprzednika SSE2, są to:

  • FISTTP – do konwersji liczb zmiennoprzecinkowych do całkowitych
  • ADDSUBPS, ADDSUBPD, MOVSLDUP, MOVSHDUP, MOVDDUP – do arytmetyki zespolonej
  • LDDQU – do kodowania wideo
  • HADDPS, HSUBPS, HADDPD, HSUBPD – do grafiki (SIMD FP/AOS)
  • MONITOR, MWAIT – do synchronizacji wątków

Intel wprowadził SSE3 2 lutego 2004 roku wraz z procesorem Pentium 4 Prescott, natomiast firma AMD w procesorach Athlon 64 od wersji E.

Nowe rozkazy

Nowe rozkazy:

  • rozkazy wektorowe działające albo na wektorach liczb zmiennoprzecinkowych pojedynczej albo podwójnej precyzji (tj. wektory 4 × 32 bity lub 2 × 64 bity):
    • ADDSUBPS
    • ADDSUBPD
    • HADDPS, HSUBPS
    • HADDPD, HSUBPD
    • MOVSLDUP, MOVSHDUP
    • MOVDDUP
  • FISTTP – nowy rozkaz FPU
  • LDDQU
  • MONITOR i MWAIT

Przed wprowadzaniem SSE3 prawie wszystkie rozkazy arytmetyczne występujące w MMX, SSE, SSE2 działały, jak to określa Intel, „pionowo” (ang. vertical), tj. argumentami działań zawsze są elementy z dwóch wektorów. Natomiast w SSE3 pojawiły się rozkazy działające „poziomo” (ang. horizontal) — argumentami operacji arytmetycznych są elementy tego samego wektora; te instrukcje to: HADDPS, HADDPD, HSUBPS, HSUBPD.

FISTTP

Rozkaz koprocesora arytmetycznego zamieniający liczbę zmiennoprzecinkową zapisaną w wierzchołku stosu na liczbę całkowitą ze znakiem; trybem zaokrąglania zawsze jest ucinanie (ang. chop), niezależnie od ustawień zapisanych w rejestrze kontrolnym FPU. Liczba całkowita może być 16-, 32- lub 64-bitowa, zależnie od argumentu.

Zgłaszany jest wyjątek w przypadku, gdy konwersja jest niemożliwa (wartość przekracza zakres liczby całkowitej, albo jest klasy plus/minus nieskończoność lub NaN).

Rozkaz FISTTP to uproszczona wersja istniejącej instrukcji FISTP, w której tryb zaokrąglania sterowany jest poprzez słowo kontrolne koprocesora – jego ewentualna zmiana jest kosztowna (trzeba wykonać kilka lub kilkanaście dodatkowych instrukcji: zachować bieżące ustawienia, włączyć inny tryb zaokrąglania, wykonać FISTP, przywrócić poprzedni tryb).

ADDSUBPS

Rozkaz działa na dwóch wektorach liczb zmiennoprzecinkowych pojedynczej precyzji. Wykonywane jest dodawanie elementów o nieparzystych indeksach, odejmowanie – parzystych. Działania realizowane przez ADDSUBPS xmm1, xmm2:

xmm1[0] := xmm1[0] - xmm2[0]
xmm1[1] := xmm1[1] + xmm2[1]
xmm1[2] := xmm1[2] - xmm2[2]
xmm1[3] := xmm1[3] + xmm2[3]

ADDSUBPD

Rozkaz analogiczny do ADDSUBPS, działa na dwóch wektorach liczb zmiennoprzecinkowych podwójnej precyzji. Działania realizowane przez ADDSUBPD xmm1, xmm2:

xmm1[0] := xmm1[0] - xmm2[0]
xmm1[1] := xmm1[1] + xmm2[1]

HADDPS, HSUBPS

Rozkazy działają na wektorach liczb zmiennoprzecinkowych pojedynczej precyzji. HADDPS dodaje, zaś HSUBPS odejmuje sąsiednie elementy wektorów, tzn. HADDPS xmm1, xmm2 wykonuje:

temp[0] := xmm1[0] + xmm1[1]
temp[1] := xmm1[2] + xmm1[3]
temp[2] := xmm2[0] + xmm2[1]
temp[3] := xmm2[2] + xmm2[3]
xmm1 := temp

natomiast HSUBPS xmm1, xmm2:

temp[0] := xmm1[0] - xmm1[1]
temp[1] := xmm1[2] - xmm1[3]
temp[2] := xmm2[0] - xmm2[1]
temp[3] := xmm2[2] - xmm2[3]
xmm1 := temp

Np.:

           3     2     1     0         3     2     1     0      
        +-----+-----+-----+-----+   +-----+-----+-----+-----+
        |  d  |  c  |  b  |  a  |   |  h  |  g  |  f  |  e  |
        +-----+-----+-----+-----+   +-----+-----+-----+-----+
                   xmm1                        xmm2

Wynik HADDPS:

        +-----+-----+-----+-----+
 xmm1 = | h+g | f+e | c+d | a+b |
        +-----+-----+-----+-----+

Wynik HSUBPS:

        +-----+-----+-----+-----+
 xmm1 = | h-g | f-e | c-d | a-b |
        +-----+-----+-----+-----+

HADDPD, HSUBPD

Rozkazy działają na wektorach liczb zmiennoprzecinkowych podwójnej precyzji. Rozkaz HADDPD dodaje do siebie sąsiednie elementy wektorów, natomiast HSUBPD odejmuje. Instrukcja HADDPD xmm1, xmm2 wykonuje:

temp[0] := xmm1[0] + xmm1[1]
temp[1] := xmm2[0] + xmm2[1]
xmm1 := temp

natomiast HSUBPD xmm1, xmm2:

temp[0] := xmm1[0] - xmm1[1]
temp[1] := xmm2[0] - xmm2[1]
xmm1 := temp

MOVSLDUP, MOVSHDUP

Rozkazy działają na wektorze liczb zmiennoprzecinkowych pojedynczej precyzji; rozkaz MOVSLDUP powiela elementy o parzystych indeksach, MOVHLDUP – o nieparzystych. Instrukcja MOVSLDUP xmm1, xmm2 wykonuje:

xmm1[0] := xmm2[0]
xmm1[1] := xmm2[0]
xmm1[2] := xmm2[2]
xmm1[3] := xmm2[2]

natomiast MOVSHDUP xmm1, xmm2:

xmm1[0] := xmm2[1]
xmm1[1] := xmm2[1]
xmm1[2] := xmm2[3]
xmm1[3] := xmm2[3]

Np.

           3     2     1     0
        +-----+-----+-----+-----+
 xmm2 = |  d  |  c  |  b  |  a  |
        +-----+-----+-----+-----+

Wynik MOVSLDUP:

        +-----+-----+-----+-----+
 xmm1 = |  c  |  c  |  a  |  a  |
        +-----+-----+-----+-----+

Wynik MOVSHDUP:

        +-----+-----+-----+-----+
 xmm1 = |  d  |  d  |  b  |  b  |
        +-----+-----+-----+-----+

MOVDDUP

Argumentem rozkazu jest liczba zmiennoprzecinkowa podwójnej precyzji, która w rejestrze XMM jest powielana, tj. MOVDDUP xmm1, arg wykonuje:

xmm1[0] := arg
xmm1[1] := arg

Argumentem może być albo lokacja pamięci (wówczas czytane są 64 bity), albo rejestr XMM, wówczas brane są jego 64 najmłodsze bity.

LDDQU

Rozkaz ładuje 128 bitów spod adresów niewyrównanych do granicy 16 bajtów (tj. adresy mający niezerowe 4 najmłodsze bity). Rozkaz realizuje działanie analogiczne do istniejącego w SSE MOVDQU, jednak został specjalnie zoptymalizowany do kodu o następującej charakterystyce:

  • występuje spadek wydajności spowodowany częstymi odczytami obszarów znajdujących się na granicy linijek cache,
  • dane są tylko odczytywane i nie mają zostać (po ewentualnej modyfikacji) z powrotem zapisane pod tym samym adresem.

W przeciwnym razie producent poleca, by nadal używać rozkazów SSE MOVDQU lub MOVDQA.

MONITOR i MWAIT

Para rozkazów służy do efektywnego synchronizowania wątków.

Rozkaz MONITOR ustala początkowy adres zakresu pamięci (rozmiar tego obszaru jest stały, zależny od modelu procesora), który następnie jest automatycznie monitorowany przez procesor: w przypadku wystąpienia zapisu gdziekolwiek w obserwowanym zakresie ustawiana jest wewnętrzna flaga, którą odczytuje MWAIT.

Wykonanie rozkazu MWAIT powoduje wejście w zoptymalizowaną sprzętową pętlę, która jest przerywana, dopiero gdy wspomniana flaga zostanie ustawiona, a więc gdy nastąpi zapis pod obserwowany adres.

Producenci procesorów mogą rozszerzać funkcjonalność tych rozkazów, dlatego m.in. możliwe jest przejście w tryb oszczędzanie energii na czas wykonywania MWAIT.

Bibliografia

  • Intel 64 and IA-32 Architectures Software Developer's Manual: Volume 2A: Instruction Set Reference, A-M (253666), maj 2007

Zobacz też

Read other articles:

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (فبراير 2023) رسم توضيحي لـآلية أقتناء تاجسام على مسبار الفضاء OSIRIS-REx المسبار آلية اقتناء عينات TAGSAM أو آلية اقتناء عينات بطريقة تلامس- ثم- اذهب Touch-and-Go ، هي ذراع آلية على ال...

 

Department store in London, England Fortnum & Mason plcCompany typeSubsidiaryIndustryRetailFounded1707; 317 years ago (1707)FoundersWilliam FortnumHugh MasonHeadquarters181 PiccadillyWestminster, London, W1United KingdomNumber of locations5 (2019)[1]Area servedUnited KingdomHong KongWorldwide (via stockists and online)Key peopleChairman: Kate Hobhouse CEO: Tom AthronProductsLuxury goodsNumber of employees708 (2016)[2]ParentWittington Investments LtdWebsit...

 

Disambiguazione – Se stai cercando altri significati, vedi Hunan (disambigua). Questa voce sull'argomento geografia della Cina è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Hunanprovincia(ZH) 湖南省 (Húnán Shěng)abbrev. 湘 (Xiāng) LocalizzazioneStato Cina AmministrazioneCapoluogoChangsha GovernatoreZhou Qiang Segretario PCCZhang Chunxian TerritorioCoordinatedel capoluogo28°11′46″N 112°58′20″E / 28.196111°N 1...

Administrative division of Nazi Germany Gau Upper SilesiaGau of Nazi Germany1941–1945 FlagUpper Silesia in gray, bordering the General GovernmentCapitalKattowitzGovernmentGauleiter • 1941–1945 Fritz Bracht History • Establishment 27 January 1941• Disestablishment 1 August 1945 Preceded by Succeeded by Gau Silesia Poland Czechoslovakia Today part ofPolandCzech Republic The Gau Upper Silesia (German: Gau Oberschlesien) was an administrative division of Naz...

 

Cet article concerne le Parti populaire allemand durant la période de l'Empire allemand. Pour le parti existant durant la république de Weimar, voir Parti populaire allemand (République de Weimar). Parti populaire allemandHistoireFondation 1868Dissolution 6 mars 1910Prédécesseur Parti populaire démocratiqueSuccesseur Parti populaire progressisteCadreType Parti politique, ancien parti politique libéralPays  Empire allemandOrganisationIdéologie Démocratie libérale, social-li...

 

Voce principale: Associazione Sportiva Gubbio 1910. Gubbio CalcioStagione 1989-1990Sport calcio Squadra Gubbio Allenatore Francesco Giorgini Presidente Giuseppe Vispi Serie C25º posto nel girone C. Maggiori presenzeCampionato: Morbiducci, Rossi (32) Miglior marcatoreCampionato: Zoppis (9) 1988-1989 1990-1991 Si invita a seguire il modello di voce Questa pagina raccoglie le informazioni riguardanti il Gubbio Calcio nelle competizioni ufficiali della stagione 1989-1990. Indice 1 Rosa 2 R...

This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Belarusians in Latvia – news · newspapers · books · scholar · JSTOR (March 2023) (Learn how and when to remove this template message) Belarusians in LatviaБеларусы ЛатвііTotal population57 319 (2022)Regions with significant populationsRīga, LatgaliaLanguagesBelar...

 

74th Air Refueling Squadron A KC-135R Stratotanker from Grissom ARB refuels an F-22A from Langley AFBActive1943–1946 1947–1951 1992–presentCountry United StatesBranch United States Air ForceRoleAir RefuelingPart ofAir Force Reserve CommandGarrison/HQGrissom Air Reserve BaseEngagementsOperation Overlord Operation Market Garden Battle of the Bulge Operation Plunder[1]DecorationsDistinguished Unit CitationAir Force Outstanding Unit AwardFrench Croix de Guerre with P...

 

For the village in Iran, see Aspar, Iran. For the Grand Prix motorcycle racing team, see Aspar Team. Detail of a dish depicting Aspar and his elder son Ardabur (c. 434). Flavius Ardabur Aspar (Greek: Ἄσπαρ, fl. 400 – 471) was an Eastern Roman patrician and magister militum (master of soldiers) of Alanic-Gothic descent.[1] As the general of a Germanic army in Roman service,[2][3][4][5] Aspar exerted great influence on the Eastern Rom...

Il giocattolo dei bambiniこどものおもちゃ(Kodomo no omocha)Copertina del primo volume dell'edizione italiana Generecommedia romantica, drammatico MangaAutoreMiho Obana EditoreShūeisha RivistaRibon Targetshōjo 1ª edizioneagosto 1994 – novembre 1998 Tankōbon10 (completa) Editore it.Dynit Collana 1ª ed. it.Love & Pop 1ª edizione it.3 gennaio 2002 – 26 agosto 2003 Volumi it.10 (completa) OAVKodomo no omo...

 

Jennifer Yuh NelsonJennifer Yuh Nelson pada Mei 2012 di konferensi bisnis C2-MTLLahirJennifer Yuh07 Mei 1972 (umur 52)[1]Korea SelatanTempat tinggalAmerika SerikatPendidikanBachelor of Fine ArtsAlmamaterCalifornia State University, Long BeachPekerjaanSutradara, artis papan ceritaTahun aktif1994-sekarangTempat kerjaDreamWorks AnimationKarya terkenalKung Fu Panda 2Kung Fu Panda 3 Jennifer Yuh Nelson (lahir 7 Mei 1972), juga dikenal sebagai Jennifer Yuh, adalah seorang sutrada...

 

此條目可能包含不适用或被曲解的引用资料,部分内容的准确性无法被证實。 (2023年1月5日)请协助校核其中的错误以改善这篇条目。详情请参见条目的讨论页。 各国相关 主題列表 索引 国内生产总值 石油储量 国防预算 武装部队(军事) 官方语言 人口統計 人口密度 生育率 出生率 死亡率 自杀率 谋杀率 失业率 储蓄率 识字率 出口额 进口额 煤产量 发电量 监禁率 死刑 国债 ...

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)&#...

 

كيمبو سلايس معلومات شخصية اسم الولادة Kevin Ferguson الميلاد 8 فبراير 1974(1974-02-08)ناساو الوفاة 6 يونيو 2016 (42 سنة)كورال سبرنغز  سبب الوفاة نوبة قلبية  الإقامة كوتلر باي  الجنسية أمريكي الطول 188 سنتيمتر  الوزن 106 كيلوغرام  الحياة العملية المدرسة الأم جامعة ميامي المهنة ممثل...

 

Indian Voluntary Social Service Organization This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article contains content that is written like an advertisement. Please help improve it by removing promotional content and inappropriate external links, and by adding encyclopedic content written from a neutral point of view. (September 2020) (Learn how and when to remove this message) This a...

Irish body formed to consider political and social issues Not to be confused with the Portuguese political party We, the Citizens! and the German political party Wir Bürger. Bilingual logo of the Citizens' Assembly The Citizens' Assembly (Irish: An Tionól Saoránach[1] and also known as We The Citizens[2]) is a citizens' assembly established in Ireland in 2016 to consider several political questions including the Constitution of Ireland.[3] Questions considered inclu...

 

Women's rugby union event in New Zealand This article is about rugby union. For rugby league, see 2021 Rugby League World Cup and 2021 Women's Rugby League World Cup. 2021 Rugby World CupTournament detailsHost nation New ZealandDates8 October – 12 November 2022No. of nations12Final positionsChampions  New ZealandRunner-up  EnglandThird place  FranceTournament statisticsMatches played26Top scorer(s) Emily Scarratt (44)Most tries Portia Woodman (7)͛...

 

نهر سان خوان (نيكاراغوا) نهر سان خوان (نيكاراغوا) المنطقة البلد نيكاراغوا  الخصائص الطول 180 كم (110 ميل) المجرى المنبع الرئيسي بحيرة نيكاراغوا المصب البحر الكاريبي  مساحة الحوض 35000 كيلومتر مربع  الجغرافيا دول الحوض نيكاراغوا، كوستاريكا بحيرات على النهر بحيرة نيكار�...

Get the GringoSutradaraAdrian GrunbergProduserMel GibsonBruce DaveyStacy PerskieDitulis olehMel GibsonStacy PerskieAdrian GrunbergPemeranMel Gibson Kevin HernandezPenata musikAntonio PintoSinematograferBenoît DebiePenyuntingSteven RosenblumPerusahaanproduksiIcon ProductionsAirborne ProductionsDistributor20th Century Fox Home Entertainment[1]Tanggal rilis1 Mei 2012[1]Durasi96 menit[2]NegaraAmerika SerikatBahasaInggrisSpanyol[2]Pendapatankotor$5,793,167 ...

 

Javier Mascherano Javier Mascherano en 2017. Situation actuelle Équipe Argentine olympique (sélectionneur) Biographie Nom Javier Alejandro Mascherano Nationalité Argentine Italienne Nat. sportive Argentine Naissance 8 juin 1984 (40 ans) San Lorenzo (Argentine) Taille 1,74 m (5′ 9″)[1] Période pro. 2003 – 2020 Poste Défenseur central / Milieu défensif Pied fort Droit Parcours senior1 AnnéesClub 0M.0(B.) 2003-2005 River Plate 071 0(1) 2005-2006 SC Corinthians 033 0(...