KR101781271B1 - 캐시 일관성을 위한 제어 시스템 및 방법 - Google Patents

캐시 일관성을 위한 제어 시스템 및 방법 Download PDF

Info

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
Application number
KR1020150164515A
Other languages
English (en)
Other versions
KR20160064982A (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 KR20160064982A publication Critical patent/KR20160064982A/ko
Application granted granted Critical
Publication of KR101781271B1 publication Critical patent/KR101781271B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5683Storage of data provided by user terminals, i.e. reverse caching
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • 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/16Handling requests for interconnection or transfer for access to memory 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance 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

캐시 일관성을 위한 제어 시스템 및 방법{CONTROL SYSTEM AND METHOD FOR CACHE COHERENCY}
관련된 출원들에 대한 상호참조
본 출원은 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)이다.
하기의 설명은 본 발명을 수행하는 최고의 의도된 모드에 관한 것이다. 이 설명은 본 발명의 일반적인 원리들을 예시할 목적으로 이루어지며, 제한하는 의미로서 받아들여선 안 된다. 본 발명의 범위는 첨부된 청구항들을 참조하여 가장 잘 결정된다.
도 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. 캐시 일관성을 위한 제어 방법으로서,
    제 1 전기 디바이스가 캐시 일관성(cache coherency; CC) 인터페이스에 의해 제 2 전기 디바이스에 커플링될 때, 상기 제 1 전기 디바이스의 제 1 프로세싱 유닛에 의해, 상기 제 2 전기 디바이스에 링크-연결 요청을 전송하는 단계;
    상기 CC 인터페이스에 의해, 상기 링크-연결 요청에 따라 상기 제 1 전기 디바이스와 제 2 전기 디바이스 간에 링크를 설정하는 단계;
    상기 링크를 설정한 이후, 상기 제 1 전기 디바이스의 제 1 운영 체제가 상기 제 2 전기 디바이스의 하드웨어 엘리먼트들의 관련 정보를 획득하게 하기 위해, 상기 제 2 전기 디바이스의 하드웨어 엘리먼트들에 대한 재-시작 동작을 수행하는 단계; 및
    상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해, 상기 제 1 전기 디바이스의 제 1 운영 체제를 동작시키는 단계
    를 포함하는, 캐시 일관성을 위한 제어 방법.
  2. 제 1 항에 있어서,
    상기 제 1 전기 디바이스의 제 1 운영 체제가 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 동작될 때, 상기 CC 인터페이스에 의해, 상기 제 1 전기 디바이스와 제 2 전기 디바이스 간의 데이터 일관성을 유지하는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법.
  3. 제 1 항에 있어서,
    상기 제 1 전기 디바이스의 제 1 운영 체제가 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 동작되기 이전에, 상기 제 1 운영 체제에 의해, 상기 제 1 운영 체제가 상기 제 2 전기 디바이스에서 동작하게 하도록 상기 제 2 전기 디바이스의 복수의 하드웨어 엘리먼트들에 대한 열거 동작(enumeration operation)을 수행하는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법.
  4. 제 3 항에 있어서,
    상기 열거 동작은, 상기 제 2 전기 디바이스의 특정한 구동기(driver)에 의해, 상기 제 2 전기 디바이스의 하드웨어 엘리먼트들을 재-시작하는 것을 더 포함하는, 캐시 일관성을 위한 제어 방법.
  5. 제 1 항에 있어서,
    상기 제 1 전기 디바이스의 제 1 운영 체제가 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 동작되기 이전에, 상기 제 2 전기 디바이스에 의해, 상기 제 2 전기 디바이스의 제 2 운영 체제의 상태 정보를 미리-저장하는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법.
  6. 제 1 항에 있어서,
    상기 제 1 전기 디바이스의 제 1 프로세싱 유닛은, 상기 링크가 설정된 이후, 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛과 협력하여 상기 제 1 운영 체제를 동작시키거나, 수면 모드에 진입하는 것인, 캐시 일관성을 위한 제어 방법.
  7. 제 1 항에 있어서,
    상기 링크가 연결해제(disconnect)될 필요가 있을 때 상기 제 1 전기 디바이스에 링크-연결해제 요청을 전송하는 단계;
    상기 CC 인터페이스에 의해, 상기 제 1 전기 디바이스와 상기 제 2 전기 디바이스 간에 데이터를 동기화하는 단계; 및
    상기 링크가 연결해제된 이후, 상기 제 1 전기 디바이스를 보통의 동작 모드로 복구하고 상기 제 2 전기 디바이스의 제 2 운영 체제의 상태 정보를 복구하는 단계
    를 더 포함하는, 캐시 일관성을 위한 제어 방법.
  8. 제 1 항에 있어서,
    상기 제 1 전기 디바이스의 제 1 프로세싱 유닛 및 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해, 대칭형 다중-프로세서들(Symmetric Multi-Processors; SMP) 모드 또는 캐시 일관성 비-균일 메모리 액세스(Cache Coherent Non-Uniform Memory Access; ccNUMA) 모드에서 상기 제 1 전기 디바이스의 제 1 운영 체제를 동작시키는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법.
  9. 제 1 항에 있어서,
    상기 CC 인터페이스는 유선 통신 또는 무선 통신 방식에 의해 상기 링크를 설정하는 것인, 캐시 일관성을 위한 제어 방법.
  10. 제 1 항에 있어서,
    상기 링크를 설정한 이후, 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해, 상기 CC 인터페이스를 통해 상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛에 액세스하는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법.
  11. 제 10 항에 있어서,
    상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛이 상기 CC 인터페이스를 통해 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 액세스될 때, 상기 제 1 캐시 메모리 유닛이 미스(miss)되거나 꽉 찬 경우 상기 제 1 전기 디바이스의 제 1 메모리 유닛에 액세스하는 단계를 더 포함하는, 캐시 일관성을 위한 제어 방법.
  12. 제 10 항에 있어서,
    상기 링크를 설정한 이후 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 상기 CC 인터페이스를 통해 상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛에 액세스하는 단계는,
    상기 제 2 프로세싱 유닛에 의해, 상기 CC 인터페이스에 메모리 액세스 요청을 전송하는 단계;
    상기 CC 인터페이스에 의해, 상기 메모리 액세스 요청을 레코딩 및 정렬(sort)하는 단계; 및
    상기 메모리 액세스 요청의 어드레스가 상기 제 1 전기 디바이스 또는 상기 제 2 전기 디바이스에 속하는 지를 결정하는 단계
    를 더 포함하는, 캐시 일관성을 위한 제어 방법.
  13. 제 12 항에 있어서,
    상기 링크를 설정한 이후 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 상기 CC 인터페이스를 통해 상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛에 액세스하는 단계는,
    상기 메모리 액세스 요청의 어드레스가 상기 제 1 전기 디바이스에 속하면, 상기 CC 인터페이스에 의해, 상기 제 1 캐시 메모리 유닛에 상기 메모리 액세스 요청을 전송하는 단계; 및
    상기 제 1 캐시 메모리 유닛이 상기 메모리 액세스 요청의 요구된 데이터를 가지지 않으면, 상기 제 1 전기 디바이스의 제 1 메모리 유닛에 상기 메모리 액세스 요청을 전송하는 단계
    를 더 포함하는, 캐시 일관성을 위한 제어 방법.
  14. 제 10 항에 있어서,
    상기 링크를 설정한 이후 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 상기 CC 인터페이스를 통해 상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛에 액세스하는 단계는,
    상기 제 2 프로세싱 유닛에 의해, 상기 CC 인터페이스에 메모리 액세스 요청을 전송하는 단계;
    상기 제 1 전기 디바이스에 의해, 상기 CC 인터페이스에 다른 메모리 액세스 요청을 전송하는 단계;
    상기 CC 인터페이스에 의해, 상기 메모리 액세스 요청 및 상기 다른 메모리 액세스 요청을 순서대로 정렬하는 단계; 및
    상기 제 1 전기 디바이스 및 상기 제 2 전기 디바이스에 정렬 결과를 전송하는 단계
    를 더 포함하는, 캐시 일관성을 위한 제어 방법.
  15. 제 14 항에 있어서,
    상기 CC 인터페이스는 상기 메모리 액세스 요청 및 상기 다른 메모리 액세스 요청이 완료되도록 요구되는 순서에 따라 순서대로 상기 메모리 액세스 요청 및 상기 다른 메모리 액세스 요청을 정렬하는 것인, 캐시 일관성을 위한 제어 방법.
  16. 제 14 항에 있어서,
    상기 다른 메모리 액세스 요청은 상기 제 1 전기 디바이스의 외부 디바이스에 의해 전송되는 것인, 캐시 일관성을 위한 제어 방법.
  17. 캐시 일관성을 위한 제어 시스템으로서,
    링크를 설정하도록 링크-연결 요청을 전송하게 구성되는 제 1 전기 디바이스;
    상기 링크-연결 요청에 따라 상기 링크를 설정하도록 구성되는 CC 인터페이스; 및
    제 2 프로세싱 유닛을 포함하는 제 2 전기 디바이스
    를 포함하고,
    상기 제 1 전기 디바이스가 상기 CC 인터페이스에 의해 상기 제 2 전기 디바이스에 커플링될 때, 상기 제 1 전기 디바이스는 상기 링크를 설정하도록 상기 링크-연결 요청을 상기 제 2 전기 디바이스에 전송하고,
    상기 링크가 설정된 이후, 상기 제 2 전기 디바이스는, 상기 제 1 전기 디바이스의 제 1 운영 제체가 상기 제 2 전기 디바이스의 하드웨어 엘리먼트들의 관련 정보를 획득하게 하기 위해, 상기 제 2 전기 디바이스의 하드웨어 엘리먼트들에 대한 재-시작 동작을 수행하고,
    상기 제 2 프로세싱 유닛은 상기 제 1 전기 디바이스의 제 1 운영 체제를 동작시키는 것인, 캐시 일관성을 위한 제어 시스템.
  18. 제 17 항에 있어서,
    상기 제 1 운영 체제는, 상기 제 1 전기 디바이스의 제 1 운영 체제가 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛에 의해 동작되기 이전에, 상기 제 1 운영 체제가 상기 제 2 전기 디바이스에서 동작할 수 있게 하도록 상기 제 2 전기 디바이스의 복수의 하드웨어 엘리먼트들에 대한 열거 동작을 수행하는 것인, 캐시 일관성을 위한 제어 시스템.
  19. 제 17 항에 있어서,
    상기 링크를 설정한 이후, 상기 제 2 전기 디바이스의 제 2 프로세싱 유닛은 상기 CC 인터페이스를 통해 상기 제 1 전기 디바이스의 제 1 캐시 메모리 유닛에 액세스하는 것인, 캐시 일관성을 위한 제어 시스템.
KR1020150164515A 2014-11-28 2015-11-24 캐시 일관성을 위한 제어 시스템 및 방법 KR101781271B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 华为技术有限公司 目录的存储方法、查询方法及节点控制器

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