Mikroişlemciler ve Assembler Programlama

Slides:



Advertisements
Benzer bir sunumlar
ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
Advertisements

el ma 1Erdoğan ÖZTÜRK ma ma 2 Em re 3 E ren 4.
Yrd. Doç. Dr. Mustafa Akkol
BİLGİSAYAR, DONANIM VE YAZILIM KAVRAMLARI
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
Değişkenler ve bellek Değişkenler
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
Atlayarak Sayalım Birer sayalım
Prof. Dr. Eşref ADALI Yrd. Doç. Dr. Şule Gündüz Öğüdücü SürümA
BEIER CÜMLE TAMAMLAMA TESTİ
Diferansiyel Denklemler
ÖRNEKLEME DAĞILIŞLARI VE TAHMİNLEYİCİLERİN ÖZELLİKLERİ
CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı
ALIŞVERİŞ ALIŞKANLIKLARI ARAŞTIRMASI ÖZET SONUÇLARI Haziran 2001.
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
MİMARİ ESASLAR Bir bilgisayarın komut kümesi, programcının makineyi programlarken kullanabileceği ilkel emirleri veya makine komutlarının tamamının oluşturduğu.
HİSTOGRAM OLUŞTURMA VE YORUMLAMA
CPU (Merkezi İşlem Ünitesi)
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
TÜRKİYE KAMU HASTANELERİ KURUMU
Mikroişlemciler Giriş.
Intel Pentium II Mikroişlemcisi
PROGRAM GELİŞTİRME 1.HAFTA.
Register ve Türleri Nihal GÜNGÖR.
Intel P6 Architecture Mustafa Çayır.
Temel Bilgisayar Yapısı ve Devreleri
66 CHAPTER SİSTEM UNITESİ. © 2005 The McGraw-Hill Companies, Inc. All Rights Reserved. 6-2 Sistem Üniteleri Mikro bilgisayarlar Masaüstü Dizüstü Tablet.
BİLGİSAYARIN MİMARİSİ, TEMEL BİLEŞENLERİ VE ÇALIŞMA MANTIĞI
Mikroişlemciler ve Mikrobilgisayarlar
4 X x X X X
Mukavemet II Strength of Materials II
DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ
Yard. Doç. Dr. Mustafa Akkol
DERS 5 PIC 16F84 PROGRAMLAMA.
ANA BABA TUTUMU ENVANTERİ
1 DEĞİŞMEYİN !!!
BİLGİSAYAR SİSTEMLERİ
Dersin Kapsamı Bilgisayar Nedir, Ne Yapar?
İŞLEMCİ MİMARİLERİ – Derya Işık
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
Bilişim Teknolojileri Öğretmeni İsmail ÖZTÜRK
ÇOK DEĞİŞKENLİ FONKSİYONLARDA
Proje Konuları.
Diferansiyel Denklemler
Hafta2 Bilgisayar Donanımı Dersi
BİLGİSAYAR MİMARİLERİ 2.Hafta: Bilgisayar Bileşenleri
BİLGİSAYAR MİMARİLERİ 7.Hafta: Çoklu-Çevrim İşlemci
BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ
Amaçlar Assembly dilinin genel özelliklerini tanımak
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
Bilgisayar Donanımı Dersi
Giri ş 1 Mikroişlemciler. İçerik 2 Tarihi geli ş im Tanımlar Mikroi ş lemci tabanlı sistemler Sayı sistemleri.
BİLGİSAYAR NEDİR?.
Mikrobilgisayar Tasarım Yapıları
Mikroişlemciler Adresleme Modları.
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemciler Giriş.
Mikroişlemcili Sistem Tasarımı
İşletim Sistemleri (Operating Systems)
Bilgisayar Mühendisliğine Giriş
Mikrobilgisayar Tasarım Yapıları
İşletim Sistemleri (Operating Systems)
BİLİŞİM TEKNOLOJİLERİ
NİŞANTAŞI ÜNİVERSİTESİ
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Donanımı Dersi Bilgisayarın Mimarı Yapısı ve Çalışma Mantığı.
Sunum transkripti:

Mikroişlemciler ve Assembler Programlama Temel Mikroişlemci Kavramları Mikroişlemcilere Donanımsal Bakış Assembler Dili ve Özellikleri

Mikroişlemci Mikroişlemci, saklı bir komut dizisini ardışıl olarak yerine getirerek veri kabul edebilen ve bunları işleyebilen sayısal bir elektronik eleman olarak tanımlanabilir. Mikroişlemci temelde mantık kapıları, flip-floplar, sayıcı ve saklayıcılar gibi standart sayısal devrelerden oluşur.

