IP Library › Granted Patent US 12,339,954
Granted Patent B2
US 12,339,954 · App. 18/327,559 · Granted Jun 24, 2025

Hybrid device with trusted execution environment

Inventors: Chi Wai Ng (Tsuen Wan, HK); Chan Fai Lam (Sai Ying Pun, HK); Yun Kau Lee (Yuen Long, HK)
Assignee: HONG KONG APPLIED SCIENCE AND TECHNOLOGY RESEARCH INSTITUTE COMPANY LIMITED
G06F21/53G06F21/57
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,339,954
App. No.
18/327,559
Granted
Jun 24, 2025
Kind
B2
Abstract

A Hybrid TEE device allows a Trusted Execution Environment (TEE) by incorporating hardware comprising a Cache Purging Controller, a Memory Isolation Gateway, and a Memory Clean Up into a System on a Chip device, a general purpose computing device, or a special purpose or proprietary computing or electronic device. The addition of the hardware enables a method of protecting the Trusted Execution Environment and thus reducing vulnerability to malicious software or other program code.

Claims (62)

1. A hybrid device with trusted execution environment comprising:

a processor core with a cache purging controller;

a memory controller communicating with the processor and physical memory controlled by the memory controller;

one or more peripherals, the peripherals comprising one or more of a general purpose input output controller, a flash memory, or a universal asynchronous receiver-transmitter, the peripherals communicating with the processor core; and

a trusted execution environment (TEE) subsystem comprising memory mapped registers, a memory isolation gateway and a memory clean up, the TEE subsystem controlling all communication between the processor core and the memory controller and/or the peripherals.

2. The hybrid device with trusted execution environment of claim 1 , wherein the memory controller is a DDR memory controller and the physical memory is DDR memory.

3. The hybrid device with trusted execution environment of claim 1 , wherein the processor, the cache purging controller, the memory clean-up, and the memory isolation gateway are all integrated into a single integrated circuit device.

4. The hybrid device with trusted execution environment of claim 1 , wherein at least one of the cache purging controller, the memory clean-up and the memory isolation gateway are not integrated into an integrated circuit device which integrates the processor core.

5. The hybrid device with trusted execution environment of claim 2 , wherein the processor, the cache purging controller, the memory clean-up, and the memory isolation gateway are all integrated into a single integrated circuit device.

6. The hybrid device with trusted execution environment of claim 2 , wherein at least one of the cache purging controller, the memory clean-up and the memory isolation gateway are not integrated into an integrated circuit device which integrates the processor core.

7. A method of hardware-software hybrid device with trusted execution environment operation comprising:

defining at least two virtual processing cells including a trusted processing cell and at least one non-trusted processing cells, the virtual processing cells running on a processor;

defining at least two virtual memory cells corresponding to at least two areas of a physical memory device according to memory cell configurations stored in a memory isolation gateway;

assigning one of the virtual memory cells to each of the virtual processing cells;

monitoring the processor for attempts to access the virtual memory cells due to instructions from one of the virtual processing cells;

checking via the memory isolation gateway to ensure that the virtual memory cell being accessed by the processor corresponds to the virtual memory cell assigned to the virtual processing cell which provided the instruction to the processor to access the virtual memory cell;

permitting the processor to access the virtual memory cell if the virtual memory cell corresponds to the virtual processing cell which provided the instruction to the processor to access the virtual memory cell and returning to the monitoring step, otherwise proceeding to the next step;

blocking via the memory isolation gateway the attempt to access the virtual memory cell and returning an error indicating that the attempt to access the memory was unsuccessful, and returning to the monitoring step.

8. The method of claim 7 , wherein a specified non-trusted processing cell becomes a second trusted processing cell after checking via the memory isolation gateway that the virtual processing cell corresponding to the specified non-trusted processing cell is accessing only the virtual memory cell assigned to the specified non-trusted processing cell.

9. The method of claim 7 , further comprising:

defining a set of trusted processing cell parameters;

storing the set of trusted processing cell parameters in a trusted processing cell parameter memory location;

confirming that one of the non-trusted processing cells is within the set of trusted processing cell parameters and if so converting that non-trusted processing cell into an additional trusted processing cell; and

allowing a process to run as a trusted process on the additional trusted processing cell.

10. A method of hardware-software hybrid cell switching comprising:

defining at least two virtual processing cells including a trusted processing cell and at least one non-trusted processing cell, the new cell being selected from one of the virtual processing cells;

