Difference between revisions of "LU-DAR-b"

From DiLab
Jump to: navigation, search
(Created page with "[DatZ1164-LV : Datorsistēmu arhitektūra un datoru inženierijas pamati I https://estudijas.lu.lv/course/view.php?id=7653]")
 
Line 1: Line 1:
[DatZ1164-LV : Datorsistēmu arhitektūra un datoru inženierijas pamati I https://estudijas.lu.lv/course/view.php?id=7653]
[DatZ1164-LV : Datorsistēmu arhitektūra un datoru inženierijas pamati I https://estudijas.lu.lv/course/view.php?id=7653]
<big>
'''Īsceļi:'''
[[#Kalendārs | Kalendārs]] |
[[#Pārbaudījumi | Pārbaudījumi]] |
[[#Literatūra | Literatūra]] |
</big>
{{LUDFKurss|Datorsistēmu arhitektūra un datoru inženierijas pamati I|DAR|DatZ1164-LV|2DAT4074}}

* Pasniedzējs: Leo Seļāvo ''(epasts: vards.uzvards @ gmail.com)''
* Komunikācija ar pasniedzēju iespējama gan kursa forumā, gan pa epastu, vai arī iepriekš sarunājot, klātienē.

<!-- * {{KursiGGroup|lu-mop-b}} -->

===Kursa mērķis===
Kursa mērķis ir iepazīstināt ar zema līmeņa programmēšanu Asemblerā,
lietojot ARM platformu kā konkrētu izstrādes mērķa vidi.
Asemblera instrukcijas ir aparatūrai tuvākās procesora izpildes komandas,
līdz ar to kursā tiek stāstīts arī par to, kā darbojas procesors un cita aparatūra,
kādi ir tā resursi, un kā to ietekmēt ar Asemblera programmām.
Tiek apskatīts arī kā veidot saskarni starp Asembleru un augstāka līmeņa programmām, tai skaitā C.

Šis ir nopietns kurss ar būtisku slodzi.
Piemēram, varat iepazīties ar to, kā iepriekšējo gadu studenti vērtējuši šo kursu: [[MOP-m kursa atsauksmes 2013 | MOP-m kursa atsauksmes]].
Veiksmi šajā gadā.

===Vērtējums===
Gala vērtējums kursā veidosies no sekojošiem faktoriem:
* Dalība kursā: jautājumi, atbildes, un diskusijas, tai skaitā kursa komunikācijas vietnē.
* 15% - mazie kontroldarbi (MK: 1+3+3+8)
* 35% - mājas darbi (MD: 15+20)
* 25% - semestra vidus kontroldarbs (KD1)
* 25% - eksāmens (EX). Eksāmena forma: kursa projekts vai rakstisks.


Lai saņemtu sekmīgu vērtējumu kursā, jāsavāc vismaz 40% kopā par visiem kursa darbiem, un jānoliek eksāmens ar vērtējumu vismaz 40%. Tātad, ar eksāmenu vien nepietiek, jāpilda arī citi darbi.

===Akadēmiskā goda sistēma===
[[Akadēmiskā goda sistēma]] - noteikumi, kuriem jums kā studentiem jāpiekrīt lai varētu sekmīgi piedalīties šajā kursā.

= Kalendārs =

{| border=1 cellspacing=0 cellpadding=4
|-
! Datums, nedēļa
!width="50%"| Kursa saturs
! Uzdevumi
|-
|
==== 15.09.2021. ====
|
Ievads kursā (lekcija). Kursa prasības un uzdevumi. ([http://estudijas.lu.lv/mod/resource/view.php?id=237516 Slaidi])
|
<!--Uzdots '''MD0 mājas darbs''',
pieejams no [http://estudijas.lu.lv/course/view.php?id=103 pieejams no eStudijām].
-->
Uzstādiet Ubuntu vai citu Debian saimes Linux darba vidi uz sava datora, kurā strādāsiet pie kursa uzdevumiem. Kursā mēs izmantosim ARM kros-kompilācijas rīkus. Ubuntu operētājsistēmu Jūs varat darbināt kādā no sekojošiem veidiem:
* tiešā veidā (native installation);
* "Dual boot" režīmā, blakus jūsu ikdienas operētājsistēmai;
* kā virtuālu mašīnu zem jūsu iecienītās operētājsistēmas (MS Windows vai MacOS).

Uzstādiet arī uz sava datora Zoom Meetings klientu, lai varam ērti komunicēt lekcijās, praktiskajos darbos un konsultācijās.
|-
|

==== 22.09.2021. ====
|
Sešpadsmitnieku un citas skaitīšatas sistēmas datoriem.
([http://estudijas.lu.lv/mod/resource/view.php?id=238880 Slaidi])
Pārveidojumi starp dažādām sistēmām, aritmētiskās darbības. Biti, baiti, vārdi, nibbles.

Lab: Skaitļu pārveidošana starp skaitīšanas sistēmām ar dažādām bāzēm.
|
|-
|

==== 29.09.2021. ====
|
Skaitļu attēlošana papildkodā.
([http://estudijas.lu.lv/mod/resource/view.php?id=239717 Slaidi])


Lab: MK1 risinājums. Negatīvi skaitļi aparatūrā.
|
* '''[[#MD0 | MD0]] termiņš'''
* Mazais kontroldarbs [[#MK1 | MK1]]
|-
|

==== 06.10.2021. ====
|
Iegultās un mazo procesoru sistēmas. ARM arhitektūra.
Mācību izstrādes vide. ([http://estudijas.lu.lv/pluginfile.php/227436/mod_resource/content/3/Lekcijas/mop05_env.pdf Slaidi])

Procesora uzbūve. Operatīvā atmiņa. Procesora un atmiņas sadarbība. Adreses. Reģistri. Procesora režīmi.

Lab: MK2 risinājums
|
* Mazais kontroldarbs [[#MK2 | MK2]]
* Pasludināts [[#MD1 | MD1]].
|-
|

==== 13.10.2021. ====
|
Programmu izstrādes vide un darba plūsma. ([http://estudijas.lu.lv/pluginfile.php/227436/mod_resource/content/3/Lekcijas/mop05_env.pdf Slaidi])

Lab: Makefile uzbūve un veidošana
|

|-
|

==== 20.10.2021. ====
|
Komandu pieraksts, aritmētiskās un bitu operācijas.
[https://youtu.be/esNPGVJMyo8 (video)]

Lab. Asemblera programmas trasēšana, sekošana reģistru vērtībām.
|

* Pasludināts [[#MD2 | MD2]].

|-
|

==== 27.10.2021. ====
|
Vadības maiņas komandas, testi, bitu operācijas.
[https://youtu.be/oXG2kp0C8cQ (video)]

MK3 pārskats
|
* Mazais kontroldarbs [[#MK3 | MK3]]
|-
|

==== 03.11.2021. ====
|
Adresācijas režīmi, darbs ar atmiņu.
[https://youtu.be/4RcHKopHNlA (video)]

Lab: Atkļūdotāja lietošana
|
* Termiņš [[#MD1 | MD1]] 23:59

|-
|

==== 10.11.2021. ====
|
Apakšprogrammu izsaukumi, saskarne ar "C".
[https://youtu.be/KwV2UBhwpP8 (video)]

|

|-
|

==== 17.11.2021. ====
|
Simboliskie dati, kodu tabulas.
[https://youtu.be/H7aR5OGNBEM (video)]

|
* Termiņš [[#MD2 | MD2]] 23:59
|-
|

==== 24.11.2021. ====
|
Lielais '''kontroldarbs''' [[#KD1 | KD1]].
* Kontroldarbs KD1 būs pieejams tiešsaistē, e-studijās, zemāk sadaļā "Pārbaudījumi".
* Kontroldarbu uzsākot jums būs dotas 90 minūtes laika. Kontroldarbu varēs veikt tikai vienu reizi. Tāpēc nodrošiniet sevi ar laiku un vietu kur jūs neviens netraucēs. Uzdevumi paredzami kā atbildes uz jautājumiem, gan arī kā programmēšanas uzdevumi.
* Pēc kontroldarba jums būs 15 min laika lai ieskenētu vai nofotografētu un eStudijās iesūtītu jūsu pierakstus risinot kontroldarba jautājumus. Tie kalpos kā pierādījums par jūsu patstāvīgu darbu kā arī lai parādītu risinājuma gaitu. Pašas uzdevumu atbildes tik un tā jānosūta ar galveno kontroldarbu.

|
* Pasludināts kursa projekts [[#KP | KP]].
|-
|

==== 01.12.2021. ====
|

Izteiksmes un makro valoda.
[https://youtu.be/hW7WQ9dtXzI (video)]

|
* Termiņš [[#KD1 | KD1]] ''noskaņotiem'' KD1 programmēšanas uzdevumiem serverī: 23:59'''.
|-
|

==== 08.12.2021. ====
|
Iekļautais asemblers.
Programmatūras izstrādē lietoto rīku darbības principi.
Koda optimizācijas.
|
* '''Termiņš''' eksāmena formas izvēlei KD/KP (23:59)

|-
|

==== 15.12.2021. ====
|
Instrukciju izpildes laiki.
* [http://download.intel.com/design/intelxscale/27347302.pdf Intel XScale R Core Developer’s Manual]
** A.2.1.2 — bilde ar procesora instrukciju izpildes “cauruli” un tuvumā esošie teksti, par to, kā pa to virzās instrukcijas;
** 10.4 — cik ātri izpildās instrukcijas, piemēram, reizināšana;
** 5 — kā strādā zarošanās paredzēšanas mehānisms;
** 4 un 6 — cache atmiņa pastāv un noder, un ir atsevišķa gan instrukcijām, gan datiem;
** A.3–A.5 — paanalizējam Intel-a ieteiktās optimizācijas.

|

|-
|

==== 22.12.2021. ====
|
Sistēmas uz čipa (SoC)
* Dokumentācija (''datasheet''), tipiskas sadaļas.
* Atmiņas izklājums (''memory map'')
* Komunikācijas protokoli: RS232, USB, SPI, I2C, 1-wire, CAN.
* Perifērijs iekārtas: Taimeri, GPIO, USART
* Watchdog taimeris
* Sistēmas sāknēšana, priviliģētās operācijas.

Kursa vielas pārskats.
|

|-
|

====14.01.2022. ====
|
8:30 '''Eksāmens - Kontroldarbs KD2'''

8:30 '''Eksāmens - termiņš kursa projektam'''

<!--
Eksāmens būs pieejams tiešsaistē, e-studijās '''no 10:30 līdz 22:30'''.
-->
|
Termiņš visiem iesniedzamajiem darbiem 23:59.
<!--
-->

Tai skaitā:
* noskaņotam [[#KD2 | KD2 programmēšanas uzdevumam]].
* KD1 programmēšanas uzdevumiem ar 50% vertību.
* MD1 un MD2 ar 50% vertību.
<!--
-->

|-
|}

=Pārbaudījumi=

=Literatūra=

* Patterson and Hennessy, Computer Organization and Design, 4th Edition ([http://www.amazon.com/Computer-Organization-Design-Fourth-Architecture/dp/0123744938 @Amazon])

= Saites =

* [http://selavo.lv/wiki/index.php/Linux_komandas Noderīgas Linux komandas]

= Dažādi =

* [https://en.wikipedia.org/wiki/Pentium_F00F_bug Pentium FOOF bug]: main = 0xc8c70ff0;
* [https://youtu.be/TPbroUDHG0s Spēļu programmēšana 8 bitu arhitektūrā]

= Atziņas =
* [http://norvig.com/21-days.html Teach yourself programming in 10 years] by Peter Norvig

Revision as of 10:28, 15 August 2022

[DatZ1164-LV : Datorsistēmu arhitektūra un datoru inženierijas pamati I https://estudijas.lu.lv/course/view.php?id=7653] Īsceļi: Kalendārs | Pārbaudījumi | Literatūra |

Datorsistēmu arhitektūra un datoru inženierijas pamati I (DAR)

LU DF bakalaura studiju kurss DatZ1164-LV, meklēt eStudijās.


  • Pasniedzējs: Leo Seļāvo (epasts: vards.uzvards @ gmail.com)
  • Komunikācija ar pasniedzēju iespējama gan kursa forumā, gan pa epastu, vai arī iepriekš sarunājot, klātienē.


Kursa mērķis

Kursa mērķis ir iepazīstināt ar zema līmeņa programmēšanu Asemblerā, lietojot ARM platformu kā konkrētu izstrādes mērķa vidi. Asemblera instrukcijas ir aparatūrai tuvākās procesora izpildes komandas, līdz ar to kursā tiek stāstīts arī par to, kā darbojas procesors un cita aparatūra, kādi ir tā resursi, un kā to ietekmēt ar Asemblera programmām. Tiek apskatīts arī kā veidot saskarni starp Asembleru un augstāka līmeņa programmām, tai skaitā C.

Šis ir nopietns kurss ar būtisku slodzi. Piemēram, varat iepazīties ar to, kā iepriekšējo gadu studenti vērtējuši šo kursu: MOP-m kursa atsauksmes. Veiksmi šajā gadā.

Vērtējums

Gala vērtējums kursā veidosies no sekojošiem faktoriem:

  • Dalība kursā: jautājumi, atbildes, un diskusijas, tai skaitā kursa komunikācijas vietnē.
  • 15% - mazie kontroldarbi (MK: 1+3+3+8)
  • 35% - mājas darbi (MD: 15+20)
  • 25% - semestra vidus kontroldarbs (KD1)
  • 25% - eksāmens (EX). Eksāmena forma: kursa projekts vai rakstisks.


Lai saņemtu sekmīgu vērtējumu kursā, jāsavāc vismaz 40% kopā par visiem kursa darbiem, un jānoliek eksāmens ar vērtējumu vismaz 40%. Tātad, ar eksāmenu vien nepietiek, jāpilda arī citi darbi.

Akadēmiskā goda sistēma

Akadēmiskā goda sistēma - noteikumi, kuriem jums kā studentiem jāpiekrīt lai varētu sekmīgi piedalīties šajā kursā.

Kalendārs

Datums, nedēļa Kursa saturs Uzdevumi

15.09.2021.

Ievads kursā (lekcija). Kursa prasības un uzdevumi. (Slaidi)

Uzstādiet Ubuntu vai citu Debian saimes Linux darba vidi uz sava datora, kurā strādāsiet pie kursa uzdevumiem. Kursā mēs izmantosim ARM kros-kompilācijas rīkus. Ubuntu operētājsistēmu Jūs varat darbināt kādā no sekojošiem veidiem:

  • tiešā veidā (native installation);
  • "Dual boot" režīmā, blakus jūsu ikdienas operētājsistēmai;
  • kā virtuālu mašīnu zem jūsu iecienītās operētājsistēmas (MS Windows vai MacOS).

Uzstādiet arī uz sava datora Zoom Meetings klientu, lai varam ērti komunicēt lekcijās, praktiskajos darbos un konsultācijās.

22.09.2021.

Sešpadsmitnieku un citas skaitīšatas sistēmas datoriem. (Slaidi) Pārveidojumi starp dažādām sistēmām, aritmētiskās darbības. Biti, baiti, vārdi, nibbles.

Lab: Skaitļu pārveidošana starp skaitīšanas sistēmām ar dažādām bāzēm.

29.09.2021.

Skaitļu attēlošana papildkodā. (Slaidi)


Lab: MK1 risinājums. Negatīvi skaitļi aparatūrā.

06.10.2021.

Iegultās un mazo procesoru sistēmas. ARM arhitektūra. Mācību izstrādes vide. (Slaidi)

Procesora uzbūve. Operatīvā atmiņa. Procesora un atmiņas sadarbība. Adreses. Reģistri. Procesora režīmi.

Lab: MK2 risinājums

  • Mazais kontroldarbs MK2
  • Pasludināts MD1.

13.10.2021.

Programmu izstrādes vide un darba plūsma. (Slaidi)

Lab: Makefile uzbūve un veidošana

20.10.2021.

Komandu pieraksts, aritmētiskās un bitu operācijas. (video)

Lab. Asemblera programmas trasēšana, sekošana reģistru vērtībām.

27.10.2021.

Vadības maiņas komandas, testi, bitu operācijas. (video)

MK3 pārskats

  • Mazais kontroldarbs MK3

03.11.2021.

Adresācijas režīmi, darbs ar atmiņu. (video)

Lab: Atkļūdotāja lietošana

10.11.2021.

Apakšprogrammu izsaukumi, saskarne ar "C". (video)

17.11.2021.

Simboliskie dati, kodu tabulas. (video)

24.11.2021.

Lielais kontroldarbs KD1.

  • Kontroldarbs KD1 būs pieejams tiešsaistē, e-studijās, zemāk sadaļā "Pārbaudījumi".
  • Kontroldarbu uzsākot jums būs dotas 90 minūtes laika. Kontroldarbu varēs veikt tikai vienu reizi. Tāpēc nodrošiniet sevi ar laiku un vietu kur jūs neviens netraucēs. Uzdevumi paredzami kā atbildes uz jautājumiem, gan arī kā programmēšanas uzdevumi.
  • Pēc kontroldarba jums būs 15 min laika lai ieskenētu vai nofotografētu un eStudijās iesūtītu jūsu pierakstus risinot kontroldarba jautājumus. Tie kalpos kā pierādījums par jūsu patstāvīgu darbu kā arī lai parādītu risinājuma gaitu. Pašas uzdevumu atbildes tik un tā jānosūta ar galveno kontroldarbu.
  • Pasludināts kursa projekts KP.

01.12.2021.

Izteiksmes un makro valoda. (video)

  • Termiņš KD1 noskaņotiem KD1 programmēšanas uzdevumiem serverī: 23:59.

08.12.2021.

Iekļautais asemblers. Programmatūras izstrādē lietoto rīku darbības principi. Koda optimizācijas.

  • Termiņš eksāmena formas izvēlei KD/KP (23:59)

15.12.2021.

Instrukciju izpildes laiki.

  • Intel XScale R Core Developer’s Manual
    • A.2.1.2 — bilde ar procesora instrukciju izpildes “cauruli” un tuvumā esošie teksti, par to, kā pa to virzās instrukcijas;
    • 10.4 — cik ātri izpildās instrukcijas, piemēram, reizināšana;
    • 5 — kā strādā zarošanās paredzēšanas mehānisms;
    • 4 un 6 — cache atmiņa pastāv un noder, un ir atsevišķa gan instrukcijām, gan datiem;
    • A.3–A.5 — paanalizējam Intel-a ieteiktās optimizācijas.

22.12.2021.

Sistēmas uz čipa (SoC)

  • Dokumentācija (datasheet), tipiskas sadaļas.
  • Atmiņas izklājums (memory map)
  • Komunikācijas protokoli: RS232, USB, SPI, I2C, 1-wire, CAN.
  • Perifērijs iekārtas: Taimeri, GPIO, USART
  • Watchdog taimeris
  • Sistēmas sāknēšana, priviliģētās operācijas.

Kursa vielas pārskats.

14.01.2022.

8:30 Eksāmens - Kontroldarbs KD2

8:30 Eksāmens - termiņš kursa projektam


Termiņš visiem iesniedzamajiem darbiem 23:59.

Tai skaitā:

Pārbaudījumi

Literatūra

  • Patterson and Hennessy, Computer Organization and Design, 4th Edition (@Amazon)

Saites

Dažādi

Atziņas