[]

işlemci kodu nasıl anlıyor?
tamam yazdığımız şey makine koduna çevriliyor onu biliyoruz da, makine kodunu nasıl anlıyor? elimizde atıyorum 11010101011001 diye bir kod olsun. her ne kadar 1 0 da olsa sonuçta bu yazan şeyler sanal. sanal olan bir şey nasıl fiziksel devrelerin gerektiği gibi çalışmasını sağlıyor? olayın en temelini düşünün işte.

Komut girişi ve veri girişi var. Komut girişine, işlemci kaç bitlik ise o kadar bitte bir bakıyor. Yani 32 bit işlemci, 32 girişte bir kelime olacak şekilde ayarlı.
Veri girişi ise, yine 32 bit'te bir giren veriye, komut girişinde ona söylenen işlemi yapıyor.
Mevzunun en temeli bu.
Veri girişi ise, yine 32 bit'te bir giren veriye, komut girişinde ona söylenen işlemi yapıyor.
Mevzunun en temeli bu.
- alperz
(23.02.13 23:21:41)

yeterince temeli değil. 32 bit ise 32 bite bakıyor dedin mesela. fiziksel bir şey sanal bir şeyi nasıl inceliyor onu soruyorum ben.
- trinitrotoluen
(23.02.13 23:27:13)

Sanırım senin sorduğun 1 ve 0'ın farkını elektronik devrenin nasıl anladığı, her ne kadar bilgim kısıtlı olsa da 1 ve 0 o an devrede elektrik var veya yok olarak giriliyor.
- Haldamir
(23.02.13 23:27:25)

evet onu soruyorum aslında.
- trinitrotoluen
(23.02.13 23:31:05)

(bkz: combinatorial circuit)
(bkz: logic circuit)
İşlemci mimarisine göre çok değişkenlik gösterir. İşlemcide şunlar gibi mantık devreleri bulunur:
- 11. bit 1 ise ALU'yu aktive et. Ondan sonraki 4 bit ALU'nun hangi işlemi yapacağını belirlesin (0000 r1 + r2, 0001 r1 - r2, 0010 r1 & r2, vs), sonraki 3'er bit de hangi registerları kullanacağımızı belirlesin (000 eax, 001 ebx, vs)
Mesela böyle bir decoding mantığı, 010001000001 bitlerinden eax - ebx işlemini yapacaktır.
- 14., 17. ve 18. bitler 1'se memory'den bir şeyler almak gerekecek, eip'den adresi al, o adresden veriyi alıp 5-7 arasındaki bitlerdeki register'a koy.
- opcode 1010001100111000 ise bölme işlemini yapan finite state machine'e geç.
vs. Hepsini salladım. Ama mantık böyle, o bitlere göre işlemcinin bir sonraki state'ini belirleyen koca bir decoding devresi var işlemcide. O devre de yukarda saydığım gibi mantık yürüterek işlemcinin ne yapacağına karar veriyor.
(bkz: logic circuit)
İşlemci mimarisine göre çok değişkenlik gösterir. İşlemcide şunlar gibi mantık devreleri bulunur:
- 11. bit 1 ise ALU'yu aktive et. Ondan sonraki 4 bit ALU'nun hangi işlemi yapacağını belirlesin (0000 r1 + r2, 0001 r1 - r2, 0010 r1 & r2, vs), sonraki 3'er bit de hangi registerları kullanacağımızı belirlesin (000 eax, 001 ebx, vs)
Mesela böyle bir decoding mantığı, 010001000001 bitlerinden eax - ebx işlemini yapacaktır.
- 14., 17. ve 18. bitler 1'se memory'den bir şeyler almak gerekecek, eip'den adresi al, o adresden veriyi alıp 5-7 arasındaki bitlerdeki register'a koy.
- opcode 1010001100111000 ise bölme işlemini yapan finite state machine'e geç.
vs. Hepsini salladım. Ama mantık böyle, o bitlere göre işlemcinin bir sonraki state'ini belirleyen koca bir decoding devresi var işlemcide. O devre de yukarda saydığım gibi mantık yürüterek işlemcinin ne yapacağına karar veriyor.
- metalik
(23.02.13 23:35:08 ~ 23:37:26)

