WO2001046800A2 - Dual-mode processor - Google Patents

Dual-mode processor Download PDF

Info

Publication number
WO2001046800A2
WO2001046800A2 PCT/US2000/034458 US0034458W WO0146800A2 WO 2001046800 A2 WO2001046800 A2 WO 2001046800A2 US 0034458 W US0034458 W US 0034458W WO 0146800 A2 WO0146800 A2 WO 0146800A2
Authority
WO
WIPO (PCT)
Prior art keywords
processor
memory
mode
circuit
data
Prior art date
Application number
PCT/US2000/034458
Other languages
French (fr)
Other versions
WO2001046800A3 (en
Inventor
Brant Candelore
Eric J. Sprunk
Original Assignee
General Instrument Corporation
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 General Instrument Corporation filed Critical General Instrument Corporation
Priority to AU22786/01A priority Critical patent/AU2278601A/en
Priority to KR1020027007955A priority patent/KR20020091061A/en
Priority to JP2001547248A priority patent/JP2003518287A/en
Priority to MXPA02006214A priority patent/MXPA02006214A/en
Priority to CA002395645A priority patent/CA2395645A1/en
Priority to EP00986569A priority patent/EP1240583A2/en
Publication of WO2001046800A2 publication Critical patent/WO2001046800A2/en
Publication of WO2001046800A3 publication Critical patent/WO2001046800A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Definitions

  • the present invention relates to a circuit having a multi-mode processor, such as a dual-mode processor.
  • the processor is particularly suitable for providing secure access control in a digital terminal for a subscriber television network.
  • Integrated Receiver-Decoder or subscriber terminal, which receive and decode television signals for presentation by a television.
  • the signals can be delivered over a satellite, through a cable plant, or by means of terrestrial broadcast, for example.
  • One driver of the overall cost is the number of components that make up the product.
  • One way to reduce the number of components is to combine functions that were normally performed by two or more Integrated Circuits (ICs) into one IC. This applies to dies which have embedded processors. For example, dies having both a memory and a Central Processing Unit (CPU) are now available.
  • ICs Integrated Circuits
  • CPU Central Processing Unit
  • Operating systems have developed protection mechanisms to prevent programs which operate in a user application mode from overwriting privileged system information. These systems often use a logical circuit known as a Memory Management Unit (MMU) to prevent the host program executing in memory from being overwritten by a rogue application running in user mode. In such systems, there is no protection between applications executing simultaneously. Also, global space is shared by all tasks to avoid unnecessary replication of system service routines and to facilitate shared data and interrupt handling. Also, structures such as the stack may be accessible no matter what mode a program is running in. Application code might have access to some of the low-level general purpose and dedicated registers that the host program is using. And, such application programs may have access to stored system files .
  • MMU Memory Management Unit
  • the system should provide a dual -mode processor with secure and non- secure processing modes.
  • the system should be implementable in a subscriber terminal in a television network.
  • the present invention provides a system having the above and other advantages .
  • a multiple-mode processing circuit such as a dual -mode processor, operates in at least first and second modes according to a switch.
  • a mode When a mode is active, data transfer between the processor and a respective memory occurs.
  • instructions from the memory can be executed at the processor, and the results can be stored in the respective memory.
  • first and second memories may be provided for the first and second modes, respectively.
  • the memories are separate, and no data transfer can occur between the memories directly or via the processor.
  • the first mode may be a secure mode for secure processing operations, such as providing conditional access for television programming services at a set-top subscriber terminal .
  • the second mode may be a non- secure mode, such as for providing any other application at the terminal, e.g., program guide, shop at home service, etc.
  • a data bus is provided for time-multiplexed transfer of data between the processor and the respective memories.
  • switching of individual internal registers and external elements such as address and data latches, is provided.
  • the processor may be switched between modes based on different schemes, including a fixed ratio of clock cycles, a fixed ratio of instructions executed at the processor, and respective priorities of the modes.
  • the first and second modes may have different respective operating systems.
  • FIG. 1 illustrates an overview of a dual-mode processing circuit in accordance with the present invention.
  • FIG. 2 illustrates a dual-mode processor with a bus muxing circuit in accordance with the present invention.
  • FIG. 3 illustrates a dual-mode processor with switching for individually controlling external components in accordance with the present invention.
  • FIG. 4 illustrates a switch for selecting first and second modes of a dual-mode processor in accordance with the present invention.
  • the present invention relates to a multiple-mode processor, such as a dual-mode processor.
  • FIG. 1 illustrates an overview of a dual-mode processor in accordance with the present invention.
  • the dual -mode processor 5 includes a secure system portion 10 and a non-secure system portion 50.
  • the secure system 10 includes registers 12, a Random Access Memory (RAM) 14, a CPU 16, a Read-Only Memory (ROM) 18 and a program control function 20.
  • the RAM 14 may store secure code and cryptographic keys, for example, for providing conditional access at a set-top terminal.
  • the non- secure system 50 includes a register 52 and a RAM 54.
  • the processor 5 provides two functions (e.g., secure and non- secure functions) with absolute isolation between the functions.
  • each system 10, 50 has its own RAM 14, 54, so not a single bit of the secure system 10 is passed (e.g., leaks) to the RAM 54, and not a single bit of the non-secure system 50 is passed to the RAM 14.
  • the data in the RAM 14 of the secure system 10 remains secure since data cannot be retrieved from it, or provided to it, by the non- secure system 50, either directly or via the CPU 16.
  • a hardware time slicer 70 is a switching means that can provide a 50% duty cycle by allocating half the time at the CPU 16 for processing data from the RAM 14 of the secure system 10, and the other half of the time for data from the RAM 54 of the non- secure system 50. With a 50% duty cycle, a 50 MHz processor would look like two 25 -MHz processors. Note that a commutator may alternatively be used.
  • FIG. 2 illustrates a dual-mode processor with a bus muxing circuit in accordance with the present invention.
  • the dual -mode processor 100 includes an internal data bus 105, an instruction queue 110, an instruction decoder and machine cycle encoder 115, and a timing and logic control function 120, which includes a program mode data bus, hold, interrupt, wait, write sync, control clocks and other control functions .
  • a data buffer 125 Also provided are a data buffer 125, a program model selector 130, and interrupt control 135, and a mode timing function 140.
  • the invention duplicates certain context registers so that the reset of the processor may be used in two independent modes of operation.
  • the program mode selector 130 allows switching between the modes .
  • a register bank multiplexer 150 includes two banks of registers.
  • a register bank for a first mode (mode "A") of the dual-mode processor 100 includes general purpose registers 160, an index register 162, a stack pointer/return address register 164, a program counter 166, a memory management register 168, a cache controller register 170, and an interrupt control register 172.
  • a register bank for a second mode (mode "B") of the dual-mode processor 100 includes general purpose registers 180, an index register 182, a stack pointer/return address register 184, a program counter 186, a memory management register 188, a cache controller register 190, and an interrupt control register 192.
  • FIG. 3 illustrates a dual-mode processor controlling external components in accordance with the present invention.
  • the figure shows an example of using mode A/B switching internally and externally to an IC, such as an Application-Specific Integrated Circuit (ASIC) on which the dual-mode processor is provided.
  • ASIC Application-Specific Integrated Circuit
  • the address space can be split using modes A/B.
  • each individual internal register is switched, whereas in the embodiment of FIG 2, a bus muxing circuit is used.
  • a circuit, shown generally at 300 includes the dual -mode processor 305 and a number of external components, including address latches A (350) and B (352) , and data latches A (354) and B (356) .
  • Processor mode A has example Port 1 (358) , . . . , Port N (362)
  • processor mode B has example Port 1 (360) , . . . , Port N (364)
  • Memory A (197) and memory B (198) are also provided.
  • the dual -mode processor 305 includes the instruction decode and machine cycle encoder 115, a mode A/B time switcher 310 (see detail of switch in FIG. 4), address generators 315, 317, instruction pipelines 320, 322, data buffers 325, 327, registers 160, 180, caches 170, 190, and Memory Management Units (MMUs) 168, 188.
  • the MMUs 168, 188 provide virtual - to-physical address translation.
  • Data and Instruction sections of memory may be defined.
  • control registers which allow the privileged user to selectively grant access to various memory blocks to an application running in User Mode.
  • a path 380 carries a Mode A/B selection signal that is provided by the mode A/B timer switcher 310 to indicate which mode is currently running.
  • the address generators 315, 317 provide memory addresses to the respective address latches 350, 352, which latch addresses for reading/writing operations at the memories 197, 198, respectively.
  • the data buffers 325, 327 send and receive data to and from the data latches 354, 365 and the ports 358, 360, . . . , 362, 364.
  • the present invention allows two or more disparate sets of programs to be run by a single microprocessor with complete independence and 100% isolation between them.
  • independent sets of programs "A" and "B", respectively, but the concept can easily be extended to additional independent sets of programs.
  • Programs from one set cannot access programs from the other set nor influence the execution of programs from the other set .
  • Each set of programs can be considered to have its own operating system with various application programs running concurrently. The operating system and application programs from one set cannot interfere with the other set.
  • Timing and Control Logic circuitry 120 more efficient use is made of the area of an IC chip, such as a Very Large Scale Integrated Circuit (VLSI) chip.
  • VLSI Very Large Scale Integrated Circuit
  • the invention allows two (or more) sets of programs that previously may have ran on separate processors to work together on a single processor with little or no changes to either of the original sets of programs. This results in a significant savings in code development time and expense. Moreover, even if both programs were combined to form one larger program with the combined functionality, and this program was executed out of the same type of processor, the new larger program would still need to be completely checked out and debugged.
  • the present invention avoids this problem by allowing the two smaller program to exist as before.
  • one set of programs can be considered "secure code" executing cryptographic routines that perform access control functions in a set-top box. This set of programs is not interfered with by programs executing in the other "non-secure" set of programs. In a set-top box, this allows the main microprocessors to be combined into one device.
  • Access control refers to algorithms running in a "secure” processor used to determine whether or not a decoder is authorized to view a particular program. The program may be given away, needing a subscription, or needing the user to make a purchase.
  • FIG. 4 illustrates a switch for selecting Mode A or B of the dual-mode processor in accordance with the present invention.
  • the switch 400 is a negative edge-triggered D-type flip-flop.
  • the flip-flop 405 receives a master clock signal via a line 410, and outputs either a Mode A select signal on a line 420, or a Mode B select signal on a line 430.
  • the master clock signal may be used for other purposes via line 440.
  • the processor requires a switch means for switching between the running of one set of programs to running the other set of programs .
  • Time can be a means for switching between sets of applications. The following are some options: 1. A fixed ratio of clock cycles. If set to 50 - 50 %, then every other clock cycle would be used for Set A (Mode A) , and every other cycle for Set B (Mode B) programs. If set to 80 - 20 %, then Set A would execute for four clock cycles, and then Set B for one cycle .
  • Dynamic clock or instruction allocation is possible while guaranteeing minimum clock or instruction execution. It is possible for a process that is executing a low priority routine to give up a certain number of clock or instruction cycles to the other process. When a high-priority process is invoked, e.g., an interrupt, then the pre-empted process can get back the clock or instruction cycles it gave up .
  • a high-priority process e.g., an interrupt
  • Both Set A and Set B circuits can be clocked at the same time.
  • the clock and instruction cycle guarantees are for gaining access to any shared resource.
  • the shared resources are: Instruction Decoder and Machine Cycle Encoder 115, and the Timing and Control Circuitry 120. They would follow a strict clock and instruction allocation scheme.
  • Memory Space can be completely separate between Set A and Set B programs .
  • a requirement can be placed on the CPU that the minimum timing can never be violated. This may necessitate additional duplication of hardware. Or, it may simply allow completion of a lengthy instruction, giving priority of the next instruction to the other set of programs.
  • a consequence of the invention is that any data dealing with the context or state of what and where the microprocessor system was executing in its memory must be duplicated for each independent set of programs executing in the microprocessor system.
  • the processor of the present invention has the following structures, which provide memory and, therefore, context to a system: a stack and a stack pointer 164, 184 or at least a register containing a return address, general purpose registers 160, 180, program counter 166, 186, CPU status register, MMU control registers 168, 188, Cache control registers 170, 190, various I/O registers, and interrupt controller.
  • a stack and a stack pointer 164, 184 or at least a register containing a return address general purpose registers 160, 180, program counter 166, 186, CPU status register, MMU control registers 168, 188, Cache control registers 170, 190, various I/O registers, and interrupt controller.
  • both the internal and external RAM and ROM of the system may be switched. This is conceptually similar to switching banks of memory.
  • the most significant bit of the address is a function of the mode of which set of programs was executing (A or B) , then, when high, the upper memory bank 197 can be used for set of program A, and when low, the lower memory bank 198 can be used for set of programs B .
  • the microprocessor system may or may not be required to duplicate this structure depending on whether or not this memory can be read out discretely by the CPU. Any cache control registers would need to be duplicated. More efficient use of the cache structure can be achieved by duplicating it because each set of programs will be operating in different memory spaces. A higher cache hit rate will be achieved with a duplicate cache since two sets of independent programs will be executing.
  • Each program set has its own boot program. The boot program can set the parameters which, for example, identify which blocks of code are low priority and which ones are high priority and might require the full allocated number of clock cycles.
  • the invention is useful in television set-top terminals (e.g., decoders) in eliminating the need for a separate processor to handle Access Control and Cryptography.
  • the processor that is used to run the decoders can run this function as well using the dual mode feature .
  • the Internet allows many small Java application routines or "applets" of unknown quality and origin to be downloaded from various Web sites.
  • the dual -processor system of the present invention e.g., as implemented in a Web- compatible set-top box, can provide protection while running this code. This may be a way to keep applications from interfering with each other.
  • the invention can be used to implement a type of firewall, e.g., to isolate data processing spaces.
  • the invention can be used to implement a fault tolerant computer, e.g., a personal computer system that does not fail (crash) when the primary processor crashes .
  • the present invention provides a dual or other multiple-mode processor.
  • the processor time-shares among different processes by allocating its time for executing instructions.
  • the processor includes secure and non-secure systems that store data, and retrieve data from, separate memories.
  • the processor may be used, e.g., to provide conditional access to television programming services .
  • the invention is suitable for use with virtually any type of network, including cable or satellite television broadband communication networks, local area networks (LANs) , metropolitan area networks (MANs) , wide area networks (WANs), internets, intranets, and the Internet, or combinations thereof.
  • LANs local area networks
  • MANs metropolitan area networks
  • WANs wide area networks
  • internets intranets
  • intranets and the Internet, or combinations thereof.

Abstract

A multiple-mode processing circuit, such as a dual-mode processor (5), operates in at least first and second modes according to a switch (10). When a mode is active, data transfer between the processor and a respective memory occurs. Thus, instructions from the memory can be executed at the processor, and the results can be stored in the respective memory. For example, first and second memories (14, 54) may be provided for the first and second modes (10, 50), respectively. The memories are separate, and no data transfer can occur between the memories directly or via the processor. The first mode (10) may be a secure mode for secure processing operations, such as providing conditional access for television programming services at a set-top subscriber terminal. The second mode (50) may be a non-secure mode, such as for providing any other application at the terminal, e.g., program guide, shop at home service, etc. In one embodiment, a data bus is provided for time-multiplexed transfer of data between the processor and the respective memories. In another embodiment, switching of individual internal registers and external elements such as address and data latches, is provided.

Description

DUAL-MODE PROCESSOR
BACKGROUND OF THE INVENTION
The present invention relates to a circuit having a multi-mode processor, such as a dual-mode processor. The processor is particularly suitable for providing secure access control in a digital terminal for a subscriber television network.
In the present marketplace, economic pressures exist to add functionality and reduce the cost of consumer electronic products. This is particularly true for products such as the set- top terminal, also referred to as Integrated Receiver-Decoder (IRD) or subscriber terminal, which receive and decode television signals for presentation by a television. The signals can be delivered over a satellite, through a cable plant, or by means of terrestrial broadcast, for example.
One driver of the overall cost is the number of components that make up the product. One way to reduce the number of components is to combine functions that were normally performed by two or more Integrated Circuits (ICs) into one IC. This applies to dies which have embedded processors. For example, dies having both a memory and a Central Processing Unit (CPU) are now available.
Moreover, another way to increase functionality is through more efficient utilization of the circuit elements. The ever-increasing clock speeds of microprocessor implementations allowing more and more processing to be achieved in the same amount of time by the same number of components. This allows products to have more features and be more responsive to the consumer. Increased clock speeds also allow a single processor to handle multiple applications.
By combining applications that run in multiple processors so that they may run in a single processor, the functionality of an individual circuit is increased, and component counts are lowered. However, combining applications is not a trivial task, especially with embedded processor applications, because the operating system, code structure, interrupt timing, and process interdependencies are often all changed when applications are merged. The embedded code with the combined functionality usually must be completely redesigned.
In personal computers, sophisticated operating systems like Windows (tm) can have multiple applications, usually non-interfering, that run simultaneously. But, the personal computer environment has a great deal of standardization both in terms of the hardware and software. Programmers can write applications expecting to use operating system services routines and common hardware. Embedded applications, however, typically do not benefit from either a standard operating system or for that matter a common hardware platform. But, even in the well-developed operating system environment of the personal computer, an application can fail, thus causing the entire system to stall or "hang", which necessitates the rebooting or resetting of the entire system. It is also possible for a poorly written program or a malicious program like a "virus" to overwrite another application in memory. These virus programs can typically circumvent any memory management partitioning available to the operating system.
Operating systems have developed protection mechanisms to prevent programs which operate in a user application mode from overwriting privileged system information. These systems often use a logical circuit known as a Memory Management Unit (MMU) to prevent the host program executing in memory from being overwritten by a rogue application running in user mode. In such systems, there is no protection between applications executing simultaneously. Also, global space is shared by all tasks to avoid unnecessary replication of system service routines and to facilitate shared data and interrupt handling. Also, structures such as the stack may be accessible no matter what mode a program is running in. Application code might have access to some of the low-level general purpose and dedicated registers that the host program is using. And, such application programs may have access to stored system files .
Accordingly, it would be desirable to provide a way to combine disparate embedded applications with greater ease and without having to do a "re-design" of the code .
It would also be advantageous to provide a more secure scheme to allow independent sets of programs to execute on a microprocessor system without interference from each other. The system should provide a dual -mode processor with secure and non- secure processing modes.
The system should be implementable in a subscriber terminal in a television network.
The present invention provides a system having the above and other advantages .
SUMMARY OF THE INVENTION
A multiple-mode processing circuit, such as a dual -mode processor, operates in at least first and second modes according to a switch. When a mode is active, data transfer between the processor and a respective memory occurs. Thus, instructions from the memory can be executed at the processor, and the results can be stored in the respective memory. For example, first and second memories may be provided for the first and second modes, respectively. The memories are separate, and no data transfer can occur between the memories directly or via the processor.
The first mode may be a secure mode for secure processing operations, such as providing conditional access for television programming services at a set-top subscriber terminal . The second mode may be a non- secure mode, such as for providing any other application at the terminal, e.g., program guide, shop at home service, etc. In one embodiment, a data bus is provided for time-multiplexed transfer of data between the processor and the respective memories. In another embodiment, switching of individual internal registers and external elements such as address and data latches, is provided. The processor may be switched between modes based on different schemes, including a fixed ratio of clock cycles, a fixed ratio of instructions executed at the processor, and respective priorities of the modes. Moreover, the first and second modes may have different respective operating systems.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an overview of a dual-mode processing circuit in accordance with the present invention. FIG. 2 illustrates a dual-mode processor with a bus muxing circuit in accordance with the present invention.
FIG. 3 illustrates a dual-mode processor with switching for individually controlling external components in accordance with the present invention.
FIG. 4 illustrates a switch for selecting first and second modes of a dual-mode processor in accordance with the present invention.
DETAILED DESCRIPTION OF THE INVENTION
The present invention relates to a multiple-mode processor, such as a dual-mode processor.
FIG. 1 illustrates an overview of a dual-mode processor in accordance with the present invention.
In an example embodiment, the dual -mode processor 5 includes a secure system portion 10 and a non-secure system portion 50. The secure system 10 includes registers 12, a Random Access Memory (RAM) 14, a CPU 16, a Read-Only Memory (ROM) 18 and a program control function 20. The RAM 14 may store secure code and cryptographic keys, for example, for providing conditional access at a set-top terminal. The non- secure system 50 includes a register 52 and a RAM 54. The processor 5 provides two functions (e.g., secure and non- secure functions) with absolute isolation between the functions. That is, each system 10, 50 has its own RAM 14, 54, so not a single bit of the secure system 10 is passed (e.g., leaks) to the RAM 54, and not a single bit of the non-secure system 50 is passed to the RAM 14. Thus, the data in the RAM 14 of the secure system 10 remains secure since data cannot be retrieved from it, or provided to it, by the non- secure system 50, either directly or via the CPU 16. A hardware time slicer 70 is a switching means that can provide a 50% duty cycle by allocating half the time at the CPU 16 for processing data from the RAM 14 of the secure system 10, and the other half of the time for data from the RAM 54 of the non- secure system 50. With a 50% duty cycle, a 50 MHz processor would look like two 25 -MHz processors. Note that a commutator may alternatively be used.
Moreover, each system 10, 50 can have a different operating system. FIG. 2 illustrates a dual-mode processor with a bus muxing circuit in accordance with the present invention.
Like-numbered elements correspond to one another in the figures. The dual -mode processor 100 includes an internal data bus 105, an instruction queue 110, an instruction decoder and machine cycle encoder 115, and a timing and logic control function 120, which includes a program mode data bus, hold, interrupt, wait, write sync, control clocks and other control functions .
Also provided are a data buffer 125, a program model selector 130, and interrupt control 135, and a mode timing function 140. As shown, the invention duplicates certain context registers so that the reset of the processor may be used in two independent modes of operation. The program mode selector 130 allows switching between the modes .
A register bank multiplexer 150 includes two banks of registers. A register bank for a first mode (mode "A") of the dual-mode processor 100 includes general purpose registers 160, an index register 162, a stack pointer/return address register 164, a program counter 166, a memory management register 168, a cache controller register 170, and an interrupt control register 172. Similarly, a register bank for a second mode (mode "B") of the dual-mode processor 100 includes general purpose registers 180, an index register 182, a stack pointer/return address register 184, a program counter 186, a memory management register 188, a cache controller register 190, and an interrupt control register 192.
Also provided are an address buffer 194 and a memory bank multiplexer 195, with a memory bank A 197 for use in the first mode, and a memory bank B 198 for use in the second mode.
In this bus muxing embodiment, data is time multiplexed for transport on the bus 105 during the respective modes. FIG. 3 illustrates a dual-mode processor controlling external components in accordance with the present invention. The figure shows an example of using mode A/B switching internally and externally to an IC, such as an Application-Specific Integrated Circuit (ASIC) on which the dual-mode processor is provided. The address space can be split using modes A/B. Here, each individual internal register is switched, whereas in the embodiment of FIG 2, a bus muxing circuit is used. A circuit, shown generally at 300, includes the dual -mode processor 305 and a number of external components, including address latches A (350) and B (352) , and data latches A (354) and B (356) . Processor mode A has example Port 1 (358) , . . . , Port N (362) , and processor mode B has example Port 1 (360) , . . . , Port N (364) . Memory A (197) and memory B (198) are also provided.
The dual -mode processor 305 includes the instruction decode and machine cycle encoder 115, a mode A/B time switcher 310 (see detail of switch in FIG. 4), address generators 315, 317, instruction pipelines 320, 322, data buffers 325, 327, registers 160, 180, caches 170, 190, and Memory Management Units (MMUs) 168, 188. The MMUs 168, 188 provide virtual - to-physical address translation.
Data and Instruction sections of memory may be defined. In addition, there may be control registers which allow the privileged user to selectively grant access to various memory blocks to an application running in User Mode.
A path 380 carries a Mode A/B selection signal that is provided by the mode A/B timer switcher 310 to indicate which mode is currently running.
The address generators 315, 317 provide memory addresses to the respective address latches 350, 352, which latch addresses for reading/writing operations at the memories 197, 198, respectively.
The data buffers 325, 327 send and receive data to and from the data latches 354, 365 and the ports 358, 360, . . . , 362, 364.
The present invention allows two or more disparate sets of programs to be run by a single microprocessor with complete independence and 100% isolation between them. For this discussion, we define independent sets of programs "A" and "B", respectively, but the concept can easily be extended to additional independent sets of programs. Programs from one set cannot access programs from the other set nor influence the execution of programs from the other set . Each set of programs can be considered to have its own operating system with various application programs running concurrently. The operating system and application programs from one set cannot interfere with the other set.
Moreover, it is not possible for either the operating system program or application program in one set, even if written with malicious intent, to read out the other programs or to learn any details of the other programs running in the other set .
By having sets of programs A and B share functional hardware such as the Instruction Decoder and Machine Cycle Encoder circuitry 115, along with the
Timing and Control Logic circuitry 120, more efficient use is made of the area of an IC chip, such as a Very Large Scale Integrated Circuit (VLSI) chip. In particular, by eliminating an entire microprocessor from a system by combining operations of set A programs working with set B programs, significant cost savings can be realized by reducing the overall part count.
The invention allows two (or more) sets of programs that previously may have ran on separate processors to work together on a single processor with little or no changes to either of the original sets of programs. This results in a significant savings in code development time and expense. Moreover, even if both programs were combined to form one larger program with the combined functionality, and this program was executed out of the same type of processor, the new larger program would still need to be completely checked out and debugged. The present invention avoids this problem by allowing the two smaller program to exist as before. In one possible embodiment, one set of programs can be considered "secure code" executing cryptographic routines that perform access control functions in a set-top box. This set of programs is not interfered with by programs executing in the other "non-secure" set of programs. In a set-top box, this allows the main microprocessors to be combined into one device.
"Access control" refers to algorithms running in a "secure" processor used to determine whether or not a decoder is authorized to view a particular program. The program may be given away, needing a subscription, or needing the user to make a purchase.
FIG. 4 illustrates a switch for selecting Mode A or B of the dual-mode processor in accordance with the present invention. The switch 400 is a negative edge-triggered D-type flip-flop. The flip-flop 405 receives a master clock signal via a line 410, and outputs either a Mode A select signal on a line 420, or a Mode B select signal on a line 430. The master clock signal may be used for other purposes via line 440.
The processor requires a switch means for switching between the running of one set of programs to running the other set of programs . Time can be a means for switching between sets of applications. The following are some options: 1. A fixed ratio of clock cycles. If set to 50 - 50 %, then every other clock cycle would be used for Set A (Mode A) , and every other cycle for Set B (Mode B) programs. If set to 80 - 20 %, then Set A would execute for four clock cycles, and then Set B for one cycle .
2. A Fixed number of clock cycles in a row. If set to 50 - 50%, then Set A would get ten clock cycles in a row, and Set B would get ten clock cycles in a row. If set to 80 - 20%, then Set A would get sixteen clock cycles in a row, and Set B would get four clock cycles in a row.
3. A fixed ratio of instructions executed. If set to 50 - 50%, then Set A and Set B get every other instruction executed. If set to 80 - 20%, then Set A would get four instructions, and then Set B would get one instruction.
4. A fixed number of instructions in a row. If set to 50 - 50%, then Set A would execute ten instructions in a row, and Set B would execute ten instructions in a row. If set to 80 - 20%, Set A would execute sixteen instructions in a row, and Set B would execute four instructions in a row.
5. Dynamic clock or instruction allocation is possible while guaranteeing minimum clock or instruction execution. It is possible for a process that is executing a low priority routine to give up a certain number of clock or instruction cycles to the other process. When a high-priority process is invoked, e.g., an interrupt, then the pre-empted process can get back the clock or instruction cycles it gave up .
The following optional implementations are also envisioned : 1. Both Set A and Set B circuits can be clocked at the same time. The clock and instruction cycle guarantees are for gaining access to any shared resource. In the scenario described above, the shared resources are: Instruction Decoder and Machine Cycle Encoder 115, and the Timing and Control Circuitry 120. They would follow a strict clock and instruction allocation scheme.
2. Memory Space can be completely separate between Set A and Set B programs . 3. A requirement can be placed on the CPU that the minimum timing can never be violated. This may necessitate additional duplication of hardware. Or, it may simply allow completion of a lengthy instruction, giving priority of the next instruction to the other set of programs.
A consequence of the invention is that any data dealing with the context or state of what and where the microprocessor system was executing in its memory must be duplicated for each independent set of programs executing in the microprocessor system.
The processor of the present invention has the following structures, which provide memory and, therefore, context to a system: a stack and a stack pointer 164, 184 or at least a register containing a return address, general purpose registers 160, 180, program counter 166, 186, CPU status register, MMU control registers 168, 188, Cache control registers 170, 190, various I/O registers, and interrupt controller. In addition, both the internal and external RAM and ROM of the system may be switched. This is conceptually similar to switching banks of memory. If the most significant bit of the address is a function of the mode of which set of programs was executing (A or B) , then, when high, the upper memory bank 197 can be used for set of program A, and when low, the lower memory bank 198 can be used for set of programs B .
If the microprocessor system has internal cache, then it may or may not be required to duplicate this structure depending on whether or not this memory can be read out discretely by the CPU. Any cache control registers would need to be duplicated. More efficient use of the cache structure can be achieved by duplicating it because each set of programs will be operating in different memory spaces. A higher cache hit rate will be achieved with a duplicate cache since two sets of independent programs will be executing. Each program set has its own boot program. The boot program can set the parameters which, for example, identify which blocks of code are low priority and which ones are high priority and might require the full allocated number of clock cycles.
The invention is useful in television set-top terminals (e.g., decoders) in eliminating the need for a separate processor to handle Access Control and Cryptography. The processor that is used to run the decoders can run this function as well using the dual mode feature .
In optional uses of the invention, it is possible to try out some unknown code. For example, the Internet allows many small Java application routines or "applets" of unknown quality and origin to be downloaded from various Web sites. The dual -processor system of the present invention (e.g., as implemented in a Web- compatible set-top box, can provide protection while running this code. This may be a way to keep applications from interfering with each other.
In a further option, the invention can be used to implement a type of firewall, e.g., to isolate data processing spaces. In a further option, the invention can be used to implement a fault tolerant computer, e.g., a personal computer system that does not fail (crash) when the primary processor crashes .
Accordingly, it can be seen that the present invention provides a dual or other multiple-mode processor. The processor time-shares among different processes by allocating its time for executing instructions. In a particular embodiment, the processor includes secure and non-secure systems that store data, and retrieve data from, separate memories. The processor may be used, e.g., to provide conditional access to television programming services .
Although the invention has been described in connection with various specific embodiments, those skilled in the art will appreciate that numerous adaptations and modifications may be made thereto without departing from the spirit and scope of the invention as set forth in the claims .
For example, the invention is suitable for use with virtually any type of network, including cable or satellite television broadband communication networks, local area networks (LANs) , metropolitan area networks (MANs) , wide area networks (WANs), internets, intranets, and the Internet, or combinations thereof.
Additionally, known computer hardware, firmware and/or software techniques may be used to implement the invention.

Claims

What is claimed is:
1. A multiple-mode processing circuit, comprising : a processor operating in at least first and second modes ; timing means for switching the processor between the at least first and second modes; a first memory for providing data to, and receiving data from, the processor while in the first mode; a second memory separate from said first memory for providing data to, and receiving data from, the processor while in the second mode; and means responsive to said timing means for managing a transfer of data between the processor and the first memory, and between the processor and the second memory.
2. The circuit of claim 1, wherein: the first mode is a secure mode for secure processing operations, and the second mode is a non- secure mode for non-secure processing operations; and said managing means prevents the transfer of data from the second memory to the first memory, or from the first memory to the second memory.
3. The circuit of claim 2, wherein: the secure processing operations comprise providing conditional access for television programming services .
4. A television set-top terminal that comprises the circuit of claim 3.
5. The circuit of claim 1, wherein: said managing means comprise a data bus for time-multiplexed transfer of data between the processor and the first memory, and between the processor and the second memory.
6. The circuit of claim 5, wherein: the processor and data bus are provided in an Integrated Circuit (IC) .
7. The circuit of claim 1, wherein: said managing means comprise first and second registers that are activated in response to said switching to transfer data between the processor and the first memory, and between the processor and the second memory.
8. The circuit if claim 7, wherein: said processor and first and second registers are provided in an Integrated Circuit (IC) .
9. The circuit of claim 8, wherein: said first and second memories are external to said IC; and said managing means comprises first and second latches that are external to said IC, and that are activated in response to said switching to transfer data between the processor and the first memory, and between the processor and the second memory.
10. The circuit of claim 1, wherein: said timing means switches the processor between the at least first and second modes according to a fixed ratio of clock cycles.
11. The circuit of claim 1, wherein: said timing means switches the processor between the at least first and second modes according to a fixed ratio of instructions executed at the processor.
12. The circuit of claim 1, wherein: said timing means switches the processor between the at least first and second modes according to respective priorities of the at least first and second modes.
13. The circuit of claim 1, wherein: the first and second modes have different respective operating systems.
14. The circuit of claim 1, wherein: first and second applications are responsive to the first and second memories, respectively, for executing in said first and second modes, respectively.
15. The circuit of claim 14, wherein: said first and second applications are disparate.
16. The circuit of claim 1, wherein: first and second sets of programs that are independent from one another are responsive to the first and second memories, respectively, for executing in said first and second modes, respectively.
17. The circuit of claim 1, wherein: said managing means prevent any data from being transferred between said first and second memories.
PCT/US2000/034458 1999-12-23 2000-12-19 Dual-mode processor WO2001046800A2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
AU22786/01A AU2278601A (en) 1999-12-23 2000-12-19 Dual-mode processor
KR1020027007955A KR20020091061A (en) 1999-12-23 2000-12-19 Dual-mode processor
JP2001547248A JP2003518287A (en) 1999-12-23 2000-12-19 Dual mode processor
MXPA02006214A MXPA02006214A (en) 1999-12-23 2000-12-19 Dualmode processor.
CA002395645A CA2395645A1 (en) 1999-12-23 2000-12-19 Dual-mode processor
EP00986569A EP1240583A2 (en) 1999-12-23 2000-12-19 Dual-mode processor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US47175499A 1999-12-23 1999-12-23
US09/471,754 1999-12-23

Publications (2)

Publication Number Publication Date
WO2001046800A2 true WO2001046800A2 (en) 2001-06-28
WO2001046800A3 WO2001046800A3 (en) 2002-07-25

Family

ID=23872866

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/034458 WO2001046800A2 (en) 1999-12-23 2000-12-19 Dual-mode processor

Country Status (9)

Country Link
EP (1) EP1240583A2 (en)
JP (1) JP2003518287A (en)
KR (1) KR20020091061A (en)
CN (1) CN1425157A (en)
AU (1) AU2278601A (en)
CA (1) CA2395645A1 (en)
MX (1) MXPA02006214A (en)
TW (1) TW541466B (en)
WO (1) WO2001046800A2 (en)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1331539A2 (en) * 2002-01-16 2003-07-30 Texas Instruments France Secure mode for processors supporting MMU and interrupts
WO2004046925A1 (en) * 2002-11-18 2004-06-03 Arm Limited Security mode switching via an exception vector
WO2004046738A2 (en) * 2002-11-18 2004-06-03 Arm Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
WO2004046924A1 (en) * 2002-11-18 2004-06-03 Arm Limited Processor switching between secure and non-secure modes
WO2004072787A2 (en) 2003-02-07 2004-08-26 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
FR2872933A1 (en) * 2004-07-06 2006-01-13 Trusted Logic Sa TIME SHARING METHOD OF A PROCESSOR
US7072229B2 (en) 2003-03-20 2006-07-04 Arm Limited Memory system having fast and slow data reading mechanisms
EP1688816A1 (en) * 2003-11-28 2006-08-09 Matsushita Electric Industrial Co., Ltd. Data processing device
FR2884628A1 (en) * 2005-04-18 2006-10-20 St Microelectronics Sa Interrupt service routine processing method for e.g. set-top box, involves starting counter while processor is operated in non-secured mode and returning processor to secured mode to pursue process execution when counter attains end value
WO2006120367A1 (en) * 2005-05-11 2006-11-16 Arm Limited A data processing apparatus and method employing multiple register sets
US7162661B2 (en) 2003-03-20 2007-01-09 Arm Limited Systematic and random error detection and recovery within processing stages of an integrated circuit
CN100350388C (en) * 2002-11-18 2007-11-21 Arm有限公司 Virtual to physical memory address mapping within a data processing system having a secure domain and a non-secure domain
US7320091B2 (en) 2003-03-20 2008-01-15 Arm Limited Error recovery within processing stages of an integrated circuit
WO2008010653A1 (en) * 2006-07-19 2008-01-24 K-Sum C & F Co., Ltd. Computer system
US7325083B2 (en) 2002-11-18 2008-01-29 Arm Limited Delivering data processing requests to a suspended operating system
US7370210B2 (en) 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
US7448050B2 (en) 2002-11-18 2008-11-04 Arm Limited Handling multiple interrupts in a data processing system utilising multiple operating systems
US7539853B2 (en) 2002-11-18 2009-05-26 Arm Limited Handling interrupts in data processing of data in which only a portion of a function has been processed
US7661104B2 (en) 2002-11-18 2010-02-09 Arm Limited Task following between multiple operating systems
WO2010135485A1 (en) * 2009-05-22 2010-11-25 Raytheon Company Multi-level security computing system
CN101533447B (en) * 2008-05-24 2010-12-01 威盛电子股份有限公司 Microprocessor device for providing secure execution environment and method for executing secure code thereof
US8060814B2 (en) 2003-03-20 2011-11-15 Arm Limited Error recovery within processing stages of an integrated circuit
US9158574B2 (en) 2002-11-18 2015-10-13 Arm Limited Handling interrupts in data processing
WO2017060740A1 (en) * 2015-10-09 2017-04-13 Secure Thingz Limited Data processing device
US9646142B2 (en) 2003-02-07 2017-05-09 Acer Cloud Technology Inc. Ensuring authenticity in a closed content distribution system
WO2022271216A1 (en) * 2021-06-24 2022-12-29 Intel Corporation Accelerating multiple post-quantum cryptograhy key encapsulation mechanisms

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650470B2 (en) 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
KR100677327B1 (en) * 2004-06-16 2007-02-02 엘지전자 주식회사 Mobile communication terminal with dual operating system
KR100710263B1 (en) * 2005-01-27 2007-04-20 엘지전자 주식회사 Method of Multi-Tasking Using Multi-Modem Mobile Phone
CN101064886B (en) * 2006-04-28 2012-12-12 朗迅科技公司 Wireless equipment and method for transmitting data through wireless equipment
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
WO2009031573A1 (en) * 2007-09-07 2009-03-12 Nec Corporation Information processing apparatus, processor status transition method, processor status transition control apparatus, and processor
US8332660B2 (en) * 2008-01-02 2012-12-11 Arm Limited Providing secure services to a non-secure application
CN101707664B (en) * 2009-10-30 2013-03-06 深圳创维数字技术股份有限公司 Method for safe operation of set top box
CN107944298A (en) * 2012-08-21 2018-04-20 联想(北京)有限公司 A kind of electronic equipment and the mode switching method applied to electronic equipment
CN103559460B (en) * 2013-11-06 2016-06-08 深圳国微技术有限公司 A kind of condition receiving card CAM and data processing method
CN104268027B (en) * 2014-09-22 2017-09-29 北京经纬恒润科技有限公司 The fault handling method and device of embedded real-time operating system
CN105701420B (en) * 2016-02-23 2019-05-14 深圳市金立通信设备有限公司 A kind of management method and terminal of user data
JP7280600B2 (en) 2019-04-23 2023-05-24 株式会社エルイーテック processor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867579A (en) * 1994-10-27 1999-02-02 Mitsubishi Corporation Apparatus for data copyright management system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867579A (en) * 1994-10-27 1999-02-02 Mitsubishi Corporation Apparatus for data copyright management system

Cited By (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1331539A2 (en) * 2002-01-16 2003-07-30 Texas Instruments France Secure mode for processors supporting MMU and interrupts
EP1331539A3 (en) * 2002-01-16 2008-10-22 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US9158574B2 (en) 2002-11-18 2015-10-13 Arm Limited Handling interrupts in data processing
CN100350388C (en) * 2002-11-18 2007-11-21 Arm有限公司 Virtual to physical memory address mapping within a data processing system having a secure domain and a non-secure domain
US7124274B2 (en) 2002-11-18 2006-10-17 Arm Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
KR101099463B1 (en) * 2002-11-18 2011-12-28 에이알엠 리미티드 Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
GB2402785A (en) * 2002-11-18 2004-12-15 Advanced Risc Mach Ltd Processor switching between secure and non-secure modes
GB2409745A (en) * 2002-11-18 2005-07-06 Advanced Risc Mach Ltd Virtuel to physical memory address mapping within a system having a secure domain and a non-secure domain
GB2402785B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Processor switching between secure and non-secure modes
GB2409745B (en) * 2002-11-18 2006-01-11 Advanced Risc Mach Ltd Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
US7370210B2 (en) 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
US7325083B2 (en) 2002-11-18 2008-01-29 Arm Limited Delivering data processing requests to a suspended operating system
US7448050B2 (en) 2002-11-18 2008-11-04 Arm Limited Handling multiple interrupts in a data processing system utilising multiple operating systems
US7539853B2 (en) 2002-11-18 2009-05-26 Arm Limited Handling interrupts in data processing of data in which only a portion of a function has been processed
WO2004046925A1 (en) * 2002-11-18 2004-06-03 Arm Limited Security mode switching via an exception vector
US7661104B2 (en) 2002-11-18 2010-02-09 Arm Limited Task following between multiple operating systems
WO2004046738A3 (en) * 2002-11-18 2004-10-21 Advanced Risc Mach Ltd Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
US8086829B2 (en) 2002-11-18 2011-12-27 Arm Limited Method and apparatus for processing data related to handling interrupts in data processing
WO2004046738A2 (en) * 2002-11-18 2004-06-03 Arm Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
US7849310B2 (en) 2002-11-18 2010-12-07 Arm Limited Switching between secure and non-secure processing modes
KR100955284B1 (en) * 2002-11-18 2010-04-30 에이알엠 리미티드 Data processing apparatus for processor switching between secure and non-secure modes, data processing method and computer-readable storage medium
WO2004046924A1 (en) * 2002-11-18 2004-06-03 Arm Limited Processor switching between secure and non-secure modes
US7305712B2 (en) 2002-11-18 2007-12-04 Arm Limited Security mode switching via an exception vector
WO2004072787A2 (en) 2003-02-07 2004-08-26 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US9646142B2 (en) 2003-02-07 2017-05-09 Acer Cloud Technology Inc. Ensuring authenticity in a closed content distribution system
US9985781B2 (en) 2003-02-07 2018-05-29 Acer Cloud Technology, Inc. Ensuring authenticity in a closed content distribution system
EP1625463B1 (en) * 2003-02-07 2018-12-19 Acer Cloud Technology Inc Secure and backward-compatible processor and secure software execution thereon
US10263774B2 (en) 2003-02-07 2019-04-16 Acer Cloud Technology, Inc. Ensuring authenticity in a closed content distribution system
US8060814B2 (en) 2003-03-20 2011-11-15 Arm Limited Error recovery within processing stages of an integrated circuit
US7337356B2 (en) 2003-03-20 2008-02-26 Arm Limited Systematic and random error detection and recovery within processing stages of an integrated circuit
US7320091B2 (en) 2003-03-20 2008-01-15 Arm Limited Error recovery within processing stages of an integrated circuit
US7650551B2 (en) 2003-03-20 2010-01-19 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US7310755B2 (en) 2003-03-20 2007-12-18 Arm Limited Data retention latch provision within integrated circuits
US7278080B2 (en) 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US7162661B2 (en) 2003-03-20 2007-01-09 Arm Limited Systematic and random error detection and recovery within processing stages of an integrated circuit
US7072229B2 (en) 2003-03-20 2006-07-04 Arm Limited Memory system having fast and slow data reading mechanisms
EP1688816A1 (en) * 2003-11-28 2006-08-09 Matsushita Electric Industrial Co., Ltd. Data processing device
EP1688816A4 (en) * 2003-11-28 2012-04-25 Panasonic Corp Data processing device
FR2872933A1 (en) * 2004-07-06 2006-01-13 Trusted Logic Sa TIME SHARING METHOD OF A PROCESSOR
WO2006013279A2 (en) * 2004-07-06 2006-02-09 Trusted Logic Processor time-sharing method
WO2006013279A3 (en) * 2004-07-06 2006-05-04 Trusted Logic Processor time-sharing method
FR2884628A1 (en) * 2005-04-18 2006-10-20 St Microelectronics Sa Interrupt service routine processing method for e.g. set-top box, involves starting counter while processor is operated in non-secured mode and returning processor to secured mode to pursue process execution when counter attains end value
EP1715438A1 (en) * 2005-04-18 2006-10-25 Stmicroelectronics Sa Procedure for processing unsecured interrupts by a processor operating in secure mode, associated processor
WO2006120367A1 (en) * 2005-05-11 2006-11-16 Arm Limited A data processing apparatus and method employing multiple register sets
US8041930B2 (en) 2005-05-11 2011-10-18 Arm Limited Data processing apparatus and method for controlling thread access of register sets when selectively operating in secure and non-secure domains
WO2008010653A1 (en) * 2006-07-19 2008-01-24 K-Sum C & F Co., Ltd. Computer system
CN101533447B (en) * 2008-05-24 2010-12-01 威盛电子股份有限公司 Microprocessor device for providing secure execution environment and method for executing secure code thereof
US8756391B2 (en) 2009-05-22 2014-06-17 Raytheon Company Multi-level security computing system
WO2010135485A1 (en) * 2009-05-22 2010-11-25 Raytheon Company Multi-level security computing system
WO2017060740A1 (en) * 2015-10-09 2017-04-13 Secure Thingz Limited Data processing device
EP3360070B1 (en) * 2015-10-09 2020-03-04 Secure Thingz Limited Data processing device
US10650168B2 (en) 2015-10-09 2020-05-12 Secure Thingz Limited Data processing device
WO2022271216A1 (en) * 2021-06-24 2022-12-29 Intel Corporation Accelerating multiple post-quantum cryptograhy key encapsulation mechanisms
US11569994B2 (en) 2021-06-24 2023-01-31 Intel Corporation Accelerating multiple post-quantum cryptograhy key encapsulation mechanisms

Also Published As

Publication number Publication date
WO2001046800A3 (en) 2002-07-25
AU2278601A (en) 2001-07-03
TW541466B (en) 2003-07-11
MXPA02006214A (en) 2003-01-28
CN1425157A (en) 2003-06-18
EP1240583A2 (en) 2002-09-18
JP2003518287A (en) 2003-06-03
KR20020091061A (en) 2002-12-05
CA2395645A1 (en) 2001-06-28

Similar Documents

Publication Publication Date Title
EP1240583A2 (en) Dual-mode processor
US6587937B1 (en) Multiple virtual machine system with efficient cache memory design
US7603540B2 (en) Using field programmable gate array (FPGA) technology with a microprocessor for reconfigurable, instruction level hardware acceleration
US9952989B2 (en) Aggregation of interrupts using event queues
US6314515B1 (en) Resetting multiple processors in a computer system
US6356960B1 (en) Microprocessor having an on-chip CPU fetching a debugging routine from a memory in an external debugging device in response to a control signal received through a debugging port
US4779187A (en) Method and operating system for executing programs in a multi-mode microprocessor
US9588771B2 (en) Instruction set architecture-based inter-sequencer communications with a heterogeneous resource
US7797496B2 (en) Multiprocessor system having a shared tightly coupled memory and method for communication between a plurality of processors
US8850098B2 (en) Direct memory access (DMA) address translation between peer input/output (I/O) devices
US8332614B2 (en) System, method and computer program product for providing a programmable quiesce filtering register
US20110161644A1 (en) Information processor
US9396142B2 (en) Virtualizing input/output interrupts
JP2009296195A (en) Encryption device using fpga with multiple cpu cores
GB2404266A (en) Simultaneous multi-thread processing
US6401191B1 (en) System and method for remotely executing code
JPH05257808A (en) Microprocessor and its operation converting method
JP5289688B2 (en) Processor system and operating system program processing method for operating processor system
US6697931B1 (en) System and method for communicating information to and from a single chip computer system through an external communication port with translation circuitry
US20010007114A1 (en) Control apparatus and control method
Attanasio Virtual Control Storage-curity measures in VM/370
Sukhwani et al. Extensible on-chip peripherals
EP1673693B1 (en) Operating systems
EP0840222A1 (en) Microcomputer with debugging system
GB2454817A (en) Interrupt handling in a logically partitioned system by changing the interrupt status values in an array for only one partition at a time.

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 1020027007955

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: PA/a/2002/006214

Country of ref document: MX

Ref document number: 2395645

Country of ref document: CA

ENP Entry into the national phase

Ref document number: 2001 547248

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2000986569

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 008186111

Country of ref document: CN

AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

WWP Wipo information: published in national office

Ref document number: 2000986569

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 1020027007955

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 2000986569

Country of ref document: EP