CN110442462A - Tee系统中的多线程数据传输方法和装置 - Google Patents

Tee系统中的多线程数据传输方法和装置 Download PDF

Info

Publication number
CN110442462A
CN110442462A CN201910640637.XA CN201910640637A CN110442462A CN 110442462 A CN110442462 A CN 110442462A CN 201910640637 A CN201910640637 A CN 201910640637A CN 110442462 A CN110442462 A CN 110442462A
Authority
CN
China
Prior art keywords
address
data
tee
offset address
write
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
CN201910640637.XA
Other languages
English (en)
Other versions
CN110442462B (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910640637.XA priority Critical patent/CN110442462B/zh
Publication of CN110442462A publication Critical patent/CN110442462A/zh
Priority to PCT/CN2020/071561 priority patent/WO2021008111A1/zh
Priority to US16/785,328 priority patent/US10896075B1/en
Priority to TW109104978A priority patent/TWI730630B/zh
Application granted granted Critical
Publication of CN110442462B publication Critical patent/CN110442462B/zh
Priority to US16/944,866 priority patent/US10884830B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • 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/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

本说明书实施例提供了一种TEE系统中的数据传输方法和装置,其中由TEE侧多个线程中的第一线程执行的方法包括:获取第一数据;获取所述TEE侧线程锁;通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;判断待传输的第一数据的字节数是否小于等于可写字节数,其中,所述可写字节数基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;在所述第一数据的字节数小于等于可写字节数的情况中,将所述第一数据写入从所述写偏移地址开始的第三地址中;更新所述第一地址中的写偏移地址;以及释放所述TEE侧线程锁。

Description

TEE系统中的多线程数据传输方法和装置
技术领域
本说明书实施例涉及TEE技术领域,更具体地,涉及TEE系统中的多线程数据传输方法和装置。
背景技术
可信执行环境(TEE-Trusted Execution Environment)是处理器中的安全可信区域,可以保证放入其中的代码和数据的安全性、机密性和完整性。TEE提供一个隔离的执行环境,代码和数据可以在这个可信区域内运行,运行过程中可以保证不被常规操作系统干扰的计算,这样就可以达到保证代码和数据的机密性和完整性。TEE(EAL2+)与常规操作系统相比,提供更高级别的安全性;与SE(EAL5)相比,提供更多的功能,更好的性能。TEE有很多种实现方式,比如Intel的SGX,AMD的SEV,ARM的TrustZone(可信区)等。因为TEE提供的是一个隔离的执行环境,所以非TEE环境与TEE环境的通信一般都是通过特殊的指令调用,比如smc call(TrustZone)或ecall ocall(SGX)。这些指令会引起CPU切换运行状态,恢复寄存器等上下文信息,带来一定的性能损耗。
因此,需要一种更有效的在TEE系统中进行数据传输的方案。
发明内容
本说明书实施例旨在提供一种更有效的在TEE系统中进行数据传输的方案,以解决现有技术中的不足。
为实现上述目的,本说明书一个方面提供一种TEE系统中的数据传输方法,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述TEE侧预设有与所述共享内存对应的TEE侧线程锁,所述方法由TEE侧多个线程中的第一线程执行,包括:
获取第一数据;
获取所述TEE侧线程锁;
通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
判断待传输的第一数据的字节数是否小于等于可写字节数,其中,所述可写字节数基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
在所述第一数据的字节数小于等于可写字节数的情况中,将所述第一数据写入从所述写偏移地址开始的第三地址中;
更新所述第一地址中的写偏移地址;以及
释放所述TEE侧线程锁。
在一个实施例中,所述第一数据为以下任一种数据:日志、监控数据、统计数据。
在一个实施例中,所述方法还包括,在所述第一数据的字节数大于可写字节数的情况中,进行等待。
在一个实施例中,所述共享内存中还包括第四地址,用于存储丢弃数据数目,所述方法还包括,在所述第一数据的字节数大于可写字节数的情况中,丢弃所述第一数据,并将第四地址中存储的丢弃数据数目加一。
在一个实施例中,所述丢弃数据数目为原子变量。
在一个实施例中,所述写偏移地址在所述读偏移地址之前,所述可写字节数等于所述读偏移地址减去所述写偏移地址之差。
在一个实施例中,所述写偏移地址在所述读偏移地址之后,所述可写字节数等于第三地址的数目减去不可写字节数之差,其中,所述不可写字节数等于所述写偏移地址减去所述读偏移地址之差。
在一个实施例中,所述写偏移地址与所述读偏移地址相同,所述可写字节数等于全部第三地址的数目。
在一个实施例中,所述TEE侧线程锁为第一变量,所述第一变量为原子变量,所述第一变量的值指示是否锁定,其中,获取所述TEE侧线程锁包括,确定所述第一变量是否指示锁定,在所述第一变量未指示锁定的情况中,修改所述第一变量的值,以使得所述第一变量指示锁定,从而获取TEE侧线程锁。
本说明书另一方面提供一种TEE系统中的数据传输方法,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述非TEE侧预设有与所述共享内存对应的非TEE侧线程锁,所述方法由非TEE侧多个线程中的第二线程执行,包括:
获取所述非TEE侧线程锁;
通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
读取所述第三地址中的写入数据中的未读取字节作为第二数据,所述未读取字节基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
更新所述第二地址中的读偏移地址;以及
释放所述非TEE侧线程锁。
在一个实施例中,所述写偏移地址在所述读偏移地址之后,所述未读取字节包括从所述读偏移地址开始到所述写偏移地址的前一个地址中的各个字节。
在一个实施例中,所述写偏移地址在所述读偏移地址之前,所述未读取字节为所述第三地址中除已读取字节之外的字节,所述已读取字节包括从所述写偏移地址开始到所述读偏移地址的前一个地址中的各个字节。
在一个实施例中,在所述写偏移地址与所述读偏移地址相同的情况中,所述第三地址中不包括未读取字节。
在一个实施例中,所述第二数据为日志数据,所述方法还包括,在释放所述非TEE侧线程锁之后,将所述第二数据发送给在非TEE侧的日志打印程序,以用于打印该第二数据。
本说明书另一方面提供一种TEE系统中的数据传输装置,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述TEE侧预设有与所述共享内存对应的TEE侧线程锁,所述装置部署于由TEE侧多个线程中的第一线程中,包括:
数据获取单元,配置为,获取第一数据;
锁获取单元,配置为,获取所述TEE侧线程锁;
地址获取单元,配置为,通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
判断单元,配置为,判断待传输的第一数据的字节数是否小于等于可写字节数,其中,所述可写字节数基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
写入单元,配置为,在所述第一数据的字节数小于等于可写字节数的情况中,将所述第一数据写入从所述写偏移地址开始的第三地址中;
更新单元,配置为,更新所述第一地址中的写偏移地址;以及
锁释放单元,配置为,释放所述TEE侧线程锁。
在一个实施例中,所述装置还包括等待单元,配置为,在所述第一数据的字节数大于可写字节数的情况中,进行等待。
在一个实施例中,所述共享内存中还包括第四地址,用于存储丢弃数据数目,所述装置还包括丢弃单元,配置为,在所述第一数据的字节数大于可写字节数的情况中,丢弃所述第一数据,并将第四地址中存储的丢弃数据数目加一。
在一个实施例中,所述TEE侧线程锁为第一变量,所述第一变量为原子变量,所述第一变量的值指示是否锁定,其中,所述锁获取单元还包括,确定子单元,配置为,确定所述第一变量是否指示锁定,以及修改单元,配置为,在所述第一变量未指示锁定的情况中,修改所述第一变量的值,以使得所述第一变量指示锁定,从而获取TEE侧线程锁。
本说明书另一方面提供一种TEE系统中的数据传输装置,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述非TEE侧预设有与所述共享内存对应的非TEE侧线程锁,所述装置部署于非TEE侧多个线程中的第二线程中,包括:
锁获取单元,配置为,获取所述非TEE侧线程锁;
地址获取单元,配置为,通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
读取单元,配置为,读取所述第三地址中的写入数据中的未读取字节作为第二数据,所述未读取字节基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
更新单元,配置为,更新所述第二地址中的读偏移地址;以及
锁释放单元,配置为,释放所述非TEE侧线程锁。
在一个实施例中,所述第二数据为日志数据,所述装置还包括打印单元,配置为,在释放所述非TEE侧线程锁之后,将所述第二数据发送给在非TEE侧的日志打印程序,以用于打印该第二数据。
本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
通过根据本说明书实施例的TEE系统数据传输方案,为TEE环境提供一种高性能的异步数据传输系统,例如异步日志打印系统,减少了TEE系统打印日志的开销,提高了TEE系统的运行速度,同时满足了对日志系统的一些基本要求。另外,通过在TEE侧和非TEE侧设置针对共享内存的线程锁,从而支持双侧多线程工作,进一步提高了TEE系统的运行速度。
附图说明
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
图1示出根据本说明书实施例的TEE系统100及其中的数据流向示意图;
图2示出根据本说明书实施例的一种TEE系统中的数据传输方法流程图;
图3示意示出根据本说明书实施例的共享内存中数据结构的示意图;
图4-图8分别示出了通过所述共享内存传输数据过程中的写偏移地址和读偏移地址;
图9示出了根据本说明书另一实施例的共享内存数据结构;
图10示出根据本说明书实施例的一种TEE系统中的数据传输方法流程图;
图11示出根据本说明书实施例的一种TEE系统中的数据传输装置1100;
图12示出根据本说明书实施例的一种TEE系统中的数据传输装置1200。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示出根据本说明书实施例的TEE系统100及其中的数据流向示意图。如图中所示,系统100包括TEE侧11和非TEE侧12。其中,在非TEE侧12预设有专用的缓冲寄存器122作为共享内存,用于缓存从TEE侧传输出的特定数据(例如日志)。另外,在TEE侧11预设有线程锁111,在非TEE侧12预设有线程锁121,其中,分别在每侧的数据结构中设置线程锁111和线程锁121。所述线程锁111和线程锁121都与所述共享内存相对应,用于分别使得相应侧的多个线程相对于所述共享内存是互斥的,即,每侧同时只有一个线程在操作共享内存。在TEE侧11运行有用于向外存储数据的多个线程,其中包括第一线程,该第一线程可获取第一数据(例如,日志数据),该第一线程然后在获取线程锁111之后通过调用例如打印函数(Bl_pringf),而将第一数据存入所述缓冲寄存器122中。具体是,Bl_pringf函数可通过调用push函数将日志写入缓冲寄存器122,之后。第一线程释放线程锁111。在非TEE侧12运行有用于读取共享内存中数据的多个线程,其中包括第二线程,该第二线程在获取线程锁122之后,调用pop函数从缓冲寄存器122中读取存入的数据,例如在一次读取中读取第二数据。该第二线程在读取到第二数据之后,释放所述线程锁122,并将该第二数据发送给非TEE侧的特定程序(例如日志系统log4cplus)进行数据打印。
在上述示意图中,为了保证第一线程和第二线程同时访问共享内存的数据安全性,设计了特定的数据结构以允许进行上述过程,下文将对此进行详细描述。
图2示出根据本说明书实施例的一种TEE系统中的数据传输方法流程图,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述TEE侧预设有与所述共享内存对应的TEE侧线程锁,所述方法由TEE侧多个线程中的第一线程执行,包括:
步骤S202,获取第一数据;
步骤S204,获取所述TEE侧线程锁;
步骤S206,通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
步骤S208,判断待传输的第一数据的字节数是否小于等于可写字节数,其中,所述可写字节数基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
步骤S210,在所述第一数据的字节数小于等于可写字节数的情况中,将所述第一数据写入从所述写偏移地址开始的第三地址中;
步骤S212,更新所述第一地址中的写偏移地址;以及
步骤S214,释放所述TEE侧线程锁。
图3示意示出根据本说明书实施例的共享内存中数据结构的示意图。如图3中所示,所述共享内存中包括第一地址、第二地址和连续的多个第三地址。图中示意示出10个第三地址,该10个连续的第三地址例如可分别标识为“1,2,…,10”。该内存中的每个地址可写入一个字节,其中,第一地址用于存储写偏移地址,该写偏移地址指示第三地址中可写入的起始地址;第二地址用于存储读偏移地址,该读偏移地址指示第三地址中可读取的起始地址;第三地址用于存储希望从TEE侧传输到非TEE侧的数据。例如,在初始还未从TEE侧向该共享内存存入数据的情况中,第三地址中可写入的起始地址为第1个地址,即地址“1”,因此,第一地址中存储的写偏移地址为“1”。在该情况中,在读取数据时,由于最多只能读到写偏移地址前一个地址,因此此时的第二地址中的读偏移地址也为地址“1”,图中示意示出了读偏移地址(图中以R表示)和写偏移地址(图中以W表示)分别对应的第三地址(即地址“1”)。可以理解,在该共享内存中,只限定了多个第三地址是连续的地址,对于第一地址、第二地址和第三地址的位置关系并没有特别限定,例如,第一地址、第二地址可以分别位于第三地址的两头,或者第一地址、第二地址可位于第三地址之后等等。另外,图3中虽然示意示出该共享内存中包括10个连续第三地址,在实际应用中,可根据待传输数据的具体字节数确定共享内存中包括的第三地址的数目。例如,待传输数据为TEE侧的日志,例如,该日志通常有几十个字节,从而,可将该共享内存设置为包括几百个连续的第三地址。
当TEE侧希望向非TEE侧传输特定数据时,通过运行TEE侧的用于该传输的多个线程中的一个线程(例如第一线程)执行该方法而向共享内存的第三地址中写入数据,该多个线程例如属于用于从TEE侧向非TEE侧传输数据的进程。由于在通过该方法向共享内存中写入数据之后,在非TEE侧将通过另外的线程将该数据传送至目标程序,因此,该方法对数据的传输方式为异步传输方式,因此,该方法适用于对实时性要求不高、传输量较大、且对性能要求较高的数据。从而,所述特定数据例如为日志、监控数据、统计数据等等。
首先,在步骤S202,获取第一数据。
所述第一数据例如为TEE中生成的日志。TEE侧在生成日志之后例如将其存储到TEE侧的预定内存位置。所述第一线程可预设为定期从所述预定内存位置读取日志,从而可定期获取待传输的数据,以定期执行该方法。
在TEE侧包括多个执行该方法的线程的情况中,可将该多个线程设置为轮流从所述内存位置读取日志,从而可加速对日志的读取。
在步骤S204,获取所述TEE侧线程锁。
在一个实施例中,所述TEE侧线程锁为第一变量,所述第一变量为原子变量,所述第一变量的值指示是否锁定,其中,获取所述TEE侧线程锁包括,确定所述第一变量是否指示锁定,在所述第一变量未指示锁定的情况中,修改所述第一变量的值,以使得所述第一变量指示锁定,从而获取TEE侧线程锁。
可以理解,所述线程锁不限于为上述形式,如本领域技术人员已知的,根据不同的语言,可通过不同的方式设置线程锁。例如,可通过调用“Lock()”函数的方式,实现相对于共享内存的多个线程之间的线程互斥等。在此不一一详述。
在步骤S206,通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址。
除了上述图3示出的写偏移地址和读偏移地址分别指示第三地址中的地址“1”的情况之外,图4-图8分别示出了通过所述共享内存传输数据过程中的写偏移地址和读偏移地址。在图4-图8中,每个方框对应于一个地址,方框内部的数据为其中存储一个字节的数据,方框下方的数字为其地址标识,“R”和“W”如上文指示分别对应于读偏移地址和写偏移地址。
在图4中,已经通过该方法从地址1开始向第三地址中顺序写入了四个字节”ab\n\0”,并且在非TEE侧还未对该共享内存进行数据读取,在该情况中,第一地址中存储的写偏移地址(W)指向存储“\0”之后的地址,即,地址5,第二地址中存储的读偏移地址(R)仍指向地址1。
在图5中,已经又通过该方法从地址5开始顺序写入了四个字节”cd\n\0”,并且在非TEE侧仍未对该共享内存进行数据读取,在该情况中,写偏移地址(W)指向存储第二个“\0”之后的地址,即,地址9,读偏移地址(R)仍指向地址1。
在图6中,已经在非TEE侧通过下文将描述的方法从读偏移地址开始进行数据读取,该读取最多只能读到所述写偏移地址之前的一个地址,即该读取过程读取了共享内存中已经写入的八个字节”ab\n\0cd\n\0”。在该情况中,在第一地址中存储的写偏移地址仍指向地址9,在第二地址中存储的读偏移地址指向第二个“\0”之后的地址,即,也是地址9。
在图7中,已经又通过图2所示方法从地址9开始向第三地址中顺序写入”ef\n\0”四个字节。在该情况中,读偏移地址未发生变化,仍为地址9,在写入数据的过程中,当10个地址都写满了之后,由于在读偏移地址之前的数据都是经过读取的数据,从而,从地址1到读偏移地址(在该情况中为地址9)之前的地址(即地址8)的每个地址都是可以写入的,因此从地址10跳到地址1继续进行写入,在写完之后,写偏移地址指向地址3。
在图8中,已经又在非TEE侧进行对该共享内存的读取。具体是,从读偏移地址(地址9)开始一直读取到写偏移地址的前一个地址(地址2),在进行该读取之后,第一地址中的写偏移地址仍指向地址3,第二地址中的读偏移地址也指向地址3。
在步骤S208,判断所述第一数据的字节数是否小于等于可写字节数,其中,所述可写字节数基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节。
本领域技术人员根据写偏移地址和读偏移地址可容易地确定多个第三地址中的可写地址,由于一个地址对应于一个字节,从而可确定可写字节数。
例如,在图3、图6和图8所示的情况中,读偏移地址和写偏移地址指向同一个地址,则可写字节数为全部第三地址的数目,即10个。
在图4、5所示的情况中,写偏移地址在读偏移地址之后,可写字节数是第三地址的数目减去不可写字节数,所述不可写字节数为写偏移地址减去读偏移地址的差。例如,在图4中,写偏移地址为5,读偏移地址为1,从而,不可写字节数为5-1=4,可写字节数为10-4=6,其分别对应于地址5到地址10共六个地址。
在图7所示的情况中,写偏移地址在读偏移地址之前,在该情况中,可写字节数为读偏移地址减去写偏移地址之差。例如,在图7中,写偏移地址为3,读偏移地址为9,从而,可写字节数为9-3=6,其分别对应于地址3到地址8共六个地址。
在步骤S210,在所述第一数据的字节数小于等于可写字节数的情况中,将所述第一数据写入从所述写偏移地址开始的第三地址中。
例如,在所述共享内存中已存储的数据如图4所示的情况中,如上文所述,可写字节数为6个,当将要写入的第一数据为”ef\n\0”4个字节的情况中,由于4<6,因此,可将”ef\n\0”4个字节写入5、6、7、8四个地址中。
在所述共享内存中已存储的数据如图7所示的情况中,如上文所述,可写字节数为6个,当将要写入的第一数据为“ghijkl\n\0”8个字节的情况中,即第一数据的字节数大于可写字节数,从而,将不能向共享内存中写入该数据。在该情况中,该写入线程或者进行等待,直到共享内存中有足够的可写字节数,或者可丢弃该第一数据并返回。图9示出了根据本说明书另一实施例的共享内存数据结构。在该数据结构中,除了包括图3所述的第一地址、第二地址和第三地址之外,还包括第四地址,第四地址中存储丢弃数据数目。在如上文所述丢弃第一数据之后,在第四地址中将该丢弃数据数目加1。在一个实施例中,该丢弃数据数目为原子变量,从而在TEE侧和非TEE侧双线程同时操作的情况下,可保证数据安全性。
在步骤S212,更新所述第一地址中的写偏移地址。
例如,在对图3中的第三地址写入“ab\n\0”之后,将初始的写偏移地址“1”更新为写偏移地址“5”,从而以便于下次写入或读取时对写偏移地址的读取。例如,在对图4所示的第三地址写入时,可读取到最新的写偏移地址“5”,从而进行可写字节数的计算。
在步骤S214,释放所述TEE侧线程锁。
例如,在所述TEE侧线程锁为上述第一变量的情况中,该第一线程可通过将第一变量的值修改为指示未锁定,从而释放该线程锁。
图10示出根据本说明书实施例的一种TEE系统中的数据传输方法流程图,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述非TEE侧预设有与所述共享内存对应的非TEE侧线程锁,所述方法由非TEE侧多个线程中的第二线程执行,包括:
步骤S1002,获取所述非TEE侧线程锁;
步骤S1004,通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
步骤S1006,读取所述第三地址中的写入数据中的未读取字节作为第二数据,所述未读取字节基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
步骤S1008,更新所述第二地址中的读偏移地址;以及
步骤S1010,释放所述非TEE侧线程锁。
该方法可通过非TEE侧运行的多个线程中的第二线程执行,该多个线程可同样属于上述用于从TEE侧向非TEE侧传输数据的进程。
其中,步骤S1002、步骤S1004和步骤S1010可分别参考上述对步骤S204、步骤S206和步骤S214的描述,在此不再赘述。
在步骤S1006,读取所述第三地址中的写入数据中的未读取字节作为第二数据,所述未读取字节基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节。
本领域技术人员根据写偏移地址和读偏移地址可容易地确定第三地址中的未读取字节。
例如,在图3、图6和图8所示的情况中,读偏移地址和写偏移地址指向同一个地址,则第三地址中不包括未读取字节。
在图4、5所示的情况中,写偏移地址在读偏移地址之后,所述第三地址中的全部未读取字节包括从所述读偏移地址开始到所述写偏移地址的前一个地址中的各个字节。例如,在图4中,写偏移地址为5,读偏移地址为1,从而,全部未读取字节为地址1到4中各个字节。
在图7所示的情况中,写偏移地址在读偏移地址之前,在该情况中,所述全部未读取字节为所述第三地址中除已读取字节之外的字节,所述已读取字节包括从所述写偏移地址开始到所述读偏移地址的前一个地址中的各个字节。例如,在图7中,写偏移地址为3,读偏移地址为9,从而,已读取字节为地址3到地址8中各个地址中的字节,从而,全部未读取字节为地址1-2和地址9-10中的各个字节。可以理解,在该步骤中,不一定读取所述第三地址中的全部未读取字节,而可以仅读取部分未读取字节。例如,可预设为一次仅读取3个字节,从而,在一次读取中可读取全部未读取字节中的前三个字节,剩余的一个未读取字节可留到下一次读取时读取。
在步骤S1008,更新所述第二地址中的读偏移地址。
例如,在从图5所示的第三地址读取八个字节“ab\n\0cd\n\0”之后,将读偏移地址从“1”更新为“9”,从而便于下次写入或读取时对读偏移地址的读取。
在一个实施例中,所述第二数据为日志数据,所述方法还包括,在释放所述非TEE侧线程锁之后,将所述第二数据发送给在非TEE侧的日志打印程序,以用于打印该第二数据。该打印例如包括在显示器上显示,或者存入硬盘中等。
图11示出根据本说明书实施例的一种TEE系统中的数据传输装置1100,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述TEE侧预设有与所述共享内存对应的TEE侧线程锁,所述装置部署于由TEE侧多个线程中的第一线程中,包括:
数据获取单元111,配置为,获取第一数据;
锁获取单元112,配置为,获取所述TEE侧线程锁;
地址获取单元113,配置为,通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
判断单元114,配置为,判断待传输的第一数据的字节数是否小于等于可写字节数,其中,所述可写字节数基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
写入单元115,配置为,在所述第一数据的字节数小于等于可写字节数的情况中,将所述第一数据写入从所述写偏移地址开始的第三地址中;
更新单元116,配置为,更新所述第一地址中的写偏移地址;以及
锁释放单元117,配置为,释放所述TEE侧线程锁。
在一个实施例中,所述装置还包括等待单元118,配置为,在所述第一数据的字节数大于可写字节数的情况中,进行等待。
在一个实施例中,所述共享内存中还包括第四地址,用于存储丢弃数据数目,所述装置还包括丢弃单元119,配置为,在所述第一数据的字节数大于可写字节数的情况中,丢弃所述第一数据,并将第四地址中存储的丢弃数据数目加一。
在一个实施例中,所述TEE侧线程锁为第一变量,所述第一变量为原子变量,所述第一变量的值指示是否锁定,其中,所述锁获取单元112还包括,确定子单元1121,配置为,确定所述第一变量是否指示锁定,以及修改子单元1122,配置为,在所述第一变量未指示锁定的情况中,修改所述第一变量的值,以使得所述第一变量指示锁定,从而获取TEE侧线程锁。
图12示出根据本说明书实施例的一种TEE系统中的数据传输装置1200,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述非TEE侧预设有与所述共享内存对应的非TEE侧线程锁,所述装置部署于非TEE侧多个线程中的第二线程中,包括:
锁获取单元121,配置为,获取所述非TEE侧线程锁;
地址获取单元122,配置为,通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
读取单元123,配置为,读取所述第三地址中的写入数据中的未读取字节作为第二数据,所述未读取字节基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
更新单元124,配置为,更新所述第二地址中的读偏移地址;以及
锁释放单元125,配置为,释放所述非TEE侧线程锁。
在一个实施例中,所述第二数据为日志数据,所述装置还包括打印单元126,配置为,在释放所述非TEE侧线程锁之后,将所述第二数据发送给在非TEE侧的日志打印程序,以用于打印该第二数据。
本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
在本说明书实施例中,因为所述共享内存会被TEE和非TEE环境同时使用,通过对共享内存的数据结构的特殊设计保证线程安全。具体是,在共享内存中包括上述第一地址-第四地址,其中,对于第一地址和第二地址,只会单侧写,另一侧只会读,所以没有同时写的问题。另外,针对一边读另一边在写的情况,因为写的时候是在写完了更新写偏地址,读的时候是在读完了更新读偏移地址,因此不存在偏移地址更新了,但是数据还没处理的情况,所以不会读到未写完的数据,也不会写数据覆盖掉未读的数据。第三地址中存储的数据虽然是双侧读写,但是通过由写偏移地址和读偏移地址控制读写的范围,所以其实是分开的区域,互不干扰。另外,对于第四地址中的丢弃数据数目,虽然也是同时读写,但是通过将其设置为原子变量而保证了数据安全性。
通过上述数据结构的设计,为TEE环境提供一种高性能的异步数据传输系统,例如异步日志打印系统,减少了TEE系统打印日志的开销,提高了TEE系统的运行速度,同时满足了对日志系统的一些基本要求。另外,通过在TEE侧和非TEE侧设置针对共享内存的线程锁,从而支持双侧多线程工作,进一步提高了TEE系统的运行速度。
需要理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (30)

1.一种TEE系统中的数据传输方法,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述TEE侧预设有与所述共享内存对应的TEE侧线程锁,所述方法由TEE侧多个线程中的第一线程执行,包括:
获取第一数据;
获取所述TEE侧线程锁;
通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
判断待传输的第一数据的字节数是否小于等于可写字节数,其中,所述可写字节数基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
在所述第一数据的字节数小于等于可写字节数的情况中,将所述第一数据写入从所述写偏移地址开始的第三地址中;
更新所述第一地址中的写偏移地址;以及
释放所述TEE侧线程锁。
2.根据权利要求1所述的方法,其中,所述第一数据为以下任一种数据:日志、监控数据、统计数据。
3.根据权利要求1所述的方法,还包括,在所述第一数据的字节数大于可写字节数的情况中,进行等待。
4.根据权利要求1所述的方法,所述共享内存中还包括第四地址,用于存储丢弃数据数目,所述方法还包括,在所述第一数据的字节数大于可写字节数的情况中,丢弃所述第一数据,并将第四地址中存储的丢弃数据数目加一。
5.根据权利要求4所述的方法,其中,所述丢弃数据数目为原子变量。
6.根据权利要求1所述的方法,其中,所述写偏移地址在所述读偏移地址之前,所述可写字节数等于所述读偏移地址减去所述写偏移地址之差。
7.根据权利要求1所述的方法,其中,所述写偏移地址在所述读偏移地址之后,所述可写字节数等于第三地址的数目减去不可写字节数之差,其中,所述不可写字节数等于所述写偏移地址减去所述读偏移地址之差。
8.根据权利要求1所述的方法,其中,所述写偏移地址与所述读偏移地址相同,所述可写字节数等于全部第三地址的数目。
9.根据权利要求1所述的方法,其中,所述TEE侧线程锁为第一变量,所述第一变量为原子变量,所述第一变量的值指示是否锁定,其中,获取所述TEE侧线程锁包括,确定所述第一变量是否指示锁定,在所述第一变量未指示锁定的情况中,修改所述第一变量的值,以使得所述第一变量指示锁定,从而获取TEE侧线程锁。
10.一种TEE系统中的数据传输方法,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述非TEE侧预设有与所述共享内存对应的非TEE侧线程锁,所述方法由非TEE侧多个线程中的第二线程执行,包括:
获取所述非TEE侧线程锁;
通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
读取所述第三地址中的写入数据中的未读取字节作为第二数据,所述未读取字节基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
更新所述第二地址中的读偏移地址;以及
释放所述非TEE侧线程锁。
11.根据权利要求10所述的方法,其中,所述写偏移地址在所述读偏移地址之后,所述未读取字节包括从所述读偏移地址开始到所述写偏移地址的前一个地址中的各个字节。
12.根据权利要求10所述的方法,其中,所述写偏移地址在所述读偏移地址之前,所述未读取字节为所述第三地址中除已读取字节之外的字节,所述已读取字节包括从所述写偏移地址开始到所述读偏移地址的前一个地址中的各个字节。
13.根据权利要求10所述的方法,其中,在所述写偏移地址与所述读偏移地址相同的情况中,所述第三地址中不包括未读取字节。
14.根据权利要求10所述的方法,其中,所述第二数据为日志数据,所述方法还包括,在释放所述非TEE侧线程锁之后,将所述第二数据发送给在非TEE侧的日志打印程序,以用于打印该第二数据。
15.一种TEE系统中的数据传输装置,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述TEE侧预设有与所述共享内存对应的TEE侧线程锁,所述装置部署于由TEE侧多个线程中的第一线程中,包括:
数据获取单元,配置为,获取第一数据;
锁获取单元,配置为,获取所述TEE侧线程锁;
地址获取单元,配置为,通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
判断单元,配置为,判断待传输的第一数据的字节数是否小于等于可写字节数,其中,所述可写字节数基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
写入单元,配置为,在所述第一数据的字节数小于等于可写字节数的情况中,将所述第一数据写入从所述写偏移地址开始的第三地址中;
更新单元,配置为,更新所述第一地址中的写偏移地址;以及
锁释放单元,配置为,释放所述TEE侧线程锁。
16.根据权利要求15所述的装置,其中,所述第一数据为以下任一种数据:日志、监控数据、统计数据。
17.根据权利要求15所述的装置,还包括等待单元,配置为,在所述第一数据的字节数大于可写字节数的情况中,进行等待。
18.根据权利要求15所述的装置,所述共享内存中还包括第四地址,用于存储丢弃数据数目,所述装置还包括丢弃单元,配置为,在所述第一数据的字节数大于可写字节数的情况中,丢弃所述第一数据,并将第四地址中存储的丢弃数据数目加一。
19.根据权利要求18所述的装置,其中,所述丢弃数据数目为原子变量。
20.根据权利要求15所述的装置,其中,所述写偏移地址在所述读偏移地址之前,所述可写字节数等于所述读偏移地址减去所述写偏移地址之差。
21.根据权利要求15所述的装置,其中,所述写偏移地址在所述读偏移地址之后,所述可写字节数等于第三地址的数目减去不可写字节数之差,其中,所述不可写字节数等于所述写偏移地址减去所述读偏移地址之差。
22.根据权利要求15所述的装置,其中,所述写偏移地址与所述读偏移地址相同,所述可写字节数等于全部第三地址的数目。
23.根据权利要求15所述的装置,其中,所述TEE侧线程锁为第一变量,所述第一变量为原子变量,所述第一变量的值指示是否锁定,其中,所述锁获取单元还包括,确定子单元,配置为,确定所述第一变量是否指示锁定,以及修改单元,配置为,在所述第一变量未指示锁定的情况中,修改所述第一变量的值,以使得所述第一变量指示锁定,从而获取TEE侧线程锁。
24.一种TEE系统中的数据传输装置,所述TEE系统包括TEE侧和非TEE侧,在所述非TEE侧包括共享内存,所述共享内存中包括第一地址、第二地址和连续的多个第三地址,其中,所述第一地址用于存储写偏移地址,所述写偏移地址指示所述多个第三地址中可写入的起始地址,所述第二地址用于存储读偏移地址,所述读偏移地址指示所述多个第三地址中可读取的起始地址,所述第三地址用于存储来自TEE侧的数据,所述非TEE侧预设有与所述共享内存对应的非TEE侧线程锁,所述装置部署于非TEE侧多个线程中的第二线程中,包括:
锁获取单元,配置为,获取所述非TEE侧线程锁;
地址获取单元,配置为,通过读取第一地址和第二地址,分别获取写偏移地址和读偏移地址;
读取单元,配置为,读取所述第三地址中的写入数据中的未读取字节作为第二数据,所述未读取字节基于所述写偏移地址和所述读偏移地址确定,其中,每个地址对应于一个字节;
更新单元,配置为,更新所述第二地址中的读偏移地址;以及
锁释放单元,配置为,释放所述非TEE侧线程锁。
25.根据权利要求24所述的装置,其中,所述写偏移地址在所述读偏移地址之后,所述未读取字节包括从所述读偏移地址开始到所述写偏移地址的前一个地址中的各个字节。
26.根据权利要求24所述的装置,其中,所述写偏移地址在所述读偏移地址之前,所述未读取字节为所述第三地址中除已读取字节之外的字节,所述已读取字节包括从所述写偏移地址开始到所述读偏移地址的前一个地址中的各个字节。
27.根据权利要求24所述的装置,其中,在所述写偏移地址与所述读偏移地址相同的情况中,所述第三地址中不包括未读取字节。
28.根据权利要求24所述的装置,其中,所述第二数据为日志数据,所述装置还包括打印单元,配置为,在释放所述非TEE侧线程锁之后,将所述第二数据发送给在非TEE侧的日志打印程序,以用于打印该第二数据。
29.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-14中任一项的所述的方法。
30.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-14中任一项所述的方法。
CN201910640637.XA 2019-07-16 2019-07-16 Tee系统中的多线程数据传输方法和装置 Active CN110442462B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201910640637.XA CN110442462B (zh) 2019-07-16 2019-07-16 Tee系统中的多线程数据传输方法和装置
PCT/CN2020/071561 WO2021008111A1 (zh) 2019-07-16 2020-01-11 Tee系统中的多线程数据传输方法和装置
US16/785,328 US10896075B1 (en) 2019-07-16 2020-02-07 Method and apparatus for multithreaded data transmission in a TEE system
TW109104978A TWI730630B (zh) 2019-07-16 2020-02-17 Tee系統中的多執行緒資料傳輸方法和裝置
US16/944,866 US10884830B1 (en) 2019-07-16 2020-07-31 Method and apparatus for multithreaded data transmission in a tee system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910640637.XA CN110442462B (zh) 2019-07-16 2019-07-16 Tee系统中的多线程数据传输方法和装置

Publications (2)

Publication Number Publication Date
CN110442462A true CN110442462A (zh) 2019-11-12
CN110442462B CN110442462B (zh) 2020-07-28

Family

ID=68430503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910640637.XA Active CN110442462B (zh) 2019-07-16 2019-07-16 Tee系统中的多线程数据传输方法和装置

Country Status (4)

Country Link
US (2) US10896075B1 (zh)
CN (1) CN110442462B (zh)
TW (1) TWI730630B (zh)
WO (1) WO2021008111A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884830B1 (en) 2019-07-16 2021-01-05 Advanced New Technologies Co., Ltd. Method and apparatus for multithreaded data transmission in a tee system
WO2021008104A1 (zh) * 2019-07-16 2021-01-21 创新先进技术有限公司 Tee系统中的数据传输方法和装置
WO2021008110A1 (zh) * 2019-07-16 2021-01-21 创新先进技术有限公司 Tee系统中的多线程数据传输方法和装置
WO2021008105A1 (zh) * 2019-07-16 2021-01-21 创新先进技术有限公司 Tee系统中的数据传输方法和装置
US11003785B2 (en) 2019-07-16 2021-05-11 Advanced New Technologies Co., Ltd. Data transmission method and apparatus in tee systems
US11042642B2 (en) 2019-07-16 2021-06-22 Advanced New Technologies Co., Ltd. Method and apparatus for data transmission in a TEE system
WO2024051311A1 (zh) * 2022-09-07 2024-03-14 华为技术有限公司 数据处理方法、终端设备和可读存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552514A (zh) * 2019-02-12 2020-08-18 阿里巴巴集团控股有限公司 一种处理器以及指令执行方法
CN114372261B (zh) * 2022-03-22 2022-07-22 荣耀终端有限公司 一种多线程处理方法及电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110231593A1 (en) * 2010-03-19 2011-09-22 Kabushiki Kaisha Toshiba Virtual address cache memory, processor and multiprocessor
CN103793815A (zh) * 2014-01-23 2014-05-14 武汉天喻信息产业股份有限公司 适用于银行卡和行业卡的移动智能终端收单系统及方法
CN104392188B (zh) * 2014-11-06 2017-10-27 三星电子(中国)研发中心 一种安全数据存储方法和系统
CN107769917A (zh) * 2016-08-22 2018-03-06 普天信息技术有限公司 一种用于无线终端的可信平台和方法
CN108062252A (zh) * 2016-11-08 2018-05-22 阿里巴巴集团控股有限公司 一种信息交互方法、对象管理方法及装置和系统
CN108170489A (zh) * 2016-12-07 2018-06-15 腾讯科技(深圳)有限公司 一种快速加载资源的方法及装置
CN108780482A (zh) * 2017-06-06 2018-11-09 华为技术有限公司 管理安全装置中应用的方法和装置
WO2019085811A1 (zh) * 2017-11-06 2019-05-09 阿里巴巴集团控股有限公司 一种实现驱动的系统及方法
CN109871717A (zh) * 2016-02-29 2019-06-11 华为技术有限公司 一种数据安全传输装置及方法
CN109981259A (zh) * 2017-12-27 2019-07-05 航天信息股份有限公司 一种存储数字证书密钥的方法、装置及系统

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721066B2 (en) 2007-06-05 2010-05-18 Apple Inc. Efficient encoding for detecting load dependency on store with misalignment
US8555292B2 (en) 2008-06-27 2013-10-08 Microsoft Corporation Synchronizing communication over shared memory
US9141388B2 (en) 2009-12-25 2015-09-22 Shanghai Xin Hao Micro Electronics Co., Ltd. High-performance cache system and method
CN103150220B (zh) * 2011-12-07 2016-08-31 腾讯科技(深圳)有限公司 进程间的通信方法和通信系统
US10007527B2 (en) 2012-03-05 2018-06-26 Nvidia Corporation Uniform load processing for parallel thread sub-sets
CN104424030B (zh) * 2013-08-22 2020-01-14 腾讯科技(深圳)有限公司 多进程操作共享内存的方法和装置
US9071581B2 (en) 2013-09-23 2015-06-30 Nvidia Corporation Secure storage with SCSI storage devices
CN103645863B (zh) * 2013-12-12 2017-12-08 北京奇安信科技有限公司 共享内存的数据读取方法和系统、写入方法和系统
CN104318135B (zh) * 2014-10-27 2017-04-05 中国科学院信息工程研究所 一种基于可信执行环境的Java代码安全动态载入方法
CN105183665B (zh) 2015-09-08 2018-02-13 福州瑞芯微电子股份有限公司 一种数据缓存访问方法和数据缓存控制器
CN106168916B (zh) 2016-06-24 2018-06-26 北京百度网讯科技有限公司 数据传输方法和系统
CN106354687B (zh) * 2016-08-29 2020-01-03 珠海市魅族科技有限公司 一种数据传输方法及系统
KR20180043451A (ko) 2016-10-19 2018-04-30 삼성전자주식회사 컴퓨팅 시스템 및 그것의 동작 방법
KR102519458B1 (ko) 2016-11-01 2023-04-11 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 동작 방법
US10671547B2 (en) 2016-12-19 2020-06-02 Intel Corporation Lightweight trusted tasks
US10204229B2 (en) * 2017-03-21 2019-02-12 Nxp B.V. Method and system for operating a cache in a trusted execution environment
US10805349B2 (en) 2017-03-29 2020-10-13 At&T Intellectual Property I, L.P. Method and system to secure and dynamically share IOT information cross multiple platforms in 5G network
CN109460373B (zh) 2017-09-06 2022-08-26 阿里巴巴集团控股有限公司 一种数据共享方法、终端设备和存储介质
CN109840436A (zh) 2017-11-29 2019-06-04 阿里巴巴集团控股有限公司 数据处理方法、可信用户界面资源数据的应用方法及装置
US10860709B2 (en) 2018-06-29 2020-12-08 Intel Corporation Encoded inline capabilities
CN109086100B (zh) 2018-07-26 2020-03-31 中国科学院信息工程研究所 一种高安全可信移动终端安全体系架构及安全服务方法
US20190188386A1 (en) 2018-12-27 2019-06-20 Intel Corporation Protecting ai payloads running in gpu against main cpu residing adversaries
CN110442463B (zh) * 2019-07-16 2020-07-07 阿里巴巴集团控股有限公司 Tee系统中的数据传输方法和装置
CN110399235B (zh) * 2019-07-16 2020-07-28 阿里巴巴集团控股有限公司 Tee系统中的多线程数据传输方法和装置
US10699015B1 (en) 2020-01-10 2020-06-30 Alibaba Group Holding Limited Method and apparatus for data transmission in a tee system
CN110442462B (zh) * 2019-07-16 2020-07-28 阿里巴巴集团控股有限公司 Tee系统中的多线程数据传输方法和装置
CN110427274B (zh) * 2019-07-16 2020-07-17 阿里巴巴集团控股有限公司 Tee系统中的数据传输方法和装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110231593A1 (en) * 2010-03-19 2011-09-22 Kabushiki Kaisha Toshiba Virtual address cache memory, processor and multiprocessor
CN103793815A (zh) * 2014-01-23 2014-05-14 武汉天喻信息产业股份有限公司 适用于银行卡和行业卡的移动智能终端收单系统及方法
CN104392188B (zh) * 2014-11-06 2017-10-27 三星电子(中国)研发中心 一种安全数据存储方法和系统
CN109871717A (zh) * 2016-02-29 2019-06-11 华为技术有限公司 一种数据安全传输装置及方法
CN107769917A (zh) * 2016-08-22 2018-03-06 普天信息技术有限公司 一种用于无线终端的可信平台和方法
CN108062252A (zh) * 2016-11-08 2018-05-22 阿里巴巴集团控股有限公司 一种信息交互方法、对象管理方法及装置和系统
CN108170489A (zh) * 2016-12-07 2018-06-15 腾讯科技(深圳)有限公司 一种快速加载资源的方法及装置
CN108780482A (zh) * 2017-06-06 2018-11-09 华为技术有限公司 管理安全装置中应用的方法和装置
WO2019085811A1 (zh) * 2017-11-06 2019-05-09 阿里巴巴集团控股有限公司 一种实现驱动的系统及方法
CN109981259A (zh) * 2017-12-27 2019-07-05 航天信息股份有限公司 一种存储数字证书密钥的方法、装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈存铜: "基于共享内存的智能无人车进程间消息异步传输机制", 《软件学报》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884830B1 (en) 2019-07-16 2021-01-05 Advanced New Technologies Co., Ltd. Method and apparatus for multithreaded data transmission in a tee system
US10896075B1 (en) 2019-07-16 2021-01-19 Advanced New Technologies Co., Ltd. Method and apparatus for multithreaded data transmission in a TEE system
WO2021008104A1 (zh) * 2019-07-16 2021-01-21 创新先进技术有限公司 Tee系统中的数据传输方法和装置
WO2021008110A1 (zh) * 2019-07-16 2021-01-21 创新先进技术有限公司 Tee系统中的多线程数据传输方法和装置
WO2021008105A1 (zh) * 2019-07-16 2021-01-21 创新先进技术有限公司 Tee系统中的数据传输方法和装置
WO2021008111A1 (zh) * 2019-07-16 2021-01-21 创新先进技术有限公司 Tee系统中的多线程数据传输方法和装置
US10943006B2 (en) 2019-07-16 2021-03-09 Advanced New Technologies Co., Ltd. Method and apparatus for multithreaded data transmission in a TEE system
US11003785B2 (en) 2019-07-16 2021-05-11 Advanced New Technologies Co., Ltd. Data transmission method and apparatus in tee systems
US11042642B2 (en) 2019-07-16 2021-06-22 Advanced New Technologies Co., Ltd. Method and apparatus for data transmission in a TEE system
US11250145B2 (en) 2019-07-16 2022-02-15 Advanced New Technologies Co., Ltd. Data transmission method and apparatus in tee systems
WO2024051311A1 (zh) * 2022-09-07 2024-03-14 华为技术有限公司 数据处理方法、终端设备和可读存储介质

Also Published As

Publication number Publication date
US20210019203A1 (en) 2021-01-21
US20210019202A1 (en) 2021-01-21
US10884830B1 (en) 2021-01-05
CN110442462B (zh) 2020-07-28
US10896075B1 (en) 2021-01-19
TW202119209A (zh) 2021-05-16
TWI730630B (zh) 2021-06-11
WO2021008111A1 (zh) 2021-01-21

Similar Documents

Publication Publication Date Title
CN110442462A (zh) Tee系统中的多线程数据传输方法和装置
CN110399235A (zh) Tee系统中的多线程数据传输方法和装置
CN110427274A (zh) Tee系统中的数据传输方法和装置
CN110442463A (zh) Tee系统中的数据传输方法和装置
US6457102B1 (en) Cache using multiple LRU&#39;s
JP5142995B2 (ja) メモリページ管理
CA1324837C (en) Synchronizing and processing of memory access operations in multiprocessor systems
JPH05204872A (ja) コンピュータ資源管理方法
US20030196010A1 (en) Non-blocking concurrent queues with direct node access by threads
CN106663062B (zh) 在事务性中间件机器环境中提供分布式事务锁的系统和方法
JPH0820986B2 (ja) 書き込みエラー検出用チェック・ビットの処理方法
CN103299281B (zh) 防止硬件事务存储器系统非故意丢失事务数据
CN107735774A (zh) 一种smr感知只追加文件系统
EP1899817A2 (en) Secure storage management system and method
US11442871B2 (en) Supporting concurrent remove operations and add-to-front operations on a Least Recently Used (LRU) queue
CN107229530A (zh) 进程间的通信方法、存储介质以及计算机设备
CN107544918A (zh) 一种内存页共享方法
CN107608885A (zh) 内存泄漏点的定位方法、装置、系统及可读存储介质
US20060277221A1 (en) Transactional file system with client partitioning
CN104077078B (zh) 读存储区、更新存储区的方法及装置
US7831642B1 (en) Page cache management for a shared file
US20020112100A1 (en) System and method for data exchange
US5241639A (en) Method for updating data from a cache address location to main memory and maintaining the cache address in registration memory
CN109032798A (zh) 一种电能质量管理系统共享内存锁控制方法
CN100363905C (zh) 一种基于绝对座标体系的操作系统客体重用测试方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201010

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201010

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right