| 一般情報 | |
|---|---|
| 発売 | 1976年 |
| デザイン: | サイエンティフィックマイクロシステムズ(SMS) |
| 共通メーカー |
|
| パフォーマンス | |
| 最大CPU クロックレート | 8MHzまで |
| データ幅 | 16命令、8データ |
| アドレス幅 | 13 命令、1 データ |
| アーキテクチャと分類 | |
| 命令数 | 8 |
| 物理的仕様 | |
| パッケージ |
|
| 歴史 | |
| 後継 | 8X305 |


8X300は、1976年からScientific Micro Systems, Inc.のSMS 300のセカンドソースとしてSigneticsが製造・販売しているマイクロプロセッサです。 [1] [2] [3] [4] SMS 300はSMSが開発しましたが、この製品ラインの唯一の製造元はSigneticsでした。1978年にSigneticsはSMS 300シリーズの権利を購入し、8X300に改名しました。
これは高速マイクロコントローラおよび信号プロセッサとして設計されたため、当時の従来のNMOS ロジックマイクロプロセッサとは大きく異なります。おそらく主な違いは、バイポーラショットキー トランジスタ技術で実装され、わずか 250 nsで命令をフェッチ、デコード、実行できることです。1 つの命令サイクルで、1 つのデバイスからデータを入力し、変更して、別のデバイスに出力できます。
1982年、Signeticsは改良され高速化されたバージョンである8X305をリリースしました。このプロセッサは軍事用途で非常に人気となり、Advanced Micro DevicesによってAM29X305としてセカンドソースされました。最終的に、生産権はLansdale Semiconductor Inc.に売却され、同社は2017年時点でも8X305を提供していました。[5] 8X300のクローンは、KM1818VM01(ロシア語:КМ1818ВМ01 )の名称でソビエト連邦で製造されました。[4]
建築
このデバイスは 50 ピンDILセラミック パッケージで提供され、単一の 5V 電源レールで動作します。チップの選択された領域に 3V を供給するオンチップ電圧レギュレータを完成させるには、外部パス トランジスタが必要です。これにより、総電流ドレインを 450 mA未満に抑えることができます。
クロック要件は、8 MHz の水晶を 2 つのピンに直接接続することで満たされます。または、外部クロック ジェネレータからの位相の異なる信号を使用することもできます。
2 つ目のユニークな機能は、プログラム メモリにアクセスするための専用の 13 ビット アドレス バスと 16 ビット データバスです。これにより、8192 個の 16 ビット プログラム ワードを直接アドレス指定できます。これにより、追加のハードウェアなしでROM / PROMプログラム メモリを直接接続できます。2 つ目の 8 ビット アドレス/データ バスであるインターフェイス ベクター (IV) バスは、データと I/O に使用されます。2 つの制御信号、WC (書き込みコマンド) と SC (選択コマンド) は、IV バスの状態を次のように決定します。
- SC=1、WC=0: I/OアドレスがIVバスに出力されている
- SC=0、WC=1: I/OデータがIVバスに出力されている
- SC=0、WC=0: IVバス上でI/O入力データが期待されています
さらに 2 つの信号、LB (左バンク選択) と RB (右バンク選択) により、IV バス アドレス空間が実質的に 2 倍になり、1 つのバンクの RAM メモリと他のバンクの I/O ポートを切り替えるために最もよく使用されます。
8X300のもう 1 つの珍しい特徴は、ほとんどのマイクロプロセッサの場合のようにマスク、回転、シフト、マージ命令を算術論理ユニット(ALU) で実行するのではなく、マスク、回転、シフト、マージの各ユニットが別々になっていることです。したがって、データの回転、マスク、変更、シフト、マージ (この順序で) をすべて 1 つの命令サイクルで実行できます。
命令セット
プロセッサは通常 8 ビットのデータ バイトを操作しますが、マスク ユニットにより 1 ビットまたは複数ビットを操作できるため、可変データ長プロセッサになります。内部データは、8 ビットの読み取り/書き込みレジスタ(R1 ~ R6、R9、および補助レジスタ (R0)) に格納されます。補助レジスタには、またはなどの 2 オペランド命令で使用されるオペランドの 1 つが保持され、1ビット(読み取り専用) のオーバーフローレジスタ (R8) には、演算からのキャリー オーバー ビットが格納されます。2 つの仮想書き込み専用レジスタIVL (R7) と IVR (R15) は、IV バスにアドレスを配置するために使用され、8 つの仮想レジスタの 2 セット (R16 ~ R23 および R24 ~ R31) は、IV バスとの間でデータを転送するために使用されます。後者の場合、レジスタ番号の上位 2 ビットで左バンクまたは右バンクを選択し、下位 3 ビットでデータを回転する位置の数を定義します。 8 ビットの IV バス バッファは、IV バスとの間で転送される最後のデータのコピーを保持します。このデータは、マージ操作で使用されます。
ADDANDADD
命令の最上位 3 ビットはオペコードを定義し、命令を 8 つのクラスに分類します。
- この
MOVE命令を使用すると、選択したレジスタの内容をコピーしたり、IV バスに配置したり、IV バスから読み取ったり、IV バスから IV バスに転送したりできます。 ADD、ANDおよびクラスは似ていますが、これらの命令では、命令の一部が実行されるXOR前に補助レジスタの内容がソース レジスタと結合される点が異なります。MOVE- この
XEC命令により、プログラム カウンターを増分せずに、異なるローカル アドレスとオフセットにある選択された命令を実行できます。 - この
NZT命令により条件分岐を実装できます。 - この
XMIT命令を使用すると、命令で指定された 8 ビットのバイナリ パターンを指定されたレジスタまたは IV バスに配置できます。これは、ロード即時命令に似ています。 - この
JMP命令は、8192 ワードのプログラム メモリ内の任意の場所への無条件分岐を実行します。
命令の残りの 13 ビットの使用は、オペコードによって異なります。
MOVE、、ANDおよび命令ADDのXOR場合、5 ビットはソース レジスタの定義に使用され、3 ビットは回転またはマスク操作 (R/L フィールド) の定義に使用され、残りの 5 ビットは宛先レジスタの定義に使用されます。XECNZT5 ビットはソース レジスタを定義するために使用され、残りの 8 ビットはアドレス フィールドを定義します 。XEC: ソース レジスタの内容が最初にアドレス フィールドに追加され、それがプログラム アドレスの下位 8 ビットとして使用されます。NZT: ソース レジスタがゼロ以外の場合にジャンプが行われます。ジャンプが行われる場合、アドレス フィールドはプログラム アドレスの下位 8 ビットとして使用されます。
XMIT: 5 ビットは宛先レジスタを定義するために使用され、残りの 8 ビットはデータを定義します。JMP: 13 ビットすべてがプログラム メモリ内の絶対アドレスとして使用されます。
シフト、回転、マスク、結合
回転ユニットとマスクユニットは、レジスタバンクと ALU の間にあります。したがって、原則として、すべてのデータは ALU に入る前に回転およびマスクできます。
- 回転ユニット: このユニットは、オペコードで指定された位置の数だけデータを右に回転します。
- マスク ユニット: このユニットは、オペコードで指定された下位ビットの数を保持するために、データの上位ビットをマスク (ゼロに設定) します。
シフト ユニットとマージ ユニットは ALU と IV バスの間に配置されているため、IV バスに送信されたデータは出力される前にシフトおよびマージできます。
- シフト ユニット: このユニットは、オペコードで指定された位置数だけデータを左にシフトします。
- マージ ユニット: このユニットは、IV バス バッファ内のオペコードで指定されたビット数をデータとマージ (置換) してから、バッファの内容を IV バスに配置します。
注意: 結合するビット数を 0 にすると、8 ビットすべてが置き換えられます。
ソースと宛先に応じて、次の組み合わせが可能です。
MOVE、、ADDおよびAND手順XOR:- レジスタからレジスタへ(IVLレジスタとIVRレジスタを含む):回転
- レジスタからIVバス(データ出力)へのシフトとマージ
- IVバス入力からレジスタへ:回転とマスク
- IVバス入力からIVバス出力へ: 回転、マスク、シフト、マージ
- IVバス入力からIVLまたはIVRレジスタ(IVバスアドレス出力)への回転とマスク
XECそしてNZT:- IVバス入力: 回転とマスク
XMIT- IVバスデータ出力: シフトとマージ
入出力
8X300 との間でデータを転送するには、次の 2 つの手順を実行します。
- ステップ 1: 、、、または命令のいずれかを使用し
MOVE、仮想レジスタADDIVL (左バンク) または IVR (右バンク) のいずれかを宛先として指定すると、選択コマンドおよびバンク選択信号とともにアドレスが IV バスに出力されます。両方のバンクを使用する場合は、これを繰り返す必要がある場合があります。ANDXORXMT
I/O アドレスは別々に出力されるため、I/O ポートは選択を保持 (ラッチ) する必要があります。これは、個別のアドレス デコーダとラッチを使用するか、8X32 などのアドレス デコードとラッチが統合された I/O ポートを使用して行うことができます。ラッチにより、I/O ポートは、一度アドレス指定されると、別のアドレスが出力されるまでアクティブなままになり、再度アドレス指定することなく複数回アクセスできます。バンク選択信号を使用して、さらにアドレス指定することなく、2 つの I/O ポート (または RAM アドレス) を同時にアクティブにすることができます。
- ステップ 2: データは、レジスタ R16 ~ R31 のいずれかをソースおよび/または宛先として指定する命令のいずれかを使用して
JMP、8X300 との間で転送されます。選択されたレジスタによって、転送に付随するバンク選択信号が定義されます。
アプリケーション

詳細なアプリケーション ノートで、Signetics は 8X300 をフロッピー ディスク コントローラとして使用する方法を示しました。改訂されたアプリケーション ノートでは、8X300 を 8X330 と一緒に使用する方法が示されました。他のアプリケーション ノートでは、次のことが説明されています。
デモ システム (ブリーフケースに収納) とアプリケーション ノートでは、8X300 が信号機コントローラで使用されている様子が紹介されています。
Olivetti は、M20パーソナル コンピュータ シリーズの ST506 ハード ディスクのコントローラとして 8X300、後に 8X305 を使用しました。
コンバージェントテクノロジーズは1981年にAWSハードディスクコントローラに8X300、8X320、8X330を使用しました。[6]
ウエスタンデジタルは、 WD1000 ST506ハードディスクコントローラに8X300を使用し、WD1001 ECCハードディスクコントローラに8X305を使用しました。[7]
サポートデバイス
- 8X01:巡回冗長検査装置
- 8X31 / 8T31: 8ビットラッチ双方向I/Oポート
- 8X32 / 8X36 / 8X42: 8ビットラッチアドレス指定可能な双方向I/Oポート
- 8T39: アドレス指定可能なバスエクスパンダー
- 8X41: 非同期双方向バスエクステンダーおよびリピータ (SABER)
- 8T58: 透過型バスエクスパンダー
- 8X320: バスインターフェースレジスタアレイ
- 8X330: フロッピーディスクフォーマッタ/コントローラ
- 8X350: 2048 ビット バイポーラ RAM (256*8) 35 ns アクセス時間
- SMS360 / 8X360: インターフェースベクトルバイト
- チップとダイの写真
-
Signetics N8X300I - 1978 年初頭
-
シグネティクス N8X300I - 1981
-
シグネティクスのダイ8X300
-
シグネティクスのダイ8X305
参考文献
- ^ 8X300 設計ガイド、Signetics Corporation 1980 年 11 月、DSPG ドキュメント 80-102
- ^ 高速 8 ビット バイポーラ マイクロプロセッサ、David Edwards、ELECTRONICS Australia、1978 年 3 月
- ^ Signetics /SMS 300 Pact、マイクロコンピュータダイジェスト第2巻第11号、1976年5月
- ^ ab 「SMS300 および Signetics 8X300 プロセッサの歴史」。CPUShack。2010 年 11 月 16 日。2017 年1 月 5 日閲覧。
- ^ 「SL8X305 マイクロコントローラ」(PDF) . Lansdale Semiconductor Inc . 2017 年6 月 20 日閲覧。
- ^ AWS-220、-230、-240 ハードウェアマニュアル(PDF)。Convergent Technologies, Inc. 1982 年 4 月。p. 3-147。
- ^ 「Western Digital コンポーネントカタログ 1983」(PDF) 。 2021年4月9日閲覧。
外部リンク
- オープンソースアセンブラ
- オープンソース逆アセンブラ
- bitsavers.org 8x300 シリーズ ドキュメント