Mikroişlemci Çağı 1971, Intel 4004 ve 4040 4-bit mikroişlemciler 4096 adetlik 4-bit hafıza bölümü 45 komut Çoğu hesap makinesi ve düşük seviye uygulamalar (mikrodalga fırınlar gibi) hala 4-bitlik mikroişlemciler kullanır

Mikroişlemci Çağı 1972, Intel 8008 8-bit mikroişlemci 16K satırlık hafıza 48 komut Saniyede 50,000 komut İşlemci genel olarak çöp terminalleri, hesap makineleri, şişeleme makinalarında kullanılmıştır.

Mikroişlemciler (devamı) 1973, Intel 8080 64K hafıza satırı (8008’den 10 kat daha hızlı) Saniyede 500,000 komut (komut başına 2 s) Trafik lamba kontrolü, güdümlü füzeler içinde de kullanılmıştır.

Mikroişlemciler (devamı) 1974, Motorola 6800 1974, İlk kişisel bilgisayar 1977, Intel 8085 Saniyede 769,230 (komut başına 1.3 s) Dahili saat ve sistem yöneticisi

Modern Mikroişlemciler 1978, Intel 8086 ve 8088 16 bit mikroişlemciler Komut başına 400 ns. Saniyede 2,5 milyon komut 1M satırlık hafıza Çarpma ve bölme komutları 20,000’den fazla komut çeşitliliği Komut sayısı çok fazla olan mikroişlemcilere CISC (complex instruction set computers – Karmaşık komut setli işlemci) ismi verilir

Modern Mikroişlemciler 1983, Intel 80286 16M büyüklüğünde hafıza Arttırılmış saat hızı (8 MHz) Bazı komutların sağlanması 250 ns. alır

Modern Mikroişlemciler 1986, Intel 80386 32 bit mikroişlemci 4GB büyüklüğünde hafıza 1989, Intel 80486 80386 gibi. Ancak, komutların çalıştırılması, iki değil tek saat çevriminde yapılır 8 KB önbellek

Pentium Mikroişlemci 1993, Intel Pentium (P5 veya 80586) Giriş verisyonları, 60 & 66 MHz saat frekanslarında ve 110 MIPS hızında çalışmakta idi 16 KB önbellek 30 Hz ve üzerinde video gösterimine olanak tanımakta idi.

Modern Mikroişlemciler Pentium Pro Pentium II Pentium III Pentium IV Core2 Quad Core 64-bit mikroişlemciler …

Tanımlar

Entegre Devre Diğer adıyla IC (Integrated Circuits), mikrodevre, mikroçip, silikon çip, veya çip. İnce bir tabaka halindeki yarıiletken materyal üzerinde oluşturulmuş olan minyatür elektronik devredir. Genellikle yarıiletken ve pasif devre elemanlarından oluşur.

Mikroişlemci Merkezi işlemci ünitesi (CPU) fonksiyonlarını tek bir entegre devre üzerinde toplayan programlanabilir sayısal elektronik bileşen olarak adlandırılır.. 8-bit, 16-bit, 32-bit, ve 64-bit mikroişlemci: Tek bir seferde işlenebilen bit sayısını ifade eder. Programların çalıştırılabilmesi için harici bir hafızaya ihtiyaç duyabilir.

Mikroişlemci ve Mikrodenetleyici Mikrobilgisayar: CPU olarak bir mikroişlemci kullanan bir bilgisayar. Mikrodenetleyici (veya MCU): Bir çipin üzerindeki bilgisayar. Kendine yetebilirlik ve maliyet düşüklüğüne önem veren bir mikroişlemci. Mikrodenetleyici ile mikroişlemci arasındaki tek fark: Mikroişlemcide sadece ALU, kontrol ünitesi ve register’lar bulunur. Mikrodenetleyicide ise ROM, RAM, harici üniteler (zamanlayıcı, Girdi/Çıktı portları ve benzeri) bulunur.

Mikroişlemci tabanlı kişisel bilgisayar sistemi

Mikroişlemci tabanlı bilgisayar sistemi

Genel Yapı

Temel Birimler Giriş / Çıkış (Input / Output) : Sayısal, analog ve özel fonksiyonlardan oluşur ve mikroişlemcinin dış dünya ile haberleşmesini sağlar. Hafıza : RAM, ROM, PROM, EPROM, EEPROM veya bunların herhangi bir birleşimi olabilir. Bu birim, program ve veri depolamak için kullanılır. Osilatör : Veri ve komutların CPU 'ya alınmasında, yürütülmesinde, kayıt edilmesinde, sonuçların hesaplanmasında ve çıktıların ilgili birimlere gönderilmesinde gerekli olan saat darbelerini üretmektir.

