Skip to content Skip to sidebar Skip to footer

Bagaimana Cara Mikroprosesor Bekerja

Bagaimana Cara Mikroprosesor Bekerja

Komputer yang Anda gunakan untuk membaca halaman ini menggunakan mikroprosesor untuk melakukan tugasnya. Mikroprosesor adalah jantung dari setiap komputer normal, baik itu mesin desktop, server, atau laptop.

Mikroprosesor yang Anda gunakan mungkin Pentium, K6, PowerPC, Sparc, atau salah satu dari banyak merek dan jenis mikroprosesor lainnya, tetapi semuanya melakukan hal yang kira-kira sama dengan cara yang kurang lebih sama.

Mikroprosesor juga dikenal sebagai CPU atau central processing unit adalah mesin komputasi lengkap yang dibuat pada satu chip. Mikroprosesor pertama adalah Intel 4004, yang diperkenalkan pada tahun 1971. 4004 tidak terlalu bertenaga, yang dapat dilakukannya hanyalah menambah dan mengurangi, dan hanya dapat melakukannya 4 bit dalam satu waktu.

Tapi sungguh menakjubkan bahwa semuanya ada dalam satu chip. Sebelum 4004, para insinyur membangun komputer baik dari koleksi chip atau dari komponen diskrit (kabel transistor satu per satu). 4004 menggunakan salah satu kalkulator elektronik portabel pertama.

Jika Anda pernah bertanya-tanya apa yang dilakukan mikroprosesor di komputer Anda, atau jika Anda pernah bertanya-tanya tentang perbedaan antara jenis-jenis mikroprosesor, baca terus. Pada artikel ini, Anda akan mempelajari bagaimana teknik logika digital yang cukup sederhana memungkinkan komputer melakukan tugasnya, baik itu bermain game atau memeriksa ejaan dokumen!

Perkembangan Mikroprosesor: Intel

Mikroprosesor pertama yang membuatnya menjadi komputer rumahan adalah Intel 8080, komputer 8-bit lengkap dalam satu chip, diperkenalkan pada tahun 1974. Mikroprosesor pertama yang membuat percikan nyata di pasar adalah Intel 8088, diperkenalkan pada tahun 1979 dan digabungkan ke dalam IBM PC (yang pertama kali muncul sekitar tahun 1982).

Bagaimana Cara Mikroprosesor Bekerja

Jika Anda sudah familiar dengan pasar PC dan sejarahnya, Anda tahu bahwa pasar PC pindah dari 8088 ke 80286 ke 80386 ke 80486 ke Pentium ke Pentium II ke Pentium III ke Pentium 4. Semua ini mikroprosesor dibuat oleh Intel dan semuanya merupakan perbaikan pada desain dasar 8088. Pentium 4 dapat mengeksekusi potongan kode apa pun yang berjalan pada 8088 asli, tetapi itu melakukannya sekitar 5.000 kali lebih cepat!

Sejak 2004, Intel telah memperkenalkan mikroprosesor dengan banyak inti dan jutaan transistor lainnya. Tetapi bahkan mikroprosesor ini mengikuti aturan umum yang sama seperti chip sebelumnya.

Bagaimana Cara Mikroprosesor Bekerja

Informasi tambahan tentang tabel di halaman ini:

● Tanggal adalah tahun pertama kali prosesor tersebut diperkenalkan. Banyak prosesor yang diperkenalkan kembali pada kecepatan clock yang lebih tinggi selama bertahun-tahun setelah tanggal rilis aslinya.

● Transistor adalah jumlah transistor pada chip. Anda dapat melihat bahwa jumlah transistor pada satu chip terus meningkat selama bertahun-tahun.

● Mikron adalah lebar, dalam mikron, dari kabel terkecil pada chip. Sebagai perbandingan, rambut manusia memiliki ketebalan 100 mikron. Saat ukuran fitur pada chip menurun, jumlah transistor meningkat.

● Kecepatan clock adalah kecepatan maksimum chip dapat dihitung. Kecepatan jam akan lebih masuk akal di bagian selanjutnya.

