KR101781271B1 - 캐시 일관성을 위한 제어 시스템 및 방법 - Google Patents
캐시 일관성을 위한 제어 시스템 및 방법 Download PDFInfo
- Publication number
- KR101781271B1 KR101781271B1 KR1020150164515A KR20150164515A KR101781271B1 KR 101781271 B1 KR101781271 B1 KR 101781271B1 KR 1020150164515 A KR1020150164515 A KR 1020150164515A KR 20150164515 A KR20150164515 A KR 20150164515A KR 101781271 B1 KR101781271 B1 KR 101781271B1
- Authority
- KR
- South Korea
- Prior art keywords
- electrical device
- link
- interface
- processing unit
- operating system
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5683—Storage of data provided by user terminals, i.e. reverse caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Abstract
캐시 일관성을 위한 제어 시스템들 및 방법들이 제공된다. 하나의 제어 방법은 제 1 전기 디바이스에 의해, 제 1 전기 디바이스가 캐시 일관성(cache coherency; CC) 인터페이스에 의해 제 2 전기 디바이스에 커플링될 때 제 2 전기 디바이스에 링크-연결 요청을 전송하는 단계, CC 인터페이스에 의해, 링크-연결 요청에 따라 제 1 전기 디바이스와 제 2 전기 디바이스 간에 링크를 설정하는 단계; 및 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해, 링크를 설정한 이후 제 1 전기 디바이스의 제 1 운영 체제를 동작시키는 단계를 포함한다.
Description
관련된 출원들에 대한 상호참조
본 출원은 2014년 11월 28일 출원된 중국 특허 출원 번호 제201410709312.X호를 우선권으로 주장하며, 상기 특허 전체가 인용에 의해 본원에 포함된다.
발명의 분야
본 발명은 일반적으로 디바이스들 간의 제어 방법에 관한 것으로서, 보다 구체적으로는, 캐시 일관성(cache coherency; CC)에 대한 디바이스들을 제어하는 방법들에 관한 것이다.
최근에, 무선 통신의 빠른 발달로 인해, 모바일 전화들, 스마트폰들, 개인용 디지털 보조기기들, 및 태블릿 PC들과 같은 디바이스들이 널리 이용 가능하게 되었고, 더욱 더 기술적으로 진보되고 다기능적이 되었다. 이들 디바이스들의 증가된 편의 및 기능성으로 인해, 이들은 생활 필수품들이 되었다.
사용자가 복수의 디바이스들을 동작시키고, 데이터-프로세싱 시에 다른 디바이스를 보조하기 위한 디바이스를 이용하기 원할 때, 사용자는 먼저 데이터를 디바이스에 전송하고, 이어서 디바이스의 소프트웨어 및 하드웨어를 이용하여 데이터를 프로세싱하고, 프로세싱된 데이터를 다른 디바이스로 다시 전송할 필요가 있다. 사용자가 디바이스의 하드웨어를 통한 데이터-프로세싱에 있어서 다른 디바이스의 소프트웨어를 직접 보조하지 않을 수 있다. 그러므로, 이것은 사용자에게 편리하지 않다.
캐시 일관성을 위한 제어 시스템 및 방법이 상술된 문제들을 극복하도록 제공된다.
본 발명의 실시예는 캐시 일관성에 대한 제어 방법을 제공한다. 이 제어 방법은 제 1 전기 디바이스에 의해, 제 1 전기 디바이스가 캐시 일관성(cache coherency; CC) 인터페이스에 의해 제 2 전기 디바이스에 커플링될 때 제 2 전기 디바이스에 링크-연결 요청을 전송하는 단계; CC 인터페이스에 의해, 링크-연결 요청에 따라 제 1 전기 디바이스와 제 2 전기 디바이스 간에 링크를 설정하는 단계; 및 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해, 링크를 설정한 이후 제 1 전기 디바이스의 제 1 운영 체제를 동작시키는 단계를 포함한다.
본 발명의 일 실시예는 캐시 일관성에 대한 제어 시스템을 제공한다. 제어 시스템은 제 1 전기 디바이스, CC 인터페이스 및 제 2 전기 디바이스를 포함한다. 제 1 전기 디바이스는 링크를 설정하도록 링크-연결 요청을 전송하게 구성된다. CC 인터페이스는 링크-연결 요청에 따라 링크를 설정하도록 구성된다. 제 2 전기 디바이스는 제 2 프로세싱 유닛을 포함한다. 실시예에서, 제 1 전기 디바이스가 CC 인터페이스에 의해 제 2 전기 디바이스에 커플링될 때, 제 1 전기 디바이스는 링크-연결 요청을 제 2 전기 디바이스에 전송하고, 제 2 프로세싱 유닛은 링크가 설정된 이후 제 1 전기 디바이스의 제 1 운영 체제를 동작시킨다.
본 발명의 다른 양상들 및 특징들은 통신 전송 방법들 및 시스템들의 특정한 실시예들의 하기의 설명들을 고찰하면 당업자들에게 자명하게 될 것이다.
본 발명은 첨부 도면들을 참조하여 하기의 상세한 설명을 참조함으로써 보다 완전히 이해될 것이다.
도 1은 본 발명의 실시예에 따른 캐시 일관성을 위한 제어 시스템(100)이다.
도 2a는 본 발명의 실시예에 따른 제 1 SMP 모드의 개략도이다.
도 2b는 본 발명의 실시예에 따른 제 2 SMP 모드의 개략도이다.
도 2c는 본 발명의 실시예에 따른 ccNUMA 모드의 개략도이다.
도 3은 본 발명의 실시예에 따라 캐시 일관성에 대한 제어 방법을 예시하는 흐름도(300)이다.
도 4는 본 발명의 다른 실시예에 따라 캐시 일관성에 대한 제어 방법을 예시하는 흐름도(400)이다.
도 5a 내지 도 5b는 본 발명의 실시예에 따른 캐시 일관성 인터페이스의 동작을 예시하는 흐름도(500)이다.
도 2a는 본 발명의 실시예에 따른 제 1 SMP 모드의 개략도이다.
도 2b는 본 발명의 실시예에 따른 제 2 SMP 모드의 개략도이다.
도 2c는 본 발명의 실시예에 따른 ccNUMA 모드의 개략도이다.
도 3은 본 발명의 실시예에 따라 캐시 일관성에 대한 제어 방법을 예시하는 흐름도(300)이다.
도 4는 본 발명의 다른 실시예에 따라 캐시 일관성에 대한 제어 방법을 예시하는 흐름도(400)이다.
도 5a 내지 도 5b는 본 발명의 실시예에 따른 캐시 일관성 인터페이스의 동작을 예시하는 흐름도(500)이다.
하기의 설명은 본 발명을 수행하는 최고의 의도된 모드에 관한 것이다. 이 설명은 본 발명의 일반적인 원리들을 예시할 목적으로 이루어지며, 제한하는 의미로서 받아들여선 안 된다. 본 발명의 범위는 첨부된 청구항들을 참조하여 가장 잘 결정된다.
도 1은 본 발명의 실시예에 따라 캐시 일관성에 대한 제어 시스템(100)이다. 도 1에서 도시된 바와 같이, 제어 시스템(100)은 제 1 전기 디바이스(110), 캐시 일관성(CC) 인터페이스(120) 및 제 2 전기 디바이스(130)를 포함한다. 제 1 전기 디바이스(110)는 제 1 프로세싱 유닛(111), 제 1 캐시 메모리 유닛(112) 및 제 1 메모리 유닛(113)을 포함한다. 제 2 전기 디바이스(130)는 제 2 프로세싱 유닛(131), 제 2 캐시 메모리 유닛(132) 및 제 2 메모리 유닛(133)을 포함한다. 도 1은 본 발명에 관련된 엘리먼트들만이 도시되는 단순화된 블록도를 제시한다. 그러나 본 발명은 도 1에서 도시된 것으로 제한되어선 안 된다.
본 발명의 실시예에서, 제 1 전기 디바이스(110)는 랩톱 컴퓨터 또는 데스크톱 컴퓨터와 같은 컴퓨팅 디바이스에 연결되도록 구성되거나, 또는 제 1 전기 디바이스(110)는 개인용 디지털 보조기기(PDA)와 같은 자립형 디바이스(self-contained device)일 수 있다. 제 1 전기 디바이스(110)는 또한 시스템, 가입자 유닛, 가입자 스테이션, 모바일 스테이션, 모바일, 원격 스테이션, 액세스 포인트, 원격 단말, 액세스 단말, 사용자 단말, 사용자 에이전트, 사용자 디바이스로도 불릴 수 있다. 제 1 전기 디바이스(110)는 가입자 스테이션, 무선 디바이스, 셀룰러 전화, PCS 전화, 코드리스 전화, 세션 개시 프로토콜(Session Initiation Protocol; SIP) 전화, 무선 로컬 루프(wireless local loop; WLL) 스테이션, 개인용 디지털 보조기기(personal digital assistant; PDA), 무선 연결 능력을 갖는 핸드헬드 디바이스, 또는 무선 모뎀에 연결된 다른 프로세싱 디바이스일 수 있다.
본 발명의 실시예에서, 제 2 전기 디바이스(130)는 호스트 디바이스 또는 더 높은 프로세싱-성능을 갖는 전기 디바이스, 예컨대, 휴대용 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터, 또는 태블릿 컴퓨터이다.
본 발명의 실시예에서, CC 인터페이스(120)는 캐시 일관성(CC) 기술을 지원하는 인터페이스로서 간주될 수 있다. 캐시 일관성은 캐시 메모리의 공통 자원에 대한 데이터-일관성을 유지하기 위한 매커니즘이다. 통상적으로, 캐시 일관성(CC) 기술은 보통 다중-코어 프로세서에서 적용된다는 것에 주의한다. 각각의 코어 프로세서의 공통 자원은 캐시 일관성 매커니즘에 의해 데이터-일관성을 유지할 수 있다. 그러므로 종래의 애플리케이션들과 달리, 본 발명의 실시예들에서, 캐시 일관성(CC) 기술은 상이한 디바이스들 간의 데이터 프로세싱에 적용되고 단일 디바이스의 다중-코어 프로세서로 제한되지 않는다. 본 발명의 실시예에서, CC 인터페이스(120)는 유선 통신 또는 무선 통신 방식에 의해 제 1 전기 디바이스(110)와 제 2 전기 디바이스(130) 간의 링크를 설정한다. 본 발명의 실시예에서, CC 인터페이스(120)에 대한 프로토콜은 다중-층 프로토콜이며, 여기서 물리층의 프로토콜은 유선 통신 프로토콜 또는 무선 통신 프로토콜이다. 본 발명의 실시예에서, CC 인터페이스(120)는 제 1 전기 디바이스(110) 및 제 2 전기 디바이스(130) 외부의 버스-인터페이스이며, 버스-인터페이스의 전기 인터페이스는 외부에서 실행될 것이다.
본 발명의 실시예에서, 제 1 프로세싱 유닛(111) 및 제 2 프로세싱 유닛(131)은 범용 프로세서들(general-purpose processors; GPP), 마이크로 제어 유닛들(Micro Control Units; MCU), 다른 프로세싱 디바이스들, 또는 다중-코어 프로세서일 수 있다. 본 발명의 실시예에서, 제 1 캐시 메모리 유닛(112) 및 제 2 캐시 메모리 유닛(132)은 라스트 레벨 캐시(Last Level Cache; LLC), 스눕 필터, 또는 칩셋일 수 있다. 본 발명의 실시예에서, 제 1 메모리 유닛(113) 및 제 2 메모리 유닛(133)은 휘발성 메모리, 예컨대, 랜덤 액세스 메모리(Random Access Memory; RAM)일 수 있다. 본 발명의 다른 실시예에서, 제 1 메모리 유닛(113) 및 제 2 메모리 유닛(133)은 비-휘발성 메모리(예를 들어, 플래시 메모리) 또는 위의 메모리 디바이스의 결합일 수 있다.
본 발명의 실시예에서, 사용자가 제 1 전기 디바이스(110)(예를 들어, 휴대용 디바이스)와 제 2 전기 디바이스(130)(예를 들어, 노트북) 간에 링크를 설정할 필요가 있을 때, 제 1 전기 디바이스(110)는 CC 인터페이스(120)에 의해 제 2 전기 디바이스(130)에 커플링되고, 제 1 전기 디바이스(110)(제 1 프로세싱 유닛(111))는 제 2 전기 디바이스(130)에 링크-연결 요청을 전송한다. 본 발명의 제 1 전기 디바이스(110)와 제 2 전기 디바이스(130) 간의 링크는 캐시 일관성 매커니즘에 따라 설정되는 링크로서 간주된다는 것에 주의한다. 링크가 설정된 이후, 제 1 전기 디바이스(110)는 제 2 전기 디바이스(130)의 하드웨어 엘리먼트들에 의해 직접 동작될 수 있다. 특히, 실시예에서, 링크가 설정될 때, 제 2 전기 디바이스(130)의 제 2 프로세싱 유닛(131)은 제 1 전기 디바이스(110)의 운영 체제(OS)를 직접 동작시킬 수 있고, 제 1 전기 디바이스(110) 및 제 2 전기 디바이스(130)는 리부팅될 필요가 없을 수 있다. 그러므로 본 발명의 링크는 보통의 원격 동작(원격-동작에서, 제 1 전기 디바이스(110)의 운영 체제는 제 1 전기 디바이스(110)에 의해 여전히 프로세싱됨) 및 디바이스들 간의 보통의 통신과 유사하지 않다. 그러므로, 사용자는, 제 1 전기 디바이스(110)의 제 1 운영 체제를 동작시키기 위해 더 높은 프로세싱-성능을 갖는 제 2 프로세싱 유닛(131)을 갖는 제 2 전기 디바이스(130)(예를 들어, 노트북)을 이용할 수 있다. 다른 실시예들에서, 제 2 전기 디바이스(130)는 추가로 제 2 메모리 유닛(133)(예를 들어, 시스템 메모리), 키보드, 마우스, 및 디스플레이 유닛 및 다른 외부 디바이스와 같은 다른 하드웨어를 포함하고, 이 하드웨어는 또한 제 1 전기 디바이스(110)의 제 1 운영 체제를 동작시키는 것을 도울 수 있다. 사용자 경험을 위해, 사용자가 CC 인터페이스(120)에 의해 제 1 전기 디바이스(110)(예를 들어, 휴대용 디바이스)를 제 2 전기 디바이스(130)(예를 들어, 노트북)에 커플링할 때, 노트북의 디스플레이 유닛은 추가로 휴대용 디바이스 상에 디스플레이되는 운영 체제를 디스플레이할 수 있고, 노트북의 프로세싱 유닛(더 높은 프로세싱 성능을 가짐)은 프로세싱-성능을 증가시키기 위해 휴대용 디바이스의 운영 체제를 동작시키는데 이용될 수 있다. 또한, 노트북 및 휴대용 디바이스는 더 나은 사용자 경험을 달성하기 위해 리-부트될 필요가 없다.
본 발명의 실시예에서, CC 인터페이스(120)가 유선 통신 방식에 의해 링크를 설정하는 경우, 제 1 전기 디바이스(110)는 먼저 제 2 전기 디바이스(130)에 플러깅(plug)하고, 그 후 제 2 전기 디바이스(130)와의 링크를 설정하기 위해 CC 인터페이스(120)를 통해 제 2 전기 디바이스(130)에 링크-연결 요청을 전송할 필요가 있다. 본 발명의 다른 실시예에서, CC 인터페이스(120)가 무선 통신 방식에 의해 링크를 설정하는 경우, 제 1 전기 디바이스(110)는 무선 통신 방식에 의해 제 2 전기 디바이스(130)와의 링크를 설정하도록 CC 인터페이스(120)를 통해 제 2 전기 디바이스(130)에 링크 연결 요청을 직접 전송할 수 있다. 예를 들어, 제 1 전기 디바이스(110)가 제 2 전기 디바이스(130)에 접근할 때, 제 1 전기 디바이스(110)는 무선 통신 방식에 의해 CC 인터페이스(120)를 통해 제 2 전기 디바이스(130)와의 링크를 설정할 수 있다. 요약하면, 제 1 전기 디바이스(110)가 CC 인터페이스(120)를 통해(유선 또는 무선 방식에 의해) 제 2 전기 디바이스(130)에 커플링될 때, 제 1 전기 디바이스(110)는 제 2 전기 디바이스(130)에 링크-연결 요청을 전송할 수 있다.
제 2 전기 디바이스(130)가 제 1 전기 디바이스(110)의 링크-연결 요청을 수신할 때, 제 2 전기 디바이스는 제 1 전기 디바이스(110)에 확인응답(acknowledgement; ACK) 메시지를 전송하는 것과 같은 ACK 동작을 수행할 것이다. 제 2 전기 디바이스(130)가 제 1 전기 디바이스(110)의 링크-연결 요청을 확인한 이후, 제 1 전기 디바이스(110)와 제 2 전기 디바이스(130) 간의 링크는 CC 인터페이스(120)를 통해 설정된다. 특히, 제 1 전기 디바이스(110) 및 제 2 전기 디바이스(130)는 싱크(sync) 모드에 진입할 것이다. 싱크 모드에서, 제 1 전기 디바이스(110)의 제 1 캐시 메모리 유닛(112)은 CC 인터페이스(120)를 통해 제 2 전기 디바이스(130)의 제 2 캐시 메모리 유닛(132)에 제 1 운영 체제의 콘텐츠를 전송할 수 있다. 제 2 전기 디바이스(130)의 제 2 프로세싱 유닛(131)이 제 2 캐시 메모리 유닛(132)에서 제 1 운영 체제의 콘텐츠를 판독한 이후, 제 2 프로세싱 유닛(131)은 독립적으로 제 1 전기 디바이스(110)의 제 1 운영 체제를 동작시키거나, 또는 데이터 프로세싱 시에 제 1 전기 디바이스(110)를 보조하도록 제 1 전기 디바이스(110)와 함께 제 1 전기 디바이스(110)의 제 1 운영 체제를 동작시킬 것이다. 즉, 사용자는 제 2 전기 디바이스(130)의 하드웨어에 의해 제 2 전기 디바이스(130) 상에서 제 1 전기 디바이스(110)의 모든 함수들을 실행하고 동작시킬 수 있다. (도 2a와 같은) 몇몇 실시예들에서, 싱크 모드에서, 제 1 전기 디바이스(110)는 제 1 캐시 메모리 유닛(112)의 콘텐츠를 제 2 전기 디바이스(130)에 전송할 뿐만 아니라, 제 1 운영 체제가 제 1 메모리 유닛(113)에서 동작시키고 있는 관련된 콘텐츠를 CC 인터페이스(120)에 의해 제 2 전기 디바이스(130)와 동기화한다. 이들 실시예들에서, 제 2 프로세싱 유닛(131)이 단지 제 2 캐시 메모리 유닛(132) 및 제 2 메모리 유닛(133)에 액세스하여 제 1 운영 체제를 연속적으로 동작시키고 제 1 전기 디바이스(110)는 수면 모드에 진입할 수 있다. (도 2b 및 도 2c와 같은) 다른 실시예들에서, 싱크 모드에서, 제 1 전기 디바이스(110)는, 제 1 운영 체제가 제 1 메모리 유닛(113)에서 동작시키고 있는 관련된 콘텐츠를 제 2 전기 디바이스(130)와 동기화하지 않는다. 이들 실시예들에서, 제 2 프로세싱 유닛(131)은 CC 인터페이스(120)를 통해 제 1 전기 디바이스(110)의 제 1 메모리 유닛(113)에 액세스할 필요가 있다.
또한, 제 2 전기 디바이스(130)는, 제 2 전기 디바이스(130)가 싱크 모드에 진입하기 이전에 그 자신의 운영 체제(제 2 운영 체제)를 동작시킬 수 있기 때문에, 제 2 전기 디바이스(130)는 제 2 운영 체제의 현재 상태 정보를 제 2 메모리 유닛(133)에 저장할 수 있다. 그러므로 제 2 전기 디바이스(130)가 제 1 전기 디바이스(110)와의 링크를 연결해제한 이후, 제 2 전기 디바이스(130)는 제 2 전기 디바이스(130)의 제 2 운영 체제의 동작을 복구하도록 제 2 운영 체제의 저장된 상태 정보를 복구할 수 있다.
본 발명의 실시예에서, 현재 상태 정보를 저장한 이후, 제 2 전기 디바이스(130)는, 제 1 전기 디바이스(110)의 제 1 운영 체제가 제 2 전기 디바이스(130)의 하드웨어 엘리먼트들(예를 들어, 제 2 프로세싱 유닛(131), 제 2 캐시 메모리 유닛(132), 하드 디스크, 네트워크 카드, 또는 외부 하드웨어 엘리먼트, 예컨대, 마우스 및 키보드)의 관련 정보를 획득하게 하기 위해 제 2 전기 디바이스(130)의 하드웨어 엘리먼트들에 대한 재-시작 동작을 수행할 것이다. 제 1 전기 디바이스(110)의 제 1 운영 체제는 제 2 전기 디바이스(130)의 하드웨어 엘리먼트들의 관련 정보를 획득하기 위해 제 2 전기 디바이스(130)의 하드웨어 엘리먼트에 대한 열거 동작(enumeration operation)을 수행한다. 제 1 운영 체제는 제 2 전기 디바이스(130)의 하드웨어 엘리먼트의 관련 정보를 획득한 이후 제 2 전기 디바이스(130)의 하드웨어 엘리먼트들에서 동작될 수 있다. 본 발명의 실시예에서, 제 2 전기 디바이스(130)의 하드웨어 엘리먼트들은 제 2 전기 디바이스(130)의 특정한 구동 엘리먼트/프로그램(구동기)에 의한 열거 동작에 대해 재-시작된다. 본 발명의 다른 실시예에서, 제 2 전기 디바이스(130)의 하드웨어 엘리먼트들은 제 2 프로세싱 유닛(131)에 의해 전송되는 재-시작 커맨드에 의한 열거 동작에 대해 재-시작된다.
제 2 전기 디바이스(130)가 하드웨어 엘리먼트들에 대한 열거 동작을 수행한 이후, 제 2 전기 디바이스(130)는 제 1 전기 디바이스(110)의 데이터-프로세싱을 보조하도록 제 2 프로세싱 엘리먼트(131)(및 다른 하드웨어 엘리먼트들)에 의해 제 1 전기 디바이스(110)의 제 1 운영 체제를 동작시킬 것이다. 본 발명의 실시예에서, 제 1 전기 디바이스(110)와 제 2 전기 디바이스(130) 간의 링크가 설정된 이후, 제 1 전기 디바이스(110)의 제 1 프로세싱 유닛(111)은 제 2 프로세싱 유닛(131)과 협력할 수 있다. 즉, 제 1 전기 디바이스(110)의 데이터는 제 1 전기 디바이스(110) 및 제 2 전기 디바이스(130)에 의해 협력적으로 프로세싱될 수 있다. 본 발명의 다른 실시예에서, 제 1 전기 디바이스(110)와 제 2 전기 디바이스(130) 간의 링크가 설정된 이후, 제 1 전기 디바이스(110)의 제 1 프로세싱 유닛(111)(및 다른 하드웨어 엘리먼트들)은 수면 모드에 진입할 것이고, 제 1 전기 디바이스(110)의 모든 데이터는 제 2 전기 디바이스(130)에 의해 프로세싱된다.
사용자가 제 1 전기 디바이스(110)와 제 2 전기 디바이스(130) 간의 링크를 연결해제하기를 원할 때, 제 2 전기 디바이스(130)는 제 1 전기 디바이스(110)에 링크-연결해제 요청을 전송할 것이다. 본 발명의 실시예에서, 제 1 전기 디바이스(110)가 수면 모드에 있는 경우, 제 2 전기 디바이스(130)는 먼저 제 1 전기 디바이스(110)를 어웨이크(awake)시킬 것이다. 제 1 전기 디바이스(110)가 링크-연결해제 요청을 수신하고 확인한 이후, 제 1 전기 디바이스(110)는 제 1 캐시 메모리 유닛(112)(추가로 제 1 메모리 유닛(113)) 내의 제 1 운영 체제에 관련된 데이터가 제 2 전기 디바이스(130)에 의해 프로세싱된 데이터와 일치하게 되도록 CC 인터페이스(120)에 의해 제 1 운영 체제의 업데이트된 콘텐츠를 동기화할 것이다. 동기화 이후, 제 1 전기 디바이스(110)의 제 1 프로세싱 유닛(111)은 제 1 전기 디바이스(110)가 보통의 동작 모드를 복구하게 하도록 제 1 전기 디바이스(110)의 하드웨어 엘리먼트들 상에서 재-시작 동작을 수행할 수 있다. 즉, 제 1 전기 디바이스(110)는 순차적으로 제 1 운영 체제를 동작시킬 수 있다.
링크가 연결해제된 이후, 제 2 전기 디바이스(130)의 제 2 프로세싱 유닛(131)은 또한 제 2 메모리 유닛(133)에 저장된 제 2 운영 체제의 상태 정보를 또한 복구할 것이다. 그 후, 제 2 전기 디바이스(130)는 링크를 설정하기 이전에 제 2 전기 디바이스(130)가 수행한 원래의 동작을 복구하도록 재-시작 동작을 수행할 수 있다.
본 발명의 실시예에서, 제 1 전기 디바이스(110)와 제 2 전기 디바이스(130) 간의 링크가 설정된 이후, 제 2 전기 디바이스(130)의 제 2 프로세싱 유닛(131) 및 제 1 전기 디바이스(110)의 제 1 프로세싱 유닛(111)(제 1 프로세싱 유닛(111)이 수면 모드에 있지 않은 경우)은 대칭형 다중-프로세서(Symmetric Multi-Processors; SM) 모드 또는 캐시 일관성 비-균일 메모리 액세스(Cache Coherent Non-Uniform Memory Access; ccNUMA) 모드에서 제 1 전기 디바이스(110)의 제 1 운영 체제와 협력할 수 있다. 도 2a는 본 발명의 실시예에 따라 제 1 SMP 모드의 개략도이다. 도 2a에서 도시된 바와 같이, 제 1 SMP 모드에서, 제 2 전기 디바이스(130)의 제 2 프로세싱 유닛(131) 및 제 2 메모리 유닛(133)은 제 1 운영 체제를 동작시키도록 구성될 수 있고, 제 1 전기 디바이스(110)의 제 1 메모리 유닛(113)은 제 1 운영 체제를 동작시키도록 구성되지 않고 수면 모드에 진입한다. 즉, 제 1 SMP 모드에서, 제 1 메모리 유닛(113)의 제 1 운영 체제의 관련된 콘텐츠는 링크가 설정될 때 제 2 전기 디바이스(130)와 동기화된다. 그러므로 제 1 SMP 모드의 동작에서, 제 2 프로세싱 유닛(131) 및 제 1 프로세싱 유닛(111)은 단지 제 2 메모리 유닛(133)에 액세스할 필요가 있고, CC 인터페이스(120)는 제 1 캐시 메모리 유닛(112) 및 제 2 캐시 메모리 유닛(132)의 데이터-일관성을 유지할 수 있고, 제 1 캐시 메모리 유닛(112) 및 제 2 캐시 메모리 유닛(132)이 미스(miss)되거나 꽉 찬 경우, CC 인터페이스(120)는 제 2 메모리 유닛(133)에 액세스할 것이다. CC 인터페이스(120)의 특정한 동작이 도 5에서 설명된다.
도 2b는 본 발명의 실시예에 따라 제 2 SMP 모드의 개략도이다. 도 2b에서 도시된 바와 같이, 제 2 SMP 모드에서, 제 2 전기 디바이스(130)의 제 2 프로세싱 유닛(131)은 제 1 운영 체제를 동작시키는 것을 보조하지만, 제 2 메모리 유닛(133)은 제 1 운영 체제를 동작시키는 것을 보조하지 않는다. 즉, 제 2 SMP 모드에서, 제 2 프로세싱 유닛(131) 및 제 1 프로세싱 유닛(111)은 제 1 메모리 유닛(113) 만을 액세스함으로써 제 1 운영 체제를 동작시킬 수 있다. 실시예에서, 링크가 설정되면, 제 1 메모리 유닛(113)의 제 1 운영 체제의 관련된 콘텐츠는 제 2 전기 디바이스(130)에 대해 동기화할 필요가 없다. 제 2 SMP 모드의 동작에서, CC 인터페이스(120)는 제 1 캐시 메모리 유닛(112) 및 제 2 캐시 메모리 유닛(132)의 데이터-일관성을 유지할 수 있다. 제 1 캐시 메모리 유닛(112) 및 제 2 캐시 메모리 유닛(132)이 미스되거나 꽉 찬 경우, CC 인터페이스(120)는 제 1 메모리 유닛(113)에 액세스할 것이다.
도 2c는 본 발명의 실시예에 따라 ccNUMA 모드의 개략도이다. 도 2c에서 도시된 바와 같이, ccNUMA 모드에서, 제 2 전기 디바이스(130)의 제 2 프로세싱 유닛(131) 및 제 2 메모리 유닛(133)은 제 1 운영 체제를 동작시키는 것을 보조하고, 제 1 전기 디바이스(110)의 제 1 메모리 유닛(113)은 수면 모드에 있지 않다. 즉, ccNUMA 모드에서, 링크가 설정될 때, 제 1 메모리 유닛(113)의 제 1 운영 체제의 관련된 콘텐츠는 또한 제 2 전기 디바이스(130)에 대해 동기화할 필요가 없다. ccNUMA 모드의 동작에서, CC 인터페이스(120)는 제 1 캐시 메모리 유닛(112) 및 제 2 캐시 메모리 유닛(132)의 데이터-일관성을 유지할 수 있다. 제 1 캐시 메모리 유닛(112) 및 제 2 캐시 메모리 유닛(132)이 미스되거나 꽉 찬 경우, CC 인터페이스(120)는 제 1 메모리 유닛(113) 또는 제 2 메모리 유닛(133)에 액세스할 것이다.
도 3은 본 발명의 실시예에 따라 캐시 일관성에 대한 제어 방법을 예시하는 흐름도(300)이다. 제어 방법은 제어 시스템(100)에 의해 적용된다. 도 3에서 도시된 바와 같이, 단계(S310)에서, 제 1 전기 디바이스(110)가 CC 인터페이스(120)에 의해 제 2 전기 디바이스(130)에 커플링될 때, 링크-연결 요청이 제 1 전기 디바이스(110)에 의해 제 2 전기 디바이스(130)에 전송된다. 단계(S320)에서, 제 1 전기 디바이스(110)로부터 전송된 링크-연결 요청은 제 2 전기 디바이스(130)에 의해 확인된다. 단계(S330)에서, 제 1 전기 디바이스(110) 및 제 2 전기 디바이스(130)는 싱크 모드에 진입할 것이다. 단계(S340)에서, 제 2 운영 체제의 상태 정보는 제 2 전기 디바이스(130)에 의해 저장된다. 단계(S350)에서, 제 1 전기 디바이스(110)의 제 1 운영 체제의 관련된 정보는 제 2 전기 디바이스(130)에 의해 CC 인터페이스(120)를 통해 동기화된다. 본 발명의 몇몇 실시예들(예를 들어, 도 2b 및 도 2c의 실시예들)에서, 제 1 캐시 메모리 유닛(112)의 제 1 운영 체제의 관련된 콘텐츠만이 제 2 전기 디바이스(130)에 대해 동기화된다. 본 발명의 다른 실시예들(예를 들어, 도 2a의 실시예들)에서, 제 1 메모리 유닛(113)의 제 1 운영 체제의 관련된 콘텐츠는 제 2 전기 디바이스(130)에 대해 또한 동기화된다. 단계(S360)에서, 제 2 전기 디바이스(130)의 하드웨어 엘리먼트들은 제 1 운영 체제가 제 2 전기 디바이스(130)에서 동작될 수 있게 하도록 제 1 운영 체제에 의한 열거 동작을 수행한다. 단계(S370)에서, 제 1 전기 디바이스(110)의 제 1 운영 체제는 제 1 전기 디바이스(110)의 데이터-프로세싱을 보조하도록 제 2 전기 디바이스(130)의 제 2 프로세싱 유닛에 의해 동작된다. 본 발명의 실시예에서, 링크가 설정된 이후, 제 1 운영 체제는 제 1 전기 디바이스(110) 및 제 2 전기 디바이스(130)에 의해 함께 동작된다. 또는 제 1 전기 디바이스(110)가 수면 모드에 진입한다. 단계들(S320~S360)은 CC 인터페이스(120)에 의해 제 1 전기 디바이스(110)와 제 2 전기 디바이스(130) 간에 링크를 설정하는 특정한 단계들이다.
도 4는 본 발명의 다른 실시예에 따라 캐시 일관성을 위한 제어 방법을 예시하는 흐름도(400)이다. 제어 방법은 제어 시스템(100)에 의해 적용된다. 도 4에서 도시된 바와 같이, 단계(S410)에서, 링크가 연결해제될 필요가 있을 때, 링크-연결해제 요청이 제 2 전기 디바이스(130)에 의해 제 1 전기 디바이스(110)에 전송된다. 단계(S420)에서, 제 1 전기 디바이스(110)를 웨이크(wake)시킬지가 결정된다. 제 1 전기 디바이스(110)이 웨이크될 필요가 있는 경우, 단계(S430)가 수행된다. 단계(S430)에서, 제 1 전기 디바이스(110)가 웨이크된다. 제 1 전기 디바이스(110)가 웨이크될 필요가 없는 경우, 단계(S440)가 수행된다. 단계(S440)에서, 제 2 전기 디바이스(130)에 의해 전송된 링크 연결해제 요청이 제 1 전기 디바이스(110)에 의해 확인된다. 단계(S450)에서, 제 1 운영 체제의 업데이트된 콘텐츠는 제 1 전기 디바이스(110)에 의해 CC 인터페이스(120)를 통해 동기화된다. 단계(S460)에서, 재-시작 동작은 제 1 전기 디바이스(110)가 제 1 운영 체제를 재차 독립적으로 동작시킬 수 있게 하도록 제 1 전기 디바이스(110)에 의해 수행된다. 단계(S470)에서, 제 2 운영 체제의 미리-저장된 상태 정보가 제 2 전기 디바이스(130)에 의해 복구된다. 단계(S480)에서, 재-시작 동작은 제 2 전기 디바이스(130)가 제 2 운영 체제를 재차 동작시킬 수 있게 하도록 제 2 전기 디바이스(130)에 의해 수행된다.
도 5a 내지 도 5b는 본 발명의 실시예에 따른 캐시 일관성 인터페이스의 동작을 예시하는 흐름도(500)이다. 방법은 제어 시스템(100)에 의해 적용된다. 도 5에서 도시된 바와 같이, 단계(S510)에서, 메모리 액세스 요청이 제 2 프로세싱 유닛(131)에 의해 CC 인터페이스(120)에 전송된다. 단계(S520)에서, 메모리 액세스 요청이 CC 인터페이스(120)에 의해 레코딩되고 정렬된다. 본 발명의 실시예에서, 도 1에서 도시된 바와 같이, CC 인터페이스(120)는 순서 큐(Order Queue)(121)를 포함한다. 순서 큐(121)는 제 2 프로세싱 유닛(131) 및 제 1 프로세싱 유닛(111)(제 1 제 1 프로세싱 유닛(111)이 수면 모드가 되지 않은 경우)의 메모리 액세스 요청들을 레코딩하고, 메모리 액세스 요청들이 완료되도록 요구되는 순서에 따라 메모리 액세스 요청을 정렬한다. 예를 들어, 제 1 운영 체제의 애플리케이션 프로시저는 메모리 액세스 요청들의 순서를 특정하고, 정렬 결과가 제 2 프로세싱 유닛(131)에 전송된다. 본 발명의 실시예에서, 제 1 전기 디바이스(110)가 다른 메모리 액세스 요청을 CC 인터페이스(120)에 동시에 송신하는 경우(제 1 프로세싱 유닛(111)이 제 2 프로세싱 유닛(131)과 협력하는 경우, 다른 메모리 액세스 요청은 제 1 프로세싱 유닛(111)에 의해 전송될 수 있고; 제 1 프로세싱 유닛(111)이 수면 모드에 있는 경우, 제 1 메모리 유닛(113) 또는 제 1 전기 디바이스(110)의 다른 외부 디바이스들(예를 들어, 네트워크 모듈)은 다른 메모리 액세스 요청을 전송하도록 구성될 수 있음), CC 인터페이스(120)는 애플리케이션 코드에 의해 요구되는 순서에 따라 이들 메모리 액세스 요청들을 정렬하고, 제 1 전기 디바이스(110) 및 제 2 전기 디바이스(130)에 정렬 결과를 전송할 수 있다.
그 후, 단계(S530)가 수행된다. 단계(S530)에서, 메모리 액세스 요청의 어드레스는 제 1 전기 디바이스(110) 또는 제 2 전기 디바이스(130)에 속한다고 결정된다. 본 개시에서, 제 2 프로세싱 유닛(131)에 대해 이용 가능한 메모리 어드레스의 범위는 제 1 프로세싱 유닛(111)에 대해 이용 가능한 메모리 어드레스의 범위와 동일하다. 본 개시에서, 제 2 프로세싱 유닛(131)이 단지 제 1 메모리 유닛(113)의 메모리 어드레스의 범위를 획득할 수 있거나, 또는 제 1 메모리 유닛(113) 및 제 2 메모리 유닛(133) 둘 다의 메모리 어드레스의 범위들을 획득할 수 있는, 제 2 프로세싱 유닛(131)에 대해 이용 가능한 메모리 어드레스의 범위는 가 정의될 수 있다. 단계(S530)는 제 2 캐시 메모리 유닛(132)에 의해 수행될 수 있다. 실시예에서, 제 1 캐시 메모리 유닛(112) 및 제 2 캐시 메모리 유닛(132)은 마지막 레벨 캐시(Last Level Cache; LLC), 스눕 필터 또는 칩셋에 로케이팅된다. 다른 실시예에서, 단계(S530)는 CC 인터페이스(120)에 의해 수행된다.
메모리 액세스 요청의 어드레스가 제 1 전기 디바이스(110)에 속하는 경우, 단계(S540)가 수행된다. 단계(S540)에서, 메모리 액세스 요청이 CC 인터페이스(120)를 통해 제 1 전기 디바이스(110)의 제 1 캐시 메모리 유닛(112)에 전송된다. 그 후, 단계(S550)가 수행된다. 단계(S550)에서, 제 1 캐시 메모리 유닛(112)이 히트(hit)했는지가 결정된다. 제 1 캐시 메모리 유닛(112)이 히트하지 않는 경우(즉, 미스), 즉, 제 1 캐시 메모리 유닛(112)이 메모리 액세스 요청의 요구된 데이터를 갖지 않는 경우, 단계(S560)가 수행된다. 단계(S560)에서, 메모리 액세스 요청은 제 1 전기 디바이스(110)의 제 1 메모리 유닛(113)에 전송된다. 그 후, 단계(S590)가 수행된다. 단계(S590)에서, 대응하는 메모리 어드레스가 제 1 메모리 유닛(113)에서 액세스된다. 제 1 캐시 메모리 유닛(112)이 히트하는 경우, 단계(S590)가 수행되는데, 즉, 대응하는 메모리 어드레스가 제 1 캐시 메모리 유닛(112)에서 액세스된다.
메모리 액세스 요청의 어드레스가 제 2 전기 디바이스(130)에 속하는 경우, 단계(S570)가 수행된다. 단계(S570)에서, 제 2 캐시 메모리 유닛(132)이 히트되었는지가 결정된다. 제 2 캐시 메모리 유닛(132)이 히트되지 않는 경우(미스), 즉, 제 2 캐시 메모리 유닛(132)이 메모리 액세스 요청의 요구되는 데이터를 갖지 않는 경우, 단계(S580)가 수행된다. 단계(S580)에서, 메모리 액세스 요청은 제 2 전기 디바이스(130)의 제 2 메모리 유닛(133)에 전송된다. 그 후, 단계(S590)가 수행된다. 단계(S590)에서, 대응하는 메모리 어드레스가 제 2 메모리 유닛(133)에서 액세스된다. 제 2 캐시 메모리 유닛(132)이 히트되는 경우, 단계(S590)는 직접 수행되는데, 즉, 대응하는 메모리 어드레스가 제 2 캐시 메모리 유닛(132)에서 액세스된다.
몇몇 실시예들에서, 단계(S5100)가 단계(S590) 이후 수행된다. 단계(S5100)에서, 제 1 캐시 메모리 유닛(112)과 제 2 캐시 메모리 유닛(132) 간의 데이터 일관성이 CC 인터페이스(120)에 의해 유지된다.
도 2a의 실시예에서, 제 2 프로세싱 유닛(131)에 의해 액세스될 수 있는 메모리 어드레스의 범위는 제 2 전기 디바이스(130)에 대해 제한된다는 것에 주의한다(즉, 단계(S530)의 결과는 항상, 메모리 액세스 요청의 어드레스가 제 2 전기 디바이스(130)에 속하게 된다는 것임). 도 2b 및 도 2c의 실시예들에서, 제 2 프로세싱 유닛(131)에 의해 액세스될 수 있는 메모리 어드레스의 범위는 제 1 전기 디바이스(110) 또는 제 2 전기 디바이스(130)에 로케이팅될 수 있고, 메모리 액세스 요청은 CC 인터페이스(120)에 의해 대응하는 메모리로 전송될 필요가 있다.
본 발명의 캐시 일관성에 대한 제어 방법에서, 사용자는 복수의 전기 디바이스들을 동시에 이용할 때, 사용자는 더 나은 사용자 경험을 달성하고 데이터 프로세싱의 효율 및 속도를 증가시키기 위해 더 높은 성능의 디바이스로 더 낮은 성능의 전기 디바이스의 데이터 및 기능을 직접 프로세싱 및 동작시킬 수 있다.
본 명세서에서 개시된 양상들과 함께 설명되는 방법의 단계들은 직접 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이들 둘의 결합으로 실현될 수 있다. 소프트웨어 모듈(예를 들어, 실행 가능한 명령들 및 관련된 데이터를 포함함) 및 다른 데이터는 데이터 메모리, 예컨대, RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동 가능한 디스크, CD-ROM, 또는 당 분야에 알려진 임의의 다른 형태의 컴퓨터-판독 가능한 저장 매체에 상주할 수 있다. 예시적인 저장 매체는, 예를 들어, 프로세서가 저장 매체에 정보(예를 들어, 코드)를 기록하고 이로부터 정보를 판독할 수 있도록 (편의를 위해, "프로세서"로서 본 명세서에서 지칭될 수 있는) 컴퓨터/프로세서와 같은 머신에 커플링될 수 있다. 예시적인 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC는 사용자 장비에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 장비에서 이산 컴포넌트들로서 상주할 수 있다. 또한, 몇몇 양상들에서, 임의의 적합한 컴퓨터-프로그램 물건은 본 개시의 양상들 중 하나 이상에 관련된 코드를 포함하는 컴퓨터-판독 가능한 매체를 포함할 수 있다. 몇몇 양상들에서, 컴퓨터 프로그램 물건은 패키징 물질들을 포함할 수 있다.
본 명세서 전체에 걸쳐서 "일 실시예" 또는 "실시예"에 대한 참조는, 실시예와 관련하여 설명되는 특정한 피처, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미하지만, 이들이 각각의 모든 실시예에 존재한다는 것을 나타내는 것은 아니다. 따라서, 본 명세서 전체에 걸친 다양한 장소들에서 "일 실시예에서" 또는 "실시예에서"라는 구문의 출현은 본 발명의 동일한 실시예를 반드시 지칭하는 것은 아니다.
위의 단락들은 본 발명의 다수의 양상들을 설명한다. 명백히, 본 발명의 교시는 다수의 방법들에 의해 달성될 수 있고, 개시된 실시예들에서 임의의 특정한 구성들 또는 기능들은 단지 대표적인 조건들을 제시한다. 이 기술의 당업자들은 본 발명에서 개시된 모든 양상들이 독립적으로 적용되거나 포함될 수 있다는 것을 이해할 것이다.
본 발명이 바람직한 실시예의 견지에서 그리고 예로서 설명되었지만, 본 발명은 이들로 제한되지 않는다는 것이 이해될 것이다. 이 기술의 당업자들은 여전히 본 발명의 사상 및 범위로부터 벗어남 없이 다양한 변경들 및 변형들을 가할 수 있다. 그러므로 본 발명의 범위는 하기의 청구항 및 그의 등가물들에 의해 정의되고 보호되어야 한다.
Claims (19)
- 캐시 일관성을 위한 제어 방법으로서,
제 1 전기 디바이스가 캐시 일관성(cache coherency; CC) 인터페이스에 의해 제 2 전기 디바이스에 커플링될 때, 상기 제 1 전기 디바이스의 제 1 프로세싱 유닛에 의해, 상기 제 2 전기 디바이스에 링크-연결 요청을 전송하는 단계;
상기 CC 인터페이스에 의해, 상기 링크-연결 요청에 따라 상기 제 1 전기 디바이스와 제 2 전기 디바이스 간에 링크를 설정하는 단계;
상기 링크를 설정한 이후, 상기 제 1 전기 디바이스의 제 1 운영 체제가 상기 제 2 전기 디바이스의 하드웨어 엘리먼트들의 관련 정보를 획득하게 하기 위해, 상기 제 2 전기 디바이스의 하드웨어 엘리먼트들에 대한 재-시작 동작을 수행하는 단계; 및
상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해, 상기 제 1 전기 디바이스의 제 1 운영 체제를 동작시키는 단계
를 포함하는, 캐시 일관성을 위한 제어 방법. - 제 1 항에 있어서,
상기 제 1 전기 디바이스의 제 1 운영 체제가 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 동작될 때, 상기 CC 인터페이스에 의해, 상기 제 1 전기 디바이스와 제 2 전기 디바이스 간의 데이터 일관성을 유지하는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법. - 제 1 항에 있어서,
상기 제 1 전기 디바이스의 제 1 운영 체제가 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 동작되기 이전에, 상기 제 1 운영 체제에 의해, 상기 제 1 운영 체제가 상기 제 2 전기 디바이스에서 동작하게 하도록 상기 제 2 전기 디바이스의 복수의 하드웨어 엘리먼트들에 대한 열거 동작(enumeration operation)을 수행하는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법. - 제 3 항에 있어서,
상기 열거 동작은, 상기 제 2 전기 디바이스의 특정한 구동기(driver)에 의해, 상기 제 2 전기 디바이스의 하드웨어 엘리먼트들을 재-시작하는 것을 더 포함하는, 캐시 일관성을 위한 제어 방법. - 제 1 항에 있어서,
상기 제 1 전기 디바이스의 제 1 운영 체제가 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 동작되기 이전에, 상기 제 2 전기 디바이스에 의해, 상기 제 2 전기 디바이스의 제 2 운영 체제의 상태 정보를 미리-저장하는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법. - 제 1 항에 있어서,
상기 제 1 전기 디바이스의 제 1 프로세싱 유닛은, 상기 링크가 설정된 이후, 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛과 협력하여 상기 제 1 운영 체제를 동작시키거나, 수면 모드에 진입하는 것인, 캐시 일관성을 위한 제어 방법. - 제 1 항에 있어서,
상기 링크가 연결해제(disconnect)될 필요가 있을 때 상기 제 1 전기 디바이스에 링크-연결해제 요청을 전송하는 단계;
상기 CC 인터페이스에 의해, 상기 제 1 전기 디바이스와 상기 제 2 전기 디바이스 간에 데이터를 동기화하는 단계; 및
상기 링크가 연결해제된 이후, 상기 제 1 전기 디바이스를 보통의 동작 모드로 복구하고 상기 제 2 전기 디바이스의 제 2 운영 체제의 상태 정보를 복구하는 단계
를 더 포함하는, 캐시 일관성을 위한 제어 방법. - 제 1 항에 있어서,
상기 제 1 전기 디바이스의 제 1 프로세싱 유닛 및 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해, 대칭형 다중-프로세서들(Symmetric Multi-Processors; SMP) 모드 또는 캐시 일관성 비-균일 메모리 액세스(Cache Coherent Non-Uniform Memory Access; ccNUMA) 모드에서 상기 제 1 전기 디바이스의 제 1 운영 체제를 동작시키는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법. - 제 1 항에 있어서,
상기 CC 인터페이스는 유선 통신 또는 무선 통신 방식에 의해 상기 링크를 설정하는 것인, 캐시 일관성을 위한 제어 방법. - 제 1 항에 있어서,
상기 링크를 설정한 이후, 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해, 상기 CC 인터페이스를 통해 상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛에 액세스하는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법. - 제 10 항에 있어서,
상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛이 상기 CC 인터페이스를 통해 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 액세스될 때, 상기 제 1 캐시 메모리 유닛이 미스(miss)되거나 꽉 찬 경우 상기 제 1 전기 디바이스의 제 1 메모리 유닛에 액세스하는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법. - 제 10 항에 있어서,
상기 링크를 설정한 이후 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 상기 CC 인터페이스를 통해 상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛에 액세스하는 단계는,
상기 제 2 프로세싱 유닛에 의해, 상기 CC 인터페이스에 메모리 액세스 요청을 전송하는 단계;
상기 CC 인터페이스에 의해, 상기 메모리 액세스 요청을 레코딩 및 정렬(sort)하는 단계; 및
상기 메모리 액세스 요청의 어드레스가 상기 제 1 전기 디바이스 또는 상기 제 2 전기 디바이스에 속하는 지를 결정하는 단계
를 더 포함하는, 캐시 일관성을 위한 제어 방법. - 제 12 항에 있어서,
상기 링크를 설정한 이후 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 상기 CC 인터페이스를 통해 상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛에 액세스하는 단계는,
상기 메모리 액세스 요청의 어드레스가 상기 제 1 전기 디바이스에 속하면, 상기 CC 인터페이스에 의해, 상기 제 1 캐시 메모리 유닛에 상기 메모리 액세스 요청을 전송하는 단계; 및
상기 제 1 캐시 메모리 유닛이 상기 메모리 액세스 요청의 요구된 데이터를 가지지 않으면, 상기 제 1 전기 디바이스의 제 1 메모리 유닛에 상기 메모리 액세스 요청을 전송하는 단계
를 더 포함하는, 캐시 일관성을 위한 제어 방법. - 제 10 항에 있어서,
상기 링크를 설정한 이후 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 상기 CC 인터페이스를 통해 상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛에 액세스하는 단계는,
상기 제 2 프로세싱 유닛에 의해, 상기 CC 인터페이스에 메모리 액세스 요청을 전송하는 단계;
상기 제 1 전기 디바이스에 의해, 상기 CC 인터페이스에 다른 메모리 액세스 요청을 전송하는 단계;
상기 CC 인터페이스에 의해, 상기 메모리 액세스 요청 및 상기 다른 메모리 액세스 요청을 순서대로 정렬하는 단계; 및
상기 제 1 전기 디바이스 및 상기 제 2 전기 디바이스에 정렬 결과를 전송하는 단계
를 더 포함하는, 캐시 일관성을 위한 제어 방법. - 제 14 항에 있어서,
상기 CC 인터페이스는 상기 메모리 액세스 요청 및 상기 다른 메모리 액세스 요청이 완료되도록 요구되는 순서에 따라 순서대로 상기 메모리 액세스 요청 및 상기 다른 메모리 액세스 요청을 정렬하는 것인, 캐시 일관성을 위한 제어 방법. - 제 14 항에 있어서,
상기 다른 메모리 액세스 요청은 상기 제 1 전기 디바이스의 외부 디바이스에 의해 전송되는 것인, 캐시 일관성을 위한 제어 방법. - 캐시 일관성을 위한 제어 시스템으로서,
링크를 설정하도록 링크-연결 요청을 전송하게 구성되는 제 1 전기 디바이스;
상기 링크-연결 요청에 따라 상기 링크를 설정하도록 구성되는 CC 인터페이스; 및
제 2 프로세싱 유닛을 포함하는 제 2 전기 디바이스
를 포함하고,
상기 제 1 전기 디바이스가 상기 CC 인터페이스에 의해 상기 제 2 전기 디바이스에 커플링될 때, 상기 제 1 전기 디바이스는 상기 링크를 설정하도록 상기 링크-연결 요청을 상기 제 2 전기 디바이스에 전송하고,
상기 링크가 설정된 이후, 상기 제 2 전기 디바이스는, 상기 제 1 전기 디바이스의 제 1 운영 제체가 상기 제 2 전기 디바이스의 하드웨어 엘리먼트들의 관련 정보를 획득하게 하기 위해, 상기 제 2 전기 디바이스의 하드웨어 엘리먼트들에 대한 재-시작 동작을 수행하고,
상기 제 2 프로세싱 유닛은 상기 제 1 전기 디바이스의 제 1 운영 체제를 동작시키는 것인, 캐시 일관성을 위한 제어 시스템. - 제 17 항에 있어서,
상기 제 1 운영 체제는, 상기 제 1 전기 디바이스의 제 1 운영 체제가 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 동작되기 이전에, 상기 제 1 운영 체제가 상기 제 2 전기 디바이스에서 동작할 수 있게 하도록 상기 제 2 전기 디바이스의 복수의 하드웨어 엘리먼트들에 대한 열거 동작을 수행하는 것인, 캐시 일관성을 위한 제어 시스템. - 제 17 항에 있어서,
상기 링크를 설정한 이후, 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛은 상기 CC 인터페이스를 통해 상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛에 액세스하는 것인, 캐시 일관성을 위한 제어 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410709312.XA CN104375963B (zh) | 2014-11-28 | 2014-11-28 | 基于缓存一致性的控制系统和方法 |
CN201410709312.X | 2014-11-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160064982A KR20160064982A (ko) | 2016-06-08 |
KR101781271B1 true KR101781271B1 (ko) | 2017-09-22 |
Family
ID=52554890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150164515A KR101781271B1 (ko) | 2014-11-28 | 2015-11-24 | 캐시 일관성을 위한 제어 시스템 및 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10044829B2 (ko) |
EP (1) | EP3040869A1 (ko) |
JP (1) | JP6092352B2 (ko) |
KR (1) | KR101781271B1 (ko) |
CN (1) | CN104375963B (ko) |
TW (2) | TWI521348B (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6189267B2 (ja) * | 2014-08-20 | 2017-08-30 | 株式会社東芝 | 情報処理装置、方法およびプログラム |
KR20190071788A (ko) * | 2016-10-26 | 2019-06-24 | 심플웨이 테크놀로지스 엘티디. | 장치 상호운용성 및 동기화에 대한 시스템 및 방법 |
CN110990063B (zh) * | 2019-11-28 | 2021-11-23 | 中国科学院计算技术研究所 | 一种用于基因相似性分析的加速装置、方法和计算机设备 |
WO2023200425A1 (en) * | 2022-04-11 | 2023-10-19 | Hewlett-Packard Development Company, L.P. | Direct point-to-point computing device bridges |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6279087B1 (en) * | 1997-12-22 | 2001-08-21 | Compaq Computer Corporation | System and method for maintaining coherency and improving performance in a bus bridge supporting write posting operations |
US7143408B2 (en) * | 2001-08-27 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | Software installation for hardware devices |
US7149857B2 (en) * | 2002-05-14 | 2006-12-12 | Micron Technology, Inc. | Out of order DRAM sequencer |
US6938139B2 (en) | 2002-06-21 | 2005-08-30 | Jp Morgan Chase Bank | Method and system for data element change across multiple instances of data base cache |
US6950913B2 (en) | 2002-11-08 | 2005-09-27 | Newisys, Inc. | Methods and apparatus for multiple cluster locking |
US7568073B2 (en) * | 2006-11-06 | 2009-07-28 | International Business Machines Corporation | Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection |
US8762999B2 (en) * | 2007-09-27 | 2014-06-24 | Oracle America, Inc. | Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement |
JP2009157802A (ja) * | 2007-12-27 | 2009-07-16 | Kyocera Corp | 携帯端末および情報処理装置 |
JP5116496B2 (ja) * | 2008-01-30 | 2013-01-09 | 京セラ株式会社 | 情報処理装置および携帯端末 |
US9015446B2 (en) * | 2008-12-10 | 2015-04-21 | Nvidia Corporation | Chipset support for non-uniform memory access among heterogeneous processing units |
US8397229B2 (en) * | 2009-01-25 | 2013-03-12 | Netspectrum Inc. | System and methods for migrating independently executing program into and out of an operating system |
US9892047B2 (en) * | 2009-09-17 | 2018-02-13 | Provenance Asset Group Llc | Multi-channel cache memory |
US8533505B2 (en) * | 2010-03-01 | 2013-09-10 | Arm Limited | Data processing apparatus and method for transferring workload between source and destination processing circuitry |
US8719455B2 (en) * | 2010-06-28 | 2014-05-06 | International Business Machines Corporation | DMA-based acceleration of command push buffer between host and target devices |
EP2570920A1 (en) | 2011-09-16 | 2013-03-20 | France Télécom | System and method for cross-platform application execution and display |
DE102011113644A1 (de) * | 2011-09-19 | 2013-03-21 | Rheinmetall Soldier Electronics Gmbh | Vorrichtung zur Identifizierung und Kommunikation |
JP5742651B2 (ja) * | 2011-10-15 | 2015-07-01 | コニカミノルタ株式会社 | 画像処理装置、連携方法および連携プログラム |
US20130117511A1 (en) * | 2011-11-08 | 2013-05-09 | Arm Limited | Data processing apparatus and method |
US8578129B2 (en) * | 2011-12-14 | 2013-11-05 | Advanced Micro Devices, Inc. | Infrastructure support for accelerated processing device memory paging without operating system integration |
US9110830B2 (en) | 2012-01-18 | 2015-08-18 | Qualcomm Incorporated | Determining cache hit/miss of aliased addresses in virtually-tagged cache(s), and related systems and methods |
CN104756078B (zh) * | 2012-08-20 | 2018-07-13 | 唐纳德·凯文·卡梅伦 | 处理资源分配的装置和方法 |
CN103544269B (zh) * | 2013-10-17 | 2017-02-01 | 华为技术有限公司 | 目录的存储方法、查询方法及节点控制器 |
-
2014
- 2014-11-28 CN CN201410709312.XA patent/CN104375963B/zh active Active
- 2014-12-05 TW TW103142298A patent/TWI521348B/zh active
- 2014-12-05 TW TW103142546A patent/TWI637616B/zh active
-
2015
- 2015-06-16 US US14/740,526 patent/US10044829B2/en active Active
- 2015-11-04 EP EP15192930.4A patent/EP3040869A1/en not_active Ceased
- 2015-11-17 JP JP2015224492A patent/JP6092352B2/ja active Active
- 2015-11-24 KR KR1020150164515A patent/KR101781271B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
US20160156734A1 (en) | 2016-06-02 |
JP6092352B2 (ja) | 2017-03-08 |
TWI637616B (zh) | 2018-10-01 |
TW201619833A (zh) | 2016-06-01 |
US10044829B2 (en) | 2018-08-07 |
EP3040869A1 (en) | 2016-07-06 |
CN104375963A (zh) | 2015-02-25 |
TW201620284A (zh) | 2016-06-01 |
JP2016103273A (ja) | 2016-06-02 |
CN104375963B (zh) | 2019-03-15 |
KR20160064982A (ko) | 2016-06-08 |
TWI521348B (zh) | 2016-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101781271B1 (ko) | 캐시 일관성을 위한 제어 시스템 및 방법 | |
US10659200B2 (en) | Companion application for activity cooperation | |
US9380123B2 (en) | Activity continuation between electronic devices | |
EP3049943B1 (en) | Techniques to compose memory resources across devices | |
US11134113B2 (en) | User interface content state synchronization across devices | |
AU2015267625B2 (en) | Activity continuation between electronic devices | |
JP5666591B2 (ja) | 低電力補助プロセッサによってコンピュータを動作させるための方法およびシステム | |
US11243595B2 (en) | Method and apparatus for reducing continuous-wakeup delay of bluetooth loudspeaker, and bluetooth loudspeaker | |
US20130318158A1 (en) | User interface content state synchronization across devices | |
WO2015157910A1 (zh) | 共享应用信息方法和装置 | |
CN108605373B (zh) | 用于提供网络共享服务的方法和电子装置 | |
WO2018049970A1 (zh) | 热点网络切换方法及终端 | |
CN101901256A (zh) | 自动同步用户在各社交网站上设定信息的方法及系统 | |
WO2018072511A1 (zh) | 一种扩展内存的方法及装置 | |
CN104407995A (zh) | 基于缓存一致性的控制系统和方法 | |
TW201500933A (zh) | 在區域網路中進行資料分享與數據同步的方法 | |
CN114710482A (zh) | 文件检测方法、装置、电子设备及存储介质 | |
WO2013016949A1 (en) | User interface content state synchronization across devices | |
WO2013001151A1 (en) | Methods, apparatuses and computer program products for improving network transmission by reducing memory copy overhead by providing direct access to data | |
CN115269483A (zh) | 控制方法、控制装置和连接装置 | |
CN114374690A (zh) | 一种文件共享方法、通信系统和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
GRNT | Written decision to grant |