SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Programlanabilir 
DDRx Denetleyicileri 
Talha KABAKUŞ 
talha.kabakus@ibu.edu.tr 
2014
Ajanda 
● DRAM Organizasyonu 
● DDRx Denetleyicisi 
● PARDIS 
○ İstek İşlemcisi 
○ İşlem İşlemcisi 
○ Komut Lojiği 
● Değerlendirmeler 
● Sonuçlar 
● Kaynaklar
DRAM Organizasyonu 
● Güncel yüksek performans işlemciler 2 veya 4 
bağımsız hafıza denetleyicisine sahiptir. 
● Her bir hafıza denetleyicisinin kendisine tahsis 
edilmiş bir DDRx kanalı bulunmaktadır. 
● DRAM, yerellikten ve istek seviyesi paralellikten 
faydalanabilmek için kanallar, ranklar, banklar, 
satırlar ve sütunlar olarak organize edilmiştir. 
● Her kanal, paralel olarak erişebilecek ranklara 
sahiptir. Ranklar ise ortak veri ve adres yolunun 
paylaşılması için satırlar ve sütunlar olarak organize 
edilmiştir.
Örnek DRAM Organizasyonu
DDRx Denetleyicisi 
● Ön bellek alt sisteminden aldığı okuma/yazma isteklerini 
alıp, uygun DRAM komutlarını oluşturmaktadır. 
● Her bir okuma/yazma isteği, DRAM üzerinde bir satıra ait 
çoklu sütunlara erişim gerektirmektedir. Sütun erişimi 
öncesinde her bir satırın, satır arabelleğine activate 
komutu ile yüklenmesi gerekmektedir. 
● Aynı satıra yapılan ardışık erişimler düşük gecikmeye 
tabidir ve satır isabeti (row hit) olarak adlandırılır. 
● Satır kaybı (row miss) ise precharge komutu ile hafıza 
dizisinin ön dolumunu gerektirmektedir. Ön dolum için 
yeni satır, satır arabelleğine activate komutu ile 
yüklenmektedir.
PARDIS 
● Pardis (Programmable Architecture for the DDRx 
interfacing standards), son seviye önbellek 
denetleyicisinden istek kuyruğu adı verilen bir ilk giren ilk 
çıkar (FIFO) kuyruğu aracılığıyla okuma/yazma isteklerini 
alır ve işlemci-hafıza arasındaki veri iletişimini 
düzenleyen DDR3 komutları üretir. 
● Bu süreci birbirine sıkı bağlı 3 bileşen aracılığıyla 
gerçekleştirir: 
○ İstek İşlemcisi 
○ İşlem İstemcisi 
○ Komut Lojiği
Örnek Pardis Tabanlı Sistem Organizasyonu
1. İstek İşlemcisi 
● İstek işlemcisi, istek kuyruğundan sıradaki isteği çeker ve 
istek adresine yönelik DRAM koordinatları kanal, rank, 
bank, satır ve sütun numaraları olarak üretir. 
● Üretilen bu koordinatlar ile yeni bir DDRx işlemi oluşturur 
ve işlem kuyruğuna yerleştirir. 
● İstek işlemcisi, Pardis üzerindeki istekten hafıza işlemine 
yönelik dönüşümün ilk katmanıdır ve başlıca görevi DRAM 
adres haritama işlemini gerçekleştirilmesidir.
İstek İşlemcisi Mimarisi 
● İstek işlemcisi, ayrık komut ve veri hafızalarına barındıran 
16-bit indirgenmiş komut seti hesaplama (RISC) 
mimarisini sahiptir. 
● İstek işlemcisi adres yönlendirmesi için özelleşmiş veri 
türlerine, depolama yapılarına ve komutlara sahiptir. 
● İstek işlemcisinin komut seti mimarisi işaretsiz tamsayı ve 
istek olmak üzere iki veri türünü desteklemektedir. 
● İşlemci içindeki programcıya görünür olan veri yapıları 
mimari kayıtçıları, veri hafızası ve istek kuyruğudur. 
● İstek işlemcisi aritmetik mantık ünitesi (ALU), kontrol 
akışı, hafıza erişimi ve kuyruk erişimi olmak üzere 4 türde 
toplam 44 adet 32-bit komutu desteklemektedir.
İstek İşlemcisi Komut Set Mimarisi 
Komut Türü Komut 
ALU ADD, SUB, SLL, SRL, AND, OR, XOR, NOT 
Kontrol Akışı JMP, BEQ, BNEQ, BTQE 
Veri hafızası LOAD, STORE 
Kuyruk erişimi -R ve -T ile belirtilmiş bütün komutlar
İstek İşlemcisi Görev Katmanları 
1. İlk katmanda istek işlemcisi komut belleğinden komutu 
çeker. 
2. İkinci katmanda işlemci kontrol sinyallerini seçip çıkartmak 
için çekilmiş komutları çözümler, kayıt dosyasından 
işlenenleri (operandları) okur. Ve istek kuyruğundan sıradaki 
isteği çeker. 
3. Üçüncü katmanda 16-bit ALU işlemi veya eğer komut bir 
yükleme (load) veya depolama (store) komutu ise efektif 
adres hesaplama işlemi gerçekleştirilir. 
4. Yükleme (load) ve depolama (store) işlemleri dördüncü 
katmanda veri belleğine erişir. 
5. Son katmanda ise her bir komut kayıt dosyasına geri yazılır.
2. İşlem İşlemcisi 
● İşlem işlemcisi, her hafıza işleminin kaynak 
ihtiyaçlarını, zaman kısıtlarını kaydeder ve bu 
bilgileri kullanarak performans, enerji ve 
servis kalite hedeflerini gerçekleştirmek üzere 
DDRx komutları üretir. 
● Bu sebeple işlem işlemcisi, temel olarak komut 
zamanlama ve DRAM yenileme, güç yönetimi 
gibi görevlerde yer alır. 
● İşlem sürecinin sonucunda FIFO yapısındaki 
komut kuyruğuna komutlar yerleştirilir.
İşlem İşlemcisi Mimarisi 
● İşlem işlemcisi, ayrık komut ve veri hafızalarına barındıran 16-bit 
indirgenmiş komut seti hesaplama (RISC) mimarisini sahiptir. 
● İşlem işlemcisi, komut zamanlama, güç yönetimi, DRAM yenileme gibi 
hesaplama yükü ağır olan görevlerden sorumlu olduğundan istek 
işlemcisine göre daha güçlü bir komut seti mimarisine sahiptir. İşlem 
işlemcisi işlem ve komut olmak üzere iki ek veri türüne sahiptir. 
● İşlem işlemcisi ALU, kontrol akışı, hafıza erişimi, kesme işlemesi ve 
kuyruk erişimi için kullanılmak üzere 30 adet komutu desteklemektedir. 
● İşlemci ve kuyruk durumlarını saklamak için 64 programlanabilir sayaca 
sahiptir. Bir işlem iki temel alana sahiptir: sabit ve değişken anahtarlar. 
● Programcı bu alanları kullanarak işlem kuyruğu içinde arama 
yapabilmektedir. Kuyruk FIFO yapısında olduğundan dolayı arama 
sonucunda birden fazla sonuç bulunursa, işlemci en eski olanı ilk işlem 
sonucu olarak getirmektedir.
İşlem İşlemcisi Komut Set Mimarisi 
Komut Türü Komut 
ALU ADD, SUB, SLL, SRL, AND, OR, XOR, NOT 
Kontrol Akışı JMP, JR, RETI, BLT, BLSG, BMSK, BEQ, BNEQ, 
BTQE, BCQE 
Veri hafızası LOAD, STORE 
Kesme MFSR, SIC 
Kuyruk erişimi LTQ, CTQ, UTQ, SRT, LCQ, ICQ 
-C ile belirtilmiş bütün komutlar
İşlem İşlemcisi Görev Katmanları 
1. İlk aşamada işlemci 64 KB komut belleğinden sıradaki komutu çeker. 
2. İkinci aşamada işlemci komutu çözümler, genel ve özel amaçlı 
kayıtçıları okur ve özel amaçlı kesme kayıtçıları ayarlar. Pardis, 64 
adet programlanabilir sayaca sahiptir; bu sayaçların 32'sini süre 
ölçüm (timer) kesmeleri ve geriye kalan 32 tanesini ise karar 
vermede yardımcı olan istatistiki bilgileri tutmak için 
kullanmaktadır. 
3. Üçünçü aşamada 16-bit ALU işlemleri gerçekleştirilir ve paralelinde 
işlem kuyruğuna erişilir. 
4. Dördüncü aşamada komut kuyruğu ve veri belleği erişimi 
gerçekleştirilir. 
5. Son aşamada ise işlemci komut sonucunu kayıt dosyasına yazar.
3. Komut Lojiği 
● Komut lojiği oluşturulan komut akışını inceler ve komut 
kuyruğunun başındaki komutu – ve gerekliyse boşlukları (stall) 
– inceleyerek tüm DDRx zaman kısıtlamalarının 
karşılandığından emin olur ve her bir komut yayınını DDRx 
saati ile senkronize eder. 
● Komut lojiği bir komut seti mimarisi ile programlanabilir 
değildir; bununla beraber kontrol kayıtçıları ile her bir DDRx 
zaman kısıtının değerinin belirlenmesini sağlamaktadır. 
Böylelikle Pardis'in farklı sistemlere uyarlanabilmesi 
sağlanmaktadır. 
● Komut lojiği, maskeleme ve zamanlama tabloları ve 
tanımlanan zaman kısıtları için tahsis edilmiş geri sayma 
sayacından faydalanmaktadır.
Örnek Pardis Gerçekleştirimi
Değerlendirmeler (1) 
● Gerçekleştirim algoritmalarına göre 
○ FCFS: First Come, First Served 
○ FR-FCFS: First Ready, First Come, First Served 
○ Par-BS: Parallelism Aware Batch Scheduler 
○ TCMS: Thred Cluster Memory Scheduling 
%5-8 arasında performans kaybı
Değerlendirmeler (2) 
(a) Adres haritalama 
(b) Yenileme yönetimi 
(c) Enerji tüketimi 
(d) Güç yönetimi 
%4-5 arasında performans kaybı
Sonuçlar 
● Pardis, DRAM iç kaynaklarının programlanabilir ve yapılandırılabilir 
olmasını sağlayan ilk programlanabilir DRAM denetleyicisidir. 
● Pardis, işlemci-hafıza arasındaki veri iletişimini düzenleyen, optimize 
eden DDR3 komutları üretir. 
● Pardis yüksek seviye kullanılışlık ve kabul edilebilir düzeyde 
karmaşıklık için özelleşmiş donanım ile gömülü yazılım arasında kabul 
edilebilir bir iş yükü (gecikme, enerji tüketimi) sunmaktadır. 
● Pardis, istek ve işlem işlemlerini gömülü yazılımda, yapılandırılabilir 
zamanlama doğrulamasını ise donanımda gerçekleştirmektedir. 
● Programlanabilir denetleyici, hafıza kaynaklarını daha verimli bir 
şekilde kullanabilmek için uygulamalara özel kontrol politikaları 
tanımlanmasını sağlamaktadır. Aynı zamanda denetleyici gömülü 
yazılımının hata düzeltmelerinin, güncellemelerinin yapılmasına ve 
farklı komut zamanlayıcıların kullanılmasına imkan vermektedir.
Kaynaklar (1) 
1. Bojnordi, M. N., & Ipek, E. (2012). PARDIS : A Programmable Memory 
Controller for the DDRx Interfacing Standards, 00(c). 
2. Bojnordi, M. N., & Ipek, E. (2013). Programmable DDRx controllers. IEEE 
Micro, 33, 106–115. doi:10.1109/MM.2013.29 
3. DDR3 SDRAM Specification. (2010). JEDEC. Retrieved from http://www.jedec. 
org/standards-documents/docs/jesd-79-3d 
4. Hur, I., & Lin, C. (2008). A comprehensive approach to DRAM power 
management. In Proceedings - International Symposium on High-Performance 
Computer Architecture (pp. 315–316). doi:10.1109/HPCA.2008.4658648 
5. Kim, Y. K. Y., Papamichael, M., Mutlu, O., & Harchol-Balter, M. (2010). Thread 
Cluster Memory Scheduling: Exploiting Differences in Memory Access 
Behavior. Microarchitecture (MICRO), 2010 43rd Annual IEEE/ACM 
International Symposium on. doi:10.1109/MICRO.2010.51 
6. Mutlu, O., & Moscibroda, T. (2008). Parallelism-aware batch scheduling: 
Enhancing both performance and fairness of shared DRAM systems. In 
Proceedings - International Symposium on Computer Architecture (pp. 63– 
74). doi:10.1109/ISCA.2008.7
Kaynaklar (2) 
7. Rebeck, A. L. (1998). Memory Systems (p. 21). Retrieved from https://www.cs. 
duke.edu/courses/fall98/cps104/lectures/week10-l2/sld021.htm 
8. Rixner, S., Dally, W. J., Kapasi, U. J., Mattson, P., & Owens, J. D. (2000). 
Memory access scheduling. Proceedings of 27th International Symposium on 
Computer Architecture (IEEE Cat. No.RS00201). doi:10.1145/342001.339668 
9. Stuechelixz, J., Kaseridisx, D., Hunter, H. C., & Johnx, L. K. (2010). Elastic 
refresh: Techniques to mitigate refresh penalties in high density memory. In 
Proceedings of the Annual International Symposium on Microarchitecture, 
MICRO (pp. 375–384). doi:10.1109/MICRO.2010.22 
10. Zhang, Z. Z. Z., Zhu, Z. Z. Z., & Zhang, X. Z. X. (2000). A permutation-based 
page interleaving scheme to reduce row-buffer conflicts and exploit data 
locality. Proceedings 33rd Annual IEEE/ACM International Symposium on 
Microarchitecture. MICRO-33 2000. doi:10.1109/MICRO.2000.898056
TEŞEKKÜRLER...

