Tietokoneen mysteeri ohjelmoitava kone

Koko: px
Aloita esitys sivulta:

Download "Tietokoneen mysteeri ohjelmoitava kone"

Transkriptio

1 Tämä luento poikkeuksellisesti salissa TU2, TUAS-talo, Maarintie Tietokoneen mysteeri ohjelmoitava kone Petteri Kaski Tietotekniikan laitos Aalto-yliopisto CS-A1120 Ohjelmointi 2 6. 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 Tickerkonekieliohjelmointiympä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

50

51 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]

52 Intel Skylake / Kaby Lake (***) Skylake AVX2 suoritusydin: 2 x 8 = 16 liukulukulaskentayksikköä (binary32) Intel Core i7-7700k 4 x AVX2 suoritusydintä = 64 liukulukulaskentayksikköä (4.2 GHz base, 4.6 GHz boost) [0.54 Tflops base, 0.59 Tflops boost] 14 nm

53 Intel Knights Landing (***) Knights Landing AVX512 suoritusydin: 2 x 32 = 64 liukulukulaskentayksikköä (binary32) 2 x 16 = 32 liukulukulaskentayksikköä (binary64) 14 nm Intel Xeon Phi 7290F 72 x AVX512 suoritusydintä = 4608 liukulukulaskentayksikköä (binary32) (1.5 GHz base, 1.7 GHz boost) [6.9 Tflops base, 7.8 Tflops boost] = 2304 liukulukulaskentayksikköä (binary64) (1.5 GHz base, 1.7 GHz boost) [3.5 Tflops base, 3.9 Tflops boost]

54 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

55 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

56 NVIDIA Pascal (***) 16 nm 15.3 mrd transistoria 610 mm 2 SM: 64 liukulukulaskentayksikköä (binary32) 32 liukulukulaskentayksikköä (binary64) Tesla P100 Pascal GP100 (56 SM) = 3584 liukulukulaskentayksikköä (binary32) (1328 MHz base, 1480 MHz boost) [9.5 Tflops base, 10.6 Tflops boost] = 1792 liukulukulaskentayksikköä (binary64) (1328 MHz base, 1480 MHz boost) [4.8 Tflops base, 5.3 Tflops boost]

57 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)

58 Intel käyttää tällä hetkellä 14 nanometrin valmistusprosessia 5 nanometriä pidetään rajana tavanomaisille puolijohteille Berkeley Lab julkistaa yhden nanometrin portin 1 nanometri = m = m Piiatomin kovalentti säde on 0.11 nanometriä Piiatomihilan hilakuution sivunpituus on 0.54 nanometriä (300 K lämpötilassa)

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

60 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?

61 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ö

62 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

63 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

64 Moduuli 2 Ohjelmoinnin abstraktiot ja analyysi

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

Tietokoneen mysteeri ohjelmoitava kone

Tietokoneen mysteeri ohjelmoitava kone 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri ohjelmoitava kone Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A1120 Ohjelmointi

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

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

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

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

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

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

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

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

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

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 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

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

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

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. 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

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

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

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 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

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

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

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

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

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

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

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

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

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

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

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest). 1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.

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

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

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

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

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

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 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 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 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 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

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 2002 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

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

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

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 2002 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

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

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

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

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

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

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

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 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

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

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

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

1. Keskusyksikön rakenne

1. Keskusyksikön rakenne 1. Keskusyksikön rakenne Kuvassa on esitelty TTK-91 esimerkkikoneen keskusyksikkö. Oikeiden tietokoneiden keskusyksiköt ovat luonnollisesti monimutkaisempia, mutta tämä riittää oikein mainiosti asian havainnollistamiseen.

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 (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

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

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

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

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

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

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

Eloisuusanalyysi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2009 TIETOTEKNIIKAN LAITOS. Eloisuusanalyysi.

Eloisuusanalyysi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2009 TIETOTEKNIIKAN LAITOS. Eloisuusanalyysi. TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe E tiistai 1.12. klo 10 koodigenerointi (ilman rekisteriallokaatiota)

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

Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena

Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena Mikrotietokone Moderni tietokone Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena Sen käyttötarkoitus on yleensä työnteko, kissavideoiden katselu internetistä tai pelien pelaaminen. Tietokoneen

Lisätiedot

Tietokoneen toiminta, K Tavoitteet (4)

Tietokoneen toiminta, K Tavoitteet (4) Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?

Lisätiedot

Käännös, linkitys ja lataus

Käännös, linkitys ja lataus Luento 10 (verkkoluento 10) Käännös, linkitys ja lataus Ohjelmasta prosessiin Käännösyksikkö Kääntämisen vaiheet Makrot, literaalit Staattinen ja dynaaminen linkitys Nimien sidonta Lausekielestä suoritukseen

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

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

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2 Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia,

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

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

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

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

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 Tiedon sijainti suoritusaikana Muistissa (=keskusmuisti) iso hidas Rekisterissä pieni nopea

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

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000 Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?

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

Tietojenkäsittelyn historiaa

Tietojenkäsittelyn historiaa Tietojenkäsittelyn historiaa 1.1 Ensimmäiset tietokoneet PC:t 1960 2001 1950 Suuret tietokoneet laskentaan, tilastoihin, tutkimukseet 1970-luku Sovellukset Henkilökohtai set työasemat ESIHISTORIAA 1.2

Lisätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.

Lisätiedot

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 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

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. On arvioitu, että maailmassa on tällä hetkellä enemmän sulautettuja

Lisätiedot