Publication:
Elastik: Çok-Çekirdekli Mimarilere Yönelik Katmanlar arası Güvenilirlik Optimizasyon Sistemi

Loading...
Thumbnail Image

Date

2016-01-10

Authors

Journal Title

Journal ISSN

Volume Title

Publisher

Research Projects

Organizational Units

Journal Issue

Abstract

Modern mimariler küçülen transistör boyutları ve yüksek frekanslara bağlı olarak geçici hatalara karşı savunmasızdır. Özellikle önbellek yapıları yüksek transistör yoğunluğundan dolayı geçici hatalara karşı daha savunmasızdır. Tüm önbellek yapıları için seçici olmaksızın koruma sağlamak, performans ve enerji tüketimi yönünden önemli bir ek yük getirir. Bu nedenle, bu proje kapsamında performans ve enerji kısıtları altında yeterli ek donanım kullanan ve sistemin güvenilirlik ihtiyacını karşılayan asimetrik olarak güvenilir önbelleklere sahip çok çekirdekli bir sistem önerilmiştir. Güvenilirlik eniyilemeyi hedefleyen bu sistemimiz, L1 önbellek yapılarında ECC korumasına sahip en az bir yüksek güvenilirlikli çekirdek ve hiçbir korumaya sahip olmayan düşük güvenilirlikli çekirdeklerden oluşmaktadır. Uygulama threadleri, kritik veri kullanımını esas alan güvenilirlik değerlerine göre farklı çekirdeklere eşlenmektedir. Kritik verileri kullanan kod bölümleri, yüksek güvenilirlikli çekirdekte yürütülürken, kritik olmayan verileri içeren kod bölümleri, düşük güvenilirlikli çekirdekler üzerinde yürütülür. Sistemimizde, güvenilirlik temelli kritik kod bölgeleri, yürütme zamanı yüzdeleri ve programın çağrı grafiğini statik olarak inceleyerek çıkarılan yüksek öncelikli fonksiyonlar olarak iki şekilde ele alınmıştır. Güvenilirlik temelli kritik kod bölümleri çalıştıran uygulama threadleri dinamik olarak korunan çekirdeğe eşlenirken, kritik olmayan bölümleri çalıştıran threadler korunmasız olanlara eşlenir. Yapılan tüm deneylerde seçilmiş uygulamalar için önerilen tekniklerimizin geleneksel güvenilirliği olmayan önbelleklere kıyasla ortalama performans ve enerji yükü ile güvenilirliği artırdığı gözlemlenmiştir. Projenin bir parçası olarak, uygulama threadlerinin yüksek güvenilirlikli çekirdeğe atanması için çeşitli çizelgeleme algoritmaları kullanılmıştır. İlk aşamada First Come First Served (FCFS) tabanlı bir çizelgeleme algoritması kullanılırken, projenin daha sonraki aşamalarında öncelik vermeye dayalı yöntemler ve eşit-zaman geçirmeye dayalı çizelgeleme yöntemleri sunulmuş ve gerçeklenmiştir. Proje kapsamında, Network-on-Chip mimarileri için derleyici-destekli bir güvenilirlik yöntemi de sunulmuştur. Bu yöntem uygulamanın sadece belirli kısımlarına koruma sağlamakta ve derleyici ve donanım katmanlarında çalışmaktadır. Derleyici kısmı, programcıların hataya karşı korumalı olmasını istedikleri program kısımlarını işaretlemesine izin vermekte, işaretlenen verilere değerlerini sağlayan değişkenlerin tespit edilmesi için program dilimlemesi gerçekleştirmektedir. Donanım kısmı derleyiciden alınan bilgiyi kritik verilerin iletimini korumak için kullanmaktadır. Bu çalışmamızda, herhangi bir veriye isabet eden hatanın diğer değişkenler üzerinde hangi hızda yayıldığını ölçmeyi hedefleyen bir metriğin geliştirilmesi üzerinde de durulmuştur. Hata yayılma hızını tanımlayan metrik yardımı ile kritik verilerin belirlenmesinde ve bir problemin farklı çözümleri arasında güvenilirlik-etkin olanının seçilmesinde yararlanılabilecektir.
Modern architectures are vulnerable to soft errors due to shrinking transistor sizes and high frequencies. Cache structures in a multicore system are more vulnerable to soft errors due to high transistor density. Protecting all caches unselectively has notable overhead on performance and energy consumption. In this project, we propose asymmetrically reliable caches to supply reliability need of the system using sufficient additional hardware under the performance and energy constraints. In our reliability optimization framework, a chip multiprocessor is composed of at least one high reliability core which has ECC protection on its L1 cache, and a set of low reliability cores which have no protection on their L1 caches. Application threads are mapped on the different cores in terms of reliability based on their critical data usage. Code regions which utilize critical data are executed on the high reliability core, and the code regions that include non-critical data are executed on the low reliability cores. In our framework, reliability-based critical code regions are assumed as the high priority functions which are extracted by examining execution time percentages and call graph, statically. In this system, software threads which execute reliability-based critical code regions are mapped onto the protected cores, whereas the threads which execute non-critical regions are mapped to the unprotected ones, dynamically during the execution. Our framework benefits preserving reliabilitybased critical regions of the applications exclusively by providing notable power and cost savings with close performance and reliability values for a set of functions reported in experimental results. As part of the project, we propose and evaluate various scheduling algorithms for mapping the application threads on the protected cores. In our first approach, we started with a primitive scheduler which is based on First Come First Served (FCFS) policy. Different types of priority-based scheduling and equal-time based scheduling techniques are proposed and utilized in the later phases of the project. A compiler-enhanced reliability scheme for Network-on-Chip (NoC) architectures is proposed as part of the project. This scheme protects only certain parts of application and it works in both compiler and hardware layers. The compiler layer allows programmers to annotate the parts that they want to protect from soft errors, and performs program slicing to identify other variables which directly/indirectly assign values to the annotated parts. The hardware layer uses the information from the compiler layer to protect critical data transmissions on NoC which affect the annotated computation results. In this project, a metric is proposed to measure the propogation speed of an error on the other data structures / variables, in case of a soft error hits a data. The metric for error propogation speed can be used to identify the critical data and provide reliability-based selection among the different implementations of a given problem.

Description

Keywords

Bilgisayar Bilimleri, Donanım ve Mimari, Bilgisayar Bilimleri, Sibernitik, Bilgisayar Bilimleri, Yazılım Mühendisliği, Savunma Bilimleri

Citation