1월 초부터 Spectre 및 Meltdown 하드웨어 취약점에 관한 뉴스를 놓치기가 어려웠습니다. 이 주제는 매우 심각하고 포괄적인 것으로 밝혀졌습니다. 제조사들은 지난 여름부터 이러한 문제를 인지하고 있었지만, 대부분 전문가들이 세부 사항을 발표하고 나서야 반응을 시작한 것으로 보인다. Google 팀프로젝트 제로.

예를 들어 인텔은 지난 1월 Broadwell, Haswell, Skylake, Kaby Lake 및 Coffee Lake 프로세서에 대한 안티 스펙터 마이크로코드 업데이트를 발표했습니다. 그러나 거의 즉시 그들이 실패로 이어지는 것으로 나타났습니다. 처음에 Intel은 문제가 Broadwell 및 Haswell 칩에만 영향을 미쳤다고 밝혔지만 나중에 Skylake, Kaby Lake 및 Coffee Lake 프로세서가 있는 컴퓨터와 파트너 및 사용자가 패치 설치를 자제하는 컴퓨터에 오류가 있음을 인정했습니다. 마지막으로 2월 초에 수정된 마이크로코드 버전이 스카이레이크 제품군의 모바일 및 데스크톱 소비자 칩에만 적용됩니다.

Intel과 그 파트너가 한 달 동안 집중적으로 테스트하고 패치한 후 이제 다소 관련성이 높은 다른 프로세서가 등장했습니다. Kaby Lake 및 Coffee Lake 아키텍처 기반 칩에 대한 마이크로코드 업데이트가 릴리스되었으며 영향을 받지 않았습니다. 이전 업데이트 Skylake 기반 플랫폼. 우리는 프로세서 6, 7 및 8에 대해 이야기하고 있습니다. 인텔의 세대 Core i는 물론 최신 Core X, Xeon Scalable 및 Xeon D 제품군.

새 펌웨어 변형은 대부분의 경우 새 마더보드 및 노트북 펌웨어의 OEM 릴리스를 통해 사용할 수 있습니다. 인텔은 여전히 ​​사람들에게 시스템을 최신 상태로 유지하도록 권장했으며 45nm 코어 2로 시작하는 이전 칩을 포함하여 다른 제품에 대한 유사한 마이크로코드 수정 상태를 설명하는 백서를 발행했습니다. 이러한 칩 중 일부의 경우 패치가 계획만 가능하고, 나머지는 초기 테스트 단계에 있으며, 세 번째는 이미 베타 버전으로 존재합니다. 일반적으로 아키텍처가 오래될수록 스펙터에 대한 보호 기능이 있는 펌웨어가 늦게 제공됩니다. 그러나 현재 Sandy Bridge, Ivy Bridge, Haswell 및 Broadwell 아키텍처에 대한 마이크로코드 업데이트는 이미 베타 테스트 중입니다. 또한 많은 Atom 칩과 Xeon Phi 가속기조차도 이미 패치를 받았습니다.

Intel은 최신 프로세서에서 발견된 분기 예측 블록의 취약점을 해결하는 다른 방법이 있음을 상기했습니다. 예를 들어, Spectre CVE-2017-5715(분기 대상 주입 또는 분기로 대상 주입)에 대해 Google에서 개발한 Retpoline입니다. 관심있는 분들을 위해 추가 정보 Retpoline 및 작동 방식에 대해 회사는 특별 기술 보고서를 발행했습니다.

출시된 인텔 업데이트앞으로 며칠 및 몇 주 안에 Spectre에 대한 마이크로코드는 다양한 마더보드에 대한 새로운 BIOS 펌웨어의 형태로 나타나기 시작할 것입니다. 최종 시스템의 성능 저하에 추가적인 영향을 미칠지 궁금합니다.

사실, 원래의 방법, 장비, 마이크로코드를 찾을 수 있고(AMI에 대한 직접 지침), 대부분의 경우 이 방법을 사용하면 문제가 발생하지 않고 함정도 없지만, 실제로는 다음과 같은 문제가 정기적으로 발생했습니다.

저것들. 기본적인 부족이 있었다 자유 공간이미지 내부. 특정 프로세서에 대해 BIOS를 수정하는 경우 이를 무시할 수 있습니다. 항상 프로세서에 대해 특별히 하나의 마이크로코드만 로드하거나 공간을 확보하기 위해 일부 오래된 마이크로코드를 제거할 수 있지만 스트림으로 수정할 때는 다른 솔루션인 절충안을 찾아야 합니다.

