Bilgisayar programcılığından ve bilgisayar/cpu mimarisinden iyi derece anlayan var mı
#1
Evet arkadaşlar tam beyin fırtınası yapacağız. Aklıma bilgisayarların çalışma mantığıyla ilgili çok kafa karşıtırıcı şeyler takıldı, ingilizce okusamda işin içinden çıkamıyorum ççünkü bir konuyu anladığımda onu ona yaptıran nasıl çalışıyor gibi bir soru oluştu kafamda.

Size de oluyor mu bilmiyorum, bazen aklınıza şöyle şeyler takılıyor mu?

nasıl oluyor da bir teyp kasetteki manyetik banta, kulağımızla duyduğuz bir sesi bir şekilde kaydediyor, ve bunu oynattığımızda o sesin aynısına yakının oluşturup müzik yapıyor?

nasıl oluyor da bir video kamera gördüğü görüntüyü kaydediyor ve bunu televizyonda gözümüzle görüp, kulağımızla duyduğumuza yakın bir görüntüye dönüştürüyor?

Evet biraz ilgilenen hep birşeylerin kodlaması bir yere kaydedilmesi, izleme/dinleme anında da kaydedilenlerin gözümüze akan görüntü şeklinde gelecek belli kare hızında belli renk paletinde piksellere dönüştürülmesiyle sanal olarak yaratıldığını biliyordur.

Hoş gerçi hala hoparlörlerin kayıt kaynağından gelen frekans verisini nasıl sese dönüştürdüğünü bilmiyorum. Belki elektrik gücünde anlık dğeişimler yaparak farklı frekans dalgaları oluşturuyor ve bunları saniyede çok fazla olacak şekilde ürettiğinde sese dönüştürüyordur, emin değilim.

Bunların hepsinin arka planına baktığımızda hep bir işlemci yani cpu -merkezi işlem birimi görünüyor.

Bilgisayar dünyasında herşey belirli programlarla yürütülüyor, onlar da kodlarla. Yani 0 ve 1ler. Aynı mors alfabesi gibi 0 ve 1'in hangi kombinasyonla yazıldığına göre harf, sayı, sembol, işlem, komut vs yapılıyor.

Daha önce izlediğim belgesellerde bu bilgisayar kodlamasının aynı şekilde harddisklerinde çalışma prensibi olduğunu gördüm. Yani diske bir veri yazılacaksa manyetik diske kafa 0 ve 1 leri kombine ediyor. Bizde video, resim, müzik izlediğimizde ya da bir program çalıştırdığımızda işlemci o kodlamalara göre görüntü, ses, uygulama oluşturuyor.


Şimdi diyeceksiniz ki bu kodlamalar nasıl oluyor. yine bu belgeselde çok temel bir mantığa dayandığnı öğrendim. İşlmeci elektik üzerinde dalgalanma yapıyor, atıyorum düşük voltaj 0 anlamına, yüksek voltaj 1 anlamına geliyor. Karıştırıyor volabilirim ve bu prensip 0-1 kodlaması değil, ama cpu'nun hdd'ye kod yazdırma uygulaması da olabilir. Bilen bir aydınlatsın bu 1.

Hangi durum geçrli olursa olsun, o zaman saniyede trilyon kere elektrik voltaj dalgalanması yapılarak 0 ve 1 kodlaması mı yapılıyor yani* Bu nasıl mümkün?

Peki, onu geçiyorum deniliyor ki cpu yapılırken içine komut kodları yapılıyor. Buna göre de bir program dili geliştirilmiş. Atıyorum topla, çıkar, ve veya komutları var. Peki bu nasıl çalışıyor. Yani bu komutlar cpu'nun içindkei ilgili devre kısmındaki katı devre yolları mı? Aldıkları elektriğe göre işlem mi aktarıp bu topla, çıkar vs komutunu yapıyorlar? Öyleyse cpu'nun içinde ilk başta her şeye kontrol eden ünite hangi işlem kodunu çalıştıracağını nasıl biliyor? Diyeceksiniz ki program dili var. Aldığı komuta göre işlme yapıyor. Ve komutlar içeirisnde kayıtlı.

Tamam da şunu anlamıyorum mesela çıkar kodunu çalıştırıyorsunuz.

a'dan b'yi çıkararak c sonucunu vermesini istiyorsunuz.

yani a-b=c peki oradaki = işaretinin bizim bildiğimiz = işlemi olmasını, bilgisayarın bu = işareti bilmesini nasıl sağlıyorsunuz?

Biliyorum işlemcinin içinde aritmetik işlemleri vs yapan ünüteler var. Bu tip işlemler bunların içinde çözülüyor. Atıyorum kodlanıyor 1+2=3 tür. 10+2=12dir 100+2=102 dir gibi matematikteki aritmetik işlemler kodlanıyor. Tamam da bir silikon ve bakır devre parçasına bu "kodlama" nasıl yapılıyor? Kesinlikle elinde sonunda sanaldan çıkıp somut katı materyal seviyesine geldiğimizde elimizde materyal ve elektrik sinyali var. Bu ikisiyle kodlama mikroskobik boyutlarda nasıl yapılır?

DEvrelerin üstündeki devre elemanlarıyla mı? Elektronik bilmem, ama şöyle mi misal devremin üzerinde yol var, bir yerde bu ikiye ayrılıyor. Üzeirnde de bir transistör var, bu veya işlemini yapan transistör olsun elektiriğin a ya da b yolundan gitmesini ayarlayacak. Bu gelen elektriği de kontrol eden bir ünite var. Voltajını düşük verirse o transistör elektriğin a yolundan geçmesine izin veriyor, yüksek verirse b yoluna gitmesine izin veriyor. Devre ve transistör mantığı az çok böyle mi? Peki öyleyse;

Bu transistör'e gelen elektriği az ya da çok voltajla veren kontrol parçası, o an elektriği hangi voltajla vereceğine kendi başına nasıl karar veriyor?

Komut var içinde deseniz, o komut onun içine naısl yerleştiriliyor somut olarak? Yani devrenin içinde devre, transistörün içinde transistör var gibi birşeye dönüşüyor. İçinde çıkamadım. Yani için en başında, en uc ve somut halinde herşey naısl oluyor da diğer aşamlar sırayla devreye girebiliyor?

Yani bilgisayar ya da işlemci kodlamada 0ın 0, 1in 1 olduğunu nasıl biliyor?

beynim sulandı. Undecided
http://tiraskeyfim.blogspot.com/  
http://saklinotalar.blogspot.com/
WWW
Cevapla
#2
Şu videoda 5:40 civarlarında diyor ki cpunun içinde talimat seti vardır. ekle, çıkar vs gibi. Ona göre ram'e sinyay verir işlemi yapardiyor. işlemi yapar diyor. Tamam da işte bu talimat setleri nasıl oluşturuluyor cpu'da. Bunlar nasıl çalışıyor.

yani:

How does a computer recognize binary code?



http://tiraskeyfim.blogspot.com/  
http://saklinotalar.blogspot.com/
WWW
Cevapla
#3
dumlupınar univ. elektrik elektronik bölümü
ilk yerli işemciyi üretti
ekipten bir arkadaşımıza danışıyorum
bakalım nasıl bir açıklama gelecek.
Bir de böyle düşün - Büyük Hilmi
WWW
Cevapla
#4
işlemcilerin çalışma mantığı
başlıklı bu makale birçok soruya yanıt verir nitelikde

Kod:
Bir bilgisayarın en önemli parçası işlemcidir. Kısaca CPU (Central Processing Unit / Merkezi İşlem Birimi) olarak anılan işlemciler, adından da anlaşılacağı üzere bir bilgisayardaki işlemleri yürüten ve sonuçları gerekli yerlere gönderen elemandır. Bugünün mikroişlemcileri bilgisayarınızın beyinidir. İçindeki ince silikon yonga (chip) milyonlarca anahtar ve bağlantı iletkenleri bilgisayarınızın önemli kararlar almasını sağlayan ve bu işlemleri çok hızlı bir şekilde yapan elemandır.
Mikroişlemciler, açma kapama anahtarı gibi çalışan milyonlarca transistörden oluşmaktadır. Bu anahtarların programlanma durumuna göre elektrik sinyalleri bunların üzerinden akar. Bu sinyaller, bilgisayarın yaptığı tüm işleri toplama, çıkarma, çarpma ve bölme gibi temel matematiksel işlemlere indirir. İşlemci de bu işlemleri en basit sayma sistemi olan ikilik (binary) düzen yani sadece 0 ve 1 sayılarını kullanarak yapar.
Mikroişlemciler her türlü işi ikilik sayma sistemine dökmüştür. Mesela “Y” harfi ikilik sistemde “1011001” ile ifade edilebildiği gibi kırmızı gibi bir renk de bunun gibi ikilik tabandaki üç ayrı sayı grubu ile ifade edilir. Aynı şekilde bir ses veya görüntü kaydı da yine buna benzer ikilik sayı grupları ile ifade edilirler.
Bu sayı grupları üzerinde işlem yapmak için işlemci içerisinde bir takım komut listesinden ibaret bir program mevcuttur. Bu komutlar işlemciye iki sayının çıkarılması, toplanması yönünde emir verebildiği gibi klavyeden girilen tercihlere göre bir takım komut satırını atlayıp (şartlı dallanma - conditional branch) diğer komut satırlarını yürütmeye devam edebilir.

