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

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

Info

Publication number
KR20070121857A
KR20070121857A KR1020077029328A KR20077029328A KR20070121857A KR 20070121857 A KR20070121857 A KR 20070121857A KR 1020077029328 A KR1020077029328 A KR 1020077029328A KR 20077029328 A KR20077029328 A KR 20077029328A KR 20070121857 A KR20070121857 A KR 20070121857A
Authority
KR
South Korea
Prior art keywords
processor
processors
memory
system management
overlapping
Prior art date
Application number
KR1020077029328A
Other languages
English (en)
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 KR20070121857A publication Critical patent/KR20070121857A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)
  • Circuits Of Receivers In General (AREA)

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는 모바일 플랫폼에 멀티(논리)프로세서 시스템을 구현할 수 있게 한다. 상기한 바와 같이, 서버 시스템들과 같은, 전통적인 멀티프로세서 시스템들 에는 비효율적인 메모리 할당 및 프로세서 동기화가 존재한다. 따라서, 멀티프로세서 시스템들이, 메모리와 같은 리소스들이 한정되어 있는 모바일 분야에 침투하기 시작함에 따라, 상기한 비효율성들의 최적화를 위한 필요성이 훨씬 더 중요해지고 있다.
프로세서가 직접적으로 또는 저장 매체를 통해 상태를 서로 전달할 수 있게 하는 것은, 멀티프로세서 시스템으로 하여금, 실행 시간 또는 리소스들을 전혀 낭비하지 않으면서, 효율적으로 동기화할 수 있게 한다. 또한, 각 프로세서의 시스템 관리 메모리 공간/범위를 중첩시키는 것은 유용한 메모리 공간을 보존할 뿐만 아니라 동기화 정보가 임의의 프로세서에 의해 용이하게 저장되고 변경될 수 있게 한다.
다음 설명에서는, 본 발명에 대한 완전한 이해를 제공하기 위해, 구체적인 메모리 어드레스들, 메모리 사이즈들, 및 컴포넌트 구성들의 예들과 같은 다수의 구체적 세부 사항들이 기술된다. 그러나, 당업자에게는, 본 발명을 실시하는데 이러한 특정 세부 사항들이 이용될 필요가 없다는 것이 명백할 것이다. 다른 경우들로서, 루틴 부트업 단계들(예를 들어, 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)을 저장하는 것이 바람직할 수 있다.
상술된 바와 같이, 시스템 관리에서의 효율적인 동기화 및 메모리 할당을 위한 필요성은, 멀티프로세서 시스템들이 멀티프로세서 시스템들이 이용 가능한 적은 리소스들을 가짐에 따라, 더 중요해지고 있다. 프로세서가 직접적으로 또는 저장 매체를 통해 상태를 서로 전달할 수 있게 하는 것은, 멀티프로세서 시스템으로 하여금, 실행 시간 또는 리소스들을 전혀 낭비하지 않으면서, 효율적으로 동기화할 수 있게 한다. 또한, 각 프로세서의 시스템 관리 메모리 공간/범위를 중첩시키는 것은 유용한 메모리 공간을 보존할 뿐만 아니라 동기화 정보가 임의의 프로세서에 의해 용이하게 저장되고 변경될 수 있게 한다.
상기 명세서에서, 본 발명은 그것에 관한 특정 실시예들을 참조하여 설명되었다. 그러나, 첨부된 청구항들에서 기술되는 본 발명의 광범위한 정신 및 범위를 벗어나지 않으면서, 그에 대한 다양한 변경들 및 변화들이 이루어질 수 있다는 것이 명백할 것이다. 따라서, 명세서 및 도면들은 한정적인 의미가 아니라 예시적인 의미로 간주되어야 한다.
본 발명은 첨부 도면들의 형상들에 의해 예시적으로 설명되며 첨부 도면들의 형상들에 의해 한정되는 것은 아니다.
도 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 프로세서에 시스템 관리 메모리 공간을 효율적으로 할당하기 위한 흐름도.

