Tietokoneen mysteeri ohjelmoitava kone

Koko: px
Aloita esitys sivulta:

Download "Tietokoneen mysteeri ohjelmoitava kone"

Transkriptio

1 Tietokoneen mysteeri ohjelmoitava kone Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A1120 Ohjelmointi 2 7. maaliskuuta

2 Tietokoneen mysteeri (4 kierrosta) 2. Bitit ja data binäärilukujärjestelmä, bittien käsittely Scalalla 3. Kombinaatiologiikka 4. Sekventiaalilogiikka 5. Ohjelmoitava kone logiikkaporteista rakennettuja piirejä Scala-simuloituna kello ja takaisinkytkentä Scala-simulaatioon, prosessorin laskentapolku konekieliohjelmoimme 5574-porttista Scalalla rak. & simuloitua armlet -prosessoria

3 5. Ohjelmoitava kone

4 Millä periaatteilla tietokone toimii? (sekventiaalilogiikka kierros 4) Miten rakennetaan ohjelmoitava kone? Mitä on laskenta?

5 Sekventiaalilogiikan työkalusto NOT EI? (johtoa) 0 1 AND JA OR TAI (kelloliipaistuja (logiikkaportteja) (syöteelementtejä) takaisinkytkentöjä)

6 armlet-laskentapolku ( data path ) lcu_e C $0 $1 $2 $3 $4 $5 $6 $7 read_in Load completion unit instr_in mem_read_e mem_write_e mem_addr Arithmetic logic unit Memory interface unit Instruction decoder unit immed_in mem_data lcu_e C $0 $1 $2 $3 $4 $5 $6 $7

7 Käskykanta (laskentapolkua ohjaavat käskyt) nop # no operation mov $L, $A # $L = $A (copy the value of $A to $L) and $L, $A, $B # $L = bitwise AND of $A and $B ior $L, $A, $B # $L = bitwise (inclusive) OR of $A and $B eor $L, $A, $B # $L = bitwise exclusive-or of $A and $B not $L, $A # $L = bitwise NOT of $A add $L, $A, $B # $L = $A + $B sub $L, $A, $B # $L = $A - $B neg $L, $A # $L = -$A lsl $L, $A, $B # $L = $A shifted to the left by $B bits lsr $L, $A, $B # $L = $A shifted to the right by $B bits asr $L, $A, $B # $L = $A (arithmetically) shifted to the right by $B bits mov $L, I add $L, $A, I sub $L, $A, I and $L, $A, I ior $L, $A, I eor $L, $A, I lsl $L, $A, I lsr $L, $A, I asr $L, $A, I # $L = I (copy the immediate data I to $L) # $L = $A + I # $L = $A - I # $L = bitwise AND of $A and I # $L = bitwise (inclusive) OR of $A and I # $L = bitwise exclusive OR of $A and I # $L = $A shifted to the left by I bits # $L = $A shifted to the right by I bits # $L = $A (arithmetically) shifted to the right by I bits loa $L, $A # $L = [contents of memory word at address $A] sto $L, $A # [contents of memory word at address $L] = $A

8 Käskyjen binääriesitys (**) sub $2, $0, $ ior $7, $1,

9 Laskentapolku Trigger-työkalulla import armlet._ new DataPathTrigger()

10 Laskentapolku suorittaa annettuja käskyjä yksitellen Entäpä ohjelmoitavuus? Mitä puuttuu?

11 Scala-esimerkki ensimmäiseltä luennolta def test(m: Long) = { var i = 1L var s = 0L } while(i <= m) { s = s + i i = i + 1 } s // s = m val NANOS_PER_SEC = 1e9 val test_start_time = System.nanoTime test( l) val test_end_time = System.nanoTime val test_duration = test_end_time - test_start_time println("test took %.2f seconds".format(test_duration/nanos_per_sec))

12 [demo]

13 Ohjelma = muistiin tallennettu jono käskyjä 00000: : : : : : : : : : : : : : : : : : Kone suorittaa ohjelmaa, käsky kerrallaan, automaattisesti

14 Kuinka automatisoida suoritus? (sekventiaalilogiikan työkaluilla)

15 Mitä suoritus on?

16 1) Ladataan käskyjä muistista, yksi kerrallaan, ja 2) Ohjataan käsky laskentapolun käsiteltäväksi

17 Tässäkö kaikki?

18 Käskyjä ladataan muistista, yksi kerrallaan Mutta missä järjestyksessä? Täsmälleen mistä ladataan seuraava käsky?

19 Ohjelmalaskuri ( Program Counter, PC ) = rekisteri, jonka arvo ajanhetkellä t kertoo missä ohjelman suoritus on (= mistä muistiosoitteesta ajanhetkenä t suoritettava käsky ladattiin)

20 Ohjelmalaskurin eteneminen Oletus: PC t + 1 = PC t + 1 (aloitus: PC 0 = 0) Oletusjärjestystä voidaan muuttaa erillisillä suoritusta ohjaavilla käskyillä: Hyppykäskyt ( jump ) PC t + 1 = hypyn kohdeosoite Haarautumiskäskyt ( branch ) PC t + 1 = hypyn kohdeosoite jos haarautumisehto on tosi; muuten oletusjärjestys (PC t + 1)

