KR100504111B1 - 자체 인식 정보를 구비하는 프로세서 모듈 및 그인식 방법 - Google Patents
자체 인식 정보를 구비하는 프로세서 모듈 및 그인식 방법 Download PDFInfo
- Publication number
- KR100504111B1 KR100504111B1 KR10-1998-0040362A KR19980040362A KR100504111B1 KR 100504111 B1 KR100504111 B1 KR 100504111B1 KR 19980040362 A KR19980040362 A KR 19980040362A KR 100504111 B1 KR100504111 B1 KR 100504111B1
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- information
- recognition
- memory
- registers
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 자체 인식 정보를 갖는 프로세서 모듈 및 프로세서 인식 방법에 관한 것으로, CPUID 명령을 실행하는 프로세서 코어와 프로세서 인식 정보를 포함하는 시스템 초기 코드 메모리를 구비한다. 그리고 확장된 CPUID 명령을 이용하여 소정의 문자열이 상기 메모리에 저장되어 있지를 판별한다. 이어서 소정의 문자열이 있으면 프로세서 코어에 구비된 다수의 레지스터들의 저장 정보에 대응하는 시스템 초기 코드 메모리의 프로세서 인식 정보를 독출한다. 이어서 독출된 정보를 통해서 프로세서의 종류 및 특징을 판별하고, 판별된 정보에 대응하여 이를 구비하는 컴퓨터 시스템을 최적의 성능으로 동작시킨다. 따라서 메모리의 프로세서 인식 정보를 통하여 바이오스를 수정하지 않고서 프로세서를 인식한다.
Description
본 발명은 자체 인식 정보를 갖는 프로세서 모듈 및 그의 프로세서 인식 방법에 관한 것이다. 좀 더 구체적으로 자체 인식 정보를 갖는 메모리를 구비하는 프로세서 모듈과 확장된 인식 명령을 이용하여 이를 인식하는 방법에 관한 것이다.
오늘날 다양한 프로세서의 증가로 인하여 이를 쉽게 인식할 수 있는 하드웨어 및 소프트웨어의 구현이 필요하며, 또한 이를 구비하는 컴퓨터 시스템에서 프로세서의 종류 및 특징(feature)에 적합하도록 시스템을 세팅하는 것이 매우 중요하게 되었다.
일반적인 프로세서는 내부 명령인 CPUID 명령(instruction)을 통하여 CPU의 종류 및 특징을 판별한다. 그리고 프로세서 코어에 다수의 레지스터들(EAX, EBX, ECX, EDX 등)을 구비하여 이들의 저장된 데이터에 따라 해당 CPUID 명령을 처리한다. 예를 들어, EFLAGS 레지스터에서 ID 플래그(또는 비트)에 저장된 데이터(value)를 통하여 CPUID 명령을 수행할 수 있는지를 판별한다. 즉, ID 플래그의 데이터를 기입 또는 변경할 수 있으면, 프로세서는 CPUID 명령을 수행한다. 따라서 CPUID 명령은 프로세서에 대한 정보(예를 들어, 프로세서 제작사, 종류, 명칭 및 특징 등)를 제공한다.
그리고 프로세서의 종류 및 특징을 판별한 후에 임의의 소프트웨어는 실제적으로 시스템의 최적의 성능을 위하여 조정할 수 있게 된다. 예를 들어, 게임 소프트웨어는 판별된 프로세서의 종류 및 속도에 의해서 임의의 프로세서로부터 유용한 성능 레벨(performance level)을 테스트할 수 있다. 만약, 성능 레벨이 충분하게 높으면 소프트웨어는 정상적인 동작을 수행하게 된다.
도 1을 참조하면, 일반적인 컴퓨터 시스템의 프로세서를 인식하는 수순을 도시한 흐름도로서, 단계 S2에서 CPUID 명령을 이용하여 특정 레지스터들에 저장된 데이터를 판독하고 해당 프로세서의 종류를 판별한다. 이어서, 단계 S4에서 판단된 CPU의 제조 회사의 특성에 따라 프로세서가 RDTSC(ReaD Time Stamp Counter) 명령을 지원하는지를 판별한다. RDTSC 명령을 지원하는 CPU이면, 단계 S6으로 진행하여 타이머를 클리어시키고, 이어서 단계 S8에서 RDTSC 명령을 실행한다. 그리고 단계 S10에서 상기 특정 레지스터들 중의 EDX, EAX 레지스터 정보를 독출하여 CPU 클럭 속도를 판별한다. 또한 RDTSC 명령을 지원하는 CPU가 아니면, 단계 S12로 진행하여 적정한 입출력 지연 및 특정 명령어를 반복 실행하고 단계 S14에서 명령어 반복 실행에 따른 CPU의 클럭 속도를 판별한다. 그 결과 단계 S16에서 인식된 프로세서의 종류 및 특징에 대한 정보를 출력한다. 그러나 이들 프로세서 정보는 정확히 프로세서를 인식하기에는 부족하고, 다음의 설명에서와 같이 여러 가지의 문제점이 발생된다.
도 2를 참조하면, 일반적인 프로세서의 CPUID 명령은 특정 레지스터(EAX)에 저장된 데이터에 대응하여 적합한 기능들을 수행한다. 예컨대, 인텔사의 프로세서는 특정 레지스터(EAX)의 데이터를 판독하여 해당 동작의 기능을 수행한다. 즉, 단계 S20에서 EAX 레지스터 값이 "00000000H(HEXA)"이면, 단계 S22로 진행하여 제작사(vendor) ID 문자열을 독출하고, 단계 S24에서 "00000001H"이면 단계 S26으로 진행하여 프로세서 표시(signature) 정보를 독출한다. 또한 단계 S28에서 EAX 레지스터 값이 "00000002H"이면, 단계 30으로 진행하여 프로세서 구성(configuration) 파라메터(parameter) 정보를 독출한다. 그리고 단계 S32에서 EAX 레지스터 값이 "00000003H"이면, 단계 34로 진행하여 예비 상태임을 인식하여 해당 기능을 수행한다.
그러나 상술한 수순에 의하면 CPU의 외관에 적힌 속도(CPU CLOCK SPEED)를 변조하는 CPU 리마킹(remarking)과 컴퓨터 시스템의 마더보드 점퍼 등을 조작하여 CPU의 처리 속도를 높여서 사용하는 오버클럭킹(overclocking) 등으로 인하여 발생할 수 있는 사용자의 비정상적인 CPU 사용에 대처할 수 없다.
그리고 새로운 차세대 CPU가 개발되는 경우에 이를 사용하기 위해서는 컴퓨터 시스템의 바이오스(BIOS)를 계속적으로 업데이트(update)해야 하는 작업이 필요하다.
또한 시스템 부팅, 응용 프로그램의 설치 및 실행 등의 동작 과정에서 타이밍 조절이 필요한 경우에도 상술한 비정상적인 방법에 의해서 프로세서의 특징(예컨대, 속도)을 제대로 파악하기가 어렵다.
그러므로 일반적인 프로세서는 CPUID 명령과 특정 레지스터를 이용하여 제한적인 CPU 정보를 제공한다.
따라서 CPU 제조 과정에서 프로세서 정보를 프로세서 코어에 포함하여 제조함으로서 제조 후의 프로세서 정보 변경이 불가능하고, 이를 컴퓨터 시스템에 장착하여 사용하는 경우에도 바이오스(BIOS)는 해당 프로세서 정보를 인식할 수 없는 경우가 발생되는 문제점이 있다.
본 발명의 목적은 상술한 문제점을 해결하기 위한 것으로, 정확한 프로세서 인식 정보를 구비한 프로세서 모듈을 구현하고, 그리고 이들 프로세서 인식 정보를 수정 할 수 있는 프로세서 모듈을 제공하는데 있다.
또한 프로세서의 자체 인식 정보를 판독하여 프로세서의 특징을 정확하게 인식하는 방법을 구현하는데 있다.
상술한 목적을 달성하기 위한 본 발명의 일 특징에 의하면, 인식 명령에 대응하여 프로세서를 인식하기 위한 프로세서 모듈에 있어서: 프로세서 인식을 위한 프로세서 인식 정보를 저장하는 메모리와; 복수 개의 레지스터들을 갖고, 상기 인식 명령을 받아서 상기 프로세서 인식 정보 중에 소정의 제작사 인식 정보가 있으면, 상기 레지스터들의 저장 정보에 대응하는 상기 프로세서 인식 정보를 상기 메모리로부터 독출하여 상기 프로세서를 판별하는 프로세서 코어를 포함한다.
이 특징의 바람직한 실시예에 있어서, 상기 프로세서 모듈은 캐시 메모리 및 시스템 컨트롤러를 더욱 포함한다.
이 특징의 바람직한 실시예에 있어서, 상기 메모리는 상기 프로세서 인식 정보를 업데이트 가능한 메모리로 구비한다.
이 특징의 바람직한 실시예에 있어서, 상기 프로세서 인식 정보는 상기 프로세서 모듈의 초기화 데이터를 더 포함한다.
상술한 목적을 달성하기 위한 본 발명의 다른 특징에 의하면, 다수의 특정 레지스터를 구비하는 프로세서 코어와 프로세서 인식 정보를 구비하는 메모리를 포함하고, 인식 명령을 통하여 상기 프로세서 인식 정보를 독출하는 프로세서 모듈의 인식 방법에 있어서: 상기 인식 명령을 통하여 상기 레지스터들 중에 제 1 및 제 2 레지스터의 저장 정보가 소정의 문자열인지를 판별하는 단계와; 상기 소정의 문자열이면, 상기 레지스터들 중에 제 3 레지스터의 저장 정보에 대응하는 상기 메모리로부터 상기 프로세서 인식 정보를 독출하는 단계 및; 상기 독출된 정보를 상기 제 3 레지스터에 기입하는 단계를 포함하여 상기 제 3 레지스터에 기입된 정보를 통해 상기 프로세서 모듈을 판별한다.
이 특징의 바람직한 실시예에 있어서, 상기 소정의 문자열이 아니면, 상기 제 3 레지스터의 저장 정보를 통하여 해당 프로세서 인식 정보를 독출하는 단계를 더 포함한다.
따라서 본 발명에 의하면, 확장된 CPUID 명령을 이용하여 시스템 초기 코드 정보를 저장하고 있는 시스템 초기 코드 메모리로부터 프로세서 인식 정보를 독출하여 프로세서 모듈을 판별한다.
또한 차세대 프로세서의 개발 또는 버그(bug) 수정 등에 대응하여 시스템 초기 코드 메모리에 프로세서 정보를 추가함으로서 바이오스(BIOS)의 수정없이 프로세서 모듈을 인식할 수 있다.
이하 본 발명의 실시예를 첨부된 도면에 의거하여 상세히 설명한다.
도 3은 본 발명에 따른 프로세서의 개략적인 구성을 도시한 것이다.
도면을 참조하면, 상기 프로세서는 예컨대 MMO(Mobile Module) 프로세서 모듈로서, 프로세서 코어와 캐시 메모리 및 시스템 버스 컨트롤러를 포함한다. 그리고 신규한 프로세서 인식 정보를 포함하는 시스템 초기 코드 메모리(PROM)를 구비하고 있다.
상기 시스템 초기 코드 메모리는 상기 프로세서 코어와는 별도로 구비하여 프로세서 완성 공정에서 이를 프로세서 코어와 결합하여 프로세서의 수율을 극대화한다. 그리고 프로세서의 기능적인 문제점이 발견되는 경우에는 이를 보완하기 위한 디버깅 코드를 추가할 수 있다. 따라서 프로세서의 확장성을 높일 수 있다.
상기 캐시 메모리는 예컨대 2차(L2) 캐시 메모리이며, S램으로 구비된다. 그리고 상기 시스템 버스 컨트롤러는 상기 캐시 메모리 제어, 시스템 버스 제어, PCI 버스 제어 및 시스템 버스-PCI 버스 브릿지(bridge) 기능을 제어한다.
또한 상기 프로세서 모듈은 상기 시스템 초기 코드 메모리의 프로세서 인식 정보를 독출하기 위하여 확장된 CPUID 명령을 구비한다. 시스템 초기 코드 즉, 프로세서의 명칭, 클럭, 캐시 메모리의 크기, 사용 전원에 관한 정보 및 프로세서의 특성상 필요한 초기화 프로그램 등을 제작사가 시스템 초기 코드 메모리에 기입하고, 이를 확장된 CPUID 명령을 이용하여 프로세서 모듈을 인식한다.
따라서 도 4에 도시된 바와 같이 이를 구비하는 컴퓨터 시스템은 바이오스 및 응용 프로그램에서 이 정보들을 독출하고 메인 메모리에 로드하여 정확한 프로세서의 종류 및 특징을 인식함으로서 시스템의 성능을 최적화 할 수 있다. 바이오스는 새로운 차세대 프로세서가 개발되는 경우에도 이에 대한 지원을 위하여 별도의 수정이 불필요하다. 또한 프로그램 타이밍에 예민한 응용 프로그램에서도 상기 확장된 CPUID 명령을 통해서 상기 프로세서 인식 정보를 독출하므로서 정확한 프로세서의 특징을 인식한다. 그러므로 상기 응용 프로그램은 별도의 타이밍 판단에 대한 정보를 수정할 필요가 없게 된다.
그리고 상기 프로세서 인식 정보를 포함하는 시스템 초기 코드 메모리의 저장 정보를 통하여 CPU 클럭, 캐시 메모리 크기 및 사용 전원에 관한 정보 등을 독출할 수 있기 때문에 이를 구비하는 컴퓨터 시스템의 설정 상태를 사용자가 변경할 필요가 없게 된다.
따라서 사용자는 보다 편리하게 프로세서를 설치할 수 있으며, 사용자가 구비하고 있는 바이오스의 현재 버전 이 후에 개발된 프로세서에 대응하여 별도의 수정 또는 업데이트 작업이 불필요하다.
도 5는 도 3에 도시된 시스템 초기 코드 메모리의 데이터 구조를 도시한 도면으로, 오프셋(OFFSET) 값에 대응하는 데이터의 구조를 나타내고 있다. 그리고 이들의 상세한 설명은 아래의 표 1a 및 표 1b에 나타내고 있다.
[표 1a]
시스템 초기 코드 정보의 오프셋에 대응하는 데이터 구조 설명
오프셋 | 명 칭 | 종 류 | 내 용 |
0 | INF_VER | WORD | 현재 정보의 버전(버전에 따른 확장용) |
2 | INF_OFFSET | DWORD | 칩셋의 실제 정보가 위치한 오프셋 |
6 | INF_SIZE | DWORD | 칩셋의 실제 정보 크기(DATA 전체 크기) |
000A | SUM | BYTE | INF DATA의 CHECK_SUM을 맞추기 위한 DUMMY 값 |
10 | V_ID | WORD | Vendor ID |
12 | C_ID | WORD | 칩셋 ID |
14 | V_NAME | 12BYTE | 제조 회사 이름(ASCIIZ : "SAMSUNG") |
20 | C_REV | WORD | 칩셋 리비젼(REVISION) |
24 | C_NAME | 12BYTE | 칩셋 이름(ASCII) |
30 | C_CLK | WORD | 칩셋 클럭(만약 MSB가 "1"이면, C_CLK의 정보가 위치한 오프셋 값) |
34 | C_SIZE1 | DWORD | L1 캐쉬 사이즈(만약 MSB가 "1"이면, C_SIZE1의 정보가 위치한 오프셋 값) |
38 | C_SIZE2 | DWORD | L1 캐쉬 사이즈(만약 MSB가 "1"이면, C_SIZE2의 정보가 위치한 오프셋 값) |
003C | CPU_INIT | DWORD | CPU 초기 루틴에 대한 오프셋 또는 80000000H이 오프셋 위치에는 재배치 가능한 CPU 초기 코드가 존재 |
40 | CPU_INIT_SIZE | DWORD | CPU 초기 루틴 사이즈 |
44 | CPU_INIT_CHKSUM | DWORD | CPU 초기 루틴에 대한 CHECKSUM(32BIT) |
48 | PCI_CLK | WORD | PCI CLOCK |
004A | CLK_CYL | WORD | CLOCK의 분주값 * 2 |
004C | C_N_V | WORD | 칩셋에 필요한 기본 전압 |
004E | C_L_V | WORD | 칩셋의 IDLE 상태시 사용되는 전압(사용하지 않는 경우에는 MSB 세트) |
80 | VDO_NAME | DWORD | MSB가 "1"인 경우 미사용, 칩셋 내부에 비디오 기능이 내장된 경우에 비디오 칩 이름 |
84 | VDO_ID | WORD | 비디오 칩의 ID, VDO_NAME의 MSB가 "0"일 때만 유효 |
86 | C_CLK | WORD | 비디오에 필요한 클럭 값 |
88 | V_N_V | WORD | 비디오 표준 전압 |
008A | VDO_PNP_OFF | DWORD | 비디오 PNP에 대한 정보를 가진 오프셋 |
[표 1b]
시스템 초기 코드 정보의 오프셋에 대응하는 데이터 구조 설명
오프셋 | 명 칭 | 종 류 | 내 용 |
00A0 | SND_NAME | DWORD | MSB가 :1"로 되어 있는 경우는 미사용, 칩셋 내부에 사운드 기능이 내장된 경우에 사운드 칩 이름 |
00A4 | SND_ID | WORD | 사운드 칩의 ID, SND_NAME의 MSB가 "0"일 때만 유효 |
00A6 | S_CLK | WORD | 사운드에 필요한 클럭 값 |
00A8 | S_N_V | WORD | 사운드 표준 전압 |
00AA | SND_PNP_OFF | DWORD | 사운드 PNP에 대한 정보를 가진 오프셋 |
00C0 | 예비 영역 |
상기 표 1a 및 표 1b를 참조하면, 상기 시스템 초기 코드 메모리는 제작사, 프로세서 종류 및 특징 등의 프로세서 정보와 비디오 컨트롤러 및 사운드 컨트롤러 등의 시스템 초기 정보를 포함한다.
그리고 프로세서 초기화 및 디버깅 코드가 위치한 오프셋을 가리키는 정보(CPU_INIT)는 새로운 프로세서의 경우, 별도의 초기화 처리를 하는 코드를 포함하여 바이오스가 새로운 프로세서에 대한 초기화 정보를 갖지 않아도 해당 정보를 독출하고 메인 메모리에 로드(load)하여 실행(즉, 표 3의 CALL FAR 명령어)함으로서 프로세서를 인식한다. 이 코드에는 프로세서에 버그가 발생되면, 프로세서 코어가 수정되어 제작되기 전까지 프로세서 디버깅 코드를 추가하여 버그 수정이 가능하다. 이는 재배치 가능한 프로그램(relocatable program)으로 구성되며, 코드의 신뢰성을 향상시키기 위하여 해당 코드의 크기와 검증 데이터(CHKSUM)를 포함한다. 그리고 상기 프로세서 인식 정보에는 프로세서의 전원 관련 정보(C_N_V, C_L_V)를 포함하고 있다. 따라서 바이오스에 의해서 이 정보를 독출하여 프로세서에 인가되는 전원을 결정한다. 또한 프로세서의 동작 속도 정보뿐만 아니라 시스템 관련 속도 정보(PCI_CLK, CLK_CYL 등)도 포함한다. 상기 표 1a 및 표 1b에서 PCI_CLK 정보는 프로세서에 인가될 PCI 버스 클럭을 의미하며, CLK_CYL 정보는 클럭의 분주값의 2배를 의미한다. 예를 들어, 166 Mhz[(33*2)*2.5] 클럭 속도의 경우에 PCI_CLK 값은 33이며, CLK_CYL 값은 5이다.
상술한 바와 같이, 상기 시스템 초기 코드 메모리의 저장된 데이터는 제작사별로 정의 가능하고, 또한 해당 프로세서 로트(LOT)별로 다르게 정의할 수 있다.
구체적으로 도 6을 참조하면, 상기 프로세서 모듈은 CPUID 명령을 통하여 단계 S60에서 특정 레지스터(EBX, EDX)의 데이터를 독출하고, 이를 통해 프로세서 인식 정보를 갖는 메모리가 있는지를 판별한다. 즉, 특정 레지스터(EBX, EDX)의 데이터가 특정 문자열 "SECKOREA"인지를 판별한다. 상기 문자열이 "SECKOREA"이면 단계 S62로 진행하여 ESI 레지스터에 저장된 데이터 위치의 메모리에서 프로세서 정보를 독출한다. 이 때, 상기 문자열은 제작사 판별을 위한 문자열로서, 제작사에 의하여 다른 문자열로 구비될 수 있다. 이어서 단계 S64에서 독출된 정보를 EAX 레지스터에 기입한다. 그리고 상기 문자열이 "SECKOREA"가 아니면, 단계 S66으로 진행하여 일반적인 프로세서 인식 수순을 수행한다. 즉, EAX 레지스터의 정보를 독출하고 이어서 단계 S68에서 해당 정보에 대응하는 기능을 수행한다.
본 발명의 일 실시예에 따른 프로세서 인식 방법을 도 7에 도시하고 있다. 그리고 이들에 대한 프로그램이 표 2에 나타나 있다.
도면을 참조하면, 단계 S70에서 상기 프로세서는 본 발명에 따른 확장된 CPUID 명령을 이용하여 제작사 ID 정보를 인식하므로서 프로세서의 제작사를 판별한다. 이어서 단계 S72에서 상기 확장된 CPUID 명령을 이용하여 프로세서 코어 정보를 인식하므로서 프로세서의 종류를 판별한다. 그리고 단계 S74에서는 상기 확장된 CPUID 명령을 이용하여 프로세서에 표시된 프로세서 속도를 판별한다.
[표 2]
MOV EBX, 'SECK' ; 확장 CPUIDMOV EDX, 'OREA' ; 확장 CPUIDMOV ESI, 000Bh ; 데이터 인덱스 검사CPUIDCMP EAX, 'KCES' ; 'SECK' 비교하여 제작사 판별JNZ NOT_SEC_CPUMOV EBX, 'SECK' ; 확장 CPUIDMOV EDX, 'OREA' ; 확장 CPUIDMOV ESI, 0010h ; VENDOR ID를 인식CPUIDMOV VENDORNAME, AX MOV EBX, 'SECK' ; 확장 CPUIDMOV EDX, 'OREA' ; 확장 CPUIDMOV ESI, 0012h ; CHIPSET ID를 인식CPUIDMOV CPUNAME, AXMOV EBX, 'SECK' ; 확장 CPUIDMOV EDX, 'OREA' ; 확장 CPUIDMOV ESI, 0030h ; CHIPSET 클럭을 인식CPUIDMOV CPUCLOCK, EAX |
상기 표 2를 참조하면, 확장된 CPUID 명령을 이용하여 프로세서에 대한 인식 정보 즉, 제작사 ID, 프로세서 코어 ID(CHIPSET ID) 및 프로세서 동작 속도를 인식하는 예를 설명하고 있다. EBX, EDX 레지스터에 제작사 ID 문자열 'SECKOREA'를 기입하고, 상기 시스템 초기 코드 메모리의 독출하려고 하는 프로세서 인식 정보의 오프셋(OFFSET) 값을 ESI 레지스터에 기입하여 CPUID 명령을 수행한다.
그리고 도 7은 본 발명의 다른 실시예에 따른 프로세서 인식 방법을 도시하고 있다.
도면을 참조하면, 단계 S80에서 확장 CPUID 명령을 이용하여 상기 메모리에 CPU 초기 프로그램이 포함되어 있는지를 판별한다. 포함되어 있으면, 단계 S82로 진행하여 확장 CPUID 명령을 이용하여 상기 메모리에 저장된 CPU 초기 프로그램에 관한 정보를 통하여 CPU 초기 프로그램의 크기를 판단한다. 이어서 단계 S84에서 확장 CPUID 명령을 이용하여 CPU 초기 프로그램을 메인 메모리에 로드한 후 실행한다. 상술한 수순에 대한 프로그램이 아래의 표 3에 나타내고 있다.
[표 3]
MOV EBX, 'SECK' ; 확장 CPUID MOV EDX, 'OREA' ; 확장 CPUID MOV ESI, 003Ch ; CPU INIT 데이터 옵셋 인식 CPUID TEST EAX, 80000000h JZ NOT_CPU_INIT PUSH EAX MOV ESI, 0040h ; INIT CODE ROUTINE OFFSET CPUID MOV ECX, EAX ; CPU INIT CODE SIZE POP ESI MOV DI, OFFSET RAM_BUFF@B: CPUID ; -----+ STOSB ; | CPU를 위한 초기화 코드 독출 INC ESI ; | LOOP @B ; -----+ CALL FAR DS:RAM_BUFF ; CPU 초기화 루틴 CALL |
상기 표 3을 참조하면, 확장된 CPUID 명령을 이용하여 상기 시스템 초기 코드 메모리에 프로세서 초기화 프로그램(CODE)가 존재하는지를 판단하여 프로세서 초기화 프로그램의 크기를 인식한다. 그리고 프로세서 초기화 프로그램을 컴퓨터 시스템의 메인 메모리에 로드하여 프로세서를 인식한다.
상술한 바와 같이 본 발명은 시스템 초기 코드 메모리를 통하여 보다 정확한 프로세서 정보를 인식할 뿐만 아니라 개발 이후의 프로세서 버그 및 업데이트에 대응하여 프로세서 제작이 용이하며, 프로세서의 품질을 향상시킬 수 있다.
그리고 컴퓨터 시스템의 바이오스를 수정 또는 교환하지 않고 차세대 프로세서를 인식할 수 있다.
또한 시스템 초기 코드 메모리로부터 프로세서 모듈의 클럭 정보, 사용 전원 정보 등의 시스템 초기 정보를 제공하므로서 이를 구비하는 컴퓨터 시스템에서 별도의 점퍼 또는 스위치의 조작이 필요치 않다.
도 1은 일반적인 컴퓨터 시스템에서 프로세서의 인식 수순을 도시한 흐름도;
도 2는 일반적인 프로세서에 구비된 특정 레지스터의 설정 데이터에 따른 프로세서 인식 수순을 나타내는 흐름도;
도 3은 본 발명의 일 실시예에 따른 프로세서 모듈의 구성을 도시한 블록도;4는 도 3에 도시된 프로세서 모듈을 구비한 컴퓨터 시스템의 일부 구성을 도시한 블럭도;
도 5는 도 3에 도시한 시스템 초기 코드 메모리의 일 실시예에 따른 프로세서 인식 정보의 데이터 구조를 도시한 도면;
도 6은 도 3에 도시한 프로세서 모듈의 프로세서 인식 수순을 도시한 흐름도;
도 7은 본 발명의 실시예에 따른 프로세서 인식 수순을 도시한 흐름도; 그리고
도 8은 본 발명의 실시예에 따른 시스템 초기 코드 메모리의 프로세서 인식 정보를 컴퓨터 시스템의 메인 메모리에 로드하여 프로세서를 인식하는 수순을 도시한 흐름도이다.
*도면의 주요 부분에 대한 부호 설명*
40 : 프로세서 모듈 42 : 프로세서 코어
44 : 시스템 버스 컨트롤러 46 : 시스템 초기 코드 메모리
48 : 캐시 메모리 50 : 컴퓨터 시스템
52 : 메인 메모리 54 : 바이오스
Claims (6)
- 인식 명령에 대응하여 프로세서를 인식하기 위한 프로세서 모듈에 있어서:프로세서 인식을 위한 프로세서 인식 정보를 저장하는 메모리와;복수 개의 레지스터들을 갖고, 상기 인식 명령을 받아서 상기 프로세서 인식 정보 중에 소정의 제작사 정보가 있으면, 상기 레지스터들의 저장 정보에 대응하는 상기 프로세서 인식 정보를 상기 메모리로부터 독출하여 상기 프로세서를 판별하는 프로세서 코어를 포함하는 것을 특징으로 하는 프로세서 모듈.
- 제 1 항에 있어서,상기 프로세서 모듈은 캐시 메모리 및 시스템 버스 컨트롤러를 더욱 포함하는 것을 특징으로 하는 프로세서 모듈.
- 제 1 항에 있어서,상기 메모리는 상기 프로세서 인식 정보를 업데이트(update) 가능한 메모리로 구비하는 것을 특징으로 하는 프로세서 모듈.
- 제 1 항 또는 제 3 항에 있어서,상기 프로세서 인식 정보는 상기 프로세서 모듈의 초기화 정보를 더 포함하는 것을 특징으로 하는 프로세서 모듈.
- 다수의 특정 레지스터를 구비하는 프로세서 코어와 프로세서 인식 정보를 구비하는 메모리를 포함하고, 인식 명령을 통하여 상기 프로세서 인식 정보를 독출하는 프로세서 모듈의 인식 방법에 있어서:상기 인식 명령을 통하여 상기 레지스터들 중에 제 1 및 제 2 레지스터의 저장 정보가 소정의 문자열인지를 판별하는 단계와;상기 소정의 문자열이면, 상기 레지스터들 중에 제 3 레지스터의 저장 정보에 대응하는 상기 메모리로부터 상기 프로세서 인식 정보를 독출하는 단계 및;상기 독출된 정보를 상기 제 3 레지스터에 기입하는 단계를 포함하여 상기 제 3 레지스터에 기입된 정보를 통해 상기 프로세서 모듈을 판별하는 것을 특징으로 하는 프로세서 모듈의 인식 방법.
- 제 5 항에 있어서,상기 소정의 문자열이 아니면, 상기 제 3 레지스터의 저장 정보를 통하여 해당 프로세서 인식 정보를 독출하는 단계를 더 포함하는 프로세서 모듈의 인식 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-1998-0040362A KR100504111B1 (ko) | 1998-09-28 | 1998-09-28 | 자체 인식 정보를 구비하는 프로세서 모듈 및 그인식 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-1998-0040362A KR100504111B1 (ko) | 1998-09-28 | 1998-09-28 | 자체 인식 정보를 구비하는 프로세서 모듈 및 그인식 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000021340A KR20000021340A (ko) | 2000-04-25 |
KR100504111B1 true KR100504111B1 (ko) | 2005-09-26 |
Family
ID=19552254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-1998-0040362A KR100504111B1 (ko) | 1998-09-28 | 1998-09-28 | 자체 인식 정보를 구비하는 프로세서 모듈 및 그인식 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100504111B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7036005B2 (en) * | 2001-12-31 | 2006-04-25 | Intel Corporation | Method and apparatus for modifying the contents of revision identification register |
-
1998
- 1998-09-28 KR KR10-1998-0040362A patent/KR100504111B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20000021340A (ko) | 2000-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5794066A (en) | Apparatus and method for identifying the features and the origin of a computer microprocessor | |
US7024547B2 (en) | Method and system for initializing a hardware device | |
US6725178B2 (en) | Use of hidden partitions in a storage device for storing BIOS extension files | |
US6587916B2 (en) | Microcomputer with built-in programmable nonvolatile memory | |
US7752427B2 (en) | Stack underflow debug with sticky base | |
JP4960364B2 (ja) | ハードウェア支援されたデバイス設定検出 | |
US20040204003A1 (en) | Method and apparatus for use in securing an electronic device such as a cell phone | |
US7243372B2 (en) | Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection | |
JP2008009721A (ja) | 評価システム及びその評価方法 | |
JPH07271711A (ja) | コンピュータシステム | |
US20040225874A1 (en) | Method for reduced BIOS boot time | |
KR100504111B1 (ko) | 자체 인식 정보를 구비하는 프로세서 모듈 및 그인식 방법 | |
JPS5816350A (ja) | メモリ拡張代替方式 | |
US11307795B2 (en) | Electronic processing devices and memory control methods thereof | |
US7246222B2 (en) | Processor type determination based on reset vector characteristics | |
CN112667544A (zh) | 一种控制主板插槽使能的方法、装置、系统及介质 | |
JP4083474B2 (ja) | メモリ装置の制御方法およびそのプログラムならびに記録媒体 | |
JP2005537575A (ja) | プログラム可能なシステムの初期化方法 | |
JP3358214B2 (ja) | 電子装置 | |
CN107346162B (zh) | Uefi下的电源管理方法及装置 | |
US20240095178A1 (en) | Memory device and operating method thereof | |
CN110471704B (zh) | 服务器及服务器开机初始化方法 | |
US20050015580A1 (en) | Method for transferring a command among a plurality of devices in a computer system | |
JPH06103109A (ja) | データプロセッサ、及びこれを用いるデバッグ装置 | |
CN118132112A (zh) | 基于音频设备标准开发框架的升级方法以及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130627 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20140627 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20150629 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |