PCI-SIG ENGINEERING CHANGE NOTICE

Similar documents
PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE NOTICE

Digital Imaging and Communications in Medicine (DICOM) Supplement 69: 640 MB and 1.3 GB 90mm MOD Medium format and use in US profiles

PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE REQUEST

PCI-X Protocol Addendum to the PCI Local Bus Specification Revision 2.0a

PCI Express Label Specification and Usage Guidelines Revision 1.0

PCI-X Protocol Addendum to the PCI Local Bus Specification Revision 2.0a

Single Root I/O Virtualization and Sharing Specification Revision 1.0. September 11, 2007

Virtual Memory. User memory model so far:! In reality they share the same memory space! Separate Instruction and Data memory!!

PCI Express TM. Architecture. Configuration Space Test Considerations Revision 1.0

Architecture Specification

PCI 2.3 and PCI 3.0 Key Changes Dan Neal Senior Consultant QuestTech

21154 PCI-to-PCI Bridge Configuration

PCI-SIG ENGINEERING CHANGE NOTICE

Enhanced Serial Peripheral Interface (espi) ECN

PEX 85XX EEPROM PEX 8518/8517/8512/8508 Design Note

Segmentation with Paging. Review. Segmentation with Page (MULTICS) Segmentation with Page (MULTICS) Segmentation with Page (MULTICS)

PCI-SIG ENGINEERING CHANGE NOTICE

File Organization Sheet

2 Port SATA II - 3Gbps PCI-Express Card

PCI Express Base Specification Revision 3.0. November 10, 2010

PCI Compliance Checklist

Statement of Volatility Xerox CiPress Production Inkjet System

IEEE Broadband Wireless Access Working Group < Performance enhancement with efficient mapping of outer-coded MBS streams

2. THE PCI EXPRESS BUS

Information Technology Essentials

Find the physical addresses of virtual addresses: 0, 8192, 20, 4100, : : : : : 24684

Assembly Language Each statement in an assembly language program consists of four parts or fields.

2.5GBASE backplane PCS and Auto- Negotiation Proposal

RFC 4871 DomainKeys Identified Mail (DKIM) Signatures -- Update draft-ietf-dkim-rfc4871-errata-03-01dc

Proposal for Storage and Access of Data on Media Auxiliary Memory

Embedded Systems Programming

PCI-SIG ENGINEERING CHANGE NOTICE

Xen Network I/O Performance Analysis and Opportunities for Improvement

Network Advertisement and Selection Proposal for IEEE 802.1af

Supported Platforms & Technologies

No. MIIUS0015EA DICOM CONFORMANCE STATEMENT FOR DIAGNOSTIC ULTRASOUND SYSTEM APLIO MODEL SSA-770A TOSHIBA CORPORATION 2001 ALL RIGHTS RESERVED

PCI Express Base Specification Revision 4.0 Version 0.3. February 19, 2014

Operating Systems Memory Management. Mathieu Delalandre University of Tours, Tours city, France

Breaking Through the Memory Barrier in Malicious PCI Expansion ROM

Chapter 9 - PIO Verses DMA Transfers Page 9-6

Introduction to Paging

SATA-IO Commands for ATA-8

CPS104 Computer Organization and Programming Lecture 16: Virtual Memory. Robert Wagner

Block Data is the data transferred to or from the device using SCT Command Transport feature set capabilities.

DYNAMIC ENGINEERING 435 Park Dr., Ben Lomond, Calif Fax Est

PCIe 3.0 Compliance Testing Dan Froelich Serial Enabling Workgroup Co-Chair

Clone Using the Manual Method

CSF Improving Cache Performance. [Adapted from Computer Organization and Design, Patterson & Hennessy, 2005]

Xilinx Answer Virtex-7 FPGA Gen3 Integrated Block for PCI Express core SRIOV Example Design Simulation

143A: Principles of Operating Systems. Lecture 6: Address translation (Paging) Anton Burtsev October, 2017

User Guide. Avigilon Control Center Gateway. Version 5.0. UG-ACCGateway5-A-Rev1

Islamic University Gaza Engineering Faculty Department of Computer Engineering ECOM 2125: Assembly Language LAB. Lab # 7. Procedures and the Stack

IA32 Intel 32-bit Architecture

USB for Embedded Devices. Mohit Maheshwari Prashant Garg

143A: Principles of Operating Systems. Lecture 5: Address translation. Anton Burtsev October, 2018

Network+ Guide to Networks, 6 th Edition. Chapter 2 Solutions

HP SATA DVD-ROM Optical Drives Overview

QuickSpecs. Models HP I/O Accelerator Options. HP PCIe IO Accelerators for ProLiant Servers. Overview

Virtex-7 FPGA Gen3 Integrated Block for PCI Express

Table 1 - Medium partition page(1)

Memory Management Part 1. Operating Systems in Depth XX 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.

Test Report. May Executive Summary. Product Evaluation: Diskeeper Professional Edition vs. Built-in Defragmenter of Windows Vista

Chapter 3 Memory Management: Virtual Memory

Configuration Registers AN

CSCI 237 Sample Final Exam

Technical Specification on further interoperability with C

Management Component Transport Protocol (MCTP) IDs and Codes

Intel Platform Innovation Framework for EFI SMBus Host Controller Protocol Specification. Version 0.9 April 1, 2004

Proposal for Storage and Access of Data on Auxiliary Memory

Enhanced Serial Peripheral Interface (espi)

Recall from Tuesday. Our solution to fragmentation is to split up a process s address space into smaller chunks. Physical Memory OS.

Page 1. Memory Hierarchies (Part 2)

Preview. COSC350 System Software, Fall

File Size Distribution on UNIX Systems Then and Now

Avigilon Control Center Virtual Matrix User Guide

IEEE 1722 AVB L2 Transport Protocol

Computer Programming for Engineering

PCI-SIG ENGINEERING CHANGE NOTICE

Version 02 Mezzanine on the 16MB board

Yioop Full Historical Indexing In Cache Navigation. Akshat Kukreti

Integrating DMA Into the Generic Device Model

Virtual Memory. Kevin Webb Swarthmore College March 8, 2018

IP Device Integration Notes

QuickSpecs. Models SATA RAID Controller HP 6-Port SATA RAID Controller B21. HP 6-Port SATA RAID Controller. Overview.

QuickSpecs. PCIe Solid State Drives for HP Workstations

Cache Policies. Philipp Koehn. 6 April 2018

143A: Principles of Operating Systems. Lecture 6: Address translation. Anton Burtsev January, 2017

System Design for a Million TPS

Interlaken Look-Aside Protocol Definition

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

CS 134. Operating Systems. April 8, 2013 Lecture 20. Input/Output. Instructor: Neil Rhodes. Monday, April 7, 14

PcieAltBase & PcieAltChan

238P: Operating Systems. Lecture 5: Address translation. Anton Burtsev January, 2018

Transcription:

PCI-SIG ENGINEERING CHANGE NOTICE TITLE: Resizable BAR Capability DATE: Jan 22, 2008 Updated and approved by PWG April 24, 2008 AFFECTED DOCUMENT: PCI Express Base Specification version 2.0 SPONSORS: Hewlett-Packard, Advanced Micro Devices Part I 1. Summary of the Functional Changes This optional ECN adds a capability for Functions with BARs to report various options for sizes of their memory mapped resources that will operate properly. Also added is an ability for software to program the size to configure the BAR to. Together these allow the hardware to tell resource allocation software what are the sizes that may be used, and that software will attempt to allocate the resource to the largest of the reported sizes. 2. Benefits as a Result of the Changes The Resizable BAR Capability allows system software to allocate all resources in systems where the total amount of resources requesting allocation plus the amount of installed system memory is larger than the supported address space. Currently, resources are either: a) simply not allocated and left out of the system, or b) forced to report a smaller aperture in order to be allocated, but that aperture size in not optimal in all uses of the product. This change allows the system to be configured with optimal resource settings. 3. Assessment of the Impact This capability is applicable to all components that have Base Address registers and derive value from presenting two or more options for the sizes of the resources inferred by the BARs. It is thought that Functions using this capability will be limited to very large resources, for example, add in cards with very large local memories. 4. Analysis of the Hardware Implications This is an optional capability that is useful for Functions that have resources requiring large amounts of address space. Components that this does not apply to or do not wish to add this capability are not required to. The hardware implications for a component that does implement this capability are limited to some new Configuration Space registers and a modification to their BARs. 5. Analysis of the Software Implications There is no impact to current software. The registers associated with this capability default to a benign state so that current resource allocation algorithms continue to operate as they currently do. Page 1

