DXR165の備忘録

自分用の備忘録です。

Intel Processor Graphics 調査メモ  

最終更新日 2017/07/09

Sorry. This article is now writing!

Terminology
IGD -> Internal Graphics Device or Integrated Graphics Device.



そもそもグラフィック・ビデオ機能とは?

まずは下記サイトで基礎を学びます。しかし、最近のPC雑誌ではこのような基礎的な技術を解説する記事が非常に少なくなったような気がする。

コンピュータの基礎の基礎 出典:日経パソコン 2002年2月4日号,2002年2月18日号,2002年3月4日号
http://itpro.nikkeibp.co.jp/article/lecture/20070419/268970/

Part1 メモリー空間とは何か 
Part2 RAMの物理的な内部構造は 
Part3 ハードディスクの基本構造 
Part4 ハードディスク性能を決める要素とは 
Part5 グラフィックスチップとメモリー 
Part6 グラフィックスチップの描画機能 



初期では、グラフィックス機能は「メモリ(フレームバッファ)をデータで埋める」のが主な仕事。
出典
PC Watch 骨まで理解するPCアーキテクチャ(GPU編) 第1回
~固定機能からシェーダへの移り変わり 2014/4/4 大原 雄介
http://pc.watch.impress.co.jp/docs/column/1month-kouza/642769.html

GPUが単に2Dグラフィック出力を行なうデバイスだった時代では、GPUは出力専用デバイスだったので、CPU側は単に描画コマンドをGPU側に投げるだけで良く、CPUが受け取るのは最終的に描画コマンドの完了通知だけであった。
出典
PC Watch 骨まで理解するPCアーキテクチャ(GPU編) 第4回
~GPGPU性能引き上げのカギとなるCPUとGPUの連携 2014/4/25 大原 雄介
http://pc.watch.impress.co.jp/docs/column/1month-kouza/646073.html


コンピュータのグラフィック機能の歴史についてまとめてあります。↓
ぐうたら感謝の日  / グラフィック機能の歴史
http://www.geocities.co.jp/SiliconValley-Cupertino/6138/computer/graphic/more/history.html


グラフィック・ビデオ機能を掘り下げるにはやはり「VGA互換」周りの情報をこれまた掘り下げる必要がありそうです。



VGA(Video Graphics Array)とは
一般に「VGA」「XGA」で解像度を意味することが多いが、元々はIBMのグラフィックスアダプターの名称を指していた。
出典
日経テクノロジーオンライン HOME > エレクトロニクス > 電子デバイス > 
PC技術興亡史  グラフィックス編 第1回~第4回
大原 雄介=フリーランス テクニカルライター 2015/03/04
http://techon.nikkeibp.co.jp/article/FEATURE/20150106/397325/



●VGA(Video Graphics Array)
 IBM社が'87年に、同社のPS/2シリーズ用に開発したグラフィックスアダプタ(ビデオカード)の規格。

 一部の専用アクセラレータを除くと、現在は全てのグラフィックスアダプタが備えている標準的なビデオサブシステムで、システムのインストール時やセイフティモード、DOSモードなどで、このVGAの画面モードが使われている。特に640×480ドットは、VGAの代表的な画面サイズであるため、しばしばこのサイズだけを指して「VGA」といわれることもあるが、実際には表のように、MDA(Monochrome Display Adapter)やCGA(Color Graphics Adapter)、EGA(Enhanced Graphics Adapter)といった旧来のアダプタが備えていた多彩なモードも網羅しており(※1)、80×25文字のテキストモード(解像度的には720×400ドットで、EGAに比べ縦方向が50ドット増えている)や、320×200ドット 256色のグラフィックスモードも備えている。
出典
PC Watch ■鈴木直美の「PC Watch先週のキーワード」 ■
第67回【'99/2/22~ 2/26】
http://pc.watch.impress.co.jp/docs/article/990304/key67.htm


PC/AT互換機においてUEFI BIOSより昔のレガシーBIOS環境ではVideo BIOSがVGA/VBE互換機能を必要とする。
引用始まり
ディスクインターフェイスカードおよびグラフィックカードは別途搭載する必要がありました。
ディスクインターフェイスについては今回扱う話ではないので詳細は割愛しますが、これら2種のインターフェイスはそれぞれマザーボード本体に搭載されているBIOS ROMを拡張するためのディスクBIOSおよびビデオBIOSを搭載していて、当時提供されていたPC-DOS(MS-DOS)をはじめとする対応OSではその拡張BIOSの機能を呼び出して利用していました。また、それゆえにそれらの拡張BIOSではOSとのデータのやりとりに用いるI/Oポートやメモリアドレス、それにレジスタの扱いなどが厳密に定義されていました。
つまり、IBM PCに搭載されたグラフィックカードは本来、いずれもハードウェア(グラフィックコントローラおよびその使用リソース)とソフトウェア(ビデオBIOS)が不可分の規格なのです。
引用終わり
出典
連載:IT因縁話「VGA≠画面解像度(1)~はじまりはMDA・CGAから~」
by tsuchitani [2014年3月31日]
http://app-review.jp/news/177312


