• Nie Znaleziono Wyników

Analiza termiczna układów scalonych VLSI – autor podejmie się analizy danych termicznych w przypadku dynamicznych zmian temperatury w kontekście sterowania

W dokumencie Index of /rozprawy2/10269 (Stron 46-152)

przydziałem zadań w procesorze. Danymi wejściowymi będzie wynik sterowania układem scalonym przy pomocy algorytmu ASTER. Wynikiem będzie finalna analiza termiczna systemu scalonego.

Realizacja poszczególnych celów szczątkowych pracy będzie prowadziła do potwierdzenia głównej tezy pracy doktorskiej.

5 A

SYNCHRONICZNE STEROWANIE BLOKAMI FUNKCJONALNYMI

Autor przedstawiając cel pracy oraz jej tezę określił proces, którego realizacja z sukcesem będzie skutkowała potwierdzeniem założonego problemu naukowego. Na podstawie analizy literatury oraz aktualnego stanu wiedzy na temat mechanizmów sterowania pracą systemów wielordzeniowych autor zaproponuje mechanizm sterowania wykorzystujący asynchronizm w algorytmach kontrolnych. Należy w tym miejscu wyjaśnić pojęcie sterowania asynchronicznego w prezentowanej pracy. Sterowanie asynchroniczne to takie, w którym decyzja i zmiana parametrów pracy układu następuje niezależnie od głównego zegara taktującego dany układ scalony. Ogólna zasada działania tego mechanizmu zostaje przedstawiona w tym rozdziale wraz z weryfikacją eksperymentalną poprawności założeń algorytmu.

5.1 O

GÓLNY MECHANIZM STEROWANIA

Na podstawie analizy przeprowadzonej w poprzednich rozdziałach autor proponuje następujący algorytm zarządzania zadaniami w układach wielordzeniowych, tak aby spełnić założenia tezy pracy. Niech istnieje model procesora, który posiada N rdzeni. Modelowy przypadek został przedstawiony na rys. 22.

Zgodnie z przedstawionymi analizami wykonywania rozkazów równoległych, zadania mogą być wykonywane w dowolnym rdzeniu ze względu na uniwersalność funkcjonalności

47 Rys. 22: Modelowy przykład układu

poszczególnych modułów funkcjonalnych. Dla uproszczenia przyjmijmy, iż system wykonuje długotrwałe operację OP1 oraz OP2. Każda z tych operacji może być wykonana na dowolnie wybranym rdzeniu. Czas wykonania jest na tyle duży iż zagadnienia termiczne w trakcie trwania wykonywania obliczeń stają się znaczące. Dodatkowo określmy, iż rozkazy OP1 oraz OP2 zależą od siebie tj. algorytm programu wykorzystującego te rozkazy w kolejnych iteracjach wykonywania korzysta z wartości poprzednich. Przykładowy program w języku C został przedstawiony na listingu 1. W listingu oznaczono pseudo operandami OP1 oraz OP2 wymienione operacje obliczeniowe. Dane wykonywane są na tablicy wejściowych danych oraz wynik przechowywany jest w tablicach rezultatów.

LISTING 1. Kod programu wykonujący operacje OP1 oraz OP2

Jak przedstawiono powyżej kompilator wykonując rozkazy może zoptymalizować pracę rdzeni wykonujących poszczególne operacje OP1 oraz OP2. Kompilator przekształcający kod programu w języku wysokiego poziomu do kodu maszynowego może zastosować szereg technik optymalizacyjnych[Jon05]. Procesor po otrzymaniu kodu maszynowego do wykonania dzieli go w architekturze superskalarnej na potoki obliczeniowe i tworzy tzw. mikro-kod do wykonania przez poszczególne elementy wykonawcze w procesorach typu CISC. Procesory wielordzeniowe o zminimalizowanej ilości instrukcji mogą otrzymywać kod programu specjalnie dedykowany dla określonego rdzenia na podstawie decyzji programisty tworzącego kod obliczeniowy. Wymóg ten jest spowodowany brakiem możliwości łatwego zrównoleglenia standardowego kodu programu w aktualnych językach proceduralnych/obiektowych. Dwoma skrajnymi przypadkami obliczeń przedstawionego na listingu 1 kodu jest:

48 double first_result[10], second_result[10];

