-
X-Received: by 10.140.97.117 with SMTP id l108mr175032qge.3.1412507785772; Sun, 05
Oct 2014 04:16:25 -0700 (PDT)
X-Received: by 10.140.97.117 with SMTP id l108mr175032qge.3.1412507785772; Sun, 05
Oct 2014 04:16:25 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
uq10no4291431igb.0!news-out.google.com!q8ni41qal.1!nntp.google.com!dc16no737230
qab.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.misc.elektronika
Date: Sun, 5 Oct 2014 04:16:25 -0700 (PDT)
In-Reply-To: <m0r4uh$pl4$1@dont-email.me>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=185.53.155.135;
posting-account=67yd9woAAAAHUu8VHyA7Js47M98NE3m3
NNTP-Posting-Host: 185.53.155.135
References: <0...@g...com>
<m0q0ug$m7k$1@dont-email.me>
<7...@g...com>
<m0r1d0$v9o$1@dont-email.me>
<3...@g...com>
<m0r4uh$pl4$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e...@g...com>
Subject: Re: Procesory wielordzeniowe
From: s...@g...com
Injection-Date: Sun, 05 Oct 2014 11:16:25 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.misc.elektronika:672020
[ ukryj nagłówki ]W dniu niedziela, 5 października 2014 12:01:53 UTC+2 użytkownik Jacek Radzikowski
napisał:
> Zarządzanie zawartością pamięci cache to bardzo skomplikowany temat, na
>
> którym zrobiono wiele doktoratów i sporo zostanie zrobionych w przyszłości.
>
> W skrócie wygląda to tak, że zawartość cache nie odwzorowuje liniowo jednego
>
> wielkiego obszaru pamięci, a wiele stosunkowo niedużych stron. Strony
>
> sąsiadujące ze sobą w cache mogą w pamięci głównej być położone daleko od
>
> siebie.
Fakt, że nie jest to odwzorowanie "wielkiego" obszaru pamiąci jest oczywisty.
Natomiast mechanizm kojarzenia stron jest dla mnie niezrozumiały. Od strony HW, mamy
jakiś tam adres zapisany na n-bitach. Jasne, że możemy ten adres w przypadku "dużych"
pamięci podzielić na strony, bądź innymi słowy na kostki pamięci. OK, no ale wtedy
cykl dostępu do pamięci to 2 kliknięcia zegarka na licznik adresowy, bądź 2 rozkazy
zapisu od strony procka do jakiegoś tam rejestru adresowego. O co mi chodzi? Nosz
kurdelebelans, nie da się z jednej kostki odczytać w tym samym czasie danych z 2-ch
różnych adresów!! No bo niby jak ? Zakładam że kostka ma liniową przestrzeń adresową
A(N downto 0). Szerokość słowa danych nie ma znaczenia.
> Tym żeby wiedzieć jaki adres w cache odpowiada adresowi w pamięci
>
> zajmuje się tablica translacji.
A skąd owa tablica ma wiedzieć o wynikach działania programu/obliczeń i jak przypisać
skoki tam gdie trzeba? Czyżby kompilator najpierw wykonywał wszelakia możliwe
obliczenia, a następnie odpowiednio to kompilował? David Copperfield?
>
> Jeśli strona do której procesor chce się odwołać nie znajduje się w cache -
>
> wykonanie programu jest wstrzymywane i strona jest ładowana. To, którą
>
> stronę w cache zastąpić nową zawartością - to jeden z tematów na doktorat.
Bez jaj. Tego się nie da zrobić w sposób predykcyjny z poziomu kompilatora. Jeżeli
ktoś podejmie się takiego doktoratu, to równie dobrze może się chwycić za doktorat z
wróżenia z fusów.
>
>
>
> Oddzielnym zagadnieniem jest synchronizacja zapisywanych danych. Nie może
>
> dojść do sytuacji że jeden procesor zapisze coś do do pamięci, ale to utknie
>
> w jego lokalnym cache i inny procesor będzie dalej czytać starą wartość. Na
>
> to poświęca się sporą część z tych milionów tranzystorów jakie są pakowane w
>
> krzem.
>
To jest oczywiste. Implikacja tego co napisałem wcześniej.
>
>
> Że to wszystko wymaga czasu - no cóż, "taką mamy pamięć". Dlatego szybkie
>
> procesory mają po kilka poziomów pamięci cache o różnych szybkościach,
>
> dlatego rozdziela się cache programu i danych. Temu też służą algorytmy
>
> przewidywania skoków i cała masa innej magii zaimplementowanej w nowoczesnym
>
> procesorze.
>
Ano właśnie ta magia.. Na czym owa predykcja polega? Może się mylę, ale coś mi tu
pachnie marketingowym bełkotem.
>
>
> Na szybkość działania programu bardzo duży wpływ ma też to jak zaplanujesz
>
> dostępy do pamięci. Numerycy bardzo nie lubią operować na tablicach
>
> wielowymiarowych, bo to potrafi dodać sporo niepotrzebnych przeładowań
>
> stron.
Hah!! Właśnie ja tak robię. Dzięki paru GB pamięci, DSP mogę robić na najpodlejszym
laptopie w czasie rzeczywistym.
> Zamiast tego indeksy są mapowane do liniowego obszaru pamięci i jak
>
> trzeba obliczyć stan w następnym kroku symulacji - solwer jedzie po
>
> kolejnych komórkach nie troszcząc się o indeksy (oczywiście wszystkie dane
>
> wejściowe są odpowiednio przygotowane).
Upsss.. Nie za bardzo kojarzę.
>
> Zrób kiedyś eksperyment: zaalokuj wielką tablicę dwu-wymiarową i przeskanuj
>
> ją iterując najpierw po wierszach później po kolumnach, a później odwróć
>
> kolejność iteracji: najpierw po kolumnach później po wierszach. Przekonasz
>
> się o ile szybciej program będzie działać kiedy będziesz odwoływać się do
>
> pamięci bez skakania po stronach.
>
Bez jaj !! Poważnie? Kurde, zrobię taki eksperyment, ale aż wierzyć mi się nie chce.
Załóżmy że masz rację. No ale wróćmy do realu. Załóżmy że potrzebuję w koło macieju w
jakiejś tam pętli odczytywać dane pomiarowe, z tych danych jest tworzona macierz
(NxN), robimy z niej macierz odwrotną, następnie wykonujemy jakieś tam czary mary na
elementach a(i,j), potem liczymy z tego wyznacznik i cholera wie co jeszcze. No i jak
w takim burdelu mam zapanować nad stronicowaniem? Kompilator to zrobi za mnie? Nie
wierzę !!
==============
Cholera, na grupie elektronicznej w zasadzie zjechaliśmy na matematykę. Ale cóż,
nowoczesna elektronika bez matematyki/algorytmiki nie może funkcjonować.
Następne wpisy z tego wątku
- 05.10.14 14:30 bartekltg
- 05.10.14 14:41 AlexY
- 05.10.14 15:01 s...@g...com
- 05.10.14 15:18 bartekltg
- 05.10.14 15:21 bartekltg
- 05.10.14 15:45 J.F.
- 05.10.14 15:52 s...@g...com
- 05.10.14 16:30 A.L.
- 05.10.14 16:45 A.L.
- 05.10.14 17:12 s...@g...com
- 05.10.14 18:19 A.L.
- 05.10.14 18:57 s...@g...com
- 05.10.14 19:50 Jacek Radzikowski
- 05.10.14 20:29 A.L.
- 05.10.14 21:14 s...@g...com
Najnowsze wątki z tej grupy
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
Najnowsze wątki
- 2025-02-26 Zasilacz USB na ścianę.
- 2025-02-26 Błonie => Specjalista ds. public relations <=
- 2025-02-26 Zielonka => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-26 Warszawa => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-02-26 Białystok => Data Engineer (Tech Leader) <=
- 2025-02-26 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-02-26 Kraków => Business Development Manager - Network and Network Security
- 2025-02-26 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-02-26 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-02-26 Warszawa => Sales Assistant <=
- 2025-02-26 Rzeszów => International Freight Forwarder <=
- 2025-02-26 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-26 Warszawa => Node.js / Fullstack Developer <=
- 2025-02-26 Warszawa => Gen AI Engineer <=
- 2025-02-26 Gdańsk => Specjalista ds. Sprzedaży <=