| 一般情報 | |
|---|---|
| 発売 | 1988年 |
| 共通メーカー | |
| パフォーマンス | |
| 最大CPU クロックレート | 15MHzまで |
| データ幅 | 8 (RAM)、8 (ROM) |
| アドレス幅 | 8 (RAM)、15 (ROM) |
| アーキテクチャと分類 | |
| 応用 | 埋め込み |
| 命令セット | COP8 |
| 命令数 | 69 |
| 物理的仕様 | |
| パッケージ | |
| 歴史 | |
| 前任者 | COP400 |
| 後継 | なし |
National Semiconductor COP8は、8 ビットCISCコアマイクロコントローラです。COP8 は、以前のCOP400 4 ビット マイクロコントローラ ファミリ の強化版です。COP8 の主な機能は次のとおりです。
- 多数のI/Oピン
- コードとデータ用の最大32KBのフラッシュメモリ/ ROM
- 非常に低いEMI
- 多くの統合周辺機器(シングルチップ設計を意味する)
- インシステムプログラミング
- 無料のアセンブラツールチェーン。商用Cコンパイラも利用可能
- 無料のマルチタスク OS とTCP/IPスタック
マシンサイクルは最大 2M サイクル/秒ですが、ほとんどのバージョンでは最大 2.8M サイクル/秒 (28 MHz クロック) までオーバークロックできるようです。[引用が必要]
レジスタとメモリマップ
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
COP8は命令空間とデータ空間を別々に使用します(ハーバードアーキテクチャ)。[1] :2-1 [2] :2-4 命令アドレス空間は15ビット(最大32KiB)で、データアドレスは8ビット(最大256バイト、バンク切り替えにより拡張)です。
ソフトウェアのバグを検出できるように、すべての無効な命令アドレスはゼロとして読み取られ、これはトラップ命令です。スタックの上にある無効な RAM はすべて 1 として読み取られ、これは無効なアドレスです。
CPU には 8 ビットのアキュムレータと 15 ビットのプログラム カウンタがあります。さらに 16 個の 8 ビット レジスタ (R0 ~ R15) と 8 ビットのプログラム ステータス ワードがメモリにマップされています。これらにアクセスするための特別な命令がありますが、一般的な RAM アクセス命令も使用できます。
メモリ マップは、次のように半分が RAM、半分が制御レジスタに分かれています。
RAM がバンク化されていない場合、R15 (S) は単なる汎用レジスタです。RAM がバンク化されている場合、データ アドレス空間の下位半分 (アドレス 0x00~7F) は、S によって選択された RAM バンクに送られます。データ アドレス空間の上位半分の特殊用途レジスタは常に表示されます。0xF xのデータ レジスタは、バンク間でデータをコピーするために使用できます。
バンク 0 以外の RAM バンクでは、128 バイトすべてが使用可能です。スタック (スタック ポインターを介してアドレス指定) は、S レジスタの設定に関係なく、常にバンク 0 にあります。
制御の移行
アドレス空間全体をアドレス指定できる3 バイトの命令JMPLと命令に加えて、これらの命令の 2 バイト バージョンである、およびは、4K ページ内でジャンプできます。命令は下位 12 ビットを指定し、PC の上位 3 ビットは保持されます。(これらは主に、最大 4K の ROM を持つモデルを対象としています。) 短距離分岐の場合、PC−32 から PC+31 への PC 相対分岐を実行する 63 個の 1 バイト命令、があります。これは 15 ビットの追加であり、ページ境界の要件は適用されません。
JSRLJMPJSRJP
また、アキュムレータの内容をアドレスの下位 8 ビットとして使用するジャンプ間接命令とロード アキュムレータ間接命令もあり、現在の PC の上位 7 ビットは保持されます。
条件分岐自体は存在せず、プロセッサは従来の ZCVN ステータス フラグも提供しませんが、プログラム ステータス ワードにはマルチバイト演算用のキャリー フラグとハーフ キャリー フラグが含まれています。代わりに、比較とスキップの命令がいくつかあります。たとえば、IFEQは 2 つのオペランドを比較し、等しくない場合は次の命令をスキップします。任意の命令をスキップすることができ、分岐に限定されません。
COP8 アーキテクチャに固有の機能は、IFBNE命令です。これは、B (メモリ ポインタ) レジスタの下位 4 ビットを 4 ビットの即値定数と比較し、B が小さな (最大 16 バイト) バッファの末尾に到達するまでループするために使用できます。
このメカニズムの興味深い拡張はRETSK、リターン アンド スキップ命令です。これにより、任意のサブルーチン呼び出しが条件付きで次の命令をスキップできるようになります。これにより、サブルーチンから
ブール値を返す非常にコンパクトな方法が提供されます。
命令セット
COP8 オペランドは、宛先、ソースの順序でリストされます。ほとんどの命令では、アキュムレータ A がオペランドの 1 つとして使用されます。他のオペランドは通常、8 ビットの即値、8 ビットの RAM アドレス、または[B]B レジスタによって選択された RAM アドレスから選択されます。一部の命令では、X レジスタによる RAM アドレス指定 ( [X]) や、後置インクリメント/デクリメント バリアント ( [B+]、[B−]、[X+]、[X−]) もサポートされています。
B を介した間接アドレス指定は特に高速であり、命令が実行されるのと同じサイクルで実行できます。
一方、絶対 RAM アドレス指定は、ほとんどの場合直接エンコードされません。代わりに、特別な「直接アドレス指定」プレフィックス オペコードとそれに続く 1 バイトのアドレスが、[B]オペランドを持つ命令の前にあり、それをメモリ直接オペランドに変更します。これにより、命令に 2 バイトと 3 サイクルが追加されます。(条件付きスキップ命令は、プレフィックスと後続の命令をペアでスキップします。)
すべての「移動」命令は、LD宛先がメモリ アドレスであっても呼び出されます (ロード)。通常、アキュムレータをソースとする命令はありません。ストアは、アキュムレータをメモリ オペランドと交換し、A を格納して以前のメモリ内容をロードする命令LDで行われます。(これには追加の時間はかかりません。1サイクルの命令です。)
XX A,[B]
ROM 内のテーブルからフェッチする命令があります。これらは、プログラム カウンタ (PCU) の上位 7 ビットをアキュムレータと組み合わせ、そのアドレスから 1 バイトをフェッチして、アキュムレータ (LAID命令) またはプログラム カウンタ PCL の下位 8 ビット (JID命令) に配置します。次に実行される命令は、テーブル自体と同じ ROM の 256 バイト ページにある必要があるため、256 エントリのテーブルは不可能です。
*: 「機能ファミリ」(COP888/COP8SA) コアのみ。「基本ファミリ」(COP800) コアには存在しません。 †:インシステム プログラミング
用のブート ROM を備えた「フラッシュ ファミリ」(COP8TA/COP8C) モデルのみ。
注目すべき用途
参考文献
- ^ ab COP8 基本ファミリ ユーザーズ マニュアル(PDF)。リビジョン 002。National Semiconductor。1996年 6 月。文献番号 620895-002。2021年 1 月 2 日に取得。
- ^ ab Aleaf, Abdul (1996 年 7 月)。「COP878x と拡張 COP8SAx7 ファミリの比較 - ハードウェア/ソフトウェアの考慮事項」(PDF)。National Semiconductor。アプリケーション ノート 1043。
- ^ COP8 機能ファミリ ユーザーズ マニュアル。リビジョン 005。National Semiconductor。1999年 3 月。資料番号 620897-005。圧縮された ISO イメージ530094-003_COP8_Tools_Docs_Aug1999.zip から抽出され、2020 年 1 月 7 日に取得されました。
- ^ 「COP8SAx 設計者ガイド」(PDF)。National Semiconductor。1997 年 1 月。資料番号 620894-001。
- ^ ab 「32k メモリ、仮想 EEPROM、ブラウンアウト機能を備えた COP8SBR9/COP8SCR9/COP8SDR98 ビット CMOS フラッシュ ベース マイクロコントローラ」(PDF) (データ シート)。ナショナル セミコンダクター。2002 年 4 月。2021 年 1 月 6 日閲覧。
- ^ Liberatore, David (2006年5月11日). FMU-139C/B電子爆弾信管設計アップデート(PDF) . 第50回NDIA信管カンファレンス. 2024年11月7日閲覧。
- ^ Dennis, Marc; Hanrahan, Bob; Brackmann, Chris (1991 年 11 月). アプリケーション ノート 761 - Electronic Fuzing (PDF) . Texas Instruments . 2024 年11 月 7 日閲覧。
