-
Data: 2014-02-25 02:21:39
Temat: Re: Mlody Technik
Od: A.L. <a...@a...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Tue, 25 Feb 2014 01:21:14 +0100, Sylwester Łazar <i...@a...pl>
wrote:
>> >> Chcialem zauwazyc niezmialo ze amerykanskich studentow naucza sie
>> >> uzywajac procesora MIPS. Dosyc masowo, MIPS to jakies 80% kursow na
>> >> amerykanskich (i nei tylko amerykanskich) uniwersytetach
>> >
>> >W asm? Jeśli tak to Sylwek się ucieszy bo pic32 to mips ;)
>>
>> W asm.
>>
>> A.L.
>Właśnie się nieco dziwiłem, czytając pozycję:
>"MIPS Assembly Language Programming" Roberta Brittona,
>że jest ona napisana jakby dla studentów.
Tak, ona jest napisana dla studentow, ale to jest podrecznik
pomocniczy.
Podrecznik "glowny" to Computer Organization and Design: The
Hardware/Software Interface, Patterson i Hennessy
Hennessy jest tworca architektury MIPS
Jet wariant tego podrecznika, tych samych autorow: Computer
Architecture: a Quantitative Approach
>Jest tam we wstępie napisane coś takiego:
>" We are assuming that you have experience in developing algorithms, and
>running programs
>in some high level language such as Pascal, C, C++, or JAVA. One of the
>benefits of
>understanding and writing assembly language code is that you will have new
>insights into
>how to write more efficient, high-level language code."
>
To jest prawda. Dobrze sobie zdawac sprawe co kompilator robi z
programem... Ksiazka H&P w sporej czesci traktuje wlasnie o tym
problemie
>Był tam gdzieś fragment też o tym, że dobrym zwyczajem jest zaglądnąć do
>kodu po kompilacji i go poprawić.
Ale to akurat nie ma sensu. Mialo sens 30 lat temu, w dobie Z80. MIPS
i wspoczesne procesory oparte sa o "pipeline architecture". Kompilator
dokonuje znaczacej optymalizacji kodu tak aby jak najlepiej
wykorztstac owa "pipeline". Sprowadza sie to - miedzy innymi, ale nie
tylko - do zmiany kolejnosci wykonywanai instrukcji i przydzielania
rejestrow co wymaga globalnej analizy programu.
Programista niewiele tu moze na poziomie asm zdzialac, a reczne
"poprawki" moga miec katastroficzny skutek. Na przyklad, jednym z
ograniczen NIEKTORYCH wariantow architektury MIPS jest ze jezeli
instrukcja laduje cos z pamieci do rejestru, to rejestr ten nie moze
byc wykorystany w nastepnej instrukcji. Jego wykorzystanie musi byc
opoznione o jedna instrukcje. Jezeli sie o tym nie pamieta/nie wie, to
mozna narozrabiac. Przy okazji kompilator proboje "zatkac" te dziure,
probojac tam wstawic inna instrukcje o ile zaleznosci meidzy danymi na
to pozwola.
Dla przykladu - problem z dzisiejszego egzaminu :)
Problem 7 - 15 points. Given is the following fragment of a program
executed by a pipeline
add $s0, $s0, $t1
lw $t2, 20($t1)
and $t4, $t2, $t5
or $t8, $t2, $t6
add $t9, $t4, $t2
slt $t1, $t6, $t7
Answer the following questions:
(1) Is there data hazard in the above code?
(2) If there is data hazard, show how it can be resolved by:
(a) Stalling the pipeline (inserting bubbles)
(b) Inserting nop instructions
(c) Rearranging instructions
Consider 2 cases: with forwarding and without forwarding
Rozpoznanie i likwidacja owego "data hazard" ma znakomity wplyw na
sprawnosc programu. Normalnie robi to kompilator, ale studenci powinni
wiedziec dlaczego kolejnosc wykonywania instrukcji asm nie jest taka
jakby to wynikalo ze struktury programu w C
A.L.
P.S> Jakby sie ktos tym interesowal, to najlepsza ksiazka o zwiazkach
hardware i software jest nastepujaca:
Computer Systems: A Programmer's Perspective, Bryant & O'Hallaron
Następne wpisy z tego wątku
- 25.02.14 02:37 A.L.
- 25.02.14 06:58 Marek
- 25.02.14 07:35 J.F.
- 25.02.14 09:05 sundayman
- 25.02.14 09:07 JDX
- 25.02.14 09:30 Sylwester Łazar
- 25.02.14 09:36 Sylwester Łazar
- 25.02.14 09:50 Sylwester Łazar
- 25.02.14 15:22 A.L.
- 25.02.14 15:24 A.L.
- 25.02.14 15:40 A.L.
- 25.02.14 16:05 Sylwester Łazar
- 25.02.14 16:45 J.F
- 25.02.14 17:14 Sylwester Łazar
- 25.02.14 17:15 Sebastian Biały
Najnowsze wątki z tej grupy
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
Najnowsze wątki
- 2025-01-18 Zieloni oszuchiści
- 2025-01-18 Zielonka => Specjalista ds. public relations <=
- 2025-01-18 Warszawa => Frontend Developer (JS, React) <=
- 2025-01-18 Warszawa => Software .Net Developer <=
- 2025-01-18 Warszawa => Developer .NET (mid) <=
- 2025-01-18 Katowice => Administrator IT - Systemy Operacyjne i Wirtualizacja <=
- 2025-01-17 Zniknął list gończy za "Frogiem". Frog się nam odnalazł?
- 2025-01-17 Kto wytłumaczy "głupiemu" prezydentowi Dudzie wielką moc prawną "dekretu premiera" TUSKA? [(C)Korneluk (2025)]
- 2025-01-17 Warszawa => Inżynier oprogramowania .Net <=
- 2025-01-17 Natalia z Andrychowa
- 2025-01-17 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-17 Warszawa => System Architect (Java background) <=
- 2025-01-17 Warszawa => Full Stack .Net Engineer <=
- 2025-01-17 Gliwice => IT Expert (Network Systems area) <=
- 2025-01-17 Lublin => Programista Delphi <=