Şimdi Ara

İşlemci nasıl çalışır???

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
12
Cevap
0
Favori
1.234
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Bilgisayar ve elektronik müh. olan arkadaşlar biraz bu konuda şekilli mekiili açıklama yapabilirlermi?
    (her ne kadar elektronik dersi gördüysemde fazla bişey anlamadım oda ayrı)



  • kısaca anlatmak gerekirse işlemciin içinde kendi ufak bölümleri var diyebiliriz...

    Buna göre bir acumulator,index x ve y kaydedicileri,stack pointer,vs vs gibi elemanlar bulunur...

    acc ana işlemlerin yapılıp saklandığı x ve y kaydedicileride özel adresleri kaydetmeye yarayan özel belleklerdir...stack pointer ise 8 bitlik kavrama göre yapılan işlemin dallanması buna göre alttaki bitin bir üst safhaya çıkmasıdır...kusura bakma çok yüzeysel oldu fakat bunu daha bir derinlemesine anlatmak gerekli...genelde mikroişlemcilerin çalışma mantığı bu şekilde(dahada gelişmiş halleri tabiki)
  • üniversitenin ilk yıllarında,bilgisayarın nasıl akıllı olduğunu hep merak ederdim.bilgim arttıkça,öğrendiyim btün parçalar,cpu bölümleri,herşey,bir çamaşır makinesinden farklı değildi.sadece makine.akıl nerdeydi?taşları kaldırdikça altları hep boş çıkıyordu.nezaman taşın altındaki bir canlı gibi akıllı olan şeyi görecektim.o son taş ve altındaki örümcek nerdeydi.
    hayal kırıklığı.örümcek filan yoktu.işte bu binlerce bölüm,parça bir sonlu durum otomatı'ndan başka bişey değildi.sonlu durum otomatı=sadece belli sayıda durumda olabilen sistem.örnek:elektrik anahtarı,ya açıktır,kapalı.bilgisayar için çok daha fazla durum sözkonusudur elbette.ama bir canlı gibi sonsuz durumda olamaz.
    cpu'daki en akıllı değil "mantıklı" bölüm "instruction decoder"dır.(instruction:cpuya verilen emirler).instructions'lar decoder'a ulaştığında micro instructin'slara codlanır.bunlar,herbiri belli bir iş yapan iş bölümcükleridir.bir m.instruction'ı pek çok instruction kullanabilir.
    örneğin:
    instruction : A ile B yi topla
    1.micro instruction : A yı aritmetik ünitenin x girişine yaz.
    2. micro instruction : B yi aritmetik ünitenin y girişine yaz
    3. micro instruction : topla.
    4. micro instruction : sonucu ... register'a yaz.

    örnekte instruction 4 m.inst. ' a kodlandı.
    her clock'ta (saat ,mhz,frekans) biri gercekleşti ve 4 clock'ta görev gerçekleşti.

    kritik mesele:hangi instruction'da hangi m.instructions'ların görev yapacağı.işte taşın altındaki örümcek.
    bu inst.decoder'in işi ve donanımsal yapısı gereği (instruction kodu)+(clock) bilgileri girdiğinde m.inst.lar otomatik çalışıyor.
    bir işi daha kısa sürede yapan m.inst'lar cpu'ya eklenerek(özelleşmiş komutlar)cpu 'nun yapısını belirler.mesela,sse2 yada sse3 , mmx,3dnow! gibi.bunlar cpuya multimedia yönüden güç katarlar.



    < Bu mesaj bu kişi tarafından değiştirildi nowanda -- 2 Eylül 2004, 23:41:19 >




  • ben daha yüzeysel bir cevap vereyim bir işlemciyi eline alırsan altında anakartla birleşmesini sağlayan iğneleri görürüsün ordan gelen akım yoluyla bilgiler 0-1 bildiğin gibi saniyedi sürüyle cevap verilir bunu sağlayan da içinde anahtarcık denilen kısımlardır
  • Hiç bilmesem daha iyi sanki.
  • mesela islemcilerin hic birisinin ayni olmadigi durumunun var oldugu soyleniyordu.bu durum nasil olabiliyor.bunun cevaplanmasi sanirim yapisini anlamamiza yardimci olacak??
  • bu durum sistemin çöktüğü an olabilir.öngörülemeyen bir durumda ancak bu şekilde bulunabilir,bu da zaten çökme sebebidir:)
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • [Deleted by Admins]
  • İşlemci en basit tarifle Instruction Executor (talimat yerine getirici) dir. üzerinde fiziksel olarak kodlanmış olarak duran Anlayabileceği sınırlı sayıda makina kodu vardır..

    işte bu makina kodlarının tümüne o işlemcinin INSTRUCTION SET i adı verilir..

    bu makina kodları binary(ikili sistem) yaniii 0 ve 1 ler olarak kodlanmıştır.Daha kolay anlaşılması için genelde hexadecimal (16 lık sayı sistemi) nde ifade edilebilriler.


    İşlemcinin yaptığı.. kendisine sağlanan bir clock sinyali yardımı ile (ki bu bir osilatör devresi ile sağlanır) ;

    bir programcı tarfından oluşturulmuş makina kodlarını sırasıyla işletmektir. komutların bazıları az bazıları çok clock pulse (saat darbeleri) sürebilir.


    makina kodu ile program yazmak çok zor (hatta imkansız ) olduğundan program yazmak için inglizce benzeri ve direk cpu iç yapısı ile oynayan bir dil kullanıır. buda assembly dir.

    bir assembler yardımı ile bu dilde yazılan kod makina koduna çevrilir.. tabi yüksek seviye programlama dilleri de vardır bunlar daha bütük daha kapsamlı programlar yazmak için kullanılır.. onlar içinde compiler lar vardır..kodu makina diline çevirriler ki işlemci anlayabilsin...


    tabi her işlemcinin makina dili farklı olduğu için hepsi için ayrı assembler lar ve compiler lar gerekir...



    peki bu komutları işletip ne yapar işlemci?


    bu komut dizileri (programlar) makina her neyse ( bir PC, bir mp3 player yada bir cep telefonu) memory de tutulurlar. memory uygulamaya göre farklılık gösteririr..

    genelde bir aletin çalışmaya başlamsı( startup routine) için gerekli program read only bellekte tutulur. işlemci bunu oradan okur vve işletir.. sonradan işletim sistemini çalıştırır..

    burada devreye RAM girer. ve işlemler dinamik olarak yapılmaya başlanır..


    tipik olarak bir bilgisayar sisteminde (ki bilgisayar diyerekten pc ..mp3 playeri,,cep telefonu..hatta akıllı bir çamaşır makinesinden bahsediyorum) üç tane veriyoklu vardır:

    -DATA BUS
    -ADDRESS BUS
    -CONTROL BUS


    işlemcinin o çıkışından pinler (iğneler) b u buslara karşılık gelir.. örneğin 32 bitlik bir işlemci demek data bus ının 32 bit genişliğinde olması demektri.. yani aynı anda 32 bit birden paralel olarak iletiyor...

    genel olarak bir bilgisayar sisteminin ihtiyacı olan 1)CPU 2) memory 3)input output (I/O) dur.


    burada cpu zaten beyin durumundadır.. ve tüm olay bu memory ye ve I/O a erişerek onları okuması ve değiştirmesidir..


    cpu nun ilk seviyede gördüğü direk RAM yada klavye değildir.. cpu bu birimlerle haberleşmek için önce onların controller çipleri ile konuşur.. bunun içinde CONTROL BUS ını kullanır..

    ve kime erişmek isteidğini belirtmek içinde ADDRESS BUS ını kullanır...


    memory --- ROM, RAM hard disk bunların hepsi olabilir...


    I/O ---- klavye monitor parallel port seri port vb...


    cpu bir yandan işletim sisteminin servislerini (task lerini) gerçekleştirirken..diğer yandan user programlarını işletir..

    bunların hepsini bir arada yapar gibi görünürken aslında aynı anda sadece tek işlem yapabilir.. ama zaman için işlemler arasında anahtarlama yaparak çalıştığı için (ve zöellikle pc lerde çok yüksek saat hızlarında çalıştığı için ) hepsini aynı anda yapıyormuş gibi görünür...

    dış memory nin dışında mikroişlemcinin kendi içerisinde de küçük çapta register ları vardır.. program counter index register stack pointer vb...

    bunlarda o an çalıştığı işlemlerin datalaarını, bir program üstünde nerede kaldığı, ve memory de hangi adreste olduğu tarzda bilgileri tutar..

    BİR PROGRAM İÇİN ARİTMETİK İŞLEM YAPMASINI GEREKTİĞİNDE DİREK İÇİNDEKİ ARİTHMETİC UNIT INI KULLANIR VE ÇIKIŞINI REGİSTERLARINA YADA MEMORY YE YAZAR..

    BİR PROGRAM İÇİN BİRYERE ERİŞMESİ GEREKTİĞİNDE..

    örneğin bir değişkene memory allokasyonu varsa.. memory adresini adres bus ına koyar ve data bus ından ilgili yere okur veya yazar..

    peki okudğu yada yazdığı nerden anlaşılacaktır? işte buda control bus ın görevidir.. control bus bu tip sinyalleri taşır.. o anda okuyacakmıdır yazacakmıdır tarzında..
    bir işlemci ile bir sistem tasarlamak gerektiğinde tüm bu kontorl siyanlerini öğrenmek kullanmak ve programalamak gerekir ki istenen yere istenen gibi ulaşılabilsin...




    birde interrupt kavramı vardır..işlemci bazı durumlarda işlem sırasını değiştirmesi gerekebilir..(daha öncelikli bir işlem için) buda interrupt lar sayesinde sağlanır..işlemciin bir interrupt vektor table ı bulunur.. burda hangi sinyalin hangi öncelikde olduğu bellidir..farklı yerlerden gelen interrup request lerini bu doğrultuda cevap verekek üzerinde bulunduğu işlemi bitirip ona geçeer veya HEMEN KESER...

    daha iyi anlamak maksadıyla RESET i düşünün.. reset e bastığınız anda cpu tüm işlemlerini keser ve restart olur.. demekkki resett in interrupt ı en üst seviyededir..

    interrupt controller çipi bu sinyalelri organize eder...genelde bu tip işlemler exception handling adı altında anılır....



    biraz uzunca olduğu ama yinede dağınık oldu sanırım..kafaya takılan yerler varsa daha da konuşabiliriz...

    işin özeti.. işlemci sizin onun yapmasını istediğiniz iş için hazırladığınız emirler kümesini yani programınızı koyduğunuz hafızadan sistemin fiziksel yollarını kullanarak okur..saat frekansı ile step by step işletir gereken yerdeki memroy ve input output u değiştirir..böyle ce siz ekrenda yada başka biyerde farklılıklar görürsünüz..verileri aktarmak için data bus ını...ulaşmak istedğin yeri belirtmek için adres bus ını.. trafiği kontol etmek için control bus ını kullanır..

    eğer anlatırken biryerde hatam varsa yada eksik anlattıysam daha iyi bilenlerden şimdiden özür dilerm..




  • İŞTE BASİTÇE:
  • VE İŞTE GENİŞLETİLMİŞ TAM BİR BLOK DİAGRAM:
  • hocam guzel anlatmışın eline sağlık
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.