defining at least two virtual memory cells corresponding to at least two areas of a physical memory device according to memory cell configurations stored in a memory isolation gateway;

assigning one of the virtual memory cells to each of the virtual processing cells;

monitoring the processor for attempts to access the virtual memory cells due to instructions from one of the virtual processing cells;

checking via the memory isolation gateway to ensure that the virtual memory cell being accessed by the processor corresponds to the virtual memory cell assigned to the virtual processing cell which provided the instruction to the processor to access the virtual memory cell;

permitting the processor to access the virtual memory cell if the virtual memory cell corresponds to the virtual processing cell which provided the instruction to the processor to access the virtual memory cell and returning to the monitoring step, otherwise proceeding to the next step; and

blocking via the memory isolation gateway the attempt to access the virtual memory cell and returning an error indicating that the attempt to access the memory was unsuccessful;

setting up a timer in a processor to trigger an interrupt;

entering an interrupt handler running in a trusted processing cell;

setting a code register to a location of cell code;

setting a new cell register to the location of a selected new cell;

setting a cache purge flag to true;

executing a cache purging operation with a cache purging controller;

setting the cache purge flag to false;

defining a memory clean-up starting address and a memory clean-up ending address to define a memory clean-up range;

setting a memory clean-up flag to true;

performing a memory clean-up operation on the memory clean-up range with a memory clean-up;

performing cell switching functions including system services, inter-cell communication and checking cell pending events;

executing a memory return instruction to the selected new cell; and,

executing the instructions provided by the selected new cell.

11. The method of claim 10 , wherein the processor, the cache purging controller, and the memory clean-up are all integrated into a single integrated circuit device.

12. The method of claim 10 , wherein at least one of the cache purging controller, and the memory clean-up are not integrated into an integrated circuit device which integrates the processor.

13. The method of claim 10 , further comprising:

defining a set of trusted processing cell parameters;

storing the set of trusted processing cell parameters in a trusted processing cell parameter memory location;

confirming that one of the non-trusted processing cells is within the set of trusted processing cell parameters and if so converting that non-trusted processing cell into an additional trusted processing cell; and

allowing a process to run as a trusted process on the additional trusted processing cell.

14. The method of claim 11 , further comprising:

defining a set of trusted processing cell parameters;

storing the set of trusted processing cell parameters in a trusted processing cell parameter memory location;

confirming that one of the non-trusted processing cells is within the set of trusted processing cell parameters and if so converting that non-trusted processing cell into an additional trusted processing cell; and

allowing a process to run as a trusted process on the additional trusted processing cell.

15. The method of claim 12 , further comprising:

defining a set of trusted processing cell parameters;

storing the set of trusted processing cell parameters in a trusted processing cell parameter memory location;

confirming that one of the non-trusted processing cells is within the set of trusted processing cell parameters and if so converting that non-trusted processing cell into an additional trusted processing cell; and

allowing a process to run as a trusted process on the additional trusted processing coll.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2023
From: NG, CHI WAI; LAM, CHAN FAI; LEE, YUN KAU
To: HONG KONG APPLIED SCIENCE AND TECHNOLOGY RESEARCH INSTITUTE COMPANY LIMITED
Reel/Frame 063831/0271 →
Continuity (1)
Related Publication 20240403410A1 · Dec 5, 2024
References Cited (15)
US 10108800B1 · Surdu · 2018 [cited by applicant]
US 10325118B2 · Chhabra et al. · 2019 [cited by applicant]
US 10878083B2 · Hlaing · 2020 [cited by applicant]
US 11151262B2 · Garlati · 2021 [cited by applicant]
US 20120265975A1 · Kimelman · 2012 [cited by applicant]
US 20190392156A1 · Garlati · 2019 [cited by applicant]
US 20200143041A1 · Jung · 2020 [cited by examiner]
US 20210397700A1 · Stapf et al. · 2021 [cited by applicant]
US 20230267196A1 · Pismenny · 2023 [cited by examiner]
CN 107038128A · 2017 [cited by applicant]
CN 114117412A · 2022 [cited by applicant]
EP 3617927A1 · 2018 [cited by applicant]
WO WO2021238294A1 · 2021 [cited by examiner]
International Search Report dated Jan. 30, 2024, issued by the China National Intellectual Property Administration in corresponding application PCT/CN2023/098666. [cited by applicant]
Written Opinion of the International Searching Authority dated Feb. 7, 2024, issued by the China National Intellectual Property Administration in corresponding application PCT/CN2023/098666. [cited by applicant]