Rodomi pranešimai su žymėmis 3. Duomenų ir vaizdų apdorojimo efektyvumą didinančios technologijos. Rodyti visus pranešimus
Rodomi pranešimai su žymėmis 3. Duomenų ir vaizdų apdorojimo efektyvumą didinančios technologijos. Rodyti visus pranešimus

2013 m. sausio 11 d., penktadienis

3.7. Temos apibendrinimas



1. Pentium MMX, kurio komandų sistema papildyta 57 komandomis, orientuotomis į efektyvų tipinių multimedija algoritmų vykdymą. Joms priklauso ir daugybė algoritmų, būdingų skaitmeniniam signalų apdorojimui (operacijos su vektoriais, skleistinė, Furje eilutės ir kt.). 
2. SIMD apdorojimas žymiai paspartina multimedia algoritmų, kuriems būdingas identiškų operacijų vykdymas su dideliais vienodo tipo duomenų masyvais (pavyzdžiui, 16 bitų skaičiavimai skaitmeniniam garsui ir t.t.) vykdymą.
3. MMX komandų panaudojimas leidžia paspartinti multimedia komandų vykdymą lyginant su įprastais Pentium procesoriais 60% esant vienodam taktiniam dažniui (Intel multimedinio testo Media Benchmark duomenys).
4. Našumo padidėjimas įvedus MMX-komandas nepateisino vartotojų, dirbančių su grafinėmis programomis, vilčių. Našumo padidėjimas 10% buvo pasiektas, kaip manoma, dėka vidinės procesoriaus Pentium MMX priešatmintinės padidinimo, o ne vektorinių komandų.
5. Vykdant tipinius grafiniams paketams geometrinius pertvarkymus, daug svarbiau turėti didelio našumo duomenų apdorojimą slankaus kablelio režime, ko nepavyksta efektyviai realizuoti įvedus duomenų apdorojimo SIMD komandas su fiksuotu kableliu.
6. Viena slankaus kablelio SIMD komanda gali vienu metu apdoroti keturias 32 bitinius  vienadinarinio tikslumo slankaus kablelio skaičius (vadinamų SPFP duomenų elementus).
7. SPFP komandos naudoja naująjį duomenų tipą – 128 bitines reikšmes, turinčias keturis nuosekliai išdėstytus (“suspaustus”) 32 bitinius slankaus kablelio skaičius.
8. Kiekvienas 32 bitinis slankaus kablelio skaičius pagal IEEE-754 standartą turi 1 ženklo skiltį, 8 eilės bitus ir 23 mantisės bitus.
9. Lygiagrečios operacijos vykdomos iškart su visais keturiais kiekvieno 128 bitinio operando 32 bitiniais duomenų elementais. Komandų, vykdančių lygiagrečias operacijas, varduose yra priesaga ps. Pavyzdžiui, komanda addps sudeda keturias duomenų elementų poras ir įrašo keturias gautas sumas į atitinkamus pirmojo operando elementus.
10.     Skaliarinės operacijos vykdomos su jaunesniais (užimančiais 0-31 skiltis) dviejų operandų duomenų elementais. Likę trys duomenų elementai lieka nepakitę (išskyrus skaliarinio kopijavimo komandą movss).
11.     Į naujų Pentium 3 komandų rinkinį įtrauktos papildomos SIMD komandos darbui su fiksuoto kablelio duomenimis. Šios naujos komandos išplečia egzistuojančių MMX rinkinio komandų galimybes.
12.     Naujos SIMD komandos fiksuoto kablelio duomenų apdorojimui vykdo SIMD operacijas  su keliais fiksuoto kablelio duomenų elementais, supakuotais į 64 bitines grupes, įrašo ir saugo pakuotus duomenis MMX registruose.
13.     Svarbiu Pentium 4 pranašumu yra tai, jog jis turi SIMD (Single instruction – multiple data) instrukcijų apdorojimo bloką. 64 bitų instrukcijos skirtos darbui su slankaus kablelio skaičiais, o 128 bitų – su fiksuoto kablelio duomenims.
14.     SIMD instrukcijų rinkinys (SSE2) turi 76 visiškai naujas, operuojančias su plačiu duomenų diapazonu, ir 68 skirtas darbui su fiksuoto kablelio duomenimis instrukcijas.
15.     Pagreitintas duomenų apdorojimas AMD procesoriuose realizuotas naudojant 3DNow! technologiją, gaunamas dėl to, kad vietoje MMX komandų yra naudojamos analogiškos, bet dirbančios su slankaus kablelio formato duomenimis, SIMD komandos. Kiekviena 3DNow! komanda gali dirbti su dviem slankaus kablelio formato operandais. Procesorius AMD K6 – II vieno ciklo metu, naudodamas du konvejerius, sugeba apdoroti dvi 3DNow! instrukcijas.