Weitere ähnliche Inhalte

Andere mochten auch

Hands on Windows Azure
Hands on Windows AzureHands on Windows Azure
Hands on Windows AzureVitor Tomaz
 
TFS Agile Presenation v1.1
TFS Agile Presenation v1.1TFS Agile Presenation v1.1
TFS Agile Presenation v1.1Amitabh Barua
 
Thread-safe .NET durch Immutables
Thread-safe .NET durch ImmutablesThread-safe .NET durch Immutables
Thread-safe .NET durch ImmutablesRobin Sedlaczek
 
Mobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio TeamsMobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio TeamsPerfecto by Perforce
 
Presentación 14
Presentación 14Presentación 14
Presentación 14Azul AO
 
Looper case study
Looper case studyLooper case study
Looper case studynBrownie
 
Team Foundation Server 2012 Reporting
Team Foundation Server 2012 ReportingTeam Foundation Server 2012 Reporting
Team Foundation Server 2012 ReportingSteve Lange
 
Team Foundation Server - Tracking & Reporting
Team Foundation Server - Tracking & ReportingTeam Foundation Server - Tracking & Reporting
Team Foundation Server - Tracking & ReportingSteve Lange
 

Andere mochten auch (12)

Instrumentacion
InstrumentacionInstrumentacion
Instrumentacion
 