引用始まり
Windows XPの標準のディスプレイ・ドライバ
 こうした問題が生じていた直接の理由は、セーフモードで利用されるグラフィックス・ドライバが、「VGAドライバ」であったことだ。640×480ドット、16色というのは、標準VGAがサポートする最大の解像度であるこのVGAドライバは、Windowsが標準でサポートしていないグラフィックス・チップの場合でも使われる。そもそもVGAは、1987年にリリースされたIBM PS/2の上位モデルに採用されたグラフィックス技術だ。「標準」という点では、この15年近く前の技術が進歩せずに、現在まで使われてきたわけだ。Windows XPでは、この部分が大きく変わる。標準で用いられるディスプレイ・ドライバが、VGA対応からSVGA(SuperVGA)対応に変わるのである。

(一部省略)

VBE 3.0対応で実現したセーフモードの高解像度サポート
 以上のような高解像度モードのサポートは、「標準ディスプレイ・ドライバ」がVESAのVBE 3.0(VESA BIOS Extension 3.0)をサポートすることにより実現されているVBEとは、もともとのVGA BIOS(ビデオBIOS)の仕様をベースに拡張を施した、PCのグラフィックス・サブシステムのためのファームウェア・インターフェイス規格である。ディスプレイ関連規格をとりまとめているVESA(Video Electronics Standards Association)が策定している。最新版であるVBE 3.0には、いわゆるVGA BIOSの拡張だけでなく、プロテクト・モードから拡張機能(VGAに対する)を呼び出すエントリ・ポイントが用意されており、Windows XPの標準ドライバは、このプロテクト・モード・インターフェイスを用いている。したがって、専用ディスプレイ・ドライバを用いずに高解像度を利用するには、グラフィックス・カードがVBE 3.0をサポートしていることが不可欠となるので注意していただきたい(VBE 3.0に対応していなくても、専用ドライバがあれば高解像度表示は可能)

 もちろん、標準ドライバがVBE 3.0に対応したからといって、専用ディスプレイ・ドライバが不要になるわけではない。確かに標準ドライバだけでも高解像度表示は可能だが、ハードウェアが持つアクセラレーション機能が利用できないため、画面表示がかなり遅くなる。当然のことだが、3Dグラフィックス機能や動画表示関連の機能を用いることもできない。あくまでも、専用ドライバが利用できないような非常事態向けの機能といえるかもしれないが、セットアップ時、あるいはセーフモード時も高解像度が利用可能になるメリットは大きい。少なくともセーフモードでのメンテナンス中に、ダイアログ・ボックスの表示が画面からはみ出す、といったトラブルからは解放されるハズだ。

VBE 3.0対応はUGAサポートへの第一歩
 標準ドライバが高解像度表示に対応することで、Windows XPのディスプレイ機能は、確実に一歩前進する。が、進歩はここで止まるわけではない。Windows XPのさらに次のバージョン「Blackcomb(開発コード名:ブラッコム)」以降のOSでは、UGA(Universal Graphics Adapter)と呼ばれるディスプレイ標準の採用が検討されている。

 VGAまでの標準ディスプレイ技術(CGA、MDA、EGAなど)は、標準化されたBIOSインターフェイスを備えると同時に、I/Oアドレスやレジスタといったハードウェア・インターフェイスの標準が定義されていた。それにより、ハードウェアに直接アクセスするDOSアプリケーション・レベルでの互換性を保証していた。しかし、時代は移り変わり、アプリケーションがハードウェアに直接アクセスすることは事実上なくなった。WindowsなどGUIに対応したアクセラレータ(というより、現在市販されているすべてのグラフィックス・チップ)は、VGAを超えた部分でのハードウェア・レベルの互換性は持たないが、それぞれのOSに対応したデバイス・ドライバを用意することで、ハードウェア・レベルの互換性を不要にしている。

 UGAでは、こうした考えに基づき、ハードウェア・インターフェイスの標準を定めない。定められるのは、VGA BIOSに代わるUGAファームウェアのインターフェイスであり、このインターフェイスに準拠していれば、特にハードウェアをどう設計しなければならない、ということはなくなる。逆に求められるのは、VGA互換のハードウェア・インターフェイスを用いないことだ。

 UGAの狙いは、VGA BIOSに代わるUGAファームウェアのインターフェイス(ソフトウェア・インターフェイス)を定義することで、VGAという旧式のデバイス(レガシー・デバイス)を除去することにある、と考えられる。上記のとおりVGAは、特定のI/Oアドレス、特定のメモリ・アドレスなど、ハードウェア依存のリソースを用いる。こうしたリソースの存在は、システムの自由度を低くするだけでなく、使い勝手の低下を招く。

(一部省略)

 UGAに準拠したグラフィックス・チップ(を用いたグラフィックス・カード)は、完全なプラグ&プレイが保証されると同時に、複数枚のカードを同時に利用することが容易になる。システムの起動と、OSのセットアップやセーフモードの画面表示は、UGAファームウェアと、これに対応したディスプレイ・ドライバで実現されるが、3Dグラフィックスなど高度な機能にはやはりグラフィックス・チップごとに対応した専用のディスプレイ・ドライバが必要になると考えられる。現時点では詳細は明らかにされていないが、UGAファームウェアの機能は、VBE 3.0の機能を強化したものになる、と考えるのが常識的だろう。サーバなど、グラフィックス機能を必要としないプラットフォームでは、OS標準のUGAドライバを用いるものも出てくるかもしれない。
引用終わり
出典
ITmedia Windows XPの正体 セーフモードが高解像度対応になるWindows XP
元麻布春男 2001/07/12

