Cập nhật mã bộ xử lý Intel cho tôi. Cập nhật vi mã CPU trong AMI BIOS hoặc ví dụ về cách làm việc với MMTool. Giới thiệu về bản cập nhật này

Xin chào các bạn thân mến, Artyom ở bên bạn.

Trở lại tháng 1 năm nay, đã xuất hiện các báo cáo về các lỗ hổng phần cứng mới trong bộ xử lý Intel và AMD.

Cách đây không lâu, các bản cập nhật vi mã cho bộ xử lý Intel (phiên bản 84) đã được phát hành và tôi quyết định kiểm tra xem mọi thứ trên thực tế như thế nào.

Dù thông tin này đã được mọi người biết từ lâu nhưng tôi vẫn kể cho các bạn nghe một câu chuyện ngắn gọn.

Các lỗ hổng phần cứng bộ xử lý được gọi là Meltdown và Spectre và chúng được xác định bởi các nhà nghiên cứu từ nhóm Google Project Zero.

Spectre có hai biến thể tấn công có tên mã CVE-2017-5753 và CVE-2017-5715.

Meltdown có một biến thể tấn công có tên mã CVE-2017-5754.

P. S. CVE là viết tắt của tiếng Anh " Chung Lỗ hổng Phơi nhiễm» – cơ sở dữ liệu về các lỗ hổng bảo mật thông tin nổi tiếng.

Nhìn thấy những ký hiệu này để mô tả bản vá, bạn sẽ hiểu ngay là gì và tại sao.

Hơn nữa, cách dễ dàng nhất để vận hành trong thực tế là Meltdown, điều mà tất cả các bộ xử lý Intel hiện đại đều dễ mắc phải.

Để thoát khỏi Meltdown, bạn cần cập nhật vi mã bộ xử lý hoặc vá nhân hệ điều hành.

Mặt khác, Spectre khó thực hiện hơn nhưng việc khắc phục lỗ hổng đòi hỏi phải vá riêng từng chương trình bạn sử dụng.

Các chip của AMD ít bị ảnh hưởng bởi các lỗ hổng loại Meltdown hơn (mặc dù ban đầu người ta tuyên bố rằng chúng không hề dễ bị tổn thương).

Loại mã độc này chạy cực kỳ chậm trên chúng nhưng vẫn hoạt động.

Cả bộ xử lý AMD và Intel đều dễ bị tổn thương kiểu Spectre; không có lựa chọn nào ở đây.

Các bộ xử lý có kiến ​​trúc ARM cũng dễ gặp phải các lỗ hổng tương tự, nhưng bây giờ chúng ta sẽ chỉ nói về các máy tính có bộ xử lý thuộc họ x86-64.

P. S. Nghiên cứu bảo mật không bao giờ dừng lại và thứ khác luôn có thể xuất hiện, kể cả trong bộ xử lý AMD và Intel.

Lưu ý quan trọng! Trong khi video đang được chỉnh sửa và tài liệu đồng hồ đang được viết cho trang web, nghiên cứu mới đã xuất hiện trong lĩnh vực bảo mật bộ xử lý.

Các biến thể mới của lỗ hổng Spectre đã được xác định, có tên mã CVE-2018-3640 (được gọi là biến thể tấn công 3a) và CVE-2018-3639 (biến thể tấn công 4).

Hãy để tôi nhắc bạn rằng Spectre có thể được khắc phục bằng cách cập nhật phần mềm được sử dụng, chẳng hạn như trình duyệt, v.v.

Tuy nhiên, biến thể mới nhất của cuộc tấn công CVE-2018-3639 cũng sẽ yêu cầu cập nhật vi mã bộ xử lý trên chip Intel, điều này có thể làm giảm hiệu suất một chút.

AMD tuyên bố rằng chip của công ty sẽ không yêu cầu vi mã mới từ các cuộc tấn công này và mọi thứ sẽ hoạt động bình thường với các bản vá Windows thông thường và phần mềm khác.