Hands on Windows Azure
Hands on Windows AzureHands on Windows Azure
Hands on Windows Azure
 
TFS Agile Presenation v1.1
TFS Agile Presenation v1.1TFS Agile Presenation v1.1
TFS Agile Presenation v1.1
 
Thread-safe .NET durch Immutables
Thread-safe .NET durch ImmutablesThread-safe .NET durch Immutables
Thread-safe .NET durch Immutables
 
Mobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio TeamsMobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio Teams
 
Jyotish Shastri
Jyotish ShastriJyotish Shastri
Jyotish Shastri
 
Presentación 14
Presentación 14Presentación 14
Presentación 14
 
Mv questionnaire 1
Mv questionnaire 1Mv questionnaire 1
Mv questionnaire 1
 
Candiani poster sif_
Candiani poster sif_Candiani poster sif_
Candiani poster sif_
 
Looper case study
Looper case studyLooper case study
Looper case study
 
Team Foundation Server 2012 Reporting
Team Foundation Server 2012 ReportingTeam Foundation Server 2012 Reporting
Team Foundation Server 2012 Reporting
 
Team Foundation Server - Tracking & Reporting
Team Foundation Server - Tracking & ReportingTeam Foundation Server - Tracking & Reporting
Team Foundation Server - Tracking & Reporting
 

