Hướng dẫn cách làm Cho winXp nhận đủ 4Gb Ram

30/11/2010 00:00
Vào boot.ini chỉnh lại như sau:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)WINDOW S
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windo ws Server 2003, Enterprise" /fastdetect /PAE

Lúc đầu cài lên chỉ nhận có <3,5G Ram
Thêm cái /PAE vào thì lên đc 4G

/PAE là Physical Address Extension, cho phép hầu hết các hệ điều hành 32 bit có thể nhận được bằng hoặc hơn 4Gb RAM.

Cụ thể:

Windows 2000 Advanced Server: 8Gb;
Windows 2000 Datacenter Server-32 Gb,
Windows XP: 4Gb;
Windows Server 2003 (and SP1), Standard Edition: 4Gb;
Windows Server 2003, Enterprise Edition: 32 Gb
Windows Server 2003, Datacenter Edition và Windows Server 2003 SP1, Enterprise Edition: 64 Gb
Windows Server 2003 SP1, Datacenter Edition: 128 Gb

Chỉ có các hệ điều hành 32 bit hỗ trợ PAE, hệ điều hành 64 bit không hỗ trợ.

Tin buồn là danh sách các hệ điều hành hỗ trợ PAE không có Windows Vista 32 bit.
Thông tin chi tiết:
     
 

http://www.microsoft.com/whdc/system...AE/PAEdrv.mspx

 

Tạm dịch thông tin chi tiết
Quote:
Giới thiệu
PAE là một Intel cung cấp địa chỉ bộ nhớ mở rộng cho phép hỗ trợ lớn hơn 4 GB bộ nhớ vật lý cho hầu hết 32-bit (IA-32) Intel Pentium Pro và sau đó là nền tảng. Bài viết này cung cấp thông tin để giúp các nhà phát triển trình điều khiển thiết bị thực hiện các trình điều khiển Windows có hỗ trợ PAE.

Microsoft hỗ trợ vật lý Địa chỉ Extension (PAE) bộ nhớ trong Microsoft Windows 2000, Windows XP, và Windows Server 2003 sản phẩm:

Hệ điều hành tối đa bộ nhớ hỗ trợ với PAE
Windows 2000 Advanced Server
8 GB RAM vật lý

Windows 2000 Datacenter Server
32 GB RAM vật lý

Windows XP (tất cả các phiên bản)
4 GB RAM vật lý *

Windows Server 2003 (và SP1), Standard Edition
4 GB RAM vật lý *

Windows Server 2003, Enterprise Edition
32 GB RAM vật lý

Windows Server 2003, Datacenter Edition
64 GB RAM vật lý

Windows Server 2003 SP1, Enterprise Edition
64 GB RAM vật lý

Windows Server 2003 SP1, Datacenter Edition
128 GB RAM vật lý


* Tổng số vật lý không gian địa chỉ được giới hạn đến 4 GB trên các phiên bản của Windows.

PAE được hỗ trợ chỉ trên 32-bit, các phiên bản của hệ điều hành Windows. 64-bit của Windows không hỗ trợ PAE. Để biết thông tin về điều khiển thiết bị và các yêu cầu hệ thống cho các phiên bản 64-bit của Windows, xem 64-bit, Thiết kế hệ thống.

Mặc dù hỗ trợ bộ nhớ PAE thường gắn liền với hỗ trợ nhiều hơn 4 GB RAM, PAE có thể được kích hoạt trên Windows XP SP2, Windows Server 2003, và sau đó là các phiên bản 32-bit của Windows để hỗ trợ phần cứng thi hành Data Execution Prevention (DEP).

Hệ điều hành hỗ trợ. Hạt nhân PAE không được kích hoạt theo mặc định cho hệ thống có thể hỗ trợ nhiều hơn 4 GB RAM.

Để khởi động hệ thống và sử dụng PAE bộ nhớ, các / PAE chuyển đổi phải được bổ sung vào các mục tương ứng trong tập tin Boot.ini. Nếu một vấn đề sẽ phát sinh, Safe Mode có thể được sử dụng, mà nguyên nhân của hệ thống để khởi động bằng hạt nhân bình thường (chỉ hỗ trợ 4 GB RAM) ngay cả khi / PAE chuyển đổi là một phần của tập tin Boot.ini.

Hạt nhân chế độ PAE đòi hỏi một kiến trúc vi xử lý Intel, Pentium Pro hay mới hơn, nhiều hơn 4 GB RAM, và Windows 2000, Windows XP, hoặc Windows Server 2003.

