12.11.2013 Views

Tweaking Optimizing Windows.pdf - GEGeek

Tweaking Optimizing Windows.pdf - GEGeek

Tweaking Optimizing Windows.pdf - GEGeek

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

VLink 8X support<br />

V-Link refers to VIA's proprietary interchip bus. Previously, VIA used the PCI bus for connecting the North Bridge and the South<br />

Bridge. However, with high-speed PCI devices already saturating the PCI bus, VIA had to turn to an alternative bus for chipset's<br />

interchip communication. So, they designed their own bus to link the North Bridge with the South Bridge of their chipsets. The<br />

initial version used a quad-pumped 8-bit bus running at 66MHz to provide 266MB/s of interchip bandwidth. This gave them a<br />

dedicated bus with twice the bandwidth of the PCI bus (which incidentally has to be shared with other PCI devices). The V-Link<br />

debuted in the VIA Apollo KT266 chipset.<br />

VIA has recently enhanced their V-Link technology to provide even more bandwidth for interchip communication. Starting with the<br />

Apollo KT400 and P4X400 chipsets, the clock speed of the V-Link bus will be doubled to 133MHz. This doubles the bandwidth of the<br />

V-Link bus to 533MB/s. Although the new bus is only four times faster than the PCI bus, VIA chose to call the new bus 8X V-Link.<br />

The VLink 8X Support BIOS feature is used to toggle the doubling of the V-Link bus' clock speed. When enabled, the quad-pumped<br />

8-bit V-Link bus will run at 133MHz, thereby delivering a bandwidth of 533MB/s. When disabled, the V-Link bus will use a clock<br />

speed of 66MHz, essentially reverting to the original V-Link standard. This BIOS feature was most likely included for<br />

troubleshooting purposes. It is recommended that you enable it for better performance.<br />

SYSTEM RESOURCE MANAGEMENT<br />

AGP anti-aliasing<br />

The origin of this feature can be traced back all the way to the original IBM PC. When the IBM PC was designed, it only used ten<br />

address lines (10-bits) for IO space allocation. Therefore, the IO space back in those days was only 1KB or 1024 bytes in size. It<br />

was also maintained that the first 256 addresses would be exclusively reserved for the motherboard's use, leaving the last 768<br />

addresses for use by add-in devices. This would become a critical factor later on.<br />

Later, motherboards began to utilize 16 available address lines for IO space allocation. This was supposed to create a contiguous IO<br />

space of 64KB in size. Unfortunately, many ISA devices by then would only do 10-bit decodes. As such, they fragmented the 64KB<br />

IO space into 1KB chunks. To make things worse, the rule that the first 256 addresses is exclusively reserved for the motherboard<br />

meant that the first (or lower) 256 bytes of each 1KB chunk would be decoded in full 16-bits. This automatically restricted the 10-<br />

bits-decoding ISA devices to the last (or top) 768 bytes of the 1KB chunk of IO space.<br />

Therefore, those ISA devices only had 768 IO locations to use. Because there are so many ISA devices in those days, this limitation<br />

created a lot of compatibility problems because the chances of two ISA cards using the same IO space were high. When that<br />

happened, one or both of the cards would not work. Although standardizing the IO locations used by various classes of ISA devices<br />

ameliorated the situation, it was still not good enough.<br />

A workaround was eventually designed in which the ISA device would first take up a smaller number of IO locations in the 10-bit<br />

range. It would then extend its IO space by using 16-bit aliases of the few 10-bit IO locations that it allocated to itself. Because<br />

each IO location in the 10-bit decode area have sixty-three16-bit aliases, the total number of IO locations expanded from just 768<br />

locations to a maximum of 49,152 locations! More importantly, each ISA card will now require very few IO locations in the 10-bit<br />

range. This drastically reduced the chances of two ISA cards conflicting each other in the limited 10-bit IO space. This workaround<br />

became known as ISA Aliasing.<br />

Now, that's all well and good for ISA devices. Unfortunately, the 10-bit limitation of ISA devices is a liability when there are devices<br />

that require 16-bit addressing. AGP and PCI devices come to mind. As noted earlier, only the first 256 addresses of the 1KB chunks<br />

support 16-bit addressing. As such, all 16-bit addressing devices are limited to only 256 bytes of contiguous IO space! When a16-<br />

bit addressing device requires a larger contiguous IO space, it will be have to encroach on ISA IO space. If, for example, an AGP<br />

card r equires 8KB of contiguous IO space, it will cover eight of the 1KB IO chunks. Because ISA devices are using ISA Aliasing<br />

to extend their IO space, this brings about a high chance of IO space conflicts between ISA devices and the AGP card. Again, when<br />

that happens, the affected cards may fail to work.<br />

There are two ways out of this mess. First method would be to limit the AGP card to a maximum of 256 bytes of contiguous IO<br />

space. The second, and naturally the preferred method, would be to throw away the restriction and provide the AGP card with all<br />

the contiguous IO space it wants. Here's where the AGP ISA Aliasing BIOS feature comes in. The default setting of Enabled forces<br />

the system controller to alias ISA addresses using address bits [15:10]. Only the first 10-bits (address bits 0 to 9) are used for<br />

decoding. As mentioned above, this restricts all 16-bit addressing devices to a maximum contiguous IO space of 256 bytes.<br />

When disabled, the system controller will not perform any ISA aliasing and all 16 address lines can be used for IO address space<br />

decoding. This gives 16-bit addressing devices access to the full 64KB IO space.<br />

It is recommended that you disable AGP ISA Aliasing for optimal AGP (and PCI) performance. Enable it only if you have ISA<br />

devices that are conflicting with your AGP or PCI cards.<br />

APIC function<br />

The APIC Function BIOS feature is used to enable or disable the motherboard's APIC (Advanced Programmable Interrupt Controller).<br />

The APIC is a new distributed set of devices that make up an interrupt controller. In current implementations, it consists of three<br />

parts - a local APIC, an I/O APIC and an APIC bus. The local APIC delivers interrupts to a specific processor so each processor in a<br />

system has to have its own local APIC. Therefore, a dual processor system must have two local APICs. Because a local APIC has<br />

been integrated into every processor since the debut of the original Intel Pentium P54C processor, there's no need to worry about<br />

the number of local APICs.<br />

The I/O APIC is the replacement for the old chained 8259 PIC (Programmable Interrupt Controller) still in use in many<br />

motherboards. It collects interrupt signals from I/O devices and send messages to the local APICs via the APIC bus which connects<br />

it to the local APICs. There can be up to eight I/O APICs in a system, each supporting anywhere from 24 (usually) to 64 interrupt<br />

lines. As you can see, this allows a lot more IRQs than is currently possible with the 8259 PIC. Note that without at least one I/O<br />

APIC, the local APIC is useless and the system functions as if it's based on the 8259 PIC.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!