Ähnlich wie Programlanabilir DDRx Denetleyicileri

Ähnlich wie Programlanabilir DDRx Denetleyicileri (20)

İşlemciler
İşlemcilerİşlemciler
İşlemciler
 
CEIT 253
CEIT 253CEIT 253
CEIT 253
 
CEIT 253
CEIT 253CEIT 253
CEIT 253
 
CEIT 253
CEIT 253CEIT 253
CEIT 253
 
Ram Bellekler
Ram BelleklerRam Bellekler
Ram Bellekler
 
İşlemciler
İşlemciler İşlemciler
İşlemciler
 
64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi
 
Eki̇m
Eki̇mEki̇m
Eki̇m
 
Donanım Sunusu - 5
Donanım Sunusu - 5Donanım Sunusu - 5
Donanım Sunusu - 5
 
İşlemciler
İşlemcilerİşlemciler
İşlemciler
 
RAM Sunumu
RAM SunumuRAM Sunumu
RAM Sunumu
 
Sistem3
Sistem3Sistem3
Sistem3
 
Ceit358 proje
Ceit358 projeCeit358 proje
Ceit358 proje
 
PIC Programlama, Assembly ve Komutlar
PIC Programlama, Assembly ve KomutlarPIC Programlama, Assembly ve Komutlar
PIC Programlama, Assembly ve Komutlar
 
Yönlendi̇rme sunu
Yönlendi̇rme sunuYönlendi̇rme sunu
Yönlendi̇rme sunu
 
Assembly for Hackers
Assembly for HackersAssembly for Hackers
Assembly for Hackers
 
Donanım Sunusu - 6
Donanım Sunusu - 6Donanım Sunusu - 6
Donanım Sunusu - 6
 