21 Tilarekisteri ( Program Status Register, PSR ) = rekisteri, jossa tallennettuna tuoreimman vertailukäskyn määräämän vertailun tulos (haarautumiskäskyt käyttävät tulosta ohjaamaan suoritusta)

22 Hyppy Hyppykäsky määrää jatkamaan suoritusta määrätystä osoitteesta Hyppy vastaa käytännössä hypyn kohdeosoitteen siirtämistä ohjelmalaskuriin jmp >target # jump to #... some code #... some further code here...

23 Vertailu + Haarautuminen Vertaillaan kahta arvoa (rekisteri vs rekisteri tai rekisteri vs vakio) Ehdollinen haarautuminen viimeisimmän vertailun tuloksen perusteella Hyppy suoritetaan jos ja vain jos haarautumisehto on tosi Muuten jatketaan suoritusta oletusjärjestyksessä cmp $7, 0 beq >done # compare $7 (left) and 0 (right) # jump to if left == right #... some code #... some further code here...

24 armlet-prosessori (*) lcu_e C $0 $1 $2 $3 $4 $5 $6 $7 PC PS Load completion unit read_in mem_read_e mem_write_e mem_addr Arithmetic logic unit Memory interface unit Control and execution unit reset_e mem_data hlt_f lcu_e C $0 $1 $2 $3 $4 $5 $6 $7 PC PS

25 Kierros 5: Ohjelmoitava kone Suoritusta ohjaavat käskyt (hyppy ja ehdollinen haarautuminen) Konekieli (binääri) ja symbolinen konekieli ( assembly language ) Symbolinen konekieliohjelmointi Konekieliohjelmointi- ja simulaatioympäristö armlet -arkkitehtuurille ( Ticker -työkalu)

26 Käskykanta (suoritusta ohjaavat käskyt) cmp $A, $B # compare $A (left) and $B (right) cmp $A, I # compare $A (left) and I (right) jmp $A # jump to address $A beq $A #... if left == right (in the most recent comparison) bne $A #... if left!= right bgt $A #... if left > right (signed) blt $A #... if left < right (signed) bge $A #... if left >= right (signed) ble $A #... if left <= right (signed) bab $A #... if left > right (unsigned) bbw $A #... if left < right (unsigned) bae $A #... if left >= right (unsigned) bbe $A #... if left <= right (unsigned) jmp I # jump to address I beq I #... if left == right (in the most recent comparison) bne I #... if left!= right bgt I #... if left > right (signed) blt I #... if left < right (signed) bge I #... if left >= right (signed) ble I #... if left <= right (signed) bab I #... if left > right (unsigned) bbw I #... if left < right (unsigned) bae I #... if left >= right (unsigned) bbe I #... if left <= right (unsigned) hlt # halt execution trp # trap (break out of execution for debugging) Vertailu Hyppy (jump) ja haarautuminen (branch) tuoreimman vertailun tuloksen perusteella Hyppy (jump) ja haarautuminen (branch) tuoreimman vertailun tuloksen perusteella Pysäytys

27 Ensimmäinen armlet-ohjelmamme var t = 10 var i = 1 var s = 0 while(t!= 0) { s = s + i i = i + 1 t = t - 1 }

28 Symbolinen mov $0, 10 mov $1, 1 mov $2, 0 cmp $0, 0 beq >done add $2, $2, $1 add $1, $1, 1 sub $0, $0, 1 jmp >loop hlt armletkonekieliohjelma Konekielikääntäjä Assembler Konekieliohjelma (armlet-binääri) 00000: : : : : : : : : : : : : : : : : : Assembly-language program (Loadable/executable) armlet binary

29 Esimerkkejä lukemistossa Taulukosta summa Taulukon maksimi Taulukon lajittelu kasvavaan järjestykseen Pinon ( stack ) käyttö rekisterien loppuessa

30 Suorituksen keskeyttäminen ja pysäyttäminen Keskeyttäminen ( trap, käsky trp) (ohjelmointiympäristöstä voidaan seurata miltä suoritus näyttää trp-käskyn kohdalla ja sitten jatkaa suoritusta näppärä tuholaistorjuntatarkoituksissa ) Pysäyttäminen ( halt, käsky hlt) (suoritus pysähtyy, vailla mahdollisuutta jatkaa)

31 armlet-ohjelmointia Tickerkonekieliohjelmointi- ympäristöllä [demo] import armlet._ new Ticker() (tai ajamalla Eclipse-tehtäväpaketin launchticker -olio)

32 Harjoituksissa Vakuutumme, että suunnittelemamme armlet-prosessori on kuin onkin ohjelmoitava kone Ohjelmointi (symbolisella) konekielellä on ohjelmoijalle työlästä puuhaa Tehtävät ratkaistuasi osaat arvostaa nykyaikaisia ohjelmointikieliä

33 Tehtävät (armlet-konekielellä) expression yhteen- ja vähennyslaskua rekistereillä wordops rekisterien bittien käsittelyä range kokonaislukutaulukon vaihteluväli (= max min) multiply kertolaskualirutiini (armlet ei tue kertolaskua laitteistotasolla) mostfrequent taulukossa useimmin esiintyvä arvo (lajittelualirutiini annettu) gcd (haastetehtävä) kahden rekisterin suurin yhteinen tekijä -alirutiini

