直接记忆体存取控制器、使用其之电子装置以及操作其的方法与流程

文档序号:29787993发布日期:2022-04-23 15:28阅读:69来源:国知局
直接记忆体存取控制器、使用其之电子装置以及操作其的方法与流程

1.本发明是关于直接记忆体存取(direct memory access,dma)控制器,尤其是关于共享dma控制器,以及操作dma控制器的方法。


背景技术:

2.为了安全起见,电子装置通常会将机密的或敏感的数据储存于记忆体中的安全区域(secure area)(亦称为安全记忆体(secure memory)),并且将非机密的或非敏感的数据储存于记忆体中的非安全区域(non-secure area)(亦称为非安全记忆体(non-secure memory))。因此,可操作于安全模式及非安全模式的系统单芯片(system on a chip,soc)通常会为两种模式使用独立的dma控制器或是独立的dma通道(dma channel)。然而,由于dma控制器或dma通道不会时时刻刻被同一安全级别(即安全模式或非安全模式)使用,所以这样的做法比较耗费资源。


技术实现要素:

3.鉴于先前技术之不足,本发明之一目的在于提供直接记忆体存取控制器、使用直接记忆体存取控制器之电子装置以及操作直接记忆体存取控制器的方法。
4.本发明揭露一种直接记忆体存取控制器,用来存取一记忆体,该记忆体包含一安全区域及一非安全区域。该直接记忆体存取控制器包含一直接记忆体存取通道、一模式暂存器、一设定接口以及一控制电路。该模式暂存器用来储存一暂存值。当该暂存值为一第一数值时,该直接记忆体存取通道操作于一安全模式,以及当该暂存值为一第二数值时,该直接记忆体存取通道操作于一非安全模式。设定接口用来接收一控制命令。控制电路耦接于该直接记忆体存取通道,用来根据该控制命令设定该模式暂存器之该暂存值。当该直接记忆体存取通道操作于该安全模式时,该直接记忆体存取通道可以存取该安全区域及该非安全区域,以及当该直接记忆体存取通道操作于该非安全模式时,该直接记忆体存取通道可以存取该非安全区域,但无法存取该安全区域。
5.本发明另揭露一种电子装置,包含一处理器、一记忆体以及一直接记忆体存取控制器。该处理器用来产生一控制命令,该控制命令用来设定该直接记忆体存取控制器之一操作模式。该记忆体包含一安全区域及一非安全区域。该直接记忆体存取控制器透过一总线耦接该处理器及该记忆体,并且包含一直接记忆体存取通道、一设定接口以及一模式暂存器。该直接记忆体存取控制器透过该设定接口接收该控制命令。该模式暂存器用来储存对应于该控制命令的一暂存值。当该暂存值为一第一数值时,该直接记忆体存取通道操作于一安全模式,以及当该暂存值为一第二数值时,该直接记忆体存取通道操作于一非安全模式。当该直接记忆体存取通道操作于该安全模式时,该直接记忆体存取通道可以存取该安全区域及该非安全区域,以及当该直接记忆体存取通道操作于该非安全模式时,该直接记忆体存取通道可以存取该非安全区域,但无法存取该安全区域。
6.本发明另揭露一种操作一直接记忆体存取控制器的方法。该直接记忆体存取控制器用来存取一记忆体,该记忆体包含一安全区域及一非安全区域。该方法包含:找出该直接记忆体存取控制器中处于一闲置状态的一直接记忆体存取通道;设定该直接记忆体存取通道之一模式暂存器的一暂存值,以令该直接记忆体存取通道操作于一安全模式;设定该直接记忆体存取通道之一地址暂存器及一计数暂存器;以及控制该直接记忆体存取通道基于该地址暂存器及该计数暂存器进行数据搬移。
7.本发明之dma控制器或其dma通道可以在安全模式与非安全模式之间切换。相较于传统技术,本发明之dma控制器或其dma通道使用单一的电路或硬体即可实现安全模式之dma操作及非安全模式之dma操作,因此可以节省硬体资源及降低成本。
8.有关本发明的特征、实作与功效,兹配合图式作实施例详细说明如下。
附图说明
9.图1为本发明dma控制器之一实施例的功能方块图;
10.图2为本发明操作dma控制器的方法之一实施例的流程图;
11.图3a为dma通道120回应轮询的回复内容的一范例;
12.图3b为dma通道120回应轮询的回复内容的另一范例;
13.图4为dma通道120用来回应轮询之选择电路的一实施例;以及
14.图5显示本发明dma控制器或dma通道的安全机制之一实施例的流程图。
具体实施方式
15.以下说明内容之技术用语系参照本技术领域之习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语之解释系以本说明书之说明或定义为准。
16.本发明之揭露内容包含直接记忆体存取控制器、使用直接记忆体存取控制器之电子装置以及操作直接记忆体存取控制器的方法。由于本发明之记忆体存取控制器及电子装置所包含之部分元件单独而言可能为已知元件,因此在不影响该装置发明之充分揭露及可实施性的前提下,以下说明对于已知元件的细节将予以节略。
17.在以下的实施例中,dma控制器包含两个以上的dma通道,然而,在其他的实施例中,dma控制器可以只包含一个dma通道。当dma控制器可以只包含一个dma通道时,操作该dma控制器等效于操作该dma通道,反之亦然。
18.图1为本发明dma控制器之一实施例的功能方块图。dma控制器100包含控制电路110、多个dma通道120(包含但不限于图中所绘示的两个dma通道:dma通道0(120-0)及dma通道1(120-1))、设定接口(configuration interface)130及主接口(master interface)140。每个dma通道120包含一个暂存器文件(register file)121,每一个暂存器文件121包含模式暂存器122、地址暂存器(memory address register)124以及计数暂存器(byte count register)126。
19.控制电路110也可以称做dma控制器100的仲裁器(arbitrator),可以是硬体,或是软体与硬体的组合。当控制电路110由硬体实作时,控制电路110可以是由逻辑电路实作的有限状态机(finite state-machine,fsm)。当控制电路110是硬体与软体的组合时,控制电路110包含计算单元与记忆体。计算单元是具有程序执行能力的电路或电子元件(例如微处
理器、微处理单元、数字信号处理器或特殊应用集成电路(application specific integrated circuit,asic)),并且藉由执行储存在记忆体中的程序代码或程序指令来完成控制电路110的功能。
20.dma通道120可以操作在安全模式或非安全模式,而且dma通道0(120-0)与dma通道1(120-1)互相独立。举例来说,dma通道0(120-0)及dma通道1(120-1)可以同时操作在安全模式或非安全模式,也可以一者操作在安全模式,另一者操作在非安全模式。当dma通道120的模式暂存器122的暂存值为第一数值(例如逻辑1)时,该dma通道120操作在安全模式,且当dma通道120的模式暂存器122的暂存值为第二数值(例如逻辑0)时,该dma通道120操作在非安全模式。
21.当dma控制器100或dma通道120被设定为安全模式时,则dma控制器100或该dma通道120操作于安全模式,且之后的所有设定或者读取操作,都需要使用安全模式的控制命令来进行。如果是非安全模式的控制命令试图读取dma控制器100或者dma通道120,或者试图设定dma控制器100或者dma通道120来进行数据搬移,则操作于安全模式的dma控制器100或者操作于安全模式的dma通道120会拒绝这些操作。在一些实施例中,当非安全模式的软体或硬体企图读取操作于安全模式的dma控制器100的设定或操作于安全模式的dma通道120的设定时,操作于安全模式的dma控制器100或操作于安全模式的dma通道120不回复真实的值,而是回复「0」、保留值(reserved value)或是随机值,以避免非安全模式的软体或硬体得知操作于安全模式的dma控制器100的设定或操作于安全模式的dma通道120的设定。
22.设定接口130及主接口140透过总线200与处理器300(例如中央处理器、微处理器、微处理单元、数字信号处理器或特殊应用集成电路)、安全记忆体400及非安全记忆体500耦接。总线200也可以是连线(interconnect)或总线矩阵。安全记忆体400及非安全记忆体500可以是两个独立的实体记忆体(例如动态随机存取记忆体(dynamic random access memory,dram)),或是同一个实体记忆体的不同区块或区域(即安全/非安全区块,或安全/非安全区域)。处理器300透过总线200传送控制命令cm,且dma控制器100透过设定接口130接收该控制命令cm。控制命令cm可以用来设定dma通道120的模式暂存器122的暂存值。控制命令cm包含安全属性(secure attribute),处理器300藉由控制安全属性的值来产生安全模式的控制命令cm或是非安全模式的控制命令cm。更明确地说,操作于安全模式的处理器300所产生的控制命令cm的安全属性为第一逻辑值(例如逻辑1),而操作于非安全模式的处理器300所产生的控制命令cm的安全属性为第二逻辑值(例如逻辑0)。
23.在一些实施例中,控制电路110根据控制命令cm设定目标dma通道120的模式暂存器122,更明确地说,控制电路110基于该安全属性来设定目标dma通道120的模式暂存器122。举例来说,当控制命令cm的安全属性为第一逻辑值(例如逻辑1)时,控制电路110将目标dma通道120的模式暂存器122的暂存值设为第一逻辑值,且当控制命令cm的安全属性为第二逻辑值(例如逻辑0)时,控制电路110将目标dma通道120的模式暂存器122的暂存值设为第二逻辑值。在一些实施例中,设定接口130可以是先进外围总线(advanced peripheral bus,apb),且该安全属性为之一保护讯号(protection signal,pprot)的其中一比特(例如比特值为1,即pprot[1])。在其他的实施例中,设定接口130可以是先进高性能总线(advanced high-performance bus,ahb)或其他接口。
[0024]
操作于安全模式的处理器300可以读取另一个处理器(图未示)对dma控制器100或
dma通道120所做的设定,该另一个处理器操作于非安全模式。操作于安全模式的处理器300可以进一步控制dma控制器100及/或dma通道120的行为,例如,当dma控制器100或者dma通道120被设定为安全模式后,另一个非安全模式的处理器是无法获取dma控制器100或者dma通道120为自己传输数据的。
[0025]
当dma通道120操作于安全模式时,dma通道120可以存取安全记忆体400及非安全记忆体500,而当dma通道120操作于非安全模式时,dma通道120可以存取非安全记忆体500,但不能存取安全记忆体400。更明确地说,dma通道120透过主接口140及总线200传送读写命令crw给安全记忆体400及/或非安全记忆体500。主接口140可以区分安全模式的命令及非安全模式的命令。读写命令crw包含安全属性,而安全记忆体400基于该安全属性来决定是否允许读取及/或写入操作。举例来说,当dma通道120操作于安全模式时,dma通道120所发出的读写命令crw的安全属性为第一逻辑值(对应于安全模式),使得安全记忆体400及非安全记忆体500允许读取及/或写入操作;当dma通道120操作于非安全模式时,dma通道120所发出的读写命令crw的安全属性为第二逻辑值(对应于非安全模式),使得安全记忆体400不允许读取及/或写入操作,但非安全记忆体500允许读取及/或写入操作。在一些实施例中,主接口140可以是先进外围总线、先进高性能总线或先进可扩充接口(advanced extensible interface,axi)。在一些实施例中,总线200决定是否允许dma控制器100或dma通道120存取安全记忆体400。
[0026]
图2为本发明操作dma控制器的方法之一实施例的流程图。一开始,处理器300操作于安全模式(步骤s210),并且需要寻找一个闲置中(即未被使用)的dma控制器或dma通道(步骤s220)。在一些实施例中,处理器300以查询命令qm查询dma控制器100或dma通道120的状态,例如以轮询(polling)的方式访问dma控制器100的每个dma通道120。回应该轮询讯号,dma通道120产生回复内容rc,而回复内容rc与处理器300的操作模式(即安全模式或非安全模式)有关(如图3a及3b所示)。
[0027]
图3a为当处理器300操作于安全模式时dma通道120回应轮询讯号的回复内容rc,而图3b为当处理器300操作于非安全模式时dma通道120回应轮询讯号的回复内容rc。在图3a及图3b的例子中,假设dma通道0至dma通道3的当前操作模式分别为非安全模式、非安全模式、安全模式及安全模式,且假设dma通道0至dma通道3的当前状态分别为忙碌、闲置、闲置及忙碌。
[0028]
请参阅图3a,当处理器300操作于安全模式时,dma通道120的回复内容rc包含dma通道120当下的操作模式以及真实的状态(即闲置或忙碌)。真实的状态指的是dma通道120的未经调整、修饰或改变过的当前的状态。因此,操作于安全模式的处理器300可以得知dma通道120当下的操作模式及真实的状态。
[0029]
请参阅图3b,当处理器300操作于非安全模式时,dma通道120的回复内容rc包含状态但不包含操作模式,且回复内容rc中的状态不一定是dma通道120当下的真实的状态。更明确地说,当操作于非安全模式的dma通道收到来自非安全模式的处理器300的轮询讯号时,操作于非安全模式的dma通道回复当下的状态,但不回复操作模式;当操作于安全模式的dma通道收到来自操作于非安全模式的处理器300的轮询讯号时,操作于安全模式的dma通道一律回复「忙碌」,且不回复操作模式。换言之,虽然dma通道2事实上处于闲置状态,但是为了避免操作于非安全模式的处理器300存取操作于安全模式的dma通道,所以dma通道2
回复假的状态(fake state)或虚拟的状态(dummy state)。因此,操作于非安全模式的处理器300可以得知操作于非安全模式的dma通道的真实的状态,但无法得知操作于安全模式的dma通道的真实的状态,而且操作于非安全模式的处理器300无法得知dma通道的操作模式。在这样的设计下,操作于非安全模式的处理器300无法设定操作于安全模式的dma控制器100或操作于安全模式的dma通道120。
[0030]
在一些实施例中,操作于非安全模式的处理器300只能询问dma控制器100或dma通道120是否闲置,但是无法终止dma控制器100或dma通道120,或是无法使dma控制器100或dma通道120离开安全模式。
[0031]
在一些实施例中(如图4所示),操作于安全模式的dma通道120利用选择电路600(例如多工器)来基于控制命令cm的安全属性回复真实的状态或虚拟状态。当安全属性为逻辑1(对应于安全模式)时,dma通道120回复真实的状态;当安全属性为逻辑0(对应于非安全模式)时,dma通道120回复虚拟状态。
[0032]
回到图2。当处理器300没有找到闲置中的dma控制器或dma通道(即步骤s220的判断为否)时,处理器300持续寻找闲置中的dma控制器或dma通道(步骤s220)。当处理器300找到闲置中的dma控制器或dma通道(即步骤s220的判断为是)时,处理器300改变该闲置中的dma通道的模式暂存器122的暂存值,以控制该闲置中的dma通道操作于安全模式(步骤s230)。设定完模式暂存器122后,处理器300继续以其他的控制命令设定dma通道的地址暂存器124及计数暂存器126(步骤s240)。举例来说,处理器300在可以在地址暂存器124中储存待读取或写入的记忆体区块的地址,以及在计数暂存器126中储存数据量。随后,该dma通道120便基于地址暂存器124中的暂存值及计数暂存器126中的暂存值,透过主接口140发出读写命令crw以进行数据搬移(步骤s250)。
[0033]
数据搬移完成之后(即步骤s260的判断为是),dma通道120发出中断通知处理器300数据搬移已完成,然后处理器300判断是否控制该dma通道操作于非安全模式(步骤s270)。如果处理器300要继续使用该dma通道,则处理器300不控制该dma通道操作于非安全模式(即步骤s270的判断为否),然后于步骤s220中继续选择该dma通道。如果处理器300不继续使用该dma通道,则处理器300控制该dma通道操作于非安全模式(即步骤s270的判断为是)。于清除该dma通道的其他暂存器(包含但不限于地址暂存器124及计数暂存器126)后,处理器300改变该dma通道的模式暂存器122的暂存值,使该dma通道操作于非安全模式(步骤s280)。如此一来,其他操作于非安全模式的处理器300可以在步骤s220中找到该dma通道。
[0034]
图2的流程虽然以操作于安全模式的处理器300为例,但本技术领域具有通常知识者可以依据上述的说明将本发明应用于操作于非安全模式的处理器300,故不再赘述。
[0035]
本发明的dma控制器或dma通道应用于电子装置10(例如电脑、可携式电子装置等具有运算能力及数据储存能力的设备,或是系统单芯片),而处理器300可以是电子装置10的中央处理器、微处理器、微处理单元、数字信号处理器或特殊应用集成电路。在一些实施例中,本发明的dma控制器或dma通道具有一种安全机制,以保护电子装置10中的机密的或敏感的数据。图5显示该安全机制的流程。操作于安全模式的dma通道或dma控制器持续判断所收到的非安全模式的控制命令的个数是否大于门槛值(步骤s510、s520)。非安全模式的控制命令是指该控制命令的安全属性对应于非安全模式,通常是由操作于非安全模式的处
理器所发出。当操作于安全模式的dma通道收到的非安全模式的控制命令的个数大于门槛值时(即步骤s520的判断为是,代表可能有恶意人士企图窃取安全记忆体400中的数据),操作于安全模式的dma通道发出中断intr(步骤s530)。接着,操作于安全模式的处理器300接收该中断intr,并且回应该中断intr重启或关闭电子装置10(步骤s540),以降低数据被窃的风险。
[0036]
在一些实施例中,门槛值可以是零,换言之,只要操作于安全模式的dma通道或dma控制器收到一个非安全模式的控制命令,步骤s530及s540就会被执行。
[0037]
在一些实施例中,操作于非安全模式的处理器无法接收或得知该中断intr,以提高此安全机制的可靠性。
[0038]
综上所述,本发明提出了可以操作于安全模式或非安全模式的dma控制器及/或dma通道,以及操作dma控制器及/或dma通道的方法。操作于非安全模式的dma控制器及操作于非安全模式的dma通道无法获取操作于安全模式的dma控制器所搬移的数据及操作于安全模式的dma通道所搬移的数据。
[0039]
由于本技术领域具有通常知识者可藉由本案之装置发明的揭露内容来了解本案之方法发明的实施细节与变化,因此,为避免赘文,在不影响该方法发明之揭露要求及可实施性的前提下,重复之说明在此予以节略。请注意,前揭图示中,元件之形状、尺寸、比例以及步骤之顺序等仅为示意,系供本技术领域具有通常知识者了解本发明之用,非用以限制本发明。
[0040]
虽然本发明之实施例如上所述,然而该些实施例并非用来限定本发明,本技术领域具有通常知识者可依据本发明之明示或隐含之内容对本发明之技术特征施以变化,凡此种种变化均可能属于本发明所寻求之专利保护范畴,换言之,本发明之专利保护范围须视本说明书之申请专利范围所界定者为准。
[0041]
【符号说明】
[0042]
10:电子装置
[0043]
100:dma控制器
[0044]
110:控制电路
[0045]
120-0,120-1:dma通道
[0046]
121-0,121-1:暂存器文件
[0047]
122-0,122-1:模式暂存器
[0048]
124-0,124-1:地址暂存器
[0049]
126-0,126-1:计数暂存器
[0050]
130:设定接口
[0051]
140:主接口
[0052]
200:总线
[0053]
300:处理器
[0054]
400:安全记忆体
[0055]
500:非安全记忆体
[0056]
cm:控制命令
[0057]
crw:读写命令
[0058]
qm:查询命令
[0059]
rc:回复内容
[0060]
intr:中断
[0061]
600:选择电路
[0062]
s210~s280,s510~s540:步骤
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1