Software that allocates resources into the address space of the system is recommended to add a utility that collects the resource capabilities, determine the optimal size to allocate to the resource, and size the BAR, prior to setting the base address. Page 2

Part II Detailed Description of the change Modify Section 7.5.2.1. as shown The minimum Memory Space address range requested by a BAR is 128 bytes. The attributes for some of the bits in the BAR are affected by the Resizable BAR Capability, if it is implemented. Add new Section 7.xx 7.xx. Resizable BAR Capability The Resizable BAR Capability is an optional capability that allows hardware to communicate resource sizes, and system software, after determining the optimal size, to communicate this optimal size back to the hardware. Hardware communicates the resource sizes that are acceptable for operation via the Resizable BAR Capability register. Software determines, through a proprietary mechanism, what the optimal size is for the resource, and programs that size via the BAR Size field of the Resizable BAR Control register. Hardware immediately reflects the size inference in the readonly bits of the appropriate Base Address register. Hardware must Clear any bits that change from R/W to read-only, so that subsequent reads return zero. Software must clear the Memory Space Enable bit in the Command register before writing the BAR Size field. After writing the BAR Size field, the contents of the corresponding BAR are undefined. To ensure that it contains a valid address after resizing the BAR, system software must reprogram the BAR, and Set the Memory Space Enable bit (unless the resource is not allocated). The Resizable BAR Capability register is permitted to indicate the ability to operate at 4GB or greater only if the associated BAR is a 64b BAR. This capability is applicable to Functions that have Base Address registers only. It is strongly recommended that a Function not advertise any supported BAR sizes in its Resizable BAR Capability register that are larger than the space it would effectively utilize if allocated. IMPLEMENTATION NOTE Using the Capability During Resource Allocation System software that allocates resources can use this capability to resize the resources inferred by the Function s BAR s read-only bits. Previous versions of this software determined the resource size by writing FFFFh to the BAR, reading back the value, and determining the size by the number of bits that are Set. Following this, the base address is written to the BAR. System software uses this capability in place of the above mentioned method of determining the resource size, and prior to assigning the base address to the BAR. Potential usable resource sizes are reported by the Function, and read, from the Resizable BAR Capability registers. It is intended that the software allocate the largest of the reported sizes that it can, since allocating less address space Page 3

than the largest reported size can result in lower performance. Software then writes the size to the Resizable BAR Command register for the appropriate BAR for the Function. Following this, the base address is written to the BAR. For interoperability reasons, it is possible that hardware will set the default size of the BAR to a low size; a size lower than the largest reported in the Resizable BAR Capability register. Software that does not use this capability to size resources will likely result in sub-optimal resource allocation, where the resources are smaller than desirable, or not allocatable because there is no room for them. With the Resizable BAR capability, the amount of address space consumed by a device can change. In a resource constrained environment, the allocation of more address space to a device may result in allocation of less of the address space to other memory-mapped hardware, like system RAM. System software responsible for allocating resources in this kind of environment is recommended to distribute the limited address space appropriately. The Resizable BAR Capability structure defines a PCI Express Extended Capability which is located in PCI Express Extended Configuration Space, that is, above the first 256 bytes, and is shown below in Figure 7-x1. This structure allows devices with this capability to be identified and controlled. A Capability and a Control register is implemented for each BAR that is resizable. Since a maximum of 6 BARs may be implemented by any Function, the Resizable BAR Capability structure can range from 12 bytes long (for a single BAR) to 52 bytes long (for all 6 BARs). 31 0 Byte Offset Resizable BAR Extended Capability Header 000h Resizable BAR Capability Register(0) 004h Reserved Resizable BAR Control Register(0) 008h Resizable BAR Capability Register(n) (n*8+4) Reserved Resizable BAR Control Register(n) (n*8+8) Figure 7-x1 Resizable BAR Capability Page 4

