<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pipeline Archives - Halil Durmus</title>
	<atom:link href="https://www.halildurmus.com/tag/pipeline/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.halildurmus.com/tag/pipeline/</link>
	<description>Official Website</description>
	<lastBuildDate>Mon, 22 Jun 2020 15:22:34 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.halildurmus.com/wp-content/uploads/2020/06/1-HalilDurmusRetina-150x150.png</url>
	<title>Pipeline Archives - Halil Durmus</title>
	<link>https://www.halildurmus.com/tag/pipeline/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Kodlar Nasıl Çalışır?</title>
		<link>https://www.halildurmus.com/2020/06/22/kodlar-nasil-calisir/</link>
					<comments>https://www.halildurmus.com/2020/06/22/kodlar-nasil-calisir/#comments</comments>
		
		<dc:creator><![CDATA[Halil Durmuş]]></dc:creator>
		<pubDate>Mon, 22 Jun 2020 15:22:32 +0000</pubDate>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Decode]]></category>
		<category><![CDATA[Execute]]></category>
		<category><![CDATA[Fetch]]></category>
		<category><![CDATA[İşlemci]]></category>
		<category><![CDATA[Kesme]]></category>
		<category><![CDATA[Pipeline]]></category>
		<category><![CDATA[WriteBack]]></category>
		<guid isPermaLink="false">https://www.halildurmus.com/?p=3717</guid>

					<description><![CDATA[<p>Bilgisayar kodu çok önemlidir. Kullandığınız hemen hemen her elektronik cihaz kodlar bağlıdır. İşlerin çalışma şekli oldukça kafa karıştırıcı görünebilir, ancak onu parçaladığınız da aslında basittir.Kod yapan kişilere programcı, kodlayıcı veya geliştirici denir. Hepsi web siteleri, uygulamalar ve hatta oyunlar oluşturmak için bilgisayarlarla çalışır. Kod Nedir? Her sayı veya harf bilgisayara&#160;belleğindeki bir&#160;şeyi değiştirmesini söyler&#160;.&#160;Bu bir sayı veya kelime veya [&#8230;]</p>
<p>The post <a href="https://www.halildurmus.com/2020/06/22/kodlar-nasil-calisir/">Kodlar Nasıl Çalışır?</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong>Bilgisayar kodu çok önemlidir. Kullandığınız hemen hemen her elektronik cihaz kodlar bağlıdır. İşlerin çalışma şekli oldukça kafa karıştırıcı görünebilir, ancak onu parçaladığınız da aslında basittir.Kod yapan kişilere programcı, kodlayıcı veya geliştirici denir. Hepsi web siteleri, uygulamalar ve hatta oyunlar oluşturmak için bilgisayarlarla çalışır</strong>.</p>



<h3 class="wp-block-heading">Kod Nedir?</h3>



<p>Her sayı veya harf bilgisayara&nbsp;belleğindeki bir&nbsp;şeyi değiştirmesini söyler&nbsp;.&nbsp;Bu bir sayı veya kelime veya bir resim veya videonun küçük bir parçası olabilir.&nbsp;Bilgisayarlar kendi başlarına nasıl bir şey yapılacağını bilmiyorlar.&nbsp;Onlara talimatlar vermek programcının görevidir. Makine kodunu öğrenmek mümkündür, ancak bu uzun zaman alacaktır.&nbsp;Neyse ki bilgisayarlarla iletişim kurmanın daha kolay bir yolu var.</p>



<h3 class="wp-block-heading">Programlama Dili Nedir?</h3>



<p></p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="670" height="116" src="https://www.halildurmus.com/wp-content/uploads/2020/06/442-python_hello_world_small.png" alt="" class="wp-image-3720" srcset="https://www.halildurmus.com/wp-content/uploads/2020/06/442-python_hello_world_small.png 670w, https://www.halildurmus.com/wp-content/uploads/2020/06/442-python_hello_world_small-300x52.png 300w" sizes="(max-width: 670px) 100vw, 670px" /></figure>



<p></p>



<p>Makine kodunu kullanmak yerine,&nbsp;Python&nbsp;programlama dilini kullanarak ekrana &#8220;Hello, world&#8221; yazdırır.</p>



<p><strong>Hemen hemen tüm programlama dilleri aynı şekilde çalışır:</strong></p>



<ol class="wp-block-list"><li>Ne&nbsp;yapacağınızı söylemek için&nbsp;kod&nbsp;yazıyorsunuz:</li><li>Kod&nbsp;derlenir&nbsp;ve bilgisayarın anlayabileceği makine koduna dönüştürür.</li><li>Bilgisayar&nbsp;kodu&nbsp;yürütür&nbsp;ve&nbsp;Merhaba, dünyayı&nbsp;bize geri&nbsp;yazar&nbsp;.</li></ol>



<p>Farklı programlama dilleri de var, ancak hepsi aynı şeyi yapıyor.&nbsp;Ne yapmak istediğinizi yazın,&nbsp;derleyici&nbsp;bilgisayarın anladığı dile çevirir(makine kodu), daha sonra bilgisayar bunu işler, programlama kod&nbsp;yürütme&nbsp;denir&nbsp;</p>



<h3 class="wp-block-heading">Kodlar Nasıl Çalışır?</h3>



<p>Bilgisayarda bir program çalıştırmak istendiğinde program kodlarını içeren dosya, sabit diskten (veya diğer kullanıcı hafızalardan) okunarak RAM üzerine alınır. Çalıştırılacak kodların  başlangıç adresi işlemci üzerindeki program sayacıya (PC-&gt;Program Counter) yüklenir. Sonrasında program sayıcının gösterdiği adresteki kod RAM&#8217;den alınarak kod kaydedicisine getirilir(Fetch). Burada kodlar sahip oldukları parametrelerinden (komut+adres/sayı) ayrılarak ALU için anlamlı komutlar haline getirilir(Decode). ALU kendisine gelen komutu icra ederek (Execute) komutunun gerektirdiği biçimiyle çıktısını ya kaydediciye ya  da RAM üzerine yazar(Write Back). Buraya kadar RAM üzerindeki bir kod çalıştırılmış oldu. Artık tüm bu işlemler sonunda program sayıcı bir sonraki çalıştırılacak kodun adresini göstermektedir.</p>



<p>Unutulmamalıdır ki her kodun uzunluğu bir değildir. Veri içeren kodlarla, içermeyen kodların hafızada kapladıkları alan bir değildir. Bu nedenle program sayıcı işletilen kodun büyüklüğü kadar artırılarak bir sonraki adresi gösterir. Bu işlemler bir sonraki komut için benzer şekilde devam ederek işletilmesi gereken komutlar bitene kadar sürer.  Aşağıda (solda) bu yapı ayrıntılı olarak gösterilmiştir.  Sağda ise genel hatları ile Getir-Çöz-Çalıştır-Yaz(Fetch-Decode-Execute-Write Back) çevrimi gösterilmiştir.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="808" height="471" src="https://www.halildurmus.com/wp-content/uploads/2020/06/441-Fetch-Decode-Execute-WriteBack.jpg" alt="" class="wp-image-3718" srcset="https://www.halildurmus.com/wp-content/uploads/2020/06/441-Fetch-Decode-Execute-WriteBack.jpg 808w, https://www.halildurmus.com/wp-content/uploads/2020/06/441-Fetch-Decode-Execute-WriteBack-300x175.jpg 300w, https://www.halildurmus.com/wp-content/uploads/2020/06/441-Fetch-Decode-Execute-WriteBack-768x448.jpg 768w" sizes="(max-width: 808px) 100vw, 808px" /></figure>



<p></p>



<p>ALU&#8217;nun işlem yapabilme kabiliyeti işlemcinin kaç bit işlemci olduğu ile alakalıdır. Örneğin ALU 32 bit iki sayıya aynı anda işleme alabiliyorsa o işlemci 32 bittir. Günümüzde ki işlemciler çoğunlukla 64 bittir.</p>



<p>Yukarıda bahsedildiği üzere komutların icra edilmesi 4 aşamada gerçekleşmektedir. İşlemciye herhangi bir kesme işareti geldiğinde bu görev execute çevriminden sonra icra edilir. Program Counter (PC) içerisindeki işletilme sırası kendinde olan adres saklanır ve kesme işaretinin gösterdiği adres PC&#8217;ye yüklenir. Kesmeye ait yordam kodları icra edildikten sonra önceki programa kalındığı yerden saklanan adresin PC&#8217;ye yüklenmesi ile devam edilir.</p>



<h5 class="wp-block-heading">Kesmeler sistemin çalışması sırasında acil çalıştırılması gereken kodların araya girme durumudur. Kesmeler donanım ve yazılım kesmeleri olarak ikiye ayrılırlar.</h5>



<p>İşlemci bir kodu çalıştırırken bahsedildiği üzere şu adımlar Fetch(F), Decode(D), Execute(E) ve WriteBack(WB) sırasıyla yerine getirilir.Eğer bir komutun icrası önceki komutun write back aşamasından sonra başlarsa burada zaman kayıpları oluşur. Çünkü işlemcinin örneğin fetch sırasında ALU çalışmaz boşta kalmış olur. Zaman kayıplarını önlemek için pipeline(kesintisiz iş akışı) denilen bir yapı kullanılır. Pipeline yapıya en uygun mimari RISC mimarisidir. Pipeline yapıda işlemcinin komut icrasında boşta kalan kaynakları, bir sonraki adımın işlemlerini yürütmek üzere tasarlanmıştır. Yani aynı anda işlemcinin boşta kalan tüm kaynakları kullanılmış olur. Bu kayıp aşağıda gösterilmiştir. Aşağıda iç akışını gösteren tablodan da anlaşılacağı üzere; pipeline olmayan yapıda 12 saat frekansında sadece üç komut icra edilirken, pipeline yapıda 3 komutun icrası 6 saat frekansında halledilir.</p>



<p></p>



<figure class="wp-block-image size-large"><img decoding="async" width="651" height="432" src="https://www.halildurmus.com/wp-content/uploads/2020/06/442-Pipeline-kesintisiz-iş-akışı.jpg" alt="" class="wp-image-3719" srcset="https://www.halildurmus.com/wp-content/uploads/2020/06/442-Pipeline-kesintisiz-iş-akışı.jpg 651w, https://www.halildurmus.com/wp-content/uploads/2020/06/442-Pipeline-kesintisiz-iş-akışı-300x199.jpg 300w" sizes="(max-width: 651px) 100vw, 651px" /></figure>



<p></p>



<p></p>



<p></p>



<p><strong>Kaynakça: <a href="https://interbilgi.com/kodlama-nedir-ve-nasil-calisir/">İnterbilgi</a>, <a href="https://medium.com/@selahattinunlu/cpu-assembly-programlama-dilleri-nas%C4%B1l-%C3%A7al%C4%B1%C5%9F%C4%B1r-b1633e42a201">Medium</a>, <a href="https://www.codeconquest.com/what-is-coding/how-does-coding-work/#:~:text=The%20short%20answer%20is%20that,it's%20not%20quite%20that%20simple.&amp;text=Binary%20code%20is%20the%20representation,8%20digits%20representing%208%20transistors.">Codeconquest</a>, <a href="https://www.makeuseof.com/tag/what-is-coding/">Makeuseof</a>, <a href="https://interestingengineering.com/code-literacy-why-coding-became-important">İnterestingEngineering</a></strong></p>



<p>Yaşar, E. (2018).Bilgisayar Donanımı. Bursa: Ekin Basım Yayın Dağıtım (61-63)</p>
<p>The post <a href="https://www.halildurmus.com/2020/06/22/kodlar-nasil-calisir/">Kodlar Nasıl Çalışır?</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.halildurmus.com/2020/06/22/kodlar-nasil-calisir/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