34 Tietokoneen mysteeri selvitetty?

35 Kyllä Laitteiston periaatteiden ja (laitteistoläheisen) ohjelmoinnin tasolla Osaamme rakentaa ohjelmoitavan koneen

36 Laskennan ja ohjelmoitavuuden yleisyysperiaate: Ohjelmoitava kone voi, sopivasti ohjelmoituna, simuloida toista ohjelmoitavaa konetta

37 Laskenta ja ohjelmointi ovat laitteistosta ja ohjelmointikielestä riippumattomia käsitteitä (käytännössä fyysinen laitteisto, esimerkiksi käytettävissä olevan muistin määrä, ja simulaation tehokkuus rajaavat edellistä väitettä jonkin verran)

38 Tietokoneen mysteeri selvitetty?

39 Ei laitteiston yksityiskohtien ja ohjelmistojen tasolla

40 Ohjelmisto ( software ) Käyttöjärjestelmä Laitteisto ( hardware )

41 Mutta olisiko Scala-ohjelmointi sittenkin ilmaisuvoimaisempaa kuin ohjelmointi (symbolisella) armlet-konekielellä?

42 Ei Periaatteellisesti ei, laitteistotasolla Scalaa suoritetaan likipitäen armletkonekieltä vastaavalla konekielellä (Java-tavukoodista ajonaikaisesti käännettynä) (**)

43 Esimerkki Javatavukoodista (*) var i = 1L var s = 0L while(i <= L) { s = s + i i = i + 1 } (lukemistossa laajemmin) Scala 0: lconst_1 1: lstore_2 2: lconst_0 3: lstore 4 5: lload_2 6: ldc2_w #15; //long l 9: lcmp 10: ifgt 26 13: lload 4 15: lload_2 16: ladd 17: lstore 4 19: lload_2 20: lconst_1 21: ladd 22: lstore_2 23: goto 5 26:

44 Java-tavukoodista konekieleksi (**) 0: lconst_1 1: lstore_2 2: lconst_0 3: lstore 4 5: lload_2 6: ldc2_w #15; //long l 9: lcmp 10: ifgt 26 13: lload 4 15: lload_2 16: ladd 17: lstore 4 19: lload_2 20: lconst_1 21: ladd 22: lstore_2 23: goto 5 26: JVM xorq incq xorq L1: addq incq cmpq jne L2: %rax, %rax %rax %rdx, %rdx %rax, %rdx %rax , %rax L1 (Intel Core i7 konekieltä, tässä ihmisluettavuuden vuoksi symbolisesti esitettynä kone tottelee vain binääriä)

45 Binäärinä (**) [heksadesimaalina] xorq %rax, %rax incq %rax xorq %rdx, %rdx addq %rax, %rdx incq %rax cmpq , %rax jne C0 48FFC0 4831D2 4801C2 48FFC0 483D01E1F505 75F2 4831C048FFC04831D24801C248FFC0483D01E1F50575F2 (23 x 8 =184 bittiä Intel Core i7 konekieltä)

46 Mutta olisiko Scala-ohjelmointi sittenkin ilmaisuvoimaisempaa kuin ohjelmointi (symbolisella) armlet-konekielellä?

47 Kyllä Käytännössä kyllä, Scala on ohjelmoijan tuottavuuden kannalta huomattavasti näppärämpi työkalu kuin konekieli Scala on kuitenkin vain ohjelma, jolla laitteisto saadaan näppärämmin ohjelmoijan määräämään käyttöön

48 Epilogi: Laitteiston tulevaisuudesta (***) uploads/2011/10/2011-future-of-computing- Performance-NRC.pdf S00516ED2V01Y201306CAC024 taylor_dark_silicon_horsemen_dac_2012.pdf

49 [Patterson, Hennessy: Computer Organization and Design, 5th ed., 2014, p. 40]

50 [Patterson, Hennessy: Computer Organization and Design, 5th ed., 2014, p. 44]

51

52 Intel Haswell (***) 22 nm Haswell AVX2 suoritusydin: 2 x 8 = 16 liukulukulaskentayksikköä (binary32) Intel Xeon E v3 12 x AVX2 suoritusydintä = 192 liukulukulaskentayksikköä (2.6 GHz base, 3.5 GHz boost) [1.0 Tflops base, 1.3 Tflops boost]