double input_table[10] = {1,2,3,4,5,6,7,8,9,10}; For (int i=0; i < 10; i++) {

first_result[i] = input_table[i] OP1 i; second_result[i] = input_table[i] OP2 1; }

• obliczenie algorytmów rozkazów OP1 oraz OP2 w całkowitej separacji – przedstawiono to schematycznie na rysunku 23

• obliczenie algorytmu zgodnie z pętlami w kodzie programu prowadząc do wyniku przedstawionego na rysunku 24

Rys. 23: Operacje OP1 oraz OP2 wykonywane blokowo

Rys. 24: Operacje OP1 oraz OP2 wykonywane naprzemiennie

W każdym przedstawionym przypadku operacje zajmują pewien określony czas każdego z rdzeni wykonujących dane operacje. W przypadku posiadania nadmiarowej w stosunku do aktualnie wykonywanych operacji ilości rdzeni algorytm może zastosować odpowiednie przekazywanie wykonywanych zadań lub podzadań do dowolnego rdzenia. Jednym z mechanizmów jest stosowanie algorytmów typu round-robin, które przekazują wykonywanie kolejnego zadania do następnego rdzenia – nawet tego znajdującego się geometrycznie najbliżej aktualnego.

Na podstawie rozważań fizycznych autor proponuje wykonanie pierwszego elementu w autorskim algorytmie: decyzja o wykonaniu operacji przez konkretny rdzeń musi być

podjęta mając na względzie stan termiczny każdego wolnego rdzenia. Informacja o stanie termicznym może pochodzić od sensorów termicznych znajdujących się na powierzchni układu scalonego lub od mechanizmu operującego na aktywności poszczególnych rdzeni biorąc pod uwagę ustalony model termiczny danego układu scalonego.

Zgodnie z [Goł08] zwiększanie częstotliwości głównego zegara układu scalonego powoduje zwiększenie udziału strat dynamicznych w całkowitym bilansie strat mocy. Ten trend będzie coraz bardziej widoczny w przypadku zwiększania się częstotliwości pracy i minimalizacji wymiarów fizycznych danej technologii wykonania układu scalonego. W tym przypadku moc dynamiczna oraz wpływ lokalnych zmian temperatury musi otrzymać należną uwagę w środowisku badawczym. Na podstawie analizy autor proponuje wykonanie

drugiego elementu sterowania asynchronicznego aktywnością bloków funkcjonalnych.

Metoda bazuje na modyfikacji dwóch przedstawionych metod sterowania aktywnością układu scalonego: dynamicznej zmiany napięcia oraz bramkowania częstotliwości głównego zegara w układzie scalonym. Aby przedstawić ten mechanizm przyjmijmy następujące założenia dotyczące wielordzeniowych systemów scalonych:

• każdy z rdzeni układu scalonego posiada taką samą funkcjonalność • układ scalony posiada N rdzeni o w/w funkcjonalności

• jest możliwe ustalenie stanu pracy dowolnego rdzenia w stan aktywny lub pasywny • istnieje możliwość monitorowania aktywności poszczególnych rdzeni w domenie

czasu tj. algorytm sterujący posiada taką możliwość

Asynchroniczne przełączanie aktywności możemy zdefiniować jako zmianę stanu danego rdzenia z aktywnej na pasywną asynchronicznie do głównego zegara układu scalonego. Stan aktywny zdefiniowany jest jako praca rdzenia tj. realizacja zadań obliczeniowych. W tym stanie następuje rozpraszanie mocy pasywnej jak i aktywnej. Stan pasywny oznacza brak aktywności rdzenia. Wszystkie elementy funkcjonalne rdzenia zostają wstrzymane. Pobór mocy następuje tylko w sposób pasywny. Częstotliwość przełączania rdzenia pomiędzy stanem aktywnym a pasywnym nie jest stała i zależy od decyzji głównego algorytmu zarządzającego sterowaniem asynchronicznym. Należy zaznaczyć, iż częstotliwość przełączania jest kilka rzędów mniejsza od częstotliwości głównego zegara pracy układu scalonego. Dodatkowo podkreślenia wymaga fakt niezależności podjęcia decyzji o zmianie

stanu rdzenia z aktywnego na pasywny od głównego zegara. Zdarzenie to występuje asynchronicznie – stąd też nazwa tego mechanizmu. Zaproponowana metoda polega na zmianie stanu aktywności danego rdzenia na podstawie informacji termicznej dostępnej dla każdego rdzenia w całej architekturze systemu scalonego. Zmiana stanu z aktywnego na pasywny następuje dla każdego rdzenia niezależnie od stanu pozostałych rdzeni. W każdym przypadku, gdy aktywność danego rdzenia rośnie, równocześnie rośnie odpowiednio temperatura chwilowa sąsiadujących rdzeni. W każdym przypadku należy przeanalizować profil termiczny danego rdzenia i określić poziomy temperatury, dla których zostaną zrealizowane proponowane metody ograniczania temperatury chwilowej układu. Schematycznie zmianę temperatury układu przedstawia rysunek 25. Zostały na nim zaznaczone trzy przedziały zakresu temperatur:

• Tactsw – temperatura, od której następuje realizacja mechanizmu asynchronicznego przełączania aktywnością danego rdzenia – w tym przypadku algorytm przełącza asynchronicznie aktywność danego rdzenia.

• Ttasksw – temperatura, powyżej której algorytm podejmuje decyzję o przeniesieniu wykonywania zadania do innego rdzenia. Decyzję o wyborze rdzenia, do którego zostanie przeniesione dalsze wykonywanie zadania podejmuje główny algorytm sterujący bazując na informacjach o historii aktywności danego rdzenia oraz aktualnej temperaturze chwilowej

• Tcritical – temperatura powyżej której aktywność rdzenia jest wstrzymywana. Zadanie zostaje wstrzymane do momentu gdy temperatura danego rdzenia obniży się do akceptowalnego poziomu lub algorytm sterujący znajdzie wolny rdzeń, który będzie mógł przejąć wykonywanie zadań

Jak przedstawiono na rysunku 25 żaden algorytm realizujący pewien mechanizm sterowania aktywnością rdzeni nie może zagwarantować, iż temperatura danego rdzenia nie przekroczy ustalonego i granicznego poziomu stosując tylko jedną metodą, która nie modyfikuje wydajności obliczeniowej układu. Z tego powodu autor nakreślił schematyczne zakresy temperatur, dla których będą stosowane przedstawione metody sterowania. Wybór zakresów temperatur, w których następuje przełączanie asynchroniczne aktywnością rdzeni lub przenoszeniem zadań do innego rdzenia obliczeniowego jest wybrany przez autora w sposób ustalony. Jak wiadomo każdy mechanizm, który zmienia stan układu jest realizowany z określonym kosztem dla wydajności całkowitej układu scalonego. Przeniesienie elementu (kodu programu) wykonywanego z jednego do innego rdzenia jest operacją czasochłonną i bardzo nieefektywną. Operacja ta może również wymagać użycia pamięci podręcznej lub nawet głównej pamięci do przeniesienia określonego zadania. Z tego powodu autor postanowił zastosować w algorytmie w pierwszej kolejności metodę asynchronicznego przełączania aktywnością a dopiero jeśli ten mechanizm nie wprowadzi pozytywnego zachowania termicznego rdzenia zastosować metody, których koszt wydajnościowy jest dużo większy. Należy tutaj podkreślić, iż metoda asynchronicznego przełączania aktywności rdzeni ma wpływ na wydajność układu. Włączenie tej metody powoduje w czasie t zmniejszenie całkowitego czasu wykonywania obliczeń do określonego (niższego) poziomu. Wartość ta

52 Rys. 25: Schemat profilu termicznego dowolnego rdzenia w trakcie

aktywności. Zaznaczono przedziały w których następuje realizacja proponowanych metod algorytmu.

zależy od długości czasu, w którym układ przebywa w stanie pasywnym. Ze względu na asynchroniczny sposób sterowania wartość ta będzie zmienna. Jednak w każdym z tych przypadków wprowadzenie tej metody jest korzystniejsze niż przeniesienie wykonywania zadania do innego rdzenia lub nawet całkowite wyłączenie aktywności danego rdzenia. Mechanizm asynchronicznego przełączania aktywnością dla przykładowych 3 rdzeni (oznaczonych jako moduły: MOD1, MOD2, MOD3) oraz mechanizmu przeniesienia wykonywania zadania do innego rdzenia schematycznie przedstawiono na rysunku 26.

Trzecim elementem na bazie którego powstaje proponowany przez autora algorytm jest maksymalizacja liczby rdzeni, które uczestniczą w danej operacji. Przykładem operacji, które mogą uczestniczyć w mechanizmie rozdzielania obliczeń są operacje kodowania/dekodowania strumieni video. Na przykładzie kodowania algorytmem MPEG-2 można przedstawić możliwość dekodowania pojedynczej ramki obrazu przez wiele rdzeni. Schemat podziału materiału video na bloki podstawowe dla klatek kluczowych został przedstawiony na rysunku 27.

53 Rys. 27: Podział strumienia MPEG-2 na bloki

podstawowe

Rys. 26: Mechanizm asynchronicznego przełączania aktywności oraz przenoszenia zadań

Schemat kodowania klatki kluczowej został przedstawiony na rysunku 28.

Proponowana metoda polega na maksymalizacji ilości rdzeni uczestniczących w obliczeniach. W przypadku systemów wielordzeniowych zapewnienie takiej rozdzielności może zostać zapewnione jedynie poprzez połączenie mechanizmu działającego na poziomie sprzętu, który umożliwi wybór optymalnego wolnego rdzenia oraz na poziomie oprogramowania, które dostarcza elementarne pakiety danych. Przykład takiego mechanizmu został schematycznie przedstawiony dla sześciu rdzeni na rysunku 29 przed podziałem na maksymalne wykorzystanie różnych rdzeni oraz na rysunku 30 gdzie zastosowano proponowaną metodę. Na w/w rysunkach każdy element obliczeniowy (obiekt) jest samodzielną jednostką, możliwą do przekazania do dowolnego innego rdzenia do dalszego wykonania.

Rys. 29: Wykonywanie blokowe zadań dla wielu rdzeni

54 Rys. 28: Kodowanie MPEG-2 dla klatek pośrednich

Rys. 30: Wykonywanie zadań dla wielu rdzeni z przenoszeniem zadań

Zaprezentowany mechanizm asynchronicznego sterowania aktywnością bloków funkcjonalnych układu scalonego jest elementem kompletnym na poziomie analitycznym. Aby przeprowadzić weryfikację poprawności przyjętych założeń należy przeprowadzić analizy termiczne w dziedzinie czasu oraz porównać metodę zaproponowaną przez autora z zachowaniem się układu w standardowym trybie działania. Aby tego dokonać autor przedstawi metodę obliczania termiki układu scalonego za pomocą funkcji Greena.

5.2 O

BLICZANIE TEMPERATURY ZA POMOCĄ FUNKCJI

G

REENA

Dla potrzeb niniejszej pracy opracowano algorytm obliczeń temperatury w dowolnym punkcie układu scalonego. Praca wykonana została w czasie pobytu autora na Uniwersytecie Gent (Belgia) w ramach programu Erasmus przy współpracy z prof. Gilbertem De Mey.

Równanie przewodnictwa cieplnego, które określa temperaturę w danym punkcie układu scalonego określone jest jako:

k ∇2T=cvT

t (9)

W którym współczynnik przewodnictwa cieplnego jest określony jako k=ρcPκ , gdzie κ

jest przewodnością cieplną danego układu. Ciepło właściwe cV , cP (również nazywane

właściwą pojemnością cieplną) jest wielkością ciepła potrzebną do zmiany temperatury dla jednostkowej masy (lub wielkości mierzalnej jak pojemność) o jeden stopień. Jednostkami dla

k oraz cp, cv są:

k=

[

W

mK

]

; cv=

[

J

m3K

]

, cp=

[

J

kg K

]

(10)

Głównym celem jest obliczenie temperatury układu w dowolnym punkcie w przestrzeni leżącym na powierzchni oraz wewnątrz układu (x,y,z) w określonej chwili czasowej t :

T = T(x,y,z,t) (11)

Aby poprawnie obliczyć rozkład temperatury układu, należy wziąć pod uwagę nie tylko element jakim jest blok krzemu ale także obudowę, wyprowadzenia oraz elementy aktywnego chłodzenia. Jednakże autor w tej pracy jest zainteresowany tylko wpływem asynchronicznego przełączania modułów na szczytową wartość temperatury chwilowej. Całkowita moc tracona, a w konsekwencji średnia temperatura układu nie jest zmieniona przez przełączanie aktywności. Oczywiście ze względu na zmianę aktywności położenie źródła ciepła zmienia się w przestrzeni, jednak ze względu na dużą termiczną przewodność krzemu wpływ tego zachowania na temperaturę średnią może zostać pominięty. Pierwszym krokiem w obliczeniach jest dekompozycja równania (9) na podstawowe komponenty dla każdego wymiaru. W rezultacie otrzymujemy:

2Tx22Ty22Tz2= cv kTt (12)

Następnym krokiem jest unormowanie zmiennych x,y,z za pomocą nowej zmiennej c, która określa grubość układu scalonego dla którego przeprowadzamy badanie. Po podzieleniu każdej strony równania (12) przez c otrzymujemy:

2T

x c

22T

y c

22T

z c

2= cvc2 kTt (13)

Stała po prawej stronie równania (13) tj. cvc2

k może być usunięta z równania poprzez

podzielenie całego równania przez tą stałą. Opisywane przekształcenie:

2T

x c

22T

y c

22T

z c

2= cvc2 kT

t cvc2 k

(14)

Wymiar wyrażenie po prawej stronie równania jest określone jako:

cvc2

k =

[

Jm2mK

m3KW

]

=

[

J

W

]

=

[

s

]

(15)

Dla stałych cv, c oraz k wartość dzielnika po prawej stronie jest określona bezwymiarowo

[

s

s

]

. Ostatecznie równanie, które zostanie użyte jako podstawa do dalszego rozwinięcia funkcji Green'a przedstawia się następująco:

2Tx2 2Ty2 2Tz2=Tt (16)

Wartości wymiarów układu są znormalizowane przez jego grubość. Czas jest

znormalizowany przez stałą cvc2

k . W takim przypadku wszystkie poniższe obliczenia są

unormowane przez grubość układu i takie wartości należy stosować do obliczeń. Dodatkowo zmienna czasu jest unormowana przez w/w stałą. W tym przypadku przyjmując standardowe wartości stałych dla wzoru (15) dla podłoża krzemowego otrzymujemy następującą skalę czasu dla równania (16).

t=cvc

2

k =

1 . 6 ∗106∗0 . 3 ∗0 . 3 ∗10−6

160 =100 μs (17)

Obliczenia temperatury dla dowolnego punktu na powierzchni układu należy rozpocząć w kilku etapach. Autor w pierwszym wyprowadzi wzór określający temperaturę w przestrzeni nieograniczonej dla aktywacji przez pojedynczy punkt cieplny, następnie rozszerzy przypadek na obszar całego układu. Ostatnim etapem będzie wprowadzenie warunków brzegowych dla badanego przypadku.

Źródło ciepła jest określone jako pojedynczy punkt przestrzeni w lokalizacji S(x’, y’, z’). Interesuje nas funkcja określająca zmianę temperatury w przestrzeni spowodowana przez aktywację punktu S w czasie t’ - schemat na rysunku 31.

Rys. 31: Pojedynczy punkt w przestrzeni

Źródło ciepła jest aktywne przez nieskończenie krótki czas t' z nieskończoną mocą. Opis ten jest tożsamy z opisem impulsu Dirac'a. Temperatura w dowolnym punkcie przestrzeni P(x,y,z) dla czasu t jest określona równaniem:

T=δ  x−x'  δ y− y'  δ z− z'  δ t−t'  (18) Dla analizy czasowej dystrybucji ciepła w przestrzeni możemy wykorzystać funkcję Greena. W naszej analizie otrzymujemy dwa przypadki funkcji Greena::

Dla czasu t > t’ (czas po wystąpieniu aktywności termicznego danego punktu):

GFx,y,z,t = 1

8

π  t−t' 2

e

x −x' 2y− y' 2z− z' 2

4  t−t'  kiedy t > t’ (19)

Dla czasu t <= t’ (czas przed wystąpieniem aktywności badanego punktu S):

GFx,y,z,t =0 kiedy t <= t’ (20)

Przyjmując punkt S jako środek układu współrzędnych otrzymujemy uproszczoną funkcję Greena określającą wartość w dowolnym punkcie przestrzeni (x,y,z) oraz czasu t:

GFx,y,z,t = 1

8

 

πt

3 e

x2+y2+z2

4t (21)

Działanie funkcji (w naszym przypadku dystrybucja ciepła) jest przedstawiona na rysunku 32. Dla czasu t=t' punkt S jest aktywowany impulsem Dirac'a. W czasie t > t' następuje

dystrybucja temperatury w całej powierzchni układu zgodnie ze wzorem (19). W miarę upływu czasu wpływ temperatury się rozszerza jednocześnie zmniejszając swoją amplitudę.

