CN104375963A - 基于缓存一致性的控制系统和方法 - Google Patents

基于缓存一致性的控制系统和方法 Download PDF

Info

Publication number
CN104375963A
CN104375963A CN201410709312.XA CN201410709312A CN104375963A CN 104375963 A CN104375963 A CN 104375963A CN 201410709312 A CN201410709312 A CN 201410709312A CN 104375963 A CN104375963 A CN 104375963A
Authority
CN
China
Prior art keywords
electronic device
electronic installation
buffer consistency
operating system
processing unit
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201410709312.XA
Other languages
English (en)
Other versions
CN104375963B (zh
Inventor
赖瑾
杨梦晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhaoxin Semiconductor Co Ltd
Original Assignee
Shanghai Zhaoxin Integrated Circuit Co Ltd
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 Shanghai Zhaoxin Integrated Circuit Co Ltd filed Critical Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority to CN201410728001.8A priority Critical patent/CN104407995B/zh
Priority to CN201410709312.XA priority patent/CN104375963B/zh
Priority to TW103142298A priority patent/TWI521348B/zh
Priority to TW103142546A priority patent/TWI637616B/zh
Publication of CN104375963A publication Critical patent/CN104375963A/zh
Priority to US14/740,526 priority patent/US10044829B2/en
Priority to EP15192930.4A priority patent/EP3040869A1/en
Priority to JP2015224492A priority patent/JP6092352B2/ja
Priority to KR1020150164515A priority patent/KR101781271B1/ko
Application granted granted Critical
Publication of CN104375963B publication Critical patent/CN104375963B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • 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
    • 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

本发明提供一种基于缓存一致性的控制系统和方法,涉及装置间的控制的技术,所述基于缓存一致性的控制方法包括:当一第一电子装置通过一缓存一致性接口耦接至一第二电子装置时,通过所述第一电子装置发送一连结请求至所述第二电子装置;根据所述连结请求,通过所述缓存一致性接口,建立所述第一电子装置和所述第二电子装置的连结;以及所述连结建立后,通过所述第二电子装置的一第二处理单元操作所述第一电子装置的一第一操作系统。

Description

基于缓存一致性的控制系统和方法
技术领域
本发明涉及装置间的控制的技术,特别涉及一种通过缓存一致性(CacheCoherency,CC)方法进行装置间的控制的技术。
背景技术
近年来,由于通讯技术的快速发展,各式各样的通讯装置,例如:移动电话、智能型手机(smart phone)、个人数字助理(PDA)、平板计算机(Tablet PC)等电子商品不断的在市场上被推出,且这些电子商品的功能也越来越多元化。此外,由于这些装置的便利,也使得这些装置成为人们的生活必需品之一。
当用户在操作多个装置时,想要利用一装置协助另一装置进行数据的处理,往往需要先透过数据的转移将数据转移到上述装置,通过上述装置的软件和硬件处理完后再将数据转移回另一装置。用户并无法直接就通过上述装置的硬件直接协助另一装置的软件进行数据的处理。因而造成使用者使用的不方便。
发明内容
有鉴于上述先前技术的问题,本发明提供了通过缓存一致性的技术,来进行装置间的控制的系统和方法。
根据本发明的一实施例提供了一种基于缓存一致性的控制方法。此控制方法包括:当一第一电子装置通过一缓存一致性接口耦接至一第二电子装置时,通过所述第一电子装置发送一连结请求至所述第二电子装置;根据所述连结请求,通过所述缓存一致性接口,建立所述第一电子装置和所述第二电子装置的连结;以及所述连结建立后,通过所述第二电子装置的一第二处理单元操作所述第一电子装置的一第一操作系统。
根据本发明的一实施例提供了一种基于缓存一致性的控制系统。此控制系统包括:一第一电子装置,用于发送一连结请求,以建立一连结;一缓存一致性接口,用于根据所述连结请求,建立所述连结;以及一第二电子装置,包括一第二处理单元,其中,当所述第一电子装置通过所述缓存一致性接口耦接至所述第二电子装置时,所述第一电子装置发送所述连结请求,以及当所述连结建立后,所述第二处理单元操作所述第一电子装置的一第一操作系统。
关于本发明其他附加的特征与优点,此领域的熟习技术人士,在不脱离本发明的精神和范围内,当可根据本案实施方法中所揭露的执行联系程序的用户装置、系统、以及方法,做些许的更动与润饰而得到。
附图说明
图1为根据本发明的实施例所述的基于缓存一致性的控制系统100的方块图;
图2A为根据本发明的一实施例所述的一第一对称多处理器模式的示意图;
图2B为根据本发明的一实施例所述的一第二对称多处理器模式的示意图;
图2C为根据本发明的一实施例所述的一缓存一致性非均匀存储器存取模式的示意图;
图3为根据本发明一实施例所述的基于缓存一致性的控制方法的流程图300;
图4为根据本发明另一实施例所述的基于缓存一致性的控制方法的流程图400;
图5A~5B为根据本发明一实施例所述的缓存一致性接口具体运作的流程图500。
附图标记:
100:控制系统;
110:第一电子装置;
111:第一处理单元;
112:第一高速缓存单元;
113:第一存储器单元;
120:缓存一致性接口;
121:顺序队列;
130:第二电子装置;
131:第二处理单元;
132:第二高速缓存单元;
133:第二存储器单元。
具体实施方式
本章节所叙述的是实施本发明的最佳方式,目的在于说明本发明的精神而非用以限定本发明的保护范围,本发明的保护范围当视申请专利范围所界定者为准。
图1为根据本发明的一实施例所述的基于缓存一致性的控制系统100的方块图。如图1所示,控制系统100中包括一第一电子装置110、一缓存一致性接口120以及一第二电子装置130。第一电子装置110中包括一第一处理单元111、一第一高速缓存单元112以及一第一存储器单元113。第二电子装置130中包括一第二处理单元131、一第二高速缓存单元132以及一第二存储器单元133。图1中的方块图,仅是为了方便说明本发明的实施例,但本发明并不以此为限。
根据本发明的一实施例,第一电子装置110可用于连结至一运算装置,例如便携计算机或桌面计算机;或一自足式装置(self-contained device),例如个人数字助理(Personal Digital Assistant,PDA)。第一电子装置110又可称为一系统、一用户单元、一用户台、一行动台、远程台、存取点、远程终端、存取终端、用户终端、用户代理、或用户装置等。第一电子装置110可以为一用户台、一无线装置、手机、一个人通讯服务(Personal Communication Service,PCS)电话、一无线式(cordless)电话、一对话起始协议(Session Initiation Protocol,SIP)电话、一无线区域回路(wireless local loop,WLL)站、一个人数字助理、一具有无线连结能力的手持装置、或可连结一无线调制解调器的处理装置。
根据本发明的实施例,第二电子装置130可以为一主端装置(host device)、或一具有较高处理效能的电子装置,例如:便携计算机、桌面计算机或平板计算机。
根据本发明的实施例,缓存一致性接口120可以为一支持缓存一致性(CC)的接口。缓存一致性是表示保留在高速缓存中的共享资源,可保持数据一致性的机制。特别注意的是,传统上,缓存一致性(CC)通常是应用在一电子装置的多核心处理器(Multi-core processor)中,通过缓存一致性(CC)的机制,可维持每一核心处理器在高速缓存中的共享资源的一致性。因此,有别于传统上的应用,在本发明的实施例中是将缓存一致性(CC)应用在不同装置间的数据处理上,并非仅限于单一装置的多核心处理器的应用上。根据本发明一实施例,缓存一致性接口120可通过一有线传输方式或一无线传输方式来建立第一电子装置110和第二电子装置130间的连结。根据本发明一实施例,缓存一致性接口120的传输协议为分层协议,其中其物理层(physical layer)的传输协议为一有线传输协议或一无线传输协议。根据本发明一实施例,缓存一致性接口120对于第一电子装置110和第二电子装置130来讲,均为外部总线接口,其电气接口会引出装置外部。
根据本发明的一实施例,第一处理单元111和第二处理单元131可以为一通用处理器(general-purpose processor,GPP)、一微处理机控制单元(Micro ControlUnit,MCU)或其它处理装置、或一多核心的处理器。根据本发明的一实施例,第一高速缓存单元112和第二高速缓存单元132属于一最后一级高速缓存(LastLevel Cache,LLC),或一监听滤波器(snoop filter),或一芯片组(Chipset)。根据本发明的一实施例,第一存储器单元113和第二存储器单元133可以为一挥发性存储器(volatile memory)(例如:随机存取存储器(Random Access Memory,RAM))实现的系统存储器。在其它实施例中,第一存储器单元113和第二存储器单元133也可以为一非挥发性存储器(non-volatile memory)(例如:闪存(flashmemory)、只读存储器(Read Only Memory,ROM)),或上述装置的组合。
根据本发明的一实施例,当用户需要将第一电子装置110(例如:一手持装置)和第二电子装置130(例如:一笔电)建立一连结时,将第一电子装置110通过缓存一致性接口120耦接至第二电子装置130,此时第一电子装置110(例如,第一处理单元111)会发送一连结请求至第二电子装置130。特别说明的是,在本发明实施例中所述的连结,是指第一电子装置110和第二电子装置130基于一缓存一致性(CC)的机制所建立的连结,在上述连结建立后,可以直接使用第二电子装置130的硬件组件来操作第一电子装置110。具体而言,在一实施例中,上述连结建立后,第二电子装置130的第二处理单元131可直接操作第一电子装置110的第一操作系统,且第二电子装置130和第一电子装置110均无需重新启动(re-boot)。因此,在本发明所述的连结,并非指一般的远程操作(远程操作仍是由第一电子装置110来处理数据),或是指装置间的联机。如此一来,用户可依靠第二电子装置130(例如:一笔电)的具备较强运算能力的第二处理单元131来协助第一电子装置110的第一操作系统的运行。在其它实施例中,除了第二处理单元131,第二电子装置130的其它硬件,包括第一存储器单元113(例如为系统存储器)、键盘、鼠标及显示设备等外围设备均可以参与操作第一电子装置110的第一操作系统。在使用者体验效果上,当用户将第一电子装置110(例如:一手持装置)通过缓存一致性接口120耦接至第二电子装置130(例如:一笔电)时,甚至即刻可在笔电的显示设备上显示手持装置正在运行的操作系统画面,并利用笔电的高效能的处理单元等硬件组件来操作手持装置的操作系统,以提高速度,同时笔电和手持装置并无需重新启动(re-boot),完善使用者体验。
根据本发明的一实施例,若缓存一致性接口120是通过一有线传输方式来传输,第一电子装置110就需要先插入第二电子装置130中,再经由缓存一致性接口120发送连结请求给第二电子装置130,以建立和第二电子装置130的连结。根据本发明的另一实施例,若缓存一致性接口120是通过一无线传输方式来传输,第一电子装置110就可直接经由无线传输方式,经由缓存一致性接口120将连结请求发送给第二电子装置130,以建立和第二电子装置130的连结。举例来说,当第一电子装置110接近第二电子装置130,透过无线传输的方式,即可透过缓存一致性接口120建立双方的连结。总之,当第一电子装置110通过缓存一致性接口120耦接(有线或无线)至第二电子装置130时,通过第一电子装置110发送连结请求至第二电子装置130。
当第二电子装置130接收到第一电子装置110的连结请求时,第二电子装置130会进行一确认的动作,例如:发送一确认讯息(ACK)至第一电子装置110。当第二电子装置130确认第一电子装置110的连结请求后,通过缓存一致性接口120,建立第一电子装置110和第二电子装置130的连结。具体而言,第一电子装置110和第二电子装置130就会进入一同步模式(sync mode)。在同步模式中,第一电子装置110的第一高速缓存单元112会经由缓存一致性接口120将其第一操作系统(OS)的内容传送给第二电子装置130的第二高速缓存单元132。第二电子装置130的第二处理单元131在读取第二高速缓存单元132上的关于第一操作系统(OS)的内容后,第二处理单元131就可独立操作或与第一电子装置110的第一处理单元111协同操作第一电子装置110的第一操作系统(OS),以协助第一电子装置110进行数据的处理。也就是说,用户就可在第二电子装置130上,通过第二电子装置130的硬件执行和操作第一电子装置110的所有功能。在某些实施例(后面图2A会详述)中,在上述同步模式中,第一电子装置110除了将其第一高速缓存单元112的内容传递给第二电子装置130,还将其第一存储器单元113中与正在运行的第一操作系统相关的内容通过缓存一致性接口120同步至第二电子装置130,在这种实施例中,第二处理单元131仅需存取自身的第二高速缓存单元132及第二存储器单元133即可接续操作第一操作系统,第一存储器单元113也可进入休眠状态;在另一些实施例中(后面图2B和图2C会详述),在上述同步模式中,第一电子装置110不将其第一存储器单元113的内容同步,在这种实施例中,第二处理单元131须经由缓存一致性接口120存取第一电子装置110的第一存储器单元113。
此外,由于在第二电子装置130进入同步模式前,第二电子装置130也可能正在运行自身的操作系统。因此,在进入同步模式后,第二电子装置130会先将自己目前运行的第二操作系统的状态信息储存到第二存储器单元133中。因此,当第二电子装置130在断开和第一电子装置110的连结后,第二电子装置130恢复所储存的第二操作系统的状态信息,就可以继续进行第二电子装置130的第二操作系统原先所在进行的操作。
根据本发明的一实施例,完成第二操作系统的状态信息的储存后,第二电子装置130的硬件组件会进行一重置(re-initiate)的操作,以使得第一电子装置110的第一操作系统可以得知第二电子装置130的硬件组件(例如:第二处理单元131、第二存储器单元132、硬盘、网络卡,或一外接硬件组件,例如:鼠标、键盘)的相关信息。在第一电子装置110的第一操作系统对第二电子装置130的硬件组件逐个进行一枚举(enumeration)操作以获取第二电子装置130的硬件组件的相关信息。在得知第二电子装置130的硬件组件的相关信息后,上述第一操作系统便得以运行于第二电子装置130的硬件组件中。根据本发明的一实施例,可经由第二电子装置130的一特定的驱动组件/程序(driver)重置(re-initiate)上述硬件组件以实现上述枚举操作。根据本发明的另一实施例,可经由第二处理单元131向其它硬件组件发送重置的指令,以实现上述枚举操作。
第二电子装置130进行完硬件组件重置的操作后,第二电子装置130就可开始通过第二处理单元131(和其他硬件组件)操作第一电子装置110的第一操作系统(OS),以协助第一电子装置110进行数据的处理。根据本发明的一实施例,当第一电子装置110和第二电子装置130的连结建立后,第一电子装置110的第一处理单元111可与第二处理单元131共同工作(co-work),也就是共同处理第一电子装置110的数据。根据本发明的另一实施例,当第一电子装置110和第二电子装置130的连结建立后,第一电子装置110的第一处理单元111(和其他硬件组件)则会进入休眠(sleep)状态,完全交由第二处理单元131处理第一电子装置110的数据。
当用户想要断开第一电子装置110和第二电子装置130的连结时,第二电子装置130会先发送一断开连结请求至第一电子装置110。根据本发明的一实施例,若此时第一电子装置110是在一休眠状态,第二电子装置130会先将第一电子装置110唤醒。第一电子装置110接收并确认第二电子装置130发送的断开连结请求后,第一电子装置130会经由缓存一致性接口120同步(sync)第一操作系统更新的内容,以使得第一高速缓存单元112(甚至以及第一存储器单元113)中与第一操作系统相关的数据会和经由第二电子装置130协助处理过后的数据一致。数据同步后,第一电子装置110的第一处理单元111会先对硬件组件进行一重置的操作,以使得第一电子装置110可以恢复成一正常操作模式,也就是由第一电子装置110接续操作第一操作系统。
断开连结后,第二电子装置130的第二处理单元131也会恢复储存在第二存储器单元133的第二操作系统的状态信息。接着,第二电子装置130会进行一重置的操作,以使得第二电子装置130可重新进行连结前第二电子装置130的第二操作系统原先所在进行的操作。
根据本发明的一实施例,当第一电子装置110和第二电子装置130的连结建立后,第二电子装置130的第二处理单元131与第一电子装置110的第一处理单元111(如果第一处理单元111不休眠的话)可在一对称多处理器模式(SMP)或一非均匀存储器存取(ccNUMA)模式上,协同操作第一电子装置110的第一操作系统。图2A为根据本发明的一实施例所述的一第一对称多处理器模式的示意图。如图2A所示,在第一对称多处理器模式中,第二电子装置130的第二处理单元131和第二存储器单元133均参与操作第一操作系统,而第一电子装置110的第一存储器单元113不参与操作,可进入休眠状态。即,在上述第一对称多处理器模式下,第一存储器单元113中在连结前与第一操作系统相关的内容在连结建立时均被同步至第二电子装置130,因此在操作过程中,第二处理单元131和第一处理单元111仅需存取第二存储器单元133即可接续操作第一操作系统,缓存一致性接口120维持第一高速缓存单元112和第二高速缓存单元132的数据的一致性,如果第一高速缓存单元112/第二高速缓存单元132不命中(miss)或者写满,则进一步存取第二存储器单元133。缓存一致性接口120具体如何运作,参考后面图5的描述。
图2B为根据本发明的一实施例所述的一第二对称多处理器模式的示意图。如图2B所示,在第二对称多处理器模式中,第二电子装置130的第二处理单元131参与操作第一操作系统,但第二存储器单元133不参与。即,在上述第二对称多处理器模式下,第二处理单元131和第一处理单元111仅存取第一存储器单元113即可接续操作第一操作系统。在此种实施方式中,在建立连结时,无需将第一存储器单元113中关于第一操作系统的内容同步至第二电子装置130;在运行过程中,缓存一致性接口120维持第一高速缓存单元112和第二高速缓存单元132的数据的一致性,如果第一高速缓存单元112/第二高速缓存单元132不命中(miss)或者写满,则进一步存取第一存储器单元113。
图2C为根据本发明的一实施例所述的一缓存一致性非均匀存储器存取模式的示意图。如图2C所示,在缓存一致性非均匀存储器存取模式中,第二电子装置130的第二处理单元131和第二存储器单元133均参与操作第一操作系统,第一电子装置110的第一存储器单元113也不休眠。即,在上述缓存一致性非均匀存储器存取模式下,在建立连结时,也无需将第一存储器单元113中关于第一操作系统的内容同步至第二电子装置130;在操作过程中,缓存一致性接口120维持第一高速缓存单元112和第二高速缓存单元132的数据的一致性,如果第一高速缓存单元112/第二高速缓存单元132不命中(miss)或者写满,则进一步存取第一存储器单元113或第二存储器单元133。
图3为根据本发明一实施例所述的基于缓存一致性的控制方法的流程图300,此传输方法适用于控制系统100。如图3所示,在步骤S310,当第一电子装置110通过缓存一致性接口120耦接至第二电子装置130时,通过第一电子装置110发送一连结请求至第二电子装置130。在步骤S320,通过第二电子装置130确认第一电子装置110所发送的连结请求。在步骤S330,进入一同步模式。在步骤S340,通过第二电子装置130预先储存自身的一第二操作系统的状态信息。在步骤S350,通过第二电子装置130经由缓存一致性接口120,同步(sync)第一电子装置110中与第一操作系统(OS)相关的内容,在一实施例中(例如图2B及图2C的实施例),仅将第一高速缓存单元112中与第一操作系统(OS)相关的内容同步至第二电子装置130;在其它实施例中(例如图2A的实施例),将第一存储器单元113中与第一操作系统(OS)相关的内容也同步至第二电子装置130。在步骤S360,通过第一操作系统对第二电子装置130的硬件组件逐一进行一枚举(enumeration)操作,使得上述第一操作系统得以运行于第二电子装置130。在步骤370,通过第二电子装置130的第二处理单元操作第一电子装置110的第一操作系统(OS),以协助第一电子装置110进行数据的处理。根据本发明的一实施例,上述连结建立后,第一电子装置110可与第二电子装置130共同操作上述第一操作系统,也可进入一休眠状态。值得注意的是,上述步骤S320~S360为通过缓存一致性接口120建立第一电子装置110和第二电子装置130的连结的具体步骤。
图4为根据本发明另一实施例所述的基于缓存一致性的控制方法的流程图400,此传输方法适用于控制系统100。如图4所示,在步骤S410,当要断开连结时,通过第二电子装置130发送一断开连结请求至第一电子装置110。在步骤S420,判断是否唤醒第一电子装置110。若需要唤醒第一电子装置110,进行步骤S430。在步骤S430,唤醒第一电子装置110。若不需要唤醒第一电子装置110,直接进行步骤S440。在步骤S440,通过第一电子装置110确认第二电子装置130所发送的断开连结请求。在步骤S450,通过第一电子装置110经由缓存一致性接口120,同步(sync)第一操作系统更新的内容。在步骤S460,通过第一电子装置110进行一重置(re-initiate)的操作,以使得第一电子装置110可重新独立运行第一操作系统。在步骤S470,通过第二电子装置130恢复预先存储的第二操作系统的状态信息。在步骤S480,通过第二电子装置130进行一重置的操作,以使得第二电子装置130可恢复运行第二操作系统。
图5A~5B为根据本发明一实施例所述的缓存一致性接口具体运作的流程图500,此传输方法适用于控制系统100。如图5A~5B所示,在步骤S510,通过第二处理单元131发送一存储器存取请求至缓存一致性接口120。在步骤S520,通过缓存一致性接口120记录并排序上述存储器存取请求。在一实施例中,如图1所示,缓存一致性接口120还包括一顺序队列(Order Queue)121,上述顺序队列121记录第二处理单元131以及第一处理单元111(如果第一处理单元111未休眠)的存储器存取请求;并按照这些存储器存取请求被要求完成的先后顺序来排序它们,例如,第一操作系统的应用程序代码中规定了这些存储器存取请求被要求完成的先后顺序;并将排序结果返回至第二处理单元131。在一实施例中,如果同时第一电子装置110发送另一存储器存取请求至缓存一致性接口120(如果第一处理单元111与第二处理单元131共同工作,则上述另一存储器存取请求可能由第一处理单元111发出;如果第一处理单元111休眠,则第一电子装置110的第一存储器单元113或其它外围装置,例如网络模块等,也可能发出上述另一存储器存取请求。),本发明的缓存一致性接口120排序这些存储器存取请求,使得它们按照被程序代码要求完成的先后顺序完成,并将排序结果通知第一电子装置110和第二电子装置130。
接着,执行步骤S530,判断上述存储器存取请求的地址是属于第一电子装置110或第二电子装置130。通过本发明,第二处理单元131看到的存储器地址范围和第一处理单元111一样,本发明可以通过定义第二处理单元131能看到的存储器地址范围,使得第二处理单元131仅访问第一存储器单元113的地址范围,或者第一存储器单元113和第二存储器单元133两者的地址范围皆能访问。步骤S530可通过第二高速缓存单元132完成,在一实施例中,第一高速缓存单元112和第二高速缓存单元132位于一最后一级高速缓存(Last Level Cache,LLC),或一监听滤波器(snoop filter),或一芯片组(Chipset)中。在另一实施例中,步骤S530可通过缓存一致性接口120完成。
如果上述存储器存取请求的地址是属于第一电子装置110,则执行步骤S540:通过缓存一致性接口120将上述存储器存取请求发送至上述第一电子装置110的第一高速缓存单元112。之后执行步骤S550:判断第一高速缓存单元112是否命中(hit)。如果不命中(miss),即上述第一高速缓存单元112不包括上述存储器存取请求所要求的数据,则执行步骤S560:将上述存储器存取请求发送至第一电子装置110的第一存储器单元113。之后执行步骤S590:在第一存储器单元113中存取相应的存储器地址。如果步骤S550的判断结果为命中(hit),则直接执行步骤S590:在第一高速缓存单元112中存取相应的存储器地址。
如果上述存储器存取请求的地址是属于第二电子装置130,则执行步骤S570:判断第二高速缓存单元132是否命中(hit)。如果不命中(miss),即上述第二高速缓存单元132不包括上述存储器存取请求所要求的数据,则执行步骤S580:将上述存储器存取请求发送至第二电子装置130的第二存储器单元133。之后执行步骤S590:在第二存储器单元133中存取相应的存储器地址。如果步骤S570的判断结果为命中(hit),则直接执行步骤S590:在第二高速缓存单元132中存取相应的存储器地址。
在某些实施例中,执行步骤S590之后继续执行步骤S5100:通过缓存一致性接口120维持第一高速缓存单元112和第二高速缓存单元132的数据的一致性。
值得注意的是,在图2A的实施例中,第二处理单元131能访问的存储器地址范围限于第二电子装置130(即在步骤S530的判断的结果一直为上述存储器存取请求的地址是属于第二电子装置130的);在图2B和图2C的实施例中,第二处理单元131能访问的存储器地址范围可能位于第一电子装置110或第二电子装置130,须通过缓存一致性接口120将上述存储器存取请求发送至相应的存储器。
通过本发明所提出的基于缓存一致性的控制方法,当用户同时使用多个装置时,用户即可直接在效能较高的电子装置来处理效能较低的电子装置的数据和使用效能较低的电子装置的功能,使得在数据处理上更有效率且快速,且达到更加良好的用户体验。
本发明的说明书所揭露的方法和算法的步骤,可直接透过执行一处理器直接应用在硬件以及软件模块或两者的结合上。一软件模块(包括执行指令和相关数据)和其它数据可储存在数据存储器中,像是随机存取存储器(RAM)、闪存(flash memory)、只读存储器(ROM)、可抹除可规化只读存储器(EPROM)、电子可抹除可规划只读存储器(EEPROM)、缓存器、硬盘、可携式应碟、光盘只读存储器(CD-ROM)、DVD或在此领域习的技术中任何其它计算机可读取的储存媒体格式。一储存媒体可耦接至一机器装置,举例来说,像是计算机/处理器(为了说明的方便,在本说明书以处理器来表示),上述处理器处理单元可透过来读取信息(像是程序代码),以及写入信息至储存媒体。一储存媒体可整合一处理器。一特殊应用集成电路(ASIC)包括处理器和储存媒体。一用户设备则包括一特殊应用集成电路。换句话说,处理器和储存媒体以不直接连接用户设备的方式,包含于用户设备中。此外,在一些实施例中,任何适合计算机程序的产品包括可读取的储存媒体,其中可读取的储存媒体包括和一或多个所揭露实施例相关的程序代码。在一些实施例中,计算机程序的产品可包括封装材料。
本说明书中所提到的“一实施例”或“实施例”,表示与实施例有关的所述特定的特征、结构、或特性是包含根据本发明的至少一实施例中,但并不表示它们存在于每一个实施例中。因此,在本说明书中不同地方出现的“在一实施例中”或“在实施例中”词组并不必然表示本发明的相同实施例。
以上段落使用多种层面描述。显然的,本文的教示可以多种方式实现,而在范例中揭露的任何特定架构或功能仅为一代表性的状况。根据本文的教示,任何熟知此技艺的人士应理解在本文揭露的各层面可独立实作或两种以上的层面可以合并实作。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。

Claims (18)

1.一种基于缓存一致性的控制方法,其特征在于,包括:
当一第一电子装置通过一缓存一致性接口耦接至一第二电子装置时,通过所述第一电子装置发送一连结请求至所述第二电子装置;
根据所述连结请求,通过所述缓存一致性接口,建立所述第一电子装置和所述第二电子装置的连结;以及
所述连结建立后,通过所述第二电子装置的一第二处理单元操作所述第一电子装置的一第一操作系统。
2.根据权利要求1所述的基于缓存一致性的控制方法,其特征在于,还包括:
当通过所述第二电子装置的所述第二处理单元操作所述第一电子装置的所述第一操作系统时,通过所述缓存一致性接口维持所述第一电子装置和所述第二电子装置间的数据的一致性。
3.根据权利要求1所述的基于缓存一致性的控制方法,其特征在于,还包括:
在通过所述第二电子装置的所述第二处理单元操作所述第一电子装置的所述第一操作系统前,通过所述第一操作系统对所述第二电子装置的复数硬件组件逐个进行一枚举操作,使得所述第一操作系统得以运行于所述第二电子装置。
4.根据权利要求1所述的基于缓存一致性的控制方法,其特征在于,所述枚举操作还包括:
通过所述第二电子装置的一特定驱动程序重置所述第二电子装置的复数硬件组件。
5.根据权利要求1所述的基于缓存一致性的控制方法,其特征在于,还包括:
在通过所述第二电子装置的所述第二处理单元操作所述第一电子装置的所述第一操作系统前,通过所述第二电子装置预先储存自身的一第二操作系统的状态信息。
6.根据权利要求1所述的基于缓存一致性的控制方法,其特征在于,所述连结建立后,所述第一电子装置的一第一处理单元与所述第二电子装置的所述第二处理单元共同操作所述第一操作系统,或进入一休眠状态。
7.根据权利要求1所述的基于缓存一致性的控制方法,其特征在于,还包括:
当要断开所述连结时,通过所述第二电子装置发送一断开连结请求至所述第一电子装置;
通过所述缓存一致性接口将所述第一电子装置和所述第二电子装置间的数据进行同步;以及
断开所述连结后,所述第一电子装置恢复一正常操作模式,以及所述第二电子装置恢复自身的一第二操作系统的一状态信息。
8.根据权利要求1所述的基于缓存一致性的控制方法,其特征在于,还包括:
所述连结建立后,通过所述第二电子装置的所述第二处理单元与所述第一电子装置的一第一处理单元在一对称多处理器模式或一非均匀存储器存取模式上,运行所述第一电子装置的所述第一操作系统。
9.根据权利要求1所述的基于缓存一致性的控制方法,其特征在于,所述缓存一致性接口通过一有线传输方式或一无线传输方式来建立所述连结。
10.一种基于缓存一致性的控制系统,其特征在于,包括:
一第一电子装置,用于发送一连结请求,以建立一连结;
一缓存一致性接口,用于根据所述连结请求,建立所述连结;以及
一第二电子装置,包括一第二处理单元,
其中,当所述第一电子装置通过所述缓存一致性接口耦接至所述第二电子装置时,所述第一电子装置发送所述连结请求,以及当所述连结建立后,所述第二处理单元操作所述第一电子装置的一第一操作系统。
11.根据权利要求10所述的基于缓存一致性的控制系统,其特征在于,当所述第二电子装置的所述第二处理单元操作所述第一电子装置的所述第一操作系统时,通过所述缓存一致性接口,维持所述第一电子装置和所述第二电子装置的数据的一致性。
12.根据权利要求10所述的基于缓存一致性的控制系统,其特征在于,其中所述第二电子装置的所述第二处理单元在操作所述第一电子装置的所述第一操作系统前,通过所述第一操作系统对所述第二电子装置的复数硬件组件逐个进行一枚举操作,使得所述第一操作系统得以运行于所述第二电子装置。
13.根据权利要求12所述的基于缓存一致性的控制系统,其特征在于,所述第二处理单元通过所述第二电子装置的一特定驱动程序重置所述第二电子装置的复数硬件组件。
14.根据权利要求10所述的基于缓存一致性的控制系统,其特征在于,所述第二电子装置的所述第二处理单元在操作所述第一电子装置的所述第一操作系统前,预先储存自身的一第二操作系统的状态信息。
15.根据权利要求10所述的基于缓存一致性的控制系统,其特征在于,所述连结建立后,所述第一电子装置的一第一处理单元与所述第二电子装置的所述第二处理单元共同操作所述第一操作系统,或进入休眠状态。
16.根据权利要求10所述的基于缓存一致性的控制系统,其特征在于,当要断开所述连结时,所述第二电子装置发送一断开连结请求至所述第一电子装置,且所述缓存一致性接口将所述第一电子装置和所述第二电子装置间的数据进行同步,以及当断开所述连结后,所述第一电子装置恢复一正常操作模式,以及所述第二电子装置恢复自身的一第二操作系统的一状态信息。
17.根据权利要求10所述的基于缓存一致性的控制系统,其特征在于,所述连结建立后,所述第二电子装置的所述第二处理单元与所述第一电子装置的一第一处理单元是在一对称多处理器模式或一非均匀存储器存取模式上,运行所述第一电子装置的所述第一操作系统。
18.根据权利要求10所述的基于缓存一致性的控制系统,其特征在于,所述缓存一致性接口通过一有线传输方式或一无线传输方式来建立所述连结。
CN201410709312.XA 2014-11-28 2014-11-28 基于缓存一致性的控制系统和方法 Active CN104375963B (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
CN201410728001.8A CN104407995B (zh) 2014-11-28 2014-11-28 基于缓存一致性的控制系统和方法
CN201410709312.XA CN104375963B (zh) 2014-11-28 2014-11-28 基于缓存一致性的控制系统和方法
TW103142298A TWI521348B (zh) 2014-11-28 2014-12-05 基於快取一致性之控制方法
TW103142546A TWI637616B (zh) 2014-11-28 2014-12-05 基於快取一致性之控制方法
US14/740,526 US10044829B2 (en) 2014-11-28 2015-06-16 Control system and method for cache coherency
EP15192930.4A EP3040869A1 (en) 2014-11-28 2015-11-04 Control system and method for cache coherency
JP2015224492A JP6092352B2 (ja) 2014-11-28 2015-11-17 キャッシュコヒーレンシの制御システムと制御方法
KR1020150164515A KR101781271B1 (ko) 2014-11-28 2015-11-24 캐시 일관성을 위한 제어 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410709312.XA CN104375963B (zh) 2014-11-28 2014-11-28 基于缓存一致性的控制系统和方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201410728001.8A Division CN104407995B (zh) 2014-11-28 2014-11-28 基于缓存一致性的控制系统和方法

Publications (2)

Publication Number Publication Date
CN104375963A true CN104375963A (zh) 2015-02-25
CN104375963B CN104375963B (zh) 2019-03-15

Family

ID=52554890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410709312.XA Active CN104375963B (zh) 2014-11-28 2014-11-28 基于缓存一致性的控制系统和方法

Country Status (6)

Country Link
US (1) US10044829B2 (zh)
EP (1) EP3040869A1 (zh)
JP (1) JP6092352B2 (zh)
KR (1) KR101781271B1 (zh)
CN (1) CN104375963B (zh)
TW (2) TWI521348B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990063A (zh) * 2019-11-28 2020-04-10 中国科学院计算技术研究所 一种用于基因相似性分析的加速装置、方法和计算机设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6189267B2 (ja) * 2014-08-20 2017-08-30 株式会社東芝 情報処理装置、方法およびプログラム
DE112017005398T5 (de) 2016-10-26 2019-07-04 Simpleway Technologies Ltd. System und verfahren zur einrichtungsinteroperabilität und synchronisation
WO2023200425A1 (en) * 2022-04-11 2023-10-19 Hewlett-Packard Development Company, L.P. Direct point-to-point computing device bridges

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100192142A1 (en) * 2009-01-25 2010-07-29 Jun Sun System and Methods for Migrating Independently Executing Program into and Out of an Operating System
CN102804103A (zh) * 2010-03-01 2012-11-28 Arm有限公司 用于在源和目标处理电路间转移工作量的数据处理装置和方法
EP2570821A1 (de) * 2011-09-19 2013-03-20 Rheinmetall Soldier Electronics GmbH Vorrichtung und Verfahren zur Identifizierung und Kommunikation

Family Cites Families (19)

* 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
WO2011032593A1 (en) * 2009-09-17 2011-03-24 Nokia Corporation Multi-channel cache memory
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
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
US9923840B2 (en) * 2012-08-20 2018-03-20 Donald Kevin Cameron Improving performance and security of multi-processor systems by moving thread execution between processors based on data location
CN103544269B (zh) * 2013-10-17 2017-02-01 华为技术有限公司 目录的存储方法、查询方法及节点控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100192142A1 (en) * 2009-01-25 2010-07-29 Jun Sun System and Methods for Migrating Independently Executing Program into and Out of an Operating System
CN102804103A (zh) * 2010-03-01 2012-11-28 Arm有限公司 用于在源和目标处理电路间转移工作量的数据处理装置和方法
EP2570821A1 (de) * 2011-09-19 2013-03-20 Rheinmetall Soldier Electronics GmbH Vorrichtung und Verfahren zur Identifizierung und Kommunikation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990063A (zh) * 2019-11-28 2020-04-10 中国科学院计算技术研究所 一种用于基因相似性分析的加速装置、方法和计算机设备

Also Published As

Publication number Publication date
EP3040869A1 (en) 2016-07-06
TWI637616B (zh) 2018-10-01
TW201620284A (zh) 2016-06-01
KR20160064982A (ko) 2016-06-08
CN104375963B (zh) 2019-03-15
JP2016103273A (ja) 2016-06-02
US20160156734A1 (en) 2016-06-02
US10044829B2 (en) 2018-08-07
TW201619833A (zh) 2016-06-01
TWI521348B (zh) 2016-02-11
JP6092352B2 (ja) 2017-03-08
KR101781271B1 (ko) 2017-09-22

Similar Documents

Publication Publication Date Title
US10659200B2 (en) Companion application for activity cooperation
TWI506531B (zh) 編製跨裝置的記憶體資源之技術
Want et al. System challenges for ubiquitous & pervasive computing
EP2879095B1 (en) Method, apparatus and terminal device for image processing
US10193987B2 (en) Activity continuation between electronic devices
TWI512676B (zh) 用於顯示子系統之混和顯示圖框緩衝器
US20120151420A1 (en) Devices, Systems, and Methods for Conveying Gesture Commands
CN103106109A (zh) 移动装置以及于其上运行两种平台系统或应用程序的方法
CN104375963A (zh) 基于缓存一致性的控制系统和方法
CN104407995A (zh) 基于缓存一致性的控制系统和方法
JP2015522896A (ja) コンピューティングシステムのストレージデバイスのための効率的な動作経路を促進する機構
US20140334364A1 (en) Remote wake-up system and method
CN105900176A (zh) 用于基于存储器访问模式解决dram页面冲突的系统和方法
WO2014209401A1 (en) Techniques to aggregate compute, memory and input/output resources across devices
US20120144084A1 (en) Data management device and method thereof
US8195861B2 (en) Hub apparatus with OTG function
CN104765704A (zh) 一种移动通讯装置及电子设备
CN108965368A (zh) 具有网络功能的数据管理电路及基于网络的数据管理方法
CN113407318A (zh) 操作系统切换方法及装置、计算机可读介质和电子设备
CN205050019U (zh) 带摄像头的云计算桌面终端
US20160328009A1 (en) Computing device and method for displaying sleeping interface and waking-up interface
Vaish et al. Low effort crowdsourcing: Leveraging peripheral attention for crowd work
CN114489510A (zh) 数据读取方法及装置
CN205050209U (zh) 具有图形加速功能的云计算桌面终端
CN202494955U (zh) 一种反射型显示终端及具有该显示终端的同步显示系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203

Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd.

Address before: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203

Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.