元麻布氏が上記の記事で触れていたUGAは後に策定されたEFI仕様のグラフィックス表示プロトコルとして定義されているUGA (Universal Graphic Adapters) となった模様です。しかし、UEFI BIOS
が普及した2017年では、グラフィックス表示プロトコルはGOP (Graphic Output Protocol) が主流のようです。



VGA Hardware
Port I/O: The VGA needs 8-bit read/writes, and 16-bit writes.
MMIO: The VGA uses uncached byte accesses to 0xA0000-0xBFFFF. 

VGA Registers
Note that PCI boards do *not* report the VGA addresses in their configuration space, and that the addresses can not be remapped. It is therefore not possible to properly operate two cards in VGA mode at the same time.

Video Memory Layout
The video memory consists of four 'planes' (individual units) of memory, each with a size of 64KB, giving the VGA 256k of video memory.
出典
OSDev.org Hardware Video VGA Resources and VGA Hardware documentation
http://wiki.osdev.org/Main_Page

I/Oポートアドレスマップの例
0x3B0-0x3BF VGA/モノクロビデオ
0x3C0-0x3CF VGA/EGAビデオ
0x3D0-0x3DF VGA/CGAビデオ


さて、2017年現在ではレガシBIOSを搭載したPCが徐々に減少し始めています。今後UEFI BIOS搭載PCが主流になるのは間違いないと思います。もうVGAやら、VBEやら0xA0000-0xBFFFFがどうの、I/Oポートアドレスがどうの等を深く理解する必要もないし、そうしたくないです。よって、PCのグラフィイクッス機能を理解する上で、ここからは調査の筋をグラフィイクッス機能の最小要素であるGOP (Graphic Output Protocol)に当てたいと思います。


GOP (Graphic Output Protocol)
EFI初期にはグラフィイクッス機能としてUGAが定められていたようですが、2017年現在ではUEFI BIOS仕様PCにはGOP仕様のVideo BIOS(Option ROM , PCI Expansion ROM)を搭載したグラフィイクッス・ビデオカードが必要とされています。こちらの記事(グラフィックボード・ビデオカードのビデオBIOSとGOPドライバについて)もご覧ください。

引用始まり
Windows 8 が市場に出るタイミングは、すべての新しいクライアント システムが従来の BIOS から Unified Extensible Firmware Interface (UEFI) へと移行する時期でもあります。従来の BIOS インターフェイスも引き続きサポートされますが、UEFI インターフェイスを利用するマシンでは非常に豊富な機能を実現することができます。たとえば UEFI システムでは、Graphics Output Protocol (GOP) ドライバーを使って、ネイティブの解像度でリッチなグラフィックを使ったエクスペリエンスをレンダリングすることが可能です。UEFI の採用により、OS はようやくブート ファームウェアと標準化された方法でやり取りすることができるようになります。これは UEFI および TCG (Trusted Computing Group) の標準化への取り組みによって強力にサポートされています。これによって実現する機能として、たとえば OS とファームウェアが協力して安全なハンドオフ メカニズムを構築するセキュア ブートがあります。また、電源ボタンを押した時点からシームレスなビジュアル エクスペリエンスの提供が可能になります。2 つの別個のコンポーネントが 1 つのエクスペリエンスを共有するのです。
これまでにブート エクスペリエンスが完全に刷新されたことは、実のところ一度もありません。OS やハードウェアが対数的な進歩を続けてきた中で、BIOS メニューは 30 年近く時間が止まったような状態です。過去のいくつかの Windows リリースでは、OS 起動前の環境で使用する機能を数多く導入してきましたが、それぞれ実現できる機能や制約の違いに合わせた設計が必要でした。
引用終わり
出典
Microsoft Building Windows 8
Windows エンジニアリング チームによるブログ
Billie Sue 2011
https://blogs.msdn.microsoft.com/b8_ja/2011/09/22/windows-2/



UEFI仕様によると、グラフィイクッス機能ではConsole Supportとして、Simple Text Output ProtocolとGraphics Output Protocolを定めています。二つのプロトコルともグラフィイクッス機能のファンクションコールのみを定めていて、VGA互換のそれのようにハードウェアの仕様までは定めていないようです。

引用始まり
11.9 Graphics Output Protocol
The goal of this section is to replace the functionality that currently exists with VGA hardware and its corresponding video BIOS. The Graphics Output Protocol is a software abstraction and its goal is to support any foreseeable graphics hardware and not require VGA hardware, while at the same time also lending itself to implementation on the current generation of VGA hardware.

Simple Text Output Protocol
The minimum supported text mode of such devices is at least 80 x 25 characters.

Graphics Output Protocol
The EFI_GRAPHICS_OUTPUT_PROTOCOL supports three member functions to support the limited graphics needs of the pre-boot environment. These member functions allow the caller to draw to a virtualized frame buffer, retrieve the supported video modes, and to set a video mode. These simple primitives are sufficient to support the general needs of pre-OS firmware code.
The EFI_GRAPHICS_OUTPUT_PROTOCOL also exports enough information about the current mode for operating system startup software to access the linear frame buffer directly.
The interface structure for the Graphics Output protocol is defined in this section. A unique Graphics Output protocol must represent each video frame buffer in the system that is driven out to one or more video output devices.