PAE hạt nhân có thể được kích hoạt tự động mà không có / PAE chuyển đổi hiện diện trong mục nhập khởi động nếu hệ thống đã được kích hoạt DEP (Switch noexecute / là hiện tại) hay bộ xử lý hệ thống hỗ trợ phần cứng thi hành DEP. Sự hiện diện của các chuyển đổi noexecute / trên một hệ thống với một bộ xử lý có hỗ trợ phần cứng thi hành DEP ngụ ý sự / PAE switch. Nếu bộ xử lý hệ thống có khả năng phần cứng và thi hành DEP / noexecute chuyển đổi không có trong mục nhập khởi động, Windows thừa nhận / noexecute = optin theo mặc định và cho phép chế độ PAE. Để biết thêm thông tin, xem các chủ đề "Tùy chọn khởi động trong một Boot.ini File" trong Windows DDK.

Trở về đầu trang
Ban hệ thống Các vấn đề: DAC Khả năng cho xe buýt
Chipset khác nhau có khả năng hỗ trợ nhiều hơn 4 GB bộ nhớ vật lý. Bằng cách sử dụng PAE, các Datacenter điều hành Windows và nâng cao hệ thống máy chủ có thể sử dụng bộ nhớ.

Trên một nền tảng 64-bit, cho hiệu suất tối ưu, tất cả các card PCI (bao gồm 32-bit PCI adapter) phải có khả năng địa chỉ không gian địa chỉ đầy đủ vật chất. Đối với 32-bit, PCI adapter, điều này có nghĩa là họ phải có khả năng hỗ trợ Địa chỉ Dual Cycle (DAC) lệnh cho phép họ chuyển 64-bit địa chỉ để các adapter hoặc thiết bị (có nghĩa là, địa chỉ ở trên không gian địa chỉ 4 GB) . Bộ tương thích mà không thể cung cấp hỗ trợ này không thể truy cập trực tiếp không gian địa chỉ đầy đủ trên một nền tảng 64-bit.

Thật không may, Microsoft đang thấy rằng không phải tất cả PCI xe buýt trên một hệ thống hỗ trợ DAC board, đó là một yêu cầu cho 32-bit card PCI tới địa chỉ hơn 4 GB bộ nhớ. Hơn nữa, không có cách nào cho một DAC-thiết bị PCI có khả năng (hay lái xe liên quan của nó) để biết rằng nó đang chạy trên một phi-DAC-có khả năng xe buýt.

Cho những vấn đề này trong phần cứng, Microsoft phải tìm cách sửa lỗi tạm phần mềm tối ưu trong hệ điều hành theo quan điểm của khách hàng, các OEM, và Microsoft. Phần này bàn về một số giải pháp phần mềm có thể đã bị từ chối vì bất cập khác nhau, và sau đó bàn về các giải pháp lựa chọn.

Trọng Dma64BitAddress = Hiệu suất và ổn định vấn đề
Một phần mềm workaround sẽ yêu cầu hệ điều hành để ghi đè cờ Dma64BitAddresses thông qua trình điều khiển để HalGetAdapter: nếu trình điều khiển đi TRUE và điện thoại của nó trên một xe buýt mà không hỗ trợ DAC, lực lượng này để FALSE. Đó là nguyên nhân lớp trừu tượng phần cứng (HAL) để đôi chuyển đệm thực hiện thông qua IoMapTransfer hoặc GetScatterGatherList, do đó, các thiết bị không bao giờ nhìn thấy một địa chỉ ở trên 4 GB. Để biết thêm thông tin, hãy xem "Double-đệm DMA Chuyển" chủ đề trong DDK Windows.

Thật không may, HalGetAdapter không có thông tin cần thiết để xác định các xe buýt của điện thoại của người gọi. Tất cả những gì có thể được gọi là các nội dung của cấu trúc DEVICE_DESCRIPTION rằng việc cung cấp các trình điều khiển, mà chỉ là thông tin có liên quan InterfaceType là PCI.

struct _DEVICE_DESCRIPTION (
ULONG Phiên bản;
BOOLEAN Master;
BOOLEAN ScatterGather;
BOOLEAN DemandMode;
BOOLEAN AutoInitialize;
BOOLEAN Dma32BitAddresses;
BOOLEAN IgnoreCount;
BOOLEAN Reserved1; / / phải là sai lầm
BOOLEAN Dma64BitAddresses;
ULONG BusNumber; / / chưa sử dụng cho WDM
ULONG DmaChannel;
INTERFACE_TYPE InterfaceType;
DMA_WIDTH DmaWidth;
DMA_SPEED DmaSpeed;
ULONG MaximumLength;
ULONG DmaPort;
) DEVICE_DESCRIPTION, * PDEVICE_DESCRIPTION;

Ngoài ra:

• Double-đệm đã được thể hiện trong thử nghiệm tại Microsoft để có một tác động tiêu cực đến hiệu suất I / O và thông lượng sử dụng CPU. Điều này làm tăng tác động tiêu cực như là bộ nhớ hơn là được vượt quá 4 GB.

• Những sự chậm trễ liên kết với tôi hiệu năng cao / O và đôi đệm có thể gây ra các vấn đề thời gian cho người lái xe và các thiết bị, trong đó sẽ tác động tiêu cực đến sự ổn định của hệ thống.


