Anda di halaman 1dari 104

A MOVING THREADS

PROCESSOR ARCHITECTURE
MTPA
Donny Cahyoprapto 23509111
Agi Putra Kharisma 23510002
Hariyady 23510040
Husnil Kamil 23510073
Zulkifli Arsyad 23510079
Outline
• Pendahuluan (konsep thread, proses, multithreading,
tantangan pada prosesor multicore)
• Parallelism yang dieksploitasi serta permasalahan yang
diatasi oleh MTPA
• Struktur dan Arsitektur MTPA serta perbedaan dengan
prosesor multicore konvensional.
• Operasi, instruction set, thread management, dan memory
system MTPA
• Pemrograman MTPA
• Evaluasi
• SMASim (Simulator)
• Kesimpulan
Thread
• Merupakan unit eksekusi terkecil dari proses yang masih
dapat dikontrol oleh OS [wiki]
• Implementasi thread berbeda untuk setiap OS
• Thread berada dalam sebuah proses, multiple thread bisa berada
dalam proses yang sama dan saling berbagi resource
• Multithread biasanya terjadi secara time-division multiplexing pada
single processor.
Thread
Process
• Unit terberat dalam kernel scheduling
• Memiliki resources
• Penjadwalan eksekusi
Process vs Threads
• Threads muncul sebagai bagian dari process
• Process memiliki lebih banyak informasi. Thread yang
ada dalam proses saling berbagi informasi yang dimiliki
oleh prosesnya
• Proces memiliki address address space yang terpisah,
thread saling berbagi address space
• Proces berinteraksi hanya melalui mekanisme inter-
process communication yang ada pada system
• Context switching antar threads dalam satu proces lebih
cepat dari pada context switching antar proces
Multithreading
• Banyak thread ada dalam suatu context
• Share resources but are able to execute independently
• Threads will often need to rendezvous in time in order to
process the data in the correct order.
Kelebihan Multithreading
• Mampu memanfaatkan computing resource yang tidak
dipakai
• Jika thread tidak bisa menggunakan seluruh computing
resource CPU, menjalankan thread lain tidak membuat
thread tsb idle.
• Jika beberapa thread bekerja pada data set yang sama,
thread tersebut dapat saling berbagi cache sehingga
dapat memperbaiki penggunaan cache dan sinkronisasi
Kekurangan Multithreading
• Multiple thread dapat saling menginterfensi ketika sharing
hardware resouce (cache, TLB)
• Waktu eksekusi sebuah thread tidak akan meningkat
walaupun hanya satu thread yang dieksekusi.
• Karena frekuensi yang lambat atau pipeline stage tambahan yang
dibutuhkan untuk mengakomodasi thread switching hardware.
• Hardware untuk multithreading perlu didukung oleh
software
• membutuhkan aplikasi program dan OS yang bersifat
multiprocessing.
Kapan thread di switch?
• Fine grain:
• Switch instruksi per thread menggunakan round robin.
• coarse grain:
• Ketika thread stall.
Tipe Multithreading
• Block Multithreading
• Interleaved Multithreading
• Simultenous Multithreading
Block Multithreading
• Terminology
Block atau Cooperative atau Coarse-grained multithreading.

• Konsep:
• Setiap thread berjalan sampai diblock oleh suatu event yang menyebabkan thread mengalami stall dalam
waktu yang cukup lama. Threaded processor akan melakukan switch ke thread yang lain yang siap untuk
dijalankan.

• Hardware Cost
• Dapat diimplementasikan pada single CPU
• Setiap thread yang active memiliki registernya sendiri. Agar mudah melakukan perpindahan antar active
thread

• Contoh:
• Cycle i : instruksi j dari hread A diisue
• Cycle i+1: instruksi j+1 dari thread A diissue
• Cycle i+2: instruksi j+2 dari thread A dissue, instruksi menyebabkan miss di seluruh cache
• Cycle i+3: thread scheduler dipanggil, switch ke thread B
• Cycle i+4: instruksi k dari thread B diissue
• Cycle i+5: instruksi k+1 dari thread B diissue
Interleaved Multithreading
• Terminology :
• Barrel processing, Interleaved atau  Pre-emptive atau  Fine-grained atau time-
sliced multithreading