Claims (24)

  1. 시스템 관리를 위한 제1 메모리 공간을 제1 프로세서에 할당하는 단계; 및
    시스템 관리를 위한 제2 메모리 공간을 제2 프로세서에 할당하는 단계
    를 포함하며,
    상기 제2 메모리 공간은 적어도 제1 비-중첩 구역(non-overlapping region)을 남기면서 상기 제1 메모리 공간과 부분적으로 중첩하는 방법.
  2. 제1항에 있어서,
    상기 제1 및 제2 메모리 공간의 중첩은 제2 비-중첩 구역도 남기는 방법.
  3. 제1항에 있어서,
    상기 제1 비-중첩 구역의 크기는 적어도 상기 제1 프로세서를 위한 저장-상태 영역(save-state area)의 크기와 동일한 방법.
  4. 제2항에 있어서,
    상기 제2 비-중첩 구역의 크기는 적어도 상기 제2 프로세서를 위한 저장-상태 영역의 크기와 동일한 방법.
  5. 제4항에 있어서,
    상기 제1 및 제2 비-중첩 구역들의 크기는 적어도 상기 제2 프로세서를 위한 SMI 핸들러 코드(system management interrupt handler code)의 크기와 동일한 방법.
  6. 제1항에 있어서,
    상기 중첩 구역은 적어도 상기 제2 프로세서의 시스템 관리 상태를 저장하기 위한 동기화 영역(synchronization area)을 포함하는 방법.
  7. 제1항에 있어서,
    상기 중첩 구역은 상기 제1 프로세서를 위한 저장-상태 영역을 포함하는 방법.
  8. 제7항에 있어서,
    상기 제1 비-중첩 구역은 상기 제2 프로세서를 위한 저장-상태 영역을 포함하는 방법.
  9. 제1항에 있어서,
    상기 제1 및 제2 메모리 공간들은 시스템 메모리 내에 존재하는 방법.
  10. 제1항에 있어서,
    상기 제1 및 제2 프로세서들은 논리 프로세서들(logical processors)인 방법.
  11. 제1항에 있어서,
    상기 제1 및 제2 프로세서들은 물리 프로세서들(physical processors)인 방법.
  12. 제1 및 제2 논리 프로세서에 연결되어 있으며, 시스템 관리를 위해 제1 프로세서에 할당된 제1 메모리 범위 및 시스템 관리를 위해 제2 프로세서에 할당된 제2 메모리 범위를 갖는 저장 매체를 포함하며,
    상기 제1 메모리 범위 및 상기 제2 메모리 범위는 제1 및 제2 비-중첩 범위를 남기면서 부분적으로 중첩하는 장치.
  13. 제12항에 있어서,
    상기 제1 및 제2 비-중첩 범위들의 크기는 적어도 상기 제1 및 제2 프로세서 각각의 저장-상태 영역의 크기와 동일한 장치.
  14. 제12항에 있어서,
    상기 제1 및 제2 프로세서들은 논리 프로세서들인 장치.
  15. 제12항에 있어서,
    상기 제1 및 제2 프로세서들은 물리 프로세서들인 장치.
  16. 제12항에 있어서,
    상기 중첩 범위는 상기 제1 및 제2 프로세서 모두에 의해 변경될 수 있는 동기화 영역을 갖는 장치.
  17. 제16항에 있어서,
    상기 동기화 영역은 적어도 하나의 프로세서의 시스템 관리 상태들을 나타내기 위한 동기 바이트를 포함하는 장치.
  18. 제17항에 있어서,
    상기 동기 바이트는, 시스템 관리 인터럽트(SMI)를 처리하기 전에, 상기 제1 및 제2 프로세서들을 동기화하는데 사용되는 장치.
  19. 메모리에 연결되어 있으며, 시스템 관리를 위해 할당된 상기 메모리 내의 제1 어드레스 범위를 갖는 제1 프로세서; 및
    상기 메모리에 연결되어 있으며, 시스템 관리를 위해 할당된 상기 메모리 내의 제2 어드레스 범위를 갖는 제2 프로세서를 포함하며,
    상기 제1 및 제2 어드레스 범위들은 제1 비-중첩 범위 및 제2 비-중첩 범위 를 남기면서 부분적으로 중첩하는 시스템.
  20. 제19항에 있어서,
    상기 제1 및 제2 비-중첩 범위들의 크기는 적어도 각 프로세서에 대한 저장 상태 범위의 크기와 동일한 시스템.
  21. 제19항에 있어서,
    상기 제1 및 제2 비-중첩 범위들의 크기는 적어도 상기 제2 프로세서에 대한 SMI 핸들러 코드의 크기와 동일한 시스템.
  22. 제19항에 있어서,
    상기 메모리는 시스템 메모리인 시스템.
  23. 제19항에 있어서,
    상기 제1 및 제2 프로세서들은 논리 프로세서들인 시스템.
  24. 제19항에 있어서,
    상기 제1 및 제2 프로세서들은 물리 프로세서들인 시스템.
