Professional Documents
Culture Documents
Abstrak
Kompilasi memiliki sejarah panjang menerjemahkan kode-dibaca manusia
programmer ke dalam instruksi mesin dirancang untuk membuat baik penggunaan komputer
target tertentu. Dalam tulisan ini, kami meresmikan kerangka compiler yang secara luas
mendefinisikan tugas kompilasi untuk menyertakan output deskripsi mesin disesuaikan untuk
program masukan yang akan digunakan untuk menghasilkan komputer target. Program ini
disusun kemudian akan dijalankan pada dihasilkan komputer. Terinspirasi oleh penelitian
dalam eksplorasi ruang desain, pendekatan kompilasi ini mengeksploitasi diusulkan
kemampuan nanocomputers, yang berada di kelas arsitektur paralel reconfigurable. Ini
muncul teknologi hardware bergantung pada molekul desain tingkat dibuat sirkuit untuk
meminimalkan ukuran fitur sekaligus menciptakan sebuah matriks besar unit pengolahan
reconfigurable, aplikasi dari bidang memajukan nanoteknologi. Kami mengidentifikasi
masalah desain dan hasil awal ini yang mendukung karya sebelumnya di daerah ini dan
mengusulkan arah masa depan.
Kata kunci:
Nanocompilers, nanocomputers, komputasi kinerja tinggi, komputasi reconfigurable
1. Perkenalan
Kompilasi
tradisional
untuk
komputer performa tinggi bergantung pada
berbagai analisis canggih dan optimasi
untuk menerjemahkan program bahasa
sumber ke dalam kode mesin biner efisien
untuk target tertentu arsitektur [1]. Untuk
melakukan terjemahan ini, compiler
mengurai program sumber, menerapkan
mesin-independen optimasi pada bentuk
peralihan abstrak program. Berikutnya,
optimasi tergantung mesin yang dilakukan
dengan tujuan menghasilkan semoga
peningkatan yang signifikan terhadap
kinerja yang dihasilkan tersebut program
dieksekusi. Perbaikan ini dibuat dengan
atribut tertentu dari mesin target, atau
prosesor, di mana program ini akan
berjalan dalam pikiran. [1]
Prosesor yang berbeda dapat
berbeda secara dramatis dalam perbaikan
kode yang bekerja terbaik untuk mereka.
mengaktifkan
pengukuran
liveness
variabel, paralelisme yang melekat,
perilaku bercabang, subexpressions umum,
memori pola akses, pemanfaatan cache,
daftar
peluang
alokasi,
peluang
penjadwalan instruksi, dan banyak metrik
karakteristik terkait lainnya adalah
kandidat. Semua dapat memberikan
informasi untuk memandu generasi dari
mesin deskripsi yang cocok untuk program
sumber. Pertimbangan utama adalah
kemampuan
untuk
mengumpulkan
informasi tentang karakteristik statis atau
perilaku
prediksi
sumber
untuk
memungkinkan produksi deskripsi mesin
terbaik-fit.
3 Compiler Desain
Tujuan utama dari pekerjaan awal
yang dilaporkan dalam makalah ini adalah
desain compiler yang menghasilkan output
sebagai kedua versi executable dari
program sumber asli dan deskripsi mesin
yang dieksekusi akan berjalan dengan baik.
Penelitian ini berfokus pada arsitektur ILP,
meskipun konsep juga berlaku lebih luas
untuk mencakup pendekatan kasar-butiran.
Compiler tradisional mengambil kode
sumber dan menerjemahkannya ke dalam
bentuk biner yang cocok untuk prosesor
yang spesifik, dioptimalkan untuk berjalan
dengan sebaik-baiknya pada mesin sasaran.
Pengetahuan tentang mesin target adalah
diperlukan untuk melakukan optimasi
tergantung mesin. Pendekatan kami
berbeda dalam bahwa konfigurasi dari
target Mesin tidak diketahui saat kompilasi
dimulai. Konfigurasi mesin diekstrak dari
program sumber, berdasarkan kebutuhan
sumber dayanya. Dengan cara ini, mesin
yang dihasilkan sangat cocok untuk
program ini.
Untuk menemukan deskripsi mesin
ini, compiler harus melakukan sejumlah
analisis
yang
dirancang
untuk
mengungkapkan kebutuhan program.
Misalnya, analisis variabel hidup dapat
dilakukan untuk membantu menentukan
berapa banyak register dibutuhkan. Namun,
4 Studi Eksperimen
Prototipe dari pendekatan kompilasi kami telah diimplementasikan sebagai
perpanjangan dari penelitian Trimaran Sistem compiler [22]. Trimaran dipilih untuk EPIC
simulator reconfigurable dan kemudahan ekstensi. Untuk ini penelitian, kami dimodifikasi
Trimaran dengan mengisolasi output dari analisis variabel hidup dan modul penjadwalan
untuk menggabungkan data mereka ke dalam generator deskripsi mesin. Percobaan dalam
penelitian awal ini difasilitasi dengan penggunaan sejumlah skrip kontrol tingkat tinggi dan
driver yang dikembangkan sebagai bagian dari terkait ILP bertarget penelitian optimasi
compiler [23].
Eksperimen dirancang dan dilakukan untuk membandingkan dampak dari pendekatan
nanocompiler kami pada program kinerja. Percobaan dilakukan pada set lengkap delapan
benchmark C di SPEC95 CINT suite. Program disusun dan dijalankan pada lima prosesor
pra-dikonfigurasi EPIC dan kustom 6 dihasilkan EPIC prosesor. Keenam konfigurasi terdiri
dari 1-4 unit fungsional (baik integer dan floating point), 1-4 memori unit, 1-2 unit kontrol
cabang (untuk mengelola sejarah cabang, prediksi, dll), dan register sebanding dengan jumlah
unit fungsional (64 per). Perhatikan bahwa 6 kustom prosesor yang dihasilkan bervariasi
dalam jumlah fungsional, memori dan unit cabang. Prosesor simulasi menghasilkan
berlebihan statistik statis dan dinamis, termasuk mesin siklus dikonsumsi, operasi yang
dilakukan, perilaku memori dan akses cache, dan pemanfaatan prosesor. Hitungan siklus
mesin yang digunakan untuk menghitung percepatan, karena simulasi di Trimaran dilakukan
independen dari spesifik frekuensi clock cycle.
Kami awalnya diharapkan bahwa prosesor untuk tujuan umum hati-hati tangandikonfigurasi akan memberikan yang terbaik secara keseluruhan kinerja untuk seluruh paket
benchmark. Hasil pada Tabel 2 menunjukkan bahwa wajar dan umum konfigurasi mesin
memang menghasilkan kinerja percepatan yang baik. Tabel 2 menyajikan speedup selama
empat mesin konfigurasi, serta kebiasaan, berasal, konfigurasi mesin dibandingkan dengan
sequential 6, dasar konfigurasi prosesor (Machine # 1, tidak ditampilkan).
Tabel 2: Perbandingan speedup untuk berbagai konfigurasi arsitektur. Catat itu
Mesin # 1, prosesor berurutan digunakan untuk perbandingan dasar, tidak ditampilkan
Untuk setiap konfigurasi, jumlah unit fungsional, unit memori dan unit kontrol cabang
yang akan ditampilkan. Untuk Misalnya, "4F, 2M, 1B" menandakan mesin dikonfigurasi
dengan 4 unit fungsional, 2 unit memori dan satu cabang Unit. Juga ditunjukkan pada Tabel 2
adalah biaya untuk setiap konfigurasi, berdasarkan fungsi biaya C, di mana f, b dan m adalah
jumlah fungsional, cabang dan memori unit, masing-masing. Fungsi biaya adalah:
Nilai F, B dan M yang berat konstan ditugaskan untuk fungsional, cabang dan memori
unit untuk mencoba untuk menetapkan biaya berdasarkan kompleksitas dan meningkatkan
latency dari peningkatan jumlah setiap jenis unit. Nilai-nilai ditugaskan untuk ini adalah: F =
10, B = 20, M = 100. Sebagai contoh, biaya dihitung dari mesin # 1, berurutan yang prosesor
(1F, 1M, 1B), adalah 130.
Referensi
[1] D. F. Bacon, S. L. Graham, and O. J. Sharp. Compiler transformations for high-performance computing. Computing
Systems, 26(4):345420, 1994.
[2] P. Beckett, and A. Jennings. Towards nanocomputer architecture. Seventh Asia-Pacific Computer Systems Architecture
Conference (ACSAC 2002), 2002.
[3] T. J. Callahan, J. R. Hauser, and J. Wawrzynek. The Garp architecture and C compiler. Computer, 33(4):62-69, Apr.
2000.
[4] J. E. Carrillo, and P. Chow. The effect of reconfigurable units in superscalar processors. FPGA 2001, Feb. 11-13, 2001.
[5] M. Cintra, and D. R. Llanos. Toward Efficient and Robust Software Speculative Parallelization in Multiprocessors. In
Proceedings of ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, June 2003.
[6] C. P. Collier, and et al. Electronically configurable molecular-based logic gates. Science, 285:391-394, 1999.
[7] C. Compton, and S. Hauck. An introduction to reconfigurable computing. IEEE Computer, April 2000.
[8] K. E. Drexler. Nanosystems: Molecular machinery, manufacturing and computation. Wiley & Sons, Inc. 1992.
[9] L. J. K. Durbeck, and N. J. Macias. The Cell Matrix: an architecture for nanocomputing. Nanotechnology, 12:217-230,
2001.
[10] Foresight Nanotech Institute. Web site at http://www.foresight.org, accessed June 2005.
[11] P. Ghosh, R. Mangaser, C. Mark, and K. Rose. Interconnect-dominated VLSI design. Proceedings of the 20th
anniversary
conference on advanced research in VLSI, 114-122, Mar. 1999.
[12] W. Gibbs. A Split at the Core. Scientific American, pages 96-101, November 2004.
[13] S. C. Goldstein, H. Schmit, M. Budiu, S. Cadambi, M. Roe, and R. R. Tyalor. PipRench: A reconfigurable architecture
and compiler. Computer, 33(4):70-77, Apr. 2000.
[14] J. L. Hennessy, and D. A. Patterson. Computer architecture: a quantitative approach. Third edition, Morgan Kaufmann
Publishers, San Francisco, 2003.
[15] IBM. Blue Gene to tackle protein folding grand challenge, available online at
http://www.research.ibm.com/bluegene/press_release.html, 1999.
[16] R. C. Merkle. Design considerations for an assembler. Nanotechnology, 7(3):210-215, 1996.
[17] M. Montemerlo, C. Love, G. Opiteck, D. Goldhaber-Gordon, and J. Ellenbogen. Technologies and designs for
electronic
nanocomputers. The Mitre Corporation, http://www.mitre.org/technology/nanotech, 1996.
[18] G. Moore. Cramming more components onto integrated circuits. Electronics, 38(8):114-117, April 19, 1965.
[19] H. Moravec. When will computer hardware match the human brain? Journal of Transhumanism, vol. 1,
http://www.transhumanist.com/volume1/moravec.htm, 1998.
[20] M. C. Roco. Government nanotechnology funding: an international outlook. National Science Foundation, accessed at
http://www.nano.gov, June 2005.
[21] G. L. Timp, R. E. Howard, and P. M. Mankiewich. Nano-electronics for advanced computation and communication.
Nanotechnology. G. L. Timp (ed). New York. Springer-Verlag, Inc. 1999.
[22] A. Nene, S. Talla, B. Goldberg, and R. M. Rabbah. Trimaran an infrastructure for compiler research in instructionlevel
parallelism user manual, 1998. http://www.trimaran.org. New York University.
[23] T. Way, B. Breech, W. Du, and L. Pollock. Evaluation of a region-based partial inlining algorithm for an ILP
optimizing
compiler. IASTED PDCS 2002, pages 705-710, Cambridge, Mass., November 2002.
[24] S. Abraham and B. Rau. Efficient design space exploration in PICO. CASES 2000, San Jose, 71-79, Nov. 2000.
[25] B. So, M. Hall and P. Diaz. A Compiler approach to fast hardware design space exploration in FPGA-based systems.
ACM
PLDI 2002, Berlin, Germany, June, 2002.
[26] K. Sekar, K. Lahiri and S. Dey. Dynamic platform management for configurable platform-based system-on-chips.
Proceedings of the International Conference on Computer Aided Design (ICCAD 2003), 641-648, Nov., 2003.
[27] V. Kathail, S. Aditya, R. Schreiber, B. R. Rau, D. C. Cronquist, M. Sivaraman. PICO: Automatically designing custom
computers. IEEE Computer, 39-47, Sept. 2002.
Oleh