11.9.1 Blt Buffer
The basic graphics operation in the EFI_GRAPHICS_OUTPUT_PROTOCOL is the Block Transfer or Blt. The Blt operation allows data to be read or written to the video adapter’s video memory. The Blt operation abstracts the video adapters hardware implementation by introducing the concept of a software Blt buffer.
The frame buffer abstracts the video display as an array of pixels. Each pixels location on the video display is defined by its X and Y coordinates. The X coordinate represents a scan line. A scan line is a horizontal line of pixels on the display. The Y coordinate represents a vertical line on the display. The upper left hand corner of the video display is defined as (0, 0) where the notation (X, Y) represents the X and Y coordinate of the pixel. The lower right corner of the video display is represented by (Width –1, Height -1).
The software Blt buffer is structured as an array of pixels. Pixel (0, 0) is the first element of the software Blt buffer. The Blt buffer can be thought of as a set of scan lines. It is possible to convert a pixel location on the video display to the Blt buffer using the following algorithm: Blt buffer array index = Y * Width + X.
Each software Blt buffer entry represents a pixel that is comprised of a 32-bit quantity. Byte zero of the Blt buffer entry represents the Red component of the pixel. Byte one of the Blt buffer entry represents the Green component of the pixel. Byte two of the Blt buffer entry represents the Blue component of the pixel. Byte three of the Blt buffer entry is reserved and must be zero. The byte values for the red, green, and blue components represent the color intensity. This color intensity value range from a minimum intensity of 0 to maximum intensity of 255.
引用終わり

解像度の最小値は定められず、色深度 32bitのようです。おっと。ここでBltがでできました。これはなんぞや?

11.9 Graphics Output Protocol
11.9.1 Blt Buffer
EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt()
Summary
Blt a rectangle of pixels on the graphics screen. Blt stands for BLock Transfer.

ということで、Blt とはBLock Transferの略とあります。これが2Dグラフィイクッスの主要機能のようです。

出典
Unified Extensible Firmware Interface Specification Version 2.4 June, 2013
11 Protocols — Console Support
11.4 Simple Text Output Protocol
11.9 Graphics Output Protocol






4Gamer.net / Vistaを買うのはまだ早い グラフィックス編 米田 聡 
http://www.4gamer.net/specials/tooearlytogetvista/001/tooearlytogetvista_001.shtml
Windowsのグラフィイクッス周りの基本的な事柄がよくわかる。





Intel グラフィックス製品の歴史

AGPインターフェイス
1997年 Intel 初のAGPインターフェイス搭載チップセット 440LXが登場した。
IGT (Intel Graphics Technology) コア
1999年 チップセット Intel 810 インテル社初のグラフィック(Direct AGP)統合チップセット DVMT対応
Intel Extreme Graphics
2001年~ チップセット Intel 830 に統合。
2004年~ Intel Graphics Media Accelerator(GMA)
チップセット Intel 915G(PCIe)以降に統合
2010年~ Intel HD Graphics 
CPUダイに統合(Arrandale,Clarkdaleはパッケージ統合)


出典
Tom's Hardware Graphics Slideshow
Evolution Of Intel Graphics: i740 To Iris Pro
 by Michael Justin Allen Sexton  2017
http://www.tomshardware.com/picturestory/693-intel-graphics-evolution.html#s1


ASCII PCI登場から440BXまで Intelチップセットの歴史 その1 2009年 大原雄介
http://ascii.jp/elem/000/000/475/475852/index-3.html


AKIBA PC Hotline! HotHot REVIEW!
統合型チップセットの大本命登場
  ~ Intel810搭載マザーボード ~
1999年6月 [Text by 笠原一輝@ユービック・コンピューティング]
http://pc.watch.impress.co.jp/docs/article/990611/hotrev14.htm


@IT > System Insider > 解説 > 今後の10年を占う新Pentium 4プラットフォームを考察する
1.PCI Expressをサポートした初のチップセット
2.新チップセットで強化された機能
元麻布春男 2004年

List of Intel graphics processing units
From Wikipedia, the free encyclopedia
https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units



Intel Processor Graphics 概要

Intel Processor Graphics Updated December 17, 2015
Developer Documents for Intel Processor Graphics
https://software.intel.com/en-us/articles/intel-graphics-developers-guides
--> IGD世代別にハードウエア概要が解説されている。







Intel グラフィイクッス VRAM関係
Intel グラフィイクッスはPCIデバイス側にVRAMを実装せず、メインメモリよりその領域を拝借して使用している。そのため、その実装がややこしい模様です。


そのややこしい仕様を紐解くにはAGPまで歴史を遡る必要があるようです。


AGP(Accelerated Graphics Port)
引用始まり
 Intel社が'96年に発表した、グラフィックスアクセラレータとシステムメモリを結ぶ高速な専用バス(最大転送速度は現行のPCIバスが132MB/秒であるのに対し、533MB/秒)の規格で、主として3Dグラフィックスやフルモーションビデオに有用な以下の2つのメリットを提供する。

「高速な専用バスの確保」  様々なデバイスが使用するPCIバスとは独立した形で、グラフィックスアクセラレータ専用の高速バスを用意することによって、グラフィックスシステムのパフォーマンスを向上させる。
「メインメモリの共有」  テクスチャマッピング(立体の表面にグラフィックスを貼ること)を直接メインメモリから実行できるようになるので、そのための大量のメモリをビデオカード上に搭載しておく必要が無くなる(2D用の2~4MBといった少ないメモリだけでも、高品位な3Dアクセラレーションが期待できる)。
引用終わり
PC Watch 鈴木直美の「PC Watch先週のキーワード」
第3回【'97/10/13~10/17】
SGRAM RAMDAC AGP SDK DirectX OpenGL
http://pc.watch.impress.co.jp/docs/article/971021/key3.htm


引用始まり
もっとも、このAGPはご存知のとおり、3Dグラフィックスカードで「テクスチャーデータをメインメモリーからビデオメモリーへと高速に転送する」という目的で作られたもの。バスの構造もこれにあわせて最適化されているし、ソフトウェアの面でも「GART」(Graphics Address Remapping Table) Driverを使うことが前提となっている
引用終わり
ASCII バスの歴史を振り返る PCIからAGP、PCI-X編 2011年 大原雄介
PCIを超える2つの規格 AGPとPCI-X
http://ascii.jp/elem/000/000/618/618492/index-3.html


引用始まり
Taking advantage of AGP's DIME (Direct Memory Execute , see "AGP - A New Interface for Graphic Accelerators" ) however is somewhat more difficult. DIME needs to allocate some system RAM via the OS to access large textures via AGP outside the local graphic memory of the card. The OS has to know what it's doing and hence definitely needs an extension that enables this procedure. Unfortunately there isn't any such extension available for Windows NT 4 yet, but if you realize, that NT is currently anyhow not the right platform for playing 3D games (no Direct3D support, only DirectDraw and others with SP3) you will understand why NT users will have to wait for a decent AGP implementation until NT 5 is released. For the majority of users however which are using Windows 95 (especially for games) there are three things necessary:
引用終わり
出典
Tom's Hardware   AGP - The Practice by Thomas Pabst 1997 
http://www.tomshardware.com/reviews/agp,35.html



GART(Graphics Address Remapping Table) 
Consistent with that emphasis,this interface specification requires a physical-to-physical address remapping mechanism which insures the graphics accelerator (an A.G.P. master) will have a contiguous view of graphics data structures dynamically allocated in system memory.
Remapping is accomplished via a memory-based table called the Graphics Address Remapping Table (GART) and used (“walked”) by the corelogic to perform the remapping. In order to avoid compatibility issues and allow future implementation flexibility, this mechanism is specified at a software (API) level. In other words, the actual GART table format is not specified; rather it is abstracted to the API by a HAL or miniport driver that must be provided with the corelogic. While this API does not constrain the future partitioning of remapping hardware, the remapping function will initially be implemented in the chipset or corelogic
引用元
Accelerated Graphics Port
Interface Specification
Revision 2.0
Intel Corporation
May 4, 1998
Intel
2. Architectural Context and Scope
2.1 Two Usage Models: “Execute” and “DMA”




Intel 810 Chipset(初のグラフィイクッス機能搭載チップセット)
Product Features
Integrated Graphics Memory Controller
Intel D.V.M. Technology
AGP External Port Not Support

/Host-Hub Interface Bridge/DRAM Controller(Device 0) Registers
|SMRAM -> System Management RAM Control Register
||Graphics Mode Select (GMS). 
This field is used to enable/disable the internal graphics device and select the amount of system memory that is used to support the internal graphics device.
00 = Graphics Device Disabled, No memory used (Device 1 is not accessible in this case)
01 = Reserved
10 = Graphics Device Enabled, 512 KB of memory used
11 = Graphics Device Enabled 1 MB of memory used
The 512 KB and 1 MB space selected by this field is used by video BIOS for handling support of VGA when no GMCH graphics driver is present (e.g., a DOS boot).
|MISCC -> Miscellaneous Control Register
||Graphics Display Cache Window Size Select.
0 = 64 MB (default)
1 = 32 MB. See GMADR Register (Device 1).
/IGD(Device 1) MMIO Base Address Registers(BARs)
|GMADR -> Graphics Memory Range Address Register
|MMADR -> Memory Mapped Range Address Register

出典
Intel 810 Chipset: Intel 82810/82810-DC100 Graphics and Memory Controller Hub (GMCH) Datasheet June 1999


引用始まり
 810チップセットは、「Whitney」のコードネームで呼ばれていた低価格PC向けのチップセット。ノースブリッジにAGP対応の2D/3Dビデオ機能が統合されているのが特徴。最上位の「810DC100」と、標準の「810」、廉価版の「810-L」の3製品が用意される。量産開始はすべて6月からで、1万個受注時の価格は、それぞれ3,910円/3,600円/3,120円となっている。

 3製品の構成は、I/Oコントローラの性能によって区分されている。最上位の「810DC100」は4MBのディスプレイキャッシュ(オプション)を追加できる。その他は「810」と共通で、ATA/66に対応するほか最大6スロットのPCIバスをサポートする。廉価版の「810-L」のみ、ATA/66に対応せず、PCIバスも最大4スロットとなる。

 ビデオ機能は、ソフトウェアDVD-Video再生をアクセラレートするモーションコンペンセーション(動き補償)に対応するほか、コントローラを統合する「ダイレクトAGP」などの技術により、AGP 2X相当の性能を実現したという。AC '97 signaling link対応のコントローラも搭載し、ソフトウェアによるオーディオ/モデム機能の提供が可能。また、スリープ状態からの復帰が従来より高速になる「Instantly Available PC技術」の対応機能が追加されている。標準構成ではISAバスをサポートしないが、オプションで対応する。