Những lỗ hổng này có mức độ đe dọa thấp đối với các máy tính gia đình thông thường.

Vì chưa có bản cập nhật mới nên tôi sẽ tập trung vào chủ đề ban đầu của video của mình.

Chúng ta sẽ nói về vi mã của bộ xử lý Intel, nhưng vi mã vẫn khác và không sửa được biến thể tấn công Spectre 4.

Nếu bạn sử dụng hệ điều hành Windows, những liên kết này sẽ hữu ích cho bạn:

Tại đây bạn có thể tìm thấy tất cả các bản vá hiện tại (và tên của chúng) giúp khắc phục các lỗ hổng của nhóm này.

Ví dụ: bản vá đầu tiên dành cho Windows 10 đã được phát hành vào ngày 3 tháng 1 năm 2018 với tên KB4056892.

Tuy nhiên, có một vấn đề ở chỗ các bản vá phần mềm Meltdown đã làm giảm hiệu suất của các hệ thống dựa trên Intel.

Không hiểu sao tôi không có thời gian rảnh để thực hiện những bài kiểm tra nhỏ của riêng mình.

Tuy nhiên, bây giờ với việc phát hành các phiên bản phần sụn mới cho bo mạch chủ, tôi bắt đầu tự hỏi mọi thứ trong lĩnh vực này như thế nào.

Tôi sử dụng bo mạch chủ ASRock Z370 Gaming K6 và theo đó tôi truy cập trang web chính thức của nhà sản xuất để tải xuống BIOS mới nhất.

Vi mã cập nhật cho bộ xử lý Intel đã xuất hiện trong phiên bản BIOS 1.60, được phát hành vào ngày 2 tháng 3 năm 2018.

Tôi sẽ cài đặt phiên bản BIOS 1.80 mới hơn, được phát hành vào ngày 26 tháng 3 năm 2018.

Để bắt đầu, tôi quan tâm đến việc thử nghiệm các bản sửa lỗi cho vi mã bộ xử lý mà không cần các bản vá phần mềm bổ sung.

Hệ điều hành là Windows 10 phiên bản 16299.371 không có bản vá cài đặt bổ sung cho các lỗ hổng phần cứng Meltdown và Spectre.

P. S. Mọi kết luận được rút ra sẽ chỉ áp dụng cho bộ xử lý Intel mới, vì phiên bản BIOS mới khó có thể xuất hiện cho bo mạch chủ cũ.

Nếu quan tâm, bạn có thể thực hiện kiểm tra bằng các bản vá phần mềm trên bộ xử lý Intel cũ hơn.

Cấu hình đầy đủ của máy mình:

CPU: Intel Core i5 8600K.

Mát hơn bộ xử lý: Tủ đông chất lỏng làm mát Bắc Cực 240.

bà mẹ chi trả: ASRock Fatal1ty Z370 Gaming K6.

hoạt động ký ức: GoodRam Iridium DDR4 2400 MHz (2×8 GB IR-2400D464L15S/8G).

Thẻ video: Asus Dual GTX 1060 6GB (DUAL-GTX1060-O6G).

Ổ đĩa: SSD Plextor Sata-3 M5S và HDD Sata-3 Seagate 1 TB (ST1000DM003).

Khung: Thiết kế Fractal Xác định R5.

Khối dinh dưỡng: Thiết kế Fractal Edison M 750 Watt.

Thử nghiệm đầu tiên là hiệu năng của bộ nhớ đệm CPU và RAM trongAida 64 Bộ nhớ đệm & Ký ức Điểm chuẩn.

Như bạn có thể thấy, không có sự khác biệt đáng kể nào trong hoạt động của hệ thống con RAM và bộ nhớ đệm của bộ xử lý.

Thử nghiệm tiếp theo liên quan đến hoạt động của hệ thống con đĩa.

Thật không may, tôi không có ổ SSD M.2 tốc độ cao, vì vậy tôi sẽ kiểm tra Plextor M5S của mình trên SATA-3 thông thường.