● Lebar Data adalah lebar ALU. ALU 8-bit dapat menambah/mengurangi/mengalikan dll. dua angka 8-bit, sedangkan ALU 32-bit dapat memanipulasi angka 32-bit. ALU 8-bit harus menjalankan empat instruksi untuk menambahkan dua angka 32-bit, sedangkan ALU 32-bit dapat melakukannya dalam satu instruksi. Dalam banyak kasus, bus data eksternal memiliki lebar yang sama dengan ALU, tetapi tidak selalu. 8088 memiliki ALU 16-bit dan bus 8-bit, sedangkan Pentium modern mengambil data 64 bit sekaligus untuk ALU 32-bit mereka.

● MIPS adalah singkatan dari "millions of instructions per second" dan merupakan ukuran kasar kinerja CPU. CPU modern dapat melakukan begitu banyak hal berbeda sehingga peringkat MIPS kehilangan banyak artinya, tetapi Anda bisa mendapatkan gambaran umum tentang kekuatan relatif CPU dari kolom ini.

Dari tabel ini Anda dapat melihat bahwa, secara umum, ada hubungan antara kecepatan jam dan MIPS. Kecepatan clock maksimum adalah fungsi dari proses pembuatan dan penundaan di dalam chip. Ada juga hubungan antara jumlah transistor dan MIPS. Misalnya, 8088 clock pada 5 MHz tetapi hanya dieksekusi pada 0,33 MIPS (sekitar satu instruksi per 15 siklus clock). Prosesor modern seringkali dapat mengeksekusi dengan kecepatan dua instruksi per siklus clock. Peningkatan tersebut secara langsung berkaitan dengan jumlah transistor pada chip dan akan lebih masuk akal pada bagian selanjutnya.

Apa itu Chip?

Chip juga disebut sirkuit terintegrasi. Umumnya ini adalah sepotong silikon kecil dan tipis yang di atasnya transistor yang menyusun mikroprosesor telah diukir. Sebuah chip mungkin berukuran satu inci di satu sisi dan dapat berisi puluhan juta transistor. Prosesor yang lebih sederhana mungkin terdiri dari beberapa ribu transistor yang terukir pada sebuah chip yang hanya berukuran beberapa milimeter persegi.

Microprocessor Logic

Untuk memahami cara kerja mikroprosesor, ada baiknya untuk melihat ke dalam dan mempelajari logika yang digunakan untuk membuatnya. Dalam prosesnya, Anda juga dapat mempelajari bahasa assembly bahasa asli mikroprosesor dan banyak hal yang dapat dilakukan teknisi untuk meningkatkan kecepatan prosesor.

Bagaimana Cara Mikroprosesor Bekerja

Mikroprosesor menjalankan sekumpulan instruksi mesin yang memberi tahu prosesor apa yang harus dilakukan. Berdasarkan petunjuknya, mikroprosesor melakukan tiga hal dasar:

● Menggunakan ALU (Arithmetic/Logic Unit), mikroprosesor dapat melakukan operasi matematika seperti penjumlahan, pengurangan, perkalian dan pembagian. Mikroprosesor modern berisi prosesor floating point lengkap yang dapat melakukan operasi yang sangat canggih pada bilangan floating point besar.

● Mikroprosesor dapat memindahkan data dari satu lokasi memori ke lokasi lain.
Mikroprosesor dapat membuat keputusan dan melompat ke serangkaian instruksi baru berdasarkan keputusan tersebut.

● Mungkin ada hal-hal yang sangat canggih yang dilakukan mikroprosesor, tetapi itu adalah tiga aktivitas dasarnya. Diagram berikut menunjukkan mikroprosesor yang sangat sederhana yang mampu melakukan tiga hal tersebut:

Ini sesederhana mikroprosesor. Mikroprosesor ini memiliki:

● Bus alamat (yang mungkin berukuran lebar 8, 16 atau 32 bit) yang mengirimkan alamat ke memori.

● Bus data (yang mungkin berukuran lebar 8, 16 atau 32 bit) yang dapat mengirim data ke memori atau menerima data dari memori.

● Baris RD (baca) dan WR (tulis) untuk memberi tahu memori apakah ia ingin menyetel atau mendapatkan lokasi yang dituju.