Rys. 32: Dystrybucja impulsu Dirac'a (impulsu temperatury) dla określonych chwil czasowych.

Dla przypadku 3-wymiarowego elementu grzejnego przyjmujmy obszar bez warunków brzegowych (w całej przestrzeni znajduje się krzem). Zdefiniujmy prostokątne źródło ciepła umieszczone na powierzchni określonego elementu. W obecnym przypadku jest to po prostu prostokątne źródło ciepła umieszczone w przestrzeni krzemu. Krzem znajduje się w całej 3-wymiarowej przestrzeni (x,y,z). Prostopadłościan źródła ciepła (S) ograniczony jest współrzędnymi (x1 ,x2), (y1 ,y2), (z1 ,z2). Niech będzie zdefiniowany punkt P umieszczony w przestrzeni o współrzędnych (x, y, z) oraz niech nastąpi aktywacja całego źródła ciepła impulsem Dirac'a w czasie t'. Schematycznie przedstawiono to na rysunku 33.

Temperatura w punkcie P dla chwili czasowej t określona jest przez równanie:

T  x,y,z,t =

t1 t2

y1 y2

x1 x2

z1 z2 GFx−x ', y− y ', z− z ', t−t'  dz'dx'dy'dt' (22) 59 Rys. 33: Prostokątne źródło ciepła umieszczone w przestrzeni

Dla rzeczywistego przypadku grubość elementu grzejnego w osi Z jest zwykle większa niż 0. W tym przypadku autor zakłada, iż grubość elementu grzejnego jest znacząco mniejsza niż grubość całego układu scalonego (z’ << c). To założenie prowadzi do ominięcia całki dla zmiennej z' w wyrażeniu (22). Moc w środku źródła ciepła względem mocy generowanej tylko przez element aktywny (PAC) mocy traconej można określić za pomocą wzoru:

P t= PACt

x2x1⋅y2y1 (23)

Używając równania (21), które określa temperaturę układu dla pojedynczego punktu, można wyprowadzić równianie określające temperaturę w dowolnym punkcie przestrzeni powodowaną przez prostokątne źródło ciepła:

T  x , y , z , t =

t1 t2 cvP  t ' dt ' 8

πκ t−t ' 3e z2 4 κ cvt−t ' 

x1 x2 e x−x ' 2 4κ cvt −t '  dx '

y1 y2 e y− y ' 2 4κ cvt−t '  dy ' (24)

Temperatura może zostać obliczona bezpośrednio za pomocą równania (24). Jednakże istnieje możliwość uproszczenia równania (24) używając przybliżenia. Całki dla kierunków X oraz Y mogą być zastąpione przez odpowiednie funkcje błędu. Ogólna interpretacja funkcji błędu jest określona jako:

erf  x = 2

π

0 x eu2 du (25)

Całki X oraz Y przypominają przedstawioną we wzorze (24) funkcję błędu. Proste przekształcenie prowadzi do finalnych wzorów umożliwiających zastąpienie całek w równaniu (24): X :

[

erf

x− x2

t−t'

erf

x− x1

t−t'

]

(26) Y :

[

erf

y− y2

t−t'

erf

y− y1

t−t'

]

(27) 60

Obliczenia numeryczne mogą być w dalszy sposób uproszczone stosując aproksymacje funkcji błędu. Za [Abr65] można określić wartość funkcji błędu z określonym marginesem dokładności. Dla w/w wzorów przyjęto następujące funkcje błędu:

1) ERF 1 =erf  x =1 −

a1t+a2t2+a3t3

ex2

+ε  x 

gdzie

ε x ∣≤2 .5 ⋅10−5 , t= 1

1 +px ,

p = 0.47047, a1=0.3480242, a2=-0.0958798, a3=0.7478556

(28)

2) ERF 2 =erf  x =1 −

a1t+a2t2+a3t3+a4t4+a5t5

ex2

+ε  x 

(3.20) gdzie

ε x ∣≤1 . 5 ⋅10−7 , t= 1

1 +px ,

p = 0.3275911, a1=0.254829592, a2=-0.284496736, a3=1.421413741, a4=-1.453152027, a5=1.061405429

(29)

W takim przypadku główny wzór wskazujący temperaturę (23) może być uproszczony do:

T  x,y,z,t =

t1 t2 P t '  cv 8



