Nama : Lutfi Budi Ilmawan NIM : 323084 Arsitektur dan Organisasi Komputer B ARM CORTEX-A8 ARM Cortex-A8 merupakan

prosesor berbasis RISC superskalar yang mengacu pada prosesor aplikasi. Prosesor aplikasi ARM merupakan embedded processor yang mampu menjalankan sistem operasi kompleks wireless, consumer, dan aplikasi pencitraan. Contohnya, ponsel, konsol game, dll. Arsitektur ARM cortex-A8 menekankan aliran instruksi di antara unit-unit fungsional. Aliran instruksi utama melalui 3 unit fungsional yang mengimplementasikan dual, in-order issue, 13 stage pipeline. Dengan tetap pada in-order ARM cortex dapat menjaga daya tambahan yang dibutuhkan agar tetap dalam keadaan minimum. Terdapat unit yang terpisah untuk unit SIMD (single instruction multiple data) yang mengimplementasikan 10 stage pipeline. A. Unit Pengambil Instruksi (Instruction Fetch Unit) Unit ini memprediksikan instruksi streaming, mengambil instruksi dari L1 instruction cache ke buffer untuk proses decode pipeline. Unit fetch juga berisi L1 instruction cache. Karena terdapat beberapa branches yang belum terselesaikan pada pipeline, maka terjadi pengambilan instruksi dilakukan secara spekulatif. Instruksi branch atau exceptional dapat mengakibatkan pipeline flush. Instruksi fetch unit bisa mengambil hingga empat instruksi per siklus, dan berjalan melalui tahaptahap berikut: - F0. AGU (Address Generation Unit) meng-generate alamat virtual baru. Secara normal, alamat ini adalah alamat berikutnya berurutan dari alamat fetch sebelumnya. Alamat ini juga dapat menjadi alamat branch target. - F1. Digunakan untuk mengambil instruksi dari L1 instruction cache. Secara parallel, fetch address digunakan untuk mengakses array branch prediction. - F2. Data instruksi ditempatkan dalam antrian instruksi. Jika hasil instruksi di branch prediction, alamat target baru dikirim ke unit address generation. Prosesor Cortex-A8 mengimplementasikan dua level global history branch predictor, yang terdiri dari branch target buffer (BTB) dan global history buffer (GHB). Selain dari dynamic branch predictor, tumpukan yang kembali digunakan untuk memprediksikan subroutine return address. Unit ini dapat mengambil dan mengantrikan sampai 12 instruksi. Menyebabkan instruksi-instruksi dapat di-decode dua dalam satu kali. B. Unit Decode Instruksi (Instruction Decode Unit) Unit ini untuk men-decode dan mengurutkan semua instruksi. Memiliki struktur pipeline ganda, yakni pipe0 dan pipe1, sehingga 2 instruksi dapat diproses dalam satu waktu. Pipe0 berisi instruksi yang lebih tua dalam urutan program. Jika instruksi dalam pipe0 tidak dapat keluar, maka instruksi dalam pipe1 juga tidak akan keluar. Semua proses instruksi menuruni pipa eksekusi dengan hasil yang ditulis kembali ke register file pada akhir execution pipeline. Hal ini dapat mencegah bahaya WAR (Write after Read), mengawasi bahaya dan recovery WAW (Write after Write) dari kondisi flush secara langsung. Perhatian utama dari decode pipeline yakni pencegahan bahaya RAW (Read after Write). Ada 5 tahapan pemrosesan instruksi: - D0. Thumb instruction didekompresi dan fungsi preliminary decode dilakukan. - D1. Proses decode instruksi selesai. - D2. Tahap ini menulis instruksi ke dan membaca instruksi dari struktur antrian yang ditunda. - D3. Mengandung logika penjadualan instruksi. Sebuah scoreboard memprediksi ketersediaan register menggunakan penjadualan statik, serta melakukan hazard checking. - D4. Melakukan decode akhir untuk semua sinyal kontrol yang diperlukan oleh unit eksekusi dan pengambil/penyimpan integer. C. Unit Eksekusi Integer (Integer Execution Unit)

Hasilnya dituliskan ulang ke register file.E0. Melakukan fungsi ALU. Jika diimplementasikan. Tahap-tahap load/store pipeline: .E4. Hasilnya dituliskan dalam register file D.E4. Unit ini disebut juga sebagai Unit NEON. . data diformat dan siap untuk ditulis dalam cache. . . maka multiply pipeline dan add pipeline yang terpisah akan melakukan operasi floating-point. Alamat diaplikasikan ke array cache. . Tahap pipeline terdiri dari 6: . menyelesaikan saturation arithmetic. Mengakses register file. Jika diperlukan. Semua perubahan pada control flow diprioritaskan dan diproses. Unit ini menyediakan dua tipe dari dukungan floationg-point. . dan multiply pipeline. SIMD (Single Instruction Multiple Data) dan Floating-Point Pipeline Instruksi SIMD dan floating-point melalui integer pipeline dan diproses pada 10 stage pipeline yang terpisah. Jika tidak ada coprocessor. data dikembalikan dan diformat. Alamat memori di-generate dari base register dan indeks register. .E5. Instruksi unti multiply diarahkan ke pipe0 yang dilakukan pada tahap E1 melalui E3 dan multiply mengakumulasi operasi pada tahap E4. Dalam kondisi Load. sampai 6 register dapat diakses dari register file untuk 2 instruksi.E2.E2. coprocessor VFP (Vector Floating Point) melakukan operasi floating-point sesuai dengan IEEE 754.Unit eksekusi instruksi terdiri dari 2 pipeline ALU (Unit Aritmetika dan Logika)yang simetris. .E3. menangani kumpulan instruksi SIMD.E1. sebuah address generator untuk mengambil dan menyimpan instruksi. .E1.E5. Melakukan barrel shifter jika diperlukan. Memperbaharui cache L2 jika diperlukan . Dalam kondisi Store. .E3.

Sign up to vote on this title
UsefulNot useful