Temel Birimler Zamanlama ve Denetim Birimi: Bu kısım sitemin tüm işleyişinden ve işlemin zamanında yapılmasından sorumlu olan birimdir. Bu birim bellekte program bölümünde bulunan komut kodunun alınıp getirilmesi, kodunun çözülmesi, ALU tarafından işlenip, sonucun alınıp belleğe yüklenmesi için gerekli olan denetim sinyalleri üretir. İletişim yolları: Mikroişlemci mimarisine girmese de işlemciyle ayrılmaz bir parça oluşturan iletişim yolları kendi aralarında üçe ayrılır. Adres yolu (Address Bus); Veri yolu (Data Bus); Kontrol yolu

Mikroişlemci Mikroişlemciye aynı zamanda Merkezi İşlem Ünitesi (Central Processing Unit - CPU) de denilir. CPU, bilgisayar sistemini kontrol eden elemandır. CPU hafızayı ve girdi/çıktıları bus denilen bağlantılar sayesinde kontrol eder. Bus: Girdi/çıktı veya hafıza ünitesini seçer, farklı bileşenler arasındaki veri akışlarını gerçekleştirir. Hafıza ve Girdi/Çıktı üniteleri, hafızada bulunan ve mikroişlemci tarafından çalıştırılan komutlar sayesinde kontrol edilir.

Mikroişlemci Mikroişlemcinin üç temel işlevi bulunur: Kendisi ile hafıza ve girdi/çıktı sistemleri arasındaki veri akışını kontrol eder. Temel aritmetik ve mantık operasyonlarını gerçekleştirir. Temel karar mekanizmaları ile program akışını kontrol eder. CPU aşağıdaki bileşenlerden oluşur: Aritmetik Mantık Ünitesi: Arithmetic Logic Unit (ALU) Register’lar Kontrol Ünitesi

ALU Aritmetik ve mantık operasyonlarını gerçekleştirir. Ana hafızadan ve/veya register’lardan verileri alır ve sonuçların bu ünitelere yazılmasını sağlar. Mikroişlemci, bir sayının sıfır mı, pozitif mi … ve benzeri durumlarını kontrol eder. Bu durumları da göz önüne alarak oluşturulan program akışı sayesinde, sistem ile ilgili temel kararlar verilmesine olanak tanır.

ALU

Aritmetik ve mantık operasyonları Yorum Addition Subtraction Multiplication Division AND Mantıksal çarpma OR Mantıksal toplama NOT Mantıksal değilleme NEG Aritmetik değilleme Shift Rotate

Kararlar Karar Yorum Zero Sayının sıfır olup olmadığını test eder Sign Sayının pozitif mi negatif mi olduğunu test eder Carry Toplamadan dolayı oluşan eldeyi ve çıkarmadan dolayı oluşan ödünç alma işlemlerini test eder Parity Sayının çift mi tek mi olduğunu test eder Overflow Toplama veya çıkarma sonucunda oluşan sayının geçerliliğini kontrol eder

Register’lar CPU’nun ikili sayıları hızlı okumaları ve yazmaları için özelleşmiş bölgeler. Veri veya adres değerlerini tutabilirler. Sayıları ve tipleri, CPU dizaynına bağlıdır. CPU ve girdi/çıktı alt sistemi tarafından kullanılabilirler.

Register’lar Flip-floplardan oluşan birimlerdir. Kaydediciler genel amaçlı ve özel amaçlı olmak üzere iki grupta incelenmektedir. Genel amaçlı registerlar grubuna A, B,C ve D registerları girer. Özel amaçlı registerlara örnek olarak ise; PC (Program Counter, Program Sayacı), anlık icra edilen komutun adresi bu kaydedicide tutulur. SP (Stack Pointer- Yığın İşaretçisi) Flags (Bayraklar) verilebilir.

Kontrol Ünitesi Mikroişlemcinin çalışmasını kontrol eden merkezi ünite. Aşağıdaki işlemleri sırası ile gerçekleştirir: Fetch: Makine dili komutlarını hafızadan okur Decode: Komutları tanımlar Execute: Komutların karşılanmasını sağlar Gerekli verileri register’lardan veya hafızadan alır Gerekli işlemlerin yapılmasını sağlar Sonuçları register’lara veya hafızaya yazar