7.xx.1. 00h) Resizable BAR Extended Capability Header (Offset 31 20 19 16 15 0 Next Capability Offset PCI Express Extended Capability ID Capability Version Figure 7-x2 Resizable BAR Extended Capability Header Table 7-x1 Resizable BAR Extended Capability Header Bit Location Register Description Attributes 15:0 PCI Express Extended Capability ID This field is a PCI-SIG defined ID number that indicates the nature and format of the extended capability. PCI Express Extended Capability ID for the Resizable BAR Capability is 0015h. 19:16 Capability Version This field is a PCI-SIG defined version number that indicates the version of the capability structure present. Must be 1h for this version of the specification. 31:20 Next Capability Offset This field contains the offset to the next PCI Express Extended Capability structure or 000h if no other items exist in the linked list of capabilities. Page 5

7.xx.2. Resizable BAR Capability Register (Offset 04h) 31-24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3-0 RsvdP RsvdP Figure 7-x3 Resizable BAR Capability Register Table 7-x2 Resizable BAR Capability Register Bit Location Register Description Attributes 4 When Set, indicates that the Function will operate with the BAR sized to 1MB 5 When Set, indicates that the Function will operate with the BAR sized to 2MB 6 When Set, indicates that the Function will operate with the BAR sized to 4MB 7 When Set, indicates that the Function will operate with the BAR sized to 8MB 8 When Set, indicates that the Function will operate with the BAR sized to 16 MB 9 When Set, indicates that the Function will operate with the BAR sized to 32 MB 10 When Set, indicates that the Function will operate with the BAR sized to 64 MB 11 When Set, indicates that the Function will operate with the BAR sized to 128 MB 12 When Set, indicates that the Function will operate with the BAR sized to 256 MB 13 When Set, indicates that the Function will operate with the BAR sized to 512 MB 14 When Set, indicates that the Function will operate with the BAR sized to 1 GB 15 When Set, indicates that the Function will operate with the BAR sized to 2 GB 16 When Set, indicates that the Function will operate with the BAR sized to 4 GB 17 When Set, indicates that the Function will operate with the BAR sized to 8 GB 18 When Set, indicates that the Function will operate with the BAR sized to 16 GB 19 When Set, indicates that the Function will operate with the BAR sized to 32 GB 20 When Set, indicates that the Function will operate with the BAR sized to 64 GB Page 6

21 When Set, indicates that the Function will operate with the BAR sized to 128 GB 22 When Set, indicates that the Function will operate with the BAR sized to 256 GB 23 When Set, indicates that the Function will operate with the BAR sized to 512 GB Page 7

7.xx.3. Resizable BAR Control Register (Offset 08h) 31-13 12-8 7-5 4-3 2-0 RsvdP RsvdP Figure 7-x4 Resizable BAR Control Register Table 7-x3 Resizable BAR Control Register Bit Location Register Description Attributes 2:0 BAR Index This encoded value points to the beginning of the BAR. 0 = BAR located at offset 10h 1 = BAR located at offset 14h 2 = BAR located at offset 18h 3 = BAR located at offset 1Ch 4 = BAR located at offset 20h 5 = BAR located at offset 24h All other encodings are reserved. For a 64-bit Base Address register, the BAR Index indicates the lower DWORD. This value indicates which BAR supports a negotiable size. 7:5 Number of Resizable BARs Indicates the total number of resizable BARs in the capability structure for the Function. See Figure 7-x1. The value of this field must be in the range of 01h to 06h. The field is valid in Resizable BAR Control register (0) (at offset 008h), and is RsvdP for all others. 12:8 BAR Size This is an encoded value. 0 = 1 MB 1 = 2 MB 2 = 4 MB 3 = 8 MB 19 = 512 GB The default value of this field is equal to the default size of the address space that the BAR resource is requesting via the BAR s read-only bits. When this register field is programmed, the value is Page 8 BAR Index Number of Resizable BARs BAR Size /RsvdP R/W

immediately reflected in the size of the resource, as encoded in the number of read-only bits in the BAR. Page 9