● Garis jam yang memungkinkan pulsa clock mengurutkan prosesor.

● Garis reset yang me-reset penghitung program ke nol (atau apa pun) dan memulai ulang eksekusi.

Mari kita asumsikan bahwa alamat dan bus data memiliki lebar 8 bit dalam contoh ini.

Berikut adalah komponen mikroprosesor sederhana ini:

● Register A, B dan C hanyalah kait yang terbuat dari sandal jepit.
● Latch alamat seperti register A, B dan C.
● Penghitung program adalah pengunci dengan kemampuan ekstra untuk bertambah 1 saat disuruh, dan juga untuk mengatur ulang ke nol saat disuruh melakukannya.
● ALU bisa sesederhana penambah 8-bit (lihat bagian tentang penambah dalam Cara Kerja Logika Boolean untuk detailnya), atau mungkin dapat menambah, mengurangi, mengalikan, dan membagi nilai 8-bit. Mari kita asumsikan yang terakhir di sini.
● Register uji adalah kait khusus yang dapat menampung nilai dari perbandingan yang dilakukan di ALU. Sebuah ALU biasanya dapat membandingkan dua angka dan menentukan apakah keduanya sama, jika salah satu lebih besar dari yang lain, dll. Test register biasanya juga dapat menampung bit carry dari tahap terakhir dari penambah. Ini menyimpan nilai-nilai ini dalam sandal jepit dan kemudian dekoder instruksi dapat menggunakan nilai-nilai tersebut untuk membuat keputusan.
● Ada enam kotak bertanda "3-State" dalam diagram. Ini adalah buffer tri-state. Buffer tri-state dapat melewatkan 1, a 0 atau pada dasarnya dapat memutuskan outputnya (bayangkan sakelar yang benar-benar memutuskan jalur output dari kabel yang dituju oleh output). Buffer tri-state memungkinkan beberapa output terhubung ke kabel, tetapi hanya satu dari mereka yang benar-benar mendorong 1 atau 0 ke saluran.
● Register instruksi dan dekoder instruksi bertanggung jawab untuk mengontrol semua komponen lainnya.

Meskipun tidak ditampilkan dalam diagram ini, akan ada garis kontrol dari dekoder instruksi yang akan:

● Memberi tahu register A untuk mengunci nilai yang saat ini ada di bus data.
● Memberi tahu register B untuk mengunci nilai yang saat ini ada di bus data.
● Memberi tahu register C untuk mengunci nilai yang saat ini dikeluarkan oleh ALU.
● Memberi tahu register pencacah program untuk mengunci nilai saat ini di bus data.
● Memberi tahu register alamat untuk mengunci nilai yang saat ini ada di bus data.
● Memberi tahu register instruksi untuk mengunci nilai yang saat ini ada di bus data.
● Memberi tahu penghitung program untuk kenaikan.
● Memberi tahu penghitung program untuk mengatur ulang ke nol.
● Mengaktifkan salah satu dari enam buffer tri-state (enam baris terpisah).
● Memberi tahu ALU operasi apa yang harus dilakukan.
● Memberi tahu register uji untuk mengunci bit uji ALU.
● Mengaktifkan baris RD.
● Mengaktifkan baris WR.

Yang masuk ke dekoder instruksi adalah bit dari register uji dan garis jam, serta bit dari register instruksi.

Memori Mikroprosesor

Bagian sebelumnya berbicara tentang address dan data bus, serta garis RD dan WR. Bus dan jalur ini terhubung ke RAM atau ROM umumnya keduanya. Dalam mikroprosesor sampel kami, kami memiliki bus alamat dengan lebar 8 bit dan bus data dengan lebar 8 bit.

Itu berarti bahwa mikroprosesor dapat menangani (28) 256 byte memori, dan dapat membaca atau menulis 8 bit memori dalam satu waktu. Anggaplah mikroprosesor sederhana ini memiliki ROM 128 byte dimulai dari alamat 0 dan RAM 128 byte dimulai dari alamat 128.

ROM adalah singkatan dari read-only memory. Chip ROM diprogram dengan kumpulan permanen byte yang telah ditentukan sebelumnya. Bus alamat memberi tahu chip ROM byte mana yang harus diambil dan ditempatkan pada bus data. Ketika garis RD berubah status, chip ROM menyajikan byte yang dipilih ke bus data.

