KR100879654B1 - 효율적인 시스템 관리 동기화 및 메모리 할당 - Google Patents

효율적인 시스템 관리 동기화 및 메모리 할당 Download PDF

Info

Publication number
KR100879654B1
KR100879654B1 KR1020067006666A KR20067006666A KR100879654B1 KR 100879654 B1 KR100879654 B1 KR 100879654B1 KR 1020067006666 A KR1020067006666 A KR 1020067006666A KR 20067006666 A KR20067006666 A KR 20067006666A KR 100879654 B1 KR100879654 B1 KR 100879654B1
Authority
KR
South Korea
Prior art keywords
processor
storage medium
smi
processors
state
Prior art date
Application number
KR1020067006666A
Other languages
English (en)
Other versions
KR20060085649A (ko
Inventor
바네스 쿠퍼
그랜트 고바야시
Original Assignee
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20060085649A publication Critical patent/KR20060085649A/ko
Application granted granted Critical
Publication of KR100879654B1 publication Critical patent/KR100879654B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Abstract

멀티프로세서 동기화 및 시스템 관리 메모리 공간 할당의 최적화를 위한 방법 및 장치가 개시된다. SMI(system management interrupt)가 수신될 때, 제1 프로세서는 제2 프로세서의 상태를 점검하는데, 이것은 제2 프로세서의 상태를 표현하는 값들을 저장하고 있는 저장 매체를 점검하는 것에 의해 수행될 수 있다. 제1 프로세서는 제2 프로세서의 상태에 따라 SMI를 처리하거나 제2 프로세서를 대기한다. 또한, 시스템 관리 메모리가 할당되는데, 여기에서, 제1 프로세서에 할당된 제1 시스템 관리 메모리 공간은, 제1 및 제2 비-중첩 구역을 남기면서, 제2 프로세서에 할당된 제2 시스템 관리 메모리 공간과 중첩한다.
멀티프로세서, 동기화, 시스템 관리, 메모리 공간, SMI

Description

효율적인 시스템 관리 동기화 및 메모리 할당 {EFFICIENT SYSTEM MANAGEMENT SYNCHRONIZATION AND MEMORY ALLOCATION}
본 발명은 컴퓨터 시스템 분야에 관한 것으로서, 보다 구체적으로는, 시스템 관리 모드 최적화에 관한 것이다.
컴퓨터 시스템들은, PDA들(personal digital data assistants) 및 셀룰러 폰들과 같은, 작은 핸드헬드 전자 장치들에서, 셋톱 박스들 및 다른 상용 전자 장치들과 같은, 애플리케이션-특정 전자 컴포넌트들, 완전 모바일, 데스크탑, 및 서버 시스템들에 이르는 모든 것을 포함하여, 컴퓨터 시스템들이 우리 사회에 점차 만연해지고 있다. 그러나, 시스템들은 크기에서 그리고 가격에서 더 작아지고 있으므로, 효율적인 메모리 할당 및 시스템 관리를 위한 필요성이 더 중요해지고 있다.
서버 시스템들은 전통적으로, 상당량의 통상적인 메모리 및 동일한 시스템(멀티프로세서 시스템)의 복수개 물리 프로세서들에 의해 특징지워져 왔는데, 여기에서, 물리 프로세서는 단일 프로세서 다이(die) 또는 단일 패키지를 의미한다. 서버 시스템이 이용 가능한 상당량의 리소스들은 메모리 공간의 상당히 비효율적인 할당 및 실행 시간의 낭비를 초래해 왔다.
통상적으로, 시스템에서 발생될 수 있는 SMI들(system management interrupts)에는 2가지 유형이 존재하는데, 떨어지는 배터리와 같은, 하드웨어 (비동기) SMI들 또는 프로세서에 주파수 또는 전력 레벨들을 변경할 것을 요청하고 있는 오퍼레이팅 시스템(OS)과 같은, 소프트웨어 (동기) SMI들을 포함한다. 대개, 하드웨어 SMI는, 다른 쪽 프로세서의 저장-상태 영역(save-state area)에 대한 지식없이 한 쪽 프로세서에 의해 처리될 수 있다.
그러나, 소프트웨어 발생형 SMI는, SMI 요청을 처리하기 전에 멀티프로세서 시스템의 모든 프로세서들이 SMI로 진입할 것을 요구할 수 있는데, 소프트웨어 SMI를 처리하는 것은 각 프로세서의 저장-상태 영역(save-state area)에 액세스할 수 있는 능력을 요구할 수도 있기 때문이다. SMI를 처리하기 전에 복수개 프로세서들을 시스템 관리 모드로 진입하게 하는 프로세스를 통상 동기화라고 한다.
현재의 멀티프로세서 시스템들은 프로세서들을 동기화하기 위해 통상적으로 비효율적인 타임아웃 방법(inefficient timeout method)을 이용한다. 예를 들어, SMI가 수신되면, 각각의 프로세서는, 각각의 프로세서가 SMM(system management mode)으로 진입했다는 것을 보장하기 위해, SMI를 처리하기 전에 특정 시간을 대기할 수도 있다. 예시적 일례로서, 멀티프로세서 시스템의 프로세서는, 나머지 프로세서들이 SMM으로 진입했다는 것을 보장하기 위해, SMI를 처리하기 전에 최장 명령어를 실행하는데 걸리는 시간만큼 대기할 수도 있다. 따라서, 각각의 프로세서는 이미 SMI로 진입했지만, 시스템은 타임아웃 주기가 만료하기를 대기하면서 무료하게 실행 시간을 낭비하고 있다.
또한, 현재의 멀티프로세서 시스템들은 시스템 관리 메모리 공간을 비효율적 으로 할당한다. 현재의 어드레싱 제한들로 인해, 통상적인 SMM 영역은 64kB 이상을 필요로 할 수 있다. 그러나, 이러한 메모리 공간 모두가 SMM 코드 및/또는 데이터로 채워지는 것은 아니다. 또한, 각각의 프로세서에는 대부분, 별도의 상이한 64kB SMM 공간들이 할당된다. 따라서, 각각의 64kB SMM 공간은, 이용되지 않지만 각각의 프로세서에 전용되는 메모리 공간을 가진다.
그럼에도 불구하고, 이처럼 비효율적인 동기화 및 시스템 관리 메모리 할당의 방법들이 멀티프로세서 서버 시스템들로 한정되는 것도 아니다. 실제로, 이러한 비효율성은, 모바일 멀티프로세서 시스템들과 같은, 다른 시스템들에도 존재할 수 있다. HT(Hyper-Threading Technology)는, 신호 물리 프로세서를 사용해 스레드들을 병렬로 실행할 수 있는, 캘리포니아주, 산타 클라라의 Intel®사로부터의 기술이다. HT는 하나의 물리 프로세서(동일한 다이)에 2개의 논리 프로세서들을 통합한다. 논리 프로세서는 오퍼레이팅 시스템(OS)에 가시적이고, 코드를 실행할 수 있으며 시스템의 다른 프로세서로부터 고유한 아키텍처 상태를 유지할 수 있는 독립적인 프로세서이다. HT는, 한 세트의 실행 리소스들을 공유하는 다수의 아키텍처 상태들을 갖는 것에 의해 실현된다.
따라서, HT는 모바일 플랫폼에 멀티(논리)프로세서 시스템을 구현할 수 있게 한다. 상기한 바와 같이, 서버 시스템들과 같은, 전통적인 멀티프로세서 시스템들에는 비효율적인 메모리 할당 및 프로세서 동기화가 존재한다. 따라서, 멀티프로세서 시스템들이, 메모리와 같은 리소스들이 한정되어 있는 모바일 분야에 침투하기 시작함에 따라, 상기한 비효율성들의 최적화를 위한 필요성이 훨씬 더 중요해지 고 있다.
본 발명은 첨부 도면들의 형상들에 의해 예시적으로 설명되며 첨부 도면들의 형상들에 의해 한정되는 것은 아니다.
도 1은 실행 리소스들, 캐시들, 및 저장소를 공유하는 다수 프로세서들의 장치 블록도.
도 2a는 저장 매체에 연결되어 있는 다수 프로세서들을 갖는 시스템의 블록도.
도 2b는, 메모리에 연결되어 있는 컨트롤러 허브에 연결되어 있는 다수의 프로세서들을 갖는 시스템의 블록도.
도 3은 다수의 논리 프로세서들을 포함하는 물리 프로세서를 갖는 시스템 블록도.
도 4는 시스템 관리 메모리 공간이 중첩하는 도 3의 저장 매체.
도 5는 다수 프로세서의 시스템 관리 상태들에 대한 표현들을 저장할 수 있는, 도 4로부터의 메모리 공간 일부를 도시하는 도면.
도 6은 SMI(system management interrupt)를 처리(handle)하기 전에 제1 및 제2 프로세서를 동기화하기 위한 흐름도.
도 7은 SMI를 처리하기 전에 제1 및 제2 프로세서를 동기화하고 새로운 시스템 관리 상태를 반영하기 위해 저장 매체를 업데이트하기 위한 예시적 실시예의 흐름도.
도 8은 SMI를 처리하기 전에 제1 및 제2 프로세서를 동기화하기 위해 부트 프로세스 동안에 사용되는 동기화 바이트(synchronization byte)의 일례를 도시하는 도면.
도 9는 제1 및 제2 프로세서에 시스템 관리 메모리 공간을 효율적으로 할당하기 위한 흐름도.
다음 설명에서는, 본 발명에 대한 완전한 이해를 제공하기 위해, 구체적인 메모리 어드레스들, 메모리 사이즈들, 및 컴포넌트 구성들의 예들과 같은 다수의 구체적 세부 사항들이 기술된다. 그러나, 당업자에게는, 본 발명을 실시하는데 이러한 특정 세부 사항들이 이용될 필요가 없다는 것이 명백할 것이다. 다른 경우들로서, 루틴 부트업 단계들(예를 들어, POST(power on self-test)), 구체적인 SMM(system management mode) 구현, 및 구체적인 SMI 핸들러 코드(system management interrupt handler code)와 같은, 널리 공지되어 있는 컴포넌트들 또는 방법들은, 본 발명을 불필요하게 알기 어렵게 하는 것을 방지하기 위해, 자세하게 설명되지 않았다.
여기에서 설명되는 방법 및 장치는 멀티프로세서 동기화 및 시스템 관리 메모리 공간 할당의 최적화를 위한 것이다. 프로세서들의 동기화는 상이한 프로세서 모드로 진입하기 전에 언제든 발생할 수 있다. 예를 들어, 멀티프로세서 시스템의 복수개 프로세서들이 SMI를 수신할 때, 이들은 SMI를 처리하기 전에 동기화할 수 있다.
당업자에게는, 다수 프로세서들을 동기화하고 다수 프로세서들 사이에서 시스템 관리 공간을 효율적으로 할당하도록 개시된 방법이 임의 레벨의 컴퓨터 시스템(PDA들, 모바일 플랫폼들, 데스크탑 플랫폼들, 및 서버 플랫폼들) 뿐만 아니라 임의 갯수의 프로세서들에도 적용될 수 있다는 것이 명백할 것이다. 예를 들어, 4개 이상의 프로세서들을 가진 멀티프로세서 시스템은 이 방법을 사용해, SMM(system management mode)으로 진입하기 전에 4개의 프로세서들 모두를 동기화할 수 있다. 임의의 복수개 프로세서들이라면 반드시 2개의 프로세서들을 포함할 것이므로, 좀더 복잡한 시스템으로 본 발명을 불명료하게 하지 않기 위해, 여기에서는 2 프로세서 동기화만을 논의할 것이다.
도 1 내지 도 3은, 여기에서 설명되는 방법들을 구체화할 수 있는 소정 하드웨어의 일례들을 도시한다. 상기한 바와 같이, 여기에서 설명되는 방법들은 임의의 멀티프로세서 시스템에 사용될 수 있으므로, 본 방법들은, 반복으로 본 발명을 불명료하게 하지 않기 위해, 도 3을 참조해서만 상세하게 설명될 것이다.
도 1은 다수의 논리 프로세서들을 갖는 장치(105)의 블록도를 도시한다. 물리 프로세서는 물리 프로세서 다이 또는 단일 패키지를 의미한다. 논리 프로세서는 오퍼레이팅 시스템(OS)에 가시적이고, 코드를 실행할 수 있으며 시스템의 다른 프로세서로부터 고유한 아키텍처 상태를 유지할 수 있는 독립적인 프로세서이다. HT(Hyper-Threading Technology)는, 신호 물리 프로세서를 사용해 스레드들을 병렬로 실행할 수 있는, 캘리포니아주, 산타 클라라의 Intel®사로부터의 기술이다. HT는 하나의 물리 프로세서에 2개의 논리 프로세서들을 포함하며, 각각이 한 세트 의 프로세서 실행 리소스들을 공유하는 아키텍처 상태를 복제하는 것에 의해 실현된다.
장치(105)는 제1 프로세서(110) 및 제2 프로세서(115)를 포함할 수 있다. 장치(105)는 물리 프로세서일 수 있다. 또한, 장치(105)는 매입형 시스템(embeded system), 단일 물리 프로세서, 또는 2 이상의 프로세서들을 가진 임의의 다른 장치일 수 있다. 프로세서들(110 및 115)은 논리 프로세서들일 수도 있다. 예를 들어, 장치(105)는, 각각이 고유한 아키텍처 상태를 보유하는 아키텍처 상태 레지스터들(120 및 125)을 포함할 수 있다. 장치(105)는 별도의 아키텍처 상태를 보유하기 위해 그것과 연관된 아키텍처 상태 레지스터를 각각 갖는 2 이상의 논리 프로세서들을 포함할 수도 있다는 것을 쉽게 알 수 있다. 프로세서들(110 및 115)은 동일한 실행 리소스들(130), 캐시들(135), 및 저장 매체(140)를 공유한다.
저장 매체(140)는, 데이터가 저장될 수 있는 임의 스타일의 저장소일 수 있다. 예를 들어, 저장 매체(140)는 정보를 저장하기 위한 레지스터들일 수 있다. 저장 매체(140)는 캐시(135)의 다른 레벨일 수도 있다. 저장 매체(140)는 장치(105)에 배치된 시스템 메모리의 형태일 수도 있다.
도 2a를 참조하면, 다수 프로세서들을 갖는 시스템의 일례가 도시되어 있다. 시스템은 제1 프로세서(205) 및 제2 프로세서(210)를 포함할 수 있다. 프로세서(205 및 210)는, 각각의 프로세서가 별도의 다이 또는 별도의 패키지에 존재하는 물리 프로세서들일 수 있다. 또한, 시스템은 프로세서들(205 및 210)을 도 2a의 저장 매체(220) 또는 도 2b의 컨트롤러 허브(230)에 연결하기 위한 상호접속 (215;interconnect)을 포함할 수도 있다. 도 2b에 나타낸 바와 같이, 컨트롤러 허브(230)는 제2 상호접속(235)에 의해 저장 매체(220)에 연결될 수도 있다.
도 3은 다수 프로세서들을 가진 시스템의 일례를 도시한다. 프로세서(305)는, 실행 리소스들(330), 캐시(335), 및 시스템 버스(340)를 공유하는 제1 프로세서(310) 및 제2 프로세서(315)를 포함할 수 있다. 아키텍처 상태 레지스터들(320 및 325)은 각각 프로세서들(320 및 325)의 고유한 아키텍처 상태들을 보유할 수 있다. 시스템 버스(340)는 프로세서(305)를 컨트롤러 허브(345)에 연결한다. 컨트롤러 허브(345)는 제2 버스(350)에 의해 저장 매체(355)에 연결될 수 있다. 저장 매체(355)는 데이터를 저장하는 임의의 장치일 수 있다. 예를 들어, 저장 매체는 시스템 메모리일 수 있다. 시스템 메모리는 SRAM(synchronous random access memory), DRAM(dynamic random access memory), SDRAM(synchronous dynamic random access memory), DDR(double data-rate RAM), R(Rambus), 또는 임의의 다른 시스템 메모리 유형을 포함할 수도 있다. 또한, 저장 매체(355)는 레지스터, 플래시 메모리, 또는 캐시(335)의 다른 레벨일 수도 있다.
도 4 및 도 5를 살펴보면, 저장 매체(355)내에서의 제1 프로세서 및 제2 프로세서를 위한 SMM(system management mode) 메모리 공간의 할당을 위한 예들이 도시되어 있다. 도 4는, 제1 프로세서에 할당될 수 있는 제1 SMM 메모리 공간(405) 및 제2 프로세서에 할당될 수 있는 제2 SMM 메모리 공간(410)을 도시한다. 제1 SMM 공간(405) 및 제2 SMM 공간(410)은 중첩되어 중첩 구역(415;overlapping region)을 발생시킨다.
제1 비-중첩 구역(420), 제2 비-중첩 구역(425), 및/또는 제3 중첩 구역(435)은 각각의 프로세서를 위해 별도의 메모리 공간들을 유지하는데 사용될 수 있다. 예를 들어, 별도의 메모리 공간들(420 및 425)은 제1 및 제2 프로세서의 저장-상태 영역을 저장하는데 사용될 수 있다. 다른 예로서, 비-중첩 구역(420)은 제1과 제2 프로세서 베이스 어드레스(SMBase)간의 오프셋일 수 있는 한편, 435 및 425는 제1 및 제2 프로세서의 저장-상태 영역을 저장하는데 사용된다. 또한, 도 4는 제1 프로세서 및/또는 제2 프로세서를 위한 동기화 정보를 저장하는데 사용될 수 있는, 중첩 구역(415) 내의 동기화 영역(430;synchronization area)을 도시한다.
도 5를 참조하면, 동기화 영역(430)의 일례가 도시되어 있다. 동기화 영역(430)은, 제1 프로세서 및/또는 제2 프로세서의 상태를 표현하는 동기화 바이트일 수 있다. 도 6 내지 도 10을 참조하여 다음에서 논의되는 바와 같이, 동기화 영역(430)은 도 3에 나타낸 저장 매체(355)내의 어디에든 저장될 수 있다. 셀들(505, 510, 및 515)은, 각각 셀들(520, 525, 및 530)에서 설명된 상태들을 표현하기 위해 동기화 바이트가 포함할 수 있는 값들의 예들을 도시한다. 프로세서 상태들 뿐만 아니라 도 4 및 도 5 또한, 도 6 내지 도 10에서 설명되는 방법들을 참조하여 좀더 상세하게 논의될 것이다.
도 6을 참조하면, SMI를 처리하기 전에 제1 프로세서와 제2 프로세서를 동기화하기 위한 방법이 하이-레벨 흐름도로써 도시되어 있다. 블록 605에서, SMI가 수신된다. 대개 SMI는 프로세서로부터의 서비스를 요청하기 위해 발생된다. SMI는 비동기 (하드웨어) 또는 동기 (소프트웨어) 이벤트에 의해 발생될 수 있다. SMI가 시스템에서 발생될 때, 시스템의 각 프로세서는 SMI를 수신/래치하여야 한다.
일례로서, 블록 605의 제1 SMI는 도 3에 나타낸 컨트롤러 허브(345)에 의해 발생될 수 있다. 다른 예로서, 블록 605의 제1 SMI는 제1 프로세서내에, 제2 프로세서내에, 또는 시스템에 별도로 위치하는 (나타내지 않은) 컨트롤러에 의해 발생될 수도 있다. 또 다른 예로서, 블록 605의 제1 SMI는, 도 3에 도시된 프로세서(305)와 같은, 물리 프로세서 또는, 도 3의 컨트롤러 허브(345)와 같은, 컨트롤러 허브의 핀(pin)에 대한 논리 레벨을 변경하는 것에 의해 발생될 수도 있다.
블록 610에서, 제1 프로세서는 제2 프로세서의 상태를 점검한다. 제2 프로세서의 상태를 점검하는 것은 프로세서들간의 통신을 통해 수행될 수도 있다. 일례로서, 도 7은, 블록 705에서, 제1 프로세서가, 도 3 및 도 4의 저장 매체(355)와 같은, 저장 매체를 조사하는 것에 의해 제2 프로세서의 상태를 점검할 수 있는 방법을 도시한다.
저장 매체(355)는, 정보를 저장하는 임의의 매체일 수 있다. 일례로서, 저장 매체(355)는 제1 프로세서, 제2 프로세서, 또는 (도시되지 않은) 멀티프로세서 시스템에 위치하는 하나 이상의 레지스터일 수도 있다. 다른 예로서, 저장 매체(355)는 캐시(335)의 일부분 또는 프로세서(305)에 위치하지 않는 임의의 다른 캐시일 수도 있다. 또 다른 예로서, 저장 매체(355)는 시스템 메모리일 수도 있다.
저장 매체(355)는 제1 프로세서 및/또는 제2 프로세서의 직접적인 상태 정보를 보유할 수도 있다. 또한, 저장 매체(355)는 제1 프로세서 및/또는 제2 프로세 서의 상태를 표현하는 정보를 보유할 수도 있다. 예를 들어, 저장 매체(355)는, 도 4 및 도 5에 도시된, 동기화 영역(430)과 같은, 동기화 영역에 상태 정보를 저장할 수도 있다. 동기화 영역(430)은, 상이한 프로세서 상태들을 표현하는 상이한 값들을 저장할 수 있다.
유익한 일례로서, 동기화 영역(430)에 저장된 제1 값은, 제2 프로세서가 비활성 상태라는 것을 표현할 수 있다. 비활성 상태는, 휴면(sleep), 스탠바이, 일시 정지(suspend), 하이버네이션(hibernation), SIPI-대기(wait-for-SIPI), 깊은 휴면(deep sleep), 리셋, 또는 제2 프로세서가 인터럽트들에 응답하지 않는 임의의 다른 모드와 같은, 임의의 저전력 상태일 수 있다. 부가적으로, 동기화 영역(430)에 저장된 제2 값은, 이 또한 흔히 SMM(system management mode)이라고 하는, 제2 프로세서가 활성 상태이지만 SMI 모드는 아니라는 것을 표현할 수도 있다. SMI 모드는 아닌 활성 상태는, 제2 프로세서가 인터럽트들에 응답 중이며 그리고/또는 코드들을 실행 중이지만 SMM인 것은 아닌 임의의 상태일 수 있다. 또한, 동기화 영역(430)에 저장된 제3 값은, 제2 프로세서가 활성 상태이며 SMI 모드라는 것을 표현할 수도 있다. SMI 모드인 활성 상태는, 제2 프로세서가 활성 상태이며 SMM이기도 한 임의의 상태일 수 있다.
다시 도 5를 참조하면, 동기화 영역(430)에 동기 바이트(synchbyte)로서 저장될 수 있는 대표적인 값들의 예들이 도시되어 있다. 동기화 영역(430)이 셀 510에 제1 값 01b을 저장할 때, 그러한 제1 값은, 셀 520에서 설명되는 바와 같이, 제2 프로세서가 비활성/휴면 상태라는 것을 표현한다. 그러나, 동기화 영역(430)이, 셀 505에 도시된 바와 같이, 제2 값 00b을 저장하면, 그러한 제2 값은, 제2 프로세서가 활성이지만 SMI 모드는 아니라는 것을 표현하므로, 제1 프로세서는 셀 520에서 설명되는 바와 같이 제2 프로세서를 대기할 수 있다. 마찬가지로, 동기화 영역(430)이, 셀 515에 도시된 바와 같이, 제3 값 10b을 저장하면, 그러한 제3 값은, 제2 프로세서가 활성이며 SMI 모드라는 것을 표현한다. 따라서, 제1 프로세서는, 셀 530에서 설명되는 바와 같이, 제1 및 제2 프로세서들 모두에서 SMI를 처리하게 될 수 있다.
다시 도 6을 참조하면, 블록 605로부터의 SMI가 블록 615에서 처리된다. SMI를 처리하는 단계는 대부분, 하드웨어 또는 소프트웨어에 의해 형성된 요청을 서비스하는 단계를 수반한다. SMI를 처리하는 단계는, 발생된 SMI 요청을 서비스하는 무엇인가를 포함할 수 있다. 예를 들어, SMI를 처리하는 단계는 SMI를 서비스하기 위해 SMI 핸들러 코드를 실행시키는 단계를 포함할 수 있다.
블록 620에 나타낸 바와 같이, 동기화 영역(430)이, 제2 프로세서가 비활성 상태라는 것을 표현하는 값을 저장한다면, 제1 프로세서는, 제2 프로세서가 SMI 모드로 진입하는 것을 대기할 필요없이, 블록 605에서 발생된 SMI를 처리할 수 있다. 일단 제2 프로세서가 기동(wake-up;인터럽트들에 응답하는 상태로 진입)하기 시작하면, 제2 프로세서는, 도 7의 블록 710에서와 같이, 그것의 현재 상태를 반영하기 위해 저장 매체를 업데이트할 수 있다.
제2 프로세서가 인터럽트들에 응답은 하지만 SMI 모드는 아닌 상태로 진입하면, 동기화 영역(430)의 값은, 제2 프로세서에 의해 활성이지만 SMI 모드는 아닌 상태를 반영하도록 업데이트되어야 한다. 동기화 영역(430)이 활성이지만 SMI 모드는 아닌 상태를 표현하는 동안, 제1 프로세서는, 블록 625에 도시된 바와 같이, 블록 605로부터의 SMI를 처리하기 전에, 제2 프로세서가 SMI 모드로 진입하는 것을 대기하여야 한다. 마찬가지로, 제2 프로세서가 SMI 모드로 진입할 때, 제2 프로세서는 동기화 영역을, 제2 프로세서가 이제는 SMI 모드라는 것을 표현하는 값, 도 5에서의 10b로 업데이트하여야 한다. 제2 프로세서의 상태가 활성이고 SMI 모드라면, SMI는 제1 및 제2 프로세서들 모두에서 제1 프로세서 아니면 제2 프로세서로써 처리될 수 있다.
도 8을 살펴보면, 2 프로세서 부트 시퀀스 동안의 최적화된 동기화의 일례가 하이-레벨 흐름도 포맷으로 도시되어 있다. 동기화 값(805)은, 도 4 및 도 5에 도시된 동기화 영역(430)이 어떤 값을 보유할 수 있는지를 설명하기 위해, 흐름도 전체에 걸쳐 표시되어 있다. 동기화 값(805)은 저장 매체(355)의 어디에든 저장될 수 있다. 이 예의 경우, 동기화 값(805)은 설명을 좀더 간단하게 하기 위해 도 5의 테이블의 값들과 일치하여야 한다. 따라서, 블록 810에서의 초기화/리셋시에, 동기화 값(805)은, 제2 프로세서가 비활성이라는 것을 표현하는 01b로 설정될 수 있다. 이때, 임의의 SMI들이 발생된다면, 제2 프로세서는 SMI를 래치/수신할 수 있지만, SMI들을 처리해서는 안된다.
그러나, 제1 프로세서는, SMI를 수신한 후, 동기화 값(805)을 판독하기 위해 동기화 영역(430)을 조사하는 것에 의해, 제2 프로세서의 상태를 점검할 수 있다. 그 다음, 동기화 값(805)이, 제2 프로세서가 비활성인 것을 표현하는 01b라면, 제1 프로세서는, 제2 프로세서를 대기할 필요없이, SMI를 처리하게 될 수 있다. 또한, 제1 프로세서는, 블록 815에서의 SMI를 초기화하는 단계, 블록 820에서의 POST(power on self test)를 완결하는 단계, 및 블록 825에서의 제2 프로세서를 기동하는 단계와 같은, 다른 루틴 부트 단계들도 완결할 수 있다.
제2 프로세서가 블록 830에서 기동할 때, 제2 프로세서는, 자신이 활성이지만 SMI 모드는 아니라는 것을 표현하기 위해, 동기화 값(805)을 00b로 설정하여야 한다. 제1 프로세서는, 블록 835에서, SMI로 진입할 수 있고, 동기화 값(805)을 조사하는 것에 의해 제2 프로세서의 상태를 점검하여야 한다. 동기화 값(805)이 현재는 00b로 설정되어 있으므로, 제1 프로세서는, 제2 프로세서가 SMI로 진입하여 동기화 값(805)을 10b로 설정할 때까지, 대기/루프(waite/loop)할 수 있다.
그 다음, 블록 840에서, 제2 프로세서는 SMI 모드로 진입할 수 있고, 그것이 활성이며 SMI 모드라는 것을 표현하기 위해, 동기화 값(805)을 10b로 설정할 수 있다. 이 시점에서, 제2 프로세서는, 제1 프로세서가, 그것이 활성이지만 SMI 모드는 아니라는 것을 표현하기 위해 동기화 값(805)을 00b로 설정할 때까지, SMI 모드에서 대기/루프할 수 있다. 제2 프로세서가 대기하는 동안, 제1 프로세서는, 블록 845에서, 제1 및 제2 프로세서들 모두에서 SMI를 처리하게 된다. 일단 제1 프로세서가 제1 및 제2 프로세서 모두에서 SMI를 처리하고 나면, 제1 프로세서는, 블록 850에서, SMI 모드를 벗어날 수 있고 동기화 값(805)을 00b로 설정할 수 있다. 그 다음, 제2 프로세서는, 블록 855에서, SMI 모드를 벗어날 수 있다.
도 9를 참조하면, 시스템 관리 메모리 공간을 효율적으로 할당하기 위한 방 법이 도시되어 있다. 블록 905에서는, 도 4의 제1 메모리 공간/범위(405;first memory space/range)와 같은, 제1 시스템 관리 메모리 공간/범위가 제1 프로세서에 할당된다. 블록 910에서는, 제1 메모리 공간(405)과 제2 메모리 공간(410)이 중첩되어 중첩 구역/범위(overlapping region/range;415)를 발생시키도록, 제2 메모리 공간/범위(410)와 같은, 제2 시스템 관리 메모리 공간/범위가 제2 프로세서에 할당된다. 제1 메모리 공간(405)과 제2 메모리 공간(410)의 중첩은, 각각, 도 4에 도시된 비-중첩 구역들/범위들(420 및 425)과 같은, 제1 및 제2 비-중첩 구역/범위를 남길 수 있다.
중첩 구역(415)은 SMI 핸들러 코드와 같은 시스템 관리 데이터를 저장하는데 사용될 수 있다. 또한, 중첩 구역(415)은 제1 및 제2 프로세서의 저장-상태 영역 중 하나 또는 모두를 저장하는데도 사용될 수 있다. 제1 및 제2 비-중첩 구역들(420 및 425)이, 중첩 구역(415)에 대해, 도 4에 도시된 것과는 상이한 방향으로 배치될 수도 있다는 것이 명백하다.
비-중첩 구역들(420 및 425)은 임의 종류의 데이터를 저장하는데도 사용될 수 있다. 예를 들어, 제1 비-중첩 구역(420)은 제1 프로세서를 위한 저장-상태 영역을 저장할 수 있는 한편, 제2 비-중첩 구역(425)은 제2 프로세서를 위한 저장-상태 영역을 저장할 수 있다. 다른 예로서, 제1 비-중첩 구역(420)은 제1과 제2 프로세서 SMM 공간 사이의 오프셋일 수 있는 한편, 중첩 구역(415)의 저장-상태 영역(435) 및 비-중첩 구역(425)은 제1 및 제2 프로세서의 저장-상태 영역을 별도로 저장하는데 사용될 수도 있다. 또한, 비-중첩 구역들(420 및 425)은 임의의 메모리 사이즈일 수 있다. 일례로서, 제1 및 제2 비-중첩 구역들(420 및 425)은 각 프로세서의 저장-상태 영역의 사이즈일 수 있다. 통상적인 저장-상태 영역은 2kB일 수 있지만, 사이즈가 달라질 수도 있다. 제1 메모리 공간(405)과 제2 메모리 공간(410)간의 오프셋 또한, 비-중첩 구역(420)에 의해 도시된 바와 같이, 사이즈가 달라질 수 있다. 예를 들어, 오프셋은 저장-상태 영역의 사이즈이거나 어느 한 쪽의 메모리 공간에 저장된 최대 SMI 핸들러 코드의 사이즈일 수도 있다.
중첩 구역(415)의 일부는, 도 4에 도시된 바와 같이, 양 프로세서들의 시스템 관리 상태를 동기화 영역(430)에 저장할 수도 있는데, 그럼에도 불구하고, 동기화 영역(430)은 저장 매체(355)의 어디에든 배치될 수 있다. 그러나, 양자의 프로세서들이 동기화 영역(430)으로부터 용이하게 정보를 판독하고 동기화 영역(430)을 변경할 수 있도록, 중첩 구역에 동기화 영역(430)을 저장하는 것이 바람직할 수 있다.
상술된 바와 같이, 시스템 관리에서의 효율적인 동기화 및 메모리 할당을 위한 필요성은, 멀티프로세서 시스템들이 멀티프로세서 시스템들이 이용 가능한 적은 리소스들을 가짐에 따라, 더 중요해지고 있다. 프로세서가 직접적으로 또는 저장 매체를 통해 상태를 서로 전달할 수 있게 하는 것은, 멀티프로세서 시스템으로 하여금, 실행 시간 또는 리소스들을 전혀 낭비하지 않으면서, 효율적으로 동기화할 수 있게 한다. 또한, 각 프로세서의 시스템 관리 메모리 공간/범위를 중첩시키는 것은 유용한 메모리 공간을 보존할 뿐만 아니라 동기화 정보가 임의의 프로세서에 의해 용이하게 저장되고 변경될 수 있게 한다.
상기 명세서에서, 본 발명은 그것에 관한 특정 실시예들을 참조하여 설명되었다. 그러나, 첨부된 청구항들에서 기술되는 본 발명의 광범위한 정신 및 범위를 벗어나지 않으면서, 그에 대한 다양한 변경들 및 변화들이 이루어질 수 있다는 것이 명백할 것이다. 따라서, 명세서 및 도면들은 한정적인 의미가 아니라 예시적인 의미로 간주되어야 한다.

Claims (58)

  1. SMI(system management interrupt)를 수신하는 단계; 및
    제1 프로세서에서 제2 프로세서의 상태를 점검하는 단계를 포함하고,
    상기 제2 프로세서의 상태가 비활성(inactive)인 것에 응답하여 상기 SMI를 상기 제1 프로세서에서 처리하고,
    상기 제2 프로세서의 상태가 활성(active)이지만 SMI 모드(SMM)는 아닌 것에 응답하여 상기 제2 프로세서가 SMM으로 진입하는 것을 대기하며,
    상기 제2 프로세서의 상태가 활성이고 SMM에 있는 것에 응답하여 상기 제1 및 제2 프로세서들 모두에서 상기 SMI를 처리하는, 방법.
  2. 제1항에 있어서,
    제1 프로세서에서 제2 프로세서의 상태를 점검하는 상기 단계는,
    상기 제1 프로세서에서 상기 제2 프로세서의 상태를 나타내는 값들을 저장하는 저장 매체를 조사하는 단계를 포함하는 방법.
  3. 제2항에 있어서,
    상기 저장 매체는 시스템 메모리인 방법.
  4. 제3항에 있어서,
    상기 시스템 메모리는 상기 제2 프로세서의 상태를 나타내는 값들을 동기 바이트(synchbyte)에 저장하는 방법.
  5. 제4항에 있어서,
    상기 동기 바이트는, 제1 값을 가질 경우, 상기 제2 프로세서가 비활성 상태라는 것을 나타내는 방법.
  6. 제4항에 있어서,
    상기 동기 바이트는, 제2 값을 가질 경우, 상기 제2 프로세서가 활성이지만 SMM는 아니라는 것을 나타내는 방법.
  7. 제4항에 있어서,
    상기 동기 바이트는, 제3 값을 가질 경우, 상기 제2 프로세서가 활성 상태이며 SMM에 있다는 것을 나타내는 방법.
  8. 제2항에 있어서,
    상기 저장 매체는 레지스터인 방법.
  9. 제8항에 있어서,
    상기 레지스터는 상기 제2 프로세서에 배치되어 있는 방법.
  10. 제2항에 있어서,
    상기 저장 매체의 디폴트 값은 상기 제2 프로세서에 대한 비활성 상태를 나타내는 방법.
  11. 제2항에 있어서,
    상기 제2 프로세서의 현재 상태를 반영하기 위해, 상기 제2 프로세서에서 상기 저장 매체를 업데이트하는 단계를 더 포함하는 방법.
  12. 제11항에 있어서,
    상기 저장 매체를 업데이트하는 단계는,
    상기 제2 프로세서가 저전력 상태로 진입하는 것에 응답하여, 상기 저장 매체에 비활성 상태를 나타내기 위한 값을 기입하는 단계를 포함하는 방법.
  13. 제11항에 있어서,
    상기 저장 매체를 업데이트하는 단계는,
    상기 제2 프로세서가 기동(wake-up)하고 있지만 SMM은 아니라는 것에 응답하여, 활성이지만 SMM은 아닌 상태를 나타내기 위한 값을 상기 저장 매체에 기입하는 단계를 포함하는 방법.
  14. 제11항에 있어서,
    상기 저장 매체를 업데이트하는 단계는,
    상기 제2 프로세서가 SMM으로 진입하는 것에 응답하여, 활성이며 SMM 상태라는 것을 나타내기 위한 값을 상기 저장 매체에 기입하는 단계를 포함하는 방법.
  15. 제1항에 있어서,
    상기 SMI를 수신하기 전에, 상기 SMI를 발생시키는 단계를 더 포함하는 방법.
  16. 제15항에 있어서,
    상기 SMI를 발생시키는 단계는 소프트웨어를 통해 수행되는 방법.
  17. 제15항에 있어서,
    상기 SMI를 발생시키는 단계를 하드웨어를 통해 수행되는 방법.
  18. 제1항에 있어서,
    상기 제1 및 제2 프로세서들은 논리 프로세서들(logical processors)인 방법.
  19. 제1항에 있어서,
    상기 제1 및 제2 프로세서들은 물리 프로세서들(physical processors)인 방법.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 저장 매체에 결합된 제1 논리 프로세서 및 제2 논리 프로세서를 포함하고,
    상기 저장 매체는 상기 제2 논리 프로세서의 시스템 관리 상태를 유지하기 위한 것이며,
    상기 제1 및 제2 논리 프로세서는, SMI를 수신하는 것에 응답하여, 상기 저장 매체에 유지된 상기 제2 논리 프로세서의 상기 시스템 관리 상태에 기초하여 상기 SMI를 처리하기 위해 시스템 관리 모드(SMM)로의 진입을 동기화시키는 마이크로프로세서.
  32. 제31항에 있어서,
    상기 저장 매체는 상기 논리 프로세서들 중 하나의 레지스터인 마이크로프로세서.
  33. 제31항에 있어서,
    상기 저장 매체는, 상기 제2 논리 프로세서가 비활성 상태라는 것을 나타내는 마이크로프로세서.
  34. 제31항에 있어서,
    상기 저장 매체는, 상기 제2 논리 프로세서가 활성이지만 SMI 상태가 아니라는 것을 나타내는 마이크로프로세서.
  35. 제31항에 있어서,
    상기 저장 매체는, 상기 제2 논리 프로세서가 SMI 모드라는 것을 나타내는 마이크로프로세서.
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 제1 및 제2 프로세서; 및
    상기 제1 프로세서 및 상기 제2 프로세서에 결합되며, 적어도 상기 제2 프로세서의 시스템 관리 상태를 유지하기 위한 저장 매체를 포함하며,
    상기 제1 프로세서 및 상기 제2 프로세서는, SMI를 수신하는 것에 응답하여, 상기 저장 매체에 유지된 적어도 상기 제2 프로세서의 상기 시스템 관리 상태에 기초하여 상기 SMI를 처리하기 위해 SMM으로의 진입을 동기화시키는 시스템.
  44. 제43항에 있어서,
    상기 제1 및 제2 프로세서가 SMM으로의 진입을 동기화시키는 것은, 상기 제1 프로세서가, 적어도 상기 제2 프로세서의 상기 시스템 관리 상태가 상기 제2 프로세서가 비활성이라는 것을 나타내는 것에 응답하여, 상기 제2 프로세서가 SMM으로 진입하는 것을 대기하지 않고 상기 SMI를 처리하는 것을 포함하는 시스템.
  45. 제43항에 있어서,
    상기 제1 및 제2 프로세서가 SMM으로의 진입을 동기화시키는 것은, 상기 제1 프로세서가, 적어도 상기 제2 프로세서의 상기 시스템 관리 상태가 상기 제2 프로세서가 활성이지만 SMM이 아니라는 것을 나타내는 것에 응답하여, 상기 제2 프로세서가 SMM으로 진입하고 적어도 상기 제2 프로세서의 상기 시스템 관리 상태를 갱신하여 상기 제2 프로세서가 SMM으로 진입하였음을 나타내는 것을 대기하는 것을 포함하는 시스템.
  46. 제43항에 있어서,
    상기 제1 및 제2 프로세서가 SMM으로의 진입을 동기화시키는 것은, 적어도 상기 제2 프로세서의 상기 시스템 관리 상태가 상기 제2 프로세서가 활성이고 SMM에 있다는 것을 나타내는 것에 응답하여, 상기 SMI가 상기 제1 및 제2 프로세서들에서 처리되는 시스템.
  47. 제43항에 있어서,
    상기 저장 매체는 시스템 메모리를 포함하는 시스템.
  48. 제47항에 있어서,
    상기 시스템 메모리는, 적어도 상기 제2 프로세서의 상기 시스템 관리 상태를 나타내는 동기 바이트를 유지하기 위한 것이며,
    상기 저장 매체는 상기 시스템 메모리 및 상기 제1 및 제2 프로세서 사이에 결합되어 상기 동기 바이트를 캐싱(caching)하기 위한 캐시 메모리를 더 포함하는 시스템.
  49. 제43항에 있어서,
    상기 저장 매체는 레지스터를 포함하는 시스템.
  50. 제43항에 있어서,
    상기 저장 매체는 플래시 메모리를 포함하는 시스템.
  51. 제48항에 있어서,
    상기 제1 및 제2 프로세서들은, 상기 캐시 메모리로의 액세스를 공유하는 논리 프로세서들이고,
    상기 제1 프로세서, 상기 제2 프로세서 및 상기 캐시 메모리는 단일 패키지 상에 배치되는 시스템.
  52. 제43항에 있어서,
    상기 제1 및 제2 프로세서들은 물리 프로세서들인 시스템.
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
KR1020067006666A 2003-10-06 2004-10-06 효율적인 시스템 관리 동기화 및 메모리 할당 KR100879654B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/680,615 US7363411B2 (en) 2003-10-06 2003-10-06 Efficient system management synchronization and memory allocation
US10/680,615 2003-10-06

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020077029328A Division KR20070121857A (ko) 2003-10-06 2004-10-06 효율적인 시스템 관리 동기화 및 메모리 할당

Publications (2)

Publication Number Publication Date
KR20060085649A KR20060085649A (ko) 2006-07-27
KR100879654B1 true KR100879654B1 (ko) 2009-01-20

Family

ID=34435372

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020067006666A KR100879654B1 (ko) 2003-10-06 2004-10-06 효율적인 시스템 관리 동기화 및 메모리 할당
KR1020077029328A KR20070121857A (ko) 2003-10-06 2004-10-06 효율적인 시스템 관리 동기화 및 메모리 할당

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020077029328A KR20070121857A (ko) 2003-10-06 2004-10-06 효율적인 시스템 관리 동기화 및 메모리 할당

Country Status (9)

Country Link
US (1) US7363411B2 (ko)
EP (2) EP1671230B1 (ko)
KR (2) KR100879654B1 (ko)
CN (1) CN1890640B (ko)
AT (1) ATE474266T1 (ko)
CA (1) CA2541930A1 (ko)
DE (1) DE602004028139D1 (ko)
TW (1) TWI283370B (ko)
WO (1) WO2005036398A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102500172B1 (ko) 2022-11-16 2023-02-14 젬텍(주) 장치 간의 메모리 동기화 방법, 제어 장치 및 시스템

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7296179B2 (en) * 2003-09-30 2007-11-13 International Business Machines Corporation Node removal using remote back-up system memory
US20050097208A1 (en) * 2003-10-31 2005-05-05 International Business Machines Corporation Node removal using remote back-up system memory
CN100474214C (zh) * 2004-08-05 2009-04-01 松下电器产业株式会社 信息处理装置
US8812781B2 (en) * 2005-04-19 2014-08-19 Hewlett-Packard Development Company, L.P. External state cache for computer processor
US20070239917A1 (en) * 2005-12-09 2007-10-11 Ryuji Orita Interrupt routing within multiple-processor system
US7464211B2 (en) * 2006-09-14 2008-12-09 International Business Machines Corporation Method of detecting and recovering a lost system management interrupt (SMI) in a multiprocessor (MP) environment
JP5084372B2 (ja) * 2007-07-03 2012-11-28 キヤノン株式会社 データ処理装置およびデータ処理装置の制御方法
US7965532B2 (en) * 2007-08-28 2011-06-21 Micron Technology, Inc. Enhanced performance memory systems and methods
US7769938B2 (en) * 2007-09-06 2010-08-03 Intel Corporation Processor selection for an interrupt identifying a processor cluster
US7913018B2 (en) * 2007-12-28 2011-03-22 Intel Corporation Methods and apparatus for halting cores in response to system management interrupts
JP4729062B2 (ja) 2008-03-07 2011-07-20 株式会社東芝 メモリシステム
US7797473B2 (en) * 2008-06-05 2010-09-14 Dell Products, Lp System for executing system management interrupts and methods thereof
US7991933B2 (en) * 2008-06-25 2011-08-02 Dell Products L.P. Synchronizing processors when entering system management mode
US8024504B2 (en) * 2008-06-26 2011-09-20 Microsoft Corporation Processor interrupt determination
US20090327556A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Processor Interrupt Selection
US7779191B2 (en) * 2008-07-29 2010-08-17 Nvidia Corporation Platform-based idle-time processing
US8151027B2 (en) * 2009-04-08 2012-04-03 Intel Corporation System management mode inter-processor interrupt redirection
US8578138B2 (en) * 2009-08-31 2013-11-05 Intel Corporation Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
CN102667725B (zh) * 2010-01-13 2015-09-16 马维尔以色列(M.I.S.L.)有限公司 用于媒体处理的硬件虚拟化
TW201220200A (en) * 2010-11-12 2012-05-16 Inventec Corp Method for executing system management interrupt
CN103795947B (zh) * 2012-10-31 2017-02-08 晨星软件研发(深圳)有限公司 使用在视频信号处理装置中的存储器空间配置方法
CN103235771A (zh) * 2013-04-24 2013-08-07 南京龙渊微电子科技有限公司 基于寄存器窗口互相重叠的多核间数据交换方法及装置
US9405488B1 (en) * 2013-06-21 2016-08-02 Emc Corporation System and method for storage management
CN104331388B (zh) * 2013-08-28 2018-09-11 威盛电子股份有限公司 微处理器及在微处理器的处理核间同步的方法
US10474596B2 (en) * 2015-06-25 2019-11-12 Intel Corporation Providing dedicated resources for a system management mode of a processor
US11874716B2 (en) 2015-08-05 2024-01-16 Suunto Oy Embedded computing device management
US11137820B2 (en) 2015-12-01 2021-10-05 Amer Sports Digital Services Oy Apparatus and method for presenting thematic maps
US11210299B2 (en) 2015-12-01 2021-12-28 Amer Sports Digital Services Oy Apparatus and method for presenting thematic maps
US11215457B2 (en) 2015-12-01 2022-01-04 Amer Sports Digital Services Oy Thematic map based route optimization
US11144107B2 (en) 2015-12-01 2021-10-12 Amer Sports Digital Services Oy Apparatus and method for presenting thematic maps
US11838990B2 (en) 2015-12-21 2023-12-05 Suunto Oy Communicating sensor data in wireless communication systems
FI127926B (en) 2015-12-21 2019-05-31 Suunto Oy Sensor-based context management
US11587484B2 (en) 2015-12-21 2023-02-21 Suunto Oy Method for controlling a display
DE102016015695A1 (de) 2015-12-21 2017-06-22 Suunto Oy Aktivitätsintensitätspegel-Bestimmung
US11541280B2 (en) 2015-12-21 2023-01-03 Suunto Oy Apparatus and exercising device
US11284807B2 (en) 2015-12-21 2022-03-29 Amer Sports Digital Services Oy Engaging exercising devices with a mobile device
US10169248B2 (en) 2016-09-13 2019-01-01 International Business Machines Corporation Determining cores to assign to cache hostile tasks
US10204060B2 (en) * 2016-09-13 2019-02-12 International Business Machines Corporation Determining memory access categories to use to assign tasks to processor cores to execute
US9678865B1 (en) 2016-09-23 2017-06-13 International Business Machines Corporation Pre-allocating save areas of a memory
DE102017009171A1 (de) * 2016-10-17 2018-04-19 Amer Sports Digital Services Oy Eingebettete rechenvorrichtung
US11703938B2 (en) 2016-10-17 2023-07-18 Suunto Oy Embedded computing device
CN107450710B (zh) * 2017-07-31 2021-02-26 Oppo广东移动通信有限公司 应用周期同步管理方法、装置、存储介质及电子设备
US11061585B1 (en) * 2017-10-19 2021-07-13 EMC IP Holding Company, LLC Integration of NVMe device with DRAM cache system and method
US10521137B1 (en) 2017-10-31 2019-12-31 EMC IP Holding Company LLC Storage device array integration of dual-port NVMe device with DRAM cache and hostside portion of software stack system and method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093375A2 (en) * 2001-05-11 2002-11-21 Intel Corporation Smm loader and execution mechanism for component software for multiple architectures

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781187A (en) * 1994-05-31 1998-07-14 Advanced Micro Devices, Inc. Interrupt transmission via specialized bus cycle within a symmetrical multiprocessing system
US6564371B1 (en) * 1998-08-26 2003-05-13 Intel Corporation Dual software images with fall-back
US6571333B1 (en) * 1999-11-05 2003-05-27 Intel Corporation Initializing a memory controller by executing software in second memory to wakeup a system
US20020099893A1 (en) * 2001-01-24 2002-07-25 Nguyen Tuyet-Huong Thi System and method for the handling of system management interrupts in a multiprocessor computer system
US7277952B2 (en) * 2001-09-28 2007-10-02 Microsoft Corporation Distributed system resource protection via arbitration and ownership
US6662272B2 (en) * 2001-09-29 2003-12-09 Hewlett-Packard Development Company, L.P. Dynamic cache partitioning
US6775728B2 (en) 2001-11-15 2004-08-10 Intel Corporation Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework
US7152169B2 (en) * 2002-11-29 2006-12-19 Intel Corporation Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093375A2 (en) * 2001-05-11 2002-11-21 Intel Corporation Smm loader and execution mechanism for component software for multiple architectures

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102500172B1 (ko) 2022-11-16 2023-02-14 젬텍(주) 장치 간의 메모리 동기화 방법, 제어 장치 및 시스템

Also Published As

Publication number Publication date
EP2230600A1 (en) 2010-09-22
EP1671230A1 (en) 2006-06-21
ATE474266T1 (de) 2010-07-15
CA2541930A1 (en) 2005-04-21
WO2005036398A1 (en) 2005-04-21
CN1890640B (zh) 2010-10-13
TW200527296A (en) 2005-08-16
US20050086405A1 (en) 2005-04-21
DE602004028139D1 (de) 2010-08-26
CN1890640A (zh) 2007-01-03
US7363411B2 (en) 2008-04-22
TWI283370B (en) 2007-07-01
KR20070121857A (ko) 2007-12-27
EP1671230B1 (en) 2010-07-14
KR20060085649A (ko) 2006-07-27

Similar Documents

Publication Publication Date Title
KR100879654B1 (ko) 효율적인 시스템 관리 동기화 및 메모리 할당
US7493435B2 (en) Optimization of SMI handling and initialization
US7725609B2 (en) System memory device having a dual port
US20070260827A1 (en) Method to support heterogeneous memories
US11782645B2 (en) Efficiently storing computer processor data structures in computer memory
US20110055469A1 (en) Providing State Storage In A Processor For System Management Mode
US20190095220A1 (en) Multicore framework for use in pre-boot environment of a system-on-chip
US20110167253A1 (en) Multi-processor systems and methods thereof
EP0797800A1 (en) System for providing bios to host computer
CN111522602B (zh) 通信装置的启动方法
US8392640B2 (en) Pre-memory resource contention resolution
EP3872629B1 (en) Method and apparatus for executing instructions, device, and computer readable storage medium
KR100534613B1 (ko) 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법
WO2023287407A1 (en) Hardware component initialization
US7035966B2 (en) Processing system with direct memory transfer
CN110618794B (zh) 一种SSD固件访问NandFlash的方法和系统
US20040019777A1 (en) Sharing data using a configuration register
US10978133B2 (en) Memory device and memory system comprising the same
JP2023527770A (ja) メモリにおける推論
JP2023542935A (ja) 早期解放を伴うレジスタ圧縮
JP4062478B2 (ja) デバイスアクセス方法
JP2003216478A (ja) インタフェース回路及び半導体装置
JPH02254563A (ja) ベクトルデータ処理方式
JPH05303548A (ja) コンピュータシステム
JPH01258165A (ja) システムプログラムローディング方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130104

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee