US7793083B2 - Processor and system for selectively disabling secure data on a switch - Google Patents
Processor and system for selectively disabling secure data on a switch Download PDFInfo
- Publication number
- US7793083B2 US7793083B2 US11/667,762 US66776205A US7793083B2 US 7793083 B2 US7793083 B2 US 7793083B2 US 66776205 A US66776205 A US 66776205A US 7793083 B2 US7793083 B2 US 7793083B2
- Authority
- US
- United States
- Prior art keywords
- secure
- data
- information
- attribute
- read
- 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.)
- Active, expires
Links
- 238000000034 method Methods 0.000 claims abstract description 11
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 239000000470 constituent Substances 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 230000008867 communication pathway Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2105—Dual mode as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2137—Time limited access, e.g. to a computer or data
Definitions
- the present invention relates to a processor and system that perform secure processing, and in particular to technology for realizing a secure mechanism in a system LSI.
- a processor core includes a secure mode for performing license management, content decryption, etc., and a normal mode for performing normal processing, and the secure mode and normal mode are switched between each other as processing is performed.
- the processor accesses a bus slave module having a secure resource, such as an external memory
- the processor core sends, to a bus interface, a mode status signal indicating whether the processor core is operating in the secure or normal mode, and the bus interface attaches a mode indicated by the mode status signal to an access request for the bus slave module, as a secure attribute.
- the bus slave module judges the secure attribute, and permits access to the secure resource if the secure attribute indicates “secure”.
- Patent document 1 Japanese Patent Application Publication No. 2002-202720
- the processor core switching between the secure and normal modes while operating as mentioned above, in order to prevent instruction code and data that have been fetched while operating in the secure mode from being analyzed by the processor core when in the normal mode, the fetched instruction code and data are disabled, thereby being placed in an unreadable condition before reverting to the normal mode.
- all of the instruction code and data fetched while operating in the secure mode is not necessarily information that must be made confidential, but instead includes information that can be used in the normal mode as well.
- the instruction code that is in an instruction cache and was fetched in the secure mode is disabled during the mode switch even if it is instruction code to be used in the normal mode as well, such instruction code cannot be read after reversion to the normal mode, and a cache miss-hit occurs. The processing performance of the processor therefore drops after reversion to the normal mode.
- the present invention has been achieved in light of the above problem, and an aim thereof is to provide a secure processing system and a processor that switch between a secure mode and a normal mode while operating, and in which there is no drop in the processing performance of the processor after reversion from the secure mode to the normal mode.
- the present invention is a processor that, during operation, switches between a secure mode of performing processing with use of secure information and non-secure information and a normal mode of performing processing with use of the non-secure information
- the processor including: an internal memory operable to have stored therein a plurality of secure information pieces and non-secure information pieces acquired from an external memory, a plurality of attribute information pieces each corresponding to a different stored information piece and indicating whether the corresponding information piece is one of the secure information pieces or the non-secure information pieces, and a plurality of processing specification information pieces each corresponding to a different one of the stored secure information pieces and being for specifying in which of a plurality of secure processes the corresponding secure information piece is to be used; and a disabling unit operable to, before a switch in a case of switching from the secure mode to the normal mode, specify, according to the attribute information pieces, a secure information piece from among the secure information pieces and non-secure information pieces stored in the internal memory, and disable the specified secure information piece.
- the processor specifies and disables only secure information before reverting to the normal mode, thereby reverting to the normal mode in a condition in which only non-secure information remains in the internal memory. Accordingly, after reversion to the normal mode, the processor can use the non-secure information stored in the internal memory without accessing the external memory, thereby enabling the processor to continue processing without a drop in processing performance.
- this structure enables the processor to specify the secure information with the use of attribute information. Also, when returning to the normal mode, the processor can specify the secure information without needing to perform complicated processing since the attribute information is in association with the information stored in the internal memory and indicates whether the information is secure information or non-secure information.
- this structure enables the processor to perform secure processing in accordance with the processing specification information.
- the present invention is also a processor including: an internal memory operable to have stored therein a plurality of secure instruction code pieces and non-secure instruction code pieces acquired from an external memory; an execution unit operable to decode the secure instruction code pieces and the non-secure instruction code pieces, and perform execution thereof; and a bus access control unit operable to, in a case of a bus access being necessary due to the execution unit executing secure instruction code, attach an access request secure attribute to the bus access, the access request secure attribute indicating that the bus access pertains to the execution of the secure instruction code.
- the processor can issue, to a bus slave module, a bus access that has an access request secure attribute indicating that the bus access pertains to the execution of secure processing.
- a bus slave module that has a secure resource is provided with a mechanism for permitting access to the secure resource only if an access request secure attribute indicating security is received from the processor, which is a bus master. This enables the processor, which does not include the secure mode, to use the secure resource of the external bus slave module.
- the internal memory may have further stored therein a plurality of attribute information pieces each corresponding to a different stored instruction code piece and indicating whether the corresponding instruction code piece is one of the secure instruction code pieces or the non-secure instruction code pieces, and the bus access control unit may read, from among the secure instruction code pieces and the non-secure instruction code pieces stored in the internal memory, an instruction code piece and the corresponding attribute information piece, and attach the read attribute information piece to the bus access as the access request secure attribute.
- This structure enables the processor to determine, with use of the attribute information, whether the instruction code to be executed is secure instruction code or non-secure instruction code.
- the internal memory may be a cache memory that manages information in cache line units, and may manage each of the attribute information pieces in a different cache line unit of the cache memory.
- the processor can attach an access request secure attribute to bus access pertaining to the execution of instruction code to be kept truly confidential.
- the internal memory may have further stored therein a plurality of processing specification information pieces each corresponding to a different one of the stored secure instruction code pieces and being for specifying in which of a plurality of secure processes the corresponding secure instruction code piece is to be used, and in a case of reading a secure instruction code piece from among the secure instruction code pieces in the internal memory, the bus access control unit may further read, along with the corresponding attribute information piece, the processing specification information piece corresponding to the read secure instruction code piece, and attach the attribute information piece and the processing specification information piece that were read to the bus access as the access request secure attribute.
- This structure enables the processor to perform secure processing in accordance with the processing specification information.
- the present invention is a secure processing system including: an external memory including a secure area composed of a plurality of sub-secure areas, and operable to store a plurality of secure information pieces and non-secure information pieces, the secure information pieces being stored in the secure area; a memory interface including a read unit operable to read an information piece from the external memory, a position information storage unit operable to have stored therein sub-secure area position information for specifying a position of each of the sub-secure areas, a judgment unit operable to, according to the sub-secure area position information, judge whether the information piece read by the read unit is one of the secure information pieces or the non-secure information pieces, and if the read information piece is one of the secure information pieces, also judge from which of the sub-secure areas the information piece has been read, and an attribute information generation unit operable to, if the read information piece has been judged to be one of the secure information pieces, generate attribute information indicating security, and generate specification information for specifying the sub-secure area in which the read information piece was stored, and if the
- the processor specifies and disables only secure information before reverting to the normal mode, thereby reverting to the normal mode in a condition in which only non-secure information remains in the internal memory. Accordingly, after reversion to the normal mode, the processor can use the non-secure information stored in the internal memory without accessing the external memory, thereby enabling the processor to continue processing without a drop in processing performance.
- this structure enables the memory interface to easily distinguish between secure information and non-secure information since the position where the secure information is stored on the external memory is known in advance.
- the processor can recognize, according to the information generated by the memory interface and for specifying the sub-secure areas, in which secure process information the information is to be used since the secure area of the external memory is composed of a plurality of sub-secure areas, and pieces of instruction code and data to be used in specified secure processing are stored in different sub-secure areas.
- the present invention is a secure processing system including: an external memory operable to have stored therein a plurality of secure instruction code pieces, secure data pieces, non-secure instruction code pieces, and non-secure data pieces; a memory interface operable to read an instruction code piece from the external memory, judge whether the read instruction code piece is one of the secure instruction code pieces or the non-secure instruction code pieces, generate attribute information according to a result of the judgment, and output the read instruction code piece and the generated attribute information to a processor; and the processor including an internal memory operable to have stored therein the plurality of secure instruction code pieces and non-secure instruction code pieces acquired from an external memory, an execution unit operable to decode the secure instruction code pieces and the non-secure instruction code pieces, and perform execution thereof, and a bus access control unit operable to, in a case of a bus access being necessary due to the execution unit executing secure instruction code, attach an access request secure attribute to the bus access, the access request secure attribute indicating that the bus access pertains to the execution of the secure instruction code.
- the processor can issue, to a bus slave module, a bus access that has an access request secure attribute indicating that the bus access pertains to the execution of secure processing.
- a bus slave module that has a secure resource is provided with a mechanism for permitting access to the secure resource only if an access request secure attribute indicating security is received from the processor, which is a bus master. This enables the processor, which does not include the secure mode, to use the secure resource of the external bus slave module.
- the external memory may include a secure area composed of a plurality of sub-secure areas, and store the secure instruction code pieces and the secure data pieces in the secure area
- the memory interface may include a read unit operable to read an instruction code piece from the external memory, a position information storage unit operable to have stored therein sub-secure area position information for specifying a position of each of the sub-secure areas, a judgment unit operable to, according to the sub-secure area position information, judge whether the instruction code piece read by the read unit is one of the secure instruction code pieces or the non-secure instruction code pieces, and if the read instruction code piece is one of the secure instruction code pieces, also judge from which of the sub-secure areas the instruction code piece has been read, and an attribute information generation unit operable to, if the read instruction code piece has been judged to be one of the secure instruction code pieces, generate attribute information indicating security, and generate specification information for specifying the sub-secure area in which the read instruction code piece was stored, and if the read instruction code piece has been judged to be one of the
- This structure enables the memory interface to easily distinguish between secure instruction code and non-secure instruction code since the position, where the secure instruction code is stored on the external memory is known in advance.
- the processor can recognize, according to the information generated by the memory interface and for specifying the sub-secure areas, in which secure process information the information is to be used since the secure area of the external memory is composed of a plurality of sub-secure areas, and pieces of instruction code and data to be used in specified secure processing are stored in different sub-secure areas.
- FIG. 1 shows a structure of a secure processing system
- FIG. 2 shows an instruction cache 102
- FIG. 3 shows a data structure of an attribute management table 130 managed by an instruction attribute management unit 103 ;
- FIG. 4 shows the instruction cache 102 after disabling processing has been performed by a memory disabling unit 108 ;
- FIG. 5 shows data transmitted and received between a bus interface 109 of a processor 10 and a memory interface 20 by a bus 40 ;
- FIG. 6 shows a functional structure of the memory interface 20 ;
- FIG. 7 is a flowchart showing operations of a processor core 101 in the secure processing system 1 ;
- FIG. 8 is a flowchart showing overall operations of the secure processing system 1 pertaining to an instruction fetch performed by the processor core 101 , continued in FIG. 9 ;
- FIG. 9 is a flowchart-showing overall operations of the secure processing system 1 pertaining to an instruction fetch performed by the processor core 101 , continuing from FIG. 8 ;
- FIG. 10 is a flowchart showing operations of read-data secure attribute generation processing in the memory interface 20 ;
- FIG. 11 is a flowchart showing overall operations of the secure processing system 1 pertaining to a data fetch performed by the processor core 101 , continued in FIG. 12 ;
- FIG. 12 is a flowchart showing overall operations of the secure processing system 1 pertaining to a data fetch performed by the processor core 101 , continuing from FIG. 11 ;
- FIG. 13 is a flowchart showing operations of processing for reverting from a secure mode to a normal mode
- FIG. 14 shows a structure of a secure processing system 2 ;
- FIG. 15 is a flowchart showing overall operations of the secure processing system 2 ;
- FIG. 16 is a flowchart showing overall operations of the secure processing system 2 pertaining to an instruction fetch performed by a processor core 101 a;
- FIG. 17 is a flowchart showing overall operations of the secure processing system 2 pertaining to a data fetch performed by the processor core 101 a , continued in FIG. 18 ;
- FIG. 18 is a flowchart showing overall operations of the secure processing system 2 pertaining to a data fetch performed by the processor core 101 a , continuing from FIG. 17 ;
- FIG. 19 is a flowchart showing operations of a secure module 60 a .
- FIG. 20 illustrates bus access and secure attributes with use of a concrete example of the secure module 60 a.
- FIG. 1 shows an internal structure of the secure processing system 1 .
- the secure processing system 1 includes a processor 10 , a memory interface 20 , a memory 30 , and a bus 40 .
- the secure processing system 1 is mounted in specifically an AV device or the like.
- FIG. 1 shows a functional structure of the processor 10 .
- the processor 10 includes a processor core 101 , an instruction cache 102 , an instruction attribute management unit 103 , a data cache 104 , a data attribute management unit 105 , an instruction access determination unit 106 , a data access determination unit 107 , a memory disabling unit 108 , and a bus interface 109 .
- the processor core 101 has two operating modes, namely a normal mode and a secure mode, and switches between the two operating modes while performing processing.
- the secure mode is a mode in which the processor 10 performs secure processing such as encryption/decryption processing, license processing, and the like.
- the normal mode is a mode in which the processor 10 performs all other non-secure processing. Note that details of technology for implementing the secure mode for performing secure processing have been omitted since the secure mode is realizable by previously known technology.
- the processor core 101 includes an instruction fetch unit 110 , a decoding unit 111 , a control unit 112 , an operation unit 113 , and a memory management unit 114 .
- the instruction fetch unit 110 periodically receives, from the control unit 112 , a signal showing the operating mode of the processor core 101 .
- the instruction fetch unit 110 also issues, to the instruction access determination unit 106 , an instruction indicating a fetch of instruction code, an access request including an address of the instruction code, and an access request secure attribute.
- the access request secure attribute is generated according to the operating mode of the processor core 101 . Specifically, the instruction fetch unit 110 generates “normal” as the access request secure attribute when the operating mode-indicating signal received from the control unit 112 indicates “normal mode”, and generates “secure” as the access request secure attribute when the signal received from the control unit 112 indicates “secure mode”.
- the instruction fetch unit 110 also acquires instruction code from the memory 30 or the instruction cache 102 , and stores the acquired instruction code in a prefetch queue. Note that there are cases in which secure processing identification information is attached to the instruction code acquired by the instruction fetch unit 110 .
- the secure processing identification information indicates in which kind of secure processing the acquired instruction code is to be used.
- the secure processing identification information attached to the instruction code is notified to the operation unit 113 via the control unit 112 .
- the decoding unit 111 includes a decoder and an instruction queue.
- the decoder reads the instruction code from the prefetch queue of the instruction fetch unit 110 , decodes the read instruction code to generate low-level code.
- the instruction queue stores the generated low-level code until a request is received from the control unit 112 .
- the control unit 112 receives the low-level code from the instruction queue, interprets the received low-level code, and sends instructions to the units of the processor core 101 .
- the control unit 112 also manages whether the processor core 101 is operating in the secure mode or the normal mode, and periodically outputs a signal indicating the operating mode to the instruction fetch unit 110 and the memory management unit 114 . Furthermore, in a case of the operating mode of the processor core 101 switching from the secure mode to the normal mode, the control unit 112 notifies the reversion from the secure mode to the normal mode to the memory disabling unit 108 via the memory management unit 114 . The control unit 112 switches the operating mode from the secure mode to the normal mode upon receiving, from the memory disabling unit 108 via the memory management unit 114 , a notification that disabling processing performed on the cache has been completed.
- the operation unit 113 executes instructions and performs arithmetic operations and logical operations. If a data fetch is requested when executing an instruction, the operation unit 113 computes an address, and outputs the computed address to the memory management unit 114 .
- the operation unit 113 performs processing based on the attached secure processing identification information.
- the secure processing identification information is a value of 1 or 2, where instruction code and data with a value of 1 attached is to be used in license management processing, and instruction code and data with a value of 2 attached is to be used in key generation processing.
- the memory management unit 114 periodically receives the signal indicating the operating mode of the processor core 101 from the control unit 112 . Also, upon receiving the data address from the operation unit 113 , the memory management unit 114 issues, to the data access determination unit 107 , an instruction indicating a data fetch, an access request including an address of the data, and an access request secure attribute.
- the access request secure attribute is generated according to the operating mode of the processor core 101 . Specifically, the memory management unit 114 generates “normal” as the access request secure attribute when the operating mode-indicating signal received from the control unit 112 indicates “normal mode”, and generates “secure” as the access request secure attribute when the signal received from the control unit 112 indicates “secure mode”.
- the memory management unit 114 also acquires data from the memory 30 or the data cache 104 , and outputs the acquired data to the operation unit 113 . Note that there are cases in which secure processing identification information is attached to the data acquired by the memory management unit 114 .
- the secure processing identification information indicates in which kind of secure processing the acquired data is to be used.
- the instruction cache 102 is high-speed/low-capacity memory constituted from SRAM (static RAM), and stores instruction code sent from the memory 30 .
- the instruction code includes secure instruction code and non-secure instruction code, details of which are described later.
- the instruction cache 102 includes a cache controller.
- FIG. 2 shows the instruction cache 102 in a case of the processor core 101 operating in the secure mode.
- a code_ 0 is stored in a line 0
- a code_ 1 is stored in a line 1
- a code_ 2 is stored in a line 2
- a code_ 3 is stored in a line 3
- a code_ 4 is stored in a line 4
- a code_ 5 is stored in a line 5
- a code_ 6 is stored in a line 6
- a code_ 7 is stored in a line 7 .
- the instruction code from code_ 0 to code_ 7 is managed in association with addresses.
- the instruction cache 102 With each instruction fetch performed by the processor core 101 , the instruction cache 102 receives instruction code from the memory 30 , and receives a read-data secure attribute from the memory interface 20 . Also, upon receiving the instruction code from the memory 30 , the instruction cache 102 outputs the corresponding address and read-data secure attribute to the instruction attribute management unit 103 .
- the instruction attribute management unit 103 manages the read-data secure attributes of the instruction code stored in each cache line of the instruction cache 102 .
- FIG. 3 shows a specific example of an attribute management table 130 stored by the instruction attribute management unit 103 when the instruction cache 102 is in the condition shown in FIG. 2 .
- the attribute management table 130 includes eight pieces of attribute management information that each correspond to a different cache line of the instruction cache 102 , and each of which is composed of an address and a read-data secure attribute. Furthermore, each read-data secure attribute is composed of a secure attribute and secure processing identification information.
- the addresses correspond to the addresses of the instruction code stored in the instruction cache 102 .
- the secure attributes are each set to “secure” or “normal”, where “secure” indicates secure instruction code, and “normal” indicates non-secure instruction code.
- secure instruction code refers to confidential instruction code that is used only when the processor core 101 is operating in the secure mode
- non-secure instruction code refers to non-confidential instruction code that is used regardless of the operating mode of the processor core 101 .
- the secure processing identification information is set to a value of 1 or 2 for instruction code whose secure attribute is “secure”, where 1 indicates instruction code to be used in license management processing by the processor 10 , and 2 indicates instruction code to be used in key generation processing by the processor 10 .
- a piece of attribute management information 131 corresponds to line 0 of the instruction cache 102 , and indicates that code_ 0 identified by an address “0x8000AAA0” is secure instruction code which is to be used in license management processing.
- a piece of attribute management information 132 corresponds to line 1 of the instruction cache 102 , and indicates that code_ 1 identified by an address “0x80001000” is non-secure instruction code.
- a piece of attribute management information 133 corresponds to line 2 of the instruction cache 102 , and indicates that code_ 2 identified by an address “0x8000BBB0” is secure instruction code which is to be used in license management processing.
- a piece of attribute management information 134 corresponds to line 3 of the instruction cache 102 , and indicates that code_ 3 identified by an address “0x80003000” is non-secure instruction code.
- a piece of attribute management information 135 corresponds to line 4 of the instruction cache 102 , and indicates that code_ 4 identified by an address “0x80004000” is non-secure instruction code.
- a piece of attribute management information 136 corresponds to line 5 of the instruction cache 102 , and indicates that code_ 5 identified by an address “0x8000CCC0” is secure instruction code which is to be used in key generation processing.
- a piece of attribute management information 137 corresponds to line 6 of the instruction cache 102 , and indicates that code_ 6 identified by an address “0x80006000” is non-secure instruction code.
- a piece of attribute management information 138 corresponds to line 7 of the instruction cache 102 , and indicates that code_ 7 identified by an address “0x8000FFF0” is secure instruction code which is to be used in key generation processing.
- the instruction attribute management unit 103 With each update of the instruction cache 102 by an instruction fetch performed by the processor core 101 , the instruction attribute management unit 103 generates new attribute management information, registers the generated attribute management information in the attribute management table 130 , and updates the attribute management table 130 .
- the data cache 104 is high-speed/low-capacity memory constituted from SRAM, and stores data sent from the memory 30 .
- the data includes secure data and non-secure data.
- the data attribute management unit 105 manages the read-data secure attributes of the data stored in each cache line of the data cache 104 .
- the data attribute management unit 105 manages an attribute management table including pieces of attribute management information that each correspond to a different line of the data cache 104 .
- Each piece of attribute management information is composed of an address and a read-data secure attribute that is composed of a secure attribute and secure processing identification information.
- the addresses correspond to the addresses of the data stored in the data cache 104 .
- the secure attributes are each set to “secure” or “normal”, where “secure” indicates secure data, and “normal” indicates non-secure data.
- secure data refers to confidential data that is used only when the processor core 101 is operating in the secure mode
- non-secure data refers to non-confidential data that is used regardless of the operating mode of the processor core 101 .
- the secure processing identification information is set to a value of 1 or 2 for data whose secure attribute is “secure”, where 1 indicates data to be used in license management processing by the processor 10 , and 2 indicates data to be used in key generation processing by the processor 10 .
- the data attribute management unit 105 With each update of the data cache 104 by a data fetch performed by the processor core 101 , the data attribute management unit 105 generates new attribute management information, registers the generated attribute management information in the attribute management table, and updates the attribute management table.
- the instruction access determination unit 106 judges whether instruction code for which there was a cache-hit in instruction code fetch processing performed by the instruction fetch unit 110 of the processor core 101 is readable in the operating mode of the processor core 101 at the time of the cache-hit.
- secure instruction code can be read only when the processor core 101 is operating in the secure mode.
- non-secure instruction code can be read whether the processor core 101 is operating in the secure mode or the normal mode.
- the instruction access determination unit 106 references, with respect to the instruction code for which there was a cache-hit, the attribute management information managed by the instruction attribute management unit 103 , and judges whether the secure attribute included in the read-data secure attribute of such instruction code indicates “secure” or “normal”. The instruction access determination unit 106 also judges whether the access request secure attribute output from the processor core 101 is set to “secure” or “normal”. The instruction access determination unit 106 performs the aforementioned instruction code-readability determination according to the results of both judgments.
- the data access determination unit 107 judges whether data for which there was a cache-hit in data fetch processing performed by the memory management unit 114 of the processor core 101 is readable in the operating mode of the processor core 101 at the time of the cache-hit.
- secure data can be read only when the processor core 101 is operating in the secure mode.
- non-secure data can be read whether the processor core 101 is operating in the secure mode or the normal mode.
- the data access determination unit 107 performs the aforementioned data-readability determination based on the read-data secure attributes managed by the data attribute management unit 105 and the access request secure attribute indicating the operating mode of the processor core 101 .
- the memory disabling unit 108 protects secure instruction code held by the instruction cache 102 and secure data held by the data cache 104 when the operating mode of the processor core 101 switches from the secure mode to the normal mode.
- the memory disabling unit 108 upon receiving a signal indicating that the operating mode of the processor core 101 will switch from the secure mode to the normal mode from the memory management unit 114 of the processor core 101 , the memory disabling unit 108 refers to the attribute management table 130 managed by the instruction attribute management unit 103 , and finds cache lines storing instruction code whose secure attribute is set to “secure”. According to the attribute management table 130 shown in FIG. 3 , the memory disabling unit 108 detects that line 0 , line 2 , line 5 , and line 7 of the instruction cache 102 are storing secure instruction code since the pieces of attribute management information 131 , 133 , 136 , and 138 all include a secure attribute indicating “secure”.
- the memory disabling unit 108 disables the instruction code stored in the found cache lines.
- the disabling of instruction code refers to disabling access thereto by the processor core 101 , and includes methods such as discarding the instruction code or writing a “0” to the cache lines. There are no limitations on the disabling method, and other methods may be used.
- FIG. 4 shows a condition of the instruction cache 102 in which only the secure instruction code has been disabled by the memory disabling unit 108 .
- the instruction cache 102 shown in FIG. 4 stores code_ 1 , code_ 3 , code_ 4 , and code_ 6 , whose corresponding secure attributes are all set to “normal”, in a readable condition.
- the memory disabling unit 108 performs processing on the data cache 104 similarly to as on the instruction cache 102 .
- the memory disabling unit 108 finds cache lines storing data whose secure attribute is set to “secure”, and disables the data stored in the found cache lines.
- the memory disabling unit 108 Upon completing the disabling processing performed on the instruction cache 102 and the data cache 104 , the memory disabling unit 108 outputs a completion notification to the processor core 101 .
- the bus interface 109 controls access to the bus 40 by the processor 101 .
- the bus 40 is a communication pathway between the processor 10 and the memory interface 20 .
- FIG. 5 shows information that is transmitted and received by the bus 40 .
- write data, instructions, access requests, and access request secure attributes are transmitted from the bus interface 109 of the processor 10 to the memory interface 20 via the bus 40 .
- read data and read-data secure attributes are transmitted from the memory interface 20 to the bus interface 109 of the processor 10 via the bus 40 .
- the memory 30 is a storage apparatus constituted from SDRAM, and as shown in FIG. 1 , includes a secure area 1 ( 3001 ) and a secure area 2 ( 3002 ).
- the secure area 1 ( 3001 ) is an area that stores confidential instruction code and confidential data that are used in license management processing performed by the processor 10 .
- the secure area 2 ( 3002 ) is an area that stores confidential instruction code and confidential data that are used in key generation processing performed by the processor 10 .
- the secure area 1 ( 3001 ) and the secure area 2 ( 3002 ) in the present embodiment are, for example, fixed as areas with addresses from 0x8000AAA0 to 0x8000FFFF.
- the memory interface 20 controls external access to the memory 30 .
- FIG. 6 is a function block diagram showing a functional structure of the memory interface 20 .
- the memory interface 20 includes a bus master identification unit 201 , a secure area management unit 202 , an accessibility determination unit 203 , an access unit 204 , and a read-data secure attribute generation unit 205 .
- the bus master identification unit 201 receives an access request and an access request secure attribute from the processor 10 .
- the bus master identification unit 201 can identify two or more bus masters other than the processor 10 if access requests to the memory 30 are received from such bus masters.
- Dedicated ports may be provided for the bus masters as a method for identification thereof.
- the bus master identification unit 201 outputs the received access request and access request secure attribute to the accessibility determination unit 203 .
- the secure area management unit 202 stores a secure area 1 start address and a secure area 1 end address, which is information for specifying the secure area 1 ( 3001 ), and furthermore stores a secure area 2 start address and a secure area 2 end address, which is information for specifying the secure area 2 ( 3002 ).
- the accessibility determination unit 201 Upon receiving the access request and access request secure attribute from the bus master identification unit 201 , the accessibility determination unit 201 extracts an access request destination address from the access request. The accessibility determination unit 203 judges whether the processor 10 can access the access request destination address based on the access request secure attribute, the access request destination address, and the information stored in the secure area management unit 202 . Details of the determination are described later.
- the accessibility determination unit 203 If the access request destination address is determined to be accessible by the processor 10 , the accessibility determination unit 203 outputs the access request destination address to the access unit 204 . If the access request destination address is determined to not be accessible by the processor 10 , the accessibility determination unit 203 ends processing.
- the access unit 204 receives the access request destination address from the accessibility determination unit 203 , and reads instruction code or data from a position in the memory 30 indicated by the received access request destination address.
- the access unit 204 outputs the read instruction code or data (called “read data”) along with an access destination address to the read-data secure attribute generation unit 205 .
- the access destination address is an address that indicates the storage location of the read instruction code, and is the same as the access request destination address received from the accessibility determination unit 203 .
- the read-data secure attribute generation unit 205 Upon receiving the read data and the access destination address from the access unit 204 , the read-data secure attribute generation unit 205 reads the secure area 1 start address, the secure area 1 end address, the secure area 2 start address, and the secure area 2 end address that are stored in the secure area management unit 202 .
- the read-data secure attribute generation unit 205 determines whether the read data has been read from the secure area 1 ( 3001 ), the secure area 2 ( 3002 ), or another area, based on the addresses read from the secure area management unit 202 and the access destination address received from the access unit 204 .
- the read-data secure attribute generation unit 205 sets a secure attribute to “secure”, sets a piece of secure processing identification information to 1, and sends, to the processor 10 via the bus 40 , the read data and a read-data secure attribute composed of the secure attribute set to “secure” and the secure processing identification information set to 1.
- the read-data secure attribute generation unit 205 sets a secure attribute to “secure”, sets a piece of secure processing identification information to 2, and sends, to the processor 10 via the bus 40 , the read data and a read-data secure attribute composed of the secure attribute set to “secure” and the secure processing identification information set to 2.
- the read-data secure attribute generation unit 205 sets a secure attribute to “normal”, and sends, to the processor 10 via the bus 40 , the read data and the secure attribute set to “normal”, without setting a piece of secure processing identification information to any value.
- the operations of the processor core 101 in the secure processing system 1 are described first since the operations of the other constituent elements of the processor 10 , and the operations of the memory interface 20 , the memory 30 , and the bus 40 , which are the other constituent elements of the secure processing system 1 , are determined according to the operations of the processor core 101 .
- the operations of the other constituent elements, which occur based on the operations of the processor core 101 are described thereafter.
- FIG. 7 is a flowchart showing operations of the processor core 101 .
- the processor core 101 While operating in the normal mode, the processor core 101 judges whether a request to switch to the secure mode has been received, and if such a request has not been received (step S 101 :NO), the processor core 101 performs the operations of step S 102 to step S 107 in the normal mode.
- the instruction fetch unit 110 fetches instruction code (step S 102 ), and stores the fetched instruction code in the prefetch queue.
- the decoding unit 111 retrieves the instruction code from the prefetch queue, and converts the retrieved instruction code to low-level code. The resulting low-level code is stored in the instruction queue.
- the control unit 112 receives the low-level code from the instruction queue, and interprets the received low-level code (step S 103 ).
- the operation unit 113 reads a register operand from a register file (step S 104 ).
- the operation unit 113 shifts the operand and generates an ALU result. If the instruction is a load or a store, the operation unit 113 executes the instruction by calculating a memory address or the like (step S 105 ).
- the memory management unit 114 accesses the data cache 104 or the memory 30 , and reads data therein (step S 106 ).
- the operation unit 113 then writes the data loaded from the data cache 104 or the memory 30 and a result generated by the instruction back to the register file (step S 107 ), and the processor core 101 returns to step S 101 and continues processing from there.
- step S 101 If a request to switch from the normal mode to the secure mode is received in step S 101 (step S 101 :YES), the processor core 101 switches from the normal mode to the secure mode, and performs the operations of step S 111 to step S 116 in the secure mode.
- the instruction fetch unit 110 fetches instruction code (step S 111 ), and stores the fetched instruction code in the prefetch queue.
- the decoding unit 111 retrieves the instruction code from the prefetch queue, and converts the retrieved instruction code to low-level code. The resulting low-level code is stored in the instruction queue.
- the control unit 112 receives the low-level code from the instruction queue, and interprets the received low-level code (step S 112 ).
- the operation unit 113 reads a register operand from a register file (step S 113 ).
- the operation unit 113 shifts the operand and generates an ALU result. If the instruction is a load or a store, the operation unit 113 executes the instruction by calculating a memory address or the like (step S 114 ).
- the memory management unit 114 accesses the data cache 104 or the memory 30 , and reads data therein (step S 115 ).
- the operation unit 113 then writes the data loaded from the data cache 104 or the memory 30 and a result generated by the instruction back to the register file (step S 116 ).
- step S 117 the processor core 101 judges whether a request to revert from the secure mode to the normal mode has been received. If a request to revert to the normal mode has not been received (step S 117 :NO), the processor core 101 returns to step S 111 and continues processing from there.
- step S 117 If a request to revert to the normal mode has been received (step S 117 :YES), the processor core 101 performs reversion processing (step S 118 ), returns to step S 101 , and continues processing from there.
- FIG. 8 and FIG. 9 are flowcharts showing overall operations of the secure processing system 1 that accompany an instruction fetch performed by the processor core 101 .
- the instruction fetch unit 110 of the processor core 101 issues an access request and an access request secure attribute (step S 201 ), and the instruction access determination unit 106 receives the issued access request and access request secure attribute (step S 202 ).
- the instruction cache 102 receives the access request via the instruction access determination unit 106 , and judges whether instruction code to which access has been requested is stored in the instruction cache 102 (step S 203 ).
- step S 204 In the case of a cache miss-hit (step S 204 :NO), processing moves to step S 211 and continues from there.
- step S 204 :YES the instruction access determination unit 106 reads, from the attribute management table 130 managed by the instruction attribute management unit 103 , the secure attribute included in the read-data secure attribute corresponding to the access destination cache line. The instruction access determination unit 106 judges whether the read secure attribute is set to “secure” or “normal”.
- step S 205 If the secure attribute is set to “normal” (step S 205 :NO), processing moves to step S 208 . If the secure attribute is set to “secure” (step S 205 :YES), the instruction access determination unit 106 judges whether the access request secure attribute received in step S 202 is set to “secure” or “normal”.
- step S 206 If the access request secure attribute is set to “normal” (step S 206 :NO) the secure processing system 1 ends processing. If the access request secure attribute is set to “secure” (step s 206 :YES), the instruction cache 102 reads the instruction code from the access destination cache line, and furthermore reads, from the instruction attribute management unit 103 , secure processing identification information included in the read-data secure attribute corresponding to the access destination cache line (step S 207 ). The instruction cache 102 sends, to the processor core 101 via the instruction access determination unit 106 , the read instruction code, or the instruction code and secure processing identification information (step S 208 ).
- step S 204 the access request and the access request secure attribute are sent from the bus interface 109 to the memory interface 20 via the bus 40 (step S 211 ).
- the accessibility determination unit 203 of the memory interface 20 receives the access request and access request secure attribute via the bus master identification unit 201 .
- the accessibility determination unit 203 extracts the access request destination address from the access request (step S 212 ), and furthermore acquires the secure area 1 start address, the secure area 1 end address, the secure area 2 start address, and the secure area 2 end address from the secure area management unit 202 .
- the accessibility determination unit 203 judges whether the access request destination address indicates the secure area 1 ( 3001 ) or the secure area 2 ( 3002 ) of the memory 30 . If the access request destination address indicates an area other than the secure area 1 ( 3001 ) and the secure area 2 ( 3002 ) (step S 213 :NO), processing moves to step S 215 . If the access request destination address indicates the secure area 1 ( 3001 ) or the secure area 2 ( 3002 ) (step S 213 :YES), the accessibility determination unit 203 judges whether the access request secure attribute is set to “secure” or “normal”.
- step S 214 :NO If the access request secure attribute is set to “normal” (step S 214 :NO), the secure processing system 1 ends processing since access to the access request destination by the processor core 101 is denied. If the access request secure attribute is set to “secure” (step S 214 :YES), the accessibility determination unit 203 outputs the access request destination address to the access unit 204 .
- the access unit 204 accesses a position in the memory 30 that is indicated by the access request destination address, and reads the instruction code at the access position (step S 215 ). Upon reading the instruction code, the access unit 204 outputs the access destination address of the read instruction code to the read-data secure attribute generation unit 205 .
- the access destination address is an address that indicates the storage location of the instruction code, and the access unit 204 therefore outputs the access request destination address received from the accessibility determination unit 203 as the access destination address.
- the read-data secure attribute generation unit 205 generates a read-data secure attribute (step S 216 ), and sends the instruction code and generated read-data secure attribute to the processor 10 (step S 217 ).
- the instruction fetch unit 110 of the processor core 101 acquires the sent instruction code (step S 218 ), and the instruction cache 102 acquires the sent instruction code as well (step S 219 ). Note that if secure processing identification information is attached to the read-data secure attribute acquired from the memory interface 20 , the instruction fetch unit 110 acquires the secure processing identification information along with the instruction code in step S 218 .
- the instruction attribute management unit 103 acquires the read-data secure attribute, and manages the acquired read-data secure attribute in the attribute management table 130 (step S 220 ).
- FIG. 10 is a flowchart showing operations of read-data secure attribute generation processing performed by the read-data secure attribute generation unit 205 of the memory interface 20 . Note that the operations shown here are details of step S 216 in FIG. 9 .
- the read-data secure attribute generation unit 205 acquires the read data and the access destination address from the access unit 204 (step S 231 ).
- the read data refers to the instruction code and data that have been read from the memory 30 by the access unit 204 .
- the read-data secure attribute generation unit 205 acquires the secure area 1 start address, the secure area 1 end address, the secure area 2 start address, and the secure area 2 end address from the secure area management unit 202 (step S 232 ).
- the read-data secure attribute generation unit 205 judges whether the access destination address indicates the secure area 1 ( 3001 ), the secure area 2 ( 3002 ), or another area (step S 233 ).
- the read-data secure attribute generation unit 205 sets the secure attribute to “normal” (step S 235 ). If the access destination address indicates the secure area 1 ( 3001 ) or the secure area 2 ( 3002 ) (step S 233 :YES), the read-data secure attribute generation unit 205 sets the secure attribute to “secure” (step S 234 ).
- the read-data secure attribute generation unit 205 sets the secure processing identification information to 1 (step 237 ) if the access destination address indicates the secure area 1 ( 3001 ) (step S 236 : 1 ), and sets the secure processing identification information to 2 (step S 238 ) if the access destination address indicates the secure area 2 ( 3002 ) (step S 236 : 2 ).
- FIG. 11 and FIG. 12 are flowcharts showing overall operations of the secure processing system 1 that accompany a data fetch performed by the processor core 101 .
- the memory management unit 114 of the processor core 101 issues an access request and an access request secure attribute (step S 301 ), and the data access determination unit 107 receives the issued access request and access request secure attribute (step S 302 ).
- the data cache 104 receives the access request via the data access determination unit 107 , and judges whether data to which access has been requested is stored in the data cache 104 (step S 303 ).
- step S 304 :NO processing moves to step S 311 and continues from there.
- step S 304 :YES the data access determination unit 107 reads, from the attribute management table managed by the data attribute management unit 105 , the secure attribute included in the read-data secure attribute corresponding to the access destination cache line. The data access determination unit 107 judges whether the read secure attribute is set to “secure” or “normal”.
- step S 305 If the secure attribute is set to “normal” (step S 305 :NO), processing moves to step S 307 . If the secure attribute is set to “secure” (step S 305 :YES), the data access determination unit 107 judges whether the access request secure attribute received in step S 302 is set to “secure” or “normal”.
- step S 306 If the access request secure attribute is set to “normal” (step S 306 :NO), the secure processing system 1 ends processing. If the access request secure attribute is set to “secure” (step S 306 :YES), the data cache 104 reads the data from the access destination cache line, and furthermore reads, from the data attribute management unit 105 , secure processing identification information included in the read-data secure attribute corresponding to the access destination cache line (step S 307 ). The data cache 104 sends, to the processor core 101 via the data access determination unit 107 , the read data, or the data and secure processing identification information (step S 308 ).
- step S 304 the access request and the access request secure attribute are sent from the bus interface 109 to the memory interface 20 via the bus 40 (step S 311 ).
- the accessibility determination unit 203 of the memory interface 20 receives the access request and access request secure attribute via the bus master identification unit 201 .
- the accessibility determination unit 203 extracts the access request destination address from the access request (step S 312 ), and furthermore acquires the secure area 1 start address, the secure area 1 end address, the secure area 2 start address, and the secure area 2 end address from the secure area management unit 202 .
- the accessibility determination, unit 203 judges whether the access request destination address indicates the secure area 1 ( 3001 ) or the secure area 2 ( 3002 ) of the memory 30 . If the access request destination address indicates an area other than the secure area 1 ( 3001 ) and the secure area 2 ( 3002 ) (step S 313 :NO), processing moves to step S 315 . If the access request destination address indicates the secure area 1 ( 3001 ) or the secure area 2 ( 3002 ) (step S 313 :YES), the accessibility determination unit 203 judges whether the access request secure attribute is set to “secure” or “normal”.
- step S 314 :NO If the access request secure attribute is set to “normal” (step S 314 :NO), the secure processing system 1 ends processing since access to the access request destination by the processor core 101 is denied. If the access request secure attribute is set to “secure” (step S 314 :YES), the accessibility determination unit 203 outputs the access request destination address to the access unit 204 .
- the access unit 204 accesses a position in the memory 30 that is indicated by the access request destination address, and reads the data at the access position (step S 315 ). Upon reading the data, the access unit 204 outputs the read data and the access destination address of the read data to the read-data secure attribute generation unit 205 .
- the access destination address is an address that indicates a storage location of the data, and the access unit 204 outputs the access request destination address received from the accessibility determination unit 203 as the access destination address.
- the read-data secure attribute generation unit 205 generates a read-data secure attribute (step S 316 ), and sends the data and generated read-data secure attribute to the processor 10 (step S 317 ).
- the operation unit 113 of the processor core 101 acquires the sent data via the memory management unit 114 (step S 318 ), and the data cache 104 acquires the sent data as well (step S 319 ). Note that if secure processing identification information is attached to the read-data secure attribute acquired from the memory interface 20 , the operation unit 113 acquires the secure processing identification information along with the data in step S 318 .
- the data attribute management unit 105 acquires the read-data secure attribute, and manages the acquired read-data secure attribute in the attribute management table (step S 320 ).
- FIG. 13 is a flowchart showing overall operations of the secure processing system 1 that accompany reversion processing performed when the processor core 101 reverts from the secure mode to the normal mode.
- the processor core 101 sends the memory disabling unit 108 a notification of reversion from the secure mode to the normal mode (step S 401 ).
- the memory disabling unit 108 receives the notification from the processor core 101 .
- the memory disabling unit 108 repeats the processing of step S 402 to step S 408 for each of the caches. Specifically, the memory disabling unit 108 repeats the processing of step S 402 to step S 408 for the instruction cache 102 and the data cache 104 .
- the memory disabling unit 108 repeats the processing of step S 403 to step S 407 for each cache line.
- the memory disabling unit 108 refers to the instruction attribute management unit 103 and the data attribute management unit 105 , and judges whether the respective secure attribute included in the read-data secure attribute of the targeted cache line is set to “secure” or “normal” (step S 405 ) If the secure attribute is set to “normal” (step S 405 :NO), processing moves to step S 407 . If the secure attribute is set to “secure” (step S 405 :YES), the memory disabling unit 108 disables the cache line to put the instruction code or data stored in the cache line into an unreadable condition (step S 406 ).
- step S 407 After processing on all of the cache lines has ended (step S 407 ), and processing with respect to the instruction cache 102 and the data cache 104 has ended (step S 408 ), the memory disabling unit 108 issues the processor core 101 a completion notification for the cache disabling processing (step S 409 ).
- the processor core 101 Upon receiving the completion notification from the memory disabling unit 108 , the processor core 101 switches the operating mode from the secure mode to the normal mode (step S 410 ).
- Embodiment 1 is based on the premise that the processor has a secure mode and a normal mode, and embodiment 1 therefore cannot be applied to a processor that does not have a secure mode.
- the following described embodiment 2 therefore aims to provide a processor, memory interface and secure processing system that can handle secure resources, without the processor having a secure mode.
- FIG. 14 shows a structure of the secure processing system 2 .
- the secure processing system 2 includes a processor 10 a , a memory interface 20 a , a memory 30 a , a bus 40 a , a bus 50 a , and a secure module 60 a.
- Characteristic features of the secure processing system 2 are that the processor 10 a operates in only the normal mode, without implementing security, and that the secure module 60 a has been provided.
- the processor 10 a includes a processor core 101 a , an instruction cache 102 a , an instruction attribute management unit 103 a , a data cache 104 a , a data attribute management unit 105 a , a data access determination unit 107 a , and a bus interface 109 a.
- the structure of the processor 10 a differs from that of the processor 10 in embodiment 1 in that neither an instruction access determination unit nor a memory disabling unit has been provided.
- the instruction access determination unit has not been provided since the processor 10 a operates in only the normal mode, and therefore an access request secure attribute is not issued in the case of an instruction fetch.
- the memory disabling unit has not been provided since the processor 10 a operates in only the normal mode, and therefore processing for reverting from the secure mode to the normal mode, such as in embodiment 1, does not occur.
- the processor core 101 a includes an instruction fetch unit 110 a , a decoding unit 111 a , a control unit 112 a , an operation unit 113 a , and a memory management unit 114 a .
- the processor core 101 a does not have a secure mode for performing secure processing, and therefore operates in only the normal mode.
- the constituent elements of the processor core 101 a have the same functions as the corresponding constituent elements of the processor core 101 , and descriptions of the same functions have therefore been omitted.
- the following description centers on differences from the processor core 101 .
- the instruction fetch unit 110 a of the processor core 101 a acquires instruction code and a read data secure attribute from the instruction cache 102 a or the memory 30 a .
- the read-data secure attribute is information that is set based on the recording position of the instruction code, and is sent to the processor 10 a along with the instruction code read from the memory 30 a by the memory interface 20 a.
- the instruction code acquired by the instruction fetch unit 110 a is decoded by the decoding unit 111 a , and interpreted by the control unit 112 a .
- the read-data secure attribute acquired by the instruction fetch unit 110 a is output to the memory management unit 114 a via the control unit 112 a , without passing through the decoding unit 111 a.
- the memory management unit 114 a sets the read-data secure attribute received from the control unit 112 a to an access request secure attribute corresponding to an access request of the data fetch, outputs the access request and the access request secure attribute to the data access determination unit 107 a.
- the memory management unit 114 a sets the access request secure attribute of the data fetch to “secure” if the read-data secure attribute of the instruction code is set to “secure”, and to “normal” if the read-data secure attribute of the data fetch is set to “normal”.
- the instruction cache 102 a is high-speed/low-capacity memory constituted from SRAM, and stores instruction code sent from the memory 30 a.
- the instruction attribute management unit 103 a manages the read-data secure attributes of the instruction code stored in each cache line of the instruction cache 102 a . Specifically, the instruction attribute management unit 103 a stores an attribute management table having the same structure as the attribute management table 130 shown in FIG. 3 , and manages the read-data secure attributes with use of the attribute management table.
- the data cache 104 a is high-speed/low-capacity memory constituted from SRAM, and stores data sent from the memory 30 a.
- the data attribute management unit 105 a manages the read-data secure attributes of the data stored in each cache line of the data cache 104 a.
- the data access determination unit 107 a determines whether data for which there was a cache-hit in data fetch processing performed by the memory management unit 114 a of the processor core 101 a is readable, according to the instruction being executed by the processor core 101 a at that time.
- the data access determination unit 107 a receives the access request along with the access request secure attribute from the memory management unit 114 a .
- the access request secure attribute has been set to either “secure” or “normal”.
- the data access determination unit 107 a determines that data whose read-data secure attribute is set to “secure” and data whose read-data secure attribute is set to “normal” are both readable.
- the data access determination unit 107 a determines that only data whose read-data secure attribute is set to “normal” is readable.
- the bus interface 109 a controls access to the bus 40 a and the bus 50 a by the processor 101 a.
- the memory interface 20 a includes a bus master identification unit, a secure area management unit, an accessibility determination unit, an access unit, and a read-data secure attribute generation unit.
- the memory interface 20 a performs processing according to instructions received via the bus 40 a and the bus 50 a.
- the bus master identification unit Upon receiving an access request from the bus 40 a or the bus 50 a , the bus master identification unit identifies the bus master that issued the received access request, and outputs a result of the identification to the accessibility determination unit. Note that in the present embodiment, although only the processor 10 a is mentioned as a bus master, if the memory interface 20 a receives access requests to the memory 30 a from two or more bus masters other than the processor 10 a , the bus master identification unit identifies the bus masters by providing dedicated ports for the bus masters.
- the secure area management unit stores a secure instruction area start address and a secure instruction area end address for a secure instruction area 301 a provided in the memory 30 a , and a secure data area start address and a secure data area end address for a secure data area 302 a also in the memory 30 a.
- the accessibility determination unit judges whether access to the secure instruction area 301 a can be performed, according to whether the bus master is the processor core 101 a . Specifically, access to the secure instruction area 301 a can be performed if the result received from the bus master identification unit is that the bus master is the processor core 101 a , and access to the secure instruction area 301 a cannot be performed if the result received from the bus master identification unit is that the bus master is not the processor core 101 a.
- the accessibility determination unit receives an access request secure attribute from the bus master, and therefore judges whether access to the secure data area 302 a can be performed according to the received access request secure attribute. Specifically, access to the secure data area 302 a can be performed if the access request secure attribute is set to “secure”, but cannot be performed if the access request secure attribute is set to “normal”.
- the memory 30 a is constituted from SDRAM. As shown in FIG. 14 , the memory 30 a includes the secure instruction area 301 a and the secure data area 302 a.
- the secure instruction area 301 a is an area that stores confidential instruction code, and is accessible only by access performed by the processor core 101 a .
- the secure data area 302 a is an area that stores confidential data, and is accessible only by secure attribute-attached access performed by the processor core 101 a.
- the bus 40 a is a communication pathway between the processor 10 a and the memory interface 20 a .
- Write data, instructions and access requests are transmitted from the bus interface 109 a of the processor 10 a to the memory interface 20 a via the bus 40 a .
- read data and read-data secure attributes are transmitted from the memory interface 20 a to the bus interface 109 a of the processor 10 a via the bus 40 a.
- the bus 50 a is a communication pathway between the processor 10 a and the secure module 60 a .
- Write data, instructions, access requests, and access request secure attributes are transmitted from the bus interface 109 a of the processor 10 a to the secure module 60 a via the bus 50 a .
- read data is transmitted from the secure module 60 a to the bus interface 109 a of the processor 10 a via the bus 50 a.
- the secure module 60 a is a module pertaining to secure processing, and specific examples of such a module include an encryption/decryption unit for encrypting and decrypting content with use of private key information, and a timer that manages a secure time period for license management.
- the secure module 60 a receives an access request and an access request secure attribute from the processor core 101 a via the bus 50 a .
- the access request secure attribute is set to “secure” or “normal”, where “secure” indicates that the access request arose due to the execution of confidential instruction code, and where “normal” indicates that the access request arose due to the execution of non-confidential instruction code.
- the secure module 60 a permits access only when the access request has arisen by the execution of confidential instruction code.
- the secure module 60 a judges the setting of the access request secure attribute. If the access request secure attribute is set to “secure”, the secure module 60 a enables the access request received from the processor core 101 a and performs processing. If the access request secure attribute is set to “normal”, the secure module 60 a disables the access request received from the processor core 101 a , and does not perform processing.
- FIG. 15 is a flowchart showing overall operations of the secure processing system 2 .
- the instruction fetch unit 110 a of the processor core 101 a fetches instruction code (step S 501 ), thereby acquiring the instruction code and a read-data secure attribute.
- the instruction fetch unit 110 a stores the fetched instruction code in a prefetch queue.
- the decoding unit 111 a retrieves the instruction code from the prefetch queue, and converts the retrieved instruction code to low-level code.
- the resulting low-level code is stored in an instruction queue.
- the control unit 112 a receives the low-level code from the instruction queue, and interprets the received low-level code (step S 502 ).
- the operation unit 113 a reads a register operand from a register file (step S 503 ).
- the operation unit 113 a shifts the operand and generates an ALU result. If the instruction is a load or a store, the operation unit 113 a executes the instruction by calculating a memory address or the like (step S 504 ). If a data access is necessary, the memory management unit 114 a issues an access request and an access request secure attribute, and reads data from the data cache 104 a or the memory 30 a (step S 505 ).
- the read-data secure attribute acquired during the instruction fetch of step S 501 is input by the instruction fetch unit 110 a to the memory management unit 114 a via the control unit 112 a , without passing through the decoding unit 111 a .
- the memory management unit 114 a sets the read-data secure attribute as the access request secure attribute of a data fetch, and issues the access request secure attribute of the data fetch to the data access determination unit 107 a.
- step S 506 whether access to the secure module 60 a has been requested is determined (step S 506 ), and if access to the secure module 60 a has not been requested (step S 506 :NO), the operation unit 113 a writes the data loaded from the data cache 104 a or the memory 30 a and a result generated by the instruction back to the register file (step S 507 ), and the processing returns to step S 501 and continues from there.
- step S 506 If access to the secure module 60 a has been requested (step S 506 :YES), the memory management unit 114 a receives, from the control unit 112 a , a read-data secure attribute corresponding to the instruction code executed in step S 504 , and judges whether the received read-data secure attribute is set to “secure” or “normal” (step S 508 ). If the read-data secure attribute is set to “secure” (step S 509 :SECURE), the memory management unit 114 a sets the access request secure attribute to “secure” (step S 510 ). If the read-data secure attribute is set to “normal” (step S 509 :NORMAL), the memory management unit 114 a sets the access request secure attribute to “normal” (step S 511 ).
- the memory management unit 114 a sends the access request and the access request secure attribute generated in step S 510 or step S 511 to the secure module 60 a via the bus interface 109 a and the bus 50 a (step S 512 ), and the secure module 60 a performs processing according to the received access request (step S 513 ). Thereafter, processing returns to step S 501 and continues from there.
- FIG. 16 is a flowchart showing overall operations of the secure processing system 2 that accompany an instruction fetch performed by the processor core 101 a.
- the instruction fetch unit 110 a of the processor core 101 a issues an access request (step S 601 ), and the instruction cache 102 a receives the access request and judges whether the instruction code to which access has been requested is stored in the instruction cache 102 a (step S 602 ).
- step S 602 In the case of a cache hit (step S 602 :YES), the instruction cache 102 a reads the instruction code from the access destination cache line, and sends the read instruction code and a corresponding read-data secure attribute to the processor core 101 a (step S 603 ). In the case of a cache miss-hit (step S 602 :NO), the access request is send from the bus interface 109 a to the memory interface 20 a via the bus 40 a (step S 604 )
- the bus master identification unit of the memory interface 20 a Upon receiving the access request, the bus master identification unit of the memory interface 20 a identifies the bus master that issued the received access request, and outputs the identification result to the accessibility determination unit.
- the accessibility determination unit extracts an access request destination address from the access request (step S 605 ), and furthermore acquires the secure instruction area start address and secure instruction area end address from the secure area management unit.
- the accessibility determination unit judges whether the access request destination address indicates the secure instruction area 301 a of the memory 30 a . If the access request destination address indicates an area other than the secure instruction area 301 a (step S 606 :NO), processing moves to step S 608 . If the access request destination address indicates the secure instruction area 301 a (step S 606 :YES), the accessibility determination unit judges whether the identification result received from the bus master identification unit is that the bus master is the processor core 101 a.
- step S 607 :NO If the bus master is not the processor core 101 a (step S 607 :NO), the secure processing system 2 ends processing. If the bus master is the processor core 101 a (step S 607 :YES), the accessibility determination unit outputs the access request destination address to the access unit.
- the access unit accesses a position in the memory 30 a indicated by the access request destination address, and reads the instruction code at the position (step S 608 ). Upon reading the instruction code, the access unit outputs the read instruction code and an access destination address to the read-data secure attribute generation unit.
- the access destination address is an address that indicates the storage location of the instruction code, and the access unit therefore outputs the access request destination address received from the accessibility determination unit as the access destination address.
- the read-data secure attribute generation unit generates a read-data secure attribute (step S 609 ), and sends the instruction code and generated read-data secure attribute to the processor 10 a (step S 610 ).
- the instruction fetch unit 110 a of the processor core 101 a acquires the instruction code and read-data secure attribute (step S 611 ), and the instruction cache 102 a also acquires the instruction code (step S 612 ).
- the instruction attribute management unit 103 a acquires the read-data secure attribute, and manages the acquired read-data secure attribute in the attribute management table (step S 613 ).
- FIG. 17 and FIG. 18 are flowcharts showing overall operations of the secure processing system 2 that accompany a data fetch performed by the processor core 101 a.
- the memory management unit 114 a of the processor core 101 a sets the read-data secure attribute of the instruction code as the access request secure attribute of the data fetch (step S 701 ), and issues an access request and the access request secure attribute (step S 702 ), which are received by the data access determination unit 107 a.
- the data cache 104 a receives the access request via the data access determination unit 107 a , and judges whether data to which access has been requested is stored in the data cache 104 a (step S 703 ).
- step S 703 In the case of a cache miss-hit (step S 703 :NO), processing moves to step S 711 and continues from there.
- step S 703 :YES the data access determination unit 107 a reads, from the attribute management table managed by the data attribute management unit 105 a , the read-data secure attribute corresponding to the access destination cache line. The data access determination unit 107 a judges whether the read-data secure attribute is set to “secure” or “normal”.
- step S 704 determines whether the access request secure attribute received from the memory management unit 114 a is set to “secure” or “normal”.
- step S 705 If the access request secure attribute is set to “normal” (step S 705 :NO), the secure processing system 2 ends processing. If the access request secure attribute is set to “secure” (step S 705 :YES), the data cache 104 a reads the data from the access destination cache line, and sends the read data to the processor core 101 a via the data access determination unit 107 a (step S 706 ).
- step S 703 the access request and the access request secure attribute are sent from the bus interface 109 a to the memory interface 20 a via the bus 40 a (step S 711 ).
- the accessibility determination unit of the memory interface 20 a receives the access request and access request secure attribute via the bus master identification unit.
- the accessibility determination unit extracts the access request destination address from the access request, and furthermore acquires the secure data area start address and the secure data area end address from the secure area management unit.
- the accessibility determination unit judges whether the access request destination address indicates the secure data area 302 a of the memory 30 a (step S 712 ). If the access request destination address indicates an area other than the secure data area 302 a (step S 713 :NO), processing moves to step S 715 . If the access request destination address indicates the secure data area 302 a (step S 713 :YES), the accessibility determination unit judges whether the access request secure attribute is set to “secure” or “normal”.
- step S 714 :NO If the access request secure attribute is set to “normal” (step S 714 :NO), the secure processing system 2 ends processing. If the access request secure attribute is set to “secure” (step S 714 :YES), the accessibility determination unit outputs the access request destination address to the access unit.
- the access unit accesses a position in the memory 30 a that is indicated by the access request destination address, and reads the data at the access position (step S 715 ). Upon reading the data, the access unit outputs the read data and the access destination address of the read data to the read-data secure attribute generation unit.
- the access destination address is an address that indicates a storage location of the data, and the access unit outputs the access request destination address received from the accessibility determination unit as the access destination address.
- the read-data secure attribute generation unit generates a read-data secure attribute (step S 716 ), and sends the data and generated read-data secure attribute to the processor 10 a (step S 717 ).
- the operation unit 113 a of the processor core 101 a acquires the sent data via the memory management unit 114 a (step S 718 ), and the data cache 104 a acquires the sent data as well (step S 719 )
- the data attribute management unit 105 a acquires the read-data secure attribute, and manages the acquired read-data secure attribute in the attribute management table (step S 720 ).
- FIG. 19 is a flowchart showing operations of the secure module 60 a . Note that the operations shown here are details of step S 513 in FIG. 15 .
- the secure module 60 a Upon receiving an instruction, an access request and an access request secure attribute from the processor core 101 a , the secure module 60 a judges whether the received access request secure attribute is set to “secure” or “normal” (step s 801 ). If the access request secure attribute is set to “secure” (step S 802 :SECURE), the secure module 60 a performs processing according to the received instruction (step S 803 ), and if the access request secure attribute is set to “normal”, the secure module 60 a denies the access (step S 804 ), and ends processing.
- Encryption DMA is a module that performs data transfers between an encryption function block (not depicted) and the memory 30 a , and in this case includes a DMA controller.
- the secure instruction area 301 a of the memory 30 a is accessible only by access performed by the processor core 101 a
- the secure data area 302 a is accessible only by a secure attribute-attached access performed by the processor core 101 a.
- the processor core 101 a issues an instruction indicating a fetch of instruction code for encryption DMA register configuration, and an access request 1001 . Due to the processor core 101 a lacking a secure mode, and therefore operating only in the normal mode, the access request 1001 output from the processor core 101 a is a normal access.
- the instruction code for encryption DMA register configuration is secure instruction code that is stored in the secure instruction area 301 a.
- the memory interface 20 a Upon receiving the instruction indicating access to the secure instruction area 301 a and the access request 1001 , the memory interface 20 a causes the bus master identification unit to check that the access request 1001 has been issued from the processor core 101 a , and acquires the instruction code for encryption DMA register configuration from the secure instruction area 301 a .
- the read-data secure attribute generation unit of the memory interface 20 a then sets a read-data secure attribute 1002 to “secure”, and sends the instruction code and a read-data secure attribute 1002 to the processor core 101 a.
- the memory interface 20 a Upon receiving the instruction indicating an access to the secure data area 302 a and the access request 1003 , the memory interface 20 a causes the accessibility determination unit to check that the access request secure attribute is set to “secure”, and acquires the data for the register configuration from the secure data area 302 a .
- the read-data secure attribute generation unit of the memory interface 20 a sets a read-data secure attribute 1004 to “secure”, and sends the data and a read-data secure attribute 1004 to the processor core 101 a.
- the processor core 101 a issues an instruction requesting register configuration and an access request 1005 to the encryption DMA.
- an access request secure attribute is set to the same “secure” indicated by the read-data secure attribute acquired from the memory interface 20 a in (S4), and the access request secure attribute is attached to the access request 1005 .
- the encryption DMA receives the instruction requesting registration configuration and the access request 1005 , checks that the access request secure attribute is set to “secure”, and performs registration configuration based on the data received from the processor core 101 a.
- cache memory is only one specific example.
- the internal memory of the present invention is not limited to cache memory.
- the memory 30 includes two secure areas, namely the secure area 1 ( 3001 ) and the secure area 2 ( 3002 ), in embodiment 1, the memory may include any number of secure areas in the present invention.
- the present invention also includes a case in which a portion or all of the function blocks of the processor 10 , the processor 10 a , the memory interface 20 , and the memory interface 20 a in the above embodiments are realized by an LSI, which is an integrated circuit.
- the function blocks may each be made into a single and separate chip, or may be made into a single chip including a portion or all portions thereof.
- the LSI referred to here is also called an IC, a system LSI, a super LSI, or an ultra LSI depending on the degree of integration.
- the integration is not limited to LSI implementation, but instead may be realized by a dedicated circuit.
- FPGA field programmable gate array
- silicon flexible processor in which the connection and settings of circuit cells in the LSI can be restructured is possible.
- the present invention also includes combinations of the above embodiments and the above variations.
- a processor and a secure processing system of the present invention can be used as a copyright protection mechanism for content in industries that distribute content. Also, the processor and the secure processing system can be used in industries that manufacture and sell an audio/video device including the processor or the secure processing system.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
Claims (3)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004342197 | 2004-11-26 | ||
JP2004-342197 | 2004-11-26 | ||
PCT/JP2005/021614 WO2006057316A1 (en) | 2004-11-26 | 2005-11-24 | Processor and secure processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
US20080052534A1 US20080052534A1 (en) | 2008-02-28 |
US7793083B2 true US7793083B2 (en) | 2010-09-07 |
Family
ID=36498052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/667,762 Active 2027-12-29 US7793083B2 (en) | 2004-11-26 | 2005-11-24 | Processor and system for selectively disabling secure data on a switch |
Country Status (4)
Country | Link |
---|---|
US (1) | US7793083B2 (en) |
JP (1) | JP4750719B2 (en) |
CN (1) | CN100489818C (en) |
WO (1) | WO2006057316A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10061940B2 (en) | 2013-07-09 | 2018-08-28 | Andes Technology Corporation | Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event |
US10223289B2 (en) | 2015-07-07 | 2019-03-05 | Qualcomm Incorporated | Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005216027A (en) * | 2004-01-30 | 2005-08-11 | Matsushita Electric Ind Co Ltd | Encryption device, encryption system therewith, decryption device and semiconductor system therewith |
GB2442023B (en) * | 2006-09-13 | 2011-03-02 | Advanced Risc Mach Ltd | Memory access security management |
EP2040192A4 (en) * | 2006-12-22 | 2011-03-30 | Panasonic Corp | Information processing device, integrated circuit, method, and program |
US8775824B2 (en) * | 2008-01-02 | 2014-07-08 | Arm Limited | Protecting the security of secure data sent from a central processor for processing by a further processing device |
DE102010028231A1 (en) * | 2010-04-27 | 2011-10-27 | Robert Bosch Gmbh | Memory module for simultaneously providing at least one secure and at least one non-secure memory area |
US8407783B2 (en) * | 2010-06-17 | 2013-03-26 | Mediatek Inc. | Computing system providing normal security and high security services |
US8988536B2 (en) * | 2010-12-23 | 2015-03-24 | Samsung Electronics Co., Ltd. | Image processing circuit, method of operation thereof, and digital camera including same |
US9117083B2 (en) * | 2011-02-14 | 2015-08-25 | Blackberry Limited | Managing booting of secure devices with untrusted software |
US8873747B2 (en) | 2012-09-25 | 2014-10-28 | Apple Inc. | Key management using security enclave processor |
US9047471B2 (en) * | 2012-09-25 | 2015-06-02 | Apple Inc. | Security enclave processor boot control |
US20140366131A1 (en) * | 2013-06-07 | 2014-12-11 | Andes Technology Corporation | Secure bus system |
JP5911835B2 (en) * | 2013-09-17 | 2016-04-27 | 株式会社東芝 | Information processing device |
CN104463028B (en) * | 2013-09-25 | 2018-06-22 | 中国银联股份有限公司 | Safe mode reminding method and the mobile equipment for realizing this method |
EP3098077B1 (en) * | 2014-01-20 | 2021-09-22 | Apex Microelectronics Co., Ltd | Imaging cartridge memory chip parameter sending method, memory chip, and imaging cartridge |
US10691838B2 (en) * | 2014-06-20 | 2020-06-23 | Cypress Semiconductor Corporation | Encryption for XIP and MMIO external memories |
US9547778B1 (en) | 2014-09-26 | 2017-01-17 | Apple Inc. | Secure public key acceleration |
US10713272B1 (en) | 2016-06-30 | 2020-07-14 | Amazon Technologies, Inc. | Dynamic generation of data catalogs for accessing data |
US10621210B2 (en) | 2016-11-27 | 2020-04-14 | Amazon Technologies, Inc. | Recognizing unknown data objects |
US11277494B1 (en) | 2016-11-27 | 2022-03-15 | Amazon Technologies, Inc. | Dynamically routing code for executing |
US11481408B2 (en) | 2016-11-27 | 2022-10-25 | Amazon Technologies, Inc. | Event driven extract, transform, load (ETL) processing |
US11138220B2 (en) | 2016-11-27 | 2021-10-05 | Amazon Technologies, Inc. | Generating data transformation workflows |
US10963479B1 (en) | 2016-11-27 | 2021-03-30 | Amazon Technologies, Inc. | Hosting version controlled extract, transform, load (ETL) code |
US10545979B2 (en) | 2016-12-20 | 2020-01-28 | Amazon Technologies, Inc. | Maintaining data lineage to detect data events |
US11036560B1 (en) * | 2016-12-20 | 2021-06-15 | Amazon Technologies, Inc. | Determining isolation types for executing code portions |
GB201806465D0 (en) * | 2018-04-20 | 2018-06-06 | Nordic Semiconductor Asa | Memory-access controll |
GB201810659D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Secure-Aware Bus System |
GB201810662D0 (en) * | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Peripheral Access On A Secure-Aware Bus System |
GB201810653D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Secure peripheral interconnect |
CN112527390B (en) * | 2019-08-28 | 2024-03-12 | 武汉杰开科技有限公司 | Data acquisition method, microprocessor and device with storage function |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1073051A2 (en) | 1999-07-29 | 2001-01-31 | Pioneer Corporation | Signal processing apparatus and method and information recording medium to be used therein |
US6282657B1 (en) * | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
US6292874B1 (en) * | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
JP2002202720A (en) | 2000-12-28 | 2002-07-19 | Toshiba Corp | Method for sharing enciphered data area among processes in a tamper-resistant processor |
US20030140245A1 (en) | 2002-01-16 | 2003-07-24 | Franck Dahan | Secure mode for processors supporting MMU and interrupts |
US20040105298A1 (en) | 2002-11-18 | 2004-06-03 | Arm Limited | Apparatus and method for managing processor configuration data |
WO2004046934A2 (en) | 2002-11-18 | 2004-06-03 | Arm Limited | Secure memory for protecting against malicious programs |
US20040153672A1 (en) * | 2002-11-18 | 2004-08-05 | Arm Limited | Switching between secure and non-secure processing modes |
US20050198442A1 (en) * | 2004-03-02 | 2005-09-08 | Mandler Alberto R. | Conditionally accessible cache memory |
WO2005121979A1 (en) | 2004-06-14 | 2005-12-22 | Matsushita Electric Industrial Co., Ltd. | Access control device and access control method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1329787B1 (en) * | 2002-01-16 | 2019-08-28 | Texas Instruments Incorporated | Secure mode indicator for smart phone or PDA |
GB2396713B (en) * | 2002-11-18 | 2005-09-14 | Advanced Risc Mach Ltd | Apparatus and method for controlling access to a memory unit |
-
2005
- 2005-11-24 WO PCT/JP2005/021614 patent/WO2006057316A1/en not_active Application Discontinuation
- 2005-11-24 JP JP2006547838A patent/JP4750719B2/en active Active
- 2005-11-24 CN CNB2005800406635A patent/CN100489818C/en active Active
- 2005-11-24 US US11/667,762 patent/US7793083B2/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282657B1 (en) * | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
EP1073051A2 (en) | 1999-07-29 | 2001-01-31 | Pioneer Corporation | Signal processing apparatus and method and information recording medium to be used therein |
JP2001043139A (en) | 1999-07-29 | 2001-02-16 | Pioneer Electronic Corp | Signal processor and information recording medium used for the processor |
US6292874B1 (en) * | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
JP2002202720A (en) | 2000-12-28 | 2002-07-19 | Toshiba Corp | Method for sharing enciphered data area among processes in a tamper-resistant processor |
US20030126458A1 (en) | 2000-12-28 | 2003-07-03 | Kabushiki Kaisha Toshiba | Method for sharing encrypted data region among processes in tamper resistant processor |
US20030140245A1 (en) | 2002-01-16 | 2003-07-24 | Franck Dahan | Secure mode for processors supporting MMU and interrupts |
US20040105298A1 (en) | 2002-11-18 | 2004-06-03 | Arm Limited | Apparatus and method for managing processor configuration data |
WO2004046934A2 (en) | 2002-11-18 | 2004-06-03 | Arm Limited | Secure memory for protecting against malicious programs |
US20040153672A1 (en) * | 2002-11-18 | 2004-08-05 | Arm Limited | Switching between secure and non-secure processing modes |
US20050198442A1 (en) * | 2004-03-02 | 2005-09-08 | Mandler Alberto R. | Conditionally accessible cache memory |
WO2005121979A1 (en) | 2004-06-14 | 2005-12-22 | Matsushita Electric Industrial Co., Ltd. | Access control device and access control method |
Non-Patent Citations (1)
Title |
---|
AMBA AXI Protocol v1.0 Specification. |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10061940B2 (en) | 2013-07-09 | 2018-08-28 | Andes Technology Corporation | Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event |
US10223289B2 (en) | 2015-07-07 | 2019-03-05 | Qualcomm Incorporated | Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management |
Also Published As
Publication number | Publication date |
---|---|
WO2006057316A1 (en) | 2006-06-01 |
CN100489818C (en) | 2009-05-20 |
CN101065737A (en) | 2007-10-31 |
JPWO2006057316A1 (en) | 2008-06-05 |
US20080052534A1 (en) | 2008-02-28 |
JP4750719B2 (en) | 2011-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7793083B2 (en) | Processor and system for selectively disabling secure data on a switch | |
US10719632B2 (en) | Data processing systems | |
JP4872001B2 (en) | Memory access safety management | |
US9471513B2 (en) | Cache structure for a computer system providing support for secure objects | |
US8191155B2 (en) | Microprocessor | |
US9626303B2 (en) | Data processing apparatus and address space protection method | |
US8135962B2 (en) | System and method providing region-granular, hardware-controlled memory encryption | |
US7673152B2 (en) | Microprocessor with program and data protection function under multi-task environment | |
JP4989543B2 (en) | Security control in data processing system based on memory domain | |
US7698507B2 (en) | Protecting system management mode (SMM) spaces against cache attacks | |
US20110131381A1 (en) | Cache scratch-pad and method therefor | |
US20110107336A1 (en) | Microprocessor | |
JP2008530656A (en) | System and method for restricting access to cache during data transfer | |
Wilson et al. | Implementing embedded security on dual-virtual-cpu systems | |
US20040187019A1 (en) | Information processing apparatus | |
JP2005512228A (en) | System and method for controlling device access to memory providing enhanced memory access security | |
US20080077749A1 (en) | Access control of memory space in microprocessor systems | |
JP2006293516A (en) | Bus access control unit | |
JP2007310601A (en) | Microcomputer and method for protecting its software | |
JP2007109053A (en) | Bus access controller | |
TWI312253B (en) | Data processing apparatus and method for controlling access to a memory in the same | |
JP2002244757A (en) | Semiconductor circuit | |
JP2010134572A (en) | Device and method for achieving security | |
US12008087B2 (en) | Secure reduced power mode | |
JP2011150457A (en) | Information processing apparatus and memory access control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD., JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HARADA, MASAAKI;SEKIBE, TSUTOMU;REEL/FRAME:020321/0435 Effective date: 20070420 |
|
AS | Assignment |
Owner name: PANASONIC CORPORATION, JAPAN Free format text: CHANGE OF NAME;ASSIGNOR:MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD.;REEL/FRAME:021897/0606 Effective date: 20081001 Owner name: PANASONIC CORPORATION,JAPAN Free format text: CHANGE OF NAME;ASSIGNOR:MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD.;REEL/FRAME:021897/0606 Effective date: 20081001 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: GODO KAISHA IP BRIDGE 1, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PANASONIC CORPORATION;REEL/FRAME:035510/0059 Effective date: 20150317 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |