8085 CPUにはALU内に追加のレジスタがありますか?


11

8085 CPUアーキテクチャから、ALUが計算を完了すると、結果は次のクロックエッジでアキュムレータAに戻されます。しかし、アキュムレータAはALU入力として直接配線されます。クロックエッジがAを2回以上追加するのに十分な速さで上昇しなかった場合、このようなエラーを検出するのは非常に困難です。壊れやすい」

ALUの結果を一時的に保存するための追加のレジスタがALU内にない場合を除きますか?

https://en.wikipedia.org/wiki/Intel_8085#/media/File:Intel_8085_arch.svg

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


2
これは@KenShirriffの質問のように見えます…
duskwuff -inactive-

1
なぜALUを中間レジスターにクロックインしても、アキュムレーターにクロックインするのと同じ問題は発生しないと思いますか?いずれにせよ、ALUがクロックに対して十分なセットアップ時間とホールド時間を備えた有効な結果を生成することを知っている必要があります。
フォトン

回答:


17

@duskwuffが疑ったように、私はこれを調査しました。質問に答えるために、8085にはALUに2つの追加レジスタがあります。

8085には、16ビットのWZペアと2つの8ビットALUヘルパーレジスタ(ACTおよびTMP)の「隠された」レジスタがいくつかあります。WZはレジスタファイルの一部ですが、ACT、A(アキュムレータ)、およびTMPはALU回路自体にあります。

ALUの仕組みを次の図に示します。

8085のALUのレジスタ構造

ACTレジスタにはいくつかの重要な機能があります。まず、ALUへの入力を保持します。これにより、入力を乱すことなくALUからの結果がアキュムレータに書き戻され、不安定になります。次に、ACTは、アキュムレータに影響を与えることなく、一定の値を保持できます(たとえば、インクリメントまたはデクリメント、または10進数の調整用)。最後に、ACTはアキュムレーターを使用しないALU操作を許可します。

8085のALUセットアップの興味深い結果の1つは、ALUを通過した後にのみ値をアキュムレーターにロードできることです。

8085レジスタセットの詳細については、こちらとALUの詳細があるここに


1
どういうわけか、これについて何か言いたいことがあると思いました。:3
夕暮れ

2
ブリリアント〜(Ken Shirriffのブログと8085の両方)!
-starx

5

同期設計では、そのようなことが起こらないようにすることは設計者の重要なタスクです。「クロック」されているデータを持っているレジスタは、クロックの立ち上がり時間、クロックの保持時間、クロック信号の変更前後のデータの安定性などの特定の動的プロパティを持っています。タイミングに違反した場合、結果の状態は保証されません。

特定のケースでは、ALUに伝播遅延があり、Aを2回追加するには、加算器内の新しいAが前のAに追加され、出力に結果が表示されるまで時間が必要です。最も可能性が高いのは、デバイスで定義された許容クロック周波数範囲内ではそのようなことが起こらないことをシミュレートおよび計算したことです。それが、データシートに明示的に最小および最大クロック定格がある理由です。8085A-2の場合:

  • 最小CLKサイクル周期:320 ns
  • 最大CLKサイクル周期:2000 ns

5

アキュムレータはALUの出力レジスタです。

8085には2フェーズクロックがあります。NOPのような単一クロック命令には2クロックサイクルかかりました。元のIBM PCで使用されていた8088と同様に、8088には4Mhzの4フェーズクロックがあり、1Mhzのレートで命令を実行しました。

2フェーズクロックでは、各命令サイクルに2つのオシレータサイクルがあります。

内部的には、タイミングのために、いずれかのクロックの任意のエッジを使用できます。クロックは反転しているため、実際にはタイミングに使用できる4つのクロックがあります。

次に、立ち下がりエッジでラッチする透過型ラッチと、立ち上がりクロックエッジでラッチするDフリップフロップがあります。

トランスペアレントラッチを使用すると、入力データがクロックの立ち上がりエッジで出力に伝播し、クロックの立ち下がりエッジで値がラッチされます。

8085には、伝播の競合状態を回避するための多くのオプションがありました。

ここに画像の説明を入力してください


「8088には4Mhzの4相クロックがあり、1Mhzのレートで命令を実行しました」-8088には単一のクロック入力ピンしかありません(ただし、非対称クロックが期待されますが、High状態は約2倍持続します)常に同じクロックエッジですべてをクロックするほとんどの最新のプロセッサとは異なり、これらの状態で明らかに異なることを内部で行っていることを示す低状態)これがどのように機能するかについての説明はどこかにありますか?
ジュール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.