• Tujuan :
• menghilangkan stall karena data dependency karena eksekusi. Umumnya satu thread
independent dengan thread lainnya

• Hardware cost :
• interleaved multithreading memiliki tambaan cost untuk setiap pipeline stage untuk
melakukan tracking thread ID setiap instruksi yang diproses.
• Shared resources (caches and TLB) butuh ukuran yang besar

• Contoh :
• Cycle i+1: instruki dari thread B diiisue
• Cycle i+2: instruksi dari thread C dissue
Simultaneous Multithreading (SMT)
• Superscalar processor bisa mengissue instruksi dari multiple thread
untuk setiap CPU cycle
• Setiap thread memiliki ILP yang terbatas, SMT berusaha memberikan solusi dengan
mengekploitasi paralelism dari multiple thread

• For example:
• Cycle i : instructions j and j+1 from thread A; instruction k from thread B all
simultaneously issued
• Cycle i+1: instruction j+2 from thread A; instruction k+1 from thread B; instruction m
from thread C all simultaneously issued
• Cycle i+2: instruction j+3 from thread A; instructions m+1 and m+2 from thread C all
simultaneously issued

• Hardware Cost :
• Setiap pipeline stage melakukan track Thread ID setiap instruksi yang diproses
• Shared resources (caches, TLBs) harus memiliki ukurang yang besar
Tantangan Pada Prosesor Multicore
• Cache Coherence
• Lamport’s Sequential Consistency
Cache Coherence
• Bagaimana mempertahankan konsistensi data yang
disimpan pada cache resource bersama.
Lamport’s Sequential Consistency
• "... the result of any execution is the same as if the
operations of all the processors were executed in some
sequential order, and the operations of each individual
processor appear in this sequence in the order specified
by its program." 
Overview MTPA
• Gambaran umum
• Parallelism yang dieksploitasi
• Prosesor MTPA VS Prosesor Konvensional
• Permasalahan prosesor multicore yang diatasi
- Struktur MTPA
- Arsitektur MTPA
Gambaran umum
• Pendekatan baru multicore processor architectures
• Paradigma moving threads
• Thread bergerak diantara core prosesor dan mengakses
memory utama melalui local memory block.
• Masalah cache coherence
• Konsistensi data yang disimpan dalam cache lokal dari sumber
daya bersama.
• Lamport’s sequential consistency
• Hasil eksekusi tetap sama seperti jika operasi dari semua prosesor
dieksekusi dalam beberapa berurutan, dan operasi dari setiap
prosesor individu muncul dalam urutan yang ditentukan oleh
program.
Parallelism yang dieksploitasi
• Instruction Level Parallelism
• Threads Level Parallelism
Instruction Level Parallelism
• Loop unrolling
• Branch Prediction
• Dynamic Scheduling
Loop unrolling

• Memperbanyak jumlah instruksi yang sama dalam loop


sehingga jumlah instruksi paralel yang bisa dilakukan
semakin banyak
• Jumlah cycle total menjadi sedikit
• Jumlah cycle dan operand kosong semakin sedikit
Branch Prediction

• Mejalankan semua kemungkinan dari “branch”, apakah


branch diambil atau tidak
• Alur yang benar akan di “commit”
• Alur yang salah akan di “discard”
Dynamic Scheduling

• Instruksi dimulai luar urutan yang seharusnya (out of


order issue)
• Instruksi selesai diluar urutan yang seharusnya (out of
order completion)
• Meningkatkan instruksi yang dieksekusi secara paralel
Threads Level Parallelism : T1
pipeline Data
Data
Structura
Structura
ll

Hazards:
Hazards:

25
Threads Level Parallelism : T1 Fine-
Grained Multithreading
Setiap core mendukung
empat threads dan
memiliki tingkat sendiri Beralih ke thread baru Idle threads dilewati
satu cache (16KB untuk pada setiap siklus clock dalam penjadwalan
instruksi dan 8 KB untuk
data)