Tất cả điều này là trái với mục tiêu của Windows Server Datacenter và nâng cao để đảm bảo khả năng mở rộng hơn và độ tin cậy.

IoGetDmaAdapter = không được sử dụng bởi Mọi Drivers
Windows Driver Model (WDM) giới thiệu cuộc gọi, IoGetDmaAdapter (), là tương tự như HalGetAdapter, nhưng cũng phải mất một con trỏ đến đối tượng thiết bị vật lý (PDO). Điều này cho phép hệ điều hành để phát hiện PCI bus của người gọi và cho dù đó là một thiết bị con của một phi-DAC xe buýt. Sau đó, trình điều khiển PCI có thể ghi đè lên các lĩnh vực Dma64BitAddress trong DEVICE_DESCRIPTION để HAL nghĩ rằng thiết bị chỉ có thể xử lý 32-bit địa chỉ.

Vấn đề với phương pháp tiếp cận này là không phải tất cả các trình điều khiển sử dụng IoGetDmaAdapter. Nhiều người vẫn còn sử dụng HalGetAdapter, mặc dù gần đây DDKs cụ thể định nghĩa này như là một cuộc gọi đã lỗi thời. Microsoft đã không có cách nào ngăn chặn các trình điều khiển của bên thứ ba từ gọi HalGetAdapter; buộc các trình điều khiển để sử dụng IoGetDmaAdapter bởi không gọi cũng làm cho nhiều trình điều khiển nếu không có khả năng như không còn chức năng. Yêu cầu tất cả các trình điều khiển để sử dụng IoGetDmaAdapter sẽ tạo ra thử nghiệm rất lớn và các vấn đề hiệu suất.

Không có thói quen không chính xác hoặc DMA = Không có Workaround có thể
Bất kể cho dù IoGetDmaAdapter hoặc HalGetAdapter được sử dụng, không phải tất cả các trình điều khiển các thói quen sử dụng DMA chính xác. Một số người không sử dụng chúng ở tất cả vì những tác động hiệu quả. Nó sẽ không có bất ngờ tìm thấy các trình điều khiển 64-bit có khả năng mà bỏ qua những thói quen DMA, vì họ "biết" họ không cần thói quen như vậy. Trong trường hợp như vậy, không có workaround có thể điều hành hệ thống - tất cả các trình điều khiển vi phạm phải được tìm thấy và cố định.

Thiết bị khởi động trên Non-DAC Bus / Mọi Non-DAC xe buýt = Không có bộ nhớ hỗ trợ lớn
Bên cạnh những vấn đề nhiều không DAC xe buýt mô tả ở trên, có hai trường hợp đặc biệt:

• thiết bị khởi động trên Non-DAC Bus. Đầu tiên là các trường hợp thiết bị khởi động được trên một không DAC xe buýt. Cho rằng một pagefile thường nằm trên thiết bị khởi động và đây là một đường dẫn dữ liệu chính, sau đó tất cả pagefile I / O sẽ buộc phải được gấp đôi buffered, tiêu cực ảnh hưởng hiệu năng hệ thống và có thể dẫn đến sự mất ổn định của hệ thống.

• Tất cả Non-DAC xe buýt. Các trường hợp thứ hai là nơi mà tất cả các xe buýt có không DAC, trong trường hợp người dùng không có tùy chọn chuyển DAC adapter, LME-Card có khả năng, hoặc cả hai để xe buýt DAC. Giải pháp duy nhất trong trường hợp như vậy là để hạn chế hỗ trợ bộ nhớ đến 4 GB, bất kể các bộ vi xử lý, điều khiển bộ nhớ, hoặc bảng hệ thống hỗ trợ về thể chất hơn 4 GB RAM.


Microsoft không mong đợi bất kỳ trường hợp của các trường hợp thứ hai và số đầu tiên, nhưng phải có những khả năng vào tài khoản trong việc xác định các giải pháp tổng thể.

Lựa chọn giải pháp: Vô hiệu hoá bộ nhớ trên 4 GB khi không tồn tại trạm xe buýt DAC
Bởi vì Microsoft đã không workaround phần mềm đáng tin cậy cho vấn đề này, chỉ khác là khả thi để vô hiệu hóa các cấu hình mà không làm việc và thông báo cho người quản trị của vấn đề. Vô hiệu hoá tất cả các bộ nhớ trên 4 GB nếu có bất kỳ không DAC xe buýt là một cách để ngăn chặn sự mất ổn định trong trường hợp này. Microsoft nghĩ rằng đây là giải pháp tốt nhất cho khách hàng, bởi vì nó là có khả năng nhất để mất ổn định nền tảng.

Bảng sau đây tóm tắt các thông tin này.

Bus Adapter Kết quả
DAC
DAC
Hiệu suất cao nhất và ổn định.