引用終わり
出典
PC Watch インテル、Celeron 466MHzと810チップセットを正式発表 ('99年4月26日)
http://pc.watch.impress.co.jp/docs/article/990426/intel.htm



引用始まり
Intelの説明によると、この統合チップセットでは、現在チップセットとビデオチップに入っているAGPのコントローラ回路とAGPのピンが不要になり、またメモリコントローラを統合、フレームバッファを削減できるためコストが削減できるという。フレームバッファには、システムメモリの一部を割り当てる。また、AGPではシステムメモリをテクスチャバッファなどに割り当てるが、この新しいアーキテクチャでは、もともとフレームメモリもシステムメモリを使っているため、テキスチャメモリなどにもダイナミックにシステムメモリの一部をアロケートできる。つまり、“AGPライク”なフィーチャを実現できると言う。AGPと異なり、ビデオチップが外部のチップセットにアクセスするロスもないため、AGPのレイテンシなどの問題も解決されるかも知れない。

 しかし、3~4年ほど前に共有メモリ構成(UMA)が騒がれた時は、システムメモリを共有した場合は、システム全体のパフォーマンスが落ちることが指摘された。それに対して、Intelは、当時と比べると、メモリ容量が大きくなりメモリ帯域も広くなったことで、システムパフォーマンスに与える影響はずっと小さくなったと主張する。ただし、このチップセットでは、サポートメモリはIntelが次世代高速DRAMとして押している広帯域のDirect RDRAMではなくSDRAMとなる見込みだ。これは、ローコストシステムでは、当初はコスト高が見込まれるDirect RDRAMが受け入れられないためと見られる。また、同社では、現在チップセットを製造している0.35ミクロンプロセスよりも高集積化が可能な、0.25ミクロンプロセス技術への移行が、チップセット統合の背景にあることを説明した。
引用終わり
出典
PC Watch 後藤弘茂のWeekly海外ニュース ('98年9月18日)
IDF速報:レガシーフリー化と低コスト
-Intelが次世代チップセットやマザーボードの戦略を明らかに-
ビデオ統合チップセットを投入
http://pc.watch.impress.co.jp/docs/article/980918/kaigai01.htm


引用始まり
The Intel 810 chipset takes two major leaps forward from today’s shared memory solutions – complex integration of memory controller and graphics capability (Direct AGP) and advanced dynamic memory utilization (Dynamic Video Memory Technology – D.V.M.T.).

3.2 Direct AGP
Direct AGP provides the integrated graphics function the capability to make direct memory set-up calls (similar to those associated with standard AGP protocol) to system memory resulting in life-like video quality. 
引用終わり
出典
Intel 810 Chipset Great Performance for Value PCs Revision 2.1 May 30, 2000
3. Intel Graphics Technology for the Value PC Segment


Intel 815 Chipset
/Host-Hub Interface Bridge/DRAM Controller(Device 0) Registers
|SMRAM -> System Management RAM Control Register
||Graphics Mode Select (GMS). This field is used to enable/disable the Internal Graphics device and select the amount of main memory that is “Stolen” to support the internal graphics device in VGA (nonlinear) mode only. These 2 bits only have meaning if we are not in AGP mode.
00 = Internal graphics device Disabled, No memory “Stolen”
01 = Internal graphics device Enabled, No memory “Stolen”
10 = Internal graphics device Enabled, 512 KB of memory “Stolen” for frame buffer.
11 = Internal graphics device Enabled, 1 MB of memory “Stolen” for frame buffer.
|MISCC -> Miscellaneous Control Register
||Graphics Translation Window Size Select—R/W. In GFX mode this would be the size of the GTT (Graphics Translation Table). Not a valid bit in AGP mode.
0 = 64 MB (default)
1 = 32 MB.
/IGD MMIO Base Address Registers(BARs)
|GMADR -> Graphics Memory Range Address Register
|MMADR -> Memory Mapped Range Address Register

出典
Intel 815 Chipset Family: 82815 Graphics and Memory Controller Hub (GMCH) Datasheet June 2000



Intel 830 Chipset
/SDRAM Controller/Host-hub Interface Device Registers -Device #0
|GCC1-–GMCH Control Register #1
||Graphics Mode Select (GMS). This field is used to select the amount of Main Memory that is preallocated to support the Internal Graphics device in VGA (non-linear) and Native (linear) modes. These 3 bits are valid only when Internal graphics is enabled.
000 = No memory pre-allocated (Graphics memory Disabled) [RESERVED]
001 = No memory pre-allocated (Graphics memory Enabled) [RESERVED]
010 = DVMT (UMA) mode, 512K of memory pre-allocated for frame buffer
011 = DVMT (UMA) mode, 1M of memory pre-allocated for frame buffer
100 = DVMT (UMA) mode, 8M of memory pre-allocated for frame buffer)
||Device 2: Graphics Memory Aperture Size (Controls GMADR register in Device#2)
0 = 128 MB(default)
1 = 64 MB
/IGD MMIO Base Address Registers(BARs)
|GMADR -> Graphics Memory Range Address Register
|MMADR -> Memory Mapped Range Address Register

出典
Intel® 830 Chipset Family: 82830 Graphics and Memory Controller Hub (GMCH-M) Datasheet January 2002


Intel 915 Chipset
/Host Bridge/DRAM Controller PCI Register Details (D0:F0)
|GGC—GMCH Graphics Control Register
||Graphics Mode Select (GMS): This field is used to select the amount of main memory that is pre-allocated to support the Internal Graphics device in VGA (non-linear) and Native (linear) modes. The BIOS ensures that memory is preallocated only when Internal graphics is enabled. Device 2 (IGD) does not claim VGA cycles (memory and I/O), and the Sub-Class Code field within Device 2,Function 0 Class Code register is 80h.
000 = No memory pre-allocated
001 = DVMT (UMA) mode, 1 MB of memory pre-allocated for frame buffer.
010 = Reserved.
011 = DVMT (UMA) mode, 8 MB of memory pre-allocated for frame buffer.
100–111 = Reserved.
/Integrated Graphics Device PCI Register Details (D2:F0)
|GMADR -> Graphics Memory Range Address Register
|GTTADRGraphics Translation Table Range Address
This register requests allocation for Graphics Translation Table Range. The allocation is for 256 KB.
|MMADR -> Memory Mapped Range Address Register
|BSM—Base of Stolen Memory
Graphics Stolen Memory and TSEG are within DRAM space defined under TOLUD. From the top of low used DRAM, GMCH claims 1 to 64 MBs of DRAM for internal graphics, if enabled.
|MSAC—Multi Size Aperture Control
This register determines the size of the graphics memory aperture in function 0 and in the trusted space. By default, the aperture size is 256 MB (bit 27 read only). If bit 1 is set to a 1, then the aperture size is limited to 128 MB.

出典
Intel® 915G/915GV/915GL/915P/915PL/910GL Express Chipset Datasheet For the Intel® 82915G/82915GV/82915GL/82910GL Graphics and Memory Controller Hub (GMCH) and the Intel® 82915P/82915PL Memory Controller Hub (MCH) February 2005



Intel 2th-7th Core Processor
/PCI Device 0, Function 0 Configuration Registers
|GGC—GMCH Graphics Control Register Register
||GTT Graphics Memory Size (GGMS)
This field is used to select the amount of Main Memory that is preallocated to support the Internal Graphics Translation Table. 
1h = 1 MB of pre-allocated memory
2h = 2 MB of pre-allocated memory
0h = No pre-allocated memory
||Graphics Mode Select (GMS)
This field is used to select the amount of main memory that is preallocated to support the Internal Graphics device in VGA (nonlinear) and Native (linear) modes. 
0h = 0 MB - 512 MB
|BDSM—Base Data of Stolen Memory Register
The base address of stolen DRAM memory
|BGSM—Base of GTT stolen Memory Register
The base address of stolen DRAM memory for the GTT
/Processor Graphics Registers
|GMADR -> Graphics Memory Range Address Register
|GTTMMADR—Graphics Translation Table ,Memory Mapped Range Address
|MSAC—Multi Size Aperture Control
7th Core MAX 4096 MB.

出典
2nd Generation Intel Core Processor Family Desktop,
Intel Pentium Processor Family Desktop, and
Intel Celeron Processor Family Desktop
Datasheet, Volume 2 September 2011

7th Generation Intel Processor Families for S Platforms Datasheet January 2017



PCI Expressカードの単体GPU 
->ビデオカード上のGPU専用のビデオメモリを搭載

Intel Processor Graphics
ー>専用メモリを持たず、システムメモリの一部をビデオメモリとして利用。このシステムメモリの一部は一般的にUMA(Unified Memory Architecture)と呼ばれ、BIOSもしくはビデオドライバによってシステムメモリの一部がビデオメモリ専用として確保。

BIOSでUMAをの割り当てを行なうと、その分はOSから見えなくなる。

出典
PC Watch / Windows Vistaの仕組みを学ぶ【共有ビデオメモリ編】
(2007年6月14日) [Reported by wakasugi@impress.co.jp]
http://pc.watch.impress.co.jp/docs/2007/0615/vistamech2.htm
Windows Vistaでは、WDDM「Windows Display Driver Model」という名の新しいディスプレイドライバモデルが採用された。これにより、GPUの共有ビデオメモリの取り扱い方法が大きく変更された。





Dynamic Video Memory Technology (DVMT)
Intel社固有の技術名称のようです。中身的には以下を指すようです。
AGP世代ではAGP GATでチップセットでその機能を実装、PCIe世代ではPCIe グラフィイクッス側でそれを実装する。
IGD用にシステムメモリを動的に割り当てる機能でUMAの拡張のようです。これは、OS(Windows Vista以降)とドライバによって実装されるようです。最新はDVMT 5.0のようです。
UMAのメモリ割り当ての部分(DVMT Fixed Graphics Memory size)は固定のようで、これがシステムアドレスマップでいうところの「GFX Stolen」 領域になる模様で当然OSから見えないが、この領域はIGDのPCI MMIO に割り当てられている模様でこの時のアドレス変換(物理アドレス⇔物理アドレス)はホストブリッジ(DRAM Controller)がデコードしているようです
ドライバがDMAでこの領域にアクセスするようです。このとき、ドライバはその領域の物理アドレスと大きさをHost/DRAM レジスタから知るようです。
DVMT固定以外のシステムメモリの割り当てはOSとドライバが連携して負荷に応じて動的に割り当てるようです。

出典
Intel® Processor Graphics DirectX* Developer's Guide
How to maximize graphics performance on Intel® microarchitecture codename Sandy Bridge 2009
https://software.intel.com/en-us/articles/intel-snbgraphics-developers-guides
引用始まり↓
3.7 Graphics Memory Allocation
Processor graphics will continue to use the Unified Memory Architecture (UMA) and
Dynamic Video Memory Technology (DVMT) 
↑引用終わり





Intel HD Graphicsのビデオメモリについての覚書(DVMT)
http://blog.livedoor.jp/xesea/archives/1570413.html


DVMTの詳細

DVMTはOSとグラフィイクッスドライバと密接に関係しているため、Win XP と Win Vista以降で仕様が異なるようです。
Win XP(Windows 2000/XPのドライバモデル (XPDM) )のDVMT
Win Vista(WDDM)以降のDVMT

以下引用始まり
Windows XPでは、TurboCacheのメモリマッピングや利用をドライバが完全に制御していたが、Vistaでは専用ビデオメモリと共有システムメモリのマッピングと利用をOSが管理し、ドライバが寄与するところはほとんど無い。
以上引用終わり
引用元
PC Watch / Windows Vistaの仕組みを学ぶ【共有ビデオメモリ編】
(2007年6月14日) [Reported by wakasugi@impress.co.jp]
http://pc.watch.impress.co.jp/docs/2007/0615/vistamech2.htm

出典
Intel Integrated Graphics Developer's Guide 
Feb 2010 
3.6 Graphics Memory Allocation 
https://software.intel.com/sites/default/files/m/d/4/1/d/8/Intel_Integrated_Graphics_Performance_Developer_s_Guide_v2_7_1..pdf


DVMT Version


DVMT 2.1 -> 
IIntel® 852/855 Chipset GMCH Dynamic Video Memory
January 2003
https://www.intel.com/content/www/us/en/support/graphics-drivers/000007168.html



DVMT 3.0 -> 
Intel. ®. 910GML/915G/915GM/915GMS/915GV and 910GL Express Chipsets. Intel. ®. Dynamic Video Memory. Technology (DVMT) 3.0. White Paper. August 2005. 
https://www.intel.com/content/dam/support/us/en/documents/graphics/intel915g/sb/915gm910gmlexpresschipsetfamilydvmtpdf1.pdf



DVMT 5.0 -> ネットには情報ない模様。Intel HD Graphics向けか(推測)



注意!!
Windows 10 ドライバにおいては、Intel IGDのアダプタプロパティで表示される「専用ビデオメモリ」の容量は一部のゲームアプリケーションがVRAMなしと判断しないように、決め打ちで128MBに設定されているそうです。あーややこしい!


出典
Intel Support Home  Intel Graphics Drivers 
Frequently Asked Questions for Intel Graphics Memory on Windows 10
https://www.intel.com/content/www/us/en/support/graphics-drivers/000020962.html

抜粋始まり
How much graphics memory does my computer have?
Display adapter properties
Note The reported Shared System Memory is not an ongoing reservation of system memory. It's simply the limit of how much system memory the OS will allow graphics to use at a given time, on the given platform.

Note By default, the Intel graphics driver will report 128 MB of fictitious Dedicated Video Memory for compatibility with applications that don’t correctly comprehend a fully unified memory architecture. See Dedicated Memory Reporting for more information.
抜粋終わり


Intel Processor Graphicsのデバイスドライバ関連情報源
Intel Processor Graphicsのデバイスドライバ関連情報源として以下、ドキュメントがありますが、解読するにはかなり難易度が高いです。


Intel Open Source 01.ORG
Home / Intel Graphics for Linux / Intel Graphics for Linux - Documentation
Hardware Specification - PRMs (PROGRAMMER'S REFERENCE MANUAL)
https://01.org/linuxgraphics/documentation
--> IGD世代別のドライバ関連情報が記載されている。





Intel Processor Graphics製品系列(Sandy Bridge later and Desktop Product only)

Gen6 -> Sandy Bridge 2011
CPUコアとグラフィックスコア,ノースブリッジ機能がシングルダイに統合

ASCII 見えてきたSandy Bridgeの詳細 4つの特徴を解説
2010年 塩田紳二
http://ascii.jp/elem/000/000/555/555215/


Sandy BridgeのGPUコア「HD Graphics 3000&2000」には,どこまで期待していいのか
http://www.4gamer.net/games/098/G009883/20110112028/


インテル,Sandy Bridgeのアーキテクチャを日本語で詳しく解説 米田 聡
http://www.4gamer.net/games/098/G009883/20100928067/

ASCII / 詳細解説 これがSandy Bridgeのアーキテクチャーだ 2011年 大原雄介
高速化された内蔵GPU Intel HD Graphics 2000/3000
http://ascii.jp/elem/000/000/579/579517/index-5.html
→初のProcessor Graphics のが概要が解説されている。


Gen7 -> Ivy Bridge 2012

Gen7.5 -> Haswell 2013 

Gen8 -> Broadwell 2015 

Gen9 -> Skylake 2015 



PC Watch半導体/周辺機器CPUIntel
後藤弘茂のWeekly海外ニュース 2015/11/5
GPUコンピューティング機能を強化したSkylakeのGPU
http://pc.watch.impress.co.jp/docs/column/kaigai/729060.html





関連記事

category: PC-HW

tb: 0   cm: 0

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://dxr165.blog.fc2.com/tb.php/386-227afa0d
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

最新コメント

カウンター(2012/3/10以降)