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

編集の要約なし
m (ロボットによる 追加: it:NEC V20)
'''NEC Vシリーズ'''は、[[日本電気|NEC]](現在は[[ルネサス エレクトロニクス]]に分離)が製造した[[CPU]]のシリーズである。
'''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シリーズ]])を開発・展開してきた。
[[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'''を開発した。
後に、RISCアーキテクチャのV800シリーズへ移行した。
 
V10欠番となっているが、これは当初CMOS版[[Z80]]コード互換CPUであるμPD70008にV10の呼称を与えて販売を計画したものの、訴訟問題への影響を考えて、Vシリーズから除外する方針としたため、結局用いられなかったためである<ref name=ascii /><ref>μPD70008の元となったμPD780にはμCOM-82と命名して販売したが、ザイログとセカンドソース契約をしていなかったため訴えられている(後に和解)</ref>
 
なお、VRシリーズと呼ばれる製品群もあるが、これらは[[MIPSアーキテクチャ]]であり、Vシリーズとは異なる。
 
=== 16ビットCPU ===
==== V30 ====
[[ファイル: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の[[セカンドソース]]製品には、[[ソニー]]CXQ70116・CXQ70108、[[シャープ]]からも出ていた<ref>ソニー CXQ70116・CXQ70108、シャープ LH70116・LH70108</ref> がある
 
ハードウェア面では、オリジナルの8086に対してピン配置が互換であり、る。信号のタイミングは多少異なっていた(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>
* 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に対しても上位互換であった
 
また、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>
 
CPU内部のバスを増強してデータ転送効率を上げるとともに、所要クロック数の多い乗算、除算命令を[[ハードワイヤード]]化し、命令実行に要するクロック数を削減したため、多くの命令を8086の約2/3のクロック数で実行可能となり、単純にCPUを差し替えただけで、同一の動作クロックで数%から数10%高速で演算処理を行うことが出来た。
 
[[マイクロプログラム方式|マイクロコード]]の著作権がセカンドソース契約で問題となり、NECは先手を打って[[1984年]]、Vシリーズがインテルの著作権を侵害していないことを確認する訴訟を起こした。これに対してインテルが反訴したため裁判は長引いたが、[[1989年]]にV30はi8086の著作権を侵害していないとの判決を得た。ただし、その直接の理由は8086に著作権表示が無く、当該製品に対して著作権が認められないからであった。一方でマイクロコードにも著作権があることが判示され、互換プロセッサの製造が困難となった。86系の[[マイクロプログラム方式|マイクロコード]]の著作権への抵触を回避するために、完全に[[ハードワイヤード]]化されたV33系へ移行した。
 
また[[μCOMシリーズ#.CE.BCCOM-80|μPD8080AF(μCOM-80F)]]を元にした、8080[[エミュレータ|エミュレーション]]機能を実装していたのも特徴の一つである。[[1980年代]]後半においては、一部工業高校などで、V30搭載型[[PC-9800シリーズ]]に[[CP/M]]のBDOSに相当する部分を[[MS-DOS]]のデバイスドライバとして実装しCP/Mエミュレータを搭載し8ビットCPUによる[[アセンブラ]]実習に使用されていた<ref>CP/MのBDOSに相当する部分を[[MS-DOS]]のデバイスドライバとして実装していた。</ref>
 
[[Intel 80186|80186]]とはバイナリ上位互換が保たれていたが、インテルの方針転換によって[[セカンドソース]]が許可されなくなったため、[[Intel 80286|80286]]以降のCPUではV30で拡張された命令との互換性が保てなくなった。
 
===== 用語・レジスタ表記 =====
V30と8086とは用語やレジスタの表記も異なる。相違点は以下の通り(同一名称のレジスタは省略)
{| class="wikitable" style="margin:0 auto"
|+ レジスタ表記
=== CISC V20 - V80シリーズ ===
[[ファイル:UPD70008AC-4.jpg|thumb|200px|μPD70008A V10の表記はない]]
* ''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)]]
* '''V25+''' (μPD70325) - V25のDMA転送速度を改善し、高速化したもの。
* '''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)もある。
* '''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とほぼ同等の処理速度を持つ。
* '''V35''' (μPD70330,μPD70332) - V30に周辺I/Fを追加した組み込み用途向けプロセッサ。μPD70330はμPD70332からROMを取り除いたもの。
* '''V35+''' (μPD70335) - V35のDMA転送速度を改善し、高速化したもの。
* '''μPD9002''' - V30モードとZ80上位互換の動作モードを持つ。[[PC-8800シリーズ|PC-88VA]]に搭載された。V51とする文献が一部にあるようであるが、NECよりV51は後述のμPD70280であるとする資料があるので誤りと思わ推測される。
* '''V40''' (μPD70208) - V20に8086ファミリ互換の周辺I/Fを追加した組み込み用途向けプロセッサ。コアをV20HLにした'''V40HL''' (μPD70208H)もある。
* '''V50''' (μPD70216) - V30に8086ファミリ互換の周辺I/Fを追加した組み込み用途向けプロセッサ。コアをV30HLにした'''V50HL''' (μPD70216H)もある。
* '''V53A''' (μPD70236A) - V53のコアをV33Aに変更したもの。
* '''[[V55PI]]''' (μPD70433) - 80186相当の命令セットとペリフェラルを集積したプロセッサ。
* '''V20・V30用数値データプロセッサ''' (μPD71091 V30NDP) - 数値演算コプロセッサ。Intel 80188・80186を接続した際の動作は考慮はされていないため、これらを接続した際には8087数値演算コプロセッサとは一部の動作が異なる。これを回避するには別途補助回路が必要である<ref name=ascii />(NECにて対応するゲートアレイが販売されている)。なお、V30を搭載したPC-9800シリーズにおいては本コプロセッサは採用されず、タイミング等を調整した上で8087を接続する手法が取られていた<ref>PC-9800シリーズではV30を理想的なタイミングで動作させておらず、パフォーマンスは理想条件より劣る。</ref>
[[ファイル:NEC uPD71055 PPI.jpg|thumb|200px|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ではアウトラインフォント展開プロセッサとして採用されている<ref name=ascii />。レジスタ構成などについて[[TRONCHIP]]との類似性の指摘がある命令長がバイト可変長か16ビット単位の可変長かなどの相違点もある
* '''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シリーズに移行。
匿名利用者