3.5. 3D Now komandų rinkinys AMD K6 procesoriuje



1998 metų gegužės pabaigoje AMD pranešė apie savo naują produktą – mikroprocesorių K6 – II su superskaliariniu MMX komandų apdorojimu ir 3DNow! technologija, kurioje yra 21 nauja instrukcija, tarp kurių - pagreitinančios trimačių objektų vaizdavimą, palaikančios stereo garsą bei video. Tokios galimybės Intel mikroprocesoriuose buvo įgyvendintos žymiai vėliau, kai buvo išleistas procesorius Pentium III.
Pagreitintas apdorojimas, naudojant 3DNow technologiją, gaunamas dėl to, kad vietoje MMX komandų yra naudojamos analogiškos, bet dirbančios su slankaus kablelio formato duomenimis, SIMD komandos. Kiekviena 3DNow komanda gali dirbti su dviem slankaus kablelio formato operandais. Procesorius AMD K6 – II vieno ciklo metu, naudodamas du konvejerius, sugeba apdoroti dvi 3DNow instrukcijas. Tokiu būdu vieno ciklo metu gali būti atlikti keturi veiksmai su slankaus kablelio operandais (sudėti, sudauginti ir atimti).
Procesoriaus AMD K6 – II daugialypės terpės blokas apjungia iki šiol buvusias MMX ir naujas 3DNow! instrukcijas. Toks instrukcijų apjungimas programoms leidžia vykdyti grafines MMX instrukcijas (sveikų skaičių operandai) ir 3DNow instrukcijas (slankaus kablelio operandai) negaištant laiko persijungiant tarp blokų. 3DNow komandos naudoja tuos pačius registrus, kaip ir MMX, yra taip pat koduojamos ir gali būti vykdomos lygiagrečiai kartu su MMX komandomis.
3DNow! papildo ir padidina grafinių spartintuvų galimybes, pagreitindama veiksmus su slankaus kablelio operandais įvairiose grafinio konvejerio proceso stadijose.
Procesorius K6 – II yra pirmasis atitinkantis Socket7 standartus ir naudojantis 100 MHz magistralę.
Programinė įranga, kurios produktyvumas žymiai padidėja, naudojant 3DNow:
Ø  Trimatės grafikos žaidimai.
Ø  Daugialypės terpės enciklopedijos;
Ø  Tinklas ir tinklo stočių kūrimas;
Ø  Prezentacijos, teksto procesoriai ir elektroninės lentelės;
Ø  CAD/CAM priemonės;
Ø  Trimačio garso apdorojimas;
Ø  Balso atpažinimo įranga;
Ø  Vaizdo perdavimas per Internet’ą;
Ø  Kokybiškas DVD formato filmų skaitymas;
Ø  Programinės trimačių valdiklių tvarkyklės;
Ø  MPEG – video atkūrimas;
Ø  Dolby AC – 3 (DVD filmuose naudojamas garso kodavimo formatas).

3.4. SSE2 komandų rinkinys Pentium 4 procesoriuje



Tuo pačiu svarbiu Pentium 4 pranašumu yra tai, jog jis turi SIMD (Single instruction – multiple data) instrukcijų apdorojimo bloką. 64 bitų instrukcijos skirtos darbui su slankaus kablelio skaičiais, o 128 bitų – su fiksuoto kablelio duomenims. Tokie moduliai Pentium 4 irgi du: vienas registrinėms operacijoms, kitas – aritmetinėms. Teoriškai įmanomas darbo režimas,  kai per vieną taktą vykdoma viena SIMD instrukcija, sudaryta iš keturių operacijų.
  SIMD instrukcijų rinkinys (SSE2) turi 76 visiškai naujas, operuojančias su plačiu duomenų diapazonu, ir 68 skirtas darbui su fiksuoto kablelio duomenimis instrukcijas.