KR1020077029328A 2003-10-06 2004-10-06 효율적인 시스템 관리 동기화 및 메모리 할당 KR20070121857A (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 Parent Applications (1)

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

Publications (1)

Publication Number Publication Date
KR20070121857A true KR20070121857A (ko) 2007-12-27

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 Before (1)

Application Number Title Priority Date Filing Date
KR1020067006666A KR100879654B1 (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)

Families Citing this family (45)

* 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
US7725749B2 (en) * 2004-08-05 2010-05-25 Panasonic Corporation Information processing device for assigning processes to a main CPU or sub-CPU based on a sleeping state
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
CN105183555A (zh) * 2010-01-13 2015-12-23 马维尔以色列(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
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
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
DE102016015065A1 (de) 2015-12-21 2017-06-22 Suunto Oy Aktivitätsintensitätspegel-Bestimmungsfeld
FI127926B (en) 2015-12-21 2019-05-31 Suunto Oy Sensor-based context management
US11284807B2 (en) 2015-12-21 2022-03-29 Amer Sports Digital Services Oy Engaging exercising devices with a mobile device
US11838990B2 (en) 2015-12-21 2023-12-05 Suunto Oy Communicating sensor data in wireless communication systems
US11541280B2 (en) 2015-12-21 2023-01-03 Suunto Oy Apparatus and exercising device
US11587484B2 (en) 2015-12-21 2023-02-21 Suunto Oy Method for controlling a display
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
US11703938B2 (en) 2016-10-17 2023-07-18 Suunto Oy Embedded computing device
DE102017009171A1 (de) * 2016-10-17 2018-04-19 Amer Sports Digital Services Oy Eingebettete rechenvorrichtung
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
KR102500172B1 (ko) 2022-11-16 2023-02-14 젬텍(주) 장치 간의 메모리 동기화 방법, 제어 장치 및 시스템

Family Cites Families (9)

* 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
US6848046B2 (en) 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
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

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100879654B1 (ko) 효율적인 시스템 관리 동기화 및 메모리 할당
US7493435B2 (en) Optimization of SMI handling and initialization
US6341318B1 (en) DMA data streaming
US7725609B2 (en) System memory device having a dual port
US20120317431A1 (en) System and method for power reduction by sequestering at least one device or partition in a platform from operating system access
KR20050013525A (ko) 무선 애플리케이션을 위한 애플리케이션 프로세서 및메모리 아키텍쳐
US20190095220A1 (en) Multicore framework for use in pre-boot environment of a system-on-chip
KR20120061938A (ko) 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템
US8397005B2 (en) Masked register write method and apparatus
US8392640B2 (en) Pre-memory resource contention resolution
CN114398300B (zh) 方法、集成电路及计算机可读存储介质
KR100534613B1 (ko) 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법
US8176303B2 (en) Multiprocessor communication device and methods thereof
US11093416B1 (en) Memory system supporting programmable selective access to subsets of parallel-arranged memory chips for efficient memory accesses
US11194744B2 (en) In-line memory module (IMM) computing node with an embedded processor(s) to support local processing of memory-based operations for lower latency and reduced power consumption
WO2023287407A1 (en) Hardware component initialization
US7035966B2 (en) Processing system with direct memory transfer
CN110618794B (zh) 一种SSD固件访问NandFlash的方法和系统
JP2023527770A (ja) メモリにおける推論
JP5562017B2 (ja) 不揮発性メモリ及びその方法
JP2003216478A (ja) インタフェース回路及び半導体装置

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20081121

Effective date: 20100129