Dwa lub więcej niezależnych rdzeni wykonawczych w jednym układzie scalonym (mikroprocesorze) może dorównać ? lub przekroczyć ? osiągi układu scalonego (chipa) jednordzeniowego, pracując przy niższych częstotliwościach i pobierając mniej mocy.
Aby uzyskać pełną korzyść z zastosowania rozwiązań wielordzeniowych, wymagane jest odmienne przygotowanie oprogramowania.
Ciągły wzrost osiągów półprzewodników i zmniejszanie się rozmiarów płytki procesora do poziomów procesu mierzonego w nanometrach spowodowało niezwykły rozwój mikroprocesorów. Znaczna część tego zwiększenia osiągów nastąpiła wskutek wyższych częstotliwości chipów, czyli prędkości zegara procesora, co przełożyło się na zwiększenie poboru mocy (uwzględniając straty mocy) i generowanie ciepła.
W miarę jak straty i nieefektywność osiągały poziom nie do zaakceptowania, potrzebne stało się nowe, świeże podejście do projektowania chipów. Stąd pojawienie się procesorów wielordzeniowych (MCPs ? multi-core processors) ? definiowanych jako dwa lub więcej niezależnych rdzeni wykonawczych umieszczonych w jednym chipie krzemowym. Jak to bywa w większości przypadków postępu technologicznego, dla uzyskania pełnej korzyści konieczna jest pewna zmiana ? w tym przypadku odpowiednie przygotowanie oprogramowania.
Firma Intel, główny producent procesorów wielordzeniowych (MCPs), widzi wprowadzanie tych podzespołów do obszaru przemysłowego dzięki umiejętnościom firm zajmujących się automatyką, które wykorzystują technologię opartą na komputerach PC, do szybkiej adaptacji do określonych potrzeb klienta. Według Ian Gilvarry, kierownika marketingu strategicznego automatyki przemysłowej firmy Intel, takie podejście pozwala na łatwiejsze dostosowywanie systemów automatyki oraz integrację określonej funkcjonalności, niż dedykowane rozwiązania sprzętowe.
Scalanie funkcji
Gilvarry podkreślił, że procesory wielordzeniowe w połączeniu z technologią wirtualizacji umożliwiają stworzenie jednoplatformowej architektury, która może scalić funkcje spotykane w różnych urządzeniach sterowania, takich jak programowalne sterowniki logiczne PLC, sterowniki automatyki napędów oraz interfejsy człowiek maszyna (HMI). ? Procesory wielordzeniowe firmy Intel mogą być użyte do konsolidacji na jednej płycie wielorakich funkcji obejmujących zabezpieczenia, sterowanie, wizualizację oraz bezpieczeństwo sieci. Ponadto zwykle konsolidacja ta może być osiągnięta przy minimalnych zmianach oprogramowania ? stwierdził Ian Gilvarry. ? Wśród wielu zastosowań procesory wielordzeniowe są idealne do implementowania automatyki napędu i układu logicznego maszyny w jednym procesorze. Kontrastuje to z długo utrzymywanym przekonaniem producentów i dostawców maszyn, że najlepiej jest rozwiązywać te maszynowe kwestie oddzielnie ? czy wykonanie (1) z jednym sterownikiem dla każdej osi ruchu, obsługującym również część układu logicznego maszyny, (2) centralnym programowalnym sterownikiem logicznym PLC ze sterownikiem ruchu dla każdej osi lub (3) centralnym programowalnym sterownikiem logicznym PLC dla układu logicznego i centralnym sterownikiem ruchu dla wszystkich osi maszyny.
Jednakże tego rodzaju rozwiązania mają wady, takie jak złożoność synchronizacji, wiele programów do utrzymywania się na ścieżce, opracowanie programów/usuwanie usterek lub w ostatnim przypadku, dwa programy o dużych wymaganiach dotyczących komunikacji.
? W przypadku wszystkich tych rozwiązań możliwości układu logicznego ograniczają osiągi maszyny. Także skomplikowana komunikacja pomiędzy układem logicznym a układem ruchu ogranicza elastyczność maszyny i wymaga ogromnego wysiłku do przeprowadzania wyrafinowanej diagnostyki ? stwierdził Gilvarry. ? Są to przypadki, w których technologia wielordzeniowa pozwala na eliminowanie programowalnych sterowników logicznych PLC oraz integrowanie układu ruchu, układu logicznego i innych układów funkcjonalnych w jeden układ sterowania.
Oferta procesorów wielordzeniowych firmy Intel obejmuje dwa modele z najnowszej rodziny procesorów Atom oraz procesor Core 2 Duo (każdy z dwoma rdzeniami); procesor Core 2 Quad z czterema rdzeniami i niektóre procesory generacji Core i7 z sześcioma rdzeniami.
Osiągi na jeden wat mocy
Bardziej efektywne wykorzystanie mocy chipa to jedna z kilku korzyści, jakie procesory wielordzeniowe wprowadziły w obszar przemysłu. W miejsce zwiększania częstotliwości zegara celem zwiększenia osiągów, przy zmniejszaniu wykorzystania pobranej mocy, procesory wielordzeniowe stworzyły nowy kierunek rozwoju, który Casey Weltzin, kierownik sprzedaży do spraw oprogramowania firmy National Instruments (NI) nazywa ?lepsze osiągi na jeden wat mocy?. Pobór mocy stał się poważną kwestią dotyczącą projektowania tradycyjnych (jednordzeniowych) chipów. ? Wiele procesorów na jednym chipie umożliwia równoległe wykonywanie obliczeń przy poborze mocy, który wraz z liczbą rdzeni zmienia się liniowo ? nie wykładniczo ? stwierdził Weltzin.
? Dodatkowe rdzenie obliczeniowe przekładają się na bardziej zwarte systemy automatyki, które mogą mieć większą funkcjonalność. Taka zwiększona moc obliczeniowa pozwala użytkownikom procesorów wielordzeniowych na zastosowanie bardziej złożonych algorytmów sterowania, do realizacji większej liczby zadań, i umożliwia bardziej efektywne wykorzystywanie mocy przy wykonywaniu obliczeń ? wyjaśnił Weltzin. Nowoczesne algorytmy oprogramowania pozwalają na szybsze przeprowadzenie procesu, dając przez to pewne oszczędności energii lub innych kosztów eksploatacyjnych.
Procesor wielordzeniowy ma większe możliwości niż jeden system operacyjny (OS) na pojedynczym sterowniku. Zdolność do realizacji funkcji w czasie rzeczywistym, do sterowania deterministycznego oraz wykonywania uniwersalnych zadań systemu operacyjnego (interfejs człowiek maszyna ? HMI, dostęp sieciowy itp.) jest rzeczywistą zaletą wielu systemów automatyki przemysłowej. Ponadto użytkownicy mogą zaplanować, jak wykorzystać rdzenie, to znaczy wyznaczyć, który rdzeń (rdzenie) będzie obsługiwać który OS lub określoną pętlę sterowania. ? Projektanci, aby zaspokoić tę potrzebę, tradycyjnie polegali na oddzielnych elementach sprzętowych. Teraz procesory wielordzeniowe w połączeniu z technologią wirtualizacji powodują zmniejszenie kosztów sprzętowych i dają oszczędność miejsca ? zauważył Weltzin. Procesory wielordzeniowe mają duży potencjał zastosowania przemysłowego.
Patrząc w przyszłość, firma Beckhoff Automation widzi możliwość zastosowania procesorów wielordzeniowych w swoich produktach z komputerami przemysłowymi PC (IPC), dostrzega korzyści wielozadaniowości, jakie dają dodatkowe rdzenie. Według Corey McAtee, dyrektora marketingu technicznego firmy Beckhoff, firma ta wprowadziła pojęcie ?naukowa automatyzacja? dla określenia sposobu, w jaki inżynierowie mogą wykorzystywać dodatkowe rdzenie w wielordzeniowych IPC do realizacji równoległych zadań.
Zgodnie z doświadczeniem firmy Beckhoff wielordzeniowe IPC mogą zmniejszyć całkowity pobór mocy i w wyniku tego zmniejszyć ?termiczny ślad? maszyny. Dodatkową korzyścią jest ograniczenie przestrzeni potrzebnej na sprzęt komputerowy. ? Przy mniejszym ?termicznym śladzie? producenci maszyn mogą zmniejszyć rozmiar szafy sterowniczej lub wyeliminować z niej urządzenia chłodzące ? stwierdził McAtee.
? Wielordzeniowe IPC pod względem sterowania daje największe korzyści producentom maszyn poszukującym usprawnienia projektów oraz eliminacji zbytecznych komponentów sterowania ? nadmienia McAtee. Procesory wielordzeniowe, z punktu widzenia interfejsu operatora, stanowią inny przypadek.
Możliwość dedykowania pojedynczych rdzeni procesora do poszczególnych zadań automatyzacji została odzwierciedlona w nowej platformie programowej TwinCAT 3 firmy Beckhoff, przewidzianej do wprowadzenia w 2011 roku (patrz: ilustracja na poprzedniej stronie). ? Zespalanie wielordzeniowych IPC z pakietem oprogramowania pozwala użytkownikowi na inteligentne wykorzystanie pojedynczych rdzeni zawartych w wielordzeniowym procesorze ? dodał McAtee. ? Komputer IPC stał się mocnym narzędziem, wykonującym pracę czterech konwencjonalnych urządzeń, wykorzystującym jedną platformę programową i jedną sieć (EtherCAT) przy znacznie mniejszym okablowaniu i potrzebach programowania.
Firma Freescale Semiconductor widzi zastosowanie procesorów wielordzeniowych jako sposób na zwiększenie osiągów, przy jednoczesnym zmniejszeniu liczby chipów, rozmiaru płytki oraz poboru mocy w takich zastosowaniach przemysłowych, jak programowalne sterowniki logiczne, napędy silników oraz robotyka. ? Procesory wielordzeniowe mogą zwiększyć złożoność projektowania oprogramowania i rozwiązywania kwestii termicznych oraz koszty ? ostrzegła Alexandra Dopplinger, rzecznik globalnego segmentu do spraw automatyzacji zakładu i napędów firmy Freescale. Wyjaśniła, że niższy pobór mocy niekoniecznie upraszcza rozwiązywanie kwestii cieplnych przy projektowaniu, z uwagi na wytwarzanie procesorów wielordzeniowych w innej technologii, w której występują mniejsze wymiary. ? Proces odprowadzania takiej samej ilości ciepła z mniejszej powierzchni płytki procesora może wiązać się z użyciem droższego materiału lub bardziej złożoną geometrią elementu odprowadzającego ciepło ? dodała Dopplinger.
Co ważne, zazwyczaj procesory wielordzeniowe pracują przy niższych częstotliwościach zegara i dwa lub cztery rdzenie nie dają proporcjonalnie większych osiągów. ? Jednakże architektury wielordzeniowe mogą o wiele bardziej wpływać na wzrost osiągów przy mniejszych kosztach i poborze mocy niż architektury jednordzeniowe ? stwierdziła Dopplinger. Jako przykład podała procesor komunikacyjny firmy Freescale ? QorIQ P4080, który wykorzystuje osiem 1,5 GHz rdzeni na jednym chipie i pozwala na wykonywanie ponad 20 000 milionów rozkazów na sekundę (MIPS ? milion instructions per second) ? podczas gdy pobór mocy wynosi poniżej 30 W. Przy takim poborze mocy jednordzeniowy procesor poprzedniej generacji miał wydajność równą 3000 MIPS.
Systemy operacyjne również przedstawiają ważny aspekt stosowania procesora wielordzeniowego. Dopplinger wspomniała, że w niektórych przypadkach jeden rdzeń przeznaczony do wykonywania decyzji dotyczących sterowania w czasie rzeczywistym złożonego procesu jest rozwiązaniem właściwym. ? Jednakże takie systemy operacyjne jak Enea OSE Multicore Real-Time Operating System są zaprojektowane do optymalnej dystrybucji poleceń programowych wśród wielordzeniowych procesorów takich jak QorIQ firmy Freescale, jak gdyby algorytm był wykonywany na jednym rdzeniu ? nadmieniła Dopplinger. Podobnie takie funkcje, jakie są realizowane przez sterowniki bezpieczeństwa, często wykonywane są przez oddzielneprocesory dedykowane.
Różne oprogramowanie, programowanie
Przechodzenie na procesory wielordzeniowe nie jest krokiem ewolucyjnym. Według Weltzina z firmy National Instruments wymaga to od projektantów oprogramowania odmiennego myślenia, niż było to w przeszłości. ? Projektanci muszą skupiać się na kwestiach równoległości procesów i świadomie dzielić opracowywane aplikacje na różne wątki, aby uzyskać korzyści. Stanowi to dzisiaj kluczowe wyzwanie dla przyjęcia technologii procesorów wielordzeniowych ? stwierdził Weltzin. ? Pracownicy naukowi, dostawcy narzędzi oraz inżynierowie programiści muszą w tej kwestii pracować razem.
? Programiści, podczas pracy z kodem równoległym, stają przed innymi wyzwaniami. Przede wszystkim mechanizm łączenia pamięci podręcznych między rdzeniami lub architektura pamięci wpływa na szybkość, z jaką kod pracujący na tych rdzeniach może przekazywać dane, przez co jest to podstawowa sprawa wpływająca na ogólne osiągi aplikacji. Dalszym wyzwaniem jest usuwanie usterek i wizualizacja interakcji pomiędzy wątkami ? wyjaśnił Weltzin.
Wspomniał on o zdolności narzędzi programowych do rozwiązywania kwestii pamięci podręcznej i usuwania usterek, lecz istnieje potrzeba wprowadzenia dalszych innowacji. ? W gruncie rzeczy narzędzia te zbierają informacje o zależnościach, określonych w kodzie, a następnie wykorzystują te informacje do automatycznego odwzorowania aplikacji na wielordzeniowych procesorach ? stwierdził Weltzin. Technologia nazwana ?dataflow? (przepływ danych) uwalnia projektantów od konieczności ręcznego identyfikowania równoległych sekcji kodu. Technologia ?dataflow? jest częścią oprogramowania LabVIEW firmy NI, które jest zwykle używane w przypadku stosowania do ośmiu rdzeni procesora. ? Ponadto wielu dostawców narzędzi programowych aktywnie inwestuje w narzędzia do usuwania usterek, które pozwalają programistom na śledzenie wykonania poszczególnych wątków oraz wizualizację interakcji pomiędzy wątkami ? kontynuował Weltzin.
Procesory z czterema lub większą liczbą rdzeni są łatwo dostępne, a z dużo większą liczbą rdzeni są w trakcie opracowywania z uwagi na względnie łatwe powielanie sprzętowe. ? Ponieważ liczba rdzeni na chipie ciągle wzrasta, staranie się o efektywne wykorzystanie dostępnych rdzeni będzie głównym wyzwaniem, a technologia wirtualizacji jest obiecującym potencjalnym rozwiązaniem ? dodał Weltzin. ? Przy wielu rdzeniach, powiedzmy przykładowo 16, śledzenie równoległych części kodu staje się naprawdę trudne. Inteligentny kompilator może być pomocny przy automatycznym odwzorowywaniu (mapowaniu) kodu aplikacyjnego na sprzęt procesowy (jak to odbywa się w LabVIEW), lecz nawet kompilatory mają ograniczenia ? zauważył Weltzin.
Gilvarry z firmy Intel potwierdził, że programiści oprogramowania aplikacyjnego będą musieli zmienić stosowaną architekturę celem zapewnienia możliwości wykorzystania dodatkowych rdzeni. Dla większości użytkowników oznacza to zwiększenie równoległości w kodzie oprogramowania. Zwykle zastosowane sądwie metody: wielozadaniowość, pierwszy prostszy sposób; oraz wątkowość. ? Drugi sposób daje najlepsze osiągi, lecz wymaga większego wysiłku ? powiedział Gilvarry.
Gilvarry przedstawił w skrócie cztery kroki potrzebne do zmiany szeregowego oprogramowania aplikacyjnego w aplikację wielowątkową: analiza, wyrażenie, wykorzystanie i zoptymalizowanie równoległości. ? Wątkowość, o ile zostanie przeprowadzona dobrze, daje najlepsze wykorzystanie pamięci podręcznej i pozwala na szybszą pracę powtarzalnych algorytmów ? stwierdził Gilvarry. ? Uruchamianie nowego wątku dla powtarzalnego procesu będzie przebiegać szybciej niż uruchamianie nowego procesu, ponieważ często segmentpamięci nie musi być zmieniany, a potrzebne polecenia mogą pozostawać ciągle w pamięci podręcznej.
Procesory wielordzeniowe są wprowadzane do systemów automatyki, najpierw w wyższej klasie sterowników z niższej klasy systemami, przy spodziewanym wzroście ich zastosowań wraz ze zmniejszaniem się kosztów wdrożenia i wzrastającym doświadczeniem użytkowników.
CE