Mengapa AMD bagus di game & multitasking, sementara Intel bagus di multimedia?
Pertama-tama, kita tinjau ‘pipeline’ kedua chip. Ini adalah pipeline AMD saat pulsa clock pertama, kita lihat baru Stage 1 yang terisi, stage-stage berikutnya masih kosong:

Ini pipeline AMD setelah 6x clock:

Kita lihat prosesor AMD dengan efisien mengisi semua stage. Bandingkan dengan pipeline Intel setelah 8x clock (ingat, Intel memiliki lebih banyak stage pada pipeline nya):

Lho kok ada bolong2 nya? Ini disebabkan Intel kurang efisien dalam mengisi pipeline-nya. Jadi kita lihat, di sini AMD menang sedikit.
Mengapa AMD bisa lebih bagus dalam hal ini? Ada 2 penyebab:
1. AMD lebih mampu melakukan Instruction Reorder
Arsitektur AMD memungkinkan dia melakukan Instruction Reorder yang lebih agresif dari Intel. Instruction Reorder bisa digambarkan sebagai berikut:
Tanpa Instruction Reorder:
a:=b c:=c+a d:=5
Instruksi ke-3 (d:=5) harus menunggu c:=c+a selesai, dan ini harus menunggu a:=b selesai.
Dengan Instruction Reorder:
a:=b d:=5 c:=c+a
Kita lihat prosesor memindahkan operasi Load (d:=5) segera sesudah operasi Load pertama (a:=b), dan kedua load ini dilakukan secara simultan.
Semua prosesor modern bisa melakukan Instruction Reorder, tapi AMD melakukan dengan lebih agresif.
2. Branch Prediction AMD dirancang untuk penggunaan sehari-hari
Demi mencegah pipeline kosong, maka prosesor modern setiap kali menjumpai conditional branching instruction (misalnya, JE, JNE, JNZ, JC, dll) akan berusaha ‘menebak’ hasilnya. Jika tebakan salah, maka prosesor akan ter-delay, karena dia harus mengosongkan pipeline, sementara jika tebakan benar, maka delay samasekali hilang, karena prosesor sudah ‘nyicil’ mengerjakan perintah2 selanjutnya.
Branch Prediction AMD dirancang untuk kondisi kerja low locality, low predictability. Sementara Branch Predition Intel dirancang untuk kondisi kerja high locality, high predictability.
Apa maksudnya?
Locality: Seberapa ‘dekat’ pencabangan terjadi, apakah branching lebih sering terjadi dalam blok kode yang ‘berdekatan’ (bisa muat dalam cache) atau dalam blok kode yang ‘berjauhan’ (tidak muat dalam cache – harus akses memory lagi).
Predictability: Seberapa mudah pencabangan ‘ditebak’.
Predictability inilah alasan utama kenapa Intel menang di multimedia.
Program multimedia seperti video encoding pada dasarnya melakukan pengulangan kode yang itu-itu saja, akibatnya jalannya program (instruction flow) akan menjadi mudah ditebak. Branch Predictor Intel sangat dioptimalkan untuk hal ini.
Sedangkan program game biasanya melakukan loncatan kesana-kemari, karena AI dari game akan berusaha menyesuaikan dengan gerak-gerik pemain, yang (dari sudut pandang program) susah ditebak.
Demikian pula sistem multitasking akan melakukan loncatan kesana-kemari, saat sebuah process di-preempt dan eksekusi diberikan ke process lain.
Dalam kondisi low predictability, AMD menang terhadap Intel, karena Branch Predictor AMD dirancang untuk hal ini.
Ini juga salah satu alasan lainnya mengapa cache di AMD tidak terlalu besar, karena AMD memutuskan bahwa dalam kehidupan nyata (bukan benchmarking), mayoritas code bersifat low locality, jadi percuma saja punya cache yang terlalu besar. Selain itu, metoda pengisian cache AMD juga lebih efisien, dan akses memory AMD juga teramat sangat cepat (karena directly-connected).
Nah, setelah kita tau latarbelakangnya, kita bisa dengan mudah melihat mengapa AMD kalah dalam banyak benchmark, khususnya benchmark multimedia. Ingat bahwa dalam semua benchmark, dilakukan pemrosesan yang itu-itu saja (high predictability).
Tetapi kalau mau jujur, dalam kehidupan nyata kemenangan Intel tidak terlalu terasa. Mengapa? Karena dalam kehidupan nyata, pemrosesan itu meloncat kesana-kemari dalam memory (low predictability). Dan di sinilah AMD menampakkan kekuatannya.
Yang sayangnya tidak pernah ditulis oleh banyak majalah karena mereka semua bisanya cuma menguji sistem pake benchmark