New! View global litigation for patent families

EP1240583A2 - Dual-mode processor - Google Patents

Dual-mode processor

Info

Publication number
EP1240583A2
EP1240583A2 EP20000986569 EP00986569A EP1240583A2 EP 1240583 A2 EP1240583 A2 EP 1240583A2 EP 20000986569 EP20000986569 EP 20000986569 EP 00986569 A EP00986569 A EP 00986569A EP 1240583 A2 EP1240583 A2 EP 1240583A2
Authority
EP
Grant status
Application
Patent type
Prior art keywords
processor
mode
set
memory
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.)
Withdrawn
Application number
EP20000986569
Other languages
German (de)
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.)
General Instrument Corp
Original Assignee
General Instrument Corp
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

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL 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; COUNTING
    • G06FELECTRICAL 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; COUNTING
    • G06FELECTRICAL 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; COUNTING
    • G06FELECTRICAL 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; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for programme control, e.g. control unit
    • G06F9/06Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
    • 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; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for programme control, e.g. control unit
    • G06F9/06Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
    • 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; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for programme control, e.g. control unit
    • G06F9/06Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
    • 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; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for programme control, e.g. control unit
    • G06F9/06Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
    • 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, out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling, out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL 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

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.
EP20000986569 1999-12-23 2000-12-19 Dual-mode processor Withdrawn EP1240583A2 (en)

Priority Applications (3)

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

Publications (1)

Publication Number Publication Date
EP1240583A2 true true EP1240583A2 (en) 2002-09-18

Family

ID=23872866

Family Applications (1)

Application Number Title Priority Date Filing Date
EP20000986569 Withdrawn EP1240583A2 (en) 1999-12-23 2000-12-19 Dual-mode processor

Country Status (5)

Country Link
EP (1) EP1240583A2 (en)
JP (1) JP2003518287A (en)
CN (1) CN1425157A (en)
CA (1) CA2395645A1 (en)
WO (1) WO2001046800A3 (en)

Families Citing this family (36)

* 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
US7370210B2 (en) 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
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
US9158574B2 (en) 2002-11-18 2015-10-13 Arm Limited Handling interrupts in data processing
DE60306952D1 (en) * 2002-11-18 2006-08-31 Advanced Risc Mach Ltd Mapping of virtual to physical memory addresses in a system with a secure area and a non-secure area
DE60308215T2 (en) 2002-11-18 2007-08-23 Arm Ltd., Cherry Hinton Processor circuit between safe and unsafe modes
GB2396451B (en) 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system
WO2004046925A1 (en) * 2002-11-18 2004-06-03 Arm Limited Security mode switching via an exception vector
GB0226874D0 (en) 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
GB2396712B (en) 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Handling multiple interrupts in a data processing system utilising multiple operating systems
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
US7278080B2 (en) 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US8185812B2 (en) 2003-03-20 2012-05-22 Arm Limited Single event upset error detection within an integrated circuit
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
WO2004084070A1 (en) 2003-03-20 2004-09-30 Arm Limited Systematic and random error detection and recovery within processing stages of an integrated circuit
EP1688816A4 (en) * 2003-11-28 2012-04-25 Panasonic Corp Data processing device
FR2872933B1 (en) * 2004-07-06 2008-01-25 Trusted Logic Sa time sharing of a processor Method
US7934076B2 (en) 2004-09-30 2011-04-26 Intel Corporation System and method for limiting exposure of hardware failure information for a secured execution environment
CN100489818C (en) 2004-11-26 2009-05-20 松下电器产业株式会社 Processor and secure processing system
US7457960B2 (en) 2004-11-30 2008-11-25 Analog Devices, Inc. Programmable processor supporting secure mode
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-12 주식회사 케이 썸 씨앤 에프 Computer system
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
US7788433B2 (en) 2008-05-24 2010-08-31 Via Technologies, Inc. Microprocessor apparatus providing for secure interrupts and exceptions
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
CN103559460B (en) * 2013-11-06 2016-06-08 深圳国微技术有限公司 And receiving a conditioned data processing method card cam
CN104268027B (en) * 2014-09-22 2017-09-29 北京经纬恒润科技有限公司 Troubleshooting methods and apparatus for embedded real-time operating system
GB201517896D0 (en) * 2015-10-09 2015-11-25 Secure Thingz Ltd Data Processing Device
CN105701420A (en) * 2016-02-23 2016-06-22 深圳市金立通信设备有限公司 Method for managing user data and terminal

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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0146800A2 *

Also Published As

Publication number Publication date Type
CN1425157A (en) 2003-06-18 application
JP2003518287A (en) 2003-06-03 application
CA2395645A1 (en) 2001-06-28 application
WO2001046800A2 (en) 2001-06-28 application
WO2001046800A3 (en) 2002-07-25 application

Similar Documents

Publication Publication Date Title
US5043878A (en) System with real-time checking of privilege levels and the system's state to allow access to internal resources of the system
US5361375A (en) Virtual computer system having input/output interrupt control of virtual machines
US7171539B2 (en) Apparatus and method for controlling access to a memory
US4325116A (en) Parallel storage access by multiprocessors
US5784625A (en) Method and apparatus for effecting a soft reset in a processor device without requiring a dedicated external pin
US7478390B2 (en) Task queue management of virtual devices using a plurality of processors
US6925547B2 (en) Remote address translation in a multiprocessor system
US5459869A (en) Method for providing protected mode services for device drivers and other resident software
US6480941B1 (en) Secure partitioning of shared memory based multiprocessor system
US4949250A (en) Method and apparatus for executing instructions for a vector processing system
US5291581A (en) Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
US4783731A (en) Multicomputer system having dual common memories
US20040205747A1 (en) Breakpoint for parallel hardware threads in multithreaded processor
US7467381B2 (en) Resource partitioning and direct access utilizing hardware support for virtualization
US20040215929A1 (en) Cross-chip communication mechanism in distributed node topology
US6671827B2 (en) Journaling for parallel hardware threads in multithreaded processor
US5043867A (en) Exception reporting mechanism for a vector processor
US20050251806A1 (en) Enhancement of real-time operating system functionality using a hypervisor
US4412281A (en) Distributed signal processing system
US6003117A (en) Secure memory management unit which utilizes a system processor to perform page swapping
US6223279B1 (en) Single chip microcomputer having a dedicated address bus and dedicated data bus for transferring register bank data to and from an on-line RAM
US20070050763A1 (en) System and method for accelerating input/output access operation on a virtual machine
US5696970A (en) Architecture for implementing PCMCIA card services under the windows operating system in enhanced mode
US6604189B1 (en) Master/slave processor memory inter accessability in an integrated embedded system
US20050076324A1 (en) Virtual machine monitor

Legal Events

Date Code Title Description
AK Designated contracting states:

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Extension of the european patent to

Free format text: AL;LT;LV;MK;RO;SI

17P Request for examination filed

Effective date: 20020625

18D Deemed to be withdrawn

Effective date: 20061009