Tietokoneen mysteeri ohjelmoitava kone
|
|
- Tommi Jokinen
- 7 vuotta sitten
- Katselukertoja:
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
01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri ohjelmoitava kone Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A1120 Ohjelmointi
LisätiedotTietokoneen 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ätiedotICS-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ätiedotCS-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ätiedotAbstraktiot 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ätiedotTietokoneen 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ätiedotTietokoneen 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ätiedotTietokoneen 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ätiedotICS-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ätiedotUuden ää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ätiedotTIEP114 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ätiedotTIEP114 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ätiedotLuento 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ätiedotKä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ätiedotLuento 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ätiedotOngelma(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ätiedotOngelma(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ätiedotUuden ää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ätiedotLuento 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ätiedotLuento 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ätiedotLuento 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ätiedotLuento 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ätiedotLOAD 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ätiedotTeemun 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ätiedotKertausluento 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ätiedotTietokoneen 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ätiedotTietokoneen 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ätiedotLuento 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ätiedotTieto 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ätiedotKertausluento 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ätiedotAlgoritmit 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ätiedotJakso 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ätiedotJakso 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ätiedotTIES325 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ätiedot4. 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ätiedotLaitteistonlä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ätiedotVirtualisointiympä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ätiedot11/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ätiedotTietokonearkkitehtuuri 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ätiedotUuden ää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ätiedotLuento 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ätiedotTKT-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ätiedotImperatiivisten 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ätiedotImperatiivisten 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ätiedotTietokoneen 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ätiedotLuento 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ätiedotJakso 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ätiedotLuento 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ätiedotTietokoneen 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ätiedotLuento 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ätiedotAihepiiri 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ätiedotTietokoneen 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ätiedotTietokoneen 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ätiedotJakso 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ätiedotAihepiiri 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ätiedotTietokoneen 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ätiedotTietokoneen 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ätiedotLuento 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ätiedotTietokoneen 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ätiedotLuento 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ätiedotJohdatus ohjelmointiin
Johdatus ohjelmointiin Ohjelmistot tietokonejärjestelmissä Jaana Holvikivi Ohjelmistojen tehtävät Sovellusohjelmat tekstinkäsittely ja muut toimistosovellukset kirjanpito, tuotannonohjaus selaimet, mediaohjelmat
LisätiedotTietokoneen 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ätiedotTietokoneen 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ätiedotLuento 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ätiedotLuento 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ätiedotTietokoneen 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ätiedotConcurrency - 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ätiedotLuento 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ätiedotJakso 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ätiedot1. 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ätiedotTietokoneen 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ätiedotTietokoneen 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ätiedotTietokoneen 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ätiedotAihepiiri 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ätiedotTietokoneen 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ätiedotLuento 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ätiedotLuento 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ätiedotScheme-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ätiedotAlgoritmit 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ätiedotEloisuusanalyysi. 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ätiedotMiksi 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ätiedotAjattelemme 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ätiedotTietokoneen 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ätiedotKää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ätiedotMiksi 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ätiedotJakso 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ätiedotTietokoneen 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ätiedotOngelma(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ätiedot4. 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ätiedotJakso 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ätiedotLuento 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ätiedotJakso 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ätiedotMiksi 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ätiedotJakso 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ätiedotJakso 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ätiedotTietojenkä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ätiedotAlgoritmit. 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ätiedotAliohjelmatyypit (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ätiedotTietokonearitmetiikka
Tietokoneen rakenne Luento 6 Tietokonearitmetiikka Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU: Aritmeettis-Looginen Yksikkö ALU = Aritmetic
LisätiedotSulautettujen 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