타협으로 다음 솔루션을 선택했습니다. 모든 프로세서에 대해 최신 버전의 마이크로코드를 사용합니다. 세대 코어모든 구성(Celeron E, Pentium E, Core 2 Duo, Core 2 Quad, Xeon *3xxx/*5xxx)에서 이전의 모든 것으로 교체합니다. 마이크로코드 세트는 다음과 같습니다.

이 세트의 볼륨은 76킬로바이트에 불과합니다. 이 파일다음 파일을 결합하여 얻습니다.

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

수정 절차 자체도 약간 변경되어 더 쉽지는 않지만 더 빨라졌습니다.

1 단계- MMTool 프로그램에서 BIOS 이미지를 엽니다.



2 단계- 확인하러 가기 마지막 탭(CPU PATCH) 및 마이크로코드 수를 확인합니다. 예를 들어 다음은 31개입니다.

3단계- 바꾸기 탭으로 이동하여 "P6 마이크로 코드" 항목을 찾습니다.

4단계- "P6 Micro Code" 항목을 선택한 후 Ikshtsyu 버튼을 누르고 위에서 설명한 ncpucode.bin 파일을 선택하고 바꾸기 버튼으로 바꿉니다.





5단계- 확인하려면 마지막 탭(CPU PATCH)으로 이동하여 마이크로코드 수를 확인합니다. 마이크로코드를 변경한 후에도 17개가 남아 있으며 최신 버전은 다음과 같습니다.

delidded.com에 설명된 수정 순서와 근본적인 차이는 없습니다. 대부분의 경우 출력은 물론 동일하지 않지만 프로세서는 원하는 마이크로코드를 수신합니다. 주관적인 것에서 좋은 점나는 "민간인"이든 "서버"이든 관계없이 모든 현재 프로세서에 대해 마이크로코드가 업데이트되도록 보장되며 공간 부족에 대한 메시지를 받을 위험이 실질적으로 없다는 사실에 주목하고 싶습니다. 실제로는 이러한 마이크로코드 세트의 경우에도 몇 번이나 공간이 부족했지만 일반적으로 Xeon E5450과 호환되는 ECS P4M900T-M 및 ECS P4M900T-M2 보드용 BIOS였습니다.

전통적으로 나는 도구를 사용하여 아카이브에 대한 링크를 게시합니다(zip, 234KB). 아카이브에는 실행 파일이 포함되어 있습니다. MMTOL.exe(버전 3.22 BKMOD), 모든 45/65nm 코어/제온 프로세서용 펌웨어 파일 ncpucode.bin, 그리고 두 개의 파일 45nm.bin그리고 65nm.bin 45nm 프로세서 및 65nm 전용 마이크로코드 포함. 이러한 파일의 사용은 일부 컨트롤러, 네트워크, 디스크 등의 새 펌웨어와 같이 BIOS에서 추가 공간을 확보해야 하는 경우에 유용할 수 있습니다.

!NB: ncpucode.bin 파일이나 45nm.bin/65nm.bin 파일 모두 Pentium 4, Celeron(문자 색인 없음), Pentium D, Celeron D 및 Xeon W 프로세서(예: Xeon 5080)를 지원하지 않습니다. NetBrust 세대 프로세서입니다.

최신 프로세서는 버그가 있을 수 있는 복잡한 장치입니다. 또한 최신 x86 프로세서에는 x86 명령어를 직접 실행하는 대신 x86 명령어 세트에 대한 지원을 구현하는 내부 코드가 포함되어 있습니다. 내부 코드를 마이크로코드라고 합니다. CPU 버그를 수정하거나 완화하기 위해 마이크로코드를 업데이트할 수 있습니다.

일부 CPU 버그로 인해 Firefox가 충돌할 수 있습니다. 예를 들어, Firefox 57 이상은 최신 Broadwell-U 마이크로코드 버전에서는 볼 수 없는 방식으로 이전 마이크로코드가 있는 Broadwell-U CPU에서 때때로 충돌하는 것으로 알려져 있습니다.

마이크로코드 업데이트는 펌웨어(기술적으로 구식 BIOS 대신 UEFI 펌웨어가 있는 컴퓨터에서도 일반적으로 BIOS라고 함) 또는 운영 체제를 통해 CPU에 로드할 수 있습니다. 마이크로코드 업데이트는 재부팅 후에도 지속되지 않으므로 이중 부팅 시스템의 경우 마이크로코드 업데이트가 BIOS를 통해 제공되지 않으면 두 운영 체제에서 모두 업데이트를 제공해야 합니다.

Mac에서 최신 시스템을 사용하려면 모든 OS X 시스템 업데이트와 Apple 펌웨어 업데이트를 적용하십시오. 앱 스토어앱.

Windows에서 업데이트된 마이크로코드를 CPU에 로드할 수 있도록 하려면 Windows 업데이트가 활성화되어 있고 업데이트를 설치하도록 설정되어 있는지 확인하십시오.

프로세서 마이크로아키텍처와 사용 중인 마이크로코드 버전을 보려면 Windows 명령 프롬프트에서 reg query HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0 명령을 실행하십시오. ( 당신은 할 수 있습니다 Windows + R을 누르고 cmd를 입력한 다음 Return을 눌러 명령 프롬프트를 엽니다.) "VendorIdentifier"라고 표시된 줄은 CPU 공급업체(Intel의 경우 GenuineIntel 또는 AMD의 경우 AuthenticAMD)를 나타냅니다. "Identifier"라고 표시된 줄은 마이크로아키텍처를 "Family", "Model" 및 "Stepping"의 세 가지 숫자로 제공합니다. 이는 특정 CPU 버그가 컴퓨터의 CPU와 관련이 있는지 식별하는 데 관련이 있습니다. "업데이트 개정"이라고 표시된 줄은 양쪽에 0이 있는 현재 마이크로코드 개정(특정 마이크로아키텍처에 대한)을 표시합니다. 예를 들어 업데이트 개정판 REG_BINARY 000000001E000000은 개정판이 1E(16진수)임을 의미합니다. "Previous Update Revision"이라고 표시된 줄은 BIOS에서 로드된 마이크로코드 개정을 보여줍니다.

공급업체가 GenuineIntel이고 제품군이 6이고 모델이 61이고 스테핑이 4인 경우 Firefox 57 이상과의 충돌을 방지하려면 마이크로코드 개정이 1A 이상이어야 합니다.

마이크로코드 업데이트가 기본적으로 사용되는지 여부는 Linux 배포판에 따라 다르며 Intel 및 AMD CPU에 따라 다를 수 있습니다.

  • Ubuntu를 포함한 Debian 기반 배포에서 Intel 프로세서용 마이크로코드 업데이트는 intel-microcode 패키지로 제공되고 AMD 프로세서용 마이크로코드 업데이트는 amd64-microcode 패키지로 제공됩니다.
  • Arch에서 AMD 마이크로코드 업데이트는 기본적으로 설치되지만 Intel 마이크로코드 업데이트에는 특별한 단계가 필요합니다.
  • Fedora에서는 마이크로코드 업데이트가 기본적으로 설치됩니다.

프로세서 마이크로아키텍처와 사용 중인 마이크로코드 개정판을 보려면 터미널에서 less /proc/cpuinfo 명령을 실행하십시오. "vendor_id"라고 표시된 줄은 CPU 공급업체(Intel의 경우 GenuineIntel 또는 AMD의 경우 AuthenticAMD)를 나타냅니다. 마이크로아키텍처는 "cpu family", "model" 및 "stepping"이라고 표시된 라인에 세 개의 숫자로 표시됩니다. 이는 특정 CPU 버그가 컴퓨터의 CPU와 관련이 있는지 식별하는 데 관련이 있습니다. "마이크로코드"라고 표시된 줄은 마이크로코드 개정 번호(특정 마이크로아키텍처용)를 16진수로 표시합니다.

최신 CPU 펌웨어를 설치하여 컴퓨터의 Intel 또는 AMD CPU 성능을 최적화할 수 있습니다. 최적화는 주로 마더보드의 펌웨어에서 수신한 표준 마이크로코드의 오류를 수정하여 이루어집니다.

마더보드 BIOS/UEFI 펌웨어 업데이트에는 일반적으로 지원되는 새 펌웨어 버전이 포함되어 있습니다. 마더보드중앙 프로세서. 이러한 이유로 가장 먼저 해야 할 일은 최신 BIOS/UEFI 버전을 사용하고 있는지 확인하는 것입니다.

이 가이드를 사용하면 Intel과 AMD에서 개발한 CPU의 성능만 최적화할 수 있습니다.

메모:

  • 패키지 설치 소프트웨어마이크로코드를 사용하면 컴퓨터가 불안정해질 수 있습니다. 이러한 이유로 컴퓨터의 CPU 기능과 관련된 문제가 발생한 경우에만 이 패키지를 설치해야 합니다!
  • 컴퓨터 마더보드의 BIOS/UEFI 펌웨어 이전에 출시된 CPU 펌웨어 소프트웨어 패키지를 설치하지 마십시오!

1. 인텔 CPU

프로덕션 CPU를 사용하는 경우 인텔에서아래에 설명된 대로 진행할 수 있습니다.

메모:배포판의 공식 리포지토리에 있는 것보다 최신 인텔 CPU 펌웨어 패키지가 필요합니까? 이 경우 확장자가 있는 소프트웨어 패키지 파일을 다운로드할 수 있습니다. .deb~에서

시냅틱 패키지 관리자 소프트웨어

시냅틱 패키지 관리자"컴퓨터에서 검색"), 쿼리를 입력 시냅스 시냅틱 패키지 관리자 시냅틱 패키지 관리자 "검색" "마이크로코드"그리고 버튼을 눌러 "검색"그 옆에.

3.201501106.1 (이 경우 패키지 버전 3은 2015년 11월 6일에 생성되었습니다).

« 인텔 마이크로코드"그리고 버튼을 눌러 "적용하다"

메시지 | grep 마이크로코드

입력하다

2. AMD CPU

AMD에서 제조한 프로세서를 사용하는 경우 이 설명서 2006년 이후 출시된 제품(AMD K10 이상)에만 해당됩니다. 컴퓨터에 이러한 CPU 중 하나가 설치되어 있으면 아래 설명된 대로 진행할 수 있습니다.

메모:배포판의 공식 리포지토리에 있는 것보다 최신 AMD CPU 펌웨어 패키지가 필요합니까? 이 경우 확장자가 있는 소프트웨어 패키지 파일을 다운로드할 수 있습니다. .deb패키지가 있는 데비안 배포 저장소에서 최신 버전. 패키지 파일을 다운로드한 후 파일 관리자를 사용하여 파일을 찾고 두 번 클릭하여 시스템에 마이크로코드를 설치해야 합니다. 설치가 완료되면 컴퓨터를 다시 시작해야 합니다.

A. Ubuntu 배포판을 사용하는 경우 다음을 설치해야 합니다. 시냅틱 패키지 관리자(이것은 앱으로 할 수 있습니다 소프트웨어). Linux Mint에서 이 패키지 관리자는 설치 직후에 있습니다.

B. 우선 실행해야 합니다. 시냅틱 패키지 관리자. 에 우분투 배포이를 위해 사이드바 상단에 있는 흰색 Ubuntu 로고를 클릭합니다( "컴퓨터에서 검색"), 쿼리를 입력 시냅스제안된 애플리케이션 중 첫 번째 애플리케이션을 선택합니다. 시냅틱 패키지 관리자. 메인 창의 소프트웨어 패키지에 대한 빠른 검색 상자를 사용할 필요가 없습니다. 시냅틱 패키지 관리자, 해당 메커니즘이 신뢰할 수 없기 때문에; 대신 버튼을 눌러 "검색"도구 모음에서 열리는 대화 상자의 검색 필드에 쿼리를 입력합니다. "amd64-마이크로코드"그리고 버튼을 눌러 "검색"그 옆에.

C. 이제 CPU 마이크로코드가 있는 소프트웨어 패키지 생성 날짜를 확인해야 합니다. 이 패키지는 컴퓨터 마더보드의 BIOS/UEFI 펌웨어보다 나중에 생성되어야 합니다! 문제의 패키지 생성 날짜는 버전 번호에 반영됩니다. 예를 들어 2.20160316.1 (이 경우 패키지 버전 2는 2016년 3월 2일에 생성되었습니다).

D. 소프트웨어 패키지 이름 옆에 있는 확인란을 선택해야 합니다. "amd64-마이크로코드"그리고 버튼을 눌러 "적용하다"응용 프로그램 도구 모음에서

E. 소프트웨어 패키지 설치가 완료되면 컴퓨터를 다시 시작해야 합니다.

F. 재부팅 후 터미널 창에 다음 명령을 입력하여 설치된 마이크로코드 중 하나가 올바르게 로드되었는지 확인하는 것이 좋습니다(오류 방지를 위해 복사/붙여넣기 기능 사용).

메시지 | grep 마이크로코드

명령어 입력이 끝나면 키를 누른다. 입력하다실행을 위해. 펌웨어가 성공적으로 로드되면 관련 메시지가 여러 개 표시됩니다.

Linux 시스템 작업을 위한 다른 설정 및 요령에 대해 배우고 싶습니까? 이 웹사이트에는 그러한 자료가 많이 포함되어 있습니다.

칩셋과 LGA 775 마더보드가 이론적으로 XEON 771을 지원할 수 있지만 기본 BIOS가 지원하지 않고 수정된 것이 없으면 BIOS를 직접 수정할 수 있습니다.

중요한

1. 모든 변경 사항 BIOS 펌웨어(일반적으로 .ROM 파일) 사용자가 위험을 감수해야 합니다. 오류가 발생하면 마더보드에서 보증된 "브릭"을 얻습니다.
2. 원본 펌웨어의 파일 크기와 수정된 버전의 파일 크기가 최대 1바이트까지 일치해야 합니다.

3. 수정된 BIOS 파일을 다시 마이크로회로로 플래시하는 것은 마더보드 개발자의 독점 유틸리티(제조업체 웹사이트에서 다운로드)를 사용해서만 수행됩니다.
4. 상위 마더보드에는 BIOS 자체에 펌웨어 업데이트 모듈이 내장되어 있습니다(예: 도구 섹션의 ASUS P5Q용 EZ Flash 2 유틸리티). 이는 최상의 옵션입니다.

더 나은 방법:
1. 여전히 인터넷에서 XEON을 지원하는 기성 버전을 검색합니까?
2. 공식 홈페이지에서 다운로드 최신 버전펌웨어를 추가하고 마이크로코드를 추가하시겠습니까?

보시다시피 두 번째 옵션이 더 안전합니다. 어떤 경우에도 마더보드 제조업체의 웹사이트에서 원본 펌웨어를 다운로드합니다. 최신 버전 및 오류 없음이 보장됩니다(보다 정확하게는 이전에 발견된 모든 오류 수정). 타사 리소스에서 기성품 버전을 다운로드할 때(분명한 이유로 원래 사이트에 없음) - 비뚤어진 버전을 얻고 BIOS를 종료할 수 있습니다.

사전에 BIOS 펌웨어에서 XEON 마이크로코드의 존재를 평가할 수 있습니다.

- Universal BIOS Backup ToolKit 2.0을 통해 현재 AMI BIOS 이미지 가져오기
- AMIBCP V 3.37을 통해 수신된 ROM 파일의 내용 보기

BIOS용 옵션 AMI(American Megatrends Inc.).

1. 최신 버전 다운로드 바이오스마더보드 제조업체의 웹사이트에서

3. XEON 771 프로세서용 마이크로코드 다운로드: lga771_microcodes

4. 다음을 사용하여 프로세서의 CPUID를 찾으십시오. 아이다64또는 유사한 프로그램(cpu0001067Ah처럼 보입니다). 만약 바이오스프로세서를 설치하기 전에 꿰매어질 것이므로 이 항목을 건너뜁니다.

5. 아카이브 압축 풀기 MMTool그리고 lga771_마이크로코드확장자가 있는 파일에서 나가기 .큰 상자시작이 컴퓨터의 CPUID와 일치하는 파일만(예: cpu0001067a_plat00000044_ver00000a0b_date20100928.bin)

어떤 코드인지 모른다면 모든 것을 꿰매십시오.

ㅏ.우리는 시작합니다 MMTool. 버튼(1) 누르기 로드 ROM마더보드의 최신 BIOS를 프로그램에 로드합니다. 최신 BIOS가 있는 경우 PC에서 BIOS 백업 유틸리티를 병합하고 편집할 수도 있습니다.

비.탭으로 이동 (2) CPU 패치, 버튼(3) 검색, 파일을 엽니다 .큰 상자귀하의 CPUID에 해당합니다.

씨.옵션을 기본값으로 둡니다. "패치 데이터 삽입"버튼을 누르십시오 (4) 적용하다.

수정된 바이오스로 업데이트 후 공장 초기화를 해야 합니다마더보드가 이러한 재설정을 지원하는 경우 재설정 버튼 또는 점퍼를 통해 또는 몇 분 동안 BIOS 배터리를 빼내십시오. 또한 프로세서는 이미 컴퓨터에서 올바르게 인식되고 제대로 작동합니다.

기본 입력 출력 시스템 - BIOS로 약칭되는 기본 입력/출력 시스템. 작은 칩 마더보드, PC를 켤 때 가장 먼저 제어를 수신합니다. 제공: 기본 설정 PC 시작 시 PC 구성 요소 확인...