Jumat, 12 Desember 2008
Rabu, 10 Desember 2008
Processor Superscalar
Salah satu jenis dari arsitektur, dimana superscalar adalah sebuah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalm bentuk paralel.
Merupakan salah satu rancangan untuk meningkatkan kecepatan CPU. Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini. Standar pipeline yang digunakan adalah untuk pengolahan bilangan matematika integer (bilangan bulat, bilangan yang tidak memiliki pecahan), kebanyakan CPU juga memiliki kemampuan untuk pengolahan untuk data floating point (bilangan berkoma). Pipeline yang mengolah integer dapat juga digunakan untuk mengolah data bertipe floating point ini, namun untuk aplikasi tertentu, terutama untuk aplikasi keperluan ilmiah CPU yang memiliki kemampuan pengolahan floating point dapat meningkatkan kecepatan prosesnya secara dramatis.
Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya.
Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan.
Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada.
Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut.
Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya..
Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.
Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut.
Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor.
Processor Dari Generasi ke Generasi
mikroprosesor adalah sebuah IC (Integrated Circuit) yang digunakan sebagai otak/pengolah utama dalam sebuah sistem komputer.
Mikroprosesor merupakan hasil dari pertumbuhan semikonduktor.
Pertama kali MIkroprosesor dikenalkan pada tahun 1971 oleh Intel Corp,
yaitu Mikroprosesor Intel 4004 yang mempunyai arsitektur 4 bit.
Dengan penambahan beberapa peripheral (memori, piranti I/O, dsb) Mikroprosesor 4004 di ubah menjadi komputer kecil oleh intel.
Kemudian mikroprosesor ini di kembangkan lagi menjadi 8080 (berasitektur 8bit), 8085, dan kemudian 8086 (berasitektur 16bit).
Dilaen pihak perusahaan semikonduktor laen juga memperkenalkan dan mengembangkan mikroprosesor antara lain Motorola dengan M6800, dan Zilog dengan Z80nya.
Mikroprosesor Intel yang berasitektur 16 bit ini kebanyakan di akhiri oleh angka 86,
akan tetapi karena nomor tidak dapat digunakan untuk merek dagang mereka menggantinya dengan nama pentium untuk merek dagang Mikroprosesor generasi kelima mereka.
Arsitektur ini telah dua kali diperluas untuk mengakomodasi ukuran word yang lebih besar.
Di tahun 1985, Intel mengumumkan rancangan generasi 386 32-bit yang menggantikan rancangan generasi 286 16-bit.
Arsitektur 32-bit ini dikenal dengan nama x86-32 atau IA-32 (singkatan dari Intel Architecture, 32-bit). Kemudian pada tahun 2003, AMD memperkenalkan Athlon 64, yang menerapkan secara lebih jauh pengembangan dari arsitektur ini menuju ke arsitektur 64-bit, dikenal dengan beberapa istilah x86-64, AMD64 (AMD), EM64T atau IA-32e (Intel), dan x64 (Microsoft).
Untuk melihat sejarah perkembangan komponen elektronik bisa dilihat dibawah ini:
1904: Dioda tabung pertama kali diciptakan oleh seorang ilmuwan dari Inggris yang bernama Sir John Ambrose Fleming (1849-1945)
1906: ditemukan trioda hasil pengembangan dioda tabung oleh seorang ilmuwan Amerika yang bernama Dr. Lee De Forest. Yang kemudian terciptalah tetroda dan pentode.
Akan tetapi penggunaan dari tabung hampa tersebut tergeser pada tahun 1960 setelah ditemukannya komponen semikonduktor.
1947: Transistor diciptakan di labolatorium Bell.
1965: Gordon Moore dari Fairchild semiconductor dalam sebuah artikel untuk majalan elektronik mengatakan bahwa chip semikonduktor berkembang dua kali lipat setiap dua tahun selama lebih dari tiga dekade.
1968: Moore, Robert Noyce dan Andy Grove menemukan Intel Corp. untuk menjalankan bisnis "INTegrated ELectronics."
1969: Intel mengumumkan produk pertamanya, RAM statis 1101, metal oxide semiconductor (MOS) pertama di dunia. Ia memberikan sinyal pada berakhirnya era memori magnetis.
1971: Intel meluncurkan mikroprosesor pertama di dunia, 4-bit 4004, yang didesain oleh Federico Faggin.
1972: Intel mengumumkan prosesor 8-bit 8008. Bill Gates muda dan Paul Allen coba mengembangkan bahasa pemograman untuk chip tersebut, namun saat itu masih kurang kuat.
1974: Intel memperkenalkan prosesor 8-bit 8080, dengan 4.500 transistor yang memiliki kinerja 10 kali pendahulunya.
1975: Chip 8080 menemukan aplikasi PC pertamanya pada Altair 8800, sekaligus merevolusi PC. Gates dan Allen sukses mengembangkan bahasa dasar Altair, yang kemudian menjadi Microsoft Basic, untuk 8080.
1976: Arsitektur x86 mengalami kemunduran saat Steve Jobs dan Steve Wozniak memperkenalkan Apple II computer dengan menggunakan prosesor 8-bit Motorola 6502.
1978: Intel memperkenalkan mikroprosesor 16-bit 8086 yang kelak menjadi standar industri pada tanggal 8 Juni.
1979: Intel memperkenalkan versi dengan harga yang lebih murah dari 8086, yaitu 8088 dengan 8-bit bus.
1980: Intel memperkenalkan 8087 math co-processor.
1981: IBM memilih 8088 untuk menjalankan PC-nya. Seorang eksekutif Intel kemudian mengatakannya sebagai "Kemenangan besar pertama Intel."
1982: IBM menandatangani Advanced Micro Devices sebagai sumber kedua Intel untuk mikroprosesor 8086 dan 8088.
1982: Intel memperkenalkan prosesor 16-bit 80286 dengan 134.000 transistor.
1984: IBM mengembangkan PC generasi kedua, 80286-based PC-AT. PC-AT yang menjalankan MS-DOS,
kelak menjadi standar PC selama hampir 10 tahun.
1985: Intel keluar dari bisnis RAM dinamis untuk fokus pada mikroprosesor, dan akhirnya ia mengeluarkan prosesor 80386, sebuah chip 32-bit dengan 275.000 transistor dan kemampuan menjalankan berbagai macam program sekaligus.
1986: Compaq Computer melambungkan IBM dengan PC yang didasarkan pada 80386.
1987: VIA Technologies didirikan di Fremont, Calif., mereka akan mejual chip set core logic x86.
1989: 80486 diluncurkan, dengan 1.2 juta buah transistor dan built-in math co-processor.
Intel telah memprediksi pengembangan prosesor multicore suatu saat pada tahun 2000-an.
1990: Compaq memperkenalkan server PC pertama, yang dijalankan dengan menggunakan 80486.
1993: Transistor 3.1 juta, prosesor 66-MHz Pentium dengan teknologi superscalar diperkenalkan.
1994: AMD dan Compaq membentuk aliansi untuk mendukung Compaq computer dengan mikroprosesor Am486.
1997: Intel meluncurkan teknologi prosesor 64-bit Epic. Ia juga memperkenalkan MMX Pentium untuk aplikasi prosesor sinyal digital, yang juga mencakup grafik, audio, dan pemrosesan suara.
1998: Intel memperkenalkan prosesor Celeron di bulan April.
1999: VIA mengakuisisi Cyrix Corp. dan Centaur Technology, pembuat prosesor x86 dan x87 co-processor.
2000: Debut Pentium 4 dengan 42 juta transistor.
2003: AMD memperkenalkan x86-64, versi 64-bit dari x86 instruction set.
2004: AMD mendemonstrasikan x86 dual-core processor chip.
2005: Intel menjual prosesor Dual-Core pertamanya.
2006: Dell Inc. mengumumkan akan menawarkan system prosesor berbasis AMD.
2006: Intel Memperkenalkan prosesor core 2 duo di bulan juli.
2007: Intel memperkenalkan prosesor core 2 quad di bulan januari.
Merupakan salah satu rancangan untuk meningkatkan kecepatan CPU. Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini. Standar pipeline yang digunakan adalah untuk pengolahan bilangan matematika integer (bilangan bulat, bilangan yang tidak memiliki pecahan), kebanyakan CPU juga memiliki kemampuan untuk pengolahan untuk data floating point (bilangan berkoma). Pipeline yang mengolah integer dapat juga digunakan untuk mengolah data bertipe floating point ini, namun untuk aplikasi tertentu, terutama untuk aplikasi keperluan ilmiah CPU yang memiliki kemampuan pengolahan floating point dapat meningkatkan kecepatan prosesnya secara dramatis.
Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya.
Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan.
Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada.
Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut.
Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya..
Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.
Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut.
Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor.
Processor Dari Generasi ke Generasi
mikroprosesor adalah sebuah IC (Integrated Circuit) yang digunakan sebagai otak/pengolah utama dalam sebuah sistem komputer.
Mikroprosesor merupakan hasil dari pertumbuhan semikonduktor.
Pertama kali MIkroprosesor dikenalkan pada tahun 1971 oleh Intel Corp,
yaitu Mikroprosesor Intel 4004 yang mempunyai arsitektur 4 bit.
Dengan penambahan beberapa peripheral (memori, piranti I/O, dsb) Mikroprosesor 4004 di ubah menjadi komputer kecil oleh intel.
Kemudian mikroprosesor ini di kembangkan lagi menjadi 8080 (berasitektur 8bit), 8085, dan kemudian 8086 (berasitektur 16bit).
Dilaen pihak perusahaan semikonduktor laen juga memperkenalkan dan mengembangkan mikroprosesor antara lain Motorola dengan M6800, dan Zilog dengan Z80nya.
Mikroprosesor Intel yang berasitektur 16 bit ini kebanyakan di akhiri oleh angka 86,
akan tetapi karena nomor tidak dapat digunakan untuk merek dagang mereka menggantinya dengan nama pentium untuk merek dagang Mikroprosesor generasi kelima mereka.
Arsitektur ini telah dua kali diperluas untuk mengakomodasi ukuran word yang lebih besar.
Di tahun 1985, Intel mengumumkan rancangan generasi 386 32-bit yang menggantikan rancangan generasi 286 16-bit.
Arsitektur 32-bit ini dikenal dengan nama x86-32 atau IA-32 (singkatan dari Intel Architecture, 32-bit). Kemudian pada tahun 2003, AMD memperkenalkan Athlon 64, yang menerapkan secara lebih jauh pengembangan dari arsitektur ini menuju ke arsitektur 64-bit, dikenal dengan beberapa istilah x86-64, AMD64 (AMD), EM64T atau IA-32e (Intel), dan x64 (Microsoft).
Untuk melihat sejarah perkembangan komponen elektronik bisa dilihat dibawah ini:
1904: Dioda tabung pertama kali diciptakan oleh seorang ilmuwan dari Inggris yang bernama Sir John Ambrose Fleming (1849-1945)
1906: ditemukan trioda hasil pengembangan dioda tabung oleh seorang ilmuwan Amerika yang bernama Dr. Lee De Forest. Yang kemudian terciptalah tetroda dan pentode.
Akan tetapi penggunaan dari tabung hampa tersebut tergeser pada tahun 1960 setelah ditemukannya komponen semikonduktor.
1947: Transistor diciptakan di labolatorium Bell.
1965: Gordon Moore dari Fairchild semiconductor dalam sebuah artikel untuk majalan elektronik mengatakan bahwa chip semikonduktor berkembang dua kali lipat setiap dua tahun selama lebih dari tiga dekade.
1968: Moore, Robert Noyce dan Andy Grove menemukan Intel Corp. untuk menjalankan bisnis "INTegrated ELectronics."
1969: Intel mengumumkan produk pertamanya, RAM statis 1101, metal oxide semiconductor (MOS) pertama di dunia. Ia memberikan sinyal pada berakhirnya era memori magnetis.
1971: Intel meluncurkan mikroprosesor pertama di dunia, 4-bit 4004, yang didesain oleh Federico Faggin.
1972: Intel mengumumkan prosesor 8-bit 8008. Bill Gates muda dan Paul Allen coba mengembangkan bahasa pemograman untuk chip tersebut, namun saat itu masih kurang kuat.
1974: Intel memperkenalkan prosesor 8-bit 8080, dengan 4.500 transistor yang memiliki kinerja 10 kali pendahulunya.
1975: Chip 8080 menemukan aplikasi PC pertamanya pada Altair 8800, sekaligus merevolusi PC. Gates dan Allen sukses mengembangkan bahasa dasar Altair, yang kemudian menjadi Microsoft Basic, untuk 8080.
1976: Arsitektur x86 mengalami kemunduran saat Steve Jobs dan Steve Wozniak memperkenalkan Apple II computer dengan menggunakan prosesor 8-bit Motorola 6502.
1978: Intel memperkenalkan mikroprosesor 16-bit 8086 yang kelak menjadi standar industri pada tanggal 8 Juni.
1979: Intel memperkenalkan versi dengan harga yang lebih murah dari 8086, yaitu 8088 dengan 8-bit bus.
1980: Intel memperkenalkan 8087 math co-processor.
1981: IBM memilih 8088 untuk menjalankan PC-nya. Seorang eksekutif Intel kemudian mengatakannya sebagai "Kemenangan besar pertama Intel."
1982: IBM menandatangani Advanced Micro Devices sebagai sumber kedua Intel untuk mikroprosesor 8086 dan 8088.
1982: Intel memperkenalkan prosesor 16-bit 80286 dengan 134.000 transistor.
1984: IBM mengembangkan PC generasi kedua, 80286-based PC-AT. PC-AT yang menjalankan MS-DOS,
kelak menjadi standar PC selama hampir 10 tahun.
1985: Intel keluar dari bisnis RAM dinamis untuk fokus pada mikroprosesor, dan akhirnya ia mengeluarkan prosesor 80386, sebuah chip 32-bit dengan 275.000 transistor dan kemampuan menjalankan berbagai macam program sekaligus.
1986: Compaq Computer melambungkan IBM dengan PC yang didasarkan pada 80386.
1987: VIA Technologies didirikan di Fremont, Calif., mereka akan mejual chip set core logic x86.
1989: 80486 diluncurkan, dengan 1.2 juta buah transistor dan built-in math co-processor.
Intel telah memprediksi pengembangan prosesor multicore suatu saat pada tahun 2000-an.
1990: Compaq memperkenalkan server PC pertama, yang dijalankan dengan menggunakan 80486.
1993: Transistor 3.1 juta, prosesor 66-MHz Pentium dengan teknologi superscalar diperkenalkan.
1994: AMD dan Compaq membentuk aliansi untuk mendukung Compaq computer dengan mikroprosesor Am486.
1997: Intel meluncurkan teknologi prosesor 64-bit Epic. Ia juga memperkenalkan MMX Pentium untuk aplikasi prosesor sinyal digital, yang juga mencakup grafik, audio, dan pemrosesan suara.
1998: Intel memperkenalkan prosesor Celeron di bulan April.
1999: VIA mengakuisisi Cyrix Corp. dan Centaur Technology, pembuat prosesor x86 dan x87 co-processor.
2000: Debut Pentium 4 dengan 42 juta transistor.
2003: AMD memperkenalkan x86-64, versi 64-bit dari x86 instruction set.
2004: AMD mendemonstrasikan x86 dual-core processor chip.
2005: Intel menjual prosesor Dual-Core pertamanya.
2006: Dell Inc. mengumumkan akan menawarkan system prosesor berbasis AMD.
2006: Intel Memperkenalkan prosesor core 2 duo di bulan juli.
2007: Intel memperkenalkan prosesor core 2 quad di bulan januari.
RISC VS CISC
Cara sederhana untuk melihat kelebihan dan kelemahan dari arsitektur RISC (Reduced Instruction Set Computers) adalah dengan langsung membandingkannya dengan arsitektur pendahulunya yaitu CISC (Complex Instruction Set Computers).
Perkalian Dua Bilangan dalam Memori
Pada bagian kiri terlihat sebuah struktur memori (yang disederhanakan) suatu komputer secara umum. Memori tersebut terbagi menjadi beberapa lokasi yang diberi nomor 1 (baris): 1 (kolom) hingga 6:4. Unit eksekusi bertanggung-jawab untuk semua operasi komputasi. Namun, unit eksekusi hanya beroperasi untuk data-data yang sudah disimpan ke dalam salah satu dari 6 register (A, B, C, D, E atau F). Misalnya, kita akan melakukan perkalian (product) dua angka, satu disimpan di lokasi 2:3 sedangkan lainnya di lokasi 5:2, kemudian hasil perkalian tersebut dikembalikan lagi ke lokasi 2:3.
Pendekatan CISC
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja…
MULT 2:3, 5:2
MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau instruksi yang kompleks. Bekerja secara langsung melalui memori komputer dan tidak memerlukan instruksi lain seperti fungsi baca maupun menyimpan.
Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.
Pendekatan RISC
Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
Awalnya memang kelihatan gak efisien iya khan? Hal ini dikarenakan semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut.
CISC:
Penekanan pada perangkat keras Termasuk instruksi kompleks multi-clock Memori-ke-memori:“LOAD” dan “STORE”saling bekerjasama Ukuran kode kecil,kecepatan rendah Transistor digunakan untuk menyimpan instruksi2kompleks.
RISC:
Penekanan pada perangkat lunak Single-clock, hanya sejumlah kecil instruksi Register ke register: “LOAD” dan “STORE” adalah instruksi2 terpisah Ukuran kode besar,kecepatan (relatif) tinggi Transistor banyak dipakai
untuk register memori
Bagaimanapun juga, strategi pada RISC memberikan beberapa kelebihan. Karena masing-masing instruksi hanya membuthukan satu siklus detak untuk eksekusi, maka seluruh program (yang sudah dijelaskan sebelumnya) dapat dikerjakan setara dengan kecepatan dari eksekusi instruksi “MULT”. Secara perangkat keras, prosesor RISC tidak terlalu banyak membutuhkan transistor dibandingkan dengan CISC, sehingga menyisakan ruangan untuk register-register serbaguna (general purpose registers). Selain itu, karena semua instruksi dikerjakan dalam waktu yang sama (yaitu satu detak), maka dimungkinkan untuk melakukan pipelining.
Memisahkan instruksi “LOAD” dan “STORE” sesungguhnya mengurangi kerja yang harus dilakukan oleh prosesor. Pada CISC, setelah instruksi “MULT” dieksekusi, prosesor akan secara otomatis menghapus isi register, jika ada operan yang dibutuhkan lagi untuk operasi berikutnya, maka prosesor harus menyimpan-ulang data tersebut dari memori ke register. Sedangkan pada RISC, operan tetap berada dalam register hingga ada data lain yang disimpan ke dalam register yang bersangkutan.
Persamaan Unjuk-kerja (Performance)
Persamaan berikut biasa digunakan sebagai ukuran unjuk-kerja suatu komputer:
Pendekatan CISC bertujuan untuk meminimalkan jumlah instruksi per program, dengan cara mengorbankan kecepatan eksekusi sekian silus/detik. Sedangkan RISC bertolak belakang, tujuannya mengurangi jumlah siklus/detik setiap instruksi dibayar dengan bertambahnya jumlah instruksi per program.
Penghadang jalan (Roadblocks) RISC
Walaupun pemrosesan berbasis RISC memiliki beberapa kelebihan, dibutuhkan waktu kurang lebih 10 tahunan mendapatkan kedudukan di dunia komersil. Hal ini dikarenakan kurangnya dukungan perangkat lunak.
Walaupun Apple’s Power Macintosh menggunakan chip berbasis RISC dan Windows NT adalah kompatibel RISC, Windows 3.1 dan Windows 95 dirancang berdasarkan prosesor CISC. Banyak perusahaan segan untuk masuk ke dalam dunia teknologi RISC. Tanpa adanya ketertarikan komersil, pengembang prosesor RISC tidak akan mampu memproduksi chip RISC dalam jumlah besar sedemikian hingga harganya bisa kompetitif.
Kemerosotan juga disebabkan munculnya Intel, walaupun chip-chip CISC mereka semakin susah digunakan dan sulit dikembangkan, Intel memiliki sumberdaya untuk menjajagi dan melakukan berbagai macam pengembangan dan produksi prosesor-prosesor yang ampuh. Walaupun prosesor RISC lebih unggul dibanding Intel dalam beberapa area, perbedaan tersebut kurang kuat untuk mempengaruhi pembeli agar merubah teknologi yang digunakan.
Keunggulan RISC
Saat ini, hanya Intel x86 satu-satunya chip yang bertahan menggunakan arsitektur CISC. Hal ini terkait dengan adanya kemajuan teknologi komputer pada sektor lain. Harga RAM turun secara dramatis. Pada tahun 1977, DRAM ukuran 1MB berharga %5,000, sedangkan pada tahun 1994 harganya menjadi sekitar $6. Teknologi kompailer juga semakin canggih, dengan demikian RISC yang menggunakan RAM dan perkembangan perangkat lunak menjadi semakin banyak ditemukan.
Perkalian Dua Bilangan dalam Memori
Pada bagian kiri terlihat sebuah struktur memori (yang disederhanakan) suatu komputer secara umum. Memori tersebut terbagi menjadi beberapa lokasi yang diberi nomor 1 (baris): 1 (kolom) hingga 6:4. Unit eksekusi bertanggung-jawab untuk semua operasi komputasi. Namun, unit eksekusi hanya beroperasi untuk data-data yang sudah disimpan ke dalam salah satu dari 6 register (A, B, C, D, E atau F). Misalnya, kita akan melakukan perkalian (product) dua angka, satu disimpan di lokasi 2:3 sedangkan lainnya di lokasi 5:2, kemudian hasil perkalian tersebut dikembalikan lagi ke lokasi 2:3.
Pendekatan CISC
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja…
MULT 2:3, 5:2
MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau instruksi yang kompleks. Bekerja secara langsung melalui memori komputer dan tidak memerlukan instruksi lain seperti fungsi baca maupun menyimpan.
Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.
Pendekatan RISC
Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
Awalnya memang kelihatan gak efisien iya khan? Hal ini dikarenakan semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut.
CISC:
Penekanan pada perangkat keras Termasuk instruksi kompleks multi-clock Memori-ke-memori:“LOAD” dan “STORE”saling bekerjasama Ukuran kode kecil,kecepatan rendah Transistor digunakan untuk menyimpan instruksi2kompleks.
RISC:
Penekanan pada perangkat lunak Single-clock, hanya sejumlah kecil instruksi Register ke register: “LOAD” dan “STORE” adalah instruksi2 terpisah Ukuran kode besar,kecepatan (relatif) tinggi Transistor banyak dipakai
untuk register memori
Bagaimanapun juga, strategi pada RISC memberikan beberapa kelebihan. Karena masing-masing instruksi hanya membuthukan satu siklus detak untuk eksekusi, maka seluruh program (yang sudah dijelaskan sebelumnya) dapat dikerjakan setara dengan kecepatan dari eksekusi instruksi “MULT”. Secara perangkat keras, prosesor RISC tidak terlalu banyak membutuhkan transistor dibandingkan dengan CISC, sehingga menyisakan ruangan untuk register-register serbaguna (general purpose registers). Selain itu, karena semua instruksi dikerjakan dalam waktu yang sama (yaitu satu detak), maka dimungkinkan untuk melakukan pipelining.
Memisahkan instruksi “LOAD” dan “STORE” sesungguhnya mengurangi kerja yang harus dilakukan oleh prosesor. Pada CISC, setelah instruksi “MULT” dieksekusi, prosesor akan secara otomatis menghapus isi register, jika ada operan yang dibutuhkan lagi untuk operasi berikutnya, maka prosesor harus menyimpan-ulang data tersebut dari memori ke register. Sedangkan pada RISC, operan tetap berada dalam register hingga ada data lain yang disimpan ke dalam register yang bersangkutan.
Persamaan Unjuk-kerja (Performance)
Persamaan berikut biasa digunakan sebagai ukuran unjuk-kerja suatu komputer:
Pendekatan CISC bertujuan untuk meminimalkan jumlah instruksi per program, dengan cara mengorbankan kecepatan eksekusi sekian silus/detik. Sedangkan RISC bertolak belakang, tujuannya mengurangi jumlah siklus/detik setiap instruksi dibayar dengan bertambahnya jumlah instruksi per program.
Penghadang jalan (Roadblocks) RISC
Walaupun pemrosesan berbasis RISC memiliki beberapa kelebihan, dibutuhkan waktu kurang lebih 10 tahunan mendapatkan kedudukan di dunia komersil. Hal ini dikarenakan kurangnya dukungan perangkat lunak.
Walaupun Apple’s Power Macintosh menggunakan chip berbasis RISC dan Windows NT adalah kompatibel RISC, Windows 3.1 dan Windows 95 dirancang berdasarkan prosesor CISC. Banyak perusahaan segan untuk masuk ke dalam dunia teknologi RISC. Tanpa adanya ketertarikan komersil, pengembang prosesor RISC tidak akan mampu memproduksi chip RISC dalam jumlah besar sedemikian hingga harganya bisa kompetitif.
Kemerosotan juga disebabkan munculnya Intel, walaupun chip-chip CISC mereka semakin susah digunakan dan sulit dikembangkan, Intel memiliki sumberdaya untuk menjajagi dan melakukan berbagai macam pengembangan dan produksi prosesor-prosesor yang ampuh. Walaupun prosesor RISC lebih unggul dibanding Intel dalam beberapa area, perbedaan tersebut kurang kuat untuk mempengaruhi pembeli agar merubah teknologi yang digunakan.
Keunggulan RISC
Saat ini, hanya Intel x86 satu-satunya chip yang bertahan menggunakan arsitektur CISC. Hal ini terkait dengan adanya kemajuan teknologi komputer pada sektor lain. Harga RAM turun secara dramatis. Pada tahun 1977, DRAM ukuran 1MB berharga %5,000, sedangkan pada tahun 1994 harganya menjadi sekitar $6. Teknologi kompailer juga semakin canggih, dengan demikian RISC yang menggunakan RAM dan perkembangan perangkat lunak menjadi semakin banyak ditemukan.
Pipelining
Setelah mengetahui bagaimana mengubah setting Mozilla/Firefox, kini saatnya Anda melirik beberapa setting yang berguna untuk membuat browser ini lebih tanggap dan lebih cepat. Setidaknya ada tiga cara yang bisa Anda tempuh: mengaktifkan pipelining, menaikkan jumlah koneksi persisten maksimum, mengatur setting waktu tunda.
Dengan menempuh salah satu cara, mungkin dirasa sudah cukup untuk meningkatkan kinerja Mozilla ataupun Firefox. Tetapi, kalau Anda menginginkan kinerja maksimal pada browser alternatif itu, maka sebaiknya anda mencoba ketika cara itu sekaligus.
Mengaktifkan Pipelining
Pada koneksi web biasa, browser akan meminta data pada satu server dan menunggu sampai ada tanggapan sebelum mulai mengirim permintaan berikutnya, baik pada server yang sama atau pada server lain. Cara kerja seperti ini tentu saja memperlambat browser, terutama saat membuka banyak situs sekaligus.
Pada mode pipelining, browser tidak menunggu tanggapan server web sebelum mengirim permintaan berikutnya. Sebaliknya, browser akan tetap mengirim permintaan dan memproses tanggapan dari server-server web berdasarkan urutan permintaan. Mozilla/Firefox dan juga Opera mendukung mode ini. Dengan mengaktifkan pipelining pada Mozilla/Firefox anda bisa mendongkrak kecepatan browsing anda dengan cukup signifikan.
Sebenarnya mode ini sudah ada pada standar protokol HTTP versi 1.1. Hanya saja mode ini tidak didukung oleh seluruh browser dan server web. Karena mode ini tidak sepenuhnya dapat ditangani oleh beberapa server web, pengaktifan pipelining pada Mozilla/Firefox mungkin menimbulkan masalah. Karena itulah mode ini dinonaktifkan secara default.
Ada tiga setting untuk mengatur mode pipelining di Mozilla/Firefox: network.http.pipelining, network.http.proxy.pipelining, dan network.http.pipelining.maxrequests.
Setting pertama mengatur fitur pipelining pada koneksi tanpa proxy server. Sedangkan setting kedua mengatur koneksi dengan proxy server. Dengan mengubah kedua setting ini dari false menjadi true, maka Mozilla/Firefox akan menggunakan mode pipelining dalam koneksi HTTP.
Cara lain yang lebih mudah untuk mengaktifkan pipelining pada Mozilla adalah dengan membuka menu Edit->Preferences->HTTP Networking. Dengan mencentang pilihan mode pipelining, baik hubungan langsung (direct connection) maupun dengan proxy, Anda sudah menggunakan mode pipelining.
Setting ketiga, network.http.pipelining.maxrequests berguna untuk menentukan berapa banyak permintaan data yang bisa antri pada satu sambungan. Nilai default setting ini 4, dan nilai maksimumnya 8. Untuk mempercepat browser, anda bisa menaikkan nilai ini.
Sebagai contoh pengaturan tiga setting di atas menggunakan file user.js, buka file tersebut menggunakan editor teks favorit anda, dan ketikkan:
user_pref(“network.http.pipelining”, true);
user_pref(“network.http.proxy.pipelining”, true);
user_pref(“network.http.pipelining.maxrequests”, 8);
Mudah-mudahan cara ini bisa membantu akses sewaktu melakukan browsing di Internet.
Jumlah Koneksi Persisten
Bila browser membuka koneksi pada satu server web untuk meminta data, koneksi tersebut bisa dipertahankan atau bisa ditutup. Mempertahankan koneksi—terutama bila browser meminta data pada server yang sama berkali-kali—akan meningkatkan kinerja browser, karena membuka koneksi baru ke server memerlukan waktu. Karena itu memperbanyak jumlah koneksi maksimum yang dipertahankan (persisten) bisa meningkatkan kecepatan browsing Anda.
Cuma harus diingat bahwa membuka terlalu banyak koneksi akan melahap bandwidth terlalu besar. Bandwidth Internet bukan barang murah dan harus dibagi pada banyak pemakai, sehingga perilaku seperti ini tidak santun. Membuka koneksi terlalu banyak pada satu server juga akan memperburuk kinerjanya.
Untuk mengatur koneksi persisten pada Mozilla/Firefox, ada dua setting yang bisa Anda ubah: network.http.max-persistent-connections-per-server (mengatur jumlah maksimum koneksi persisten untuk tiap server web) yang bernilai default 2; network.http.max-persistent-connections-per-proxy (jumlah maksimum koneksi persisten via proxy server) yang bernilai default 4.
Nilai default ini adalah rekomendasi dari spesifikasi protokol HTTP, sehingga sebaiknya bila Anda menaikkan nilai tersebut bedanya tidak terlalu jauh. Contoh kode untuk file user.js adalah sebagai berikut:
user_pref(“network.http.max-persistent-connections-per-server”, 4);
user_pref(“network.http.max-persistent-connections-per-proxy”, 8);
Ini juga merupakan salah satu trik untuk mempercepat koneksi browser Mozilla Anda ke Internet. @ k8
Dengan menempuh salah satu cara, mungkin dirasa sudah cukup untuk meningkatkan kinerja Mozilla ataupun Firefox. Tetapi, kalau Anda menginginkan kinerja maksimal pada browser alternatif itu, maka sebaiknya anda mencoba ketika cara itu sekaligus.
Mengaktifkan Pipelining
Pada koneksi web biasa, browser akan meminta data pada satu server dan menunggu sampai ada tanggapan sebelum mulai mengirim permintaan berikutnya, baik pada server yang sama atau pada server lain. Cara kerja seperti ini tentu saja memperlambat browser, terutama saat membuka banyak situs sekaligus.
Pada mode pipelining, browser tidak menunggu tanggapan server web sebelum mengirim permintaan berikutnya. Sebaliknya, browser akan tetap mengirim permintaan dan memproses tanggapan dari server-server web berdasarkan urutan permintaan. Mozilla/Firefox dan juga Opera mendukung mode ini. Dengan mengaktifkan pipelining pada Mozilla/Firefox anda bisa mendongkrak kecepatan browsing anda dengan cukup signifikan.
Sebenarnya mode ini sudah ada pada standar protokol HTTP versi 1.1. Hanya saja mode ini tidak didukung oleh seluruh browser dan server web. Karena mode ini tidak sepenuhnya dapat ditangani oleh beberapa server web, pengaktifan pipelining pada Mozilla/Firefox mungkin menimbulkan masalah. Karena itulah mode ini dinonaktifkan secara default.
Ada tiga setting untuk mengatur mode pipelining di Mozilla/Firefox: network.http.pipelining, network.http.proxy.pipelining, dan network.http.pipelining.maxrequests.
Setting pertama mengatur fitur pipelining pada koneksi tanpa proxy server. Sedangkan setting kedua mengatur koneksi dengan proxy server. Dengan mengubah kedua setting ini dari false menjadi true, maka Mozilla/Firefox akan menggunakan mode pipelining dalam koneksi HTTP.
Cara lain yang lebih mudah untuk mengaktifkan pipelining pada Mozilla adalah dengan membuka menu Edit->Preferences->HTTP Networking. Dengan mencentang pilihan mode pipelining, baik hubungan langsung (direct connection) maupun dengan proxy, Anda sudah menggunakan mode pipelining.
Setting ketiga, network.http.pipelining.maxrequests berguna untuk menentukan berapa banyak permintaan data yang bisa antri pada satu sambungan. Nilai default setting ini 4, dan nilai maksimumnya 8. Untuk mempercepat browser, anda bisa menaikkan nilai ini.
Sebagai contoh pengaturan tiga setting di atas menggunakan file user.js, buka file tersebut menggunakan editor teks favorit anda, dan ketikkan:
user_pref(“network.http.pipelining”, true);
user_pref(“network.http.proxy.pipelining”, true);
user_pref(“network.http.pipelining.maxrequests”, 8);
Mudah-mudahan cara ini bisa membantu akses sewaktu melakukan browsing di Internet.
Jumlah Koneksi Persisten
Bila browser membuka koneksi pada satu server web untuk meminta data, koneksi tersebut bisa dipertahankan atau bisa ditutup. Mempertahankan koneksi—terutama bila browser meminta data pada server yang sama berkali-kali—akan meningkatkan kinerja browser, karena membuka koneksi baru ke server memerlukan waktu. Karena itu memperbanyak jumlah koneksi maksimum yang dipertahankan (persisten) bisa meningkatkan kecepatan browsing Anda.
Cuma harus diingat bahwa membuka terlalu banyak koneksi akan melahap bandwidth terlalu besar. Bandwidth Internet bukan barang murah dan harus dibagi pada banyak pemakai, sehingga perilaku seperti ini tidak santun. Membuka koneksi terlalu banyak pada satu server juga akan memperburuk kinerjanya.
Untuk mengatur koneksi persisten pada Mozilla/Firefox, ada dua setting yang bisa Anda ubah: network.http.max-persistent-connections-per-server (mengatur jumlah maksimum koneksi persisten untuk tiap server web) yang bernilai default 2; network.http.max-persistent-connections-per-proxy (jumlah maksimum koneksi persisten via proxy server) yang bernilai default 4.
Nilai default ini adalah rekomendasi dari spesifikasi protokol HTTP, sehingga sebaiknya bila Anda menaikkan nilai tersebut bedanya tidak terlalu jauh. Contoh kode untuk file user.js adalah sebagai berikut:
user_pref(“network.http.max-persistent-connections-per-server”, 4);
user_pref(“network.http.max-persistent-connections-per-proxy”, 8);
Ini juga merupakan salah satu trik untuk mempercepat koneksi browser Mozilla Anda ke Internet. @ k8
Langganan:
Postingan (Atom)