Menunggu akibat
penundaan
pipeline atau cache
miss

Processor idle
hanya ketika
semua 4 threads
yang idle atau
stalled

26
Threads Level Parallelism : T1 Fine-
Grained Multithreading
Baik loads and branches
dikenakan penundaan 3 Satu set floating point unit
siklus yang hanya dapat fungsional dibagi oleh semua
disembunyikan oleh thread 8 core A
lain

Kinerja
floating
point tidak
fokus untuk
T1

27
Perbedaan prosesor MTPA dengan Konvensional

PROSESOR MTPA PROSESOR KONVENSIONAL

• Paradigma ‘Moving thread’ • Paradigma ‘Moving


• Thread berpindah diantara data’
core dalam prosesor • Thread tetap dalam
• Setiap Core dapat mengakses core di mana thread
hanya suatu bagian tertentu dibuat
dari memori utama melalui • data dipindahkan dari
blok memori lokal
memori utama melalui
cache untuk setiap core
dan thread
Permasalahan prosesor multicore yang diatasi

• Cache Coherence
• Lamport’s Sequential Consistency
Contoh Masalah Cache Coherence
P1 P2 P3
u=? 3
u=?
4 5 $
$ $

u :5 u :5 u = 7

I/O devices
1
2
u :5
Memory

• Prosesor melihat nilai yang berbeda untuk u setelah even 3


• Dengan menulis kembali cache, nilai ditulis ke memori tergantung pada
kebetulan yang di flushes pada cache atau ketika menulis nilai
kembali
• Proses mengakses memori utama dapat melihat nilai yang tidak valid
• Tidak dapat diterima untuk pemrograman, dan sering terjadi!

30
User Level Sinkronisasi — Operasi Menggunakan
Primitif

• prosesor terus berusaha untuk memperoleh kunci,

Spin berputar mengelilingi sebuah loop mencoba


mengunci

lockit:
li R2,#1
R2,#1
exch R2,0(R1) ;atomic exchange
exchange

locks bnez R2,lockit ;already


;already locked?
locked?

Bagaimana • keinginan spin pada cache copy


untuk menghindari full memory
dengan MP latency
cache • Kemungkinan untuk mendapatkan
hits cache seperti variabel
coherency?

31
User Level Sinkronisasi — Operasi Menggunakan
Primitif

• pertukaran termasuk operasi menulis, yang


membatalkan semua salinan lain;
menghasilkan lalu lintas bus besar
Problem

• dimulai
dimulai dengan hanya berulang kali membaca variabel tersebut; ketika
perubahan,
perubahan, kemudian mencoba ditukar (“test and test&set”):
• try:
try: lili R2,#1
R2,#1
lockit:
lockit: lw R3,0(R1)
lw R3,0(R1) ;load
;load var
bnez
bnez R3,lockit ;≠ 0  not free 
R3,lockit ;≠  spin
Solution exch
exch R2,0(R1)
bnez
R2,0(R1) ;atomic
bnez R2,try
R2,try
;atomic exchange
;already
;already locked?

32
Permasalahan lain MP: Memori Model
Konsistensi

Apa itu konsistensi?


Ketika harus prosesor
melihat nilai baru?
P1: A = 0;
.....
P2: B = 0;
.....
contoh, seperti A = 1; B = 1;
disamping : L1: if (B == 0) ... L2: if (A == 0) ...

Tidak mungkin jika statements L1 & L2 bernilai true?

Bagaimana jika menunda menulis data yg tidak valid &


prosesor terus berjalan?

33
Permasalahan lain MP: Memori Model
Konsistensi

Model memori • Aturan-aturan apa untuk seperti

konsistensi menangani kasus ini?

• Hasil eksekusi manapun adalah


sama seperti jika mengakses
mengakses
prosesor masing-masing dan
Sequential disimpan dalam
dalam rangka
mengakses antar prosesor yang
berbeda interleaved  tugas
consistency sebelum preview hasil
hasil di atas
• SC: menunda semua akses
memori sampai
sampai semua
invalidates dilakukan

