eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › CPU nie wykonujący pustych procedur
Ilość wypowiedzi w tym wątku: 15

  • 1. Data: 2009-07-25 15:32:25
    Temat: CPU nie wykonujący pustych procedur
    Od: Wojciech Muła <w...@p...null.onet.pl.invalid>

    Czy jest jakiś procesor, który "widząc", że pierwszym
    rozkazem procedury jest powrót z podprogramu, w ogóle
    nie przekazuje tam sterowania?

    w.

    --
    Kupię: http://wm.ite.pl/kupie.html


  • 2. Data: 2009-07-25 15:46:03
    Temat: Re: CPU nie wykonujący pustych procedur
    Od: A.L. <a...@a...com>

    On Sat, 25 Jul 2009 17:32:25 +0200, Wojciech Muła
    <w...@p...null.onet.pl.invalid> wrote:

    >Czy jest jakiś procesor, który "widząc", że pierwszym
    >rozkazem procedury jest powrót z podprogramu, w ogóle
    >nie przekazuje tam sterowania?
    >
    >w.

    To nie jest rola procesora tylko kompilatora jezyka programwoania.
    Java robi to od wersji bodajrze 1.1

    A.L.


  • 3. Data: 2009-07-25 16:05:06
    Temat: Re: CPU nie wykonujący pustych procedur
    Od: "P. Owca" <2...@i...sk>

    "Wojciech Muła" beee:
    > Czy jest jakiś procesor, który "widząc", że pierwszym rozkazem procedury
    > jest powrót z podprogramu, w ogóle nie przekazuje tam sterowania?
    i tak musi odczytać zawartość pamięci, gdzie jest kod programu pro-
    cedury. wtedy na czym miałoby polegać ,,przekazanie sterowania"? prze-
    cież procesor nie przekazuje nigdzie/niczemu sterowania w taki sposób:
    on sam wykonuje, a skoro od razu ma rozkaz powrotu, to niczego nie zmie-
    ni --chyba że rozkaz skoku zawiera w sobie nakaz dokonywania pewnych sta-
    łych czynności. i tak musi odczytać zawartość pamięci z rozkazem powro-
    tu, więc chyba chodzi ci o jakieś rozwiązanie, które temu zapobiegnie,
    np. wartość specjalna adresu procedury sygnalizująca, że jest pusta,
    czyli tzw. wartość symboliczna 'empty', zwykle scalana z wartością
    'null'. niestety w takim wypadku ('null') zwykle wywoływana jest proce-
    dura obsługi błędu.
    możesz podać w jakim celu tego szukasz? co chcesz w ten sposób roz-
    wiązać.
    --
    beeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee


  • 4. Data: 2009-07-25 16:20:30
    Temat: Re: CPU nie wykonujący pustych procedur
    Od: Wojciech Muła <w...@p...null.onet.pl.invalid>

    A.L. <a...@a...com> wrote:

    > On Sat, 25 Jul 2009 17:32:25 +0200, Wojciech Muła
    > <w...@p...null.onet.pl.invalid> wrote:
    >
    > >Czy jest jakiś procesor, który "widząc", że pierwszym
    > >rozkazem procedury jest powrót z podprogramu, w ogóle
    > >nie przekazuje tam sterowania?
    >
    > To nie jest rola procesora tylko kompilatora jezyka programwoania.
    > Java robi to od wersji bodajrze 1.1

    Procesory robią różne rzeczy z kodem, więc dlaczego nie
    mogłby i tego? Popatrz np. na speculative execution
    w procesorach potokowych.

    A rozwiązania programowe to inna rzecz.

    w.

    --
    Kupię: http://wm.ite.pl/kupie.html


  • 5. Data: 2009-07-25 16:25:32
    Temat: Re: CPU nie wykonujący pustych procedur
    Od: Wojciech Muła <w...@p...null.onet.pl.invalid>

    "P. Owca" <2...@i...sk> wrote:

    Coś masz zepsute kodowanie - niby utf-8, ale ja mam dziwne krzaki.

    > ___Wojciech Muła" beee:
    > > Czy jest jakiś procesor, który "widząc", że pierwszym rozkazem procedury
    > > jest powrót z podprogramu, w ogóle nie przekazuje tam sterowania?
    >
    > i tak musi odczytać zawartość pamięci, gdzie jest kod programu pro-
    > cedury.

    To mogłoby być tańsze niż odłożenie bieżącego PC na stos, zmiana PC,
    wykonanie powrotu (odtworznie PC). Szczególnie w procesorach potokowych,
    gdzie można to wykonać w miarę wcześnie.

    > ___wtedy na czym miałoby polegać ,,przekazanie sterowania"?

    Tak się mówi, "sterowanie" - czyli zmiana PC.

    > możesz podać w jakim celu tego szukasz?___co chcesz w ten sposób
    > rozwiązać.

    Z ciekawości.

    w.

    --
    Kupię: http://wm.ite.pl/kupie.html


  • 6. Data: 2009-07-25 17:12:39
    Temat: Re: CPU nie wykonujący pustych procedur
    Od: "P. Owca" <2...@i...sk>

    "Wojciech Muła" beee:
    > Coś masz zepsute kodowanie - niby utf-8, ale ja mam dziwne krzaki.
    powinno być dobre, natomiast w ,typowych' czcionkach nie ma tych znaków. ;-)

    >> ___Wojciech Muła" beee:
    >> > Czy jest jakiś procesor, który "widząc", że pierwszym rozkazem
    >> > procedury jest powrót z podprogramu, w ogóle nie przekazuje tam
    >> > sterowania?
    >> i tak musi odczytać zawartość pamięci, gdzie jest kod programu
    >> pro-
    >> cedury.
    > To mogłoby być tańsze niż odłożenie bieżącego PC na stos, zmiana PC,
    > wykonanie powrotu (odtworznie PC). Szczególnie w procesorach potokowych,
    > gdzie można to wykonać w miarę wcześnie.
    raczej droższe, ponieważ stos (jego część) jest w pamięci podręcznej,
    a tzw. 'process[ing] context' (cudowne skróty literkowe ;-) , bo prze-
    cież nie 'personal computer' ;-) ) to pewnie jedno słowo pamięci w no-
    wych 'abi' (masz! ;-) ). pozatym można spróbować uniknąć wykonywania
    tego wywołania.

    >> ___wtedy na czym miałoby polegać ,,przekazanie sterowania"?
    >
    > Tak się mówi, "sterowanie" - czyli zmiana PC.
    zakładające. a jeśli tego nie ma?

    >> możesz podać w jakim celu tego szukasz?___co chcesz w ten sposób
    >> rozwiązać.
    > Z ciekawości.
    w kierunku osiągniecia czego... w programie?
    --
    beeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee


  • 7. Data: 2009-07-25 18:53:03
    Temat: Re: CPU nie wykonujący pustych procedur
    Od: "Mariusz Marszałkowski" <b...@N...gazeta.pl>

    Wojciech Muła <w...@p...null.onet.pl.invalid> napisał(a):

    > Czy jest jaki=B6 procesor, kt=F3ry "widz=B1c", =BFe pierwszym
    > rozkazem procedury jest powr=F3t z podprogramu, w og=F3le
    > nie przekazuje tam sterowania?

    Szczegółami tego typu rozwiązań nie interesuję się od wielu lat, więc
    nie wiem czy jest procesor który coś takiego robi. Akurat puste procedury
    da się wychwycić podczas kompilacji, więc jak słusznie A.L. powiedział
    jest to rola kompilatora. Rolą procesora może być coś innego, np. całkowite
    ominięcie odejmowania zera, albo dzielenie przez jeden.

    Ogólnie działa to na zasadzie taśmy produkcyjnej. Wykonanie instrukcji
    trwa np. 20 taktów zegarowych, ale jednocześnie jest przetwarzanych
    np. 20 instrukcji, więc jedna gotowa instrukcja wychodzi średnio co
    jeden takt. W fazie wstępnego przetwarzania jest możliwość wywnioskowania
    że ciąg instrukcji nie przynosi żadnych efektów, więc w fazie końcowego
    przetwarzania można ten ciąg całkowicie pominąć. Oczywiście nie ma
    sposobu na ominięcie "po prostu" takich instrukcji, musi być układ
    który je rozpozna i muszą być poniesione koszty takiego układu.

    Pozdrawiam


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 8. Data: 2009-07-25 20:58:33
    Temat: Re: CPU nie wykonujący pustych procedur
    Od: Bronek Kozicki <b...@s...net>

    P. Owca wrote:
    >>> i tak musi odczytać zawartość pamięci, gdzie jest kod programu
    >>> pro-
    >>> cedury.
    >> To mogłoby być tańsze niż odłożenie bieżącego PC na stos, zmiana PC,
    >> wykonanie powrotu (odtworznie PC). Szczególnie w procesorach potokowych,
    >> gdzie można to wykonać w miarę wcześnie.

    wykonanie tych wszystkich instrukcji na nowoczesnych procesorach to
    jeden do kilkudziesięciu cykli. Odczytanie pamięci RAM (znalezienie tego
    samotnego "ret" z pamięci która nie jest w cache) może trwać ponad 200
    cykli.


    B.


    --
    Remove -trap- when replying. Usun -trap- gdy odpisujesz.


  • 9. Data: 2009-07-25 21:10:44
    Temat: Re: CPU nie wykonujący pustych procedur
    Od: Wojciech Muła <w...@p...null.onet.pl.invalid>

    On Sat, 25 Jul 2009 21:58:33 +0100 Bronek Kozicki <b...@s...net>
    wrote:

    > P. Owca wrote:
    > >>> i tak musi odczytać zawartość pamięci, gdzie jest kod
    > >>> programu pro-
    > >>> cedury.
    > >> To mogłoby być tańsze niż odłożenie bieżącego PC na stos, zmiana
    > >> PC, wykonanie powrotu (odtworznie PC). Szczególnie w procesorach
    > >> potokowych, gdzie można to wykonać w miarę wcześnie.
    >
    > wykonanie tych wszystkich instrukcji na nowoczesnych procesorach to
    > jeden do kilkudziesięciu cykli. Odczytanie pamięci RAM (znalezienie
    > tego samotnego "ret" z pamięci która nie jest w cache) może trwać
    > ponad 200 cykli.

    Chybiony argument - przecież ta pamięć i tak musi zostać odczytana
    w celu wykonania instrukcji tam zapisanych.

    w.

    --
    Kupię: http://wm.ite.pl/kupie.html


  • 10. Data: 2009-07-25 21:12:38
    Temat: Re: CPU nie wykonujący pustych procedur
    Od: Wojciech Muła <w...@p...null.onet.pl.invalid>

    On Sat, 25 Jul 2009 18:53:03 +0000 (UTC) "Mariusz Marszałkowski"
    <b...@N...gazeta.pl> wrote:

    > Szczegółami tego typu rozwiązań nie interesuję się od wielu lat, więc
    > nie wiem czy jest procesor który coś takiego robi. Akurat puste
    > procedury da się wychwycić podczas kompilacji, więc jak słusznie A.L.
    > powiedział jest to rola kompilatora.

    A jak dołączasz DLL-kę, to kompilator nic nie pomoże.

    w.

    --
    Kupię: http://wm.ite.pl/kupie.html

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: