-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!news-in-01.newsfeed
.easynews.com!easynews!core-easynews-01!easynews.com!en-nntp-08.dc1.easynews.co
m.POSTED!not-for-mail
From: A.L. <a...@a...com>
Newsgroups: pl.misc.elektronika
Subject: Re: Mlody Technik
Message-ID: <f...@4...com>
References: <leajvp$in3$1@mx1.internetia.pl> <leajjn$qd4$1@node1.news.atman.pl>
<leakpn$li5$1@mx1.internetia.pl> <leal62$s68$1@node1.news.atman.pl>
<leb1dj$ab0$1@node1.news.atman.pl> <led27j$pkn$1@news.task.gda.pl>
<530a41c5$0$2205$65785112@news.neostrada.pl>
<vcxhtidnjo1s$.10v9vamnvb30q$.dlg@40tude.net>
<0...@4...com>
<a...@n...neostrada.pl>
<p...@4...com>
<legogu$6ol$1@mx1.internetia.pl>
User-Agent: ForteAgent/7.00.32.1200
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
Lines: 90
X-Complaints-To: a...@e...com
Organization: Forte Inc. http://www.forteinc.com/apn/
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will
be unable to process your complaint properly.
Date: Mon, 24 Feb 2014 19:21:39 -0600
X-Received-Bytes: 4666
Xref: news-archive.icm.edu.pl pl.misc.elektronika:660256
[ ukryj 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
- Akumulatorki Ni-MH AA i AAA Green Cell
- Dławik CM
- JDG i utylizacja sprzetu
- Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- DS1813-10 się psuje
- Taki tam szkolny problem...
- LIR2032 a ML2032
- SmartWatch Multimetr bezprzewodowy
- olej psuje?
- Internet w lesie - Starlink
- Opis produktu z Aliexpress
- No proszę, a śmialiście się z hindusów.
- Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
Najnowsze wątki
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=
- 2024-12-02 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-02 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-02 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-02 Białystok => Delphi Programmer <=
- 2024-12-02 Poznań => Dyspozytor Międzynarodowy <=
- 2024-12-02 Szczecin => Key Account Manager (ERP) <=
- 2024-12-02 Poznań => Senior PHP Developer <=
- 2024-12-03 Usiłuję zapłacić za energetyzację...
- 2024-12-02 Gdańsk => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-12-02 Kraków => Full Stack .Net Engineer <=