CA2395645A1 - Dual-mode processor - Google Patents

Dual-mode processor Download PDF

Info

Publication number
CA2395645A1
CA2395645A1 CA002395645A CA2395645A CA2395645A1 CA 2395645 A1 CA2395645 A1 CA 2395645A1 CA 002395645 A CA002395645 A CA 002395645A CA 2395645 A CA2395645 A CA 2395645A CA 2395645 A1 CA2395645 A1 CA 2395645A1
Authority
CA
Canada
Prior art keywords
processor
memory
mode
circuit
data
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.)
Abandoned
Application number
CA002395645A
Other languages
French (fr)
Inventor
Brant Candelore
Eric J. Sprunk
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.)
Arris Technology Inc
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CA2395645A1 publication Critical patent/CA2395645A1/en
Abandoned legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

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 5 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 50o 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 50a 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 5 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 10 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 1000 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 0, 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 0, 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 - 500, 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 - 200, 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 - 50a, then Set A and Set B get every other instruction executed. If set to 80 - 200, 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 - 500, then Set A would execute ten instructions in a row, and Set B would execute ten instructions in a row. If set to 80 - 200, 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:
5 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 10 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.
15 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/0 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), internees, intranets, and the Internet, or combinations thereof.
Additionally, known computer hardware, firmware and/or software techniques may be used to implement the invention.

Claims (17)

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.
CA002395645A 1999-12-23 2000-12-19 Dual-mode processor Abandoned CA2395645A1 (en)

Applications Claiming Priority (3)

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

Publications (1)

Publication Number Publication Date
CA2395645A1 true CA2395645A1 (en) 2001-06-28

Family

ID=23872866

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002395645A Abandoned CA2395645A1 (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)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
AU2003278342A1 (en) * 2002-11-18 2004-06-15 Arm Limited Security mode switching via an exception vector
GB2396712B (en) 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Handling multiple interrupts in a data processing system utilising multiple operating systems
US9158574B2 (en) 2002-11-18 2015-10-13 Arm Limited Handling interrupts in data processing
GB0226906D0 (en) * 2002-11-18 2002-12-24 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
GB2396451B (en) 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system
GB0226874D0 (en) 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
AU2003276399A1 (en) * 2002-11-18 2004-06-15 Arm Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
JP4423206B2 (en) * 2002-11-18 2010-03-03 エイアールエム リミテッド Processor that switches between safe mode and non-safe mode
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
US7322042B2 (en) 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US20100017627A1 (en) 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
JP4317212B2 (en) 2003-03-20 2009-08-19 アーム・リミテッド Systematic and stochastic error detection and recovery in integrated circuit processing stages.
KR100955285B1 (en) 2003-03-20 2010-04-30 에이알엠 리미티드 Memory system having fast and slow data reading mechanisms
US8650470B2 (en) 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
US8185812B2 (en) 2003-03-20 2012-05-22 Arm Limited Single event upset error detection within an integrated circuit
US7278080B2 (en) 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
KR101037006B1 (en) * 2003-11-28 2011-05-25 파나소닉 주식회사 Data processing device
KR100677327B1 (en) * 2004-06-16 2007-02-02 엘지전자 주식회사 Mobile communication terminal with dual operating system
FR2872933B1 (en) * 2004-07-06 2008-01-25 Trusted Logic Sa TIME SHARING METHOD OF A PROCESSOR
KR100710263B1 (en) * 2005-01-27 2007-04-20 엘지전자 주식회사 Method of Multi-Tasking Using Multi-Modem Mobile Phone
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
CN101064886B (en) * 2006-04-28 2012-12-12 朗迅科技公司 Wireless equipment and method for transmitting data through wireless equipment
KR100709385B1 (en) * 2006-07-19 2007-04-24 주식회사 케이 썸 씨앤 에프 Computer system
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
US8522354B2 (en) * 2008-05-24 2013-08-27 Via Technologies, Inc. Microprocessor apparatus for secure on-die real-time clock
US8756391B2 (en) * 2009-05-22 2014-06-17 Raytheon Company Multi-level security computing system
CN101707664B (en) * 2009-10-30 2013-03-06 深圳创维数字技术股份有限公司 Method for safe operation of set top box
CN103631785B (en) * 2012-08-21 2017-12-29 联想(北京)有限公司 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
GB2543096A (en) 2015-10-09 2017-04-12 Secure Thingz Ltd Data Processing Device
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
US11569994B2 (en) * 2021-06-24 2023-01-31 Intel Corporation Accelerating multiple post-quantum cryptograhy key encapsulation mechanisms

Family Cites Families (1)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
CA2395645A1 (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
US9459874B2 (en) Instruction set architecture-based inter-sequencer communications with a heterogeneous resource
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
US7797496B2 (en) Multiprocessor system having a shared tightly coupled memory and method for communication between a plurality of processors
US6314515B1 (en) Resetting multiple processors in a computer system
US4779187A (en) Method and operating system for executing programs in a multi-mode microprocessor
CN100578456C (en) Information processing device and procedure control method
US8850098B2 (en) Direct memory access (DMA) address translation between peer input/output (I/O) devices
US20180246826A1 (en) Aggregation of interrupts using event queues
US8332614B2 (en) System, method and computer program product for providing a programmable quiesce filtering register
US9396142B2 (en) Virtualizing input/output interrupts
JP2009296195A (en) Encryption device using fpga with multiple cpu cores
GB2404266A (en) Simultaneous multi-thread processing
EP0840223B1 (en) Microcomputer capable of accessing an external memory
JPH05257808A (en) Microprocessor and its operation converting method
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
EP0840221A1 (en) Microcomputer with packet bus
Attanasio Virtual Control Storage-curity measures in VM/370
Sukhwani et al. Extensible on-chip peripherals
EP1673693B1 (en) Operating systems
GB2286067A (en) A processor 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
EEER Examination request
FZDE Discontinued
FZDE Discontinued

Effective date: 20071219