53 Intel Haswell konekieliesimerkki (***) 1029: c4 e2 7d vbroadcastsd (%rdx),%ymm0 102e: c4 e2 7d 19 0c 0a vbroadcastsd (%rdx,%rcx,1),%ymm1 1034: c4 e2 7d a vbroadcastsd (%rdx,%rcx,2),%ymm2 103a: c2 08 add $0x8,%rdx 103e: c5 fd vmovapd (%rax),%ymm3 1042: c4 e2 fd b8 e3 vfmadd231pd %ymm3,%ymm0,%ymm4 1047: c4 e2 f5 b8 eb vfmadd231pd %ymm3,%ymm1,%ymm5 104c: c4 e2 ed b8 f3 vfmadd231pd %ymm3,%ymm2,%ymm6 1051: c5 fd vmovapd 0x20(%rax),%ymm3 1056: c4 e2 fd b8 fb vfmadd231pd %ymm3,%ymm0,%ymm7 105b: c4 62 f5 b8 c3 vfmadd231pd %ymm3,%ymm1,%ymm8 1060: c4 62 ed b8 cb vfmadd231pd %ymm3,%ymm2,%ymm9 1065: c5 fd vmovapd 0x40(%rax),%ymm3 106a: c4 62 fd b8 d3 vfmadd231pd %ymm3,%ymm0,%ymm10 106f: c4 62 f5 b8 db vfmadd231pd %ymm3,%ymm1,%ymm : c4 62 ed b8 e3 vfmadd231pd %ymm3,%ymm2,%ymm : c5 fd vmovapd 0x60(%rax),%ymm3 107e: c4 62 fd b8 eb vfmadd231pd %ymm3,%ymm0,%ymm : c4 62 f5 b8 f3 vfmadd231pd %ymm3,%ymm1,%ymm : c4 62 ed b8 fb vfmadd231pd %ymm3,%ymm2,%ymm15 108d: c8 add %rcx,%rax 1090: 48 ff cb dec %rbx 1093: jne 1029 Esimerkki: Matriisikertolaskualirutiinin sisin silmukka Intel x86 64 konekielellä käyttäen hyväksi Haswell- mikroarkkitehtuurin tukemia AVX2 & FMA -käskykantalaajennuksia

54 NVIDIA Kepler (***) SMX: 6 x 32 = 192 liukulukulaskentayksikköä (binary32) Tesla K40 Kepler GK110 (15 SMX) = 2880 liukulukulaskentayksikköä (745 MHz base, 875 MHz boost) [4.3 Tflops base, 5.0 Tflops boost] Tesla K80 2 x Kepler GK210 (13 SMX) = 2 x 2496 = 4992 liukulukulaskentayks. (562 MHz base, 875 MHz boost) [5.6 Tflops base, 8.7 Tflops boost] 28 nm

55 NVIDIA Kepler konekieliesimerkki (***) /*00c8*/ LOP.AND R2, R4, R19; /* 0xe c100a */ /*00d0*/ LOP.AND R28, R4, R12; /* 0xe c1072 */ /*00d8*/ LOP.AND R27, R5, R18; /* 0xe c146e */ /*00e0*/ LOP.AND R29, R5, R19; /* 0xe c1476 */ /*00e8*/ LOP.AND R26, R5, R15; /* 0xe c146a */ /*00f0*/ LOP.AND R25, R6, R14; /* 0xe c1866 */ /*00f8*/ LOP.AND R3, R4, R13; /* 0xe c100e */ /* 0x */ /*0108*/ LOP.XOR R31, R2, R27; /* 0xe d9c087e */ /*0110*/ LOP.AND R20, R5, R12; /* 0xe c1452 */ /*0118*/ LOP.AND R2, R5, R16; /* 0xe c140a */ /*0120*/ LOP.AND R21, R6, R15; /* 0xe c1856 */ /*0128*/ LOP.XOR R25, R26, R25; /* 0xe c9c6866 */ /*0130*/ LOP.AND R24, R7, R14; /* 0xe c1c62 */ /*0138*/ LOP.AND R32, R5, R13; /* 0xe c1482 */ /* 0x a01098 */ /*0148*/ LOP.XOR R28, R28, R29; /* 0xe e9c7072 */ /*0150*/ LOP.AND R29, R4, R17; /* 0xe c1076 */ /*0158*/ LOP.XOR R27, R21, R24; /* 0xe c1c546e */ /*0160*/ LOP.XOR R3, R3, R20; /* 0xe a1c0c0e */ /*0168*/ LOP.XOR R2, R29, R2; /* 0xe c740a */ /*0170*/ LOP.AND R20, R4, R18; /* 0xe c1052 */ /*0178*/ LOP.AND R21, R5, R17; /* 0xe c1456 */ /* 0x */ /*0188*/ LOP.AND R26, R6, R18; /* 0xe c186a */ /*0190*/ LOP.AND R30, R6, R17; /* 0xe c187a */ /*0198*/ LOP.AND R29, R4, R14; /* 0xe c1076 */ /*01a0*/ LOP.XOR R21, R20, R21; /* 0xe a9c5056 */ /*01a8*/ LOP.AND R24, R7, R13; /* 0xe c1c62 */ /*01b0*/ LOP.XOR R28, R28, R26; /* 0xe d1c7072 */ /*01b8*/ IADD R23, R23, 0x1; /* 0xc c5c5d */ /* 0x a010 */ Esimerkki: Osa bittirinnakkaistettua 8-bittisen äärellisen kunnan kertolaskualirutiinia NVIDIA Kepler GK110 konekielellä (Compute Capability 3.5 / sm_35)

56 Tuhat miljoonaa käskyä sekunnissa, jokaisella laskentaytimellä, tehdashallillisella tietokoneita (***)