Kết quả là bài kiểm tra ATTO Disk Benchmark cho kết quả gần như giống hệt nhau.

Điều tương tự cũng áp dụng cho hiệu suất trong bài kiểm tra CrystalDiskMark 5.2.1.

Kiểm tra hiệu năng trong CrystalDiskMark và vi mã bộ xử lý Intel mới. Bóng ma và sự tan chảy

Ít nhất đối với SATA-3, hiệu suất không bị giảm trong quá trình đọc và ghi.

Thử nghiệm tiếp theo là 7zip, sẽ hiển thị hiệu suất khi đóng gói và giải nén các kho lưu trữ.

Hình ảnh tương tự được quan sát ở đây; không có sự khác biệt về hiệu suất khi cài đặt BIOS mới đã được sửa.

Vì tôi là người sáng tạo nội dung nên tôi không thể bỏ qua việc chỉnh sửa video.

Tôi sử dụng Vegas Pro 13 làm chương trình chỉnh sửa của mình và bất kể phiên bản BIOS nào được sử dụng, thời gian kết xuất không thay đổi.

Nguồn video có độ phân giải 1080p, tốc độ bit 50 Megabit/s và tốc độ khung hình 50 khung hình mỗi giây.

Sony AVC/MVC với tốc độ bit 16 Megabit/s đã được chọn làm cấu hình hiển thị; bạn có thể xem tất cả các cài đặt cấu hình khác trên màn hình của mình.

Bây giờ hãy nói một chút về trò chơi.

Các thử nghiệm liên quan đến các dự án được cài đặt trên máy tính của tôi tại một thời điểm nhất định (Assassin's Creed Origins, FarCry 4 và Crysis 3).

Tất cả các chỉ số khung hình được chụp bằng MSI Afterburner 4.4.2.

Nói chung kết quả không cần bình luận.

Kiểm tra hiệu năng trong trò chơi Assassin's Creed Origins. Bóng ma và sự tan chảy

Nếu bạn sử dụng phiên bản mới của vi mã bộ xử lý sau bản sửa đổi 84, thì bạn sẽ không thể nhận thấy sự khác biệt về hiệu suất - mọi thứ đều hoạt động nhanh chóng và thông minh.

Điều thú vị duy nhất là xem ổ SSD M.2 với giao diện NVMe hoạt động như thế nào.

Có lẽ trong tương lai tôi sẽ tiến hành một loạt thử nghiệm nữa với các bản vá phần mềm cho Windows 10 và với vi mã CPU đã sửa được cài đặt cùng lúc.

Tôi hy vọng bạn thấy nó thú vị. Nếu vậy thì hãy chia sẻ bài đăng của tôi trên mạng xã hội với bạn bè của bạn.

Bằng cách này sẽ có nhiều ghi chú như vậy hơn :)

Ngoài ra, đừng quên tham gia nhóm VKontakte và đăng ký kênh YouTube.

Mua bo mạch chủ Intel DG965SS trên Aliexpress (có đầu nối LGA775). Tất nhiên, bạn có thể tự mình chuyển đổi LGA771 thành LGA775, nhưng với mức giá 6,5 đô la cho mỗi bộ xử lý, việc mua nó từ Trung Quốc sẽ dễ dàng hơn nhiều.

Khi sử dụng Intel Xeon 5320, hệ điều hành Windows 10 chỉ bắt đầu hoạt động khi chế độ "Ghép kênh lõi" bị tắt trong BIOS (không giống như Ubuntu 17.10 hoạt động hoàn hảo). Đồng thời, bộ xử lý chỉ hoạt động ở chế độ đơn luồng nên theo thử nghiệm CPU-Z, hiệu năng ở chế độ đa luồng thấp hơn 2 lần so với bộ đôi Intel Core 2 E6300 mà Xeon mua về thay thế.