3.3. Komandų sistemos išplėtimas SSE rinkiniu Pentium 3 procesoriuje



Našumo padidėjimas įvedus MMX-komandas vis dėlto  nepateisino vartotojų, dirbančių su grafinėmis programomis, vilčių. Našumo padidėjimas 10%, kaip manoma, buvo pasiektas daugiau dėka vidinės procesoriaus Pentium MMX priešatmintinės padidinimo, o ne vektorinių komandų. Ofisiniuose taikomuosiuose paketuose SIMD MMX išplėtimo komandos praktiškai nenaudojamos.
Vykdant tipinius grafiniams paketams geometrinius pertvarkymus, daug svarbiau turėti didelio našumo duomenų apdorojimą slankaus kablelio režime, ko nepavyksta efektyviai realizuoti įvedus duomenų apdorojimo SIMD komandas su fiksuotu kableliu.
Dalinai išspręsti našumo padidinimo problemą grafiniams paketams Intel bandė išleidusi grafinį procesorių I740, orientuotą darbui Pentium 2 sistemose su AGP magistrale. Šis procesorius leido pagreitinti trimačių grafinių vaizdų apdorojimą, tai pavyko dar dėka jame panaudotos lygiagrečios slankaus kablelio komandų vykdymo technologijos (Parallel Data Processing, PDP – lygiagretus duomenų apdorojimas).
Norėdama pašalinti trūkumus, būdingus MMX technologijai ( komandų darbui su slankaus kablelio operacijomis, slankaus kablelio operacijų pertraukimą vykdant MMX komandas), Intel nusprendė įvesti keletą esminių pakeitimų šeštos kartos procesorių architektūroje.
Naujos slankaus kablelio duomenų apdorojimo SIMD komandos, realizuotos procesoriuje Pentium 3, didina taikomųjų programų našumą tokiose srityse kaip:
ØTrimatė grafika ir modeliavimas
ØSignalų apdorojimas ir procesų su plačiu parametrų kitimo diapazonu modeliavimas
ØBlokinio kodavimo algoritmuose ir vaizdo signalo dekodavime
ØDuomenų filtracijos skaitmeniniuose algoritmuose
Viena slankaus kablelio SIMD komanda gali vienu metu apdoroti keturis 32 bitinius  vienadinarinio tikslumo slankaus kablelio skaičius (vadinamų SPFP duomenų elementus).
Vienadinarinio tikslumo slankaus kablelio duomenų SIMD komandos naudoja aštuonis naujus 128 bitinius registrus – MMX registrus : XMM0 … XMM7. Šie registrai naudojami tiktai darbui su duomenimis. Atmintinės adresavimui naudojami fiksuoto kablelio registrai ir Intel architektūroje numatyti adresavimo režimai.
Skirtingai nei MMX registrai, kurie fiziškai realizuoti standartinėse Intel architektūrai 80 bitiniuose duomenų registruose su slankiu kableliu, 128 bitiniai XMM registrai yra nauji procesoriaus komponentai.
SPFP komandos naudoja naująjį duomenų tipą – 128 bitines reikšmes, turinčias keturis nuosekliai išdėstytus (“suspaustus”) 32 bitinius slankaus kablelio skaičius.
Pentium 3, kaip ir ankstesnių kartų Intel procesoriuose, vidiniam duomenų slankaus kablelio formate naudojamas 80-bitinis praplėsto tikslumo formatas, bet suspaustiems slankaus kablelio skaičiams Pentium 3 procesoriuje naudojamas 32 bitinis vaizdavimas su vienadinariniu tikslumu. Todėl dėl slankaus kablelio duomenų apdorojimo rezultatų apvalinimo, x87 architektūros ir SPFP komandų duomenys gali nesutapti.
Kiekvienas 32 bitinis slankaus kablelio skaičius pagal IEEE-754 standartą turi 1 ženklo skiltį, 8 eilės bitus ir 23 mantisės bitus.
Dauguma SPFP komandų turi du operandus. Duomenys esantys pirmajame operande po komandos įvykdymo pakeičiami rezultatais, o antrojo operando duomenys išlieka nepakitę.
SIMD komandos palaiko du operacijų su suspaustais slankaus kablelio duomenimis tipus – lygiagrečius ir skaliarinius.
Lygiagrečios operacijos vykdomos iškart su visais keturiais kiekvieno 128 bitinio operando 32 bitiniais duomenų elementais. Komandų, vykdančių lygiagrečias operacijas, varduose yra priesaga ps. Pavyzdžiui, komanda addps sudeda keturias duomenų elementų poras ir įrašo keturias gautas sumas į atitinkamus pirmojo operando elementus.
Skaliarinės operacijos vykdomos su jaunesniais (užimančiais 0-31 skiltis) dviejų operandų duomenų elementais. Likę trys duomenų elementai lieka nepakitę (išskyrus skaliarinio kopijavimo komandą movss).
Komandų, vykdančių skaliarines operacijas, varduose yra priesaga ss ( pavyzdžiui, komanda addss).
3.1 lentelė. Slankaus kablelio SIMD komandos pavyzdys