57 Sisältö (kierrokset ja moduulit) I 1. Lämmittelykierros Tietokoneen mysteeri 2. Bitit ja data 3. Kombinaatiologiikka 4. Sekventiaalilogiikka 5. Ohjelmoitava kone II Abstraktiot ja analyysi III Funktionaalinen ohjelmointityyli Suorituskykyanalyysi Rekursio Algoritmit ja informaation esitykset Uuden äärellä 10. Rinnakkaisuus ja samanaikaisuus 11. Virtualisointi ja skaalautuvuus 12. Ohjelmoitava vai oppiva kone?

58 Yhteenveto (1/3) Laitteisto Ohjelmisto -rajapinta, pohjalta ponnistaen bitit, porttitaso, väylätaso, kombinaatiopiirit, takaisinkytkennät ja kello, sekventiaalipiirit, laskentapolku, prosessori, muisti, ohjelmoitava kone käskykanta, mikroarkkitehtuuri konekieli, symbolinen konekieli, konekielikääntäjä (assembler), ohjelmointiympäristö

59 Yhteenveto (2/3) Mitä opimme, ohjelmoinnista? (mm.) Tuhat miljoonaa käskyä sekunnissa (!) Perimmiltään kaikki koostuu biteistä Laitteistosuunnittelukin on ohjelmointia Ohjelma, suoritus, laskenta Laskenta ja ohjelmointi ovat varsinaisesta laitteistosta ja ohjelmointikielestä riippumattomia käsitteitä ohjelmoitava kone voi, sopivasti ohjelmoituna, simuloida toista ohjelmoitavaa konetta Simulaation hyödyllisyys opetusvälineenä ja ammattimaisesti

60 Yhteenveto (3/3) Mitä opimme, ohjelmoinnista? (mm.) Ohjelmointi on taito valjastaa laskenta haluttuun tarkoitukseen, tarvittaessa omat työkalut rakentaen, olemassaolevia työkaluja hyödyntäen Leikki ( testaaminen ) ja työkalujen kriittinen arviointi on tärkeää Kapselointi ja harkitut ohjelmalliset abstraktiot (funktiot, oliot, pakkaukset, jne.) auttavat monimutkaisempien kokonaisuuksien ohjelmallisessa hallinnassa Ohjelmointikielet (kuten Scala) ovat vain ohjelmallisia työkaluja valjastaa laitteisto ohjelmoijan määräysvaltaan

61 Moduuli 2 Ohjelmoinnin abstraktiot ja analyysi

62 Kysyttävää, kommentteja, palautetta liittyen Moduuliin 1?

Tietokoneen mysteeri ohjelmoitava kone

Tietokoneen mysteeri ohjelmoitava kone Tämä luento poikkeuksellisesti salissa TU2, TUAS-talo, Maarintie 7 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri ohjelmoitava kone Petteri

Lisätiedot

Tietokoneen mysteeri sekventiaalilogiikka

Tietokoneen mysteeri sekventiaalilogiikka 111111111 111111111 1111111 11111111 111111 1111111 Tietokoneen mysteeri sekventiaalilogiikka Petteri Kaski Tietotekniikan laitos Aalto-yliopisto CS-A112 Ohjelmointi 2 1. maaliskuuta 217 111111111 11111111

Lisätiedot

ICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2016)

ICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2016) 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 ICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2016) Petteri Kaski Tietotekniikan laitos Aalto-yliopisto 22. helmikuuta

Lisätiedot

CS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2018)

CS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2018) 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 CS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2018) Petteri Kaski Tietotekniikan laitos Aalto-yliopisto 19. helmikuuta

Lisätiedot

ICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2015)

ICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2015) 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 ICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2015) Tommi Junttila & Petteri Kaski Tietotekniikan laitos Aalto-yliopisto!

Lisätiedot

Abstraktiot ja analyysi algoritmit ja informaation esitykset

Abstraktiot ja analyysi algoritmit ja informaation esitykset 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Abstraktiot ja analyysi algoritmit ja informaation esitykset Petteri Kaski Tietotekniikan laitos Aalto-yliopisto

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Tietokoneen mysteeri bitit ja data

Tietokoneen mysteeri bitit ja data 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri bitit ja data Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A1120 Ohjelmointi 2

Lisätiedot

Tietokoneen mysteeri bitit ja data

Tietokoneen mysteeri bitit ja data 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri bitit ja data Petteri Kaski Tietotekniikan laitos Aalto-yliopisto CS-A1120 Ohjelmointi 2 22.

Lisätiedot

Tietokoneen mysteeri bitit ja data

Tietokoneen mysteeri bitit ja data 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri bitit ja data Petteri Kaski Tietotekniikan laitos Aalto-yliopisto CS-A1120 Ohjelmointi 2 21.

Lisätiedot

Käyttöjärjestelmän rakenne

Käyttöjärjestelmän rakenne Käyttöjärjestelmän rakenne Tietokonejärjestelmä = Laitteisto + ohjelmisto Sovellus saa laitteiston käyttöönsä kj:n avustuksella CPU ja muisti Oheislaitteet KJ tarjoaa laitteiston käytössä tarvittavat palvelunsa

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100 Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).

Lisätiedot

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan

Lisätiedot

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 1 (verkkoluento 1) Tietokonejärjestelmä Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä This image cannot currently be displayed.

Lisätiedot

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän e eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokone- järjestelmäj ä Käyttäjä Tietokonelaitteisto Oheislaitteet

Lisätiedot

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?

Lisätiedot

Uuden äärellä ohjelmoitava vai oppiva kone?

Uuden äärellä ohjelmoitava vai oppiva kone? 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Uuden äärellä ohjelmoitava vai oppiva kone? Petteri Kaski Tietotekniikan laitos Aalto-yliopisto CS-A1120 Ohjelmointi

Lisätiedot

Uuden äärellä rinnakkaisuus ja samanaikaisuus

Uuden äärellä rinnakkaisuus ja samanaikaisuus 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Uuden äärellä rinnakkaisuus ja samanaikaisuus Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A1120 Ohjelmointi

Lisätiedot

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä? Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi 27.1.2011 Tietokone suoritin (CPU) väylä tai väylät laiteohjaimet muiden koneiden kanssa Ethernet, modeemi,... laitteiden kanssa Levy, DVD, CD,

Lisätiedot

Tietokonearkkitehtuuri 2 TKT-3201 (5 op)

Tietokonearkkitehtuuri 2 TKT-3201 (5 op) Tietokonearkkitehtuuri 2 (5 op) syksyllä 2012 periodit I & II (viikot 35-41 & 43-49) luennot tiistaisin klo 14-16 (periodi I: sali S4, periodi II: sali TB109) Kurssin tavoite Käydään läpi tietokoneen toimintaa

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento

Lisätiedot

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC LOAD, =X LOAD R2, X int x =; symbolin X arvo muuttujan X arvo

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 toiminta (Computer Organization I) Teemu Kerola Helsingin yliopisto Tietojenkäsittelytieteen laitos Kesä 2002 Avoin yliopisto 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Ttk-91 laitteisto Tiedon sijainti Muistitilan käyttö Ttk-91 konekieli Tiedon osoitus ttk-91:ssä Indeksointi, taulukot, tietueet 1 Suorituksenaikainen suorittimen

Lisätiedot

Tietokoneen rakenne: Harjoitustyö. Motorola MC68030 -prosessori

Tietokoneen rakenne: Harjoitustyö. Motorola MC68030 -prosessori kevät 2004 TP02S-D Tietokoneen rakenne: Harjoitustyö Motorola MC68030 -prosessori Työn valvojat: Seppo Haltsonen Pasi Lankinen RAPORTTI 13.5.2004 Sisällysluettelo sivu Tiivistelmä... 1 Lohkokaavio... 2

Lisätiedot

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 symbolit ovat yleensä

Lisätiedot

Imperatiivisten ohjelmien organisointiparadigmojen. historia

Imperatiivisten ohjelmien organisointiparadigmojen. historia Imperatiivisten ohjelmien organisointiparadigmojen historia Timo Tapanainen Helsingin yliopisto, tietojenkäsittelytieteen laitos Tietojenkäsittelytieteen historia -seminaari, kevät 2007 Sisältö Paradigma,

Lisätiedot

Imperatiivisten ohjelmien organisointiparadigmojen historia

Imperatiivisten ohjelmien organisointiparadigmojen historia Imperatiivisten ohjelmien organisointiparadigmojen historia Timo Tapanainen Helsingin yliopisto, tietojenkäsittelytieteen laitos Tietojenkäsittelytieteen historia -seminaari, kevät 2007 Sisältö Paradigma,

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Teemu Kerola Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2003 Muuntokoulutettaville 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus

Lisätiedot

Tietokoneen mysteeri kombinaatiologiikka

Tietokoneen mysteeri kombinaatiologiikka Tietokoneen mysteeri kombinaatiologiikka Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A2 Ohjelmointi 2 29. helmikuuta 26 Tietokoneen mysteeri (4 kierrosta) 2. Bitit ja data binäärilukujärjestelmä,

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 Tieto ja sen osoite

Lisätiedot

Uuden äärellä ohjelmoitava vai oppiva kone?

Uuden äärellä ohjelmoitava vai oppiva kone? 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Uuden äärellä ohjelmoitava vai oppiva kone? Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A1120 Ohjelmointi

Lisätiedot

Kertausluento luennoista 1-3 1

Kertausluento luennoista 1-3 1 Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Teemu Kerola Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2003 Muuntokoulutettaville Aihepiiri Sovellukset Teknologia Samanaikaisuus

Lisätiedot

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 toiminta (Computer Organization I) Tiina Niklander Helsingin yliopisto Tietojenkäsittelytieteen laitos Kalvot: Teemu Kerola 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer) Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer) 1 Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin

Lisätiedot

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi

Lisätiedot

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Käskyjen nouto- ja suoritussykli Ttk-91 laitteisto Tiedon sijainti Muistitilan käyttö Ttk-91 konekieli Tiedon osoitus ttk-91:ssä Indeksointi, taulukot, tietueet

Lisätiedot

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?

Lisätiedot

Scheme-kesäkurssi luento 5