Hóa ra các vi mã bộ xử lý cần được cập nhật. Bạn có thể thực hiện việc này ở chế độ phần mềm và trong Ubuntu, thao tác đơn giản hơn nhiều so với trong Windows 10. Và ở chế độ sau, bạn cần đảm bảo rằng các vi mã được cập nhật mỗi khi bạn khởi động. Cũng có thể cập nhật các vi mã trong BIOS, ít nhất là ở một số BIOS từ AWARD, AMI, Phoenix, đặc biệt là ở các phiên bản trước UEFI.

Có ít hướng dẫn hơn cho bo mạch chủ Intel. Và không có gì ngạc nhiên. Tôi đã phải mày mò rất nhiều với Intel DG965SS.

Trước khi cập nhật vi mã, bạn cần cài đặt bộ xử lý mà chúng tôi muốn hỗ trợ. Nếu bạn cần cài đặt bộ xử lý khác, quy trình sẽ phải được lặp lại.

Một số hướng dẫn gợi ý tạo một đĩa mềm có khả năng khởi động, bởi vì... Không phải tất cả các máy tính đều cho phép bạn khởi động vào ổ đĩa flash. Tôi đã tạo một ổ flash USB có khả năng khởi động bằng FreeDOS bằng ứng dụng nguồn mở miễn phí Rufus (để thực hiện việc này, hãy chọn hộp kiểm “Tạo đĩa có khả năng khởi động bằng cách sử dụng” và chọn “FreeDOS” từ danh sách).

Kể từ đầu tháng 1, thật khó để bỏ lỡ tin tức liên quan đến lỗ hổng phần cứng Spectre và Meltdown - chủ đề này hóa ra lại rất nghiêm trọng và toàn diện. Mặc dù các nhà sản xuất đã nhận thức được những vấn đề này từ mùa hè năm ngoái nhưng hầu hết dường như chỉ bắt đầu phản hồi sau khi nhóm Project Zero của Google công bố thông tin chi tiết.

Ví dụ: hồi tháng 1, trong số các bản vá khác, Intel đã phát hành bản cập nhật vi mã chống lại Spectre cho các bộ xử lý Broadwell, Haswell, Skylake, Kaby Lake và Coffee Lake. Nhưng gần như ngay lập tức người ta thấy rõ rằng chúng dẫn đến thất bại và. Ban đầu, Intel cho biết sự cố chỉ ảnh hưởng đến chip Broadwell và Haswell, nhưng sau đó thừa nhận sự tồn tại của trục trặc trên các máy tính sử dụng bộ vi xử lý Skylake, Kaby Lake và Coffee Lake và các đối tác cũng như người dùng hiện tại sẽ không cài đặt các bản vá. Cuối cùng, vào đầu tháng 2, một phiên bản sửa lỗi của vi mã đã xuất hiện nhưng chỉ dành cho chip tiêu dùng dành cho thiết bị di động và máy tính để bàn thuộc dòng Skylake.

Giờ đây, sau một tháng thử nghiệm chuyên sâu và thử nghiệm các bản vá của Intel và các đối tác, đã đến lúc dành cho các bộ xử lý ít nhiều hiện tại: các bản cập nhật vi mã đã được phát hành cho các chip dựa trên kiến ​​trúc Kaby Lake và Coffee Lake, cũng như Skylake. nền tảng dựa trên không bị ảnh hưởng bởi bản cập nhật trước đó. Chúng ta đang nói về bộ xử lý Intel Core i thế hệ thứ 6, 7 và 8, cũng như các dòng Core X, Xeon Scalable và Xeon D mới nhất.