Vykdoma operacija
Lygiagrečios komandos mnemonika
Skaliarinės komandos mnemonika

Pastabos
Sudėtis
addps xmm1,
xmm2
addss xmm1,
xmm2
Pirmasis komandos operandas randasi XMM registre, antras operandas – arba XMM registre arba atmintinėje. Rezultatas- pirmajame registre

3.3.2. Papildomos SIMD komandos darbui su fiksuoto kablelio duomenimis
Į naujų Pentium 3 komandų rinkinį įtrauktos papildomos SIMD komandos darbui su fiksuoto kablelio duomenimis. Šios naujos komandos išplečia egzistuojančių MMX rinkinio komandų galimybes.
Naujos SIMD komandos fiksuoto kablelio duomenų apdorojimui vykdo SIMD operacijas  su keliais fiksuoto kablelio duomenų elementais, supakuotais į 64 bitines grupes, įrašo ir saugo pakuotus duomenis MMX registruose.
23

Naujų SIMD fiksuoto kablelio komandų mnemonika turi priešdėlius ir priesagas nurodančias vykdomos operacijos charakterį ir naudojamų duomenų tipą:
Ø   Priešdėlis p nurodo tai jog komanda vykdo lygiagrečias operacijas su keliais duomenų elementais
Ø   Priesagos b, w, d ir q nurodo naudojamųjų duomenų tipą ( supakuoti baitai, žodžiai, dvigubi žodžiai, ir keturgubas žodis atitinkamai )
Ø   Priesagos u arba s nurodo duomenų su ženklu (u) arba be ženklo(s).
Taip, pavyzdžiui daugybos  komanda pmulhuw dirba su duomenimis : “pakuoti 16 bitų žodžiai be ženklo”

3.2. SIMD tipo MMX komandų rinkinys



 Pentium MMX (MultiMedia eXtentions) pasirodymą rinkoje vis dėl to dagiausiai paskatino gausybės daugialypės terpės (Multimedia) programų pasirodymas apie 1995-1996 metus. Tai programos, gebančios apdoroti vaizdus, garsus ir kt. Deja, Pentium procesoriaus sparta neleido efektyviai tų programų darbo išnaudoti.
