TwojePC.pl © 2001 - 2024
|
|
RECENZJE | Technika. Droga ku wydajności |
|
|
|
Technika. Droga ku wydajności Autor: Zbyszek | Data: 23/04/07
| Na przestrzeni ostatnich lat nastąpiła silna ekspansja procesorów z rodziny x86, będących z definicji x86 procesorami CISC, w stronę wysoko wydajnych układów budowanych w oparciu o znacznie lepszą koncepcję RISC. Z biegiem czasu układy x86 wyposażano w coraz to bardziej skomplikowane rozwiązania, mające przybliżyć je wydajnością i sposobem działania do procesorów RISC-owych.
Współczesne procesory wyposażone są w mnóstwo rozwiązań technicznych i programistycznych, dzięki którym osiągają znacznie większą wydajność, niż wynikałoby to tylko z ich taktowania. Zbliżenie układów x86 do architektury RISC było o tyle trudne, iż zachowanie zgodności z kodem x86 i pierwotnymi założeniami tej platformy, wymagało zastosowania dodatkowych rozwiązań w ich architekturze wewnętrznej, ponieważ platforma x86 w całości została oparta na koncepcji CISC, i pierwotnie wykluczała takie rozwiązania jak superskalarność, czy potokowość. Ale po kolei. |
|
|
|
|
|
|
|
|
|
|
K O M E N T A R Z E |
|
|
|
- fiuu fiuu (autor: XiSiO | data: 23/04/07 | godz.: 00:29)
całkiem powazna lektura, jak zobaczylem slowo felieton juz myślałem ze spieq wrocil :)
Gratuluje pierwszej publikacji i życzę wielu równie udanych tekstów.
- hmm (autor: bartek_mi | data: 23/04/07 | godz.: 01:10)
o rzesz ty orzeszku
no to sie nazywa debiut :)
- uuuuuu (autor: macol | data: 23/04/07 | godz.: 01:28)
patrze felieton i do tego nie popelniony przez spieq'a wiec mysle sobie ze wejde i zerkne. Patrze dalej pol strony ... mysle sobie troche malo ...
Zerkam nizej i juz wiem ze dokoncze jutro :D
Takze do zobaczenia jutro ... yyy tzn dzisiaj ale po poludniu :D
- no coz... (autor: AZet | data: 23/04/07 | godz.: 01:46)
mnie sie wydaje ze dochodzi tu jeszcze jeden czynnik: trzymanie w ryzach "mocy" dla zjadacza chleba.
Latwiej kontrolowac.
A poza tym jak widac jest jeszcze sporo rezerwy w starych ukldach,wiec i kasy mozna jeszcze wyciagnac zanim definitywnie uklad sie zapcha.
przejscie na nowa technologie jest nieuniknione i sam podstawowy rynek rozrywki to wymusi...za nascie lat.
- a moze to spieq pisal ? (autor: Nazgul | data: 23/04/07 | godz.: 07:35)
nie ma w redakcji zbigniewa jezora :) jak sie na niego kliknie to wrzuca do redakcji... podejrzane...
- felieton (autor: kretos | data: 23/04/07 | godz.: 09:25)
bardzo fajny. Faktycznie szkoda ze x86 nadal rzadzi. Apple sie nie balo i przeszlo na procesory intela z powerpc, zachowujac wsteczna kompatybilnosc przez emulacje - moze to wlasciwa droga?
- Odpowiedź. (autor: NimnuL-Redakcja | data: 23/04/07 | godz.: 09:46)
Fajnie skondensowana wiedza.
A tekst: "Proszę wybaczyć ten nieco uproszczony sposób traktowania wielu problemów, wymagała go specyfika tego artykułu. " to powstał na skutek mojego ostatniego testu z uproszczeniami? <uśmiech>
- gratki, mega gratki... (autor: Pawelec | data: 23/04/07 | godz.: 09:48)
bardzo udany debiut (czyżby? może to tylko zmiana nicka?) Prosto i łopatologicznie. Po tym należy przeczytać Lancer'owy art o C2D. Co do samego RISC/CISC - problem kompatybilności wstecznej jest wszechobecny - choćby kolorowa telewizja że o ZUSie nie wspomnę.
- Odpowiedź. (autor: NimnuL-Redakcja | data: 23/04/07 | godz.: 09:49)
Cytat z innej strony:
"(...) Zbigniew Jezior. Interesuje się procesorami od kilku lat i traktuje to zajęcie jako hobby"
Popełnił już podobny artykuł na łamach pewnego tygodnika.
- super! (autor: Kriomag | data: 23/04/07 | godz.: 09:49)
bardzo przyjemnie się czytało :D gratulacje!
- hmm (autor: 0r8 | data: 23/04/07 | godz.: 12:09)
eh, juz myslalem, ze to Nim sie przebral ;-)))
- Tekst całkiem przyjemny, ale czy to jest felieton? (autor: bwana | data: 23/04/07 | godz.: 13:14)
Ponadto zaskoczyła mnie pisownia słowa "więc" i przecinka.
- No taki... (autor: DYD-Admin | data: 23/04/07 | godz.: 13:23)
...felieton techninczy, zmieniłem więc na Technika :-)
- Skoro można pisać wszystko co się nie podoba... (autor: Grave | data: 23/04/07 | godz.: 15:29)
"kilkakrotnie bardziej wydajniejszą" (tak wiem, że się czepiam:P).
- A ciekawe kto pamięta/wie (autor: sebtar | data: 23/04/07 | godz.: 19:58)
skąd wziął się K5? Bo to nie jest do końca i w pełni konstrukcja AMD.
- Heh (autor: trepcia | data: 23/04/07 | godz.: 19:59)
nawet wiecie, który wykład z architektur komputerowych przespałem :D Jesteście tak wspaniałomyśli :P
- rewelacja! (autor: vaneck | data: 23/04/07 | godz.: 21:29)
tekst jakich brakuje w serwisach typu TwojePC. Więcej proszę.
"Nieco literacki" styl jak najbardziej, więcej konkretów i nie dałbym rady doczytać do końca - nie każdy: "Interesuje się procesorami od kilku lat i traktuje to zajęcie jako hobby."
- nie che, ale muszeM (autor: RusH | data: 23/04/07 | godz.: 21:53)
nie chce tego czytac w calosci, ale dla porzadku kliknalem w 'Bez kuli u nogi.Poza kolejnością' i zabolal mnie brak orginalnej terminologii (OoO=Out of Order [execution]), zamieniono ja na wymuszone polskie terminy (ktorych uzywa sie chyba tylko w sali wykladowczej)
Ladna fotka ppro z rozneglizowanym cache, ale juz ani slowa czy fotki zewnetrznego L2 w Pentium2 (wielokrotnie wolniejszego od cache w ppro)
"W przypadku błędnej predykcji istniała, więc spora szansa"
faktycznie przecinek przed wiec troche dziwny
' ułatwiających przesyłanie danych pomiędzy pamięciami a dedykowanym rejestrem SSE'
jakimi pamieciami?
- 'na ten czas' :) (autor: RusH | data: 23/04/07 | godz.: 22:06)
Oczywiscie Bardzo mi sie podobalo (stwierdzil wieloletni czytelnik comp.sys.ibm.pc.hardware.chips) - zeby nie bylo ze znowu cos mi nie pasuje :)
- cos jakos chyba zbytnie uproszczenie... (autor: prof | data: 23/04/07 | godz.: 22:12)
"Przeanalizujmy następującą sytuację: procesor (...) ma wykonać kilka kolejnych rozkazów, z których do wykonania pierwszego rozkazu potrzeby jest wynik piątej instrukcji z kolejki."
albo ja czegoś nie rozumiem, albo zbyt pobieżnie potraktowany został tu pewien temat. Proszę o rozwinięcie z jakimś przykładem.
- prof (autor: RusH | data: 23/04/07 | godz.: 23:11)
tez z poczatku tego nie zalapalem, a wystarczy sobie wyobrazic jakiegos loopa
- @RusH (autor: trepcia | data: 23/04/07 | godz.: 23:23)
" zamieniono ja na wymuszone polskie terminy (ktorych uzywa sie chyba tylko w sali wykladowczej)" nie wiem jakie sale wykładowcze miałeś na myśli, ale u nas wszystkie slajdy są po angielsku i nazwy oryginalne zachowane są :)
- Gratulacje (autor: Jarson | data: 23/04/07 | godz.: 23:58)
2 lata regularnie czytam artykuły zamieszczane na łamach tego serwisu i jeszcze na coś takiego jak to nie trafiłem. Artykuł naprawdę na bardzo wysokim poziomie, myślę, że bardziej dla średniozaawansowanych niż zaawansowanych czytelników, ale przez to bardziej na miejscu, ci drudzy mają specjalistyczne publikacje do pogłębiania wiedzy, a powyższy felieton oddaje w skompilowanej formie chyba wszystko co najważniejsze. Jeśli chodzi o język - właściwie nic bym nie zmieniał, jego "literackość", jak to Pan Zbigniew określił, dodaje pracy przejrzystości, co powinno jeszcze bardziej pomóc w trafieniu do odbiorcy. Jeszcze raz - szczerze gratuluję!
- out of order execution (autor: prof | data: 24/04/07 | godz.: 02:14)
@RusH
Wyobrażam sobie te pętle i ciągle jakoś tego nie widzę.
@Autor
Może jakiś przykład kodu?
- prof (autor: kretos | data: 24/04/07 | godz.: 09:19)
no tez sobie tego nie potrafilem wyobrazic ale jakos to przebolalem.. Bo skoro pierwsza instrukcja potrzebuje wyniku piątej to z tego wynika ze bez wykonania poza kolejnoscia wczesniej ten kod byl niewykonalny?
- @prof (autor: rage82 | data: 24/04/07 | godz.: 09:25)
Może łatwiej zamiast kodu jednego programu będzie podejść jak do dwóch wątków aplikacji - wtedy taka sytuacja może być nawet prawdopodobna ;)
Co do samego artykułu, to jest całkiem ładnie napisany, choć nie obraziłbym się, gdyby pojawiło się troszkę dokładniejszych opisów...
- Artykuł ciekawy (autor: ligand17 | data: 24/04/07 | godz.: 10:30)
Ale na Boga, przepuście wcześniej tekst chociażby przez Worda - bo od błędów głowa pęka.
- ligand17 ... (autor: DYD-Admin | data: 24/04/07 | godz.: 11:01)
...na Boga... Word to pestka, otwórz go sam i sprawdz czy Ci złapie jakąś literówę, tekst czytany był wielokrotnie (a policz, ile jest znaczków w tekście), teraz wycinamy przecinki ...
- hohoho (autor: Franz | data: 24/04/07 | godz.: 13:47)
juz dawno nie czytalem tu nic tak dobrze popelnionego !
- .... (autor: Franz | data: 24/04/07 | godz.: 13:48)
nic = niczego
- wow (autor: ray | data: 24/04/07 | godz.: 14:03)
Wspanialy artykul, takie az chce sie czytac. Vortale technologiczne juz nudza nowinkami technicznymi - wieczny poscig za wydajnoscia, i cieszy, ze ktos chcial obejrzec sie wiele lat wstecz i napisac prawdziwie wartosciowy artykul - to znacznie wiecej niz standardowe ogloszenie "pojawilo sie nowe urzadzenie firmy XXX, model XXX, ktory charakteryzuje sie XXX funkcjami, cena nie ustalona" - juz rzygam takimi!
- @rage (autor: prof | data: 24/04/07 | godz.: 14:04)
@kretos
dokładnie o to mi chodziło...
@rage82
no nie do końca. rozważany był procesor jednordzeniowy, więc za synchronizację dwóch wątków odpowiada system operacyjny, a nie procesor.
@ogół;)
zdaje mi się, OoO nie może przekolejkować instrukcji tak, jak to opisano w artykule. OoO może zmienić kod w tym stylu:
mov ax, [2000]
mov bx,ax
inc cx
inc dx
na
mov ax, [2000]
inc cx
inc dx
mov bx,ax
W pierwszej wersji mov bx,ax nie zostałby wpuszczony do potoku przed końcem wywołania poprzedniego mov, a ten może trwać całkiem długo (ze względu na dostęp do pamięci) i procesor musiałby czekać.
Dlatego OoO wrzuca pomiędzy te dwie instrukcje inc cx i inc dx (mov bx,ax i tak musi czekać na wolną pamięć) i dzięki temu jest szybciej.
Nie wykluczam, że to, o czym pisał autor, jest możliwe, choć dobrze by było, gdyby jakimś przykładem mógł wyjaśnić wątpliwości:)
Ogólnie dla średniozaawansowanych bardzo dobry tekst.
Nie pogardziłbym, gdyby na łamach TwojePC pojawiło się coś jeszcze bardziej szczegółowego, np. wyjaśniającego działanie mechanizmów optypmalizujących kod na przykładach w ASMie, rozwinięcie kwestii SIMD (arytmetyka nasycenia), jakieś powiązanie między instrukcją a czasem jej wykonania, co być może pozwoliłoby zrozumieć, dlaczego nie ma sensu porównywania różnych architektur zegar-w-zegar itp.
- prof niee (autor: RusH | data: 24/04/07 | godz.: 22:34)
twoje
mov ax, [2000]
mov bx,ax
inc cx
inc dx
OoO zamieni na superskalarne instrukcje dla jednostek wykonawczych, potem
potok 0
inc cx
potok 1
inc dx
i teraz w zaleznosci czy ma zawartosc [2000] w cache L1
potok 2
mov ax, [2000]
potok 3
mov bx, [2000]
wszystko w jednym cyklu zakladajac ze wystarczy superskalarnych jednostek wykonawczych (tutaj potrzebne 2x ALU 16bitowe inc, 2x LSU 16bitowe mov)
albo jak nie ma w cache to
potok 2
mov ax, [2000]
potok 3
nic, albo cos co lezalo dalej i nie bylo powiazane z AX i BX
potem czekamy az LSU dokopie sie do tej komorki ramu i jedziemy iaj wyzej
wracajac do 'dziwnego' przykladu z pierwszym rozkazem czekajacym na piata instrukcje
xor al,al
__label0:
inc al
jz __label1
inc cx
inc dx
mov al,255
jump __label0
__label1:
nop
teoretycznie zmusilismy procesor do wykonania smieci miedzy __label0 a __label1 przed wykonaniem nopa, nie chce mi sie sprawdzac czy to zadziala :P
- RusH (autor: prof | data: 24/04/07 | godz.: 23:05)
Patrząc na Twoj przykład nie widzę zysku przy OoO (choć owszem, jz naturalnie zależy od wyniku mov al,255 i inc al).
A swoją drogą nie wiem, czy tu raczej nie zadziałałoby przewidywanie rozgałęzień niż OoO.
- bo nie mialo byc zysku (autor: RusH | data: 24/04/07 | godz.: 23:39)
miala byc sytuacja w ktorej ooo sie zatnie i bedzie musialo wykonac kawalek kodu zanim rzuci sie na moj nop
propo intelowe HT to wlasnie proba wykorzystania OoO do symulacji 2 cpu logicznych majac do dyspozycji tylko jeden
troche pr0n na temat
http://www.stanford.edu/class/ee382a/
handouts /Lectures Notes
- i itunes (autor: RusH | data: 24/04/07 | godz.: 23:42)
teoretycznie powinny tam lezec nagrania z tego kursu
http://itunes.stanford.edu/
- Kawałek historii (autor: Alter | data: 27/04/07 | godz.: 02:46)
Czasem przyjemnie jest sobie przypomnieć jak to było, gdyż wszystkie opisane w artykule wydarzenia działy się tuż obok, choć przez wiele lat. Gratuluję tekstu, a fakt, że jest napisany prostym językiem tylko pomaga i chyba zwiększa krąg czytelników.
Niech się dzieciarnia też dowie !
- szok (autor: kubazzz | data: 27/04/07 | godz.: 11:21)
po pierwsze - nie pisal NimnuL
po drugie - o czyms ciekawy, a nie kolejny test jakiegos gadzetu
po trzecie - fachowe podejscie do tematu
wiecej takich na tpc!!
- Od Autora (autor: Zbyszek.J | data: 4/05/07 | godz.: 23:10)
Witam.
Dziękuję za ciepłe przyjęcie, oraz wszystkie cenne uwagi. Przed "więc" w kilku miejscach faktycznie znajdowały się niepotrzebne przecinki, i zostały już usunięte.
Szczególnie cieszę się, że spodobał się opisowy i literacki charakter artykułu, szczerze właśnie tego najbardziej się obawiałem. Należy mieć na uwadze, że chciałem aby tekst był zrozumiały także dla osób, które dopiero zaczynają zdobywać podstawy wiedzy o procesorach, stąd problem, jak już wspomniał ktoś wcześniej - został potraktowany trochę "łopatologicznie".
Przykład użyty wcześniej dla zobrazowania niekolejnego wykonywania rozkazów ( OoO ) faktycznie był nie najlepszy i mógł budzić pewne wątpliwości.
No cóż - polonistyczne ujęcie asemblera to równie karkołomne zadanie, co przedstawienie całek w ujęciu literackim, zamiast we właściwym dla nich języku matematyki...
Pozdrawiam wszystkich Czytelników i dziękuję za odzew oraz liczne komentarze.
- Świetny artykuł! (autor: KuTeR | data: 7/05/07 | godz.: 22:35)
Proszę o więcej!
Pozdrawiam
AlonsO*
|
|
|
|
|
|
|
|
|
D O D A J K O M E N T A R Z |
|
|
|
Aby dodawać komentarze, należy się wpierw zarejestrować, ewentualnie jeśli posiadasz już swoje konto, należy się zalogować.
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|