US20220121588A1 - Direct memory access (DMA) controller, electronic device using the DMA controller and method of operating the DMA controller - Google Patents

Direct memory access (DMA) controller, electronic device using the DMA controller and method of operating the DMA controller Download PDF

Info

Publication number
US20220121588A1
US20220121588A1 US17/488,637 US202117488637A US2022121588A1 US 20220121588 A1 US20220121588 A1 US 20220121588A1 US 202117488637 A US202117488637 A US 202117488637A US 2022121588 A1 US2022121588 A1 US 2022121588A1
Authority
US
United States
Prior art keywords
dma channel
dma
secure
mode
operating
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.)
Granted
Application number
US17/488,637
Other versions
US11829310B2 (en
Inventor
Chen-Tung Lin
Yue-Feng Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Assigned to REALTEK SEMICONDUCTOR CORPORATION reassignment REALTEK SEMICONDUCTOR CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHEN, YUE-FENG, LIN, CHEN-TUNG
Publication of US20220121588A1 publication Critical patent/US20220121588A1/en
Application granted granted Critical
Publication of US11829310B2 publication Critical patent/US11829310B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers

Definitions

  • the present invention generally relates to a direct memory access (DMA) controller, and, more particularly, to a shared DMA controller and a method of operating the DMA controller.
  • DMA direct memory access
  • SoC System on a Chip
  • an object of the present invention is to provide a DMA controller, an electronic device using the DMA controller, and a method of operating the DMA controller, so as to make an improvement to the prior art.
  • a direct memory access (DMA) controller configured to access a memory containing a secure area and a non-secure area.
  • the DMA controller includes a DMA channel, a mode register, a configuration interface, and a control circuit.
  • the mode register is configured to store a register value. When the register value is a first value, the DMA channel operates in a secure mode, and when the register value is a second value, the DMA channel operates in a non-secure mode.
  • the configuration interface is configured to receive a control command.
  • the control circuit is coupled to the DMA channel and configured to set the register value of the mode register according to the control command
  • the DMA channel is able to access the secure area and the non-secure area
  • the DMA channel is able to access the non-secure area but unable to access the secure area.
  • an electronic device includes a processor, a memory, and a DMA controller.
  • the processor is configured to generate a control command which is configured to set an operation mode of the DMA controller.
  • the memory contains a secure area and a non-secure area.
  • the DMA controller is coupled to the processor and the memory through a bus and includes a DMA channel, a configuration interface, and a mode register.
  • the DMA controller receives the control command through the configuration interface.
  • the mode register is configured to store a register value corresponding to the control command. When the register value is a first value, the DMA channel operates in a secure mode, and when the register value is a second value, the DMA channel operates in a non-secure mode.
  • the DMA channel When the DMA channel is operating in the secure mode, the DMA channel is able to access the secure area and the non-secure area, and when the DMA channel is operating in the non-secure mode, the DMA channel is able to access the non-secure area but unable to access the secure area.
  • a method of operating a DMA controller is provided.
  • the DMA controller is configured to access a memory containing a secure area and a non-secure area.
  • the method including the steps of: searching for a DMA channel in an idle state in the DMA controller; controlling the DMA channel to operate in a secure mode by setting a register value of a mode register of the DMA channel; setting a memory address register and a byte count register of the DMA channel; and controlling the DMA channel to perform data transfer based on the memory address register and the byte count register.
  • the DMA controller or its DMA channel can switch between the secure mode and the non-secure mode.
  • the DMA controller or its DMA channel of the present invention can use a single circuit or hardware to perform both the secure mode DMA operation and the non-secure mode DMA operation, thus saving hardware resources and reducing costs.
  • FIG. 1 is a functional block diagram of a DMA controller according to an embodiment of the present invention.
  • FIG. 2 is a flowchart of a method of operating a DMA controller according to an embodiment of the present invention.
  • FIG. 3A is an example reply content that the DMA channel 120 generates in response to polling.
  • FIG. 3B is another example reply content that the DMA channel 120 generates in response to polling.
  • FIG. 4 is an embodiment of a selection circuit that the DMA channel 120 uses to respond to polling.
  • FIG. 5 shows a flowchart of the secure mechanism of the DMA controller or DMA channel according to an embodiment of the present invention.
  • the disclosure herein includes a direct memory access (DMA) controller, an electronic device using the DMA controller, and a method of operating the DMA controller.
  • DMA direct memory access
  • the detail of such elements is omitted provided that such detail has little to do with the features of this disclosure, and that this omission nowhere dissatisfies the specification and enablement requirements.
  • a person having ordinary skill in the art can choose components or steps equivalent to those described in this specification to carry out the present invention, which means that the scope of this invention is not limited to the embodiments in the specification.
  • the DMA controller includes two DMA channels or more. However, in other embodiments, the DMA controller may include only one DMA channel. When the DMA controller includes only one DMA channel, operating the DMA controller is equivalent to operating the DMA channel, and vice versa.
  • FIG. 1 is a functional block diagram of a DMA controller according to an embodiment of the present invention.
  • the DMA controller 100 includes a control circuit 110 , multiple DMA channels 120 (including, but not exclusively, the two DMA channels depicted in the figure: the DMA channel 0 ( 120 - 0 ) and the DMA channel 1 ( 120 - 1 )), a configuration interface 130 , and a master interface 140 .
  • Each DMA channel 120 includes a register file 121
  • each register file 121 includes a mode register 122 , a memory address register 124 , and a byte count register 126 .
  • the control circuit 110 may also be referred to as an arbitrator of the DMA controller 100 and may be hardware or a combination of software and hardware.
  • the control circuit 110 may be a finite state-machine (FSM) embodied by logic circuits.
  • FSM finite state-machine
  • the control circuit 110 includes a computing unit and a memory.
  • a computing unit is a circuit or electronic component (such as a microprocessor, a micro-processing unit, a digital signal processor, or an application specific integrated circuit (ASIC)) that has the program execution capability.
  • the computing unit executes the program codes or program instructions stored in the memory to carry out the functions of the control circuit 110 .
  • the DMA channel 120 can operate in a secure mode or a non-secure mode, and the DMA channel 0 ( 120 - 0 ) and the DMA channel 1 ( 120 - 1 ) are independent of each other.
  • the DMA channel 0 ( 120 - 0 ) and the DMA channel 1 ( 120 - 1 ) can both be operating in the secure mode or the non-secure mode at the same time, or alternatively, one of which can be operating in the secure mode while the other of which is operating in the non-secure mode.
  • the DMA channel 120 When the register value of the mode register 122 of the DMA channel 120 is the first value (e.g., logic 1), the DMA channel 120 operates in the secure mode, and when the register value of the mode register 122 of the DMA channel 120 is the second value (e.g., logic 0), the DMA channel 120 operates in a non-secure mode.
  • the first value e.g., logic 1
  • the second value e.g., logic 0
  • the DMA controller 100 or the DMA channel 120 When the DMA controller 100 or the DMA channel 120 is set to the secure mode, the DMA controller 100 or the DMA channel 120 operates in the secure mode, and all subsequent setting or reading operations must be performed using the secure mode control commands
  • the non-secure mode control command attempts to read the DMA controller 100 or the DMA channel 120 , or attempts to transfer data by setting the DMA controller 100 or the DMA channel 120
  • the DMA controller 100 operating in the secure mode or the DMA channel 120 operating in the secure mode rejects these operations.
  • the DMA controller 100 operating in the secure mode or the DMA channel 120 operating in secure mode replies “0,” reserved value(s), or random value(s), rather than the genuine value, to prevent the non-secure mode software or hardware from knowing the settings of the DMA controller 100 operating in the secure mode or the settings of the DMA channel 120 operating in the secure mode.
  • the configuration interface 130 and the master interface 140 are coupled, through a bus 200 , to the processor 300 (such as a central processing unit, a microprocessor, a micro-processing unit, a digital signal processor, or an ASIC), a secure memory 400 , and a non-secure memory 500 .
  • the bus 200 may also be an interconnect matrix or a bus matrix.
  • the secure memory 400 and the non-secure memory 500 can be two separate physical memories (such as dynamic random access memories (DRAM)) or different blocks or areas of the same physical memory (i.e., secure/non-secure block, or secure/non-secure area).
  • the processor 300 transmits the control command CM through the bus 200
  • the DMA controller 100 receives the control command CM through the configuration interface 130 .
  • the control command CM can be used to set the register value of the mode register 122 of the DMA channel 120 .
  • the control command CM includes a security attribute, and the processor 300 generates a secure mode control command CM or a non-secure mode control command CM by controlling the value of the security attribute. More specifically, when operating in the secure mode, the processor 300 generates a control command CM whose security attribute is of a first logical value (e.g., logic 1); when operating in the non-secure mode, the processor 300 generates a control command CM whose security attribute is of a second logical value (e.g., logic 0).
  • a first logical value e.g., logic 1
  • the processor 300 when operating in the non-secure mode, the processor 300 generates a control command CM whose security attribute is of a second logical value (e.g., logic 0).
  • the control circuit 110 sets the mode register 122 of the target DMA channel 120 according to the control command CM. More specifically, the control circuit 110 sets the mode register 122 of the target DMA channel 120 based on the security attribute. For example, when the security attribute of the control command CM is of the first logical value (e.g., logic 1), the control circuit 110 sets the register value of the mode register 122 of the target DMA channel 120 to the first logical value; when the security attribute of the control command CM is of the second logical value (e.g., logic 0), the control circuit 110 sets the register value of the mode register 122 of the target DMA channel 120 to the second logical value.
  • the security attribute of the control command CM is of the first logical value (e.g., logic 1)
  • the control circuit 110 sets the register value of the mode register 122 of the target DMA channel 120 to the first logical value
  • the security attribute of the control command CM is of the second logical value (e.g., logic 0)
  • the control circuit 110 sets
  • the configuration interface 130 may be an Advanced Peripheral Bus (APB), and the security attribute is one of the bits (e.g., bit one, namely, Pprot[ 1 ]) of the protection signal (Pprot).
  • the configuration interface 130 may be an Advanced High-performance Bus (AHB) or other interfaces.
  • the processor 300 when operating in the secure mode, can read the settings that another processor, which is not shown and operates in the non-secure mode, made to the DMA controller 100 or the DMA channel 120 .
  • the processor 300 when operating in the secure mode, can further control the behavior of the DMA controller 100 and/or the DMA channel 120 . For example, when the DMA controller 100 or the DMA channel 120 is set to the secure mode, another processor operating in the non-secure mode cannot obtain the DMA controller 100 or the DMA channel 120 to transfer data for itself.
  • the DMA channel 120 When the DMA channel 120 is operating in the secure mode, the DMA channel 120 can access the secure memory 400 and the non-secure memory 500 . When the DMA channel 120 is operating in the non-secure mode, the DMA channel 120 can access the non-secure memory 500 but cannot access the secure memory 400 . More specifically, the DMA channel 120 transmits the read/write command CRW to the secure memory 400 and/or the non-secure memory 500 through the master interface 140 and the bus 200 . The master interface 140 can distinguish between secure mode commands and non-secure mode commands The read/write command CRW contains the security attribute, and the secure memory 400 determines whether to allow read and/or write operations based on the security attribute.
  • the security attribute of the read/write command CRW that the DMA channel 120 issues is of the first logical value (corresponding to the secure mode), causing the secure memory 400 and the non-secure memory 500 to permit read and/or write operations;
  • the security attribute of the read/write command CRW that the DMA channel 120 issues is of the second logical value (corresponding to the non-secure mode), causing the secure memory 400 not to permit read and/or write operations but causing the non-secure memory 500 to permit read and/or write operations.
  • the master interface 140 may be the APB, the AHB, or an Advanced eXtensible Interface, (AXI).
  • the bus 200 determines whether to allow the DMA controller 100 or the DMA channel 120 to access the secure memory 400 .
  • FIG. 2 is a flowchart of a method of operating a DMA controller according to an embodiment of the present invention.
  • the processor 300 operates in the secure mode (step S 210 ) and needs to find an idle (i.e., not in use) DMA controller or DMA channel (step S 220 ).
  • the processor 300 queries the DMA controller 100 or the DMA channel 120 about its state with a query command QM, for example, visiting each DMA channel 120 of the DMA controller 100 by polling.
  • the DMA channel 120 generates a reply content RC, and the reply content RC is associated with the operation mode of the processor 300 (i.e., the secure mode or the non-secure mode), as illustrated in FIGS. 3A and 3B .
  • FIG. 3A shows the reply content RC that the DMA channel 120 generates in response to the polling signal from a processor (e.g., the processor 300 ) operating in the secure mode
  • FIG. 3B shows the reply content RC that the DMA channel 120 generates in response to the polling signal from a processor (e.g., the processor 300 ) operating in the non-secure mode.
  • the current operation modes of DMA channel 0 to DMA channel 3 are non-secure mode, non-secure mode, secure mode, and secure mode, respectively, and that the current states of DMA channel 0 to DMA channel 3 are busy, idle, idle, and busy, respectively.
  • the reply content RC that the DMA channel 120 generates includes the current operation mode and the genuine state (i.e., idle or busy) of the DMA channel 120 .
  • the genuine state refers to the current state which has not been adjusted, modified or changed of the DMA channel 120 . Therefore, the processor 300 , when operating in the secure mode, can know the current operation mode and the genuine state of the DMA channel 120 .
  • the reply content RC that the DMA channel 120 generates includes the state but not the operation mode, and the state in the reply content RC may not necessarily be the current genuine state of the DMA channel 120 . More specifically, when the DMA channel operating in the non-secure mode receives a polling signal from the processor 300 which is operating in the non-secure mode, the DMA channel operating in the non-secure mode replies the current state but does not reply the operation mode; when the DMA channel operating in the secure mode receives a polling signal from the processor 300 which is operating in the non-secure mode, the DMA channel operating in the secure mode always replies “busy” and does not reply the operation mode.
  • the DMA channel 2 replies a fake state or a dummy state to prevent the processor 300 which is operating in the non-secure mode from accessing the DMA channel which is operating in the secure mode. Therefore, the processor 300 , when operating in the non-secure mode, can know the genuine state of the DMA channel operating in the non-secure mode but cannot know the genuine state of the DMA channel operating in the secure mode, and the processor 300 , when operating in the non-secure mode, cannot know the operation mode of the DMA channel With such a design, the processor 300 , when operating in the non-secure mode, cannot set the DMA controller 100 operating in the secure mode or the DMA channel 120 operating in the secure mode.
  • the processor 300 when operating in the non-secure mode, can query the DMA controller 100 or the DMA channel 120 about whether it is idle but cannot stop the DMA controller 100 or the DMA channel 120 or cannot control the DMA controller 100 or the DMA channel 120 to leave the secure mode.
  • the DMA channel 120 operating in the secure mode utilizes the selection circuit 600 (e.g., a multiplexer) to reply the genuine state or the dummy state based on the security attribute of the control command CM.
  • the selection circuit 600 e.g., a multiplexer
  • the DMA channel 120 replies the genuine state; when the security attribute is logic 0 (corresponding to the non-secure mode), the DMA channel 120 replies the dummy state.
  • step S 220 when the processor 300 does not find an idle DMA controller or DMA channel (i.e., the result of step S 220 is NO), the processor 300 continues to search for an idle DMA controller or DMA channel (step S 220 ). Upon finding an idle DMA controller or DMA channel (i.e., the result of step S 220 is YES), the processor 300 controls the idle DMA channel to operate in the secure mode by changing the register value of the mode register 122 of the idle DMA channel (step S 230 ). After setting the mode register 122 , the processor 300 proceeds to set the memory address register 124 and the byte count register 126 of the DMA channel through other control commands (step S 240 ).
  • the processor 300 can store the address of the to-be-read/written memory block in the memory address register 124 and store the amount of data in the byte count register 126 .
  • the DMA channel 120 performs data transfer by sending a read/write command CRW through the master interface 140 according to the register value in the memory address register 124 and the register value in the byte count register 126 (step S 250 ).
  • step S 270 the DMA channel 120 issues an interrupt to notify the processor 300 that the data transfer has been finished, and then the processor 300 determines whether to control the DMA channel to operate in the non-secure mode (step S 270 ).
  • the processor 300 wants to continue using the DMA channel, the processor 300 does not control the DMA channel to operate in the non-secure mode (i.e., the result of step S 270 is NO) and then continues to select the same DMA channel in step S 220 .
  • the processor 300 controls the DMA channel to operate in the non-secure mode (i.e., the result of step S 270 is YES).
  • the processor 300 controls the DMA channel to operate in the non-secure mode by changing the register value of the mode register 122 of the DMA channel (step S 280 ), so that other processors operating in the non-secure mode can find the DMA channel in step S 220 .
  • FIG. 2 takes the processor 300 operating in the secure mode as an example, people having ordinary skill in the art can apply the present invention to the processor 300 operating in the non-secure mode according to the above discussions, and the details are omitted for brevity.
  • the DMA controller or DMA channel of the present invention is applied to an electronic device 10 (e.g., devices with computing capabilities and data storage capabilities (such as a computer and a portable electronic device), or a system-on-a-chip (SoC)), and the processor 300 may be the central processing unit, microprocessor, micro-processing unit, digital signal processor, or ASIC of the electronic device 10 .
  • the DMA controller or DMA channel of the present invention has a secure mechanism to protect confidential or sensitive data in the electronic device 10 .
  • FIG. 5 shows the flow of the secure mechanism.
  • the DMA channel or DMA controller operating in the secure mode keeps monitoring whether the number of the non-secure mode control commands received is greater than the threshold value (steps S 510 and S 520 ).
  • a non-secure mode control command is the command whose security attribute corresponds to the non-secure mode and which is usually issued by a processor operating in the non-secure mode.
  • the DMA channel operating in the secure mode issues an interrupt INTR (step S 530 ).
  • the processor 300 when operating in the secure mode, receives the interrupt INTR and restarts or shuts down the electronic device 10 in response to the interrupt INTR (step S 540 ) to reduce the risk of data theft.
  • the threshold value can be zero, in which case steps S 530 and S 540 are performed provided that the DMA channel or DMA controller operating in the secure mode receives one non-secure mode control command
  • the reliability of the secure mechanism is improved by restraining the processor operating in the non-secure mode from receiving (or even knowing the presence of) the interrupt INTR.
  • the present invention provides a DMA controller and/or DMA channel that can operate in the secure mode or the non-secure mode, and a method of operating the DMA controller and/or DMA channel
  • the DMA controller operating in the non-secure mode and the DMA channel operating in the non-secure mode cannot obtain the data transferred by the DMA controller operating in the secure mode and the data transferred by the DMA channel operating in the secure mode.

Abstract

A direct memory access (DMA) controller, an electronic device that uses the DMA controller, and a method of operating the DMA controller are provided. The DMA controller is configured to access a memory that contains a secure area and a non-secure area. The method of operating the DMA controller includes the following steps: searching for a DMA channel that is in an idle state in the DMA controller; setting a register value of a mode register of the DMA channel such that the DMA channel operates in a secure mode; setting a memory address register and a byte count register of the DMA channel; and controlling the DMA channel to transfer data based on the memory address register and the byte count register.

Description

    BACKGROUND OF THE INVENTION 1. Field of the Invention
  • The present invention generally relates to a direct memory access (DMA) controller, and, more particularly, to a shared DMA controller and a method of operating the DMA controller.
  • 2. Description of Related Art
  • For security purposes, electronic devices usually store confidential or sensitive data in a secure area of a memory (which is also referred to as a secure memory) and store non-confidential or non-sensitive data in a non-secure area of the memory (which is also referred to as a non-secure memory). Therefore, a System on a Chip (SoC) that can switch between a secure mode and non-secure mode usually use separate DMA controllers or separate DMA channels for different modes. This approach, however, uses more resources because the DMA controller or DMA channel is not always used by the same security level (i.e., either the secure mode or non-secure mode).
  • SUMMARY OF THE INVENTION
  • In view of the issues of the prior art, an object of the present invention is to provide a DMA controller, an electronic device using the DMA controller, and a method of operating the DMA controller, so as to make an improvement to the prior art.
  • According to one aspect of the present invention, a direct memory access (DMA) controller configured to access a memory containing a secure area and a non-secure area is provided. The DMA controller includes a DMA channel, a mode register, a configuration interface, and a control circuit. The mode register is configured to store a register value. When the register value is a first value, the DMA channel operates in a secure mode, and when the register value is a second value, the DMA channel operates in a non-secure mode. The configuration interface is configured to receive a control command. The control circuit is coupled to the DMA channel and configured to set the register value of the mode register according to the control command When the DMA channel is operating in the secure mode, the DMA channel is able to access the secure area and the non-secure area, and when the DMA channel is operating in the non-secure mode, the DMA channel is able to access the non-secure area but unable to access the secure area.
  • According to another aspect of the present invention, an electronic device is provided. The electronic device includes a processor, a memory, and a DMA controller. The processor is configured to generate a control command which is configured to set an operation mode of the DMA controller. The memory contains a secure area and a non-secure area. The DMA controller is coupled to the processor and the memory through a bus and includes a DMA channel, a configuration interface, and a mode register. The DMA controller receives the control command through the configuration interface. The mode register is configured to store a register value corresponding to the control command. When the register value is a first value, the DMA channel operates in a secure mode, and when the register value is a second value, the DMA channel operates in a non-secure mode. When the DMA channel is operating in the secure mode, the DMA channel is able to access the secure area and the non-secure area, and when the DMA channel is operating in the non-secure mode, the DMA channel is able to access the non-secure area but unable to access the secure area.
  • According to still another aspect of the present invention, a method of operating a DMA controller is provided. The DMA controller is configured to access a memory containing a secure area and a non-secure area. The method including the steps of: searching for a DMA channel in an idle state in the DMA controller; controlling the DMA channel to operate in a secure mode by setting a register value of a mode register of the DMA channel; setting a memory address register and a byte count register of the DMA channel; and controlling the DMA channel to perform data transfer based on the memory address register and the byte count register.
  • According to the present invention, the DMA controller or its DMA channel can switch between the secure mode and the non-secure mode. In comparison with the traditional technology, the DMA controller or its DMA channel of the present invention can use a single circuit or hardware to perform both the secure mode DMA operation and the non-secure mode DMA operation, thus saving hardware resources and reducing costs.
  • These and other objectives of the present invention no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiments with reference to the various figures and drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a functional block diagram of a DMA controller according to an embodiment of the present invention.
  • FIG. 2 is a flowchart of a method of operating a DMA controller according to an embodiment of the present invention.
  • FIG. 3A is an example reply content that the DMA channel 120 generates in response to polling.
  • FIG. 3B is another example reply content that the DMA channel 120 generates in response to polling.
  • FIG. 4 is an embodiment of a selection circuit that the DMA channel 120 uses to respond to polling.
  • FIG. 5 shows a flowchart of the secure mechanism of the DMA controller or DMA channel according to an embodiment of the present invention.
  • DETAILED DESCRIPTION OF THE EMBODIMENTS
  • The following description is written by referring to terms of this technical field. If any term is defined in this specification, such term should be interpreted accordingly.
  • The disclosure herein includes a direct memory access (DMA) controller, an electronic device using the DMA controller, and a method of operating the DMA controller. On account of that some or all elements of the controller and the electronic device could be known, the detail of such elements is omitted provided that such detail has little to do with the features of this disclosure, and that this omission nowhere dissatisfies the specification and enablement requirements. A person having ordinary skill in the art can choose components or steps equivalent to those described in this specification to carry out the present invention, which means that the scope of this invention is not limited to the embodiments in the specification.
  • In the following embodiments, the DMA controller includes two DMA channels or more. However, in other embodiments, the DMA controller may include only one DMA channel. When the DMA controller includes only one DMA channel, operating the DMA controller is equivalent to operating the DMA channel, and vice versa.
  • FIG. 1 is a functional block diagram of a DMA controller according to an embodiment of the present invention. The DMA controller 100 includes a control circuit 110, multiple DMA channels 120 (including, but not exclusively, the two DMA channels depicted in the figure: the DMA channel 0 (120-0) and the DMA channel 1 (120-1)), a configuration interface 130, and a master interface 140. Each DMA channel 120 includes a register file 121, and each register file 121 includes a mode register 122, a memory address register 124, and a byte count register 126.
  • The control circuit 110 may also be referred to as an arbitrator of the DMA controller 100 and may be hardware or a combination of software and hardware. When the control circuit 110 is embodied by hardware, the control circuit 110 may be a finite state-machine (FSM) embodied by logic circuits. When the control circuit 110 is a combination of software and hardware, the control circuit 110 includes a computing unit and a memory. A computing unit is a circuit or electronic component (such as a microprocessor, a micro-processing unit, a digital signal processor, or an application specific integrated circuit (ASIC)) that has the program execution capability. The computing unit executes the program codes or program instructions stored in the memory to carry out the functions of the control circuit 110.
  • The DMA channel 120 can operate in a secure mode or a non-secure mode, and the DMA channel 0 (120-0) and the DMA channel 1 (120-1) are independent of each other. For example, the DMA channel 0 (120-0) and the DMA channel 1 (120-1) can both be operating in the secure mode or the non-secure mode at the same time, or alternatively, one of which can be operating in the secure mode while the other of which is operating in the non-secure mode. When the register value of the mode register 122 of the DMA channel 120 is the first value (e.g., logic 1), the DMA channel 120 operates in the secure mode, and when the register value of the mode register 122 of the DMA channel 120 is the second value (e.g., logic 0), the DMA channel 120 operates in a non-secure mode.
  • When the DMA controller 100 or the DMA channel 120 is set to the secure mode, the DMA controller 100 or the DMA channel 120 operates in the secure mode, and all subsequent setting or reading operations must be performed using the secure mode control commands When the non-secure mode control command attempts to read the DMA controller 100 or the DMA channel 120, or attempts to transfer data by setting the DMA controller 100 or the DMA channel 120, the DMA controller 100 operating in the secure mode or the DMA channel 120 operating in the secure mode rejects these operations. In some embodiments, when the non-secure mode software or hardware attempts to read the settings of the DMA controller 100 operating in the secure mode or the settings of the DMA channel 120 operating in the secure mode, the DMA controller 100 operating in the secure mode or the DMA channel 120 operating in secure mode replies “0,” reserved value(s), or random value(s), rather than the genuine value, to prevent the non-secure mode software or hardware from knowing the settings of the DMA controller 100 operating in the secure mode or the settings of the DMA channel 120 operating in the secure mode.
  • The configuration interface 130 and the master interface 140 are coupled, through a bus 200, to the processor 300 (such as a central processing unit, a microprocessor, a micro-processing unit, a digital signal processor, or an ASIC), a secure memory 400, and a non-secure memory 500. The bus 200 may also be an interconnect matrix or a bus matrix. The secure memory 400 and the non-secure memory 500 can be two separate physical memories (such as dynamic random access memories (DRAM)) or different blocks or areas of the same physical memory (i.e., secure/non-secure block, or secure/non-secure area). The processor 300 transmits the control command CM through the bus 200, and the DMA controller 100 receives the control command CM through the configuration interface 130. The control command CM can be used to set the register value of the mode register 122 of the DMA channel 120. The control command CM includes a security attribute, and the processor 300 generates a secure mode control command CM or a non-secure mode control command CM by controlling the value of the security attribute. More specifically, when operating in the secure mode, the processor 300 generates a control command CM whose security attribute is of a first logical value (e.g., logic 1); when operating in the non-secure mode, the processor 300 generates a control command CM whose security attribute is of a second logical value (e.g., logic 0).
  • In some embodiments, the control circuit 110 sets the mode register 122 of the target DMA channel 120 according to the control command CM. More specifically, the control circuit 110 sets the mode register 122 of the target DMA channel 120 based on the security attribute. For example, when the security attribute of the control command CM is of the first logical value (e.g., logic 1), the control circuit 110 sets the register value of the mode register 122 of the target DMA channel 120 to the first logical value; when the security attribute of the control command CM is of the second logical value (e.g., logic 0), the control circuit 110 sets the register value of the mode register 122 of the target DMA channel 120 to the second logical value. In some embodiments, the configuration interface 130 may be an Advanced Peripheral Bus (APB), and the security attribute is one of the bits (e.g., bit one, namely, Pprot[1]) of the protection signal (Pprot). In other embodiments, the configuration interface 130 may be an Advanced High-performance Bus (AHB) or other interfaces.
  • The processor 300, when operating in the secure mode, can read the settings that another processor, which is not shown and operates in the non-secure mode, made to the DMA controller 100 or the DMA channel 120. The processor 300, when operating in the secure mode, can further control the behavior of the DMA controller 100 and/or the DMA channel 120. For example, when the DMA controller 100 or the DMA channel 120 is set to the secure mode, another processor operating in the non-secure mode cannot obtain the DMA controller 100 or the DMA channel 120 to transfer data for itself.
  • When the DMA channel 120 is operating in the secure mode, the DMA channel 120 can access the secure memory 400 and the non-secure memory 500. When the DMA channel 120 is operating in the non-secure mode, the DMA channel 120 can access the non-secure memory 500 but cannot access the secure memory 400. More specifically, the DMA channel 120 transmits the read/write command CRW to the secure memory 400 and/or the non-secure memory 500 through the master interface 140 and the bus 200. The master interface 140 can distinguish between secure mode commands and non-secure mode commands The read/write command CRW contains the security attribute, and the secure memory 400 determines whether to allow read and/or write operations based on the security attribute. For example, when the DMA channel 120 is operating in the secure mode, the security attribute of the read/write command CRW that the DMA channel 120 issues is of the first logical value (corresponding to the secure mode), causing the secure memory 400 and the non-secure memory 500 to permit read and/or write operations; when, on the other hand, the DMA channel 120 is operating in the non-secure mode, the security attribute of the read/write command CRW that the DMA channel 120 issues is of the second logical value (corresponding to the non-secure mode), causing the secure memory 400 not to permit read and/or write operations but causing the non-secure memory 500 to permit read and/or write operations. In some embodiments, the master interface 140 may be the APB, the AHB, or an Advanced eXtensible Interface, (AXI). In some embodiments, the bus 200 determines whether to allow the DMA controller 100 or the DMA channel 120 to access the secure memory 400.
  • FIG. 2 is a flowchart of a method of operating a DMA controller according to an embodiment of the present invention. At first, the processor 300 operates in the secure mode (step S210) and needs to find an idle (i.e., not in use) DMA controller or DMA channel (step S220). In some embodiments, the processor 300 queries the DMA controller 100 or the DMA channel 120 about its state with a query command QM, for example, visiting each DMA channel 120 of the DMA controller 100 by polling. In response to the polling signal, the DMA channel 120 generates a reply content RC, and the reply content RC is associated with the operation mode of the processor 300 (i.e., the secure mode or the non-secure mode), as illustrated in FIGS. 3A and 3B.
  • FIG. 3A shows the reply content RC that the DMA channel 120 generates in response to the polling signal from a processor (e.g., the processor 300) operating in the secure mode, and FIG. 3B shows the reply content RC that the DMA channel 120 generates in response to the polling signal from a processor (e.g., the processor 300) operating in the non-secure mode. It is assumed in the examples of FIGS. 3A and 3B that the current operation modes of DMA channel 0 to DMA channel 3 are non-secure mode, non-secure mode, secure mode, and secure mode, respectively, and that the current states of DMA channel 0 to DMA channel 3 are busy, idle, idle, and busy, respectively.
  • In reference to FIG. 3A, when the processor 300 is operating in the secure mode, the reply content RC that the DMA channel 120 generates includes the current operation mode and the genuine state (i.e., idle or busy) of the DMA channel 120. The genuine state refers to the current state which has not been adjusted, modified or changed of the DMA channel 120. Therefore, the processor 300, when operating in the secure mode, can know the current operation mode and the genuine state of the DMA channel 120.
  • In reference to FIG. 3B, when the processor 300 is operating in the non-secure mode, the reply content RC that the DMA channel 120 generates includes the state but not the operation mode, and the state in the reply content RC may not necessarily be the current genuine state of the DMA channel 120. More specifically, when the DMA channel operating in the non-secure mode receives a polling signal from the processor 300 which is operating in the non-secure mode, the DMA channel operating in the non-secure mode replies the current state but does not reply the operation mode; when the DMA channel operating in the secure mode receives a polling signal from the processor 300 which is operating in the non-secure mode, the DMA channel operating in the secure mode always replies “busy” and does not reply the operation mode. In other words, in spite of being in the idle state, the DMA channel 2 replies a fake state or a dummy state to prevent the processor 300 which is operating in the non-secure mode from accessing the DMA channel which is operating in the secure mode. Therefore, the processor 300, when operating in the non-secure mode, can know the genuine state of the DMA channel operating in the non-secure mode but cannot know the genuine state of the DMA channel operating in the secure mode, and the processor 300, when operating in the non-secure mode, cannot know the operation mode of the DMA channel With such a design, the processor 300, when operating in the non-secure mode, cannot set the DMA controller 100 operating in the secure mode or the DMA channel 120 operating in the secure mode.
  • In some embodiments, the processor 300, when operating in the non-secure mode, can query the DMA controller 100 or the DMA channel 120 about whether it is idle but cannot stop the DMA controller 100 or the DMA channel 120 or cannot control the DMA controller 100 or the DMA channel 120 to leave the secure mode.
  • In some embodiments (as shown in FIG. 4), the DMA channel 120 operating in the secure mode utilizes the selection circuit 600 (e.g., a multiplexer) to reply the genuine state or the dummy state based on the security attribute of the control command CM. When the security attribute is logic 1 (corresponding to the secure mode), the DMA channel 120 replies the genuine state; when the security attribute is logic 0 (corresponding to the non-secure mode), the DMA channel 120 replies the dummy state.
  • Returning to FIG. 2, when the processor 300 does not find an idle DMA controller or DMA channel (i.e., the result of step S220 is NO), the processor 300 continues to search for an idle DMA controller or DMA channel (step S220). Upon finding an idle DMA controller or DMA channel (i.e., the result of step S220 is YES), the processor 300 controls the idle DMA channel to operate in the secure mode by changing the register value of the mode register 122 of the idle DMA channel (step S230). After setting the mode register 122, the processor 300 proceeds to set the memory address register 124 and the byte count register 126 of the DMA channel through other control commands (step S240). For example, the processor 300 can store the address of the to-be-read/written memory block in the memory address register 124 and store the amount of data in the byte count register 126. After that, the DMA channel 120 performs data transfer by sending a read/write command CRW through the master interface 140 according to the register value in the memory address register 124 and the register value in the byte count register 126 (step S250).
  • After the data transfer is finished (i.e., the result of step S260 is YES), the DMA channel 120 issues an interrupt to notify the processor 300 that the data transfer has been finished, and then the processor 300 determines whether to control the DMA channel to operate in the non-secure mode (step S270). When the processor 300 wants to continue using the DMA channel, the processor 300 does not control the DMA channel to operate in the non-secure mode (i.e., the result of step S270 is NO) and then continues to select the same DMA channel in step S220. When the processor 300 does not continue using the DMA channel, the processor 300 controls the DMA channel to operate in the non-secure mode (i.e., the result of step S270 is YES). After clearing other registers of the DMA channel (including but not exclusively the memory address register 124 and the byte count register 126), the processor 300 controls the DMA channel to operate in the non-secure mode by changing the register value of the mode register 122 of the DMA channel (step S280), so that other processors operating in the non-secure mode can find the DMA channel in step S220.
  • Although the flow in FIG. 2 takes the processor 300 operating in the secure mode as an example, people having ordinary skill in the art can apply the present invention to the processor 300 operating in the non-secure mode according to the above discussions, and the details are omitted for brevity.
  • The DMA controller or DMA channel of the present invention is applied to an electronic device 10 (e.g., devices with computing capabilities and data storage capabilities (such as a computer and a portable electronic device), or a system-on-a-chip (SoC)), and the processor 300 may be the central processing unit, microprocessor, micro-processing unit, digital signal processor, or ASIC of the electronic device 10. In some embodiments, the DMA controller or DMA channel of the present invention has a secure mechanism to protect confidential or sensitive data in the electronic device 10. FIG. 5 shows the flow of the secure mechanism. The DMA channel or DMA controller operating in the secure mode keeps monitoring whether the number of the non-secure mode control commands received is greater than the threshold value (steps S510 and S520). A non-secure mode control command is the command whose security attribute corresponds to the non-secure mode and which is usually issued by a processor operating in the non-secure mode. When the number of non-secure mode control commands that the DMA channel operating in the secure mode has received is greater than the threshold value (i.e., the result of step S520 is YES, which means it is likely that a malicious person is attempting to steal the data in the secure memory 400), the DMA channel operating in the secure mode issues an interrupt INTR (step S530). Then, the processor 300, when operating in the secure mode, receives the interrupt INTR and restarts or shuts down the electronic device 10 in response to the interrupt INTR (step S540) to reduce the risk of data theft.
  • In some embodiments, the threshold value can be zero, in which case steps S530 and S540 are performed provided that the DMA channel or DMA controller operating in the secure mode receives one non-secure mode control command
  • In some embodiments, the reliability of the secure mechanism is improved by restraining the processor operating in the non-secure mode from receiving (or even knowing the presence of) the interrupt INTR.
  • In summary, the present invention provides a DMA controller and/or DMA channel that can operate in the secure mode or the non-secure mode, and a method of operating the DMA controller and/or DMA channel The DMA controller operating in the non-secure mode and the DMA channel operating in the non-secure mode cannot obtain the data transferred by the DMA controller operating in the secure mode and the data transferred by the DMA channel operating in the secure mode.
  • Since a person having ordinary skill in the art can appreciate the implementation detail and the modification thereto of the present method invention through the disclosure of the device invention, repeated and redundant description is thus omitted. Please note that there is no step sequence limitation for the method inventions as long as the execution of each step is applicable. Furthermore, the shape, size, and ratio of any element and the step sequence of any flowchart in the disclosed figures are exemplary for understanding, not for limiting the scope of this invention.
  • The aforementioned descriptions represent merely the preferred embodiments of the present invention, without any intention to limit the scope of the present invention thereto. Various equivalent changes, alterations, or modifications based on the claims of the present invention are all consequently viewed as being embraced by the scope of the present invention.

Claims (19)

What is claimed is:
1. A direct memory access (DMA) controller configured to access a memory containing a secure area and a non-secure area, the DMA controller comprising:
a DMA channel;
a mode register configured to store a register value, wherein when the register value is a first value, the DMA channel operates in a secure mode, and when the register value is a second value, the DMA channel operates in a non-secure mode;
a configuration interface configured to receive a control command; and
a control circuit coupled to the DMA channel and configured to set the register value of the mode register according to the control command;
wherein when the DMA channel is operating in the secure mode, the DMA channel is able to access the secure area and the non-secure area, and when the DMA channel is operating in the non-secure mode, the DMA channel is able to access the non-secure area but unable to access the secure area.
2. The DMA controller of claim 1, wherein the configuration interface is an Advanced Peripheral Bus.
3. The DMA controller of claim 2, wherein the control command comprises a security attribute, and the security attribute corresponds to one bit of a protection signal of the Advanced Peripheral Bus.
4. The DMA controller of claim 1, wherein the DMA controller receives a query command generated by a processor, the DMA channel generates a reply content in response to the query command, and the reply content comprises a current state of the DMA channel
5. The DMA controller of claim 4, wherein when the processor is operating in the secure mode, the reply content further comprises a current operation mode of the DMA channel
6. The DMA controller of claim 1, wherein the DMA controller receives a query command generated by a processor, the DMA channel generates a reply content in response to the query command, and when the DMA channel is operating in the secure mode and in an idle state and the processor is operating in the non-secure mode, the reply content indicates that the DMA channel is in a busy state.
7. The DMA controller of claim 1, wherein when the DMA channel is operating in the secure mode and the control command received is a non-secure mode control command, the DMA channel generates an interrupt in response to the non-secure mode control command
8. An electronic device, comprising:
a processor configured to generate a control command, wherein the control command is configured to set an operation mode of a DMA controller;
a memory containing a secure area and a non-secure area; and
the DMA controller coupled to the processor and the memory through a bus and comprising:
a DMA channel;
a configuration interface, wherein the DMA controller receives the control command through the configuration interface; and
a mode register configured to store a register value corresponding to the control command, wherein when the register value is a first value, the DMA channel operates in a secure mode, and when the register value is a second value, the DMA channel operates in a non-secure mode;
wherein when the DMA channel is operating in the secure mode, the DMA channel is able to access the secure area and the non-secure area, and when the DMA channel is operating in the non-secure mode, the DMA channel is able to access the non-secure area but unable to access the secure area.
9. The electronic device of claim 8, wherein the configuration interface is an Advanced Peripheral Bus.
10. The electronic device of claim 9, wherein the control command comprises a security attribute, and the security attribute corresponds to one bit of a protection signal of the Advanced Peripheral Bus.
11. The electronic device of claim 8, wherein the processor queries a current state of the DMA channel with a query command, the DMA channel generates a reply content in response to the query command, and the reply content comprises the current state.
12. The electronic device of claim 11, wherein when the processor is operating in the secure mode, the reply content further comprises a current operation mode of the DMA channel
13. The electronic device of claim 8, wherein the processor queries a current state of the DMA channel with a query command, the DMA channel generates a reply content in response to the query command, and the reply content indicates that the DMA channel is in a busy state when the DMA channel is operating in the secure mode, the current state is an idle state, and the processor is operating in the non-secure mode.
14. The electronic device of claim 8, wherein when the DMA channel is operating in the secure mode and the control command received is a non-secure mode control command, the DMA channel generates an interrupt in response to the non-secure mode control command
15. The electronic device of claim 14, wherein when the processor is operating in the secure mode, the processor is able to receive the interrupt, and when the processor is operating in the non-secure mode, the processor is unable to receive the interrupt.
16. A method of operating a DMA controller, the DMA controller is configured to access a memory containing a secure area and a non-secure area, the method comprising:
searching for a DMA channel in an idle state in the DMA controller;
controlling the DMA channel to operate in a secure mode by setting a register value of a mode register of the DMA channel;
setting a memory address register and a byte count register of the DMA channel; and
controlling the DMA channel to perform data transfer based on the memory address register and the byte count register.
17. The method of claim 16, further comprising:
clearing the memory address register and the byte count register after the DMA channel finishes the data transfer; and
controlling the DMA channel to operate in a non-secure mode by setting the register value of the mode register of the DMA channel
18. The method of claim 16, wherein the DMA controller is applied to an electronic device, the method further comprising:
receiving an interrupt issued by the DMA channel; and
restarting or shutting down the electronic device in response to the interrupt.
19. The method of claim 16, wherein the step of setting the register value of the mode register of the DMA channel comprises:
sending a control command through an Advanced Peripheral Bus to set the mode register;
wherein the control command comprises a security attribute, and the security attribute corresponds to one bit of a protection signal of the Advanced Peripheral Bus.
US17/488,637 2020-10-16 2021-09-29 Direct memory access (DMA) controller, electronic device using the DMA controller and method of operating the DMA controller Active US11829310B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011111422.8A CN114385528A (en) 2020-10-16 2020-10-16 Direct memory access controller, electronic device using the same, and method of operating the same
CN202011111422.8 2020-10-16

Publications (2)

Publication Number Publication Date
US20220121588A1 true US20220121588A1 (en) 2022-04-21
US11829310B2 US11829310B2 (en) 2023-11-28

Family

ID=81185134

Family Applications (1)

Application Number Title Priority Date Filing Date
US17/488,637 Active US11829310B2 (en) 2020-10-16 2021-09-29 Direct memory access (DMA) controller, electronic device using the DMA controller and method of operating the DMA controller

Country Status (3)

Country Link
US (1) US11829310B2 (en)
CN (1) CN114385528A (en)
TW (1) TWI774095B (en)

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030140205A1 (en) * 2002-01-16 2003-07-24 Franck Dahan Secure mode for processors supporting interrupts
US20040139346A1 (en) * 2002-11-18 2004-07-15 Arm Limited Exception handling control in a secure processing system
US20050223136A1 (en) * 2003-03-05 2005-10-06 Fujitsu Limited System and method for controlling DMA data transfer
US20060010261A1 (en) * 2000-05-03 2006-01-12 Bonola Thomas J Highly concurrent DMA controller with programmable DMA channels
US20090271536A1 (en) * 2008-04-24 2009-10-29 Atmel Corporation Descriptor integrity checking in a dma controller
US20100017544A1 (en) * 2008-07-16 2010-01-21 Chun Ik-Jae Direct memory access controller and data transmitting method of direct memory access channel
US20100057960A1 (en) * 2008-08-26 2010-03-04 Atmel Corporation Secure information processing
US7904943B2 (en) * 2004-12-28 2011-03-08 O'connor Dennis M Secure controller for block oriented storage
US8001390B2 (en) * 2007-05-09 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for secure programming and storage of data using a multiprocessor in a trusted mode
US20130283391A1 (en) * 2011-12-21 2013-10-24 Jayant Mangalampalli Secure direct memory access
US20140250540A1 (en) * 2013-03-01 2014-09-04 Infineon Technologies Ag Dynamic resource sharing
US20140259149A1 (en) * 2013-03-07 2014-09-11 Joseph C. Circello Programmable direct memory access channels
US8959304B2 (en) * 2012-04-17 2015-02-17 Arm Limited Management of data processing security in a secondary processor
US20180203815A1 (en) * 2017-01-18 2018-07-19 Nxp Usa, Inc. Multi-Channel DMA System with Command Queue Structure Supporting Three DMA Modes
US20190196967A1 (en) * 2017-12-27 2019-06-27 Samsung Electronics Co., Ltd. Device including access controller, system on chip and system including the same
US20210232327A1 (en) * 2018-05-10 2021-07-29 Nordic Semiconductor Asa Memory access

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6041387B2 (en) * 1981-12-04 1985-09-17 沖電気工業株式会社 Direct memory access control circuit
US20020161978A1 (en) 2001-02-28 2002-10-31 George Apostol Multi-service system-on-chip including on-chip memory with multiple access path
US7058735B2 (en) * 2003-06-02 2006-06-06 Emulex Design & Manufacturing Corporation Method and apparatus for local and distributed data memory access (“DMA”) control
TWI262435B (en) * 2004-01-06 2006-09-21 Winlead Integrated Circuit Des Microcomputer structure and method having direct memory access function
EP1645968B1 (en) 2004-10-11 2008-03-19 Texas Instruments Incorporated Multi-threaded DMA
US7565464B2 (en) * 2004-12-14 2009-07-21 Intel Corporation Programmable transaction initiator architecture for systems with secure and non-secure modes
EP1801700B1 (en) 2005-12-23 2013-06-26 Texas Instruments Inc. Method and systems to restrict usage of a DMA channel
US8769681B1 (en) 2008-08-11 2014-07-01 F5 Networks, Inc. Methods and system for DMA based distributed denial of service protection
US8880632B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Method and apparatus for performing multiple DMA channel based network quality of service
CN103186474B (en) * 2011-12-28 2016-09-07 瑞昱半导体股份有限公司 The method that the cache of processor is purged and this processor
JP6122135B2 (en) 2012-11-21 2017-04-26 コーヒレント・ロジックス・インコーポレーテッド Processing system with distributed processor
GB2539433B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
US10181946B2 (en) 2015-07-20 2019-01-15 Intel Corporation Cryptographic protection of I/O data for DMA capable I/O controllers
US10310990B2 (en) * 2016-06-24 2019-06-04 Hewlett Packard Enterprise Development Lp Direct memory access encryption with application provided keys
US10191871B2 (en) * 2017-06-20 2019-01-29 Infineon Technologies Ag Safe double buffering using DMA safe linked lists
US10496853B2 (en) 2017-06-30 2019-12-03 Phoenix Technologies Ltd. Securing a host machine against direct memory access (DMA) attacks via expansion card slots
CN110609799A (en) * 2019-09-11 2019-12-24 天津飞腾信息技术有限公司 Safety protection method for off-chip nonvolatile storage

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010261A1 (en) * 2000-05-03 2006-01-12 Bonola Thomas J Highly concurrent DMA controller with programmable DMA channels
US20030140205A1 (en) * 2002-01-16 2003-07-24 Franck Dahan Secure mode for processors supporting interrupts
US20040139346A1 (en) * 2002-11-18 2004-07-15 Arm Limited Exception handling control in a secure processing system
US20050223136A1 (en) * 2003-03-05 2005-10-06 Fujitsu Limited System and method for controlling DMA data transfer
US7904943B2 (en) * 2004-12-28 2011-03-08 O'connor Dennis M Secure controller for block oriented storage
US8001390B2 (en) * 2007-05-09 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for secure programming and storage of data using a multiprocessor in a trusted mode
US20090271536A1 (en) * 2008-04-24 2009-10-29 Atmel Corporation Descriptor integrity checking in a dma controller
US20100017544A1 (en) * 2008-07-16 2010-01-21 Chun Ik-Jae Direct memory access controller and data transmitting method of direct memory access channel
US20100057960A1 (en) * 2008-08-26 2010-03-04 Atmel Corporation Secure information processing
US20130283391A1 (en) * 2011-12-21 2013-10-24 Jayant Mangalampalli Secure direct memory access
US8959304B2 (en) * 2012-04-17 2015-02-17 Arm Limited Management of data processing security in a secondary processor
US20140250540A1 (en) * 2013-03-01 2014-09-04 Infineon Technologies Ag Dynamic resource sharing
US20140259149A1 (en) * 2013-03-07 2014-09-11 Joseph C. Circello Programmable direct memory access channels
US20180203815A1 (en) * 2017-01-18 2018-07-19 Nxp Usa, Inc. Multi-Channel DMA System with Command Queue Structure Supporting Three DMA Modes
US20190196967A1 (en) * 2017-12-27 2019-06-27 Samsung Electronics Co., Ltd. Device including access controller, system on chip and system including the same
US20210232327A1 (en) * 2018-05-10 2021-07-29 Nordic Semiconductor Asa Memory access

Also Published As

Publication number Publication date
TWI774095B (en) 2022-08-11
US11829310B2 (en) 2023-11-28
CN114385528A (en) 2022-04-22
TW202217585A (en) 2022-05-01

Similar Documents

Publication Publication Date Title
JP3790713B2 (en) Selective transaction destination for devices on shared bus
EP1571559B1 (en) Bus system and access control method
US10983924B2 (en) Information processing device and processor
US7051137B2 (en) Event delivery
US20070180269A1 (en) I/O address translation blocking in a secure system during power-on-reset
US10691527B2 (en) System interconnect and system on chip having the same
CN107257964B (en) DRAM circuit, computer system and method for accessing DRAM circuit
US7376850B2 (en) Methods of computer power status management and computers utilizing the same
US6799278B2 (en) System and method for processing power management signals in a peer bus architecture
US20050080999A1 (en) Memory interface for systems with multiple processors and one memory system
US7886088B2 (en) Device address locking to facilitate optimum usage of the industry standard IIC bus
US7024511B2 (en) Method and apparatus for active memory bus peripheral control utilizing address call sequencing
US11829310B2 (en) Direct memory access (DMA) controller, electronic device using the DMA controller and method of operating the DMA controller
US11860804B2 (en) Direct memory access (DMA) controller, electronic device using the DMA controller and method of operating the DMA controller
US11604505B2 (en) Processor security mode based memory operation management
JPH10301657A (en) Peripheral device of computer system
JP5630886B2 (en) Semiconductor device
WO1996042056A1 (en) A cache flush mechanism for a secondary cache memory
JP2010049718A (en) Semiconductor device
JP2012198904A (en) Semiconductor device
JP2000207235A (en) Information processor
JPH05250333A (en) Microprocessor
JPH1091544A (en) Bus control circuit

Legal Events

Date Code Title Description
AS Assignment

Owner name: REALTEK SEMICONDUCTOR CORPORATION, TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LIN, CHEN-TUNG;CHEN, YUE-FENG;REEL/FRAME:057637/0894

Effective date: 20210924

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE