-
81. Data: 2019-02-17 03:55:58
Temat: Re: Zagwozdka w C Keil.
Od: k...@g...com
W dniu wtorek, 12 lutego 2019 09:31:35 UTC+1 użytkownik Mateusz Viste napisał:
> Mi zdarza się (rzadko, ale jednak) użyć uint64_t do liczenia jakichś
> naprawdę dużych wielkości, np. do zliczania cykli CPU, a czasem nawet po
> _uint128_t (gcc) sięgnę jak potrzebuję popracować na adresach IPv6. Ale
> to naprawdę sporadyczne przypadki, stąd ciekaw jestem co takiego piszesz
> że w C89 nie da się :)
Ostatni raz, kiedy musiałem, to był algorytm dekompozycji funkcji
boolowskich (czyli z grubsza rozkładu dużej funkcji boolowskiej na małe
które się da zaimplementować w LUTach), w praktyce oznaczało to masowe
robienie operacji logicznych na długich ciągach bitów. Do tego cały
proces trwał parę dni i chcieliśmy z tego zrobić jakieś statystyki,
więc by się przydało, żeby, mówiąc językiem młodzieży, zserializować
obiekt ze stanem pośrednim. Ostatnią rzeczą, na którą człowiek ma
ochotę, jest rzeźbienie czegoś, co zapisuje ciągi bajtów tak, żeby
działało na tzw. wszystkim niezależnie od długości największego
ciągu bitów który mieście się w rejestrze i umiał to odczytać i
przerobić tak jak trzeba na innej maszynie w razie potrzeby;)
Na całe szczęście już nie pracuję na uczelni i na dostęp do klastra
obliczeniowego nie trzeba się zapisywać z półrocznym wyprzedzeniem,
teraz pewnie bym to napisał w tzw. czymkolwiek względnie równolegle,
wrzucił do jakiejś komercyjnej usługi która robi obliczenia rozproszone
za parędziesiąt dolarów miesięcznie i miał wyniki w 15 minut.
Najbardziej zadziwiali mnie moi poprzednicy, bo mimo konieczności
rzeźbienia i z praktycznie zerowym budżetem ich algorytmy potrafiły zrobić w kilka
godzin np. sprzętową implementację DES z dwucyfrowo% mniejszą liczbą bramek niż takie
powiedzmy oprogramowanie od Altery :)
Pozdrawiam,
--
Karol Piotrowski
-
82. Data: 2019-02-17 09:16:47
Temat: Re: Zagwozdka w C Keil.
Od: Mateusz Viste <m...@n...pamietam>
On Sat, 16 Feb 2019 18:55:58 -0800, kropelka wrote:
> Ostatni raz, kiedy musiałem, to był algorytm dekompozycji funkcji
> boolowskich (czyli z grubsza rozkładu dużej funkcji boolowskiej na małe
> które się da zaimplementować w LUTach), w praktyce oznaczało to masowe
> robienie operacji logicznych na długich ciągach bitów.
No ok, urzekające - ale z tego co rozumiem to była to misja pokroju
"akademicka masturbacja", czyli bardzo słaby przykład "typowego
programowania na normalny komputer" :)
Mateusz
-
83. Data: 2019-02-17 11:57:29
Temat: Re: Zagwozdka w C Keil - wyjaśnienie.
Od: "J.F." <j...@p...onet.pl>
Dnia Sat, 16 Feb 2019 22:11:47 +0000 (UTC), Queequeg napisał(a):
> J.F. <j...@p...onet.pl> wrote:
>> Taka typowa sekcja krytyczna to jeszcze wymaga systemu operacyjnego, a
>> przynajmniej czegos na ksztalt, z przelaczaniem procesow ..
>
> Czemu? Na 8-bitowcach zwykle nie mamy OS ani wielu procesów, mamy jedynie
> przerwania, więc w sekcji krytycznej chcemy po prostu, żeby funkcje
> obsługi przerwań poczekały na koniec sekcji krytycznej. Czyli:
>
> 1. Wyłączamy przerwania
No wlasnie - zwykle wylaczenie przerwan, a nie szumna "sekcja
krytyczna" :-)
>> Ha, moze i faktycznie C++ trzeba uzyc nawet na 8051 - dostep do
>> zmiennych obiektu da sie przez wydzielone funkcje, ktore zadbaja o
>> potrzebne rzeczy :-)
>
> To, czy programujemy obiektowo, czy nie, to zupełnie inny poziom
> abstrakcji niż to, o czym tutaj mówimy :)
Ale rozwiazaloby pare problemow z zapominalskimi :-)
J.
-
84. Data: 2019-02-19 13:14:36
Temat: Re: Zagwozdka w C Keil - wyjaśnienie.
Od: q...@t...no1 (Queequeg)
J.F. <j...@p...onet.pl> wrote:
>> 1. Wyłączamy przerwania
>
> No wlasnie - zwykle wylaczenie przerwan, a nie szumna "sekcja
> krytyczna" :-)
Bo w tym konkretnym przypadku sekcja krytyczna sprowadza się do wyłączenia
przerwań :)
"In concurrent programming, concurrent accesses to shared resources can
lead to unexpected or erroneous behavior, so parts of the program where
the shared resource is accessed are protected. This protected section is
the critical section or critical region."
Jakby nie było, jest to sekcja krytyczna.
--
Eksperymentalnie: http://facebook.com/groups/pl.misc.elektronika