t−t' 

3e z2 4 cvt−t'  XintYintdt' (30) gdzie: Całka X

x1 x2 e x− x' 2

4 t−t'  dx' jest tożsama z równaniem:

Xint=

π 2

[

erf

x −x2 2

t−t'

erf

x−x1 2

t−t'

]

(31) oraz całka Y

y1 y2 e y − y' 2 4 t−t'  dy' z równaniem: 61

Yint=

π

2

[

erf

y − y2

2

t−t'

erf

y − y1

2

t−t'

]

(32)

Ostateczny wzór umożliwiający obliczenie temperatury kształtuje się następująco:

T  x,y,z,t =t1 t 2 cvP t  8   t−t' e z2 4 cv t−t' 

erf

x2x 2 t−t'

erf

x1x 2 t −t'



erf

x2x 2 t−t'

erf

x1x 2 t −t'



dt' gdzie z’ = 0 (33)

W celu obliczenia numerycznego równania (30) oraz zminimalizowania błędu wprowadzonego przez funkcję błędu opisaną równaniami (25 - 29) czas w którym przeprowadzane są obliczenia (od t1 do t2) dzielony jest na określoną liczbę pod-przedziałów w których następuje obliczenie całki (30). Przedstawiono to na rysunku 34.

Rys. 34: Podział czasu dla obliczeń funkcji błędu

Zmienna określająca czas dla funkcji błędu jest zawsze równa średniej arytmetycznej z wyliczanego zakresu czasu Δt:

tmid=tendtbeg

2 (34)

Ostateczny rezultat jest sumą wyliczeń dla wszystkich przedziałów:

T=

1

n

Tk (35)

Dla zamodelowania przypadku z określonymi warunkami brzegowymi należy rozszerzyć równanie (30). Autor dla uproszczenia obliczeń przyjmuje następujące warunki brzegowe:

• adiabatyczne warunki brzegowe dla ścian bocznych oraz górnej warstwy układu scalonego

• izotermalny warunek brzegowy gdzie T=TA (temperatura otoczenia)

62 t t1 t2 ∆t tmid tbeg tend

Przyjęte warunki brzegowe dla zaprezentowanego układu scalonego przy obliczaniu temperatury układu nie wpływają na wynik analizy proponowanego algorytmu. W przypadku proponowanym przez autora ważnym elementem jest porównanie temperatur dla różnych mechanizmów działania a nie weryfikacja absolutnej wartości temperatury.

Aby zamodelować proponowane warunki brzegowe autor używa metody obrazów lustrzanych źródeł ciepła[Kos97]. Lustrzane źródła ciepła to źródła o takich samych wymiarach jak badane źródło ciepła. Identyczne są też bezwzględne wartości strumienia ciepła oraz czasu aktywacji. Źródła ciepła umieszczane są w przestrzeni wokół badanego układu scalonego, tak aby dla określonego warunku brzegowego (adiabatyczny, izotermalny) w miejscu określonym jako brzeg układu scalonego wystąpiły warunki zgodne z danym warunkiem brzegowym tj. dla dolnej warstwy układu scalonego temperatura musi być równa TA oraz dla pozostałych warstw strumień ciepła musi być równy 0. To podejście umożliwia zamodelownie układu, którego wymiana ciepła następuje przez dolną warstwę układu scalonego – zostało to przedstawione na rysunku 35.

Rys. 35: Rozpraszanie ciepła tylko przez dolną warstwę układu

scalonego

W celu zamodelowania adiabatycznych warunków brzegowych na bocznych stronach układu scalonego, dodajemy dodatkowe źródła ciepła rozmieszczone w przestrzeni, tak aby skompensować straty ciepła dla tych ścian układu scalonego. Schematycznie dodatkowe źródła ciepła na płaszczyźnie X-Y zostały przedstawione na rysunku 36. Zgodnie z warunkami tego modelowania dodatkowe (lustrzane) źródła ciepła powinny być umieszczone symetrycznie do głównego źródła ciepła w nieskończonym ciągu. Praktycznie liczba iteracji obrazów lustrzanych jest ograniczana dynamicznie podczas obliczeń numerycznych na

63 x

y z

podstawie wpływu danego obrazu lustrzanego na całkowitą wartość temperatury na ścianie

W dokumencie Index of /rozprawy2/10269 (Stron 46-152)

Powiązane dokumenty