RAM adalah singkatan dari random-access memory. RAM berisi byte informasi, dan mikroprosesor dapat membaca atau menulis ke byte tersebut tergantung pada apakah garis RD atau WR diberi isyarat. Satu masalah dengan chip RAM saat ini adalah bahwa mereka melupakan semuanya begitu listrik mati. Itulah mengapa komputer membutuhkan ROM.

Ngomong-ngomong, hampir semua komputer berisi sejumlah ROM (dimungkinkan untuk membuat komputer sederhana yang tidak berisi RAM banyak mikrokontroler melakukan ini dengan menempatkan beberapa byte RAM pada chip prosesor itu sendiri, tetapi umumnya tidak mungkin dibuat salah satu yang tidak berisi ROM). Pada PC, ROM disebut BIOS (Basic Input/Output System). Ketika mikroprosesor dimulai, ia mulai menjalankan instruksi yang ditemukannya di BIOS.

Instruksi BIOS melakukan hal-hal seperti menguji perangkat keras di mesin, dan kemudian masuk ke hard disk untuk mengambil sektor boot. Sektor boot ini adalah program kecil lainnya, dan BIOS menyimpannya dalam RAM setelah membacanya dari disk.

Mikroprosesor kemudian mulai menjalankan instruksi sektor boot dari RAM. Program sektor boot akan memberi tahu mikroprosesor untuk mengambil sesuatu yang lain dari hard disk ke dalam RAM, yang kemudian dijalankan oleh mikroprosesor, dan seterusnya. Beginilah cara mikroprosesor memuat dan menjalankan seluruh sistem operasi.

Instruksi Mikroprosesor

Bahkan mikroprosesor yang sangat sederhana yang ditunjukkan pada contoh sebelumnya akan memiliki sekumpulan instruksi yang cukup besar yang dapat dijalankannya. Kumpulan instruksi diimplementasikan sebagai pola bit, yang masing-masing memiliki arti yang berbeda ketika dimuat ke dalam register instruksi.

Manusia tidak terlalu pandai mengingat pola bit, jadi sekumpulan kata pendek didefinisikan untuk mewakili pola bit yang berbeda. Kumpulan kata-kata ini disebut bahasa rakitan prosesor. Assembler dapat menerjemahkan kata-kata tersebut ke dalam pola bitnya dengan sangat mudah, dan kemudian output assembler ditempatkan di memori untuk dieksekusi oleh mikroprosesor.

Berikut sekumpulan instruksi bahasa assembly yang mungkin dibuat oleh desainer untuk mikroprosesor sederhana dalam contoh kita:

LOADA mem - Muat register A dari alamat memori
LOADB mem - Muat register B dari alamat memori
CONB con - Memuat nilai konstan ke register B
SAVEB mem - Simpan register B ke alamat memori
SAVEC mem - Simpan register C ke alamat memori
ADD - Tambahkan A dan B dan simpan hasilnya di C
SUB - Kurangi A dan B dan simpan hasilnya di C
MUL - Kalikan A dan B dan simpan hasilnya di C
DIV - Bagilah A dan B dan simpan hasilnya di C
COM - Bandingkan A dan B dan simpan hasilnya dalam tes
JUMP addr - Langsung ke alamat
JEQ addr - Lompat, jika sama, ke alamat
JNEQ addr - Lompat, jika tidak sama, ke alamat
JG addr - Lompat, jika lebih besar dari, ke alamat
JGE addr - Lompat, jika lebih besar dari atau sama, ke alamat
JL addr - Lompat, jika kurang dari, ke alamat
JLE addr - Lompat, jika kurang dari atau sama, ke alamat
STOP - Hentikan eksekusi

Jika Anda telah memahami Cara Kerja Pemrograman C, maka Anda tahu bahwa potongan kode C sederhana ini akan menghitung faktorial dari 5 (di mana faktorial dari 5 = 5! = 5 * 4 * 3 * 2 * 1 = 120):

a=1;f=1;while (a <= 5){ f = f * a; a = a + 1;}

