「NEC Vシリーズ」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
LucienBOT (会話 | 投稿記録)
m ロボットによる 追加: it:NEC V20
編集の要約なし
1行目: 1行目:
'''NEC Vシリーズ'''は、[[日本電気]] (NEC) (現在は[[ルネサス エレクトロニクス]]に分離) が製造した[[CPU]]のシリーズである。[[インテル]]製の[[Intel 8086|8086]]・[[Intel 8088|8088]]互換のCPUのシリーズ独自開発の32[[ビット]]CPUのシリーズ。なお、後年にV800シリーズの名を冠したRISC CPU系列が開発されているが、マーケティング的な理由からVの名が付けられているだけで、技術的な繋がりは無い。実質的には独立した別系列のCPUである。名称の'''V'''は[[VLSI]]の頭文字を取ったものだが、'''Victory'''の意味も込められている<ref name=ascii>月刊アスキー別冊 蘇るPC-9801伝説 永久保存版 第2弾 2007年4月9日初版 「NEC V30開発秘話」 (ISBN 978-4-7561-4883-4)</ref>。
'''NEC Vシリーズ'''は、[[日本電気|NEC]]現在は[[ルネサス エレクトロニクス]]に分離が製造した[[CPU]]のシリーズである。
[[インテル]]製の[[Intel 8086|8086]]・[[Intel 8088|8088]]互換のCPUのシリーズおよび独自開発の32[[ビット]]CPUのシリーズがある。なお、後年にV800シリーズの名を冠したRISC CPU系列が開発されているが、マーケティング的な理由からVの名が付けられているだけで、技術的な繋がりは無く、実質的には独立した別系列のCPUである。名称の'''V'''は[[VLSI]]の頭文字を取ったもの、'''Victory'''の意味も込められている<ref name=ascii>月刊アスキー別冊 蘇るPC-9801伝説 永久保存版 第2弾 2007年4月9日初版 「NEC V30開発秘話」 (ISBN 978-4-7561-4883-4)</ref>。


== 概要 ==
== 概要 ==
[[インテル]]の[[CPU]]製品展開を追いかけるように[[日本電気]]は主にインテル系([[ザイログ]]の[[Z80]]も含む)のCPUの互換製品や類似製品([[μCOMシリーズ]])を開発・展開してきた。
[[インテル]]の[[CPU]]製品展開を追いかけるように[[日本電気]]は主にインテル系([[ザイログ]]の[[Z80]]も含む)のCPUの互換製品や類似製品[[μCOMシリーズ]]を開発・展開してきた。
[[1980年]]代前半よりインテル製[[Intel 8086|8086]]や[[Intel 8088|8088]]の互換製品を開発・販売していたが、これを[[CMOS]]化すると共に内部バスの本数を増やして能力を向上させた'''V20・V30'''を開発した。また、これらのCPUをコアとして周辺回路を集積した'''V40・V50'''や、より高性能化を図った'''V33'''等へと展開した。しかし、V30は提訴により、充分な商機を得ることが出来なかった。海外では、8088コンパチで[[IBM PC]]互換機・[[PC/AT#PC XT|PC/XT]]互換機に採用されたV20の方が、V30よりもメジャーである。
[[1980年]]代前半より開発・販売していたインテル製[[Intel 8086|8086]]や[[Intel 8088|8088]]の互換製品を[[CMOS]]化すると共に内部バスの本数を増やして能力を向上させた'''V20・V30'''を開発した。また、これらのCPUをコアとして周辺回路を集積した'''V40・V50'''や、より高性能化を図った'''V33'''等へと展開した。しかし、V30は提訴により、充分な商機を得ることが出来なかった。海外では、8088コンパチで[[IBM PC]]互換機・[[PC/AT#PC XT|PC/XT]]互換機に採用されたV20の方が、V30よりもメジャーである。


その一方で、より高性能を目指して、独自アーキテクチャの32ビットCPU、'''V60・V70・V80'''を開発した。
その一方で、より高性能を目指して、独自アーキテクチャの32ビットCPU、'''V60・V70・V80'''を開発した。
後に、RISCアーキテクチャのV800シリーズへ移行した。
後に、RISCアーキテクチャのV800シリーズへ移行した。


V10欠番となっているが、これは当初CMOS版[[Z80]]コード互換CPUであるμPD70008にV10の呼称を与えて販売を計画したものの、訴訟問題への影響を考えて、Vシリーズから除外する方針としたため、結局用いられなかったためである<ref name=ascii /><ref>μPD70008の元となったμPD780にはμCOM-82と命名して販売したが、ザイログとセカンドソース契約をしていなかったため訴えられている(後に和解)</ref>
V10欠番となっているこれは当初CMOS版[[Z80]]コード互換CPUであるμPD70008にV10の呼称を与えて販売を計画したものの、訴訟問題への影響を考えて、Vシリーズから除外する方針としたため、結局用いられなかったためである<ref name=ascii />μPD70008の元となったμPD780にはμCOM-82と命名して販売したが、ザイログとセカンドソース契約をしていなかったため訴えられている(後に和解)。


、VRシリーズと呼ばれる製品群もあるが、これらは[[MIPSアーキテクチャ]]であり、Vシリーズとは異なる。
なお、VRシリーズと呼ばれる製品群もあるが、これらは[[MIPSアーキテクチャ]]であり、Vシリーズとは異なる。


=== 16ビットCPU ===
=== 16ビットCPU ===
18行目: 20行目:
==== V30 ====
==== V30 ====
[[ファイル:KL_NEC_V30.jpg|thumb|200px|V30(μPD70116)]]
[[ファイル:KL_NEC_V30.jpg|thumb|200px|V30(μPD70116)]]
'''V30'''(μPD70116) は、[[日本電気|NEC]]が製造した、インテル[[Intel 8086|8086]]の(正確にはNECの[[μCOMシリーズ#.CE.BCCOM-86.2C .CE.BCCOM-88|μPD8086(μCOM-86)]]の)上位互換[[CPU]]である。外部バス8ビットの'''V20''' (μPD70108) がある。またV30・V20の[[セカンドソース]]製品[[ソニー]][[シャープ]]からも出ていた<ref>ソニー CXQ70116・CXQ70108、シャープ LH70116・LH70108</ref>
'''V30'''(μPD70116) は、[[日本電気|NEC]]が製造した、インテル[[Intel 8086|8086]]の(正確にはNECの[[μCOMシリーズ#.CE.BCCOM-86.2C .CE.BCCOM-88|μPD8086(μCOM-86)]]の)上位互換[[CPU]]である。外部バス8ビットの'''V20''' (μPD70108) がある。またV30・V20の[[セカンドソース]]製品には、[[ソニー]]CXQ70116・CXQ70108、[[シャープ]]LH70116・LH70108 がある


ハードウェア面では、オリジナルの8086に対してピン配置が互換であり、信号のタイミングは多少異なっていた(8086のクロックの[[デューティ比]]が1:2であったのに対しV30は1:1である。これに付随して他のタイミングの定義も異なる)が、実際にはそのまま差し替えても問題なく動く事が多かった<ref>8MHzまでは原発振を2分周するクロックジェネレータμPD71011の他に、3分周のμPD71084も使用できる(μPD70116データシート ドキュメントNo. IC-6660FおよびμPD70108データシート ドキュメントNo. IC-1827B・IC-6659D。この記述はμPD70108H/μPD70116Hデータシート ドキュメントNo. IC-3552Aからは削除されている事から、1:2も許容されている模様。10MHz以上(8MHz超)はμPD71011指定で、1:1のみ</ref><ref>8086の中には[[沖電気工業|沖電気]] (現 OKIセミコンダクタ)のMSM80C86A-10(10MHzバージョン)のように、メーカやクロック周波数によってはデューティ比が1:1のもの(MSM80C86A-10データシート J2O0010-27-X3)もあり、これらからの交換の場合はさらに有利だった。実際にJ-3100SS(元祖DynaBook)のCPUをMSM80C86A-10からV30に載せ替えた例もあるフラットパッケージ同士で、パッケージ形状およびピン配置が異なるため簡単ではない)</ref>
ハードウェア面では、オリジナルの8086に対してピン配置が互換である。信号のタイミングは、8086のクロックの[[デューティ比]]が1:2のに対しV30は1:1と、多少異なっていたおり、これに付随して他のタイミングの定義も異なる。ただし、実際にはそのまま差し替えても問題なく動く事が多かった
* 8MHzまでは原発振を2分周するクロックジェネレータμPD71011の他に、3分周のμPD71084も使用できる<ref>μPD70116データシート ドキュメントNo. IC-6660FおよびμPD70108データシート ドキュメントNo. IC-1827B・IC-6659D。この記述はμPD70108H/μPD70116Hデータシート ドキュメントNo. IC-3552Aからは削除されている。</ref>事から、1:2も許容されている模様。10MHz以上(8MHz超)はμPD71011指定で、1:1のみ
* 8086の中には[[沖電気工業|沖電気]]現 OKIセミコンダクタのMSM80C86A-10(10MHzバージョンのように、メーカやクロック周波数によってはデューティ比が1:1のもの(MSM80C86A-10データシート J2O0010-27-X3)もあり、これらからの交換の場合はさらに有利だった。実際にJ-3100SS(元祖DynaBook)のCPUをMSM80C86A-10からV30に載せ替えた例もある。ただしフラットパッケージ同士で、パッケージ形状およびピン配置が異なるため簡単ではない。


ソフトウェア面では、バイナリコードレベルで[[Intel 80186|80186]]上位互換であり、オリジナルの8086に対しても上位互換であった
ソフトウェア面では、バイナリコードレベルで[[Intel 80186|80186]]上位互換であり、オリジナルの8086に対しても上位互換であ


また、8086・80186に不足していたいくつかの命令が補完され、これを使用することで、8086より制限が少なく、より[[直交性]]の高い命令を利用可能であった。その他に、ビットストリングを操作する命令なども追加されていた。V30専用のアセンブリ[[ニーモニック]]は、[[Intel 8080|8080]]からの流れを汲んだ8086のニーモニックに比べ、洗練された構文でプログラムを記述することが可能なものであったが、実際はV30のニーモニックに対応した[[アセンブラ]]はほとんど存在しなかった。また80286とは異なる拡張をした命令群は80286以後のインテル系CPUではサポートされないため積極的に用いられず、市場では主に「高速な8086」と見なされて利用されていた。一方で、一部のソフトウェアはV30固有の拡張命令を使用していたため、[[PC-9800シリーズ|PC-9801]]ではソフトウェア資産継承の視点から暫くの間はV30とインテル系CPUを両方実装し、切り替えて使用する方式をとった<ref>[[EPSON PCシリーズ]]では、ほとんどのPC-286・すべてのPC-386/486/586にはV30を搭載しておらず、こようなソフトウェアの中に正常に動作しないものもあった(PC-286Uや初期のPC-286NOTEのように、[[EPSON PCシリーズ#cite_note-5|PC-286シリーズのごく一部の機種]]にはV30み搭載)。1990年のPC-9801DA/DS/DX以降の機種ではPC-98GSなど一部を除きPC-9800シリーズにおいてもV30を省略したため、同様の問題を抱えることになったが、その頃にはそのようなソフトが少なくなったため、あまり表面化しなかった。なお、NEC自身はV30固有命令の使用を推奨しない旨、案内していた。</ref>
また、8086・80186に不足していたいくつかの命令が補完され、これを使用することで、8086より制限が少なく、より[[直交性]]の高い命令を利用可能であ。その他に、ビットストリングを操作する命令なども追加されていた。V30専用のアセンブリ[[ニーモニック]]は、[[Intel 8080|8080]]からの流れを汲んだ8086のニーモニックに比べ、洗練された構文でプログラムを記述することが可能が、実際はV30のニーモニックに対応した[[アセンブラ]]はほとんど存在しなかった。また80286とは異なる拡張をした命令群は80286以後のインテル系CPUではサポートされないため積極的に用いられず、市場では主に「高速な8086」と見なされて利用されていた。一方で、一部のソフトウェアはV30固有の拡張命令を使用していたため、[[PC-9800シリーズ|PC-9801]]ではソフトウェア資産継承の視点から暫くの間はV30とインテル系CPUを両方実装し、切り替えて使用する方式をとった[[EPSON PCシリーズ]]では、V30を搭載しのはPC-286Uや初期のPC-286NOTEなど[[EPSON PCシリーズ#cite_note-5|PC-286シリーズのごく一部の機種]]のみで、それ以外の機種ではこのようなソフトウェアの中には正常に動作しないももあった。1990年のPC-9801DA/DS/DX以降の機種ではPC-98GSなど一部を除きPC-9800シリーズもV30を省略したため、同様の問題を抱えることになったが、その頃にはそのようなソフトが少なくなったため、あまり表面化しなかった。なお、NEC自身はV30固有命令の使用を推奨しない旨、案内していた。


CPU内部のバスを増強してデータ転送効率を上げるとともに、所要クロック数の多い乗算、除算命令を[[ハードワイヤード]]化し、命令実行に要するクロック数を削減したため、多くの命令を8086の約2/3のクロック数で実行可能となり、単純にCPUを差し替えただけで、同一の動作クロックで数%から数10%高速で演算処理を行うことが出来た。
CPU内部のバスを増強してデータ転送効率を上げるとともに、所要クロック数の多い乗算、除算命令を[[ハードワイヤード]]化し、命令実行に要するクロック数を削減したため、多くの命令を8086の約2/3のクロック数で実行可能となり、単純にCPUを差し替えただけで、同一の動作クロックで数%から数10%高速で演算処理を行うことが出来た。


[[マイクロプログラム方式|マイクロコード]]の著作権がセカンドソース契約で問題となり、NECは先手を打って[[1984年]]、Vシリーズがインテルの著作権を侵害していないことを確認する訴訟を起こした。これに対してインテルが反訴したため裁判は長引いたが、[[1989年]]にV30はi8086の著作権を侵害していないとの判決を得た。ただし、その直接の理由は8086に著作権表示が無く、当該製品に対して著作権が認められないからであった。一方でマイクロコードにも著作権があることが判示され、互換プロセッサの製造が困難となった。86系の[[マイクロプログラム方式|マイクロコード]]の著作権への抵触を回避するために、完全に[[ハードワイヤード]]化されたV33系へ移行した。
[[マイクロプログラム方式|マイクロコード]]の著作権がセカンドソース契約で問題となり、NECは先手を打って[[1984年]]、Vシリーズがインテルの著作権を侵害していないことを確認する訴訟を起こした。これに対してインテルが反訴したため裁判は長引いたが、[[1989年]]にV30はi8086の著作権を侵害していないとの判決を得た。ただし、その直接の理由は8086に著作権表示が無く、当該製品に対して著作権が認められないからであ。一方でマイクロコードにも著作権があることが判示され、互換プロセッサの製造が困難となった。86系の[[マイクロプログラム方式|マイクロコード]]の著作権への抵触を回避するために、完全に[[ハードワイヤード]]化されたV33系へ移行した。


また[[μCOMシリーズ#.CE.BCCOM-80|μPD8080AF(μCOM-80F)]]を元にした、8080[[エミュレータ|エミュレーション]]機能を実装していたのも特徴の一つである。[[1980年代]]後半においては、一部工業高校などで、V30搭載型[[PC-9800シリーズ]]に[[CP/M]]エミュレータを搭載し8ビットCPUによる[[アセンブラ]]実習に使用されていた<ref>CP/MのBDOSに相当する部分を[[MS-DOS]]のデバイスドライバとして実装していた。</ref>
また[[μCOMシリーズ#.CE.BCCOM-80|μPD8080AF(μCOM-80F)]]を元にした、8080[[エミュレータ|エミュレーション]]機能を実装していたのも特徴の一つである。[[1980年代]]後半には、一部工業高校などで、V30搭載型[[PC-9800シリーズ]]に[[CP/M]]のBDOSに相当する部分を[[MS-DOS]]のデバイスドライバとして実装しCP/Mエミュレータを搭載し8ビットCPUによる[[アセンブラ]]実習に使用されていた。


[[Intel 80186|80186]]とはバイナリ上位互換が保たれていたが、インテルの方針転換によって[[セカンドソース]]が許可されなくなったため、[[Intel 80286|80286]]以降のCPUではV30で拡張された命令との互換性が保てなくなった。
[[Intel 80186|80186]]とはバイナリ上位互換が保たれていたが、インテルの方針転換によって[[セカンドソース]]が許可されなくなったため、[[Intel 80286|80286]]以降のCPUではV30で拡張された命令との互換性が保てなくなった。
36行目: 40行目:


===== 用語・レジスタ表記 =====
===== 用語・レジスタ表記 =====
V30と8086とは用語やレジスタの表記も異なる。相違点は以下の通り(同一名称のレジスタは省略)
V30と8086とは用語やレジスタの表記も異なる。相違点は以下の通り同一名称のレジスタは省略
{| class="wikitable" style="margin:0 auto"
{| class="wikitable" style="margin:0 auto"
|+ レジスタ表記
|+ レジスタ表記
111行目: 115行目:
=== CISC V20 - V80シリーズ ===
=== CISC V20 - V80シリーズ ===
[[ファイル:UPD70008AC-4.jpg|thumb|200px|μPD70008A V10の表記はない]]
[[ファイル:UPD70008AC-4.jpg|thumb|200px|μPD70008A V10の表記はない]]
* ''V10'' (μPD70008) ※実際にはその名称で正式に発売されていないためVシリーズではない(前述)。Z80コード互換NMOS-CPUである[[μCOMシリーズ#.CE.BCCOM-82|μPD780(μCOM-82)]]のCMOS版。Aも-数字もつかないもの(D70008C)は4MHz版。
* ''V10'' (μPD70008) ※実際にはその名称で正式に発売されていないためVシリーズではない。Z80コード互換NMOS-CPUである[[μCOMシリーズ#.CE.BCCOM-82|μPD780(μCOM-82)]]のCMOS版。Aも-数字もつかないもの(D70008C)は4MHz版。
----
----
[[ファイル:UPD70108C-8 01.jpg|thumb|200px|V20(μPD70108)]]
[[ファイル:UPD70108C-8 01.jpg|thumb|200px|V20(μPD70108)]]
122行目: 126行目:
* '''V25+''' (μPD70325) - V25のDMA転送速度を改善し、高速化したもの。
* '''V25+''' (μPD70325) - V25のDMA転送速度を改善し、高速化したもの。
* '''V30''' (μPD70116) - 8086ピン互換。最低クロック周波数は2MHzで、クロックを停止すると復帰時の動作が保証されない
* '''V30''' (μPD70116) - 8086ピン互換。最低クロック周波数は2MHzで、クロックを停止すると復帰時の動作が保証されない
* '''V30HL''' (μPD70116H) - 5Vで16MHz動作可能(または3Vで8MHz)な、V30の高速・省電力版。省電力機能に優れ、周辺チップの消費コントロール機能を持つ。その特長を生かし、コンパクト型デスクトップの[[PC-9800シリーズ|PC-9801UF]]・[[PC-9800シリーズ|PC-9801UR]]、ノート型の[[PC-9800シリーズ|PC-9801NV]]・[[PC-9800シリーズ|PC-9801NL]]に搭載された。クロックを停止・再開することにより、動作を停止・復帰できる。V20上位互換の'''V20HL''' (μPD70108H)もある。
* '''V30HL''' (μPD70116H) - 5Vで16MHzまたは3Vで8MHz動作可能な、V30の高速・省電力版。省電力機能に優れ、周辺チップの消費コントロール機能を持つ。その特長を生かし、コンパクト型デスクトップの[[PC-9800シリーズ|PC-9801UF]]・[[PC-9800シリーズ|PC-9801UR]]、ノート型の[[PC-9800シリーズ|PC-9801NV]]・[[PC-9800シリーズ|PC-9801NL]]に搭載された。クロックを停止・再開することにより、動作を停止・復帰できる。V20上位互換の'''V20HL''' (μPD70108H)もある。
* '''V30MZ''' - 組み込み用のIPコア。66MHz動作で35MIPSの性能。携帯ゲーム機[[ワンダースワン]]にも、カスタムされたものが搭載された。機能が異なる'''V30MX'''(33MHz動作で4.3MIPS)もある。両者ともV33系同様、8080エミュレーションはない<ref>V30MZユーザーズ・マニュアル(暫定) (ドキュメントNo. A13761JJ1V2UM00)</ref>。
* '''V30MZ''' - 組み込み用のIPコア。66MHz動作で35MIPSの性能。携帯ゲーム機[[ワンダースワン]]にも、カスタムされたものが搭載された。機能が異なる'''V30MX'''(33MHz動作で4.3MIPS)もある。両者ともV33系同様、8080エミュレーションはない<ref>V30MZユーザーズ・マニュアル(暫定) (ドキュメントNo. A13761JJ1V2UM00)</ref>。
* '''V33''' (μPD70136) - V30に最大16MBまでのメモリ空間を扱えるようアドレッシング機能を拡張し、さらにオールワイヤード化したプロセッサ。プログラマブルなI/Oウェイト追加機能等、8086用ソフトウェアをそのまま動作させるための機能が豊富に実装されているが、アドレス信号線を20ビットから24ビットへ拡張した関係もあり、V30とはピン互換では無い。8086互換プロセッサとしては、当時の80286とほぼ同等の処理速度を持つ。
* '''V33''' (μPD70136) - V30に最大16MBまでのメモリ空間を扱えるようアドレッシング機能を拡張し、さらにオールワイヤード化したプロセッサ。プログラマブルなI/Oウェイト追加機能等、8086用ソフトウェアをそのまま動作させるための機能が豊富に実装されているが、アドレス信号線を20ビットから24ビットへ拡張した関係もあり、V30とはピン互換では無い。8086互換プロセッサとしては、当時の80286とほぼ同等の処理速度を持つ。
128行目: 132行目:
* '''V35''' (μPD70330,μPD70332) - V30に周辺I/Fを追加した組み込み用途向けプロセッサ。μPD70330はμPD70332からROMを取り除いたもの。
* '''V35''' (μPD70330,μPD70332) - V30に周辺I/Fを追加した組み込み用途向けプロセッサ。μPD70330はμPD70332からROMを取り除いたもの。
* '''V35+''' (μPD70335) - V35のDMA転送速度を改善し、高速化したもの。
* '''V35+''' (μPD70335) - V35のDMA転送速度を改善し、高速化したもの。
* '''μPD9002''' - V30モードとZ80上位互換の動作モードを持つ。[[PC-8800シリーズ|PC-88VA]]に搭載された。V51とする文献が一部にあるようであるが、NECよりV51は後述のμPD70280であるとする資料があるので誤りと思われる。
* '''μPD9002''' - V30モードとZ80上位互換の動作モードを持つ。[[PC-8800シリーズ|PC-88VA]]に搭載された。V51とする文献が一部にあるようが、NECよりV51は後述のμPD70280であるとする資料があるので誤りと推測される。
* '''V40''' (μPD70208) - V20に8086ファミリ互換の周辺I/Fを追加した組み込み用途向けプロセッサ。コアをV20HLにした'''V40HL''' (μPD70208H)もある。
* '''V40''' (μPD70208) - V20に8086ファミリ互換の周辺I/Fを追加した組み込み用途向けプロセッサ。コアをV20HLにした'''V40HL''' (μPD70208H)もある。
* '''V50''' (μPD70216) - V30に8086ファミリ互換の周辺I/Fを追加した組み込み用途向けプロセッサ。コアをV30HLにした'''V50HL''' (μPD70216H)もある。
* '''V50''' (μPD70216) - V30に8086ファミリ互換の周辺I/Fを追加した組み込み用途向けプロセッサ。コアをV30HLにした'''V50HL''' (μPD70216H)もある。
136行目: 140行目:
* '''V53A''' (μPD70236A) - V53のコアをV33Aに変更したもの。
* '''V53A''' (μPD70236A) - V53のコアをV33Aに変更したもの。
* '''[[V55PI]]''' (μPD70433) - 80186相当の命令セットとペリフェラルを集積したプロセッサ。
* '''[[V55PI]]''' (μPD70433) - 80186相当の命令セットとペリフェラルを集積したプロセッサ。
* '''V20・V30用数値データプロセッサ''' (μPD71091 V30NDP) - 数値演算コプロセッサ。Intel 80188・80186を接続した際の動作は考慮はされていないため、これらを接続した際には8087数値演算コプロセッサとは一部の動作が異なる。これを回避するには別途補助回路が必要である<ref name=ascii />(NECにて対応するゲートアレイが販売されている)。なお、V30を搭載したPC-9800シリーズにおいては本コプロセッサは採用されず、タイミング等を調整した上で8087を接続する手法が取られていた<ref>PC-9800シリーズではV30を理想的なタイミングで動作させておらず、パフォーマンスは理想条件より劣る。</ref>
* '''V20・V30用数値データプロセッサ''' (μPD71091 V30NDP) - 数値演算コプロセッサ。Intel 80188・80186を接続した際の動作は考慮はされていないため、これらを接続した際には8087数値演算コプロセッサとは一部の動作が異なる。これを回避するには別途補助回路が必要である<ref name=ascii />NECにて対応するゲートアレイが販売されている。なお、V30を搭載したPC-9800シリーズは本コプロセッサは採用されず、タイミング等を調整した上で8087を接続する手法が取られていたPC-9800シリーズではV30を理想的なタイミングで動作させておらず、パフォーマンスは理想条件より劣る。
[[ファイル:NEC uPD71055 PPI.jpg|thumb|200px|VシリーズのファミリLSI μPD71055 パラレルI/Oの8255相当]]
[[ファイル:NEC uPD71055 PPI.jpg|thumb|200px|VシリーズのファミリLSI μPD71055 パラレルI/Oの8255相当]]
* その他、ファミリLSIがある。
* その他、ファミリLSIがある。
----
----
* '''V60''' (μPD70616) - 内部32ビット、外部バス16ビットの32ビットCPU。全く独自の[[命令セット]]であり、非常に豊富な[[アドレッシングモード]]を持った直交性の高いアーキテクチャが特徴である。また、初めて浮動小数点演算ユニットを1チップに内蔵した。V30をエミュレートするモードも持ち、ソフトウェア資産の継承も考慮している。また、監視モードを持ち、2基のV60を組み合わせてエラー検出システムを、3基以上を組み合わせて多数決による[[フォールトトレラントシステム]]を構成することが可能であり、高信頼性システムへの応用も目指した。NECからは、PC-9800シリーズ用拡張ボードとセットで[[UNIX]]が販売されていた。セガの業務用基板System32やModel1で使用された。他のメーカーでも海賊版ゲーム基板対策で使用された。文豪ミニ5SCではアウトラインフォント展開プロセッサとして採用されている<ref name=ascii />。レジスタ構成などについて[[TRONCHIP]]との類似性の指摘がある命令長がバイト可変長か16ビット単位の可変長かなどの相違点もある
* '''V60''' (μPD70616) - 内部32ビット、外部バス16ビットの32ビットCPU。全く独自の[[命令セット]]であり、非常に豊富な[[アドレッシングモード]]を持った直交性の高いアーキテクチャが特徴である。また、初めて浮動小数点演算ユニットを1チップに内蔵した。V30をエミュレートするモードも持ち、ソフトウェア資産の継承も考慮している。また、監視モードを持ち、2基のV60を組み合わせてエラー検出システムを、3基以上を組み合わせて多数決による[[フォールトトレラントシステム]]を構成することが可能であり、高信頼性システムへの応用も目指した。NECからは、PC-9800シリーズ用拡張ボードとセットで[[UNIX]]が販売されていた。セガの業務用基板System32やModel1で使用された。他のメーカーでも海賊版ゲーム基板対策で使用された。文豪ミニ5SCではアウトラインフォント展開プロセッサとして採用されている<ref name=ascii />。レジスタ構成などについて[[TRONCHIP]]との類似性の指摘がある命令長がバイト可変長か16ビット単位の可変長かなどの相違点もある。
* '''V70''' (μPD70632) - V60を完全32ビット化したCPU。TRONCHIPの開発の影響を受けている{{要出典|date=2010年4月}}。[[ITRON]]等のRTOSが実装された。NTTの交換機に組み込まれたほか、[[アーケードゲーム基板|業務用ゲーム基板]]に搭載されたり、パーソナルコンピュータ[[X68000]]用の拡張CPUボードに搭載されるといった応用例がある。[[H-IIAロケット]]の誘導制御用コンピュータにも使われている<ref name=ascii />。
* '''V70''' (μPD70632) - V60を完全32ビット化したCPU。TRONCHIPの開発の影響を受けている{{要出典|date=2010年4月}}。[[ITRON]]等のRTOSが実装された。NTTの交換機に組み込まれたほか、[[アーケードゲーム基板|業務用ゲーム基板]]に搭載されたり、パーソナルコンピュータ[[X68000]]用の拡張CPUボードに搭載されるといった応用例がある。[[H-IIAロケット]]の誘導制御用コンピュータにも使われている<ref name=ascii />。
* '''V80''' - CISC系としては最後のVシリーズ。V30エミュレーション機能を削除。一般にはほとんど出回らず。これ以降のNECの32ビット以上のCPUは[[RISC]]の、[[MIPSアーキテクチャ]]のVRシリーズと、後述のV800シリーズに移行。
* '''V80''' - CISC系としては最後のVシリーズ。V30エミュレーション機能を削除。一般にはほとんど出回らず。これ以降のNECの32ビット以上のCPUは[[RISC]]の、[[MIPSアーキテクチャ]]のVRシリーズと、後述のV800シリーズに移行。

2011年2月3日 (木) 14:48時点における版

NEC Vシリーズは、NEC(現在はルネサス エレクトロニクスに分離)が製造したCPUのシリーズである。

インテル製の80868088互換のCPUのシリーズおよび独自開発の32ビットCPUのシリーズがある。なお、後年にV800シリーズの名を冠したRISC CPU系列が開発されているが、マーケティング的な理由からVの名が付けられているだけで、技術的な繋がりは無く、実質的には独立した別系列のCPUである。名称のVVLSIの頭文字を取ったもので、Victoryの意味も込められている[1]

概要

インテルCPU製品展開を追いかけるように日本電気は主にインテル系(ザイログZ80も含む)のCPUの互換製品や類似製品μCOMシリーズを開発・展開してきた。 1980年代前半より開発・販売していたインテル製80868088の互換製品をCMOS化すると共に、内部バスの本数を増やして能力を向上させたV20・V30を開発した。また、これらのCPUをコアとして周辺回路を集積したV40・V50や、より高性能化を図ったV33等へと展開した。しかし、V30は提訴により、充分な商機を得ることが出来なかった。海外では、8088コンパチでIBM PC互換機・PC/XT互換機に採用されたV20の方が、V30よりもメジャーである。

その一方で、より高性能を目指して、独自アーキテクチャの32ビットCPU、V60・V70・V80を開発した。 後に、RISCアーキテクチャのV800シリーズへ移行した。

V10は欠番となっている。これは当初CMOS版Z80コード互換CPUであるμPD70008にV10の呼称を与えて販売を計画したものの、訴訟問題への影響を考えて、Vシリーズから除外する方針としたため、結局用いられなかったためである[1]。μPD70008の元となったμPD780にはμCOM-82と命名して販売したが、ザイログとセカンドソース契約をしていなかったため訴えられている(後に和解)。

なお、VRシリーズと呼ばれる製品群もあるが、これらはMIPSアーキテクチャであり、Vシリーズとは異なる。

16ビットCPU

V30

V30(μPD70116)

V30(μPD70116) は、NECが製造した、インテル8086の(正確にはNECのμPD8086(μCOM-86)の)上位互換CPUである。外部バス8ビットのV20 (μPD70108) がある。またV30・V20のセカンドソース製品には、ソニーCXQ70116・CXQ70108、シャープLH70116・LH70108 がある。

ハードウェア面では、オリジナルの8086に対してピン配置が互換である。信号のタイミングは、8086のクロックのデューティ比が1:2なのに対し、V30は1:1と、多少異なっていたおり、これに付随して他のタイミングの定義も異なる。ただし、実際にはそのまま差し替えても問題なく動く事が多かった。

  • 8MHzまでは原発振を2分周するクロックジェネレータμPD71011の他に、3分周のμPD71084も使用できる[2]事から、1:2も許容されている模様。10MHz以上(8MHz超)はμPD71011指定で、1:1のみ。
  • 8086の中には沖電気(現 OKIセミコンダクタ)のMSM80C86A-10(10MHzバージョン)のように、メーカやクロック周波数によってはデューティ比が1:1のもの(MSM80C86A-10データシート J2O0010-27-X3)もあり、これらからの交換の場合はさらに有利だった。実際にJ-3100SS(元祖DynaBook)のCPUをMSM80C86A-10からV30に載せ替えた例もある。ただしフラットパッケージ同士で、パッケージ形状およびピン配置が異なるため簡単ではない。

ソフトウェア面では、バイナリコードレベルで80186上位互換であり、オリジナルの8086に対しても上位互換である。

また、8086・80186に不足していたいくつかの命令が補完され、これを使用することで、8086より制限が少なく、より直交性の高い命令を利用可能である。その他に、ビットストリングを操作する命令なども追加されていた。V30専用のアセンブリニーモニックは、8080からの流れを汲んだ8086のニーモニックに比べ、洗練された構文でプログラムを記述することが可能だが、実際はV30のニーモニックに対応したアセンブラはほとんど存在しなかった。また80286とは異なる拡張をした命令群は80286以後のインテル系CPUではサポートされないため積極的に用いられず、市場では主に「高速な8086」と見なされて利用されていた。一方で、一部のソフトウェアはV30固有の拡張命令を使用していたため、PC-9801ではソフトウェア資産継承の視点から暫くの間はV30とインテル系CPUを両方実装し、切り替えて使用する方式をとった。EPSON PCシリーズでは、V30を搭載したのはPC-286Uや初期のPC-286NOTEなどPC-286シリーズのごく一部の機種のみで、それ以外の機種ではこのようなソフトウェアの中には正常に動作しないものもあった。1990年のPC-9801DA/DS/DX以降の機種ではPC-98GSなど一部を除きPC-9800シリーズでもV30を省略したため、同様の問題を抱えることになったが、その頃にはそのようなソフトが少なくなったため、あまり表面化しなかった。なお、NEC自身はV30固有命令の使用を推奨しない旨、案内していた。

CPU内部のバスを増強してデータ転送効率を上げるとともに、所要クロック数の多い乗算、除算命令をハードワイヤード化し、命令実行に要するクロック数を削減したため、多くの命令を8086の約2/3のクロック数で実行可能となり、単純にCPUを差し替えただけで、同一の動作クロックで数%から数10%高速で演算処理を行うことが出来た。

マイクロコードの著作権がセカンドソース契約で問題となり、NECは先手を打って1984年、Vシリーズがインテルの著作権を侵害していないことを確認する訴訟を起こした。これに対してインテルが反訴したため裁判は長引いたが、1989年にV30はi8086の著作権を侵害していないとの判決を得た。ただし、その直接の理由は8086に著作権表示が無く、当該製品に対して著作権が認められないからである。一方でマイクロコードにも著作権があることが判示され、互換プロセッサの製造が困難となった。86系のマイクロコードの著作権への抵触を回避するために、完全にハードワイヤード化されたV33系へ移行した。

またμPD8080AF(μCOM-80F)を元にした、8080エミュレーション機能を実装していたのも特徴の一つである。1980年代後半には、一部工業高校などで、V30搭載型PC-9800シリーズに、CP/MのBDOSに相当する部分をMS-DOSのデバイスドライバとして実装しCP/Mエミュレータを搭載し8ビットCPUによるアセンブラ実習に使用されていた。

80186とはバイナリ上位互換が保たれていたが、インテルの方針転換によってセカンドソースが許可されなくなったため、80286以降のCPUではV30で拡張された命令との互換性が保てなくなった。

用語・レジスタ表記

V30と8086とは用語やレジスタの表記も異なる。相違点は以下の通り(同一名称のレジスタは省略)。

レジスタ表記
8086 V30
AX,BX,CX,DX AW,BW,CW,DW
CS PS
DS DS0
ES DS1
IP PC
SI IX
DI IY

マニュアルの表記はV30のニーモニックとレジスタであるが、実際に用いるにはV30のニーモニックに対応したアセンブラでないと意味がない。

動作モード
8086 V30
ミニマムモード
Minimum mode
小規模モード
Small mode
マキシマムモード
Maximum mode
大規模モード
Large mode

V33・V33A

V30がマイクロコード著作権で訴えられたことを受けて、内部論理のハードワイヤー化を行い、マイクロコードの違法使用をしていないことを明確にすると共に、マイクロコード実行にかかるオーバーヘッドを削減して実行処理速度の向上、アドレス空間の拡張を図ったものである。PLCCによる製品のみが提供され、40pin-DIPパッケージの8086と差し替えて高速化を図ることは出来なかった。後に、V50のCPUコアを、このコアに置き換えたV53も開発されている。 V33AはV33に存在した80286との非互換部分を修正したもの。 なお、V33系は8080エミュレーションが省かれている[3]

V40・V50

V40(μPD70208)

V20・V30をコアに、8086用周辺チップを集積したもの。既存の8086応用機器にて、複数のチップをまとめて置き換える用途向け。PC-98LTPC-98HAで使用されている。内蔵されている周辺回路は以下の通り。

クロックジェネレータ
入力されたクロックの周波数を2分周し、CPU内部と外部それぞれへ供給する。
プログラマブル・ウェイト制御ユニット
速度の遅いI/Oメモリを使用する際に読み書きのバスタイミングを延長するためのもの。
リフレッシュ制御ユニット
DRAMを使用する際、自動的にリフレッシュを行ってくれるもの。
タイマ/カウンタユニット(μPD71054サブセット)
タイマ及びカウンタ。16ビットのカウンタを3本内蔵している。
シリアル制御ユニット(μPD71051サブセット)
調歩同期方式のシリアル通信を行う。
割り込み制御ユニット(μPD71059サブセット)
8本までのハードウェア割り込みを調停し、一つずつCPUに伝える。さらにμPD71059を接続してカスケード接続とすることもできる。
DMA制御ユニット(μPD71071サブセット)
4チャンネルのDMAユニット。これにより高速にI/O-メモリ間の転送を実現できる。

なおV40・V50をベースとしたカスタムCPUもいくつか存在しており、PC-88VAに搭載されたμPD9002(V50にZ80エミュレーション機能を追加したもの)などが代表的な存在である。

V25

V20をコアに、独自周辺回路を集積したもの。また、レジスタセットが複数バンクあり、コンテキストスイッチを高速に切り替えることが出来る。組み込み機器向けを意図して設計されている。

32ビットCPU

V60・V70・V80

V70 (μPD70632GD-20) ジャレコ メガシステム32実装例

独自のアーキテクチャを持つ32ビットCPUとして開発された。32ビットレジスタを32本持ち、全く独自の命令セットであり、非常に豊富なアドレッシングモードを持った直交性の高いアーキテクチャが特徴である。また、複数のCPUを並列接続して相互に監視することで、フォールトトレラントシステムを構成することが出来た。初めて浮動小数点演算ユニットを1チップに内蔵した。内部32ビット構成、外部16ビットバスのV60と、内部構成・外部バス共に32ビット構成のV70・V80がある。高信頼性システムを構成できる利点を活かしてNTTの交換機に使用された。一部、業務用ゲーム基板のCPUとしても採用されていたが、その採用理由は「市場にほとんど出回っていないCPUのため、逆アセンブルや違法コピーの対策になる」という、いささか後ろ向きなものだった。またV60・V70にはV30エミュレーションモードがあり、旧来のソフトウェア資産も継承可能となっている。

RISC CPU

RISC CPUが注目されるのに併せて、V800シリーズが開発された。マーケティング上の理由からVシリーズの一員とされたが、技術的なつながりは無く全く別のアーキテクチャに基づく新規設計CPUである。Hennessy-Patterson本に見られるような典型的な5段パイプライン構成を取る。

既存組み込み用CPUシリーズの代替あるいは後継機種として組み込み用途に使用されている。また、V810は日本電気ホームエレクトロニクス製の家庭用ゲーム機PC-FX任天堂製のバーチャルボーイにも用いられている。

なお、このシリーズの内、組み込み用途向けのV850はNECエレクトロニクス製記録型DVD/HD DVD/BDドライブ向けチップセットであるSCOMBOシリーズのCPU、あるいはSCOMBOシリーズに属するワンチップコントローラの内蔵CPUコアとして提供されており、これらはソニーオプティアークパイオニアといったメーカーによる光学ドライブ各種に人知れず大量採用されている。

詳細

CISC V20 - V80シリーズ

μPD70008A V10の表記はない
  • V10 (μPD70008) ※実際にはその名称で正式に発売されていないためVシリーズではない。Z80コード互換NMOS-CPUであるμPD780(μCOM-82)のCMOS版。Aも-数字もつかないもの(D70008C)は4MHz版。

V20(μPD70108)
V25(μPD70320)
V35(μPD70335)
V53A(μPD70236A)
  • V20 (μPD70108) - データバス8bit版、8088ピン互換。
  • V25 (μPD70320,μPD70322) - V20に周辺I/Fを追加した組み込み用途向けプロセッサ。μPD70320はμPD70322からROMを取り除いたもの。
  • V25+ (μPD70325) - V25のDMA転送速度を改善し、高速化したもの。
  • V30 (μPD70116) - 8086ピン互換。最低クロック周波数は2MHzで、クロックを停止すると復帰時の動作が保証されない
  • V30HL (μPD70116H) - 5Vで16MHz、または3Vで8MHz動作可能な、V30の高速・省電力版。省電力機能に優れ、周辺チップの消費コントロール機能を持つ。その特長を生かし、コンパクト型デスクトップのPC-9801UFPC-9801UR、ノート型のPC-9801NVPC-9801NLに搭載された。クロックを停止・再開することにより、動作を停止・復帰できる。V20上位互換のV20HL (μPD70108H)もある。
  • V30MZ - 組み込み用のIPコア。66MHz動作で35MIPSの性能。携帯ゲーム機ワンダースワンにも、カスタムされたものが搭載された。機能が異なるV30MX(33MHz動作で4.3MIPS)もある。両者ともV33系同様、8080エミュレーションはない[4]
  • V33 (μPD70136) - V30に最大16MBまでのメモリ空間を扱えるようアドレッシング機能を拡張し、さらにオールワイヤード化したプロセッサ。プログラマブルなI/Oウェイト追加機能等、8086用ソフトウェアをそのまま動作させるための機能が豊富に実装されているが、アドレス信号線を20ビットから24ビットへ拡張した関係もあり、V30とはピン互換では無い。8086互換プロセッサとしては、当時の80286とほぼ同等の処理速度を持つ。
  • V33A (μPD70136A) - 未定義命令割り込みベクタ等、V33に存在していた80286との非互換部分を修正したもの。PC-98DO+やワープロ専用機文豪ミニ5SCに搭載された。[1]
  • V35 (μPD70330,μPD70332) - V30に周辺I/Fを追加した組み込み用途向けプロセッサ。μPD70330はμPD70332からROMを取り除いたもの。
  • V35+ (μPD70335) - V35のDMA転送速度を改善し、高速化したもの。
  • μPD9002 - V30モードとZ80上位互換の動作モードを持つ。PC-88VAに搭載された。V51とする文献が一部にあるようだが、NECよりV51は後述のμPD70280であるとする資料があるので誤りと推測される。
  • V40 (μPD70208) - V20に8086ファミリ互換の周辺I/Fを追加した組み込み用途向けプロセッサ。コアをV20HLにしたV40HL (μPD70208H)もある。
  • V50 (μPD70216) - V30に8086ファミリ互換の周辺I/Fを追加した組み込み用途向けプロセッサ。コアをV30HLにしたV50HL (μPD70216H)もある。
  • V41 (μPD70270) - V40HLと同様のコンセプトで、V20HLにPC/XT向けの周辺回路を内蔵したもの。海外では、実際にこれを使ったPC/XT互換機も出た。
  • V51 (μPD70280) - V41と同様で、コアがV30HLのもの。
  • V53 (μPD70236) - V50のコアをV33に変更したもの。
  • V53A (μPD70236A) - V53のコアをV33Aに変更したもの。
  • V55PI (μPD70433) - 80186相当の命令セットとペリフェラルを集積したプロセッサ。
  • V20・V30用数値データプロセッサ (μPD71091 V30NDP) - 数値演算コプロセッサ。Intel 80188・80186を接続した際の動作は考慮はされていないため、これらを接続した際には8087数値演算コプロセッサとは一部の動作が異なる。これを回避するには別途補助回路が必要である[1]。NECにて対応するゲートアレイが販売されている。なお、V30を搭載したPC-9800シリーズでは本コプロセッサは採用されず、タイミング等を調整した上で8087を接続する手法が取られていた。PC-9800シリーズではV30を理想的なタイミングで動作させておらず、パフォーマンスは理想条件より劣る。
VシリーズのファミリLSI μPD71055 パラレルI/Oの8255相当
  • その他、ファミリLSIがある。

  • V60 (μPD70616) - 内部32ビット、外部バス16ビットの32ビットCPU。全く独自の命令セットであり、非常に豊富なアドレッシングモードを持った直交性の高いアーキテクチャが特徴である。また、初めて浮動小数点演算ユニットを1チップに内蔵した。V30をエミュレートするモードも持ち、ソフトウェア資産の継承も考慮している。また、監視モードを持ち、2基のV60を組み合わせてエラー検出システムを、3基以上を組み合わせて多数決によるフォールトトレラントシステムを構成することが可能であり、高信頼性システムへの応用も目指した。NECからは、PC-9800シリーズ用拡張ボードとセットでUNIXが販売されていた。セガの業務用基板System32やModel1で使用された。他のメーカーでも海賊版ゲーム基板対策で使用された。文豪ミニ5SCではアウトラインフォント展開プロセッサとして採用されている[1]。レジスタ構成などについてTRONCHIPとの類似性の指摘がある。命令長がバイト可変長か16ビット単位の可変長かなどの相違点もある。
  • V70 (μPD70632) - V60を完全32ビット化したCPU。TRONCHIPの開発の影響を受けている[要出典]ITRON等のRTOSが実装された。NTTの交換機に組み込まれたほか、業務用ゲーム基板に搭載されたり、パーソナルコンピュータX68000用の拡張CPUボードに搭載されるといった応用例がある。H-IIAロケットの誘導制御用コンピュータにも使われている[1]
  • V80 - CISC系としては最後のVシリーズ。V30エミュレーション機能を削除。一般にはほとんど出回らず。これ以降のNECの32ビット以上のCPUはRISCの、MIPSアーキテクチャのVRシリーズと、後述のV800シリーズに移行。

RISC V800シリーズ

  • V800 - 新規設計されたRISC。V810・V830・V850などがある。PC-FXや組み込み向け。一部アセンブラの書式がV60 - V80に似せてあり、従来V60 - V80向けソフトウェアを開発していたプログラマがプログラムを学習しやすいように配慮されていた。

脚注

  1. ^ a b c d e f 月刊アスキー別冊 蘇るPC-9801伝説 永久保存版 第2弾 2007年4月9日初版 「NEC V30開発秘話」 (ISBN 978-4-7561-4883-4)
  2. ^ μPD70116データシート ドキュメントNo. IC-6660FおよびμPD70108データシート ドキュメントNo. IC-1827B・IC-6659D。この記述はμPD70108H/μPD70116Hデータシート ドキュメントNo. IC-3552Aからは削除されている。
  3. ^ 16ビット Vシリーズ ユーザーズ・マニュアル 命令編 (ドキュメントNo. U11301JJ5V1UMJ1) 1ページおよび図 1-1
  4. ^ V30MZユーザーズ・マニュアル(暫定) (ドキュメントNo. A13761JJ1V2UM00)