DAC
Non-DAC
Đôi đệm cần thiết. 1 2

Non-DAC
DAC
Bộ nhớ tuân thủ tham nhũng có thể do không chuẩn PCI; Windows sẽ hành động cụ thể để avoid.3

Non-DAC
Non-DAC
Đôi đệm required.4

1 Trong những trường hợp này, vẫn còn một cơ hội cho tham nhũng, bộ nhớ, ngay cả với các thiết bị 32-bit trên 32-bit, xe buýt sử dụng các trình điều khiển 32-bit, như mô tả trong Chú 2.
2 Quyết định tăng gấp đôi-đệm được thực hiện trên cơ sở chuyển giao một mỗi lần. Đây là cùng một thuật toán được sử dụng để xác định liệu một chuyển đến một DMA 24-bit (ISA) adapter phải được gấp đôi buffered.
Đôi đệm xảy ra cho một cuộc chuyển tiền nếu địa chỉ vật lý của bộ nhớ DMA là tại một địa chỉ cao hơn adapter có thể tiếp cận. Trước đây, một adapter có thể truy cập tất cả 32 bit của không gian địa chỉ vật lý sẽ thiết lập các lĩnh vực Dma32BitAddresses trong cơ cấu DEVICE_DESCRIPTION thông qua thành HalGetAdapter. Tương tự, một adapter có thể truy cập tất cả 64 bit của không gian địa chỉ vật lý sẽ thiết lập các lĩnh vực Dma64BitAddresses trong cơ cấu giống nhau.
Nếu một bộ đệm với một địa chỉ thực lớn hơn 4 GB là được truyền cho IoMapTransfer, đối tượng tiếp hợp được kiểm tra. Nếu nó được tìm thấy sẽ được cho một adapter mà không đặt trường Dma64BitAddresses, sau đó là thích hợp thấp bộ nhớ đệm là tìm thấy, và dữ liệu được sao chép trước hay sau khi chuyển (tuỳ thuộc vào việc những dữ liệu đã được đi hoặc đến từ các adapter, tương ứng).
3 Hệ thống có một không DAC xe buýt được phát hiện vào lúc khởi động và Windows bộ nhớ vô hiệu hóa trên 4 GB bằng cách không sử dụng hạt nhân PAE để ngăn chặn tham nhũng, bộ nhớ và sự bất ổn định của hệ thống.
4 Trong những trường hợp này, vẫn còn một cơ hội cho tham nhũng, bộ nhớ, ngay cả với các thiết bị 32-bit trên 32-bit, xe buýt sử dụng các trình điều khiển 32-bit, như mô tả trong Chú 2.

Nếu bạn, IxV, có chế độ kiểm tra và người sử dụng mã [và điều này gần như là phổ đúng] này là một kịch bản thử nghiệm, bạn phải trải. Bạn phải chắc chắn rằng mã bạn đang thử nghiệm có thể đối phó với các địa chỉ chính xác cao ảo, đặc biệt là ở trên 2 GB. Windows sẽ được kiểm tra với các ứng dụng hoặc tiện ích của bạn để đảm bảo chúng hoạt động.

Thông thường, VirtualAlloc trả về địa chỉ ảo trong thấp -> cao, đơn đặt hàng. Vì vậy, trừ khi bạn quá trình cấp phát bộ nhớ hay nó có một không gian địa chỉ rất phân mảnh ảo, nó sẽ không bao giờ lấy lại địa chỉ rất cao. Điều này có thể ẩn các lỗi liên quan đến các địa chỉ cao. Có một cách đơn giản để phân bổ lực lượng ở đầu trang -> xuống lệnh trong Windows Server 2003, Datacenter Edition và điều hành hệ thống Enterprise Edition và điều này có thể tiết lộ lỗi quan trọng.

Bạn cần cài đặt HKLM System CurrentControlSet Control Session Manager Memory Management AllocationPreference REG_DWORD = 0x100000

Tất cả các ứng dụng, nhưng đặc biệt là những ứng dụng được xây dựng với LINKER_FLAGS = / LARGEADDRESSAWARE trong nguồn tập tin, nên được thử nghiệm với / PAE, / NOLOWMEM và / 3GB switch, và thay đổi đăng ky.

Không có phần cứng đặc biệt là cần thiết để thử nghiệm MEM_TOP_DOWN. Bất kỳ máy chạy Windows Server 2003, Datacenter Edition hoặc điều hành doanh nghiệp hỗ trợ hệ thống bản thử nghiệm này.

MEM_TOP_DOWN cũng có thể được sử dụng trên hệ thống Itanium-based. Tuy nhiên, / 3GB là một x86-cụ thể tính năng này.

The / PAE, / NOLOWMEM và / 3GB switch, và thay đổi đăng ký, có thể được sử dụng cùng một lúc. Lưu ý rằng / 3GB sẽ ngăn chặn truy cập vào bộ nhớ vật lý vượt quá 16 GB, vì không gian hạt nhân là giảm trí nhớ với các chuyển đổi 3GB /, và do đó không có đủ chỗ cho thêm Trang Bảng mục có yêu cầu khi bộ nhớ lớn hơn 16 GB.

Trở về đầu trang
Adapter và Các vấn đề Driver: LME và DAC Có khả năng
Tất cả bộ nhớ vật lý được coi như là bộ nhớ chung mục đích, do đó, không có các API mới là cần thiết để truy cập I / O trên 4 GB địa chỉ bộ nhớ vật lý. Ngoài ra, trực tiếp I / O có thể được thực hiện cho lớn hơn 4 GB địa chỉ vật lý - điều này đòi hỏi phải có khả năng hoặc DAC-64-bit PCI thiết bị. Thiết bị và trình điều khiển có thể thực hiện trực tiếp I / O ngoài 4 GB được coi là Bật bộ nhớ lớn (LME).

Bởi vì Windows không có một PAE hạt nhân hoặc LME API hoặc giao diện, các PAE-X86 hạt nhân đảm bảo rằng nhiều mặt hàng là giống hệt nhau để các hạt nhân tiêu chuẩn, bao gồm:

• hạt nhân, tổ chức bộ nhớ không gian là không thay đổi.

• PCI Base Địa chỉ Đăng ký [Bar] vẫn giữ nguyên.

• Registry cờ làm việc như nhau.

• Non-paged hồ bơi kích thước vẫn giữ nguyên.

• 3GT tính năng được hỗ trợ đến 16 GB RAM.

• IMAGE_FILE_LARGE_ADDRESS_AWARE tiếp tục làm việc.

• "Vâng biết" địa chỉ hạt nhân vẫn còn lại trong cùng một địa điểm.


Tuy nhiên, cẩn thận trình điều khiển thiết bị phát triển vẫn còn cần thiết. Thiết bị phần cứng nên có khả năng hoặc DAC-64-bit có khả năng với các trình điều khiển LME; nếu không, các thiết bị có chức năng như "di sản" 32-bit, và sẽ được tăng gấp đôi buffered, với hiệu suất tương đối thấp hơn.

Mặc dù đôi đệm có thể có tác động tương đối nhỏ (tỷ lệ phần trăm điểm duy nhất) trên hệ thống 8 GB, điều này là đủ để tác động I / O cho các nhiệm vụ chuyên sâu như hoạt động cơ sở dữ liệu. Điều này cũng phụ thuộc vào một số yếu tố ngoài tầm kiểm soát của Microsoft, như thiết kế phần cứng và tối ưu hóa điều khiển thiết bị như gián đoạn kiểm duyệt và sử dụng hiệu quả của PCI bus. Theo số lượng tăng bộ nhớ vật lý, do đó, không tác động hiệu quả tiêu cực so với DAC/64-bit trình điều khiển thiết bị và LME.

Trở về đầu trang
Nguyên tắc chung cho LME Drivers
Các hướng dẫn sau thất bại trong việc ngăn chặn viện trợ driver LME:

• Không sử dụng PVOID64. Sử dụng PVOID64 bất cứ nơi nào sẽ trở lại thông tin không chính xác, bởi vì cuộc gọi này không trả về thông tin hợp lệ trên nền tảng kiến trúc Intel. Thay vào đó, sử dụng PHYSICAL_ADDRESS.

Lưu ý: Điều này không áp dụng cho miniports NDIS. Ngoài ra, miniports, như USB và những người khác có hiệu suất tương đối thấp, không cần phải được viết lại để được LME, bởi vì đạt được hiệu suất hoặc mất mát là không đáng kể. Những miniports, tuy nhiên, chính xác nên sử dụng hạt nhân các giao diện cho Windows và không cố gắng lừa hệ điều hành bằng cách sử dụng không được hỗ trợ cung cấp tài liệu và các phím tắt.

• Không gọi MmGetPhysicalAddress () vào một bộ đệm bị khóa, loại bỏ 32 bit cao, và sau đó chương trình adapter để DMA vào địa chỉ kết quả. Điều này chắc chắn sẽ kết quả trong bộ nhớ bị hỏng, bị mất I / O, và sự thất bại của hệ thống. Nếu cuộc gọi này được thực hiện, đảm bảo rằng tất cả các thông tin địa chỉ trả lại được sử dụng và điều khiển các hoạt động chính xác với địa chỉ 64-bit.

• Không sử dụng PVOID khi thao tác với các địa chỉ vật lý. Bởi vì PVOID chỉ 32 bit, địa chỉ truncation sẽ diễn ra tham nhũng và bộ nhớ sẽ được kết quả.

• Không sử dụng ULONG khi thao tác với các địa chỉ vật lý, bởi vì điều này có chính xác đề phòng và hành vi như PVOID: hệ thống thất bại.