ben soruyu tam anlatamıyorum sanırım. bu da değil beklediğim cevap. siz işlemcinin çalışma mantığını anlattınız gibi. ama ben onu sormuyorum.
11. bit 1 ise ALU'yu aktive et dediniz. ben de şunu soruyorum, elimizde fiziksel bir yapı var. bu yapı bilgisayardan girilen "bit" dediğimiz kavramı nasıl anlıyor? 11. bit tamam 1; ama sanal bir kavram fiziksel olarak ne gibi bir etkileşim yapıyor da devrenin elektrik vermesini sağlıyor? daha da açıklayıcı anlatamıyorum ki :(
11. bit 1 ise ALU'yu aktive et dediniz. ben de şunu soruyorum, elimizde fiziksel bir yapı var. bu yapı bilgisayardan girilen "bit" dediğimiz kavramı nasıl anlıyor? 11. bit tamam 1; ama sanal bir kavram fiziksel olarak ne gibi bir etkileşim yapıyor da devrenin elektrik vermesini sağlıyor? daha da açıklayıcı anlatamıyorum ki :(
- trinitrotoluen
(23.02.13 23:52:12 ~ 23:53:42)

işlemci dediğin milyonlarca röleden oluşan bir yapı. Röle açıksa 1, kapalıysa 0 konumunda oluyor alet. Bu röleleri neyin açıp kapattığını mı soruyorsun?
- alperz
(24.02.13 00:09:47)

Her bit, fiziksel olarak bir voltaj değeri olarak saklanır. 0, 0 ve 1 3.3 veya 5V civarındadır. Bir yerde bit saklamak istediğinizde o voltaj değerini bir devreye uygun bir şekilde verirsiniz, o da saklar. Bir bit okumak istediğinizde o voltajı ölçersiniz, eğer yüksekse 1, düşükse 0 dersiniz.
Bu voltajlar, işlemcideki transistörlerin durumunu belirler. Mesela:
upload.wikimedia.org
Bu resimde her transistör NMOS türünden. Yani ortasından çıkan yere 0 seviyesine denk gelen bir voltaj verirseniz öbür iki ucu arasındaki bağlantıyı kesiyor. 1 bitine denk gelen bir voltaj verirseniz uçları arasında elektrik bağlantısı kuruyor. Transistörün (dijital açıdan) çalışma mantığı bu.
Bu devrede ise a veya b 0 olursa, 3. transistörün girişi ile toprak arasında bağlantı olmayacağı için 3. transistör input olarak yüksek bir voltaj (1) görecek. Bundan dolayı toprakla bağlantı sağlayıp 0 çıkaracak. Hem a hem b 1 olursa 3. transistör düşük voltaj görüp output'un yüksek bir değer (1) almasını sağlayacak.
Transistörleri bu ve daha karışık şekillerde dizerek 1-0 bitlerini, yani düşük ve yüksek voltajları manipüle edebilirsiniz, sistemden istediğiniz çıktıyı alabilirsiniz.
ALU örneğinde de ALU'nun bir transistörüne yüksek voltaj verirseniz, ALU'nun çıktısını işlemcinin kalanının görebileceği bir şekilde okunabilmesini sağlarsınız. Düşük voltaj (0) verirseniz, ALU'nun çıktısını çöpe atabilirsiniz, ALU'nun inputları okumasını engelleyebilirsiniz, ALU'nun gücünü kesebilirsiniz, vs.
Bu voltajlar, işlemcideki transistörlerin durumunu belirler. Mesela:
upload.wikimedia.org

Bu resimde her transistör NMOS türünden. Yani ortasından çıkan yere 0 seviyesine denk gelen bir voltaj verirseniz öbür iki ucu arasındaki bağlantıyı kesiyor. 1 bitine denk gelen bir voltaj verirseniz uçları arasında elektrik bağlantısı kuruyor. Transistörün (dijital açıdan) çalışma mantığı bu.
Bu devrede ise a veya b 0 olursa, 3. transistörün girişi ile toprak arasında bağlantı olmayacağı için 3. transistör input olarak yüksek bir voltaj (1) görecek. Bundan dolayı toprakla bağlantı sağlayıp 0 çıkaracak. Hem a hem b 1 olursa 3. transistör düşük voltaj görüp output'un yüksek bir değer (1) almasını sağlayacak.
Transistörleri bu ve daha karışık şekillerde dizerek 1-0 bitlerini, yani düşük ve yüksek voltajları manipüle edebilirsiniz, sistemden istediğiniz çıktıyı alabilirsiniz.
ALU örneğinde de ALU'nun bir transistörüne yüksek voltaj verirseniz, ALU'nun çıktısını işlemcinin kalanının görebileceği bir şekilde okunabilmesini sağlarsınız. Düşük voltaj (0) verirseniz, ALU'nun çıktısını çöpe atabilirsiniz, ALU'nun inputları okumasını engelleyebilirsiniz, ALU'nun gücünü kesebilirsiniz, vs.
- metalik
(24.02.13 00:27:13)

bir kişi mesaj atmıştı ve aşağı yukarı onun dediğini dediniz. ben yine bunu sormuyorum :( yazdığım aynı mesajı buraya yazayım
ortamda elektriğin varlığı durumunda(yani 1 geldiği durumda) kapılar/transistörler nasıl davranır onu söylediniz siz. orda bir sıkıntı yok zaten. çünkü zaten fiziksel ortamdayız. elektrik var, devre var. siz 5 voltu verirseniz devrenin tabii ki bir davranışı olur.
fiziksel bir şeyin(elektrik) fiziksel bir şeyi(devre elemanını) etkilemesini sormuyorum; sanal bir şeyin(1 0) fiziksel bir şeyi nasıl değiştirdiğini soruyorum. somut bir şey değil çünkü 1 ve 0. yok aslında onlar.
elektrik üzerinden gideceksek şöyle sormak daha doğru olacak: bilgisayardan girilen 1 değeri nasıl oluyor da gatelere girecek olan voltajı değiştiriyor? fiziksel bir sistem tarafından sanal bir şey nasıl algılanıyor?
edit: eşşeğin ziki deyip cevap vermeme hakkına sahipsiniz. alınmam :)
ortamda elektriğin varlığı durumunda(yani 1 geldiği durumda) kapılar/transistörler nasıl davranır onu söylediniz siz. orda bir sıkıntı yok zaten. çünkü zaten fiziksel ortamdayız. elektrik var, devre var. siz 5 voltu verirseniz devrenin tabii ki bir davranışı olur.
fiziksel bir şeyin(elektrik) fiziksel bir şeyi(devre elemanını) etkilemesini sormuyorum; sanal bir şeyin(1 0) fiziksel bir şeyi nasıl değiştirdiğini soruyorum. somut bir şey değil çünkü 1 ve 0. yok aslında onlar.
elektrik üzerinden gideceksek şöyle sormak daha doğru olacak: bilgisayardan girilen 1 değeri nasıl oluyor da gatelere girecek olan voltajı değiştiriyor? fiziksel bir sistem tarafından sanal bir şey nasıl algılanıyor?
edit: eşşeğin ziki deyip cevap vermeme hakkına sahipsiniz. alınmam :)
- trinitrotoluen
(24.02.13 00:34:23 ~ 00:43:15)

Dediğiniz gibi, 0 ve 1 diye bir şey yok. Bilgisayardan da 1 ve 0 diye bir şey gelmiyor zaten. Voltaj geliyor.
RAM'de bitler bir kapasitör üzerine saklanır, kapasitörde yük varsa uçları arasında voltaj vardır, o voltajı okuyup işlemciye gönderirsiniz.
Hard disk'te durum biraz farklı. Plate'lerin üzerinde ufak manyetik alanlar var. Bunun üzerinden bir coil geçirirseniz diskteki manyetik alanın yönüne göre yüksek veya düşük voltaj alırsınız. Sonra bu voltajları RAM'e gönderirsiniz, orada kapasitör üzerinde yine düşük veya yüksek voltaj olarak saklanır. Bu voltaj işlemciye gider, ordaki transistörleri açıp kapatır.
Bilgisayara USB mouse taktığınızda oradan 1 ve 0lar geçmez. Kablonun içinde bir yerden yüksek ve düşük voltajlar geçer.
Şu an bu sayfayı okurken ethernet kablonuzdan geçenler bit değil, voltaj değerleri.
Kısacası, aynen dediğiniz gibi 1 ve 0 diye bir şey yok. Sadece yüksek ve düşük voltaj var. Sadece biz insanlar için yüksek voltaj = 1, düşük voltaj = 0 demek kolay geliyor.
RAM'de bitler bir kapasitör üzerine saklanır, kapasitörde yük varsa uçları arasında voltaj vardır, o voltajı okuyup işlemciye gönderirsiniz.
Hard disk'te durum biraz farklı. Plate'lerin üzerinde ufak manyetik alanlar var. Bunun üzerinden bir coil geçirirseniz diskteki manyetik alanın yönüne göre yüksek veya düşük voltaj alırsınız. Sonra bu voltajları RAM'e gönderirsiniz, orada kapasitör üzerinde yine düşük veya yüksek voltaj olarak saklanır. Bu voltaj işlemciye gider, ordaki transistörleri açıp kapatır.
Bilgisayara USB mouse taktığınızda oradan 1 ve 0lar geçmez. Kablonun içinde bir yerden yüksek ve düşük voltajlar geçer.
Şu an bu sayfayı okurken ethernet kablonuzdan geçenler bit değil, voltaj değerleri.
Kısacası, aynen dediğiniz gibi 1 ve 0 diye bir şey yok. Sadece yüksek ve düşük voltaj var. Sadece biz insanlar için yüksek voltaj = 1, düşük voltaj = 0 demek kolay geliyor.
- metalik
(24.02.13 00:53:16)

