apakah 8085 CPU memiliki register tambahan dalam ALU?

11

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

https://en.wikipedia.org/wiki/Intel_8085

starx
sumber
2
Ini seperti pertanyaan untuk @ KenShirriff…
duskwuff -inactive-
1
Menurut Anda mengapa dengan mencatatkan ALU ke register perantara tidak akan memiliki masalah yang sama dengan mencatatkannya ke akumulator? Either way, Anda sebaiknya tahu bahwa ALU Anda menghasilkan hasil yang valid dengan pengaturan yang cukup dan tahan waktu relatif terhadap jam.
The Photon

Jawaban:

17

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:

Daftarkan struktur ALU 8085-an

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 .

Ken Shirriff
sumber
1
Entah bagaimana, saya tahu Anda akan mengatakan sesuatu tentang ini. : 3
duskwuff -inactive-
2
brilian ~ (baik blog Ken Shirriff dan 8085)!
starx
5

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:

  • Minimal periode siklus CLK: 320 ns
  • Periode siklus CLK maksimal: 2000 ns
Anonim
sumber
5

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.

masukkan deskripsi gambar di sini

Disalahpahami
sumber
"8088 memiliki clock empat fase 4Mhz dan instruksi dieksekusi pada kecepatan 1Mhz" - 8088 hanya memiliki pin input jam tunggal (meskipun itu mengharapkan jam non-simetris, dengan keadaan tinggi berlangsung kira-kira dua kali selama low state, yang menunjukkan secara internal itu jelas melakukan hal-hal yang berbeda di negara-negara ini, tidak seperti kebanyakan prosesor modern yang selalu mencatat segala sesuatu di tepi jam yang sama), jadi apakah jam 4 fase ini dihasilkan secara internal entah bagaimana? Apakah ada uraian tentang cara kerjanya?
Jules