NEC Vシリーズ (original) (raw)

曖昧さ回避 この項目では、マイクロプロセッサについて説明しています。Windows PCについては「VALUESTAR」をご覧ください。

NEC Vシリーズは、日本電気(NEC、現在はルネサス エレクトロニクスに分離)が製造したマイクロプロセッサーマイクロコントローラのシリーズである。

V30・V40・V50は16ビット8086互換のシリーズである。V60以上は、独自仕様の32ビットプロセッサのシリーズである。なお、VR3000などのMIPSプロセッサやV850などのV810系列のプロセッサの名称もVから始まるが直接のつながりは無い。名称のVVLSIの頭文字を取ったもので、Victoryの意味も込められている[1]

日本電気(NEC)は、NEAC、続いてACOSと、大型コンピュータを開発してきたメーカであり、またトランジスタ、続いて集積回路を開発・製造してきた半導体メーカでもあった。NECのマイクロプロセッサは半導体部門から始まっているが、NECは世界で最初期にマイクロプロセッサを開発した企業のひとつである。世界最初のマイクロプロセッサのひとつであるμPD707・708に続き、NECは1970年代にはμCOMシリーズを開発・展開した。μCOMシリーズには、オリジナル仕様のもの、インテル系を主とした(ザイログZ80も含む)互換製品や類似仕様のもの、などがあった。

1980年代に入ると、NECはVシリーズを開発・展開した。まず、1980年代前半より開発・販売していた80888086互換モデルをCMOS化するとともに、内部バスの本数を増やして能力を向上させたV20・V30を開発した[2]。また、これらのCPUをコアとして周辺回路を集積したV40・V50や、より高性能化を図ったV33等へと展開した。しかし、V30は提訴により、充分な商機を得ることができなかった。海外では、8088コンパチでIBM PC互換機・PC/XT互換機に採用されたV20の方が、V30よりもメジャーである。

一方で、より高性能を目指した、独自仕様の32ビットCPU、V60・V70・V80を開発した。また、Vシリーズ以外にマイクロコントローラ78Kシリーズを展開している。

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

1990年代にNECが開発した独自仕様のRISCがV810である。V805、V820、V821、V830、V850ファミリと展開した。

μPD70008A V10の表記はない

V20(μPD70108)

V25(μPD70320)

V35(μPD70335)

V53A(μPD70236A)

V35+(μPD70335)

V30

V30(μPD70116)

V30 (μPD70116) は、NECが製造した、インテル8086の(正確にはNECのμPD8086(μCOM-86)の)上位互換マイクロプロセッサである。外部バス8ビットのV20 (μPD70108) がある。V30はPC-9800シリーズの他、同社の輸出向けノートPCのw:NEC UltraLiteにも(V20ではなくV30が)採用された。V20はワープロ専用機文豪ミニ5の一部機種や、一部のPC/XT互換機などに採用された。またV30・V20のセカンドソース製品には、ソニーCXQ70116・CXQ70108、シャープLH70116・LH70108、ザイログZ70116・Z70108 がある。

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

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

また、8086・80186に無いいくつかの命令が追加されていた。V30専用のアセンブリニーモニックは、8080からの流れを汲んだ8086のニーモニックとは異なっており、V30のニーモニックに対応したアセンブラはほとんど存在しなかった[4]。また、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固有命令の使用を推奨しない旨を案内していた[5]

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

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

V30はμPD8080AF(μCOM-80F)を元にした、8080エミュレーション機能を実装していたのも特徴の一つである。

V30独自命令

V30は、80186とはバイナリ上位互換が保たれていたが、V30独自命令[6]80286で実行すると無効オペコード例外が発生し、80386以降ではインテルが別の命令を割り当てているため誤動作する。

さらに見る オペコード, V30命令 ...

オペコード V30命令 インテル命令
64 REPNC FS:
65 REPC GS:
66 FPO2 オペランドサイズプリフィクス
67 FPO2 アドレスサイズプリフィクス
0F 10, 11, 18, 19 TEST1 SSE命令
0F 12, 13, 1A, 1B CLR1 SSE命令
0F 14, 15, 1C, 1D SET1 SSE命令
0F 16, 17, 1E, 1F NOT1 SSE命令
0F 20 ADD4S MOV dest, CRn
0F 22 SUB4S MOV CRn, src
0F 26 CMP4S MOV TRn, src
0F 28 ROL4 SSE命令
0F 2A ROR4 SSE命令
0F 31 INS RDTSC
0F 39 INS 無し
0F 33 EXT RDPMC
0F 3B EXT 無し
0F FF BRKEM UD0