birimler

İşlemci üzerinde komutları icra etme işini uygulama birimi (execution unit) ya da fonksiyon birimi (function unit) adı verilen üniteler gerçekleştirir. Modern işlemcilerde değişik komut türlerini işletmek üzere birden fazla fonksiyon birimi bulunur. Çoğunlukla aritmetik/mantıksal birim (arithmetic/logic unit) olarak da anılan tamsayı (integer) birimleri tam sayılar ile ilgili işlemleri yapar. Kayan nokta birimi (FPU-Floating Point Unit~Matemetik İşlem Birimi) ise ondalıklı sayılarla ilgili işlemleri yapar. Bir mikroişlemcide ne kadar fazla fonksiyon birimi varsa aynı anda çalışabilecek komut sayısı da o kadar artar.

Register seti

Registerler, işlem anında bir program tarafından kullanılmakta olan sayıların saklandığı geçici hafıza hücreleridir.

Pipelining

Pipelining , tıpkı bir fabrikadaki seri üretim bandı gibi çalışır. Bir fonksiyon birimi, her komutun işletilmesini aşamalarına ayırır. Basit bir pipeline’de beş ya da altı aşama olabilir. Bir superpipeline’da ise 10 ya da daha fazla aşama olabilir. Böyle bir pipeline’dan aynı anda birkaç komut birden akabilir. Her komut da ayrı bir aşamada işlem görmekte olabilir. Superscalar bir işlemcide her birisinin kendisine ait pipeline’ı olan iki ya da daha fazla fonksiyon birimi yer alabilir. Böyle bir işlemci birkaç komutu birden paralel olarak işletebilir.


Cache

Cache, çalışmakta olan bir programa ait komutların geçici olarak saklandığı bir hafızadır. Cache bellekler, işlemcinin komutları daha hızlı yüklemesini sağlayan yüksek hızlı hafızalardır. Cache bellekler, Level 1 (L1) , Level 2 (L2) ve Level 3 (L1) olmak üzere üçe ayrılırlar

İŞLEMCİ NASIL ÇALIŞIR?

Bir işlemci ile ilgili en çok merak edilen konulardan birisi, o işlemcinin klavye veya fare gibi farklı kaynaklardan aldığı komutları tam olarak nasıl algıladığı ve işleme soktuğudur. Veriler herhangi bir yoldan bilgisayara girildiğinde önce elektrik sinyallerine çevrilirler. Sinyaller iki durumdan oluşur. Kapalı (off=0) veya açık (on=1).
Elektrik sinyali ile bunu yapmak kolaydır; elektrik ya vardır (1) ya da yoktur (0). Bu iki durum prensibi (two state principle) olarak bilinir. İki durum prensibini tanımlamak için iki parçadan oluşan anl##### gelen ikili (binary) terimi kullanılır. Bilgisayarlarda veriler binary digits adlı temel elemanlarına yani kısa adıyla bits’lerine ayrılarak 0 ve 1 (yani açık ve kapalı) sayıları ile değerlendirirler. Verilerin ikili sistem şekline çevrilmiş haline ikili kodlama (binary coding ) denir. Bir bilgisayar içinde devreleri oluşturan yongalar üzerinde milyonlarca mikroskobik elektronik anahtar (switch) vardır. Bir mikro işlemciyi yakından incelediğimizde, her biri elektrik sinyallerinin iletiminde kullanılan çok sayıda ayaklar (pin) içerdikleri görülür.
KOMUT VE PROGRAM KAVRAMLARI
--------------------------------------------------------------------------------