Trong hầu hết các trường hợp, vi mã mới sẽ có sẵn thông qua việc phát hành phần sụn mới của OEM cho bo mạch chủ và máy tính xách tay. Intel vẫn khuyến khích mọi người liên tục cập nhật hệ thống của họ lên các phiên bản mới nhất và cũng xuất bản một tài liệu trong đó mô tả trạng thái sửa lỗi vi mã tương tự cho các sản phẩm khác của mình, bao gồm cả các chip trước đó bắt đầu với Core 2 45 nm. , các bản vá chỉ đang được lên kế hoạch, đối với những người khác, chúng đang ở trạng thái thử nghiệm sớm, đối với những người khác, chúng đã tồn tại ở dạng phiên bản beta. Thông thường, kiến ​​trúc càng cũ thì sẽ nhận được firmware chống Spectre càng muộn. Tuy nhiên, các bản cập nhật vi mã cho các kiến ​​trúc Sandy Bridge, Ivy Bridge, Haswell và Broadwell hiện tại ít nhiều đã ở giai đoạn thử nghiệm beta. Ngoài ra, một số chip Atom và thậm chí cả bộ tăng tốc Xeon Phi cũng đã nhận được bản vá.

Intel nhắc lại rằng có các phương pháp khác để chống lại các lỗ hổng được phát hiện trong bộ phận dự đoán nhánh trong các bộ xử lý hiện đại. Ví dụ: Retpoline, được Google phát triển để chống lại Spectre CVE-2017-5715 (tiêm mục tiêu nhánh hoặc tiêm mục tiêu vào một nhánh). Đối với những người quan tâm muốn biết thêm thông tin về Retpoline và cách thức hoạt động của nó, công ty đã xuất bản một báo cáo kỹ thuật đặc biệt.

Các bản cập nhật vi mã chống Spectre của Intel sẽ bắt đầu được tung ra dưới dạng chương trình cơ sở BIOS mới cho nhiều bo mạch chủ khác nhau trong những ngày và tuần tới. Tôi tự hỏi liệu chúng có ảnh hưởng thêm đến sự suy giảm hiệu suất của hệ thống cuối không?

Trên thực tế, có thể tìm thấy phương pháp, thiết bị và vi mã ban đầu (trực tiếp hướng dẫn AMI) và trong hầu hết các trường hợp, việc sử dụng phương pháp này không gây ra bất kỳ vấn đề gì và không có cạm bẫy, nhưng trong thực tế, tôi thường xuyên gặp phải vấn đề sau:

Những thứ kia. thiếu không gian trống bên trong hình ảnh. Khi bạn tự sửa đổi BIOS cho một bộ xử lý cụ thể, bạn có thể bỏ qua điều này, bởi vì Bạn luôn có thể chỉ tải một vi mã dành riêng cho bộ xử lý của mình hoặc xóa một số vi mã cũ để giải phóng dung lượng, nhưng khi sửa đổi bằng một luồng, bạn cần tìm giải pháp khác, một sự thỏa hiệp.