Di akhir eksekusi program, variabel f berisi faktorial dari 5.

Bahasa Campuran

Kompiler C menerjemahkan kode C ini ke dalam bahasa assembly. Dengan asumsi bahwa RAM dimulai pada alamat 128 di prosesor ini, dan ROM (yang berisi program bahasa assembly) dimulai di alamat 0, maka untuk mikroprosesor sederhana kita, bahasa assembly mungkin terlihat seperti ini:

// Assume a is at address 128// Assume F is at address 1290 CONB 1 // a=1;1 SAVEB 1282 CONB 1 // f=1;3 SAVEB 1294 LOADA 128 // if a > 5 the jump to 175 CONB 56 COM7 JG 178 LOADA 129 // f=f*a;9 LOADB 12810 MUL11 SAVEC 12912 LOADA 128 // a=a+1;13 CONB 114 ADD15 SAVEC 12816 JUMP 4 // loop back to if17 STOP

ROM

Jadi sekarang pertanyaannya adalah, "Bagaimana semua instruksi ini terlihat di ROM?" Masing-masing instruksi bahasa assembly ini harus diwakili oleh bilangan biner. Demi kesederhanaan, anggaplah setiap instruksi bahasa assembly diberi nomor unik, seperti ini:

● LOADA - 1
● LOADB - 2
● CONB - 3
● SAVEB - 4
● SAVEC mem - 5
● ADD - 6
● SUB - 7
● MUL - 8
● DIV - 9
● COM - 10
● JUMP addr - 11
● JEQ addr - 12
● JNEQ addr - 13
● JG addr - 14
● JGE addr - 15
● JL addr - 16
● JLE addr - 17
● STOP - 18

Angka-angka tersebut dikenal sebagai opcode. Di ROM, program kecil kita akan terlihat seperti ini:

// Assume a is at address 128// Assume F is at address 129Addr opcode/value0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // LOADA 1289 12810 3 // CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 1 // LOADA 12823 12824 3 // CONB 125 126 6 // ADD27 5 // SAVEC 12828 12829 11 // JUMP 430 831 18 // STOP

Anda dapat melihat bahwa tujuh baris kode C menjadi 18 baris bahasa assembly, dan itu menjadi 32 byte di ROM.

Decoding

Dekoder instruksi perlu mengubah setiap opcode menjadi satu set sinyal yang menggerakkan berbagai komponen di dalam mikroprosesor. Mari kita ambil instruksi ADD sebagai contoh dan lihat apa yang perlu dilakukan:

1. Selama siklus jam pertama, kita perlu memuat instruksi. Oleh karena itu dekoder instruksi perlu: mengaktifkan buffer tri-state untuk penghitung program mengaktifkan baris RD mengaktifkan data-in tri-state buffer latch instruksi ke register instruksi.

2. Selama siklus jam kedua, instruksi ADD diterjemahkan. Yang perlu dilakukan sangat sedikit: atur operasi ALU untuk menambahkan latch output dari ALU ke register C
Selama siklus jam ketiga, penghitung program bertambah (dalam teori ini bisa tumpang tindih dengan siklus jam kedua).

3. Setiap instruksi dapat dipecah sebagai serangkaian operasi berurutan seperti ini yang memanipulasi komponen mikroprosesor dalam urutan yang benar. Beberapa instruksi, seperti instruksi ADD ini, mungkin membutuhkan dua atau tiga siklus clock. Orang lain mungkin mengambil lima atau enam siklus jam.

Performa dan Tren Mikroprosesor

Jumlah transistor yang tersedia memiliki pengaruh yang sangat besar terhadap kinerja sebuah prosesor. Seperti yang terlihat sebelumnya, instruksi tipikal dalam prosesor seperti 8088 membutuhkan 15 siklus clock untuk dieksekusi.

Karena desain pengali, dibutuhkan kira-kira 80 siklus hanya untuk melakukan satu perkalian 16-bit pada 8088. Dengan lebih banyak transistor, pengali yang jauh lebih bertenaga yang mampu menghasilkan kecepatan satu siklus menjadi mungkin.