34
Model Memori Konsistensi

Bukan masalah bagi


sebagian besar program;
they are synchronized
Skema eksekusi • Suatu program disinkronkan jika
semua akses ke data bersama
jika

lebih cepat untuk diperintahkan oleh operasi


sinkronisasi
konsistensi • write (x)
...
berurutan release (s) {unlock}
...
acquire (s)
(s) {lock}
...
read(x)

35
Model Memori Konsistensi

Beberapa Relaxed
Models for Memory
Hanya program-program Consistency karena
tersedia secara kebanyakan program
nondeterministic tidak disinkronkan; dicirikan
disinkronkan: “data race”: oleh perilaku mereka
hasil f(proc. speed) terhadap : RAR, WAR,
RAW, WAW
ke alamat yang berbeda

36
Struktur MTPA
Arsitektur MTPA
Arsitektur MTPA
Operasi
• Thread diambil dari FIFO
queue untuk dieksekusi.
• Instruction word diambil
(fetched) dari local instruction
memory, operand dipilih dari
blok register yang
berkorespondensi, kemudian
subinstruksi dieksekusi oleh
ALU.
Operasi
Operasi
• Bila subinstruksi pada memory unit akan mengakses data
pada local memory, maka reference akan dikirimkan.
• Bila data yang diakses tidak terdapat pada local memory,
thread akan dikirim ke processor-storage modul yang
memiliki data dimaksud, dan instruksi dieksekusi ulang
(re-execute).
• Teknik ini disebut Test and Move (TM)
Operasi

Konvensional

MTPA
Operasi
• Alamat akses memori untuk instruksi selanjutnya
langsung dihitung setelah eksekusi instruksi (current
instruction), sehingga akan terjadi pemisaan eksekusi
antara source dan target module.
• Teknik ini disebut Split Instruction (SI)
Test and Move & Split Instruction
Instruction Set
• Menggunakan RISC style dengan satu atau dua operand
sederhana.

• Contoh:
• LDB Xx Load byte from address Xx
• ADDn Xx, Yy Add Xx and Xy in ALU n
• JMP Xx Jump to Xx
• CRT Rx Create a new thread with id Rx
Mekanisme Thread Management
• Thread disimpan dalam FIFO queue
• Dukungan jumlah thread dibuat fleksibel seperti konsep
virtual memory.
• Bila internal FIFO tidak mencukupi, disediakan buffer
tambahan untuk menampung thread.
• Dapat memanfaatkan memory untuk menampung thread,
namun hal ini dapat menurunkan kinerja.
Mekanisme Thread Management
• Creating thread: CRT Rx
• Disposing thread: TRM Rx
• Jumlah thread yang ada serta id-nya harus selalu di-
update oleh runtime system.
Memory System
• Menggunakan local memory
• Apabila daya tampung local memory tidak mencukupi,
sebagian atau seluruhnya dapat digantikan dengan
cache, sehingga terjadi cache-based access.
• Namun, masing – masing core hanya memiliki akses
terhadap bagian memory tertentu saja yang unik
(sehingga tidak ada cache coherence).
Memory System

MTPA
Memory System

Program
instruction

Data
memory
Programming model
PRAM & Moving thread
• Moving thread menggunakan paralel programming
dengan PRAM based (parallel random access machine)
• Ide utamanya merepresentasikan tiap tiap PRAM
processor sebagai thread bukan
read dan write request dan replies.
Introduction PRAM

• PRAM merupakan kumpulan dari sejumlah pocessor.