Scheme-kesäkurssi luento 5 Scheme-kesäkurssi luento 5 Timo Lilja 29. 7. 2009 Sisältö 1 Rekisterikonekielen simulaattori 2 Muistinhallinta 3 Rekisterikonekielinen Scheme-tulkki 4 Kääntäjä Rekisterikonekielen simulaattori (SICP 5.2)

Lisätiedot

TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos

TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos TIES325 Tietokonejärjestelmä Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos Kevät 2008 Luku 1 Tietokone abstraktina yksikkönä Tietokoneen asbtratiotasoa sen muotoisena kuin me sen tällä hetkellä

Lisätiedot

Laitteistonläheinen ohjelmointi

Laitteistonläheinen ohjelmointi Laitteistonläheinen ohjelmointi 4 op Luennoija: Pertti Lehtinen Luennot: Perjantai 12-14 TB104 Esitiedot: Mikroprosessorit Perusohjelmointikurssi Kurssin osat: luennot, harjoitustyö, tentti Materiaali:

Lisätiedot

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori Miksi TTK-91? TTK-91:n rakenne ja käskykanta-arkkitehtuuri KOKSI-simulaattori 1 Miksi konekieltä? Koneen toiminnan ymmärtäminen Oman ohjelman toiminnan

Lisätiedot

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori Miksi TTK-91? TTK-91:n rakenne ja käskykanta-arkkitehtuuri KOKSI-simulaattori 1 Miksi konekieltä? Koneen toiminnan ymmärtäminen Oman ohjelman toiminnan

Lisätiedot

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2001 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä?

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä? Luento 2 tietokone ja sen KOKSI simulaattori Miksi? rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten ohjelmia suoritetaan simulaattorissa? Miksi konekieltä? Koneen toiminnan ymmärtäminen

Lisätiedot

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?

Lisätiedot

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?

Lisätiedot

Jakso 4 Aliohjelmien toteutus

Jakso 4 Aliohjelmien toteutus Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2002 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I) toiminta, K2000 1452002 581305-6 toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2002 Aihepiiri Sovellukset Samanaikaisuus Teknologia Ohjelmointikielet

Lisätiedot

Luento 4 Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2002 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Kombinatorisen logiikan laitteet

Kombinatorisen logiikan laitteet Kombinatorisen logiikan laitteet Kombinatorinen logiikka tarkoittaa logiikkaa, jossa signaali kulkee suoraan sisääntuloista ulostuloon Sekventiaalisessa logiikassa myös aiemmat syötteet vaikuttavat ulostuloon

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kesä 2000 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

TKT-3201 Tietokonearkkitehtuuri 2

TKT-3201 Tietokonearkkitehtuuri 2 TKT-3201 Tietokonearkkitehtuuri 2 Luku 2: Käskyt: Tietokoneen kieli Tietokonetekniikka #2 Käskykanta Käytettävissä olevien käskyjen joukko Erilaisilla prosesoreilla erilainen käskykanta Mutta paljon yhteisiä

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kesä 2000 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Aihepiiri Tietokoneen toiminta (Computer Organization I) Tavoitteet (4) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia

Aihepiiri Tietokoneen toiminta (Computer Organization I) Tavoitteet (4) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia 581305-6 toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kesä 2000 Aihepiiri Sovellukset Samanaikaisuus Teknologia Ohjelmointikielet toiminta: konekieli

Lisätiedot

6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva

6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva 6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva Experience is what causes people to make new mistakes instead of old ones... - Unknown Sisältö Yleistä EEPROM-rekisterit Protoilu-ohje EEPROMmista ja Fuse-biteistä

Lisätiedot

Johdatus ohjelmointiin

Johdatus ohjelmointiin Johdatus ohjelmointiin Ohjelmistot tietokonejärjestelmissä Jaana Holvikivi Ohjelmistojen tehtävät Sovellusohjelmat tekstinkäsittely ja muut toimistosovellukset kirjanpito, tuotannonohjaus selaimet, mediaohjelmat

Lisätiedot

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen Intel Pentium Pro -prosessori tietokonearkkitehtuurit, syksy -96 Ari Rantanen Tarkasteltavat aiheet Katsaus Pentium Pro:n ominaisuuksiin Käskyn suoritus Pentium Pro:n liukuhihnalla Pentium Pro:n suorituskyky

Lisätiedot

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006 Luento 0 581365 Tietokoneen rakenne (2 ov / 4 op) Syksy 2006 Teemu Kerola Helsingin yliopisto Tietojenkäsittelytieteen laitos Luento 0-1 Tietokoneen rakenne Asema opetuksessa u 1999 HajaTilin pakollinen,

Lisätiedot

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006 Luento 0 581365 Tietokoneen rakenne (2 ov / 4 op) Syksy 2006 Teemu Kerola Helsingin yliopisto Tietojenkäsittelytieteen laitos Luento 0-1 Tietokoneen rakenne Asema opetuksessa u 1999 HajaTilin pakollinen,

Lisätiedot

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,

Lisätiedot

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC 12 LOAD R1, =X LOAD R2, X int x =12; symbolin X arvo muuttujan

Lisätiedot

Konekielinen ohjelmointi

