Bellmac 32は、1980 年にベル研究所のプロセッサ部門によって開発されたマイクロプロセッサで、 CMOSテクノロジを使用して実装され、1 クロック サイクルで 32 ビットを移動できる最初のマイクロプロセッサでした。このマイクロプロセッサには 150,000 個のトランジスタが含まれており、「ドミノ回路」を使用することでCMOS設計の速度が向上しました。このマイクロプロセッサは、C プログラミング言語を念頭に置いて設計されました。開発後、Bellmac 32Aと呼ばれる改良版が製造されましたが、その後、後継の「Hobbit」 C 言語縮小命令セット プロセッサ (CRISP) とともにキャンセルされました。
歴史
Bellmac 32プロセッサは、AT&Tのエンジニアによって、インディアンヒル、ホルムデル、マレーヒルの3つの異なるベル研究所で開発されました。[1]
設計者は自動化ツールを持っていなかったので、チップ設計者は皆、初期設計を完成させるために色鉛筆を使用しなければなりませんでした。[1]その後、スティーブ・ローは初期設計のデジタル化を支援するコンピュータプログラムを開発しました。
Bellmac 32の開発により、ドミノロジックと呼ばれる新しい回路設計技術が生まれ、マイクロプロセッサの製造における画期的な進歩とみなされました。製造中に実施されたテストでは、4MHzの目標速度よりもさらに高いクロック周波数が可能であることがわかりました。しかし、制御ロジックの実装は予想外に複雑であることが判明しました。これらの複雑さにより、チップ全体が完成してテストされたときの最終速度は2MHzに制限されました。[1]チームはこれを進歩と見なしましたが、AT&Tの当初の設計目標を満たすことができなかったため、成功とは考えませんでした。
その後の設計会議の結果、Bellmac マイクロプロセッサの第 2 世代として Bellmac 32A プロジェクトが生まれました。このプロジェクトでは再びCMOSテクノロジが選択され、目標クロック周波数が 6.2 MHz に設定されました。トランジスタと抵抗器のサイズを最大化し、相互接続を最小限に抑える調整が、仕様を満たす上での基本でした。エンジニアは、チップレイアウトの 20 フィート x 20 フィートのエンジニアリング図面を大きな部屋の床に置きました。[2]完成した回路から作成されたチップのテストでは、設計速度を超え、クロック周波数は 7、8、さらには 9 MHz に達しました。[1]
AT&Tの解体後、ベル研究所はウェスタン・エレクトリックの一部門となった。この変更に伴い、ベルマック32はWE 32000に改名された。チップのアップデート版には、1984年6月に発表されたWE 32100 [3]とWE 32200が含まれていた。
建築
Bellmac 32 は、メイン メモリへのアクセスを制御する命令フェッチ ユニットと、プロセスを監視してデータを操作する実行ユニットを備え たパイプライン アーキテクチャを備えています。
命令キューにはメモリからフェッチされた命令が入ります。アドレス演算ユニットはアドレス計算に使用されます。
プログラミング言語のサポート
Bellmac 32 アーキテクチャは、プログラミング言語の実装者にさまざまな利便性を提供します。プロシージャの呼び出しには、プログラム カウンタ、スタック ポインタ、フレーム ポインタ、引数ポインタの 4 つのレジスタの操作が含まれ、プログラム プロシージャ間で制御を転送するとともに、プログラム スタックを使用してレジスタの内容を保存し、引数と戻り値を通信します。このような「プロシージャ リンケージ」をサポートするために、4 つの命令が提供されています。callは戻りアドレスと引数ポインタをスタックに保存し、save はR3 から R8 までの範囲で選択されたレジスタを保存し、restore は以前に保存したレジスタを復元し、return は呼び出し前のスタック フレームを取得し、保存した戻りアドレスに制御を戻します。引数ポインタとフレーム ポインタを基準としたスタック アクセスを提供するアドレッシング モードが提供されています。[4]
プロセス管理
このアーキテクチャは、プロセスが単一の実行スタックを使用し、プロセス制御ブロック (PCB) が各プロセスの実行コンテキストを保持し、プロセスのレジスタ値のコピーとプロセスの仮想メモリ構成を記述する「ブロック移動」データを保持する、特定のプロセス管理モデルをサポートします。オペレーティング システムの実装者の利便性のため、プロセス切り替えのアーキテクチャ サポートには、従来のサブルーチンへのジャンプ命令とサブルーチンからの戻り命令に類似した 2 つの専用命令が含まれています。プロセス呼び出し命令は、特権プロセス制御ブロック ポインタ (PCBP) レジスタを介して、ユーザー レジスタと制御レジスタを特定のプロセスの PCB に保存します。これにより、現在のプロセスの実行状態がキャプチャされ、プロセスが一時停止されます。その後、別のプロセスの PCB からそのようなレジスタがロードされ、特定のプロセスの実行状態が復元されます。一方、プロセスへの戻り命令は、特定の PCB からプロセス状態をロードするだけです。 「ブロック移動」を実行することにより、プロセス切り替え命令は、オペレーティングシステムによるさらなる介入なしにアクティブな仮想メモリレイアウトを自動的に再構成することができ、この再構成とプロセッサレジスタの更新を組み合わせることで、これらの命令はプロセスの実行環境を簡単に復元することを可能にします。[4]
割り込み処理
PCBP レジスタと並んで、割り込みスタック ポインタ (ISP) レジスタは、共通の割り込みスタック上の位置を参照するために使用されます。このレジスタは、中断されたプロセスの保存状態を参照する PCB ポインタを記録するために使用されます。割り込みが配信されると、専用の call-process 命令を使用して、割り込みスタックに PCB アドレスが保存されている実行中のプロセスを一時停止し、テーブルから選択された割り込み ハンドラに切り替えます。割り込みは個別のプロセスのように動作するため、独自の実行スタックが提供されます。割り込み処理が完了すると、return-to-process 命令を使用して、一時停止されたプロセスを再開します。適切な割り込み ハンドラの選択には、固定された仮想メモリ位置にある PCB ポインタのテーブルが関係します。[4]
特権、システムコール、例外処理
Bellmac 32 アーキテクチャでは、4 つの特権レベルがサポートされています。特権レベルを切り替えるために、「制御転送」メカニズムが提供されています。このメカニズムは、2 レベルのテーブル階層を使用して、プロセッサ ステータス ワード (PSW) レジスタと、「制御呼び出し」によって呼び出される各プロシージャまたはハンドラの位置を使用して特権レベルを定義し、システム コール メカニズムを提供します。例外処理では、この制御呼び出しメカニズムを使用して、適切なハンドラに実行を誘導します。「通常の」例外の場合、適切なハンドラは、PSW レジスタで定義された特定の内部状態コード (ISC) に対応するエントリがそれぞれ含まれている特定の第 2 レベルのテーブルを介して見つかります。Bellmac 32 の例外関連機能が機能するには、オペレーティング システム カーネルも各プロセスの仮想アドレス空間に存在する必要があります。これは、制御転送に依存する例外では仮想メモリ構成が変更されないためです。[4]
C言語をサポートする命令
Bellmac 32 アーキテクチャが提供するさまざまな操作は一般に高級言語をサポートしていますが、C 言語の規則をサポートする特定の命令も提供されています。特に、文字列をゼロバイトで終了する C 言語表現に依存する文字列コピー命令と文字列終了命令です。また、明示的なブロック長パラメータを使用して場所間でコピーされるデータの量を定義する一般的なブロックコピー操作も提供されています。[4]
レジスター
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bellmac 32 には 16 個の 32 ビット レジスタがあります。これらのうち 3 つ (ISP、PCBP、PSW) は特権レジスタで、オペレーティング システムのサポートに使用され、マイクロプロセッサがカーネル モードの場合にのみ書き込むことができます。他の 3 つのレジスタ (SP、AP、FP) は、一部の命令でスタック ポインタとして使用されます。プロセッサ ステータス ワードで設定される実行レベルは、カーネル、エグゼクティブ、スーパーバイザ、ユーザーの 4 つの状態のいずれかになります。[5]
WE 32200にはさらに16個のレジスタがあり、[6]これらは8個のレジスタの2つのグループに分かれています。R16からR23はユーザーレジスタで、どのプロセッサモードでも読み取りと書き込みが可能で、グローバル変数と一時記憶域として使用されます。R24からR31はカーネルレジスタ、つまり特権レジスタで、カーネルモードでのみ書き込み可能で、他のモードでは読み取り可能です。これらの追加レジスタは、高水準言語コンパイラが頻繁に使用されるデータを保存するために使用できるコードを生成できるようにするために導入され、そのような言語の実行パフォーマンスが向上しました。[7]
プロセッサステータスワード
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
プロセス ステータス ワードはレジスタ ファイルの一部であり、R11 というエイリアスが付けられています。
説明書
このマイクロプロセッサには、C プログラミング言語で記述されたプログラムを実行するために最適化された 169 個の命令があり、文字列の形式などは C 言語の仕様に合わせて調整されています。
命令には最大 3 つのオペランドがあります。このプロセッサには浮動小数点演算命令や 10 進演算命令はありませんが、これらは後にコプロセッサ WE 32106 および WE 32206 で提供されました。
メモリ
Bellmac 32 は、8、16、または 32 ビットの線形、即値、レジスタ、レジスタ間接、ショート シフト、8、16、または 32 ビットの絶対および間接変位など、複数のタイプのメモリ アドレス指定を実装します。
使用法
WE 32x00プロセッサはAT&Tコンピュータシステムズの3Bシリーズコンピュータに使用され、1984年春のComdexショーで3B2、3B5、3B20シリーズの形で市販製品として発表されました。[8] 1985年半ば、AT&TはWE 32100と関連チップセット、および「ボードレベル」評価システムを他のメーカーに提供し始めました。[9]
サポートチップ
AT&TはWE 32x00をサポートするチップと周辺機器のラインナップを持っており、[6]以下が含まれます。
- WE 32101 / 32201メモリ管理ユニット
- WE 32102 クロック (10、14、18、または 24 MHz)
- WE 32103 DRAM コントローラ
- WE 32104 / 32204 DMA コントローラ
- WE 32106 / 32206 数学加速ユニット
- WE 321SB VMEbus シングルボードコンピュータ
- WE 321EB 評価ボード
参考文献
- ^ abcd Dr. Sung Mo (Steve) Kang (2015 年 1 月 13 日)。「第一人者:AT&T BELLMAC-32 マイクロプロセッサの開発」。エンジニアリングとテクノロジーの歴史 Wiki。
- ^ 「BELLMAC-32について、そしておそらく世界最大のプロッターペン画 – greg.org」 2011年12月9日。 2024年3月28日閲覧。
- ^ 「32ビットマイクロプロセッサICニュース」。Microsystems 、 1984年6月、p.12 。 2023年3月25日閲覧。
- ^ abcde Berenbaum, Alan D.; Condry, Michael W.; Lu, Priscilla M. (1982 年 3 月). 「BELLMAC-32 マイクロプロセッサのオペレーティング システムと言語サポート機能」。プログラミング言語とオペレーティング システムのアーキテクチャ サポートに関するシンポジウムの議事録。Association for Computing Machinery: 30–38。2023年3 月 24 日閲覧。
- ^ 「WE 32100 マイクロプロセッサ情報マニュアル」(PDF)。AT&T。1985 年 1 月。
- ^ ab 「AT&T WE 32 ビット マイクロプロセッサと周辺機器」(PDF)。AT&T。1987 年 8 月。
- ^ Huang, Victor KL; Seery, James W.; Wu, William S.; Altabet, Saul K.; Killian, Michael J.; Aymeloglu, Simeon; Gabara, Thaddeus J.; Fisher, Aaron L.; Hwang, Inseok S.; Thompson, David W. (1989年4月). 「AT&T WE32200の設計チャレンジ」. IEEE Micro . pp. 14– 25. 2023年3月19日閲覧。
- ^ Hunter, Bruce (1984年6月). 「AT&Tがマイクロ/ミニ市場に参入」. Microsystems . pp. 114– 116, 118. 2023年3月25日閲覧。
- ^ 「AT&T、他社に32ビットプロセッサを提供」Byte、1985年7月、9ページ。 2023年3月25日閲覧。
外部リンク
- 直接体験: AT&T BELLMAC-32 マイクロプロセッサの開発。http://www.ieeeghn.org/wiki/index.php/First-Hand:The_AT%26T_BELLMAC-32_Microprocessor_Development
- パーソナル コンピュータ。コンピューティング マシンの世界へ。付録 B: マイクロプロセッサについて。著者: Fernando Sáez Cows。http://www.quadernsdigitals.net/datos_web/biblioteca/l_516/enLinea/8.pdf
- AT&T テック チャンネル アーカイブ: 情報化時代のマイクロプロセッサ (ビデオ)