Lebih banyak transistor juga memungkinkan adanya teknologi yang disebut pipelining. Dalam arsitektur pipelined, eksekusi instruksi tumpang tindih. Jadi meskipun mungkin memerlukan lima siklus jam untuk mengeksekusi setiap instruksi, mungkin ada lima instruksi dalam berbagai tahap eksekusi secara bersamaan. Dengan cara itu sepertinya satu instruksi menyelesaikan setiap siklus clock.

Banyak prosesor modern memiliki beberapa dekoder instruksi, masing-masing dengan pipeline-nya sendiri. Hal ini memungkinkan beberapa aliran instruksi, yang berarti bahwa lebih dari satu instruksi dapat diselesaikan selama setiap siklus clock. Teknik ini bisa jadi cukup rumit untuk diterapkan, sehingga membutuhkan banyak transistor.

Tren

Tren dalam desain prosesor terutama mengarah pada ALU 32-bit penuh dengan prosesor floating point yang cepat dan eksekusi pipelined dengan beberapa aliran instruksi. Hal terbaru dalam desain prosesor adalah ALU 64-bit, dan orang-orang diharapkan memiliki prosesor ini di PC rumah mereka dalam dekade berikutnya.

Ada juga kecenderungan ke arah instruksi khusus (seperti instruksi MMX) yang membuat operasi tertentu sangat efisien, dan penambahan dukungan memori virtual perangkat keras dan cache L1 pada chip prosesor.

Semua tren ini meningkatkan jumlah transistor, yang mengarah ke multi-juta transistor pembangkit tenaga yang tersedia saat ini. Prosesor ini dapat menjalankan sekitar satu miliar instruksi per detik!

Mikroprosesor 64-bit

Prosesor 64-bit telah bersama kita sejak 1992, dan di abad ke-21 prosesor ini mulai populer. Baik Intel dan AMD telah memperkenalkan chip 64-bit, dan Mac G5 menggunakan prosesor 64-bit. Prosesor 64-bit memiliki ALU 64-bit, register 64-bit, bus 64-bit dan seterusnya.

Salah satu alasan mengapa dunia membutuhkan prosesor 64-bit adalah karena ruang alamatnya yang diperbesar. Chip tiga puluh dua-bit seringkali dibatasi untuk maksimum 2 GB atau 4 GB akses RAM. Kedengarannya banyak, mengingat sebagian besar komputer rumahan saat ini hanya menggunakan RAM 256 MB hingga 512 MB.

Namun, batas 4 GB dapat menjadi masalah yang parah untuk mesin server dan mesin yang menjalankan database besar. Dan bahkan mesin rumahan akan segera mulai melawan batas 2 GB atau 4 GB jika tren saat ini berlanjut. Chip 64-bit tidak memiliki batasan ini karena ruang alamat RAM 64-bit pada dasarnya tidak terbatas di masa mendatang - 2 ^ 64 byte RAM adalah sesuatu yang setara dengan satu miliar gigabyte RAM.

Dengan bus alamat 64-bit dan bus data berkecepatan tinggi yang lebar pada motherboard, mesin 64-bit juga menawarkan kecepatan I/O (input / output) yang lebih cepat untuk hal-hal seperti drive hard disk dan kartu video. Fitur-fitur ini dapat sangat meningkatkan kinerja sistem.

Server pasti bisa mendapatkan keuntungan dari 64 bit, tapi bagaimana dengan pengguna biasa? Di luar solusi RAM, tidak jelas apakah chip 64-bit menawarkan "pengguna normal" manfaat nyata dan nyata saat ini. Mereka dapat memproses data (data yang sangat kompleks menampilkan banyak bilangan real) lebih cepat.

Orang-orang yang melakukan pengeditan video dan orang-orang yang melakukan pengeditan fotografi pada gambar yang sangat besar mendapatkan keuntungan dari jenis kekuatan komputasi ini.

Game kelas atas juga akan mendapatkan keuntungan, setelah dikodekan ulang untuk memanfaatkan fitur 64-bit. Tetapi rata-rata pengguna yang membaca e-mail, browsing Web dan mengedit dokumen Word sebenarnya tidak menggunakan prosesor dengan cara itu. 

You may like these posts: