Device PCI Express dapat mengekspos memori dan register melalui Base Address Register, yang biasa disingkat BAR. Platform menetapkan rentang address untuk BAR tersebut, lalu CPU dapat menjangkau resource device yang dipetakan melalui transaksi berbasis memory address biasa.

Untuk device dengan local memory besar, BAR yang kecil hanya dapat mengekspos sebagian memori pada satu waktu. Software mungkin harus mengubah bagian mana yang terlihat melalui aperture ketika akses berpindah ke region lain pada memori device. PCIe Resizable BAR menambahkan mekanisme standar untuk memilih ukuran BAR yang lebih besar dari ukuran yang didukung, sehingga region yang jauh lebih luas dapat tetap terlihat oleh CPU pada saat yang sama.

Fitur ini tidak menambah device memory dan tidak membuat bandwidth PCIe lebih cepat. Yang berubah adalah ukuran address window yang dipakai untuk menjangkau resource device yang sudah ada.

BAR memesan host address space

Selama PCIe enumeration, firmware atau operating system menemukan setiap BAR dan menetapkan rentang address yang kompatibel. Memory BAR merepresentasikan aperture pada physical address map host. Load dan store yang diarahkan ke rentang tersebut dirutekan ke device, bukan ke system RAM biasa.

Device dapat memakai BAR untuk control register, buffer, atau akses ke local memory. Nilai BAR mengidentifikasi base address yang dipilih software platform. Ukurannya menentukan seberapa banyak host address space yang ditempati mapping tersebut.

Fixed-size BAR tradisional dapat menjadi terbatas ketika device memiliki local memory beberapa gigabyte tetapi hanya mengekspos aperture yang jauh lebih kecil. Local memory tetap ada secara penuh. Batasnya adalah seberapa banyak yang dapat dialamatkan melalui host-visible mapping tersebut tanpa memindahkan window.

Resizing memilih ukuran yang memang didukung device

Resizable BAR capability memungkinkan device mengiklankan sekumpulan ukuran yang didukung untuk resizable BAR. Software platform memilih salah satu ukuran tersebut dan mengalokasikan address space yang cukup.

Negosiasi ini penting karena host tidak dapat memilih nilai arbitrer. Device melaporkan ukuran valid, dan platform juga harus memiliki rentang address yang sesuai. Firmware, bridge window, operating-system resource allocation, dan dukungan device semuanya ikut menentukan hasilnya.

Mapping yang lebih besar dapat mencakup seluruh region device-local memory ketika platform mampu mengalokasikan address space yang cukup. Pada graphics card, ini dapat berarti memetakan seluruh framebuffer alih-alih hanya aperture kecil yang terus dipindahkan.

Ukuran BAR yang dipilih karena itu merupakan keputusan resource allocation, bukan pengaturan transfer size. BAR 16 GB tidak berarti terjadi transaksi 16 GB. Transaksi PCIe individual tetap tunduk pada protocol dan platform limit.

Window yang lebih besar mengurangi pekerjaan remapping

Bayangkan device dengan local memory 8 GB dan CPU-visible aperture 256 MB. Jika software memerlukan akses CPU langsung ke lokasi yang tersebar di seluruh 8 GB, semua lokasi tersebut tidak dapat direpresentasikan melalui aperture secara bersamaan. Driver mungkin perlu menyesuaikan mapping atau memakai jalur akses lain saat berpindah antar-region.

Jika device dan platform yang sama mendukung BAR 8 GB, seluruh region dapat tetap dipetakan ke host address space. Software dapat mengalamatkan offset berbeda tanpa berulang kali menggeser window kecil.

Ini dapat menghilangkan bookkeeping dan synchronization di sekitar perubahan aperture. Software juga memperoleh lebih banyak kebebasan untuk melakukan transfer yang melibatkan device-local resource yang sebelumnya berada di luar current window.

Efek performa praktis bergantung pada workload. Application yang didominasi pemrosesan GPU-local dapat melihat sedikit perubahan. Workload dengan interaksi host yang sering di banyak region device memory memiliki peluang lebih besar untuk mendapat manfaat.

Address width adalah constraint platform

BAR besar mengonsumsi rentang besar dalam host physical address map. Sistem 64-bit modern dapat menempatkan resource PCIe di atas batas 4 GB, memberi firmware dan operating system jauh lebih banyak ruang untuk mapping multi-gigabyte.

Kompatibilitas menjadi lebih sulit pada sistem dengan address space terbatas atau firmware yang tidak mampu menyusun PCIe resource window besar dengan benar. Platform dapat mendukung capability device secara prinsip tetapi tetap gagal mengalokasikan ukuran yang diinginkan karena device lain dan reserved region juga membutuhkan address range.

Ini juga menjelaskan mengapa firmware setting dapat memengaruhi fitur. Opsi yang umumnya terkait dengan alokasi resource PCIe besar dapat mengubah address layout yang tersedia saat boot. Label dan requirement persisnya berbeda antar-motherboard dan firmware.

Physical address width CPU juga penting. Instruction set 64-bit tidak menjamin setiap implementasi mengekspos jumlah physical address bit yang sama. Resource planning platform harus tetap berada dalam implemented address range.

BAR yang lebih besar tidak melewati PCIe

Membuat lebih banyak device memory dapat dialamatkan tidak mengubahnya menjadi DRAM biasa yang terpasang langsung ke memory controller CPU. Akses CPU tetap melewati jalur PCIe dan mempertahankan karakteristik latency, bandwidth, ordering, serta transaction milik interconnect tersebut.

Fitur ini juga tidak menggantikan DMA. Device tetap dapat memindahkan data melalui DMA, dan driver dapat memilih metode transfer berdasarkan arah, ukuran, locality, dan kebutuhan synchronization.

Resizable BAR mengubah reachability melalui host-visible aperture. Ia dapat membuat region yang lebih besar dapat dialamatkan langsung, tetapi transport di bawahnya tetap PCIe.

Perbedaan ini mencegah asumsi performa yang umum: full-size mapping tidak setara dengan memberi CPU performa local memory. Mapping tersebut menghapus constraint ukuran aperture; ia tidak menghapus interconnect.

Hasil pada GPU bergantung pada software path

Resizable BAR banyak dikaitkan dengan discrete graphics karena GPU modern dapat memiliki beberapa gigabyte local memory. Aperture yang lebih besar dapat membiarkan CPU mengalamatkan lebih banyak memori tersebut tanpa mengganti window kecil.

Capability itu sendiri tidak menjamin frame rate lebih tinggi. Game engine, graphics API, driver, dan GPU memory manager menentukan resource mana yang melintasi batas host-device dan seberapa sering. Jika workload jarang memerlukan akses CPU di seluruh region yang lebih luas, aperture besar mungkin hanya memberi sedikit efek.

Driver policy juga dapat berpengaruh. Vendor dapat menerapkan tuning atau compatibility rule khusus fitur untuk hardware dan application tertentu. Keberadaan BAR besar dalam system information mengonfirmasi ukuran mapping, bukan performance gain yang tetap.

Untuk device PCIe non-graphics, prinsip arsitektural yang sama berlaku setiap kali memory resource besar mendapat manfaat dari host-visible mapping yang lebih luas.

Virtualization menambahkan lapisan resource lain

Virtual machine dengan direct device assignment menambahkan concern address translation dan resource allocation. Host harus mengonfigurasi physical device, memesan rentang BAR-nya, dan menyajikan resource layout yang dapat digunakan guest.

BAR besar dapat meningkatkan kebutuhan memory-mapped I/O milik virtual machine. Hypervisor dan virtual firmware membutuhkan address space yang cukup untuk aperture device yang di-assign bersama virtual hardware lain.

Hal ini dapat mengekspos configuration limit yang tidak terlihat dengan BAR kecil. Device assignment dapat bekerja dengan reduced aperture tetapi gagal ketika BAR multi-gigabyte tidak muat dalam PCIe resource layout milik guest.

Masalahnya adalah penempatan address space, bukan jumlah guest RAM. Kapasitas RAM dan memory-mapped I/O window menempati bagian yang saling terkait namun berbeda dari address map mesin.

Efek utama adalah aperture yang lebih lebar

Resizable BAR menghapus size constraint yang berasal dari masa ketika host-visible device mapping berukuran besar kurang praktis. Device yang kompatibel dapat mengiklankan pilihan BAR lebih besar dan software platform dapat mengalokasikan ukuran yang sesuai dengan sistem.

Manfaatnya konkret: lebih banyak device resource dapat tetap dialamatkan langsung oleh CPU dalam satu waktu. Ini dapat mengurangi perubahan aperture dan menyederhanakan akses di seluruh region device-local memory yang besar.

Batasnya juga konkret. Device harus mengiklankan capability tersebut, platform harus dapat mengalokasikan address range, firmware dan dukungan operating system harus bekerja sama, dan semua akses tetap memakai transport PCIe. BAR yang lebih besar memperlebar window; ia tidak menciptakan lebih banyak memori atau link yang lebih cepat.