一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-04-24 19:53:41 来源:中国专利 TAG:


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


背景技术:

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


技术实现要素:

3.鉴于先前技术之不足,本发明之一目的在于提供直接记忆体存取控制器、使用直接记忆体存取控制器之电子装置以及操作直接记忆体存取控制器的方法。
4.本发明揭露一种直接记忆体存取控制器,用来存取一记忆体,该记忆体包含一特权区域及一普通区域。该直接记忆体存取控制器包含一直接记忆体存取通道、一模式暂存器、一设定接口以及一控制电路。该模式暂存器用来储存一暂存值。当该暂存值为一第一数值时,该直接记忆体存取通道操作于一特权模式,以及当该暂存值为一第二数值时,该直接记忆体存取通道操作于一普通模式。设定接口用来接收一控制命令。控制电路耦接于该直接记忆体存取通道,用来根据该控制命令设定该模式暂存器之该暂存值。当该直接记忆体存取通道操作于该特权模式时,该直接记忆体存取通道可以存取该特权区域及该普通区域,以及当该直接记忆体存取通道操作于该普通模式时,该直接记忆体存取通道可以存取该普通区域,但无法存取该特权区域。
5.本发明另揭露一种电子装置,包含一处理器、一记忆体以及一直接记忆体存取控制器。该处理器用来产生一控制命令,该控制命令用来设定该直接记忆体存取控制器之一操作模式。该记忆体包含一特权区域及一普通区域。该直接记忆体存取控制器透过一总线耦接该处理器及该记忆体,并且包含一直接记忆体存取通道、一设定接口以及一模式暂存器。该直接记忆体存取控制器透过该设定接口接收该控制命令。该模式暂存器用来储存对应于该控制命令的一暂存值。当该暂存值为一第一数值时,该直接记忆体存取通道操作于一特权模式,以及当该暂存值为一第二数值时,该直接记忆体存取通道操作于一普通模式。当该直接记忆体存取通道操作于该特权模式时,该直接记忆体存取通道可以存取该特权区域及该普通区域,以及当该直接记忆体存取通道操作于该普通模式时,该直接记忆体存取通道可以存取该普通区域,但无法存取该特权区域。
6.本发明另揭露一种操作一直接记忆体存取控制器的方法。该直接记忆体存取控制
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包含特权属性(privilege 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)的其中一比特(例如比特值为0,即pprot[0])。在其他的实施例中,设定接口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:步骤
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献