Title: Computer Systems Design and Architecture
1Computer Systems Design and Architecture
- Vincent P. Heuring
- and
- Harry F. Jordan
- Department of Computer Engineering
- Fatih University
2Bilgisayar Sistem Tasarimi ve Mimarisi
- Vincent P. Heuring
- and
- Harry F. Jordan
- Bilgisayar Mühendisligi Bölümü
- Fatih Ãœniversitesi
3Course Goals Understanding Structure and
Function of Digital Computer at 3 Levels
- Multiple levels of computer operation
- Application level
- High Level Language(s), HLL, level(s)
- Assembly/machine language level instruction set
- System architecture level subsystems
connections - Digital logic level gates, memory elements,
buses - Electronic design level
- Semiconductor physics level
- Interactions and relations between levels
- View of machine at each level
- Tasks and tools at each level
- Historical perspective
- Trends and research activities
This course
4Dersin Amaci Dijital Bilgisayarlarin Fonksiyon
ve Yapisinin 3 Düzeyde Anlasilmasi
- Çok katmanli bilgisayar islemleri
- Uygulama Düzeyi
- Yüksek Düzeyli Diller, (High Level Languages)
- Assembly/Makine Dil düzeyi Komut kümesi
(instruction set) - Sistem Mimari Düzeyi alt sistemler baglantilar
- Sayisal Mantik Düzeyi kapilar, hafiza
elemanlari, veri yollari - Elektronik dizayn Düzeyi
- Yari iletken Fizik Düzeyi
- Düzeyler arasi etkilesim ve iliskiler
- Makinenin her düzeydeki görünümü
- Her düzeyde ki görev ve araçlar
- Tarihsel Bakis Açisi
- Trendler ve Arastirmalar
Dersin Konulari
5Real Course Goal No Mysteries
- The goal of CSDA is to treat the design and
architecture of computer systems at a level of
detail that leaves no mysteries in computer
systems design. - This no mysteries approach is followed
throughout the text, from instruction set design
to the logic-gate-design of the CPU data path and
control unit out to the memory, disk, and network.
6Prerequisites
- Experience with a high level language
- Pascal
- C, etc.
- Assembly language programming
- Digital logic circuits
- Appendix A summarizes logic design in sufficient
detail so the text can be used in courses without
digital logic circuits as a prerequisite.
7Ön Sartlar
- Yüksek düzeyli bir dilde tecrübe sahibi olmak
- Pascal
- C, vs.
- Assembly dilinde programlama
- Sayisal mantik devreleri (Digital logic circuits)
8Text Overview
- 1 The General Purpose Machine
- 2 Machines, Machine Languages, and Digital Logic
- 3 Some Real Machines
- 4 Processor Design at the Gate Level
- 5 Processor Design - Advanced Topics
- 6 Computer Arithmetic and the Arithmetic Unit
- 7 Memory System Design
- 8 Input and Output
- 9 Peripheral Devices
- 10 Communications, Networking and the Internet
9Konular
- 1 Genel Amaçli Makineler
- 2 Makineler, Makine Dilleri, ve Dijital Logic
- 4 Islemci Tasarimi Dijital Logic Düzeyi (Gate
Level) - 5 Islemci Tasarimi Ileri Konular
- 6 Bilgisayar Aritmetigi ve Aritmetik Birimler
- 7 Hafiza Sistemi Tasarimi
- 8 Input ve Output
- 9 Çevre Birim Aygitlari
- 10 Haberlesme, Aglar ve Internet
10Chapter 1 Summary
- Views of the General Purpose Machine
- 1.1 The Users View
- 1.2 The Assembly/Machine Language Programmers
View - Instruction set architecture - ISA
- Registers, memory, and instructions
- The stored program
- The fetch execute cycle
- 1.3 The Computer Architects View
- System design balance
- 1.4 The Digital Logic Designers View
- Realization of specified functionfrom concept
to logic hardware - Also discussed Historical Perspective, Trends
and Research, Approach of the Text
11Bölüm 1 Özet
- Genel Amaçli Makinelere Bakis
- 1.1 Kullanicinin Bakisi
- 1.2 Assembly/Makine Dili Programcisinin Bakisi
- Komut Küme Mimarisi (Instruction set
architecture ISA) - Registers, hafiza, ve komutlar
- Kayitli Program
- Fetch-Execute döngüsü
- 1.3 Bilgisayar Mimarinin Bakisi
- Sistem Dizayni ve Denge
- 1.4 Digital Logic Tasarimcisinin Bakisi
- Özellestirilmis fonksiyonlarin anlasilmasi -
from concept to logic hardware - Deginilecek Diger Konular Tarihsel Bakis Açisi,
Trendler ve Arastirmalar, Kitabin Yaklasimi
12Looking Ahead - Chapter 2Explores the nature of
machines and machine languages
- Relationship of machines and languages
- Generic 32 bit Simple RISC Computer - SRC
- Register transfer notation - RTN
- The main function of the CPU is the Register
Transfer - RTN provides a formal specification of machine
structure and function - Maps directly to hardware
- RTN and SRC will be used for examples in
subsequent chapters - Provides a general discussion of addressing modes
- Covers quantitative estimates of system
performance - For students without digital logic design
background Appendix A should be covered at this
point. - Presents a view of logic design aimed at
implementing registers and register transfers,
including timing considerations.
13Bölüm 2Makineleri ve Makine Dillerinin Yapisinin
Incelenmesi
- Makineler ve diller arasindaki iliskiler
- Generic 32 bit Basit RISC Bilgisayari - SRC
- Register transfer notation - RTN
- CPUnun ana fonksiyonu Register transferdir.
- RTN, makine yapisi ve fonksiyonlari için biçimsel
bir belirleyicidir. - Direk olarak donanimi isaret eder
- RTN ve SRC sonraki bölümler de örnekler için
kullanilacaktir. - Genel adresleme modlari için bakis açisi saglar.
- Sistem performansinin tahmininde kullanilir.
- Digital Logic Dizayn altyapisi olmayan ögrenciler
için Appendix A gözden geçirilecektir. - Register implementation, register transferi ve
zamanlama amaciyla logic dizayn bakis açisi
olusturulacaktir.
14Looking Ahead - Chapter 3
- Treats two real machines of different types -
CISC and RISC - in some depth - Discusses general machine characteristics and
performance - Differences in design philosophies of
- CISC (Complex instruction Set Computer) and
- RISC (Reduced Instruction Set Computer)
architectures - CISC machine - Motorola MC68000
- Applies RTN to the description of real machines
- RISC machine - SPARC
- Introduces quantitative performance estimation
- Java-based simulators are available for subsets
of both machines, MC68000 and SPARC subset, ARC. - Run on PC, Mac OS X, Linux, and Unix
15Bölüm 3
- Farkli tiplerdeki iki gerçek makinenin
davranislari CISC ve RISC - Genel makine karakteristikleri ve performansinin
incelenmesi - Dizayn felsefesi açisindan farkliliklari
- CISC (Complex instruction Set Computer) ve
- RISC (Reduced Instruction Set Computer)
mimarileri - CISC machine - Motorola MC68000
- Gerçek makineleri tanimlamak için RTN uygulanir
- RISC machine - SPARC
- Nicel Performans Tahmini
- Her iki makinelerin altkümeleri için de Java
tabanli simülatörler uygundur. MC68000 and SPARC
altkümeleri, ARC. - PC, Mac OS X, Linux, ve Unix de çalisirlar.
16Looking Ahead - Chapter 4This keystone chapter
describes processor design at the logic gate level
- Describes the connection between the instruction
set and the hardware - Develops alternative 1- 2- and 3- bus designs of
SRC at the gate level - RTN provides description of structure and
function at low and high levels - Shows how to design the control unit that makes
it all run - Describes two additional machine features
- implementation of exceptions (interrupts)
- machine reset capability
17Bölüm 4 Islemci tasariminin logic gate düzeyinde
tanimlanmasi
- Komut kümesi ve donanim arasindaki baglantinin
tanimlanmasi - SRC nin Alternatif 1- 2- ve 3- veri yolu
dizayninin gate level de gelistirilmesi - RTN düsük ve yüksek düzeyde yapi ve fonksiyon
açiklamasi saglar. - Her seyi çalistiracak bir kontrol birimi (control
unit) tasariminin gösterilmesi - Iki ilave makine özelliginin tanimlanmasi
- implementation of exceptions (interrupts)
- machine reset yetenegi
18Looking Ahead - Chapter 5Important advanced
topics in CPU design
- General discussion of pipelininghaving more than
one instruction executing simultaneously - requirements on the instruction set
- how instruction classes influence design
- pipeline hazards detection management
- Design of a pipelined version of SRC
- Instruction-level parallelismissuing more than
one instruction simultaneously - Superscalar and VLIW designs
- Design a VLIW version of SRC
- Microcoding as a way to implement control
19Bölüm 5CPU dizayninda önemli ileri düzey konulari
- Pipelining Birden fazla komutun es zamanli
isletilmesi - Komut kümesinde ki gereklilikler
- Komut siniflarinin dizayn üzerindeki etkileri
- pipeline riskleri tespit edilmesi yönetilmesi
- SRC nin pipeline versiyonunun tasarimi
- Komut düzeyinde paralellik - Birden fazla komutun
es zamanli isletilmesi - Superscalar ve VLIW dizaynlari
- SRC nin VLIW versiyonunun dizayni
- Mikro programlama kontrol olusturmada kullanilan
bir yoldur
20Looking Ahead - Chapter 6The arithmetic and
logic unit ALU
- Impact of the ALU on system performance
- Digital number systems and arithmetic in an
arbitrary radix - number systems and radix conversion
- integer add, subtract, multiply, and divide
- Time/space trade-offs fast parallel arithmetic
- Floating point representations and operations
- Branching and the ALU
- Logic operations
- ALU hardware design
21Bölüm 6Arithmetic and logic unit ALU
- ALU nun sistem performansi üzerindeki etkileri
- Digital number systems and arithmetic in an
arbitrary radix - number systems and radix conversion
- integer add, subtract, multiply, and divide
- Time/space trade-offs fast parallel arithmetic
- Floating point representations and operations
- Branching and the ALU
- Logic islemleri
- ALU donanim dizayni
22Looking Ahead - Chapter 7The memory subsystem of
the computer
- Structure of 1-bit RAM and ROM cells
- RAM chips, boards, and modules
- SDRAM and DDR RAM
- Concept of a memory hierarchy
- The nature and functioning of different levels
- The interaction of adjacent levels
- Virtual memory
- Temporal and spatial locality are what makes it
work - Cache design matching cache main memory
- Memory as a complete system
23Bölüm 7Bilgisayarin Bellek Sistemleri
- 1-bit RAM ve ROM hücrelerinin yapisi
- RAM chips, boards, ve modules
- SDRAM ve DDR RAM
- Hafiza (bellek) hiyerarsisi
- Farkli düzeydeki hafizalarin yapisi ve
fonksiyonlari - Birlesik düzeydeki hafizalarin etkilesimi
- Sanal Bellek (Virtual memory)
- Temporal and spatial locality are what makes it
work - Cache dizayni cache eslesme main memory
- Bütün Sistem olarak Bellek
24Looking Ahead - Chapter 8Computer input and
output I/O
- Kinds of system buses, signals and timing
- Serial and parallel interfaces
- Interrupts and the I/O system
- Direct memory access - DMA
- DMA, interrupts, and the I/O system
- The hardware/software interface device drivers
- Encoding signals with error detection and
correction capabilities
25Bölüm 8Computer input and output I/O
- Sistem veri yollari, sinyalleri ve zamanlama
çesitleri - Seri ve paralel ara yüzler (interfaces)
- Interrupt ve I/O sistemi
- Direct memory access - DMA
- DMA, interrupts, ve I/O sistemi
- Donanim/Yazilim ara yüzleri (interfaces) araç
sürücüleri - Hata tespiti ve düzeltme için sinyal sifreleme
26Looking Ahead - Chapter 9Structure, function and
performance of peripheral devices
- Disk drives
- Organization
- Static and dynamic properties
- Disk system reliabilitySMART disk systems
- RAID disk arrays
- Video display terminals
- Memory mapped video
- Printers
- Mouse and keyboard
- Interfacing to the analog world
27Bölüm 9Çevre Birimlerinin Yapisi, Fonksiyonu ve
Performansi
- Disk Sürücüler
- Organizasyon
- Static ve dynamic özellikleri
- Disk sistem güvenilirligiSMART disk sistem
- RAID disk arrays
- Video görüntü terminalleri
- Memory mapped video
- Yazicilar
- Fare ve Klavye
- Çevreyle iletisim için kullanilan ara yüzler
28Looking Ahead - Chapter 10Computer
communications, networking, and the Internet
- Communications protocols layered networks
- The OSI layer model
- Point to point communication RS-232 ASCII
- Local area networks - LANs
- Example Ethernet, including Gigabit Ethernet
- Modern serial buses USB and FireWire
- Internetworking and the Internet
- TCP/IP protocol stack
- Packet routing and routers
- IP addresses assignment and use
- Nets and subnets subnet masks
- Reducing wasted IP address space CIDR, NAT, and
DHCP - Internet applications and futures
29Bölüm 10Bilgisayar Haberlesmesi, Aglar ve
Internet
- Haberlesme Protokolleri Katmanli Ag(Network)
- OSI katmanli model
- Point to point haberlesme RS-232 ASCII
- Local area networks - LANs
- Example Ethernet, including Gigabit Ethernet
- Modern seri veri yollari USB ve FireWire
- Internetworking and the Internet
- TCP/IP protocol yigini
- Packet routing ve routers
- IP adresleri görevleri ve kullanimlari
- Nets and subnets subnet masks
- Reducing wasted IP address space CIDR, NAT, and
DHCP - Internet uygulamalari ve gelecegi
30Appendices
- Appendix A Digital logic circuits
- Appendix B Complete SRC documentation
- Appendix C Assembly and assemblers
- Appendix D Selected problems and solutions
31Problem Solving
- There are four steps to problem solving
- 1. UNDERSTAND THE PROBLEM!
- 2. Have an idea about how to go about solving it
(pondering) - 3. Show that your idea works
- 4. Then and only then work on the solution
32Problem Çözümü
- Problem çözümü 4 asamada gerçeklestirilir
- 1. PROBLEMI ANLA!
- 2. Çözümün nasil olacagi konusunda fikir elde et
(düsünüp tasinmak) - 3. Çözüm fikrinin dogrulugunu göster
- 4. Çözüm üzerinde çalis
33Chapter 1 - A Perspective
- Alan Turing showed that an abstract computer, a
Turing machine, can compute any function that is
computable by any means - A general purpose computer with enough memory is
equivalent to a Turing machine - Over 50 years, computers have evolved
- from memory size of 1 kiloword (1024 words) and
clock periods of 1 millisecond (0.001 s.) - to memory size of a terabyte (240 bytes) and
clock periods of 100 ps. (10-12 s.) and shorter - More speed and capacity is needed for many
applications, such as real-time 3D animation,
various simulations
34Bölüm 1 Bakis Açisi
- Alan Turing e göre Turing makinesi
hesaplanabilecek herhangi bir fonksiyonu
hesaplayabilen soyut bir makinedir. - Yeteri bellege sahip bir genel amaçli bilgisayar,
bir Turing makinesine estir. - 50 yildan fazla sürede, bilgisayarlar
- 1 kiloword (1024 words) bellek boyutu ve 1
milisaniye (0.001 s) clock period dan - Terabyte (240 bytes) bellek boyutlari ile 100 ps
(10-12 s) clock period dan daha az clock
periodlarina - gelistirilmistir.
- Bazi uygulamalar için daha fazla hiz ve
kapasiteye ihtiyaç duyulabilir. Örnegin
gerçek-zamanli 3D animasyonlar, vs
35Scales, Units, and Conventions
Powers of 2 are used to describe memory sizes.
Note the differences between usages. You should
commit the powers of 2 and 10 to memory.
36Ölçü, Birim, ve Kurallar
Bellek boyutu 2nin kuvvetleri kullanilarak
tanimlanir.
Kullanimlar arasindaki farka dikkat edin. Bellek
2 ve 10 un kuvvetleri seklinde de ifade
edilebilir.
37Views of Computer
- There are various vies of computer, such as
- User
- Machine language programmer
- Computer architect
- Computer logic designer
38Bilgisayara Bakis
- Bilgisayara pek çok bakis açisi vardir, örnegin
- Kullanici
- Makine Dili Programcisi
- Bilgisayar Mimari
- Bilgisayar logic tasarimcisi
39Fig 1.1 The Users View of a Computer
The user sees software, speed, storage
capacity, and peripheral device functionality.
40Fig 1.1 Kullanici Gözüyle Bilgisayara Bakis
Kullanici yazilimi, hizi, depo kapasitesini ve
çevre birim aygitlarinin fonksiyonlarini görür.
41Machine/assembly Language Programmers View
- Machine language
- Set of fundamental instructions the machine can
execute - Expressed as a pattern of 1s and 0s
- Assembly language
- Alphanumeric equivalent of machine language
- Mnemonics more human oriented than 1s and 0s
- Assembler
- Computer program that transliterates (one-to-one
mapping) assembly to machine language - Computers native language is assembly/machine
language - Programmer, as used in this course, means
assembly/machine language programmer
42Makine/assembly Dili Programcisi Gözüyle
Bilgisayara Bakis
- Makine Dili
- Makinenin isleyebilecegi temel komut kümesi
- 1ler ve 0lar ile ifade edilirler
- Assembly Dili
- Makine dilinin alfanümerik karsiligidir
- 1 ve 0 lara göre insanlar tarafindan daha
anlasilirdir. - Assembler
- Assembly dilini Makine diline çeviren bilgisayar
programi. (birebir esleme) - Bilgisayarin dogal dili assembly/makine dilidir
- Bu ders için programci denildigi zaman
assembly/machine dili programcisi anlasilmalidir.
43Machine and Assembly Language
- The assembler converts assembly language to
machine language. You must also know how to do
this.
Op code
Data reg. 5
Data reg. 4
MC68000 Assembly Language
Machine Language
0011 101 000 000 100
MOVE.W D4, D5
ADDI.W 9, D2
00000001 10 111 100
0000 0000 0000 1001
Table 1.2 Two Motorola MC68000 instructions
44Makine ve Assembly Dili
- Assembler assembly dilini, makine diline çevirir.
Bunun nasil yapildigini bilmek gerekir.
Op code
Data reg. 5
Data reg. 4
MC68000 Assembly Dili
Makine Dili
0011 101 000 000 100
MOVE.W D4, D5
ADDI.W 9, D2
00000001 10 111 100
0000 0000 0000 1001
Table 1.2 Iki Motorola MC68000 komutu
45The Stored Program Concept
- The stored program concept says that the program
- is stored with data in the computers memory. The
- computer is able to manipulate it as data
- for example, to load it from disk, move it in
memory, and store it back on disk.
- It is the basic operating principle for every
computer. - It is so common that it is taken for granted.
- Without it, every instruction would have to be
initiated manually.
46Depolanmis Program Içerigi
- Program, verileri ile birlikte bilgisayarin
bellegine depolanir . Bilgisayar programlari veri
olarak isleme yetenegine sahiptir. - örnegin, programi diskden yükleme, programi
bellege tasima, ve tekrar diske yükleme
- Bu, her bilgisayar için temel isletim
prensibidir. - It is so common that it is taken for granted.
- Bu olmadan, her komut manual olarak bastan
baslatilmalidir.
47Fig 1.2 The Fetch-Execute Cycle
48Fig 1.2 Fetch-Execute Döngüsü
49Programmers ModelInstruction Set Architecture
(ISA)
- Instruction set the collection of all machine
operations. - Programmer sees set of instructions, along with
the machine resources manipulated by them. - ISA includes
- instruction set,
- memory, and
- programmer accessible registers of the system.
- There may be temporary or scratch-pad memory used
to implement some function is not part of ISA. - Non Programmer Accessible.
50Programcinin ModeliKomut Kümesi
Mimarisi(Instruction Set Architecture (ISA))
- Komut Kümesi makine islemlerinin tümü
- Programci komutlarin kümesini görür, along with
the machine resources manipulated by them. - ISA includes
- Komut kümesi (instruction set),
- Bellek ve
- Programcinin ulasabilecegi sistem register lari
- Geçici veya scratch-pad memory ISAnin bir
parçasi olmayan bazi fonksiyonlarin implement
edilmesinde kullanilabilir. - Programcinin ulasamayacagi
51Generations of Microprocessors
- There are various generations of microprocessors
- In Fig 1.3 (next page) a comparison between some
of them is given - Points to consider when analyzing Microprocessors
- Programmers manual
- Machine instruction classes
- Machine, processor, and memory states
- Procedure calls and machine interrupts
- Procedure calls
- Machine interrupts
- Exceptions
52Mikroislemcilerin Gelisimi
- There are various generations of microprocessors
- In Fig 1.3 (sonraki sayfa) bazi mikroislemcilerin
karsilastirilmasi verilmistir - Mikroislemcilerin analiz edilmesinde düsünülecek
noktalar - Programcinin sundugu kullanma kilavuzu
- Makine komut siniflari
- Makine, islemci ve bellek durumlari
- Procedure çagirma ve makine interrupt lari
- Procedure çagirma
- Makine interrupt lari
- Exception lar
53Fig 1.3 Programmers Models of 4 commercial
machines
54Machine, Processor, and Memory State
- The Machine State
- contents of all registers in system, accessible
to programmer or not - The Processor State
- registers internal to the CPU
- The Memory State
- contents of registers in the memory system
- State is used in the formal finite state
machine sense - Maintaining or restoring the machine and
processor state is important to many operations,
especially procedure calls and interrupts
55Makine, Islemci, ve Bellek Durumu
- Makine Durumu
- sistemdeki bütün register larin içerikleri,
ulasilabilir olup olmadiklari bilgileri - Islemci Durumu
- CPUya dahili register lar
- Bellek Durumu
- bellek sistemindeki register larin içerigi
- State is used in the formal finite state
machine sense - Makine ve islemci durumlarinin saglanmasi ve
yenilenmesi pek çok islem açisindan önemlidir,
özellikle procedure çagirma ve interrupt
56Data Type HLL Versus Machine Language
- High level language (HLL) provide type checking
- Verifies proper use of variables at compile time
- Allows compiler to determine memory requirements
- Helps detect bad programming practices
- Most machines have no type checking
- The machine sees only strings of bits
- Instructions interpret the strings as a type
- usually limited to signed or unsigned integers
and FP - ASCII, EBCDIC, etc
- Interpretation of bits
- A given 32 bit word might be an instruction, an
integer, a FP , or four ASCII characters
57Veri Tipi Yüksek Seviyeli Diller ile Makine
Dilleri
- Yüksek Seviyeli Diller (HLL) type checking (tip
kontrolü) saglar - Degiskenlerin özellikleri derleme süresinde
dogrulanir - Derleyicinin bellek gereksinimlerine karar
vermesine izin verilir - Programlama hatalarinin tespit edilmesinde
yardimci - Pek çok makine dilinde type checking yoktur
- Makine sadece 0 ve 1 dizilerini tanir.
- Komutlar bu dizileri tip olarak yorumlar
- usually limited to signed or unsigned integers
and FP - ASCII, EBCDIC, etc
- Bit lerin yorumlanmasi
- Verilen 32 bitlik bir word, herhangi bir komut,
tamsayi, kesirli sayi veya 4 ASCII karakteri
olabilir.
58Tbl 1.3 Examples of HLL to Assembly Language
Mapping
- This compiler
- Maps C integers to 32 bit VAX integers
- Maps C assign, , and to VAX MOV, MPY, and ADD
- Maps C goto to VAX BR instruction
- The compiler writer must develop this mapping for
each language-machine pair
59Tbl 1.3 HLL den Assembly Diline Örnekler
- Bu derleyici
- C deki tamsayilari 32 bitlik VAX tamsayisina
karsilik geliyor - C de esitlik, , ve Vax da MOV,MPY ve ADD e
karsilik geliyor - C de goto VAX da BR komutuna karsilik geliyor
- Derleyiciyi programlayan bu karsilastirmalari
her dil çifti için gelistirmelidir.
60Tools of the Assembly Language Programmer
- The assembler
- The linker
- The debugger or monitor
- The development system
61Assembly Dili Programcisinin Araçlari
- Assembler
- Linker
- Debugger veya monitor
- Gelistirme sistemi
62Who Uses Assembly Language?
- The machine designer
- must implement and trade-off instruction
functionality - The compiler writer
- must generate machine language from a HLL
- The writer of time or space critical code
- Performance goals may force program specific
optimizations of the assembly language - Special purpose or imbedded processor programmers
- Special (additional) functions and heavy
dependence on unique I/O devices in embedded
systems can make HLLs useless
63Assembly Dilini Kimler Kullanir?
- Makine Tasarimcisi
- Komut fonksiyonlarini olusturmalidir
- Derleyici yi Yazan
- HLL den makine dili gelistirilmelidir
- Zaman veya depolama ile ilgili kritik kodlari
yazan programcilar - Performance goals may force program specific
optimizations of the assembly language - Özel amaçli veya imbedded islemci programcilari
- Embeded sistemlerde özel (Ek) fonksiyonlar ve I/O
birimlerindeki yüksek derecedeki bagimliliklar
HLL kullanissiz kilabiliyor.
64Key Concepts in Assembly Language Programming
- Instruction set
- Programmers model of machine
- Instruction set architecture (ISA)
- Manipulation of machines data types
- Available data types in machines
- Mapping between HLL and the ISA
65Assembly Programlama Dillerinde Önemli Kavramlar
- Komut Kümesi
- Programcinin makine modeli
- Komut Kümesi Mimarisi (ISA)
- Makinelerin data tiplerinin kullanilmasi,
islenmesi - Makinede ki uygun data tipleri
- HLL ile ISA arasindaki esleme
66The Computer Architects View
- Architect is concerned with design performance
- Designs the ISA for optimum programming utility
and optimum performance of implementation - Designs the hardware for best implementation of
the instructions - Uses performance measurement tools, such as
benchmark programs, to see that goals are met - Balances performance of building blocks such as
CPU, memory, I/O devices, and interconnections - Meets performance goals at lowest cost
67Bilgisayar Mimarinin Bakis Açisi
- Mimar, dizayn ve performans ile alakalidir
- optimum programlama faydasi ve optimum performans
implementasyonu için ISA dizayni - en iyi komut implementasyonlu donanimin dizayn
edilmesi - performans hesaplama araçlarinin kullanilmasi,
mesela benchmark programlari - CPU, bellek, I/O birimleri ve baglantilari
arasindaki performansin dengelenmesi - Performans amaçlarina en az maliyetle ulasilmasi
68Constraints
- Constraints on optimization
- Cost
- System size
- Thermal/mechanical durability
- Timely availability of components
- Immunity to static charge
- Constrained imposed by
- Internal
- External (corporate marketing, department of
defense, etc) - Constraints may be conflicting
69Kisitlamalar
- Optimizasyonda ki kisitlamalar
- Maliyet
- Sistem boyutu
- Termal/Mekanik dayaniklilik (süreklilik)
- Zamana bagli unsurlar
- Static charge a bagisiklilik
- Maruz kalinan kisitlamalar
- Iç
- Dis (corporate marketing, department of defense,
etc) - Karmasadan(conflicting) dogan kisitlamalar
70The Big Picture
- ISA as a bridge
- CPU and memory
- Buses
- Examples
71The Big Picture
- ISA i bir köprü niteliginde düsünebiliriz
- CPU ve Bellek
- Veri Yollari
- Örnekler
72Buses as Multiplexers
- Interconnections are very important to computer
- Most connections are shared
- A bus is a time-shared connection or multiplexer
- A bus provides a data path and control
- Buses may be serial, parallel, or a combination
- Serial buses transmit one bit at a time
- Parallel buses transmit many bits simultaneously
on many wires
73Çoklayici niteliginde Veri Yollari
- Dahili baglantilar bilgisayar için çok önemlidir
- Pek çok baglanti paylasilir
- Bir veri yolu zaman-paylasimi baglantisi veya
çoklayicidir. - Bir veri yolu veri akisi için yol ve kontrol
saglar. - Veri yollari seri, paralel veya kombinasyonlu
sekillerde olabilir - Seri veri yollari birim zamanda 1 bit transfer
eder. - Paralel veri yollari pek çok biti es zamanli pek
çok kablo üzerinden transfer ederler
74Fig 1.4 One and Two Bus Architecture Examples
75Fig 1.4 Bir ve Iki Veri Yollu Mimari Örnekleri
76Fig 1.5 Getting SpecificThe Apple PowerMac G4
Bus (simplified)
77Fig 1.5 Getting SpecificThe Apple PowerMac G4
Veri Yolu (sadelestirilmis)
78Fig 1.6 The Memory Hierarchy
- Modern computers have a hierarchy of memories
- Allows tradeoffs of speed/cost/volatility/size,
etc. - CPU sees common view of levels of the hierarchy.
79Fig 1.6 Bellek Hiyerarsisi
- Modern Bilgisayarlar bellek hiyerarsisine
sahiptirler. - Allows tradeoffs of speed/cost/volatility/size,
etc. - CPU genel hiyerarsi düzeylerini görür.
80Tools of the Architects Trade
- Software models, simulators and emulators
- Performance benchmark programs
- Specialized measurement programs
- Data flow and bottleneck analysis
- Subsystem balance analysis
- Parts, manufacturing, and testing cost analysis
81Mimarin Araçlari
- Yazilim modelleri, simülatörler ve emülatörler
- Karsilastirmali performans programlari
- Özellestirilmis ölçüm programlari
- Veri akis ve bottleneck analizi
- Alt sistem denge analizi
- Parça, üretim ve test etme maliyet analizi
82Key Concepts Architects View
- Architect responsible for the overall system
design and performance - Performance must be measured against quantifiable
specifications - Architect uses various performance measurement
tools - Architect is likely to become involved in
low-level details - Architect often uses formal description languages
to convey details - Architect strives for harmony and balance in
system design
83Mimarin Bakis Açisindan Önemli Noktalar
- Mimar bütün sistem dizayni ve performansindan
sorumludur - Performans ölçülebilir özelliklere karsi
ölçülmelidir - Mimar farkli performans araçlari kullanir
- Mimar düsük-düzeyde detaylar ile mesgul olur
- Mimar çogu kez detaylari ifade etmek için formal
tanimlamali diller kullanir - Mimar harmonik ve dengeli bir sistem dizayni için
çabalar
84Computer System Logic Designers
ViewImplementation Domain
- What is implementation domain?
- Designs the machine at the logic gate level
- The design determines whether the architect meets
cost and performance goals - Architect and logic designer may be a single
person or team
85Logic Tasarimcisinin Bakis AçisindanImplementati
on Domain
- Implementation domain nedir?
- Makinenin logic gate düzeyinde tasarimi
- Tasarim, mimarin maliyet ve performans
amaçlariyla uyusup uyusmayacagina karar verir - Mimar ve Logic tasarimci tek bir kisi veya bir
takim olabilir
86Implementation Domains
An implementation domain is the collection
of devices, logic levels, etc. which the designer
uses.
Possible implementation domains
- VLSI on silicon
- TTL or ECL chips
- Gallium Arsenide chips
- PLAs or sea-of-gates arrays
- Fluidic logic or optical switches
87Implementation Domains
Implementation domain tasarimcinin kullandigi
araçlar ve logic birimlerinin hepsidir.
Muhtemel implementation domains
- VLSI on silicon
- TTL or ECL chips
- Gallium Arsenide chips
- PLAs or sea-of-gates arrays
- Fluidic logic or optical switches
88Fig 1.7 Three Different Implementation Domains
- 2-to-1 multiplexer in three different
implementation domains - generic logic gates (abstract domain)
- National Semiconductor FAST Advanced Schottky TTL
(VLSI on Si) - Fiber optic directional coupler switch (optical
signals in LiNbO3)
89Fig 1.7 Üç Farkli Implementation Domain
- 2-to-1 çoklayici(multiplexer) üç farkli
implementation domain içinde - generic logic gates (abstract domain)
- National Semiconductor FAST Advanced Schottky TTL
(VLSI on Si) - Fiber optic directional coupler switch (optical
signals in LiNbO3)
90The Distinction between Classical Logic Design
and Computer Logic Design
- The entire computer is too complex for
traditional FSM design techniques - FSM techniques can be used in the small
- There is a natural separation between data and
control - Data path storage cells, arithmetic, and their
connections - Control path logic that manages data path
information flow - Well defined logic blocks are used repeatedly
- Multiplexers, decoders, adders, etc.
91Klasik Logic Dizayn ile Bilgisayar Logic Dizayn
Arasindaki Farklar
- Bilgisayarin bütünü, geleneksel FSM tasarim
teknikleri için çok fazla karmasiktir - FSM teknikleri küçük boyutlarda kullanilir
- Veri ve kontrol arasinda dogal bir fark vardir
- Veri Yolu storage cells, arithmetic, ve
baglantilar - Kontrol Yolu veri yolundan bilgi akisini kontrol
eder - Iyi tanimlanmis logic bloklar defalarca
kullanilir - Çoklayicilar(Multiplexers), dekoderler
(decoders), toplayicilar (adders), etc.
92Two Views of the CPU PC Register
93CPU PC Registerin Iki Farkli Sekli
94Tools of the Logic Designers Trade
- Computer aided design tools
- Logic design and simulation packages
- Printed circuit layout tools
- IC (integrated circuit) design and layout tools
- Logic analyzers and oscilloscopes
- Hardware development system
95Logic Tasarimcinin Araçlari
- Bilgisayar yardimli tasarim araçlari
- Logic tasarim ve simülasyon paketleri
- Printed circuit layout tools
- IC (integrated circuit) design and layout tools
- Logic analizci ve osiloskop
- Donanim gelistirme sistemi
96Key Concepts The Logic Designer
- Logic designer works in both the domain of
abstract Boolean logic and the selected
implementation domain - At the abstract logic level, the logic designer
is concerned with the correctness of the design - At the selected implementation domain level, the
logic designer is concerned with fan-in and
fan-out constraints, logic minimization
techniques, power required, heat dissipation,
propagation delay, number of components, and so
on - Logic designer must bounce between the abstract
logic level and the implementation level to get
an optimum design - Logic designer works with logic design and
minimization tools, board layout tools, IC design
tools, and hardware design tools (such as logic
analyzers, oscilloscopes, and development sys)
97Logic Tasarimci Açisindan Önemli Noktalar
- Logic tasarimcisi hem domain of abstract Boolean
logic hem de seçilen implementasyon alaninda
çalisir - abstract logic düzeyinde, tasarimci tasarimin
dogrulugu ile ilgilenir - seçilen implementation alan düzeyinde, tasarimci
fan-in and fan-out kisitlamalari, logic
minimization teknikleri, güç gereksinimleri, heat
dissipation, propagation delay, number of
components ile ilgilenir - Logic tasarimci optimum tasarimi elde etmek için,
abstract logic level ve implementation level
arasinda çalisir - Logic tasarimci logic tasarim araçlari,
minimization tools, board layout araçlari, IC
tasarim araçlari, and donanim tasarim araçlari
(such as logic analyzers, oscilloscopes, and
development sys) ile çalisir
98Historical Generations
- Early work
- Charles Babbage
- George Boole
- Claude Shannon
- Relay Computer 1930s
- George Stibitz
- S.B. Williams
- G. K. Zuse
- etc
- Generations
99Historical Generations
- 1st Generation
- 1946-59 vacuum tubes, relays, mercury delay lines
- 2nd generation
- 1959-64 discrete transistors and magnetic cores
- 3rd generation
- 1964-75 small and medium scale integrated
circuits - 4th generation
- 1975-present, single chip microcomputer
- Integration scale components per chip
- Small scale 10-100
- Medium scale 100-1,000
- Large scale 1000-10,000
- Very large greater than 10,000
100Tarihsel Gelismeler
- 1st Nesil
- 1946-59 vacuum tubes, relays, mercury delay lines
- 2nd Nesil
- 1959-64 discrete transistors and magnetic cores
- 3rd Nesil
- 1964-75 small and medium scale integrated
circuits - 4th Nesil
- 1975-present, single chip microcomputer
- Entegrasyon Ölçegi components per chip
- Small scale 10-100
- Medium scale 100-1,000
- Large scale 1000-10,000
- Very large greater than 10,000
101Summary
- Three different views of machine structure and
function - Machine/assembly language view registers, memory
cells, instructions. - PC, IR,
- Fetch-execute cycle
- Programs can be manipulated as data
- No, or almost no data typing at machine level
- Architect views the entire system
- Concerned with price/performance, system balance
- Logic designer sees system as collection of
functional logic blocks. - Must consider implementation domain
- Tradeoffs speed, power, gate fanin, fanout
102ÖZET
- Makine yapisi ve fonksiyonlarina 3 bakis açisi
vardir - Makine/assembly Dil Bakis Açisi registers,
memory cells (bellek hücreleri),
komutlar(instructions). - PC, IR,
- Fetch-execute döngüsü
- Programlar veri olarak islenir
- Makine düzeyinde veri tipi yoktur
- Mimarin bütün siteme bakisi
- Fiyat/performans, sistem dengesi ile ilgilidir
- Logic tasarimci sistemi fonksiyonel logic
bloklari seklinde görür - implementation domaini düsünmek zorundadirlar
- Tradeoffs hiz, güç, power, gate fan-in, fan-out