İşlemci komutlar ile çalışır. Bu komutların arka arkaya dizilişlerine Program denir. İşlemcinin yapabileceği her bir işlem bir komut ile ifade edilir. Örneğin TOPLA A,B,C komutu işlemciye A sayısı ile B sayısını toplayıp sonucu C olarak kaydetmesini anlatır. Komutların işlemci içerisinde sırayla çalıştırılmasını yukarıda tanımladığımız Kontrol Birimi gerçekleştirir.

Bu komut nasıl gerçekleştirilir?
1. İşlemci Adres yolunu Kullanarak A Sayısını Bellekten ister.
2. Bellek Veri Yolundan A Sayısını İşlemciye Gönderir.
3. İşlemci Adres yolunu Kullanarak B Sayısını Bellekten ister.
4. Bellek Veri Yolundan B Sayısını İşlemciye Gönderir.
5. İşlemci A ve B Sayısını Toplar ve Sonucu Bulur.
6. İşlemci Adres yolunu kullanarak C Sayısına Bilgi Göndereceğini Belleğe Bildirir.
7. İşlemci Veri Yolunu Kullanarak C Sayısını Belleğe Gönderir.
8. Bellek Gelen Sonucu C Sayısı olarak kaydeder.

İki sayının toplanması yukarıdaki şekilde gerçekleşir. Bütün bu işlemler saniyenin milyarda biri gibi kısa bir sürede gerçekleştirilir. İşlemci TOPLA komutunu bitirir bitirmez hemen arkasından gelen komutu (eğer varsa) gerçekleştirmeye çalışır.
Bir de böyle düşün - Büyük Hilmi
WWW
Cevapla
#5
Tamam da cpu bu komutu nasıl algılıyor işte? Yani ramden komut geliyor? Ram'in içindeki komut nerden geliyor? Ya kullanıcıdan ya yüklü programdan.

O zaman işlemci yaratılırken -kendi içinde- "şu komutu alırsan bunu yap" diye bir yazılım yok. Sadece devre ve tansistörler ver. Bir komut için bir transistöre elektirk sinyali gönderiliyor o da önündeki transistörlerin dağılım şemasına göre elektirk gücünü aktarar bir nevi "işlem yapmış" oluyor. Sonra elektrik yine devrede biryere gelerek sonuç ünitesine geliyor. O sonuç üniteside işlemi yapıyor. Misal monitöre şu korrdinata bu renk piksel, hoparlöre bu frekans gibi.

Yani o zaman komut seti dediğimiz şeyler cpu'nun ana kontrol merkezine giden ana devre yolları mı oluyor? Atıyorum 10 tane ana elektrik giriş yolu var. Ben bir yazılım programında topla komutunu verdiğimde anakart işlemciye, ya da ram'in 1 nolu devre yoluna elektrik gönderiyor, çıkar dediğimde 2 nolu yoluna, başka bir komuta belirlenmiş başka bir devre yoluna. Bir kez bu komut verildikten sonra elektrik, önündeki yüzbinlerce devre yolundan geçerek işlemi yapıyor, ilgili birime veriyor. Bu mudur?

Peki o zaman anakart ram ya da cpuya hangi devre yoluna elektriği vereceğini nasıl biliyor? Atıyorum


elimde bomboş bir bilgisayar var. Hard diski bomboş. Ben buna c++ kurup programlama yapıp program yapacağım. Yani programlama dediğim ben c++'da komutu monitörden yazacağım işlemci yazılandan ilgili binary kodunu anlayacak, ilgili devre yoluna elektrik alıp komutu işltecek ve işlemi yapacak.

Peki mesela ben bu bilgisayarın hard diskine c++'ın kendini kurup çalışır hale getirmesini nasıl sağlıyorum? Yani atıyorum c++'ı en başta nasıl oluşturdular binary sistemine göre?