• Không chỉ hỗ trợ cho scatter / tập hợp tại DEVICE_DESCRIPTION khi không đúng trong một nỗ lực để tránh đệm cung cấp bởi HAL (the "Sổ đăng ký bản đồ").

• Nếu trình điều khiển không thể hỗ trợ 64-bit địa chỉ, không gọi (...) IoMapTransfer mà không cần một AdapterControl (...) chức năng (một lần nữa, để tránh đăng ký lập bản đồ), và không cung cấp số không làm giá trị cho MapRegisterBase. Điều này sẽ thất bại.


Các chức năng khác và có thể gây ra các cuộc gọi thất bại. Thông tin này được cung cấp trong Windows DDK.

Trở về đầu trang
Hướng dẫn đối với NDIS Miniports và SCSI Miniports
Hướng dẫn đối với NDIS Miniports trên PAE Systems
Card mạng có địa chỉ 64-bit có khả năng nên:

• Sử dụng scatter NDIS / DMA mô hình tập hợp.
Miniports cần gọi NdisMInitializeScatterGatherDma với Dma64Addresses = TRUE.

• Sử dụng các mô hình trình điều khiển deserialized NDIS miniport.
Miniports nên deserialized cho hiệu năng tối ưu trên Windows Datacenter và hoạt động nâng cao hệ thống máy chủ.


Xem các mục nhập cho NdisMInitializeScatterGatherDma trong tài liệu DDK.

Nguyên tắc chung
Sau đây cần lưu ý cho miniports NDIS:

• Chia sẻ bộ nhớ cấp phát bằng cách sử dụng NdisMAllocateSharedMemory là bảo đảm không để vượt qua ranh giới một 4 GB.

• NDIS_PER_PACKET_INFO_FROM_PACKET (ScatterGatherListPacketInfo) sẽ không bao giờ trở lại NULL cho miniports có hỗ trợ scatter / gather DMA.

• Các dãy địa chỉ vật lý được chỉ định bởi SCATTER_GATHER_ELEMENT sẽ không qua một 4-GB ranh giới. Nếu một bộ đệm bộ nhớ ảo không qua một 4-GB ranh giới, nó sẽ được chia thành hai scatter / tập hợp các yếu tố.


Hướng dẫn cho 32-Bit Địa chỉ-Chỉ Thiết bị mạng
Các nguyên tắc sau đây được khuyến khích cho 32-bit địa chỉ duy nhất các thiết bị mạng:

• đúng bằng văn bản trình điều khiển NDIS sẽ làm việc như-là trên các hệ thống PAE, nhưng sẽ có tác động đáng kể hiệu quả tiêu cực rằng tăng trưởng là tăng số lượng RAM cài đặt.

• NdisMStartBufferPhysicalMapping sẽ sao chép tất cả các mảnh vỡ trên không gian địa chỉ 4 GB để nhớ rằng dưới đây là những dấu GB 4.


Hướng dẫn cho 64-bit Địa chỉ-Có khả năng SCSI Miniports
(bao gồm tất cả các card có liên quan cho SCSI 2)

Các nguyên tắc sau đây được khuyến khích cho 64-bit địa chỉ SCSI có khả năng miniports:

Miniports • cần hỗ trợ scatter-tập hợp DMA. Họ không phải gọi bất kỳ slave-mode DMA thói quen: ScsiPortFlushDma hoặc ScsiPortIoMapTransfer.

• Miniports nên kiểm tra giá trị của Dma64BitAddresses trong PORT_CONFIGURATION_INFORMATION để xác định liệu 64-bit địa chỉ vật lý được hỗ trợ. Nếu 64-bit địa chỉ vật lý được hỗ trợ, các miniport nên thay đổi kích thước mở rộng của nó vào tài khoản cho các phóng địa chỉ vật lý (nếu cần) và thiết lập các lĩnh vực Dma64BitAddresses để SCSI_DMA64_MINIPORT_SUPPORTED trước khi gọi ScsiPortGetUncachedExtension.

• Miniports không phải cố gắng truy cập dữ liệu bộ đệm bằng cách sử dụng các địa chỉ ảo trừ khi họ đã cài bit MapBuffers trong cơ cấu PORT_CONFIGURATION_INFORMATION. Các trường hợp ngoại lệ cho quy tắc này là CẦU và hoạt động REQUEST_SENSE rằng sẽ luôn có một địa chỉ hợp lệ ảo.

• Sử dụng SCSI_PHYSICAL_ADDRESS để truy cập vào tất cả các địa chỉ vật lý.

• Uncached phần mở rộng và phần mở rộng SRB sẽ không qua 4 GB ranh giới.

• Không scatter / tập hợp phần tử sẽ vượt 4 GB ranh giới.


Hướng dẫn đối với Legacy SCSI Miniports
Các nguyên tắc sau đây được đề nghị cho di sản miniports SCSI:

Miniports • cần hỗ trợ scatter / gather DMA. Họ không phải gọi bất kỳ slave-mode DMA thói quen: ScsiPortFlushDma hoặc ScsiPortIoMapTransfer.

• Miniports không phải cố gắng truy cập dữ liệu bộ đệm bằng cách sử dụng các địa chỉ ảo trừ khi họ đã cài bit MapBuffers trong cơ cấu PORT_CONFIGURATION_INFORMATION. Các trường hợp ngoại lệ cho quy tắc này là CẦU và hoạt động REQUEST_SENSE rằng sẽ luôn có một địa chỉ hợp lệ ảo.

• Miniports không nên đặt bit MapBuffers trừ khi hoàn toàn cần thiết, bởi vì việc cung cấp địa chỉ hợp lệ cho một ảo 32-bit, lái xe trên một hệ thống LME là tốn kém.


Trở về đầu trang
Việc tạo và thử nghiệm LME Drivers
Sử dụng các trạm kiểm soát sau đây để tạo và thử nghiệm LME trình điều khiển:

• Không cố gắng thêm nhiều tính năng vào trình điều khiển khi sửa đổi nó cho một hệ thống bộ nhớ lớn. Thay vào đó, sửa đổi các lái xe ít nhất có thể để đảm bảo khả năng LME.

• Luôn luôn sử dụng phiên bản mới nhất của phần cứng tương thích Kiểm tra (HCT) cung cấp tại: http://www.microsoft.com/whdc/DevTools/HCTKit.mspx.

• Kiểm tra cả trên hệ thống có lớn hơn 4 GB bộ nhớ vật lý và trên hệ thống có ít hơn 4 GB bộ nhớ hệ thống, sử dụng tất cả các công cụ có sẵn từ Microsoft.

• Kiểm tra trình điều khiển di sản để đảm bảo không có nạn tham nhũng do sử dụng không đúng của cuộc gọi như MmGetPhysicalAddress.

• Kiểm tra đặc biệt cho các hệ thống PAE. Điều này đòi hỏi một bộ nhớ RAM tối thiểu cài đặt của 6 GB.

• Kiểm tra việc sử dụng chuyển đổi NOLOWMEM trong file Boot.ini:

• Bảo lãnh một vật lý 64-bit địa chỉ trên 4 GB.

• Hides trang dưới đây 4 GB.

• Fills trang dưới đây 4 GB với mô hình duy nhất.
Task Manager sẽ hiển thị trừ RAM tổng số khoảng ~ 4 GB.


• Kiểm tra việc sử dụng / 3GB chuyển đổi cùng một lúc

• Thay đổi môi trường bộ nhớ hạt nhân và cho thấy nhiều vấn đề với trình điều khiển

• Giảm bộ nhớ hạt nhân không gian đến 1 GB


• Kiểm tra việc sử dụng các thiết lập registry MEM_TOP_DOWN
Điều này phân bổ cho tất cả các lực lượng bộ nhớ được cấp phát từ trên xuống, thay vì dưới đáy bình thường lên.
Set HKLM System CurrentControlSet Control Session Manager Memory Management AllocationPreference REG_DWORD = 0x100000

• Thử nghiệm bằng cách sử dụng DevCtl, được cung cấp với HCT là:

• Cố ý tấn công các trình điều khiển thông qua IOCTLs.

• Các xét nghiệm ngoại lệ xử lý và chế độ thất bại, và bài kiểm tra đột xuất nhập cảnh vào các điểm trình điều khiển.

• Các câu hỏi với bộ đệm quá nhỏ để chứa trả về.

• Kiểm tra IOCTL / FSCTL cho:
- Thiếu, nhỏ, hoặc rác bộ đệm
- Dữ liệu thay đổi không đồng bộ
- Tình trạng con trỏ
- Buffer lập bản đồ thay đổi không đồng bộ.

• Các vấn đề yêu cầu cả hai đồng bộ và không đồng bộ với điện thoại.

• Các xét nghiệm IRP hủy bỏ, sự chậm trễ và nulls

• Kiểm tra rò rỉ, pooltag, và thông tin lookaside.


• Thử nghiệm bằng cách sử dụng Driver Verifier (được cung cấp với Windows):

• Tất cả phân bổ bơi được cách ly để kiểm tra tham nhũng.

• Các xét nghiệm bằng cách sử dụng bộ nhớ cực áp lực - bất cứ khi nào IRQL hoặc spinlock là mua, hãy thử vào trang ra trình điều khiển; bắt lỗi gây tử vong.

• Tất cả spinlock, IRQL và yêu cầu hồ bơi và phát hành rộng rãi là lỗi kiểm tra: bản phát hành gấp đôi spinlocks, sử dụng các biến uninitialized, các hình thức tham nhũng, hồ bơi, vv.



Trở về đầu trang
Gỡ rối DAC Hỗ trợ và LME Drivers
Các điểm kiểm tra sau đây có thể giúp các OEM, IHVs và khách hàng xác định xem có bất kỳ vấn đề liên quan đến hệ thống tàu, xe buýt, hoặc trong việc hỗ trợ các adapter DAC và LME.

• Nếu trình điều khiển không thành công lúc khởi tạo, kiểm tra với hệ thống OEM để xác định xem tất cả các xe buýt PCI hiện diện trong DAC hỗ trợ hệ thống.

• Nếu một trình điều khiển card mạng thực hiện một kiểm tra lỗi ngay sau khi kết nối mạng, xác định xem tất cả các xe buýt hỗ trợ DAC, một lần nữa bằng cách kiểm tra với các OEM.

• Nếu xe buýt PCI trên hệ thống có khả năng là tất cả DAC, kiểm tra xem các thiết bị phần cứng tương thích với PCI 2.1.

• Nếu xe buýt hỗ trợ DAC và thiết bị được PCI 2,1 compliant, kiểm tra các trình điều khiển cho các giả định đang được thực hiện về các địa chỉ vật lý.


Tài liệu này được cung cấp trong Windows DDK về bộ nhớ hỗ trợ PAE. Một bản tóm tắt các thông tin cho khách hàng được bao gồm trong các phần sau.

Yêu cầu phần cứng cho PAE
Hệ thống phải đáp ứng các yêu cầu tối thiểu sau đây:

• x86, bộ vi xử lý Pentium Pro hoặc mới hơn

• Hơn 4 GB RAM

• 450 NX hoặc chipset tương thích và hỗ trợ, hoặc sau này


Việc kích hoạt PAE
Để kích hoạt PAE:

• Xác định vị trí tập tin Boot.ini, mà là điển hình trong thư mục gốc (ví dụ: C: /) và gỡ bỏ Read-Only của nó và thuộc tính ẩn.

• Mở file Boot.ini với một trình soạn thảo văn bản, và sau đó thêm vào / PAE tham số đường dẫn ARC, như trong ví dụ sau:

đa (0) disk (0) rdisk (0) partition (2)
WINDOWS = "Windows? Datacenter Server" / PAE / basevideo / sos


• Trên menu File, nhấn Save.

• Khôi phục các thuộc tính Read-Only cho file Boot.ini.


Gỡ rối chương trình cụ thể
Sau đây là hai ví dụ của các vấn đề có thể xảy ra, với các giải pháp này sẽ khắc phục được vấn đề.

Vấn đề: Các máy tính sẽ không bắt đầu sau khi được kích hoạt PAE.

Nguyên nhân: phần cứng của bạn không được hỗ trợ PAE.

Giải pháp: Bắt đầu của hệ thống và chạy chế độ Safe Mode, mà vô hiệu hóa PAE. Sau đó, loại bỏ các / PAE tham số từ tập tin Boot.ini.

Để chạy chế độ Safe Mode:

1.
Khi bạn xem thông điệp "Hãy chọn hệ điều hành để bắt đầu," F8.

2.
Sử dụng các phím mũi tên để chọn các tùy chọn Safe Mode thích hợp, và sau đó nhấn Enter.
Để sử dụng các phím mũi tên trên bàn phím số để chọn bài, NumLock phải được tắt.


Vấn đề: Sau khi PAE được kích hoạt, máy tính chạy một thời gian sau đó sẽ hiển thị một thông báo lỗi Stop.

Nguyên nhân: phần cứng của bạn không được hỗ trợ PAE.

Giải pháp: Liên hệ với nhà bán phần cứng của bạn để cập nhật các trình điều khiển. Nếu phần cứng hay trình điều khiển của bạn không có khả năng hỗ trợ PAE, PAE vô hiệu hóa bằng cách loại bỏ các tham số PAE / trong file Boot.ini. Nếu bạn phải vô hiệu hoá PAE nhưng bộ xử lý hệ thống của bạn hỗ trợ phần cứng thi hành DEP, thêm / NOPAE / noexecute = alwaysoff vào tập tin Boot.ini của bạn. Lưu ý: Điều này sẽ vô hiệu hóa tính năng DEP trên máy tính của bạn.

Trở về đầu trang
Kêu gọi hành động cho LME và DAC Có khả năng Thiết bị
Các nhà phát triển Driver • nên làm theo các hướng dẫn trong bài viết này để đảm bảo rằng thiết bị của họ đang LME và DAC có khả năng.

• Hệ thống sản xuất phải đảm bảo rằng chỉ DAC-xe buýt có khả năng được bao gồm trong bất kỳ hệ thống thiết kế nhằm hỗ trợ khả năng bộ nhớ lớn.

• Yêu cầu đối với khả năng bộ nhớ lớn được định nghĩa trong Microsoft Windows Logo Program Requirements Hệ thống và thiết bị.
Chat Facebook (8h-22h)
Chat Zalo (8h-22h)
098.2266.568 (8h-22h)