Bellekler
BelleklerBellekler
Bellekler
 
Java, android ve arduino ile gömülü programlama
Java, android ve arduino ile gömülü programlamaJava, android ve arduino ile gömülü programlama
Java, android ve arduino ile gömülü programlama
 
Exadata Performance Notes
Exadata Performance NotesExadata Performance Notes
Exadata Performance Notes
 

Mehr von Talha Kabakus

Abant İzzet Baysal Üniversitesi Lisansüstü Programlara Başvuru Ön Kayit Sistemi
Abant İzzet Baysal Üniversitesi Lisansüstü Programlara Başvuru Ön Kayit SistemiAbant İzzet Baysal Üniversitesi Lisansüstü Programlara Başvuru Ön Kayit Sistemi
Abant İzzet Baysal Üniversitesi Lisansüstü Programlara Başvuru Ön Kayit SistemiTalha Kabakus
 
Web Saldırı Teknikleri & Korunma Yöntemleri
Web Saldırı Teknikleri & Korunma YöntemleriWeb Saldırı Teknikleri & Korunma Yöntemleri
Web Saldırı Teknikleri & Korunma YöntemleriTalha Kabakus
 
Android Malware Detection Mechanisms
Android Malware Detection MechanismsAndroid Malware Detection Mechanisms
Android Malware Detection MechanismsTalha Kabakus
 
Android Kötücül Yazılım (Malware) Tespit Mekanizmaları
Android Kötücül Yazılım (Malware) Tespit MekanizmalarıAndroid Kötücül Yazılım (Malware) Tespit Mekanizmaları
Android Kötücül Yazılım (Malware) Tespit MekanizmalarıTalha Kabakus
 
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi v.2
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi v.2Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi v.2
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi v.2Talha Kabakus
 
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt SistemiAbant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt SistemiTalha Kabakus
 
OSI Veri Bağı Katmanı
OSI Veri Bağı KatmanıOSI Veri Bağı Katmanı
OSI Veri Bağı KatmanıTalha Kabakus
 
Google Arama Motorunda Matrislerin Önemi
Google Arama Motorunda Matrislerin ÖnemiGoogle Arama Motorunda Matrislerin Önemi
Google Arama Motorunda Matrislerin ÖnemiTalha Kabakus
 
Görüntü i̇şlemede makine öğrenme teknikleri
Görüntü i̇şlemede makine öğrenme teknikleriGörüntü i̇şlemede makine öğrenme teknikleri
Görüntü i̇şlemede makine öğrenme teknikleriTalha Kabakus
 
ID3 Algorithm & ROC Analysis
ID3 Algorithm & ROC AnalysisID3 Algorithm & ROC Analysis
ID3 Algorithm & ROC AnalysisTalha Kabakus
 

Mehr von Talha Kabakus (11)

Abant İzzet Baysal Üniversitesi Lisansüstü Programlara Başvuru Ön Kayit Sistemi
Abant İzzet Baysal Üniversitesi Lisansüstü Programlara Başvuru Ön Kayit SistemiAbant İzzet Baysal Üniversitesi Lisansüstü Programlara Başvuru Ön Kayit Sistemi
Abant İzzet Baysal Üniversitesi Lisansüstü Programlara Başvuru Ön Kayit Sistemi
 
Web Saldırı Teknikleri & Korunma Yöntemleri
Web Saldırı Teknikleri & Korunma YöntemleriWeb Saldırı Teknikleri & Korunma Yöntemleri
Web Saldırı Teknikleri & Korunma Yöntemleri
 
Android Malware Detection Mechanisms
Android Malware Detection MechanismsAndroid Malware Detection Mechanisms
Android Malware Detection Mechanisms
 
Android Kötücül Yazılım (Malware) Tespit Mekanizmaları
Android Kötücül Yazılım (Malware) Tespit MekanizmalarıAndroid Kötücül Yazılım (Malware) Tespit Mekanizmaları
Android Kötücül Yazılım (Malware) Tespit Mekanizmaları
 
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi v.2
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi v.2Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi v.2
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi v.2
 
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt SistemiAbant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi
Abant İzzet Baysal Üniversitesi Enstitü Ön Kayıt Sistemi
 
Atlassian JIRA
Atlassian JIRAAtlassian JIRA
Atlassian JIRA
 
OSI Veri Bağı Katmanı
OSI Veri Bağı KatmanıOSI Veri Bağı Katmanı
OSI Veri Bağı Katmanı
 
Google Arama Motorunda Matrislerin Önemi
Google Arama Motorunda Matrislerin ÖnemiGoogle Arama Motorunda Matrislerin Önemi
Google Arama Motorunda Matrislerin Önemi
 