• Mengakses share memory cell
• Setiap prosesor dapat memiliki lokal memori (register)
• PRAM instruksi mengeksekusi 3 fase cycle: read from
shared,local computation, write
• Prosessor mengekseskusi 3 fase PRAM instruksi synchronously.
• Dalam MTPA akses processor ke blok memori global tertentu
dibatasi .
MTPA PROGRAMMING
PRAM & Programming MTPA
• MTPA mengakuisisi algoritma PRAM untuk diterapkan
dalam MTPA parallel programming seperti algoritma prefix
sum dan parallel reduction
Prinsip dasar pemograman MTPA [1]
• Mengaktifkan sejumlah processor untuk membuat beberapa thread
• prosesor yang sudah diaktifkan (pada fase 1), melaksanakan
komputasi secara paralel untuk thread yg telah di buat.
• Instruksi yang digunakan :
• Fork, master thread yang membuat team dari concurrent threads .
• Join, ketika thread lengkap,thread disinkronisasi untuk
menunggu satu sama lain kemudian terminate.
Prinsip dasar pemograman MTPA [2]
• Pardo, abstraksi fork dan join
• Quit(void), Terminate the current thread.
• Fork,join,quit merupakan command untuk control multiple thread.
MTPA Algoritma
• Parallel Reduction
• Penjumlahan secara paralel merupakan
salah satu contoh dari operasi reduksi.
• contoh
• Reduksi secara paralel dapat digambarkan
dengan pohon biner. Sekelompok n nilai
ditambahkan dalam [ log p] langkah
penambahan paralel.
MTPA Algoritma[2]
• PREFIX SUM
• Diberikan sekumpulan n nilai a1, a2, …, an dan operasi asosiatif Å,
prefix sum akan menghitung:
• a1
• a1 + a2
• a1 + a2 +…+ an
• Misal : diberikan operasi + dan array integer {3, 1, 0, 4, 2},
hasil prefix sum adalah array dari {3, 4, 4, 8, 10}.
Runtime Variable
• Core count using moth_core_count() function
• Core count digunakan sebagai parameter untuk menentukan
number of cuncurrent thread
• Thread id
• menyediakan cara untuk membedakan antara clone thread
• Thread id dapat di baca menggunakan function moth_thread_id();
LANGUAGE CONSTRUCTS AND
COMPILATION
• mengunakan Parallel Reduction

w=100;
while ( w>0) {
Y = read();
w = 100; count = count =2;
while ( w>0) { FORK(L1);
y = read(); FORK(L2);
a = y * y; A = y * y;
r = y + 20; goto L4;
s = y – 10; L1: r = y + 20;
b = r * s; Goto L3;
c = a - b; L2: s = y - 1;
w = w –1; L3: JOIN(count1);
} B = r * s;
L4: JOIN(count2);
C = a - b;
w = C+ 1;}
LANGUAGE CONSTRUCTS AND COMPILATION
[2]
Parallel Programming with OpenMP
• An Application Program Interface (API) that may be used
to explicitly direct multi-threaded
• Menggunakan compiler yang Embed dalam c/c++ foltran
language.
• OpenMP uses the fork-join model of parallel execution:

Evaluasi
• Performance
• Silicon Area
• Power Consumption
Konfigurasi
SMASIM
A Cycle-accurate Scalable Multi-core
Architecture Simulator
SMASim
SMASim merupakan simulator software murni,
berdasarkan eksperimen multi-core moving threads
architecture, yang bekerja pada virtual parallel random
access machine (PRAM).
SMASim
• Diimplementasikan menggunakan hybrid object-functional
language Scala, dimana menggunakan notasi domain
 deklaratif yang lebih spesifik ketika menentukan bagian
dari arsitektur baru.

• Kinerja Core framework dan building blocks dari simulator


ini dioptimalkan secara maksimal sehingga menurunkan
kebutuhan alokasi memori
Fungsi SMASim
• Untuk menekan biaya pembuatan arstitektur software
baru yang mendukung new multi-core architectures pada
tingkatan abstraction yang berbeda-beda.
• Dapat mengukur kehandalan arsitektur software baru.
• Fungsi monitoring sistem
• Kinerja eksekusi yang optimal
SMASim
Aplikasi-aplikasi sejenis SMASim
• SimpleScalar
Pada sistem single-core menggunakan definition language.
• SESC
Menggunakan bahasa C++ pada arsitektur model
• PTLSim dan Bochs
Simulasi pada arsitektur x86
Implementasi SMASim
• Struktur SMASim terdiri dari subsistem independen yaitu:
• Message passing core
• Subsystem libraries
• Monitoring framework
• Graphical user interface
Message passing core
Inti dari SMASim adalah sistem event-driven message
passing. 

Setiap entitas yang relevan pada berbagai tingkat abstraksi


pada simulated target architecture sesuai dengan suatu
objek dalam model arsitektur. 

Satu set event handler berhubungan dengan setiap


entitas aktif dalam sistem. Tujuan dari handler adalah untuk
mengontrol data dinamis dan flow control  melalui
data dependensi dan event latencies.
Message passing core
Untuk menggambarkan kesederhanaan dari composing
architecture descriptions
Message passing core
Subsystem libraries
Simulator ini terdiri dari beberapa set subsistem libraries.
Yang terdiri dari:
• CPU subsystem
• Memory subsystem
• Network subsystem
• MIPS32 subsystem
Subsystem libraries
• CPU subsystem
Subsistem CPU berfungsi untuk decoding dan encoding
instruction streams dan loading binary images dari suatu
file.

• Memory subsystem
• Subsistem memori menyediakan komponen untuk
pemodelan berbagai jenis hirarki memori dasar
hirarki. 
• Saat ini yang didukung adalah komponen memori
dengan fix latency property, bank memori yang terdiri dari
penyimpanan komponen lainnya
Subsystem libraries
• Memory Subsystem

Sebagai contoh penggunaan
memori komponen, yang digunakan ketika
membangun komponen cache.
Subsystem libraries
• Network subsystem
Subsistem ini memberikan buffered network nodes sederhana
dan  topologi jaringan berbentuk bintang dengan
properti latency konstan dan kemampuan broadcast.
Subsystem libraries
• MIPS32 subsystem
Sebagai tembahan subsistem CPU, subsistem MIPS32 menyediakan
kerangka untuk mendefinisikan atau memperluas
instruksi MIPS dengan bantuan dari statically constrained domain
specific language. Dan juga berfungsi menyediakan encoders,
decoders, dan full semantic definitions, yang terdiri dari 1 set 69 core
arithmetic, logic, dan memory instructions
Subsystem libraries
• MIPS32 subsystem
Subsystem libraries
• MIPS32 subsystem
Monitoring framework
Sistem modular clock dari  simulasi framework
akan mengirimkan monitor runtime ke message
passing core. 

Fitur ini dapat digunakan untuk melihat


eksekusi apa saja yang telah dilakukan dalam
sistem, dan dapat juga dapat digunakan oleh
untuk mengekstrak data khusus  dari kejadian-
kejadian sebelumnya.
Monitoring framework
• Monitoring framework terdiri dari 5 bagian proses, yaitu:
• Execution monitor,
• Derived monitors,
• Cache monitor,
• Network monitor,
• Core monitor
Monitoring framework
• Execution monitor
Memantau pelaksanaan berbagai perintah yang diberikan dalam
monitoring framework.
Sebagian besar berguna untuk membangun monitor lain atau
debugging operasi tingkat rendah dari framework yang digunakan
dalam simulasi.
Secara standar sistem monitor ini hanya mengakumulasi history
tekstual dari eksekusi yang pernah dilakukan.
Monitoring framework
• Execution monitor

Monitoring ini akan menjadikan controler clock


sebagai proxy. Pada simulasi berikut, monitor akan
diletakan sebagai original controller clock.
Monitoring framework
• Derived monitors
Sistem message passing membentuk infrastruktur
komunikasi utama di dalam simulator. Hal ini memisahkan
unit fungsional (komponen) dari yang lain.

Satu keuntungan dari sistem pemantauan built-in adalah


pluggable dan terpisah dari desain simulator baru.
Eksekusi monitor dipicu oleh tiga hal, yaitu clock ticks,
executable enqueuing and execution.
Monitoring framework
• Cache monitor
Cache monitor dapat dipasangkan ke sebuah unit cache
memori. Selama simulasi berlangsung, cache monitor akan
mengumpulkan informasi tentang cache accesses, hits,
dan misses.
Cache hit ratio dan karakteristik latensi akan dihitung dari
data yang dipantau pada tiap waktunya.
Monitoring framework
• Network monitor
Sebuah monitor jaringan akan menelusuri jejak
paket  pada jaringan antar-prosesor dan setiap jenis
data yang bergerak dalam  generic network
Abstraction
Latency paket transmisi dan jumlah paket dan
byte yang ditransfer antar node akan terpantau oleh
network monitor. 
Semua jaringan yang terhubung ke controller
clock akan dipantau dan hasil output akan
dikelompokan sesuai dengan nama jaringannya.
Monitoring framework
• Core monitor
Dalam moving threads architecture, SMASim juga
menyediakan experimental general core monitor. 

Monitor secara simultan menunjukkan status dari


semua register internal, threads in execution, thread
queue and the thread packets dalam
berbagai buffer jaringan antar-prosesor. 
Monitoring framework

Snapshot  simulasi melalui core monitor dalam sistem 5-


core
Graphical user interface
• SMASim dapat digunakan menggunakan GUI (Graphical
User Interface), yang memiliki fungsi sbb:
• Konfigurasi berbagai subsistem dalam model
arsitektur
• Memuat executable binaries dari sistem file,
• Controlling dan exporting the simulation state,
• Mengamati keadaan subsistem, trace
simulation, dan data statistik , dan
• Berbagai kegunaan fungsi lainnya disassembling the
binaries atau displaying instruction sets
Graphical user interface
• Graphical user interface dibagi menjadi 2 bagian, yaitu:
• Controllers,
• Configuration
Graphical user interface
• Controllers
SMASim dapat dikontrol dengan controller frame.
Fungsi subsistem dapat ditambahkan ke dalam
controller dengan menggunakan satu baris kode.
Graphical user interface
• Configuration
GUI dapat dengan mudah dihubungkan dengan berbagai konfigurasi ad-
hoc struktur data. Dengan menggunakan paramater model arsitektur, maka
seluruh konfigurasi parameter dapat dijalankan hanya dengan satu baris kode.
SMASim
Sejauh ini SMASim tetap sebagai salah
satu simulator yang menggunakan target language untuk
mengekspresikan model arsitektur. 

Meskipun saat ini sudah banyak Simulator yang lebih baru,


namun SMASim tetap memiliki keunikan,  karena
Pemakaian Solusi Hybrid yang memungkinkan
pengkombinasian fungsi functioal dan object oriented
dari simulator’s implementation language dalam
membentuk suatu modular dan verified target
architecture model.
Kesimpulan
• MTPA merupakan pendekatan lain dalam arsitektur
prosesor multicore, dimana pendekatan ini berbeda
dengan dengan pendekatan pada prosesor konvensional
yang ada saat ini, yaitu moving data.
• Permasalahan umum yang terjadi pada prosesor
multicore konvensional tidak terjadi pada MTPA, yaitu
Cache Coherence dan Lamport’s sequential consistency.
Daftar Pustaka (1/2)
• Forsell, M., Leppanen, V. 2011. A Moving Thread
Processor Architecture MTPA. Springer, J Supercomput
(2011) 57:5-19.
• Makela, J., Leppanen, V. 2010. Towards Programming on
the Moving Threads Architecture. CompSysTech’10.
• Makela, J., Paakkulainen, J., Leppanen, V. 2009. MVTsim
– Software Simulator for Multicore on Chip Parallel
Computer Architectures. CompSysTech’09.
• Paakkulainen, J., Makela, J., Leppanen, V., Forsell, M.
2009. Outline of RISC-based Core for Multiprocessor on
Chip Architecture Supporting Moving Threads.
CompSysTech’09.
Daftar Pustaka (2/2)
• Makela, J., Paakkulainen, J., Leppanen, V. 2010.
SMASim manual version 1.0. TUCS Technical Report April
2010.
• Fork Join http://cis.poly.edu/muller/CS623/FORKJOIN.htm

“Thread (computer science)”,
http://en.wikipedia.org/wiki/Thread_(computer_science)

Fred Kuhns, Multiprocessors and Threads,

Anda mungkin juga menyukai