Hafıza Aynı büyüklükteki (genellikle byte) verilerin tutulduğu sayısal bölgeler. Genellikle ardışık byte’lar word (2 byte) ve double word (4 byte) oluşturur. Hafızadaki her satırın ayrı bir adresi bulunur. 16-bit adres, 65,636 (64K) hafıza satırının tanımlanmasına olanak tanır. Dikkat: Bilgisayardaki adres büyüklüğü ile hafızadaki toplam büyüklüğü birbiri ile karıştırmayın. Hafızadan veri transferi read (okuma) operasyonudur. Hafızaya veri transferi write (yazma) operasyonudur.

Bus Bilgisayar sisteminde bileşenleri bağlayan kablolar grubu Mikroişlemci, hafıza ve girdi/çıktı üniteleri arasındaki adres, veri ve kontrol bilgilerini transfer eder. Bazı cihazlar aynı ortak yolu kullanabilirler. Ancak bir zaman diliminde sadece bir tanesi veri yolunu kullanıyor olabilir.

Bus (devam) Address bus: CPU tarafından, halihazırdaki komutun gereksinim duyduğu okuma ve yazma operasyonlarının hangi adres ile ilişkili olduğu bilgisini iletmede kullanılır. Data bus: Mikrobilgisayarın farklı parçaları arasındaki veri akışlarında kullanılır. data bus width (bit olarak): Mikrobilgisayar sistemindeki verilerin büyüklüğünü tanımlar. Control bus: Mikrobilgisayar içerisindeki olayların kontrolünde ve senkronizasyonunda kullanılan sinyallerin iletiminde kullanılır.

Bus Yapısı

8 Bitlik Mimari

16 Bitlik Mimari

32 Bitlik Mimari

Mikroişlemci Mimarileri

Mikroişlemci Tasarım Mimarileri Bilgisayarın yüklenen tüm görevleri çok kısa zamanda yerine getirmesinde yatan ana unsur bilgisayarın tasarım mimarisidir. Bir mikroişlemci, mimari yetenekleri ve tasarım felsefesiyle şekillenir. İki temel mimari vardır. Von Neuman Harvard

Von Neuman (Princeton) Mimarisi Bilgisayarlarda ilk kullanılan mimaridir. İlk bilgisayarlar Von Neuman yapısından yola çıkılarak geliştirilmiştir. Geliştirilen bu bilgisayar beş birimden oluşmaktaydı. Bu birimler; aritmetik ve mantıksal birim, kontrol birim, bellek, giriş-çıkış birimi ve bu birimler arasında iletişimi sağlayan yolardan oluşur

Von Neuman (Princeton) Mimarisi

Von Neuman (Princeton) Mimarisi Bu mimaride veri ve komutlar bellekten tek bir yoldan mikroişlemciye getirilerek işlenmektedir. Program ve veri aynı bellekte bulunduğundan, komut ve veri gerekli olduğunda aynı iletişim yolunu kullanmaktadır. Bu durumda, komut için bir algetir (Fetch) çevrimi, sonra veri için diğer bir algetir çevrimi gerekmektedir.

Von Neuman (Princeton) Mimarisi Von Neuman mimarisinde, veri bellekten alınıp işledikten sonra tekrar belleğe gönderilmesinde çok zaman harcanır. Bundan başka, veri ve komutlar aynı bellek biriminde depolandığından, yanlışlıkla komut diye veri alanından kod getirilmesi sıkıntılara sebep olmaktadır. Bu mimari yaklaşımına sahip olan bilgisayarlar günümüzde, verilerin işlenmesinde, bilginin derlenmesinde ve sayısal problemlerde olduğu kadar endüstriyel denetimlerde başarılı bir şekilde kullanılmaktadır.

Harvard Mimarisi Harvard mimarili bilgisayar sistemlerinde veri ve komutların ayrı ayrı belleklerde tutulur. Buna göre, veri ve komut aktarımında iletişim yolları da bir birinden bağımsız yapıda bulunmaktadırlar. Komutla birlikte veri aynı çevrimde farklı iletişim yolundan ilgili belleklerden alınıp işlemciye getirilebilir. Getirilen komut işlenip ilgili verisi veri belleğinden alınırken sıradaki komut, komut belleğinden alınıp getirilebilir. Bu önden alıp getirme işlemi, dallanma haricinde hızı iki katına çıkarabilmektedir.

Harvard Mimarisi

Harvard Mimarisi Bu mimari günümüzde daha çok sayısal sinyal işlemcilerinde (DSP) kullanılmaktadır. Bu mimaride program içerisinde döngüler ve zaman gecikmeleri daha kolay ayarlanır. Von Neuman yapısına göre daha hızlıdır. Özellikle PIC mikrodenetleyicilerinde bu yapı kullanılır.