Konekielinen ohjelmointi Konekielinen ohjelmointi Antti-Juhani Kaijanaho 9. tammikuuta 2007 1 Konekielet Konekielellä tarkoitetaan sitä kieltä, jota tietokone ymmärtää suoraan. Koska kaikki nykytietokoneet perustuvat samaan ideaan

Lisätiedot

Luento 2 TTK-91 tietokone ja sen simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91 (1) TTK-91 laitteisto

Luento 2 TTK-91 tietokone ja sen simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91 (1) TTK-91 laitteisto Luento 2 tietokone ja sen simulaattori Miksi? rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten ohjelmia suoritetaan simulaattorissa? Miksi konekieltä? Koneen toiminnan ymmärtäminen Oman

Lisätiedot

1 Muutokset piirilevylle

1 Muutokset piirilevylle 1 Muutokset piirilevylle Seuraavat muutokset täytyvät olla piirilevylle tehtynä, jotta tätä käyttöohjetta voidaan käyttää. Jumppereiden JP5, JP6, JP7, sekä JP8 ja C201 väliltä puuttuvat signaalivedot on

Lisätiedot

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos Luento 0 581365 Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Luento0-1 Tietokoneen rakenne Asema opetuksessa u 2005 HajaTilin valinnainen,

Lisätiedot

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004 Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;

Lisätiedot

KÄYTTÖOHJE HLS 35. Versio 1.1 25.5.2010 1 (6) TOIMINTOKAAVIO

KÄYTTÖOHJE HLS 35. Versio 1.1 25.5.2010 1 (6) TOIMINTOKAAVIO KÄYTTÖOHJE HLS 35 Versio 1.1 25.5.2010 1 (6) TOIMINTOKAAVIO HLS 35 säädin on suunniteltu erityisesti huonekohtaiseen lattialämmitys/jäähdytys käyttöön. Säätimen avulla on mahdollista hyödyntää lattiajäähdytystä

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n

Lisätiedot

Aktivaatiotietue. Yleiskäsite funktio (aliohjelma) -mekanismin tarvitsemille tiedoille. Kehysosoitin (%fp) missä tiedot ovat

Aktivaatiotietue. Yleiskäsite funktio (aliohjelma) -mekanismin tarvitsemille tiedoille. Kehysosoitin (%fp) missä tiedot ovat Aktivaatiotietue Yleiskäsite funktio (aliohjelma) -mekanismin tarvitsemille tiedoille Parametrit ja paluuarvo Paluuosoite Linkkitiedot Kehysosoitin (%fp) missä tiedot ovat Missä edellisen tiedot ovat (palattaessa

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91: tietotyypit (2)

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91: tietotyypit (2) Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori Miksi TTK-91? TTK-91:n rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91-ohjelmia suoritetaan simulaattorissa? Miksi konekieltä?

Lisätiedot

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I) 581305-6 toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2003 Aihepiiri Sovellukset Samanaikaisuus Teknologia Ohjelmointikielet toiminta: konekieli

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2004 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2004 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Käyttöjärjestelmät: prosessit

Käyttöjärjestelmät: prosessit Käyttöjärjestelmät: prosessit Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet Käyttöjärjestelmä

Lisätiedot

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori Miksi TTK-91? TTK-91:n rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91-ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?

Lisätiedot

Tietokoneen toiminta (Computer Organization I) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia. Aihepiiri.

Tietokoneen toiminta (Computer Organization I) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia. Aihepiiri. toiminta, K2001 1512001 581305-6 toiminta (Computer Organization I) Teemu Kerola Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2001 Muuntokoulutettavien erikoiskurssi Mitä hyötyä tästä on?

Lisätiedot

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä?

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori Miksi TTK-91? TTK-91:n rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91-ohjelmia suoritetaan simulaattorissa? Miksi konekieltä?

Lisätiedot

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1 Käyttöjärjestelmät Tietokoneen rakenne Stallings, Luku 1 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1 Sisältöä Keskusyksikkö Käskysykli Keskeytys ja sen käsittely Siirräntä Muistihierarkia

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

Luento 4 Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri parametrit funktio parametrit,

Lisätiedot

Tietokonearitmetiikka

Tietokonearitmetiikka Tietokoneen rakenne Luento 6 Tietokonearitmetiikka Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU: Aritmeettis-Looginen Yksikkö ALU = Aritmetic

Lisätiedot

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91: rekisterit

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91: rekisterit Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori Miksi TTK-91? TTK-91:n rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91-ohjelmia suoritetaan simulaattorissa? Miksi konekieltä?

Lisätiedot

Laitteistonläheinen ohjelmointi

Laitteistonläheinen ohjelmointi Laitteistonläheinen ohjelmointi 4 op Luennoija: Pertti Lehtinen Harjoitustyö: Mikko Vulli Esituedot: Mikroprosessorit Perusohjelmointikurssi Kurssin osat: luennot, harjoitustyö, tentti Materiaali: luentomoniste

Lisätiedot

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori Miksi TTK-91? TTK-91:n rakenne ja käskykanta-arkkitehtuuri arkkitehtuuri Mikä on simulaattori? Miten TTK-91-ohjelmia suoritetaan simulaattorissa? 1 Miksi

Lisätiedot