Bilgisayar Sistemleri
Bitler, mantık devreleri, bellek, von Neumann modeli, LC-3 ISA, assembly ve C.
Kaynak kitap: Patt & Patel, Introduction to Computing Systems (2nd edition), MGraw Hill, 2004. ISBN 0-07-121503-4 (required)
- 1. haftaIntroduction to a Computer System
- Bilgisayar sistemi, soyutlama ve dönüşüm seviyeleriBir problemin elektronlara kadar inen yedi seviyesi, soyutlama fikri, ISA ile mikromimari farkı. Dersin geri kalanının haritası ve vizede kısa cevap soruları.
- 2. haftaBits, Data Types, and Operations
- Bitler ve tam sayılar: 2's complement, overflow, sign extensionBir bit desenini unsigned, sign-magnitude, 1's ve 2's complement olarak okumak, ikilik/onaltılık çevirmeler, 2's complement toplama-çıkarma ve overflow kuralı. Vizenin en çok puan taşıyan kısmı.
- Bit işlemleri, IEEE 754 kayan nokta ve ASCIIAND/OR/XOR/NOT ile bit maskeleri, IEEE 754 single precision encode-decode tarifi ve ASCII karakter kodları. Vizede her biri garanti bir soru.
- 3. haftaDigital Logic Structures (logic gates, combinational logic circuits)
- Transistörler, mantık kapıları ve Boole cebiriMOS transistörden CMOS kapılara, doğruluk tablosundan SOP ifadeye, minterm/maxterm ve Boole cebiriyle sadeleştirmeye. Devre okuma ve sadeleştirme soruları buradan.
- Kombinasyonel devreler: decoder, mux, full adder, PLADecoder, multiplexer, full adder ve ripple-carry toplayıcı, PLA ile her fonksiyonu kurmak. Kısa cevap ve izleme soruları için gereken her şey.
- 4. haftaDigital Logic Structures (concept of memory, sequential logic circuits)
- Bellek ve ardışık mantık: latch, flip-flop, register, FSMR-S latch ve gated D latch izleme, register, bellek adres hesabı (address space, addressability), saat, flip-flop ve sonlu durum makineleri. Kısa cevap ve izleme soruları.
- 5. haftaThe von Neumann Model (instruction processing)
- von Neumann modeli ve komut döngüsüBilgisayarın beş parçası, PC/IR/MAR/MDR'nin görevleri ve bir komutun altı fazı (FETCH, DECODE, EVALUATE ADDRESS, FETCH OPERANDS, EXECUTE, STORE RESULT). LC-3 örnekleriyle.
- 6. haftaThe von Neumann Model (I/O basics)
- Giriş/çıkış temelleri: memory-mapped I/O ve pollingKlavye ve ekranın LC-3'e nasıl bağlandığı: KBSR/KBDR/DSR/DDR register'ları, ready bit, polling döngüsü, interrupt farkı ve TRAP servis rutinlerine giriş.
- 7. haftaISA Overview (Memory organization and registers)
- LC-3 ISA: bellek, register'lar, operate ve veri taşıma komutlarıLC-3'ün bellek düzeni, register'ları ve condition code'ları; ADD/AND/NOT ile LD/LDI/LDR/LEA/ST/STI/STR komutları, adresleme kipleri ve 16 bitlik makine kodunu elle kodlama-çözme.
- 8. haftaISA Overview (Memory organization and registers)
- LC-3 kontrol komutları: BR, JMP, TRAP ve döngülerCondition code'lara bakan BR komutu, offset hesabı, JMP/RET ve TRAP; sayaçlı ve sentinel döngüler, if/else kalıbı ve hex makine kodundan programı okuyup izlemek.
- 9. haftaReview for the Midterm Exam
- Vize tekrarı: sayılar, mantık, bellek, von Neumann, LC-31-8. haftaların tek sayfalık özeti, her konunun sınav tarifi ve karışık deneme soruları. Sınavdan önceki akşam buradan başla.
- 10. haftaAssembly Language
- LC-3 assembly dili: direktifler, iki geçişli assembler, sembol tablosuEtiketler, .ORIG/.FILL/.BLKW/.STRINGZ/.END, assembler'ın iki geçişi ve sembol tablosu; döngü, string işleme, alt program (JSR/RET) içeren tam programlar ve çıktıları.
- 11. haftaProgramming in C
- C'ye giriş: değişkenler, tipler ve operatörlerC programının yapısı, int/char/double, kapsam (scope), tam sayı bölmesi, ++/--, mantık ve bit operatörleri, öncelik. “What is printed?” sorularının temeli.
- C kontrol yapıları: if, switch, while, for, do-whileKarar ve döngü yapıları, break/continue, switch'te düşme (fall-through), sık tuzaklar (if içinde =, sarkan else, for sonrası ;) ve bunların LC-3 dallanmalarına karşılığı.
- 12. haftaProgramming in C
- C fonksiyonları, çalışma yığını (runtime stack) ve özyinelemeFonksiyon tanımı, değerle çağırma (call by value), static yerel değişken, LC-3'te aktivasyon kaydı (R5 frame pointer, R6 stack pointer) ve özyinelemeli fonksiyonların izlenmesi.
- 13. haftaProgramming in C
- C'de pointer'lar, diziler ve string'lerAdres (&) ve içerik (*) operatörleri, pointer diyagramları, pointer ile takas, diziler ve pointer aritmetiği, fonksiyona dizi geçirmek, null ile biten string'ler ve LC-3 bellek düzeni.
- 14. haftaProgramming in C
- C'de struct, dinamik bellek ve giriş/çıkış (printf, scanf)struct ve typedef, struct'ı değerle ve pointer ile geçirmek, -> operatörü, struct dizileri, bağlı liste, malloc/free ve printf/scanf biçim belirteçleri. Dönem sonu C soruları.