Analizuojant minėtų programų algoritmus, buvo pastebėta, kad jose labai dažnai tenka vykdyti vieno ir to paties tipo komandas su daugeliu duomenų porų. Kilo idėja, sukurti specialų komandų rinkinį, pritaikytą minėto tipo programoms. Buvo sukurtas specialus SIMD (Single Instruction Many Data) komandų formatas. Tokiose komandose yra vienas operacijos kodas ir nurodytos keturios duomenų poros, su kuriomis ta operacija turi būti atlikta. Aišku, galima nurodyti ir mažiau duomenų porų.
Pentium MMX komandų sistema papildyta 57 komandomis, orientuotomis į efektyvų tipinių multimedija algoritmų vykdymą. Joms priklauso ir daugybė algoritmų, būdingų skaitmeniniam signalų apdorojimui (operacijos su vektoriais, skleistinė, Furje eilutės ir kt.).
Tai pirmasis reikšmingas komandų sistemos pakeitimas x86 šeimos mikroprocesoriuose nuo Intel80386 išleidimo į pasaulį 1985 m., turėjusio 220 pagrindinių komandų.
  Kartu su kitais patobulinimais  pagrindiniu Pentium MMX procesoriaus  privalumu yra jo sugebėjimas palaikyti papildomą multimedija komandų rinkinį, kurio vykdymui naudojamas MMX-įtaisas ir slankaus kablelio registrų blokas.
MMX technologija atnešė šiuos pakitimus į Intel mikroprocesorių architektūrą:
Ø  Pridėti 8 MMX registrai (MM0-MM7). MMX registrai fiziškai susieti su 64 bitų slankaus kablelio registrais ir gali būti panaudoti tik veiksmams su MMX-duomenimis.
Ø  Pridėtos 57 naujos komandos. Komandos skirstomos į grupes: duomenų mainų, aritmetines, sulyginimo, logines, postūmio, pertvarkymo ir MMX režimo išjungimo komandą.
Ø  Papildomai pridėti 4 nauji duomenų tipai – pakuoti baitai (8 baitai 64 bitų pakete), pakuoti žodžiai  (keturi 16 bitų žodžiai 64 bitų pakete), pakuoti dvigubi žodžiai (du 32 bitų žodžiai 64 bitų pakete) ir keturgubas žodis (64 bitai). Aritmetinės arba loginės operacijos vykdomos paraleliai su kiekvienu žodžio arba dvigubo žodžio baitu, esančiu 64 bitų MMX registre (SIMD apdorojimo modelis).
SIMD apdorojimas žymiai paspartina multimedia algoritmų, kuriems būdingas identiškų operacijų vykdymas su dideliais vienodo tipo duomenų masyvais (pavyzdžiui, 16 bitų skaičiavimai skaitmeniniam garsui ir t.t.) vykdymą.
MMX komandų panaudojimas leidžia paspartinti multimedia komandų vykdymą lyginant su įprastais Pentium procesoriais 60% esant vienodam taktiniam dažniui (Intel multimedinio testo Media Benchmark duomenys).
Fizinis MMX registrų ir slankaus kablelio registrų suderinimas garantuoja suderinamumą su ankstesniąją architektūra ir, atitinkamai, leidžia naudoti ankstesniąją programinę įrangą. Tam kad persijungti iš MMX režimo į slankaus kablelio apskaičiavimų režimą, procesoriui reikia 50 taktų.
MMX komandų vykdymas vykdomajame U arba V konvejeryje gali būti atliekamas tuo pačiu metu kaip ir kita MMX komanda arba fiksuoto kablelio operacija (bet ne slankaus). Prie 6 įprastų slankaus kablelio komandos vykdymo stadijų pridedamos dar 6 MMX įtaise.
Praplėstas konvejerizavimas žymiai padidina procesoriaus našumą ir dirbant su multimedija programomis.

3.1. Intel NSP koncepcija



  NSP koncepcija, Intel pasiūlyta dar 1995 metais perdeda procesoriui dalį užduočių, anksčiau vykdomų atskiruose specializuotuose įrenginiuose ir tuo pačiu supaprastina pačio kompiuterio konstrukciją ir sumažina jo gamybos kainą. Prie šitų užduočių priskiriama garso bei muzikos sintezė, kalbos atpažinimas, vaizdo ir grafinės informacijos apdorojimas, komunikacinių funkcijų atlikimas ir kt.
Toks kiekis įvairiausių funkcijų, kurių vykdymas pagal NSP technologiją turėjo būti patikėtas procesoriui, gerokai viršijo tolimos nuo tobulybės architektūros x86 šeimos procesorių galimybes, ir reikalavo atitinkamų pakeitimų. Koncepcijos NSP įkūnijimu “metale” tapo 1997m. pasaulį išvydęs procesorius Pentium MMX.

Etiketės