「BAR (Base Address Register)」の版間の差分

提供:MonoBook
ページの作成:「'''Base Address Register''' (BAR)とは、PCI Expressの機能のひとつで、PCI Expressカード上のメモリをCPUのメモリ空間に割り当てられ…」
 
 
(同じ利用者による、間の12版が非表示)
1行目: 1行目:
'''Base Address Register''' (BAR)とは、[[PCI Express]]の機能のひとつで、PCI Expressカード上の[[メモリ]]をCPUのメモリ空間に割り当てられる([[メインメモリ]]を増設したように見える)という機能です。
'''Base Address Register''' (BAR)とは、[[PCI Express]]の機能のひとつで「PCI Expressカード(以下カード)上の[[メモリ]]をCPUのメモリ空間に割り当てられる([[メインメモリ]]を増設したように見える)」という機能です。


通常であればカード上のメモリにアクセスするにはCPUからカードごとの専用命令を経由して読み書きを行います。一方、BARを使うとCPUから普通のメインメモリと同じように読み書きできるようになります。専用命令が不要なので若干高速化されるようです。
通常であればカード上のメモリにアクセスするにはCPUからカードごとの専用命令を経由して読み書きを行います。一方、BARを使うとCPUから普通のメインメモリと同じように読み書きできるようになります。専用命令が不要なのでメモリアクセスが高速化されます。


主に[[ビデオカード]]上の[[VRAM]]の一部を[[メインメモリ]]の一部として認識させる用途で使われています。当然ながらメモリ増設にも使おうと思えば使えます。
主に[[ビデオカード]]上の[[VRAM]]の一部を[[メインメモリ]]の一部として認識させる用途で使われています。当然ながらメインメモリの増設にも使おうと思えば使えます。


== 容量 ==
== 容量 ==
なお、BARに割り当てられるメモリ容量の上限は[[CPU]]ごと([[チップセット]]ごと=[[マザーボード]]ごと)に[[仕様]]を持っています。[[MIPS]]系では32MB、[[ARM]]系では64MB、[[x86]]系では128MB、[[POWER]]系では64GBくらいが相場となっています。
なお、BARに割り当てられるメモリ容量の上限は[[CPU]]ごと(実際には[[チップセット]]ごと=[[マザーボード]]ごと)に[[仕様]]を持っています。[[MIPS]]系では32MB、[[ARM]]系では64MB、[[x86]]系では128MB、[[POWER]]系([[PowerPC]]系)では64GBくらいが相場となっています。


なお、最新の[[インテル]]や[[AMD]]の製品では「[[Resizable BAR]]」などといって64ビット(理論上は約172億GB=全メモリ)を割り当てることができます。
[[ビデオカード]]は「[[x86]]系の128MB」を想定しているものが多く、[[Raspberry Pi]]などにビデオカードを接続しても動かないことが多いのは「[[ARM]]系の64MB」は想定されていないためです。
 
一方でPowerPCは太古の昔からBAR64GBが標準なのでPowerPCを搭載した古い家電製品にLinuxをぶち込んでRadeon HD(ドライバの関係で最新製品は難しいようです)を接続できるそうです。
 
最新の[[インテル]]や[[AMD]]の製品では「[[Resizable BAR]]」などといって64ビット(理論上は約172億GB=全メモリ)を割り当てることができます。なお、[[Resizable BAR]]」はPCI Express 2.1からオプション(仕様はあるが実装しなくてもよい)として存在しました。
 
[[category: GPU]]
[[category: CPU]]

2024年11月19日 (火) 02:12時点における最新版

Base Address Register (BAR)とは、PCI Expressの機能のひとつで「PCI Expressカード(以下カード)上のメモリをCPUのメモリ空間に割り当てられる(メインメモリを増設したように見える)」という機能です。

通常であればカード上のメモリにアクセスするにはCPUからカードごとの専用命令を経由して読み書きを行います。一方、BARを使うとCPUから普通のメインメモリと同じように読み書きできるようになります。専用命令が不要なのでメモリアクセスが高速化されます。

主にビデオカード上のVRAMの一部をメインメモリの一部として認識させる用途で使われています。当然ながらメインメモリの増設にも使おうと思えば使えます。

容量[編集 | ソースを編集]

なお、BARに割り当てられるメモリ容量の上限はCPUごと(実際にはチップセットごと=マザーボードごと)に仕様を持っています。MIPS系では32MB、ARM系では64MB、x86系では128MB、POWER系(PowerPC系)では64GBくらいが相場となっています。

ビデオカードは「x86系の128MB」を想定しているものが多く、Raspberry Piなどにビデオカードを接続しても動かないことが多いのは「ARM系の64MB」は想定されていないためです。

一方でPowerPCは太古の昔からBAR64GBが標準なのでPowerPCを搭載した古い家電製品にLinuxをぶち込んでRadeon HD(ドライバの関係で最新製品は難しいようです)を接続できるそうです。

最新のインテルAMDの製品では「Resizable BAR」などといって64ビット(理論上は約172億GB=全メモリ)を割り当てることができます。なお、Resizable BAR」はPCI Express 2.1からオプション(仕様はあるが実装しなくてもよい)として存在しました。