Mikroişlemci Komut Mimarileri Mikroişlemciler komutları işleme teknikleri açısından iki mimariye ayrılmaktadır. Karmaşık komut kümeli bilgisayar (CISC) Azaltılmış komut kümeli bilgisayar (RISC)

CISC (Complex Instruction Set Computer) Mimarisi Bu mimari, programlanması kolay ve etkin bellek kullanımı sağlayan tasarım felsefesinin bir ürünüdür. İşlemci üzerinde performans düşüklüğü ve işlemcinin karmaşık bir hale gelmesine neden olsa da yazılımı basitleştirmektedir. Bu mimarinin en önemli iki özelliği, değişken uzunluktaki komutlar diğeri ise karmaşık komutlardır. Değişken ve karmaşık uzunluktaki komutlar bellek tasarrufu sağlar. Karmaşık komutlar birden fazla komutu tek bir hale getirirler. CISC komut seti mümkün olabilen her durum için bir komut içermektedir. CISC mimarisinde yeni geliştirilen bir mikroişlemci eski mikroişlemcilerin assembly dilini desteklemektedir.

CISC

RISC (Reduced Instruction Set Computer) Mimarisi RISC mimarisinin en önemli özelliği küçültülen komut kümesi ve azaltılan adresleme modları sayısıdır. Bunun yanında aşağıdaki özelliklere sahiptir. Bir çevrimlik zamanda komut işleyebilme Aynı uzunluk ve sabit formatta komut kümesine sahip olma Ana belleğe sadece “load” ve “store” komutlarıyla erişim; operasyonların sadece kaydedici üzerinde yapılması Yüksek seviyeli dilleri destekleme Çok sayıda kaydediciye sahip olması

RISC

RISC ve CISC Mimarilerinin Karşılaştırılması Hız ve Transistör sayısı karşılaştırmada iki önemli etkendir.

Assembler

Programlama gelişmeleri Programlanabilir makineler geliştirilmeye başlanınca, programlar ve programlama dilleri de gelişmeye başladı Bağlantıların yeri değiştirilerek programlama yapmak oldukça zor olduğu için, bilgisayar dilleri gelişmeye başladı. İlk makine dili, birler ve sıfırlar ile geliştirildi. Hafızada program denilen bir grup komut biçiminde idi

Assembly dili 1950lerin başlarında, UNIVAC benzeri sistemlerin gelişmesi ile, digital komutların girilmesini kolaylaştıran assembly dilleri kullanılmaya başlandı. Assembler, kullanıcıların anlaşılabilir kodlar yazmasına izin verdi… Toplama için ADD komutu gibi Digital komutlar yerine 0100 0111 gibi Assembly dili, programlama yapmak için kullanışlı bir araç haline geldi.

Yüksek seviye programlama dilleri 1957, FLOWMATIC, Grace Hopper 1957, FORTRAN, IBM 1958, ALGOL COBOL RPG BASIC, PASCAL, ADA C / C++ / C# / JAVA

Yüksek seviye programlama dilleri ve assembly Bilimsel amaçlı genellikle C/C++ kullanır. Bazen PASCAL ve FORTRAN Güncel bir istatistik, gömülü sistem geliştiricilerinin yaklaşık % 60’ının C programlama dilini kullandıklarını göstermektedir. % 30 assembly dilini kullanır Geri kalanlar ise genellikle BASIC ve JAVA

Assembly’nin önemi C/C++, genellikle assembly dili kullanan düşük seviye kontrol yazılımlarında kullanılmaya başlandı. Ancak, assembly dili hala önemli bir yere sahiptir. Çoğu video oyunu, neredeyse tamamen assembly dilinde yazılır Assembly ayrıca, C/C++ ile entegre olarak, bazı kontrol fonksiyonlarının daha hızlı gerçekleştirilmesini sağlar. Pentium ve çift çekirdekli işlemcilerde kullanılan bazı paralel komutlar, sadece assembly dilinde yazılır.

Adresleme Modları Anında Adresleme (Immediate Addressing) Opcode+Operand(Verinin kendisi) Mutlak Adresleme (Absolute Addressing) Operandtaki bilgi, verinin bulunduğu kaydedicinin adıdır. Doğrudan Adresleme (Direct Addressing) Opcode+Operand(Verinin adresi)

Adresleme Modları Dolaylı Adresleme (Indirect Addressing) Opcode+Operand(Bu adreste verinin adresi bulunur) Sıralı Adresleme (Indexed) Sıralama kaydedicinde veri dizisinin ilk elemanın adresi bulunur. Bu adres baz alınarak diğer verilere erişilir. Bağıl Adresleme (Relative) Dallanma komutlarında, gidilecek yerin PC de adresten ne kadar uzakta olduğunu gösterir.