neyse ben sorumun cevabını alabilecek gibi değilim. dayak yemeden kaçayım o yüzden :) ilginiz için teşekkürler yine de.
- trinitrotoluen
(24.02.13 01:20:05)

dugmeye basinca sen, o bir elektrik sinyaline cevrilir, sonra tekrar islemcide baska bir elektrige donusur, o elektrik tekrar ekrana yansir bir lcd yi isitir ve renk olusur.
bilgisayarda surekli devir daim yapan elektrik vardir sen dugemeye basinca sadece bunun akisini bozarsin ve bildigin program calisir. elektrik dedigim dusuk elektrik 5 volt en fazla.
durmadan yanip sonen alisveris merkezi dolduracak lambalar dusun belli duzenleri var ama cok kucultulmusler.
gordugun 0 ve 1 ler soyutlamadir 5 milayar lambayai idare edemeyecegin icin onece 0 ve 1 ler sonra if else ler falan icad oldu.
bilgisayarda surekli devir daim yapan elektrik vardir sen dugemeye basinca sadece bunun akisini bozarsin ve bildigin program calisir. elektrik dedigim dusuk elektrik 5 volt en fazla.
durmadan yanip sonen alisveris merkezi dolduracak lambalar dusun belli duzenleri var ama cok kucultulmusler.
gordugun 0 ve 1 ler soyutlamadir 5 milayar lambayai idare edemeyecegin icin onece 0 ve 1 ler sonra if else ler falan icad oldu.
- mazungu
(24.02.13 02:39:09 ~ 02:44:00)

Sanıyorum kavramlarla ilgili bir sıkıntı yaşıyorsun.
Aslında olaya başka bir açıdan bakabilirsin.
Sanal diye adlandırdığın ortam aslında pratikte salt elektrikten ibaret.
Sanal diye adlandırdığın her işlem pratikte bir elektrik gerilimi işte. Başka bir olay olduğu yok.
Kısacası aslolan sanalın yokluğu. Var olan tek şey elektrik diye düşün.
Verinin işlenmesinden tut da ekranda karşına gelmesine kadar olan süreçte her şeyin temeli elektrikte.
Aslında sanalın sözlük tanımı da bu durumu gayet güzel anlatıyor...
Gerçekte yeri olmayıp zihinde tasarlanan, mevhum, farazi, tahminî
Kavram olarak olayı sana daha net açıklaması için adamlar oturup bu süreçlerin bir bölümünde 'sanal' kelimesini kullanmışlar.
Eh bazen de kafa karıştırıcı olabiliyormuş bu durumdaki gibi :)
Halen kafan karışık ise 'sanal' diye adlandırdığın süreci somut olarak yazabilirsin.
Yani sanal olarak adlandırdığın bölüm, parça, işlem, vb her ne ise spesifik olarak tanımlarsan bunun üzerinden gidebiliriz.
Aslında olaya başka bir açıdan bakabilirsin.
Sanal diye adlandırdığın ortam aslında pratikte salt elektrikten ibaret.
Sanal diye adlandırdığın her işlem pratikte bir elektrik gerilimi işte. Başka bir olay olduğu yok.
Kısacası aslolan sanalın yokluğu. Var olan tek şey elektrik diye düşün.
Verinin işlenmesinden tut da ekranda karşına gelmesine kadar olan süreçte her şeyin temeli elektrikte.
Aslında sanalın sözlük tanımı da bu durumu gayet güzel anlatıyor...
Gerçekte yeri olmayıp zihinde tasarlanan, mevhum, farazi, tahminî
Kavram olarak olayı sana daha net açıklaması için adamlar oturup bu süreçlerin bir bölümünde 'sanal' kelimesini kullanmışlar.
Eh bazen de kafa karıştırıcı olabiliyormuş bu durumdaki gibi :)
Halen kafan karışık ise 'sanal' diye adlandırdığın süreci somut olarak yazabilirsin.
Yani sanal olarak adlandırdığın bölüm, parça, işlem, vb her ne ise spesifik olarak tanımlarsan bunun üzerinden gidebiliriz.
- velhasilkelam
(24.02.13 02:45:53)
1