Dari arsitektur CPU 8085, ketika ALU melakukan perhitungan, hasilnya akan kembali ke akumulator A di tepi jam berikutnya. Tetapi akumulator A secara langsung ditransfer sebagai input ALU, bagaimana jika ujung jam tidak naik cukup cepat sehingga A ditambahkan dua kali atau lebih banyak kali, akan sangat sulit untuk mendeteksi kesalahan seperti itu, desain seperti itu sangat " rapuh "bagi saya.
Kecuali, ada register tambahan dalam ALU untuk sementara menyimpan hasil ALU?
https://en.wikipedia.org/wiki/Intel_8085#/media/File:Intel_8085_arch.svg
Jawaban:
Seperti dugaan @duskwuff, saya sudah melihat ini. Untuk menjawab pertanyaan, 8085 memiliki dua register tambahan di ALU.
8085 memiliki beberapa register "tersembunyi": pasangan WZ 16-bit dan dua register pembantu ALU 8-bit: ACT dan TMP. WZ adalah bagian dari file register, sedangkan ACT, A (akumulator) dan TMP terletak di sirkuit ALU itu sendiri.
Berikut diagram cara kerja ALU:
Register ACT memiliki beberapa fungsi penting. Pertama, ia menyimpan input ke ALU. Ini memungkinkan hasil dari ALU ditulis kembali ke akumulator tanpa mengganggu input, yang akan menyebabkan ketidakstabilan. Kedua, ACT dapat menyimpan nilai-nilai konstan (misalnya untuk penambahan atau pengurangan, atau penyesuaian desimal) tanpa mempengaruhi akumulator. Akhirnya, ACT memungkinkan operasi ALU yang tidak menggunakan akumulator.
Salah satu konsekuensi menarik dari pengaturan ALU 8085 adalah bahwa nilai dapat dimuat ke akumulator hanya setelah melewati ALU.
Detail tentang set register 8085 ada di sini dan rincian ALU ada di sini .
sumber
Dalam desain yang sinkron itu adalah tugas penting perancang untuk memastikan hal-hal seperti itu tidak terjadi. Register, yang memiliki data "clocked", memiliki properti dinamis spesifik seperti waktu kenaikan jam, waktu tahan jam, stabil data sebelum dan sesudah perubahan sinyal jam. Jika waktu dilanggar, status yang dihasilkan tidak dijamin.
Dalam kasus khusus Anda, ALU mengalami keterlambatan propagasinya, dan untuk menambahkan A dua kali harus ada waktu sampai A baru ditambahkan ke A sebelumnya di dalam penambah dan hasilnya muncul pada outputnya. Paling mungkin itu disimulasikan dan dihitung bahwa hal seperti itu tidak akan terjadi dalam rentang frekuensi clock yang diizinkan untuk perangkat. Itu sebabnya lembar data secara eksplisit memiliki peringkat jam minimal dan maksimal. Untuk 8085A-2 dikatakan:
sumber
Akumulator adalah register keluaran ALU.
8085 memiliki clock dua fase. Di mana instruksi jam tunggal seperti NOP mengambil 2 siklus clock. Mirip dengan 8088 yang digunakan dalam PC IBM asli, 8088 memiliki empat fase clock 4Mhz dan instruksi dieksekusi pada tingkat 1Mhz.
Dengan dua fase clock Anda memiliki dua siklus osilator untuk setiap siklus instruksi.
Secara internal, untuk pengaturan waktu, setiap tepi dari kedua jam dapat digunakan. Jam dibalik sehingga sebenarnya ada empat jam yang tersedia untuk menentukan waktu.
Kemudian Anda memiliki kait transparan yang menempel pada tepi jatuh dan D-Flip Flops yang menempel pada tepi jam naik.
Kait transparan memungkinkan data input untuk merambat ke output dimulai pada tepi naik jam, dan nilai-nilai kait di tepi jatuh jam.
The 8085 memiliki banyak pilihan ketika datang untuk menghindari kondisi lomba propagasi.
sumber