閉じる

V33・V33A

V30がマイクロコード著作権で訴えられたことを受けて、内部論理のハードワイヤー化を行い、マイクロコードの違法使用をしていないことを明確にするとともに、マイクロコード実行にかかるオーバーヘッドを削減して、実行処理速度の向上・アドレス空間の拡張を図ったものである。68pin-PLCCおよびPGA・74pin-QFPによる製品が提供され、40pin-DIPパッケージの8086と直接差し替えて高速化を図ることはできなかった[7]。後に、V50のCPUコアをこのコアに置き換えたV53も開発されている。

8080エミュレーションが省かれている[8]

その他のV30系

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[13]サブセット)

4チャンネルのDMAユニット。これにより高速にI/O-メモリ間の転送を実現できる。

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

FPU

VシリーズのファミリLSI μPD71055 パラレルI/Oの8255相当

周辺

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

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

V810 (uPD70732GD-25)
PC-FXGA実装例

NINTENDO64(1996年発売)のCPU、VR4300カスタム

1990年代に入って、V810 (μPD70732) がリリースされた。型番上はVが付いているが、直接のつながりはない全く別のアーキテクチャに基づくRISCである。Hennessy-Patterson本に見られるような典型的な5段パイプライン構成を取る。

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

V830はPDAなどに適したV810/V850よりも高性能なCPUで、NECのワープロ「文豪 JXS300」(1997年発売)などに搭載されていたが、他はあまり採用例が無く、当のNECでも自社のPDAにはV830を採用していなかった。

V850はルネサスエレクトロニクス製半導体製品のうち、例えば記録型DVD/HD DVD/BDドライブ向けチップセットであるSCOMBOシリーズのCPU、あるいはSCOMBOシリーズに属するワンチップコントローラの内蔵CPUコアとして提供されており、これらはソニーオプティアークパイオニアといったメーカーによる光学ドライブ各種に採用され大量に使用されている。ほかにも家電やFA機器のサーボモーター、乗用車用の内燃機関や各種駆動用モーター制御、その他の各種多様なオペレーションに人知れず大量採用されている。

一部アセンブラの書式がV60 - V80に似せてあり、従来V60 - V80向けソフトウェアを開発していたプログラマが学習しやすいように配慮されていた。

VRファミリはPDAなどに適した高性能なMIPS系CPUで、1996年発売のゲーム機・NINTENDO64に採用されて1000万個単位で量産され、1997年には競合機セガサターンに搭載されたSHマイコンの出荷量を上回り、MIPSアーキテクチャのCPUは組み込み向けRISC CPUとして世界第1位の出荷量を誇った。またPDA向けとしても、NECのPDA「モバイルギア」シリーズのほか、カシオ計算機が2001年に発売したPDA「カシオペア ラジェンダ BE-500」(VR4131)などでも採用されていた。


  1. 8086/8088を単純にCMOS化した製品はNEC製には存在しない
  2. μPD70116データシート ドキュメントNo. IC-6660FおよびμPD70108データシート ドキュメントNo. IC-1827B・IC-6659D。この記述はμPD70108H/μPD70116Hデータシート ドキュメントNo. IC-3552Aからは削除されている。
  3. NECのアセンブラ「インターツール」(RA70116-I)などの他、PC-88VAのOS「PC-Engine」内蔵のデバッガがVシリーズのニーモニックだった
  4. 一応、V30と80286の時点では、おのおのの拡張命令のコードはかち合わないようになっていたが、80386では一部の拡張命令(MOV CR0など)がV30の動作の異なる拡張命令(ADD4Sなど)とかち合っている。そのため、そのような命令を用いたV30用ソフトウェアは80386では誤動作する
  5. PC-9800シリーズ用V33アクセラレータはあった(拡張スロットに挿入するボード型のエム・エス・アイ製MIG98およびM3)
  6. 16ビット Vシリーズ ユーザーズ・マニュアル 命令編 (ドキュメントNo. U11301JJ5V1UMJ1) 1ページおよび図 1-1
  7. SEMICONDUCTOR SELECTIONGUIDE April 1999 (ドキュメントNo. X10679EJHV0SG00(17th wdition))
  8. V30MZユーザーズ・マニュアル(暫定) (ドキュメントNo. A13761JJ1V2UM00)
  9. 80186互換のINM/OUTM(INSB/INSW/OUTSB/OUTSWに相当)とV30の特徴のINS/EXT(ビット操作命令)の4種の命令