Yani misal ben klavyemden a harfine basıyorum, cpu sinyalden inputu alıyor içinde işleyip monitöre output ediyor ve ekranda a görüyorum. bir nevi msdos'a dönüş gibiş oldu. Bilgisayarın yaptığı olayı klavye ve mous eile kullanıcıya kontrol vererek düzenleme gibi. Peki bu sistemden bir c++ gibi programa yazılımı nasıl oluşturuluyor?

Bir de videoda diyorki bilgisayar karşılaştır komutu alır diyor. 1. ve 2. input'a bakar 1. input için büyük ya da küçük bayrağını ykar diyor. Eşitse eşit bayrağını yakar diyor. Buna gör kontrol ünitesi bir sonraki komutu uygular diyor. Peki mesela bu devre sistemi içinde büyük,eşittir gibi bayraklar nasıl yakılıyor, naısl aygılanıyor. Yani mesela devrenin o ilgili ısmı ikiye ayrılıyor. Soldaki büyükse sonuçta sağdaki kısımdan daha çok transistör/anahtar açık bırakılıyor, eşitse sol ve sağda aynı sayıda anahtar açık bırakılıyor buna göre de kontrol elemanı açık kapalı anahtar sayısını değerlendiriyor/açık kapalı anahtarlardan gelen elektirk gücünü kıyaslıyor ona göre de "ha bu büyük, bu küçük bunlar eşit" mi diyor? Böyle midir?

Şimdi bu çeşitlilikte işleri yapabilmek için muazzam bir devre ve onun üzerind emilyon belki milyar tane transistör lazım.

Bunu hangi insanlar bu karmaşıklıkta tasarlayabiliyor? Bunu yapan insan olamaz..

Bu kadar büyük ver karmaşık bir devre ve milyonlarca transistörü ve bunların arasındaki milyarlarca devre yani elektrik yolunu tırnak kadar şeye nasıl sığdırıyorlar? Bunu yapan insan olamaz..

Yahu bu nasıl bir ekstrem sistemdir böyle. Bunu icat eden, bu günlere getiren insan zekası, insanoğlu nasıl hala dinle/imanla ülke yönetmeye çalışır, savaş yapar, onu bunu öldürür, ideoloji uğruna dünyaya düşman olur anlamak mümkün değil. Bu sistemi bir başka uzaylı türü yapmış olsa , insan "vay be bunlar evreni yönetiyorlardır" gibi düşünceye kapılırdı. Ama o kadar zekamıza ve gelişmişliğimize rağmen sürekli didişip kendimize ve dünyaya zarar verme konusunda primatlardan çok da farklı değiliz.
http://tiraskeyfim.blogspot.com/  
http://saklinotalar.blogspot.com/
WWW
Cevapla
#6
349026
Cevapla
#7
Aklıma takılan çok şey olur benimde böyle ama bazen de saçmalarım(lise örneğini vereyim):
Trigonometri, türev-integral, limit vs. gibi matematik konularında akla gelen soru,
-Hocaaam bu bizim gerçek hayatta ne işimize yarayacak?? Big GrinBig Grin
Hiç bir şey ummuyorum,
hiç bir şeyden korkmuyorum,
özgürüm..
Zorba
Cevapla
#8
takipteyim. ne çıkacak çok merak içindeyim.
Cevapla
#9
Bende meraktayımHuh
Cevapla
#10
(14/04/2013, Saat: 20:41)ihtilaf Adlı Kullanıcıdan Alıntı: 349026

Big GrinBig GrinBig Grin
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Klasik gitarlardan anlayan komşularım tavsiyelerinize ihtiyacım var. kirli sakal 5 1,197 23/01/2017, Saat: 22:09
Son Yorum: caneser
  Bilgisayar Oyunları tugruldogan 58 26,711 26/11/2015, Saat: 22:50
Son Yorum: Arif
  Bilgisayar için hoparlör tavsiyesi Viyaduk 12 9,449 29/05/2014, Saat: 04:46
Son Yorum: Viyaduk
  Doğal Taşlardan Anlayan Var mı? tamer26 6 4,894 01/05/2013, Saat: 17:42
Son Yorum: tamer26
  Günün kaç saatini internet/bilgisayar karşısında geçiriyorsunuz? Lord Sparhawk 15 11,176 14/08/2012, Saat: 16:20
Son Yorum: linguist



Konuyu Okuyanlar: 1 Ziyaretçi