Jump to content
Forum Kopalni Wiedzy
Sign in to follow this  
KopalniaWiedzy.pl

Procesor pod ochroną semantycznego strażnika

Recommended Posts

Akademicy z University of Michigan nie ustają w wysiłkach na rzecz udoskonalania układów scalonych. Przed niemal rokiem informowaliśmy o ich oprogramowaniu, które wyszukuje błędy w chipach i proponuje sposoby ich naprawy. Teraz czas na technologię, dzięki której unikniemy problemów z komputerem, w którym znalazł się wadliwy procesor.

Firmy produkujące układy scalone są w stanie wyłapać poważniejsze błędy. Ale niemożliwe jest sprawdzenie wszelkich rodzajów operacji, jakie może wykonywać procesor, dlatego też do klienta mogą trafić kości, które będą ulegały awariom w pewnych nietypowych sytuacjach.

Uczeni z University of Michigan chcą uchronić użytkowników przed tego typu niespodziankami dzięki wirtualnemu "płotowi", który zabezpieczy układ. Pomysł naukowców polega na zapisaniu w maleńkim monitorze dołączanym do układu scalonego informacji o wszystkich bezpiecznych scenariuszach jego wykorzystania. Te bezpieczne scenariusze to nic innego jak testy, które układ scalony przechodzi przed opuszczeniem fabryki. Podczas tych testów sprawdzanych jest co prawda stosunkowo niewiele konfiguracji procesora, ale są to takie konfiguracje, w których w praktyce układ znajduje się przez 99,9% swojego czasu pracy.

Zadaniem opracowanego przez University of Michigan zabezpieczenia, zwanego semantycznym strażnikiem (Semantic Guardian), jest reagowanie w momencie, gdy kość znajdzie się w nieprzetestowanej konfiguracji. Wówczas praca procesora jest spowalniana, przełączany jest on w "bezpieczny tryb". Innymi słowy, strażnik traktuje wszystkie nieprzetestowane konfiguracje jako stan potencjalnie niebezpieczny.

Valeria Bertacco, profesor na Wydziale Inżynierii Elektrycznej i Nauk Komputerowych, zapewnia: Użytkownik nawet nie zauważy, że procesor został przełączony w tryb bezpieczny. Będzie się to zdarzało rzadko i stan taki potrwa bardzo krótko, tak, by kość przeprowadzić przez nieznane terytorium. Później z powrotem przełączy się ona w zwykły tryb. Układ w trybie bezpiecznym wykonuje wszelkie zadane mu operacje, czyni to jednak wolniej. Pani profesor porównuje technologię do motocyklisty, który jadąc szosą trafia nagle na pełną dziur, polną drogę. Otrzymuje wówczas rower, dzięki któremu może bezpiecznie przejechać.

Co więcej technologia z Michigan może powstrzymać też przyszłe zagrożenie ze strony cyberprzestępców. Kris Kaspersky zapowiada, że podczas konferencji Hack in the Box zaprezentuje niezależny od systemu operacyjnego sposób ataku na błędy w układzie scalonym.

Share this post


Link to post
Share on other sites

Pomysl jest dobry, zwlaszcza ze aktualną tendencją jest zwiększanie ilości procesorów w pojedynczych maszynach.

System taki, jesli bylby zaimplementowany sprzetowo, bylby rzeczywiscie niezauwazalny, a systemom zapewnilby duzo bezpieczniejsza i stabilniejsza prace.

Share this post


Link to post
Share on other sites

Nie do końca rozumiem w jaki sposób przełączenie procesora w tryb bezpieczny może uchronić od wystąpienia błędów w działaniu gdy procesor jest uszkodzony.

Share this post


Link to post
Share on other sites

Błędy się pewnie pojawią, ale z mniejszą częstotliwością. Być może w trybie bezpiecznym/wolniejszym łatwiej jest te błędy skorelować. Znów analogia do motocyklisty i dziurawej drogi - jadąc wolniej, masz większe szanse, że po wpadnięciu w dołek/dziurę/błąd wyjedziesz z niego na motorze, a nie pod nim.

Tylko przydałoby się jeszcze w takim strażniku zaimplementować jakiś mechanizm uczenia się - jeśli jakąś operację w trybie bezpiecznym procesor wykona bezbłędnie, powinna ona zostać zaliczona do przetestowanych i bezpiecznych.

Share this post


Link to post
Share on other sites

Nie zgodzę się z tym ,że nie idzie przetestować "wszelkich rodzajów operacji, jakie może wykonywać procesor" - nie jest ich wcale tak dużo około 200 rozkazów niskopoziomowych na procek typu intel.Do tego dochodzą różne tryby adresowania ,czyli defakto nowy rozkaz.

 

Czym innym jest długie testowanie softwerowe procesora: obciążenie go na  najwyższych obrotach (działanie w stresie) ,sprawdzenie banków pamięci(cache),wielowątkowość,kolejkowanie it.p. od testowania sprzętowego czyli specjalna podstawka w którą go wkładamy i testujemy wszelkie układy we.\wyj.

Na pewno nie jest to tym samym co testowanie na naszej płycie głównej ,która może podawać mu za duże napięcie na rdzeń ,a poza tym może być tanią podrzędną płytą.

   

Share this post


Link to post
Share on other sites

Ale tu nie chodzi o testowanie wszystkich możliwych rozkazów procesora - jak sam wiesz nie jest ich za wiele. Ale dolicz do tego wszystkie instrukcje SSE itp.

 

Przeczytaj jeszcze raz o co konkretnie im chodziło:

Pomysł naukowców polega na zapisaniu w maleńkim monitorze dołączanym do układu scalonego informacji o wszystkich bezpiecznych scenariuszach jego wykorzystania. Te bezpieczne scenariusze to nic innego jak testy, które układ scalony przechodzi przed opuszczeniem fabryki. Podczas tych testów sprawdzanych jest co prawda stosunkowo niewiele konfiguracji procesora, ale są to takie konfiguracje, w których w praktyce układ znajduje się przez 99,9% swojego czasu pracy.

Share this post


Link to post
Share on other sites

Scenariusze wykorzystania to nie tylko rozkazy. Same rozkazy muszą być przetestowane w 100%. To także przerwania, stany na poszczególnych końcówkach układu. To także wykonywanie kilku rozkazów naraz na różnych etapach realizacji.

Także zapewne sposób zasilania, dopuszczalne zakresy wahania zasilania, temperatur pracy. Jest to dość dużo czynników.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By KopalniaWiedzy.pl
      Od dekad elastyczna elektronika była niewielką niszą. Teraz może być gotowa, by wejść do mainstream'u, stwierdził Rakesh Kumar, lider zespołu, który stworzył plastikowy procesor. O elektronice zintegrowanej w praktycznie każdym przedmiocie, od podkoszulków poprzez butelki po owoce, słyszymy od lat. Dotychczas jednak plany jej rozpowszechnienia są dalekie od realizacji, a na przeszkodzi stoi brak elastycznego, plastikowego, wydajnego i taniego procesora, który można by masowo produkować.
      Wiele przedsiębiorstw próbowało stworzyć takie urządzenie i im się nie udało. Według naukowców z amerykańskiego University of Illinois Urbana-Champaign i specjalistów z brytyjskiej firmy PragmatIC Semiconductor, problem w tym, że nawet najprostszy mikrokontroler jest zbyt złożony, by można go było masowo wytwarzać na plastikowym podłożu.
      Amerykańsko-brytyjski zespół zaprezentował właśnie uproszczony, ale w pełni funkcjonalny, plastikowy procesor, który można masowo produkować bardzo niskim kosztem. Przygotowano dwie wersje procesora: 4- i 8-bitową. Na substracie z 4-bitowymi układami, których koszt masowej produkcji liczyłby się dosłownie w groszach, działa 81% procesorów. To wystarczająco dobry wynik, by wdrożyć masową produkcję.
      Procesory wyprodukowano z cienkowarstwowego tlenku indowo-galowo-cynkowego (IGZO), dla którego podłożem był plastik. Innowacja polegała zaś na stworzeniu od podstaw nowej mikroarchitektury – Flexicore.Musiała być maksymalnie uproszczona, by sprawdziła się w na plastiku. Dlatego zdecydowano się na układy 4- i 8-bitowe zamiast powszechnie wykorzystywanych obecnie 16- i 32-bitowych. Naukowcy rozdzielili moduły pamięci przechowującej instrukcje od pamięci przechowującej dane. Zredukowano również liczbę i stopień złożoności instrukcji, jakie procesor jest w stanie wykonać. Dodatkowym uproszczeniem jest wykonywanie pojedynczej instrukcji w jednym cyklu zegara.
      W wyniku wszystkich uproszczeń 4-bitowy FlexiCore składa się z 2104 podzespołów. To mniej więcej tyle samo ile tranzystorów posiadał procesor Intel 4004 z 1971 roku. I niemal 30-krotnie mniej niż konkurencyjny PlasticARM zaprezentowany w ubiegłym roku. Uproszczenie jest więc ogromne. Stworzono też procesor 8-bitowy, jednak nie sprawuje się on tak dobrze, jak wersja 4-bitowa.
      Obecnie trwają testy plastikowych plastrów z procesorami. Są one sprawdzane zarówno pod kątem wydajności, jak i odporności na wyginanie. Jednocześnie twórcy procesorów prowadzą prace optymalizacyjne, starając się jak najlepiej dostosować architekturę do różnych zadań. Jak poinformował Kumar, badania już wykazały, że można znacznie zredukować pobór prądu, nieco zbliżając do siebie poszczególne bramki.

      « powrót do artykułu
    • By KopalniaWiedzy.pl
      W procesorach Intela odkryto kolejną lukę. Dziura nazwana CacheOut to luka typu side-channel, czyli błąd pozwalający na wykorzystanie pewnych szczegółów, często prawidłowej, implementacji.
      Dziura odkryta przez naukowców z University of Michigan i University of Adelaide występuje we wszystkich procesorach od architektury SkyLake po Coffee Lake powstałych przed rokiem 2019. Wiadomo, że nie występuje ona w procesorach AMD, ale badacze nie wykluczają, że jest obecna w układach IBM-a i ARM.
      Jak zauważyli eksperci gdy dane są pobierane z cache'u L1 często trafiają do buforów, z których mogą zostać wykradzione przez napastnika. Bardzo atrakcyjnym elementem CacheOut jest fakt, że napastnik może zdecydować, które dane z L1 zostaną umieszczone w buforze, skąd dokona kradzieży. Specjaliści wykazali, że możliwy jest wyciek danych mimo wielu różnych zabezpieczeń. w tym zabezpieczeń pomiędzy wątkami, procesami, wirtualnymi maszynami, przestrzenią użytkownika a jądrem systemu.
      Intel, który o problemie został poinformowany już w ubiegłym roku, sklasyfikował lukę L1D Eviction Sampling/CVE-2020-0549/INTEL-SA-00329 jako średnio poważną i przygotował odpowiednie poprawki. Odpowiedni mikrokod zostanie upubliczniony a nwjbliższym czasie. Tymczasowym obejściem problemu jest wyłączenie wielowątkowości lub wyłączenie rozszerzenia TSX.

      « powrót do artykułu
    • By KopalniaWiedzy.pl
      Na MIT powstał nowoczesny mikroprocesor z tranzystorami z nanorurek węglowych. Urządzenie można wyprodukować za pomocą technik używanych obecnie przez przemysł półprzewodnikowy, co ma olbrzymie znaczenie dla ewentualnego wdrożenia.
      Nanorurki węglowe są od dawna przedmiotem zainteresowań, gdyż dają nadzieję na zbudowanie kolejnej generacji komputerów po tym, gdy układów krzemowych nie będzie można już miniaturyzować. Tranzystory polowe z nanorurek węglowych (CNFET) mogą mieć bardzo obiecujące właściwości. Z dotychczasowych badań wynika, że powinny być one około 10-krotnie bardziej efektywne pod względem zużycia energii i pozwolić na przeprowadzanie obliczeń ze znacznie większą prędkością. Problem jednak w tym, że przy masowej produkcji w nanorurkach pojawia się tak wiele defektów, że nie można ich w praktyce wykorzystać.
      Naukowcy z MIT opracowali nową technikę, która znacząco zmniejsza liczbę defektów i daje pełną kontrolę nad produkcję CNFET. Co ważne, technika ta wykorzystuje procesy już używane w przemyśle półprzewodnikowym. Dzięki niej na MIT wyprodukowano 16-bitowy mikroprocesor składający się z 14 000 CNFET, który jest w stanie wykonywać te same obliczenia co tradycyjny procesor.
      Nowy procesor oparto na architekturze RISC-V. Testy wykazały, że jest on zdolny do wykonania pełnego zestawu instrukcji dla tej technologii.
      To, jak dotychczas, najbardziej zaawansowany chip wykonany w nowym procesie nanotechnologicznym, który daje nadzieję na wysoką wydajność i efektywność energetyczną, mówi współautor badań, profesor Max M. Shulaker. Krzem ma swoje ograniczenia. Jeśli chcemy coraz szybszych komputerów, to węglowe nanorurki są najbardziej obiecującym materiałem. Nasze badania pokazują zupełnie nowy sposób budowy układów scalonych z węglowymi nanorurkami.
      Shulaker i jego zespół od dawna pracują nad układami scalonymi z CNFET. Przed sześcioma laty byli w stanie zaprezentować procesor złożony ze 178 CNFET, który mógł pracować na pojedynczym bicie danych. Od tamtego czasu uczeni skupili się na rozwiązaniu trzech kluczowych problemów: defektach materiałowych, niedociągnięciach produkcyjnych oraz problemach funkcjonalnych.
      Największym problemem było uzyskanie nanorurek odpowiedniej jakości. Żeby CNFET działał bez zakłóceń, musi bez problemów przełączać się pomiędzy stanem 0 i 1, podobnie jak tradycyjny tranzystor. Jednak zawsze podczas produkcji powstanie jakaś część nanorurek, które będą wykazywały właściwości metalu, a nie półprzewodnika. Takie nanorurki czynią CNFET całkowicie nieprzydatnym. Zaawansowane układy scalone, by być odpornymi na obecność wadliwych nanorurek i móc szybko wykonywać zaawansowane obliczenia, musiałyby korzystać z nanorurek o czystości sięgającej 99,999999%. Obecnie jest to niemożliwe do osiągnięcia.
      Naukowcy z MIT opracowali technikę nazwaną DREAM (designing resilency against metallic CNT), która tak pozycjonuje metaliczne CNFET, że nie zakłócają one obliczeń. Dzięki temu zmniejszyli wymagania dotyczące czystości nanorurek aż o cztery rzędy wielkości. To zaś oznacza, że do wyprodukowania w pełni sprawnego układu potrzebują nanorurek o czystości sięgającej 99,99%, a to jest obecnie możliwe.
      Uczeni przeanalizowali różne kombinacje bramek logicznych i zauważyli, że metaliczne nanorurki węglowe nie wpływają na nie w ten sam sposób. Okazało się, że pojedyncza metaliczna nanorurki w bramce A może uniemożliwić komunikację pomiędzy nią, a bramką B, ale już liczne metaliczne nanorurki w bramce B nie wpływają negatywnie na jej możliwości komunikacji z żadną bramką. Przeprowadzili więc symulacje, by odnaleźć wszystkie możliwe kombinacje bramek, które byłyby odporne na obecność wadliwych nanorurek. Podczas projektowania układu scalonego brano pod uwagę jedynie te kombinacje. Dzięki technice DREAM możemy po prostu kupić komercyjne dostępne nanorurki, umieścić je na plastrze i stworzyć układ scalony, nie potrzebujemy żadnych specjalnych zabiegów, mówi Shulaker.
      Produkcja CNFET rozpoczyna się od nałożenia znajdujących się w roztworze nanorurek na podłoże z predefiniowanym architekturą układu. Jednak nie do uniknięcia jest sytuacja, w której część nanorurek pozbija się w grupy, tworząc rodzaj dużych cząstek zanieczyszczających układ scalony. Poradzono sobie z tym problemem tworząc technikę RINSE (removal of incubated nanotubes through selective exfoliation). Na podłoże nakłada się wcześniej związek chemiczny, który ułatwia nanorurkom przyczepianie się do niego. Następnie, już po nałożeniu nanorurek, całość pokrywana jest polimerem i zanurzana w specjalnym rozpuszczalniku. Rozpuszczalnik zmywa polimer, a ten zabiera ze sobą pozbijane w grupy nanorurki. Te zaś nanorurki, które nie zgrupowały się z innymi, pozostają przyczepione do podłoża. Technika ta aż 250-kronie zmniejsza zagęszczenie zbitek nanorurek w porównaniu z alternatywnymi metodami ich usuwania.
      Poradzono sobie też z ostatnim problemem, czyli wytworzeniem tranzystorów typu N i typu P. Zwykle produkcja tych tranzystorów z węglowych nanorurek kończyła się uzyskaniem urządzeń o bardzo różniącej się wydajności. Problem rozwiązano za pomocą nowej techniki o nazwie MIXED (metal interface engineering crossed with electrostatic doping), dzięki której możliwe jest precyzyjna optymalizacja procesorów do wymaganych zadań. Technika ta polega na dołączeniu do każdego tranzystora, w zależności czy ma być on P czy N, odpowiedniego metalu, platyny lub tytanu. Następnie tranzystory są pokrywane tlenkiem, co pozwala na ich dostosowanie do zadań, jakie będą spełniały. Można więc osobno dostroić je do pracy w zastosowaniach w wysoko wydajnych serwerach, a osobno do energooszczędnych implantów medycznych.
      Obecnie, w ramach programu prowadzonego przez DARPA (Agencja Badawcza Zaawansowanych Projektów Obronnych), wspomniane techniki produkcji układów scalonych z węglowych nanorurek wdrażane są w fabrycznych liniach produkcyjnych. W tej chwili nikt nie potrafi powiedzieć, kiedy w sklepach pojawią się pierwsze procesory z CNFET. Shulaker mówi, że może się to stać już w ciągu najbliższych pięciu lat. Sądzimy, że teraz to już nie jest pytanie czy, ale pytanie kiedy, mówi uczony.

      « powrót do artykułu
    • By KopalniaWiedzy.pl
      Gavin Thomas, który w Microsofcie sprawuje funkcję Principal Security Engineering Manager, zasugerował, że ze względów bezpieczeństwa czas porzucić języki C i C++. Thomas argumentuje na blogu Microsoftu, że rezygnacja ze starszych języków na rzecz języków bardziej nowoczesnych pozwoli na wyeliminowanie całej klasy błędów bezpieczeństwa.
      Od 2004 roku każdy błąd naprawiony w oprogramowaniu Microsoftu jest przez nas przypisywany do jednej z kategorii. Matt Miller podczas konferencji Blue Hat w 2019 roku zauważył, że większość tych dziur powstaje wskutek działań programistów, którzy przypadkowo wprowadzają do kodu C i C++ błędy związane z zarządzeniem pamięcią. Problem narasta w miarę jak Microsoft tworzy coraz więcej kodu i coraz silniej zwraca się w stronę oprogramowania Open Source. A Microsoft nie jest jedyną firmą, która ma problemy z błędami związanymi  z zarządzaniem pamięcią, pisze Thomas.
      W dalszej części swojego wpisu menedżer wymienia liczne zalety C++, ale zauważa, że język ten ma już swoje lata i pod względem bezpieczeństwa czy metod odstaje od nowszych języków. Zamiast wydawać kolejne zalecenia i tworzyć narzędzia do walki z błędami, powinniśmy skupić się przede wszystkim na tym, by programiści nie wprowadzali błędów do kodu, czytamy.
      Dlatego też Thomas proponuje porzucenie C++. Jednym z najbardziej obiecujących nowych języków programistycznych zapewniających bezpieczeństwo jest Rust, opracowany oryginalnie przez Mozillę. Jeśli przemysł programistyczny chce dbać o bezpieczeństwo, powinien skupić się na rozwijaniu narzędzi dla developerów, a nie zajmować się tymi wszystkimi pobocznymi sprawami, ideologią czy przestarzałymi metodami i sposobami rozwiązywania problemów.

      « powrót do artykułu
    • By KopalniaWiedzy.pl
      Niedawno donosiliśmy o wynikach badań, z których wynika, że oceany ogrzały się bardziej niż dotychczas sądziliśmy. Teraz ich autorzy informują, że popełnili błąd w obliczeniach. Podkreślają przy tym, że pomyłka nie falsyfikuje użytej metodologii czy nowego spojrzenia na biochemię oceanów, na których metodologię tę oparto. Oznacza jednak, że konieczne jest ponowne przeprowadzenie obliczeń.
      Jak mówi współautor badań, Ralph Keeling, od czasu publikacji wyników badań w Nature, ich autorzy zauważyli dwa problemy. Jeden z nich związany jest z nieprawidłowym podejściem do błędów pomiarowych podczas mierzenia poziomu tlenu. Sądzimy, że łączy efekt tych błędów będzie miał niewielki wpływ na ostateczny wynik dotyczący ilości ciepła pochłoniętego przez oceany, ale wynik ten będzie obarczony większym marginesem błędu. Właśnie prowadzimy ponowne obliczenia i przygotowujemy się do opublikowania autorskiej poprawki na łamach Nature, stwierdza Keeling.
      Redakcja Nature również postanowiła pochylić się nad problemem. Dla nas, wydawców, dokładność publikowanych danych naukowych ma zasadnicze znaczenie. Jesteśmy odpowiedzialni za skorygowanie błędów w artykułach, które opublikowaliśmy, oświadczyli przedstawiciele pisma.

      « powrót do artykułu
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...