Để thỏa hiệp, tôi đã chọn giải pháp sau - chúng tôi sử dụng các phiên bản vi mã mới nhất cho tất cả bộ xử lý thuộc thế hệ CORE trong mọi thiết kế (Celeron E, Pentium E, Core 2 Duo, Core 2 Quad, Xeon *3xxx/*5xxx) và thay thế bằng chúng mọi thứ trước đây . Bộ vi mã hóa ra như sau:

Dung lượng của bộ này chỉ là 76 kilobyte. Tệp này có được bằng cách kết hợp các tệp này:

cpu00010676_plat00000001_ver0000060f_date20100929.bin
cpu00010676_plat00000004_ver0000060f_date20100929.bin
cpu00010676_plat00000010_ver0000060f_date20100929.bin
cpu00010676_plat00000040_ver0000060f_date20100929.bin
cpu00010677_plat00000010_ver0000070a_date20100929.bin
cpu0001067a_plat00000011_ver00000a0b_date20100928.bin
cpu0001067a_plat00000044_ver00000a0b_date20100928.bin
cpu000006f2_plat00000001_ver0000005d_date20101002.bin
cpu000006f6_plat00000001_ver000000d0_date20100930.bin
cpu000006f6_plat00000004_ver000000d2_date20101001.bin
cpu000006f7_plat00000010_ver0000006a_date20101002.bin
cpu000006f7_plat00000040_ver0000006b_date20101002.bin
cpu000006fb_plat00000001_ver000000ba_date20101003.bin
cpu000006fb_plat00000004_ver000000bc_date20101003.bin
cpu000006fb_plat00000010_ver000000ba_date20101003.bin
cpu000006fb_plat00000040_ver000000bc_date20101003.bin
cpu000006fd_plat00000001_ver000000a4_date20101002.bin

Bản thân quy trình sửa đổi cũng đã thay đổi một chút và trở nên nhanh hơn, nếu không muốn nói là dễ dàng hơn:

Bước 1— mở ảnh BIOS trong chương trình MMTool:



Bước 2— để kiểm tra, hãy chuyển đến tab cuối cùng (CPU PATCH) và xem số lượng vi mã. Ví dụ ở đây có 31 trong số đó:

Bước 3— đi tới tab Thay thế và tìm mục “Mã vi mô P6” trên đó:

Bước 4— sau khi chọn mục “P6 Micro Code”, nhấn nút Ikshtsyu, chọn tệp ncpucode.bin được mô tả ở trên và thay thế bằng nút Thay thế:





Bước 5— để kiểm tra, hãy chuyển đến tab cuối cùng (CPU PATCH) và xem số lượng vi mã. Sau khi thay thế các vi mã, vẫn còn 17 vi mã, phiên bản mới nhất:

Không có sự khác biệt cơ bản nào với quy trình sửa đổi được mô tả trên delidded.com. Trong hầu hết các trường hợp, đầu ra chắc chắn không giống nhau, nhưng bộ xử lý nhận được vi mã cần thiết. Về khía cạnh tích cực chủ quan, tôi chỉ muốn thu hút sự chú ý đến thực tế là các vi mã cho tất cả các bộ xử lý hiện tại được đảm bảo cập nhật, có thể là “dân sự” hoặc “máy chủ” và thực tế không có nguy cơ nhận được thông báo về thiếu không gian. Mặc dù, trong thực tế của tôi, ngay cả đối với một bộ vi mã như vậy cũng không có đủ dung lượng đôi khi, nhưng điều này xảy ra với BIOS dành cho bo mạch ECS P4M900T-M và ECS P4M900T-M2, thường tương thích với Xeon E5450.

Theo truyền thống, tôi xuất bản một liên kết tới kho lưu trữ bằng các công cụ - (zip, 234KB). Kho lưu trữ chứa một tập tin thực thi MMTOL.exe(phiên bản 3.22 BKMOD), tệp có vi mã cho tất cả bộ xử lý 45/65nm của thế hệ lõi/xeon ncpucode.bin, cũng như hai tập tin 45nm.bin65nm.bin với vi mã chỉ dành cho bộ xử lý 45nm và chỉ dành cho 65nm. Việc sử dụng các tệp này có thể hữu ích trong trường hợp cần giải phóng thêm dung lượng trong BIOS, chẳng hạn như cho phần sụn mới của một số bộ điều khiển, mạng, đĩa, v.v.

!NB: Cả tệp ncpucode.bin lẫn tệp 45nm.bin/65nm.bin đều không hỗ trợ bộ xử lý Pentium 4, Celeron (không có hậu tố chữ cái), bộ xử lý Pentium D, Celeron D và Xeon W (ví dụ Xeon 5080). Đây là những bộ xử lý thế hệ NetBrust.

Tôi xin giới thiệu nhà tài trợ BioStar A740G M2L+ (AMD 740G / SB710) và người nhận BioStar A740G M2+ (AMD 740G / SB700). Bo mạch chủ có chữ “L” là phiên bản mới hơn và chính thức hỗ trợ bộ xử lý AM3, không giống như bo mạch chủ khác, chỉ giới hạn ở việc chỉ hỗ trợ bộ xử lý AM2+. BIOS của họ yêu cầu phân tích so sánh.
Từ văn phòng trang web chúng tôi chỉ tải xuống bản cập nhật chương trình cơ sở BIOS mới nhất cho từng bo mạch chủ sau:
- dành cho phiên bản beta mới nhất của A740G M2+ A74GM916.BSS cho tháng 9 năm 2009
- cho A740G M2L+ - tập tin 74GCU511.BSS- cho tháng 5 năm 2010

Tiếp theo, hãy trang bị cho mình tiện ích MMTOOL (Tôi đã sử dụng phiên bản 3.22, 3.23 và 3.26 - Tôi không tìm thấy bất kỳ sự khác biệt nào trong hoạt động). Để hoạt động với MMTOOL, phần mở rộng của tệp chương trình cơ sở BIOS phải được đổi tên thành *.rom.

Bây giờ chúng tôi khởi chạy hai MMTOOL và tải các tệp chương trình cơ sở từ hai tấm thảm vào chúng. tấm. Chúng tôi chú ý đến các kích thước khác nhau trong cột “Kích thước nguồn” (và tất nhiên là cả trong “Kích thước trong Rom”) của mô-đun 11 “Mã vi mô P6” trong mỗi phần sụn.

Chúng ta vào phần CPU PATCH để so sánh chi tiết:

Tệp nhà tài trợ 74GCU511.rom - cpu_list chứa 14 dòng có hỗ trợ CPURev.ID + 1 trống (Hình 1).

Phiên bản beta của người nhận A74GM916.rom - cpu_list chứa 13 dòng có hỗ trợ CPURev.ID + 1 trống (Hình 2).

Sau khi phân tích danh sách hai BIOS này, có thể thấy rõ rằng đối với bo mạch chủ mới hơn, các nhà phát triển đã sử dụng nhiều bản vá mới hơn cho bộ xử lý AMD, trong đó vi mã của hai dòng có CPURev.ID 1043 và 1062 (ngày 2009/07/31) và một dòng dòng có CPURev đã được sửa .ID 10A0 được thêm vào (ngày 17/02/2010).

Phương pháp số 1 - sửa đổi các dòng đặc biệt.
Ba dòng đặc biệt này được trích xuất từ ​​​​nhà tài trợ 74GCU511.rom - hành động “Trích xuất dữ liệu bản vá” + “Áp dụng” + 1 dòng trống cuối cùng và được lưu trong các tệp riêng biệt.

Đầu tiên, trong phần CPU PATCH của tệp người nhận A74GM916.rom, hai dòng có số CPURev.ID 1043 và 1062 (có vi mã cũ hơn chúng tôi sẽ chèn thêm) và dòng trống cuối cùng sẽ bị xóa - hành động “Xóa bản vá Dữ liệu” + “Áp dụng” ( Hình 3).

Sau đó, vi mã mới hơn từ bốn tệp vá đã nhận trước đó cho CPURev.ID 1043, 1062, 10A0 và một dòng trống sẽ được chèn từng dòng một (Hình 4).

Vui lòng chú ý đến kích thước (“Kích thước nguồn” và “Kích thước trong Rom”) của mô-đun 11 “Mã vi mô P6” trước và sau khi áp dụng những thay đổi này cho tệp người nhận.
Sau khi áp dụng, các kích thước này của người nhận (Hình 6) sẽ giống hệt với kích thước của cùng một mô-đun trong tệp nhà tài trợ 74GCU511.rom (Hình 5).
Điều đáng chú ý là không khó để hiểu kích thước mô-đun được hình thành như thế nào (mỗi dòng trong phần CPU PATCH chiếm 2048 byte).

Tốt hơn là lưu các thay đổi dưới tên tệp mới.
Tiếp theo, file này được kiểm tra để MMTOOL mở lại mà không gặp lỗi.

Phương pháp số 2 - sửa đổi bằng cách thay thế toàn bộ mô-đun.
Trên thực tế, chính xác điều này đã được mô tả trên Internet (ví dụ: một phần).

Trong MMTOOL, chúng tôi tải tệp nhà tài trợ 74GCU511.rom, chuyển đến tab “Trích xuất” và tìm dòng “P6 Micro Code”. Sau đó, chúng tôi chọn nó, trong trường “tệp mô-đun”, chúng tôi đặt tên cho nó là ncpucode.bin và thực thi Trích xuất mô-đun “ở dạng không nén”.

Bây giờ hãy tải tệp người nhận A74GM916.rom vào MMTOOL, chuyển đến tab “Thay thế” và tìm lại dòng “P6 Micro Code”. Chọn nó, đợi Duyệt và chọn mô-đun nhà tài trợ ncpucode.bin của chúng tôi. Bấm vào Thay thế và sau đó đồng ý thay thế mô-đun này.

Một lần nữa, hãy chú ý đến kích thước (“Kích thước nguồn” và “Kích thước trong Rom”) của mô-đun 11 “Mã vi mô P6” trước và sau khi thay thế mô-đun này trong tệp người nhận.
Sau khi áp dụng, các kích thước này của người nhận (Hình 7) sẽ giống hệt với kích thước của cùng một mô-đun trong tệp nhà tài trợ 74GCU511.rom (Hình 5).

Nếu chúng ta so sánh kết quả của cả hai phương pháp (Hình 6 và Hình 7), thì có sự khác biệt đáng chú ý là 10 byte trong địa chỉ RomLoc của mô-đun “Người dùng xác định hoặc dành riêng”, bên cạnh “Mã vi mô P6” được cập nhật mô-đun - có lẽ đây là những tính năng hoạt động của MMTOOL...

Kết luận và lời bạt.
Bằng cách này, từ các phần mềm BIOS khác nhau, thảm khác nhau. trên socket AM2+ (và thậm chí cả AM3 để so sánh), bạn có thể tìm thấy các vi mã mới nhất cho từng loại CPURev.ID, cả trong Award và AMI bios, sau đó kết hợp chúng thành một ncpucode.bin duy nhất.
Sau đó, nó hóa ra có kích thước 32768 byte từ 16 dòng (vi mã) với ngày mới nhất trong số phần sụn được nghiên cứu của các BIOS khác nhau: với 15 loại bản sửa đổi bộ xử lý khác nhau cho ổ cắm AM2+ (040A, 0413, 0414, 041B, 0433, 0680, 0C1B, 1000, 1020, 1022, 1040, 1041, 1043, 1062, 10A0) và dòng thứ 16 cho RevID 0000 (rõ ràng là một loại vi mã phổ quát nào đó dành cho các phiên bản bộ xử lý không được mô tả trong các dòng khác - ví dụ: IMHO những cái trong tương lai).

Bằng cách kết hợp ncpucode.bin của riêng bạn bằng cách nhập các bản vá (vi mã) cần thiết cho mỗi bản sửa đổi bộ xử lý được yêu cầu, bạn hoàn toàn có thể sử dụng bất kỳ chương trình cơ sở AMI BIOS nào với mô-đun “P6 Micro Code” làm mô-đun trong phòng thí nghiệm.

Tuy nhiên, khi lưu tệp chương trình cơ sở, người ta nhận thấy một tính năng khó chịu của MMTOOL - vì lý do nào đó, tiện ích đã thêm 8 byte 0 vào cuối mô-đun “P6 Micro Code” - hóa ra nó có kích thước 32776 byte. Khi trích xuất tệp ncpucode.bin từ chương trình cơ sở trong phòng thí nghiệm bằng cùng một MMTOOL, tệp đầu ra cũng có kích thước 32776 byte.
Bạn có thể chỉnh sửa phần này bằng các trình chỉnh sửa đơn giản mà mọi người đều có thể truy cập. Nhưng tôi cũng (vô tình) phát hiện ra một phương pháp thay thế: khi tiện ích BIOS_EXT.EXE phổ quát trích xuất tất cả các mô-đun từ chương trình cơ sở trong phòng thí nghiệm, tệp ncpucode.bin đã có kích thước chính xác là 32768 byte - bản thân tiện ích BIOS_EXT.EXE đã xác định chính xác phần cuối của mô-đun “P6 Micro Code” khi lưu nó vào tập tin.