Görüntü i̇şlemede makine öğrenme teknikleri
Görüntü i̇şlemede makine öğrenme teknikleriGörüntü i̇şlemede makine öğrenme teknikleri
Görüntü i̇şlemede makine öğrenme teknikleri
 
ID3 Algorithm & ROC Analysis
ID3 Algorithm & ROC AnalysisID3 Algorithm & ROC Analysis
ID3 Algorithm & ROC Analysis
 

Programlanabilir DDRx Denetleyicileri

  • 1. Programlanabilir DDRx Denetleyicileri Talha KABAKUŞ talha.kabakus@ibu.edu.tr 2014
  • 2. Ajanda ● DRAM Organizasyonu ● DDRx Denetleyicisi ● PARDIS ○ İstek İşlemcisi ○ İşlem İşlemcisi ○ Komut Lojiği ● Değerlendirmeler ● Sonuçlar ● Kaynaklar
  • 3. DRAM Organizasyonu ● Güncel yüksek performans işlemciler 2 veya 4 bağımsız hafıza denetleyicisine sahiptir. ● Her bir hafıza denetleyicisinin kendisine tahsis edilmiş bir DDRx kanalı bulunmaktadır. ● DRAM, yerellikten ve istek seviyesi paralellikten faydalanabilmek için kanallar, ranklar, banklar, satırlar ve sütunlar olarak organize edilmiştir. ● Her kanal, paralel olarak erişebilecek ranklara sahiptir. Ranklar ise ortak veri ve adres yolunun paylaşılması için satırlar ve sütunlar olarak organize edilmiştir.
  • 5. DDRx Denetleyicisi ● Ön bellek alt sisteminden aldığı okuma/yazma isteklerini alıp, uygun DRAM komutlarını oluşturmaktadır. ● Her bir okuma/yazma isteği, DRAM üzerinde bir satıra ait çoklu sütunlara erişim gerektirmektedir. Sütun erişimi öncesinde her bir satırın, satır arabelleğine activate komutu ile yüklenmesi gerekmektedir. ● Aynı satıra yapılan ardışık erişimler düşük gecikmeye tabidir ve satır isabeti (row hit) olarak adlandırılır. ● Satır kaybı (row miss) ise precharge komutu ile hafıza dizisinin ön dolumunu gerektirmektedir. Ön dolum için yeni satır, satır arabelleğine activate komutu ile yüklenmektedir.
  • 6. PARDIS ● Pardis (Programmable Architecture for the DDRx interfacing standards), son seviye önbellek denetleyicisinden istek kuyruğu adı verilen bir ilk giren ilk çıkar (FIFO) kuyruğu aracılığıyla okuma/yazma isteklerini alır ve işlemci-hafıza arasındaki veri iletişimini düzenleyen DDR3 komutları üretir. ● Bu süreci birbirine sıkı bağlı 3 bileşen aracılığıyla gerçekleştirir: ○ İstek İşlemcisi ○ İşlem İstemcisi ○ Komut Lojiği
  • 7. Örnek Pardis Tabanlı Sistem Organizasyonu
  • 8. 1. İstek İşlemcisi ● İstek işlemcisi, istek kuyruğundan sıradaki isteği çeker ve istek adresine yönelik DRAM koordinatları kanal, rank, bank, satır ve sütun numaraları olarak üretir. ● Üretilen bu koordinatlar ile yeni bir DDRx işlemi oluşturur ve işlem kuyruğuna yerleştirir. ● İstek işlemcisi, Pardis üzerindeki istekten hafıza işlemine yönelik dönüşümün ilk katmanıdır ve başlıca görevi DRAM adres haritama işlemini gerçekleştirilmesidir.
  • 9. İstek İşlemcisi Mimarisi ● İstek işlemcisi, ayrık komut ve veri hafızalarına barındıran 16-bit indirgenmiş komut seti hesaplama (RISC) mimarisini sahiptir. ● İstek işlemcisi adres yönlendirmesi için özelleşmiş veri türlerine, depolama yapılarına ve komutlara sahiptir. ● İstek işlemcisinin komut seti mimarisi işaretsiz tamsayı ve istek olmak üzere iki veri türünü desteklemektedir. ● İşlemci içindeki programcıya görünür olan veri yapıları mimari kayıtçıları, veri hafızası ve istek kuyruğudur. ● İstek işlemcisi aritmetik mantık ünitesi (ALU), kontrol akışı, hafıza erişimi ve kuyruk erişimi olmak üzere 4 türde toplam 44 adet 32-bit komutu desteklemektedir.
  • 10. İstek İşlemcisi Komut Set Mimarisi Komut Türü Komut ALU ADD, SUB, SLL, SRL, AND, OR, XOR, NOT Kontrol Akışı JMP, BEQ, BNEQ, BTQE Veri hafızası LOAD, STORE Kuyruk erişimi -R ve -T ile belirtilmiş bütün komutlar
  • 11. İstek İşlemcisi Görev Katmanları 1. İlk katmanda istek işlemcisi komut belleğinden komutu çeker. 2. İkinci katmanda işlemci kontrol sinyallerini seçip çıkartmak için çekilmiş komutları çözümler, kayıt dosyasından işlenenleri (operandları) okur. Ve istek kuyruğundan sıradaki isteği çeker. 3. Üçüncü katmanda 16-bit ALU işlemi veya eğer komut bir yükleme (load) veya depolama (store) komutu ise efektif adres hesaplama işlemi gerçekleştirilir. 4. Yükleme (load) ve depolama (store) işlemleri dördüncü katmanda veri belleğine erişir. 5. Son katmanda ise her bir komut kayıt dosyasına geri yazılır.
  • 12. 2. İşlem İşlemcisi ● İşlem işlemcisi, her hafıza işleminin kaynak ihtiyaçlarını, zaman kısıtlarını kaydeder ve bu bilgileri kullanarak performans, enerji ve servis kalite hedeflerini gerçekleştirmek üzere DDRx komutları üretir. ● Bu sebeple işlem işlemcisi, temel olarak komut zamanlama ve DRAM yenileme, güç yönetimi gibi görevlerde yer alır. ● İşlem sürecinin sonucunda FIFO yapısındaki komut kuyruğuna komutlar yerleştirilir.
  • 13. İşlem İşlemcisi Mimarisi ● İşlem işlemcisi, ayrık komut ve veri hafızalarına barındıran 16-bit indirgenmiş komut seti hesaplama (RISC) mimarisini sahiptir. ● İşlem işlemcisi, komut zamanlama, güç yönetimi, DRAM yenileme gibi hesaplama yükü ağır olan görevlerden sorumlu olduğundan istek işlemcisine göre daha güçlü bir komut seti mimarisine sahiptir. İşlem işlemcisi işlem ve komut olmak üzere iki ek veri türüne sahiptir. ● İşlem işlemcisi ALU, kontrol akışı, hafıza erişimi, kesme işlemesi ve kuyruk erişimi için kullanılmak üzere 30 adet komutu desteklemektedir. ● İşlemci ve kuyruk durumlarını saklamak için 64 programlanabilir sayaca sahiptir. Bir işlem iki temel alana sahiptir: sabit ve değişken anahtarlar. ● Programcı bu alanları kullanarak işlem kuyruğu içinde arama yapabilmektedir. Kuyruk FIFO yapısında olduğundan dolayı arama sonucunda birden fazla sonuç bulunursa, işlemci en eski olanı ilk işlem sonucu olarak getirmektedir.
  • 14. İşlem İşlemcisi Komut Set Mimarisi Komut Türü Komut ALU ADD, SUB, SLL, SRL, AND, OR, XOR, NOT Kontrol Akışı JMP, JR, RETI, BLT, BLSG, BMSK, BEQ, BNEQ, BTQE, BCQE Veri hafızası LOAD, STORE Kesme MFSR, SIC Kuyruk erişimi LTQ, CTQ, UTQ, SRT, LCQ, ICQ -C ile belirtilmiş bütün komutlar
  • 15. İşlem İşlemcisi Görev Katmanları 1. İlk aşamada işlemci 64 KB komut belleğinden sıradaki komutu çeker. 2. İkinci aşamada işlemci komutu çözümler, genel ve özel amaçlı kayıtçıları okur ve özel amaçlı kesme kayıtçıları ayarlar. Pardis, 64 adet programlanabilir sayaca sahiptir; bu sayaçların 32'sini süre ölçüm (timer) kesmeleri ve geriye kalan 32 tanesini ise karar vermede yardımcı olan istatistiki bilgileri tutmak için kullanmaktadır. 3. Üçünçü aşamada 16-bit ALU işlemleri gerçekleştirilir ve paralelinde işlem kuyruğuna erişilir. 4. Dördüncü aşamada komut kuyruğu ve veri belleği erişimi gerçekleştirilir. 5. Son aşamada ise işlemci komut sonucunu kayıt dosyasına yazar.
  • 16. 3. Komut Lojiği ● Komut lojiği oluşturulan komut akışını inceler ve komut kuyruğunun başındaki komutu – ve gerekliyse boşlukları (stall) – inceleyerek tüm DDRx zaman kısıtlamalarının karşılandığından emin olur ve her bir komut yayınını DDRx saati ile senkronize eder. ● Komut lojiği bir komut seti mimarisi ile programlanabilir değildir; bununla beraber kontrol kayıtçıları ile her bir DDRx zaman kısıtının değerinin belirlenmesini sağlamaktadır. Böylelikle Pardis'in farklı sistemlere uyarlanabilmesi sağlanmaktadır. ● Komut lojiği, maskeleme ve zamanlama tabloları ve tanımlanan zaman kısıtları için tahsis edilmiş geri sayma sayacından faydalanmaktadır.
  • 18. Değerlendirmeler (1) ● Gerçekleştirim algoritmalarına göre ○ FCFS: First Come, First Served ○ FR-FCFS: First Ready, First Come, First Served ○ Par-BS: Parallelism Aware Batch Scheduler ○ TCMS: Thred Cluster Memory Scheduling %5-8 arasında performans kaybı
  • 19. Değerlendirmeler (2) (a) Adres haritalama (b) Yenileme yönetimi (c) Enerji tüketimi (d) Güç yönetimi %4-5 arasında performans kaybı
  • 20. Sonuçlar ● Pardis, DRAM iç kaynaklarının programlanabilir ve yapılandırılabilir olmasını sağlayan ilk programlanabilir DRAM denetleyicisidir. ● Pardis, işlemci-hafıza arasındaki veri iletişimini düzenleyen, optimize eden DDR3 komutları üretir. ● Pardis yüksek seviye kullanılışlık ve kabul edilebilir düzeyde karmaşıklık için özelleşmiş donanım ile gömülü yazılım arasında kabul edilebilir bir iş yükü (gecikme, enerji tüketimi) sunmaktadır. ● Pardis, istek ve işlem işlemlerini gömülü yazılımda, yapılandırılabilir zamanlama doğrulamasını ise donanımda gerçekleştirmektedir. ● Programlanabilir denetleyici, hafıza kaynaklarını daha verimli bir şekilde kullanabilmek için uygulamalara özel kontrol politikaları tanımlanmasını sağlamaktadır. Aynı zamanda denetleyici gömülü yazılımının hata düzeltmelerinin, güncellemelerinin yapılmasına ve farklı komut zamanlayıcıların kullanılmasına imkan vermektedir.
  • 21. Kaynaklar (1) 1. Bojnordi, M. N., & Ipek, E. (2012). PARDIS : A Programmable Memory Controller for the DDRx Interfacing Standards, 00(c). 2. Bojnordi, M. N., & Ipek, E. (2013). Programmable DDRx controllers. IEEE Micro, 33, 106–115. doi:10.1109/MM.2013.29 3. DDR3 SDRAM Specification. (2010). JEDEC. Retrieved from http://www.jedec. org/standards-documents/docs/jesd-79-3d 4. Hur, I., & Lin, C. (2008). A comprehensive approach to DRAM power management. In Proceedings - International Symposium on High-Performance Computer Architecture (pp. 315–316). doi:10.1109/HPCA.2008.4658648 5. Kim, Y. K. Y., Papamichael, M., Mutlu, O., & Harchol-Balter, M. (2010). Thread Cluster Memory Scheduling: Exploiting Differences in Memory Access Behavior. Microarchitecture (MICRO), 2010 43rd Annual IEEE/ACM International Symposium on. doi:10.1109/MICRO.2010.51 6. Mutlu, O., & Moscibroda, T. (2008). Parallelism-aware batch scheduling: Enhancing both performance and fairness of shared DRAM systems. In Proceedings - International Symposium on Computer Architecture (pp. 63– 74). doi:10.1109/ISCA.2008.7
  • 22. Kaynaklar (2) 7. Rebeck, A. L. (1998). Memory Systems (p. 21). Retrieved from https://www.cs. duke.edu/courses/fall98/cps104/lectures/week10-l2/sld021.htm 8. Rixner, S., Dally, W. J., Kapasi, U. J., Mattson, P., & Owens, J. D. (2000). Memory access scheduling. Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201). doi:10.1145/342001.339668 9. Stuechelixz, J., Kaseridisx, D., Hunter, H. C., & Johnx, L. K. (2010). Elastic refresh: Techniques to mitigate refresh penalties in high density memory. In Proceedings of the Annual International Symposium on Microarchitecture, MICRO (pp. 375–384). doi:10.1109/MICRO.2010.22 10. Zhang, Z. Z. Z., Zhu, Z. Z. Z., & Zhang, X. Z. X. (2000). A permutation-based page interleaving scheme to reduce row-buffer conflicts and exploit data locality. Proceedings 33rd Annual IEEE/ACM International Symposium on Microarchitecture. MICRO-33 2000. doi:10.1109/MICRO.2000.898056