可位操作的直接存储器访问的制作方法

文档序号:20499526发布日期:2020-04-21 22:39阅读:189来源:国知局
可位操作的直接存储器访问的制作方法

相关专利申请

本申请要求2017年10月25日提交的美国临时专利申请号62/576,966的优先权,该申请的内容据此全文并入。

本公开涉及存储器访问,并且更具体地涉及可位操作的直接存储器访问(dma)。



背景技术:

对于不同存储器或存储器部件之间的存储器传输操作,处理器可使用编程输入和输出指令来读取、写入和设定数据。然而,由于存储器访问的延迟,由处理器执行的此类指令可能是缓慢的。存储器的访问可能需要与存储器的机械或电子元件进行物理接口。由处理器执行的指令直到读或写完成后才会结束。因此,处理器正在等待指令结束,如上所述,由于存储器延迟,该指令可能执行缓慢。在此操作期间,处理器或分配给任务的处理器线程可能无法执行其他任务。

dma可允许处理器卸载存储器位置之间的数据写入或读取块。dma可由单独的控制器或电路来实现。dma控制器可具有接口,系统的处理器或外围设备可通过该接口调用dma控制器以读取或写入数据块。当dma控制器正在操作以读取或写入数据块时,处理器或外围设备可执行其他任务。当dma控制器完成时,dma控制器可向处理器或外围设备发出中断或其他信号。



技术实现要素:

本公开的实施方案包括存储器管理电路。存储器管理电路可包括第一dma通道。dma通道可包括被配置为接收将使用dma写入的第一数据缓冲区的逻辑。存储器管理电路可包括第一电路,该第一电路包括被配置为在第一数据缓冲区的dma写入周期期间实时执行位操作的逻辑。结合上述实施方案中的任一个,第一电路还可包括用于执行具有设定功能的位操作的逻辑。结合上述实施方案中的任一个,第一电路还可包括用于执行具有清除功能的位操作的逻辑。结合上述实施方案中的任一个,第一电路还可包括用于执行具有取反功能的位操作的逻辑。结合上述实施方案中的任一个,第一电路还可包括用于执行具有优先于清除功能的设定功能的位操作的逻辑。结合上述实施方案中的任一个,第一电路还可包括用于执行具有优先于取反功能的设定功能的位操作的逻辑。结合上述实施方案中的任一个,第一电路还可包括用于执行具有优先于取反功能的清除操作的位操作的逻辑。

结合上述实施方案中的任一个,存储器管理电路还可包括第二dma通道。第二dma通道可包括被配置为接收将使用dma写入的第二数据缓冲区的逻辑和包括被配置为在第二数据缓冲区的dma写入周期期间实时执行位操作的逻辑的第二电路。结合上述实施方案中的任一个,第一数据缓冲区可包括指示先进先出(fifo)移位寄存器已满的位。结合上述实施方案中的任一个,第一电路可被配置为重置位,该位指示在重写包括位的字节期间fifo移位寄存器已满,同时掩模字节的其他位。结合上述实施方案中的任一个,第一dma通道还可包括用于向第二dma通道发送触发的逻辑。结合上述实施方案中的任一个,第二dma通道还可被配置为在接收到触发时将fifo移位寄存器的内容加载到第二缓冲区中。结合上述实施方案中的任一个,第二电路可包括用于在另一dma写入周期期间将第二缓冲区写入目标的逻辑。

结合上述实施方案中的任一个,存储器管理电路还可包括第二dma通道。结合上述实施方案中的任一个,第二dma通道可包括被配置为接收将使用dma写入的第二数据缓冲区的逻辑,以及包括被配置为在第二数据缓冲区的dma写入周期期间实时执行位操作的逻辑的第二电路。结合上述实施方案中的任一个,第一数据缓冲区可包括用于第二电路的掩模信息。结合上述实施方案中的任一个,第一电路可被配置为在将数据加载到第一缓冲区中时向第二dma通道发出触发。结合上述实施方案中的任一个,在接收到触发时,第二电路可被配置为在第二缓冲区的dma写入期间使用从第一数据缓冲区到第二缓冲区的掩模信息来施加位操作。结合上述实施方案中的任一个,第二电路可被配置为使用掩模信息使用位操作将第二缓冲区写入第二缓冲区的源。

本公开的实施方案包括微控制器。微控制器可包括处理器和上述实施方案的存储器管理电路中的任一个。

本公开的实施方案可包括由上述实施方案中的存储器管理电路中的任一个执行的方法。

附图说明

图1是根据本公开的实施方案的用于dma中的位操作的系统的图示。

图2是根据本公开的实施方案的掩模电路的更详细图示。

图3是根据本公开的实施方案的用于先进先出应用的dma的示例性应用的图示。

图4是根据本公开的实施方案的与内核无关的位碰撞的图示。

具体实施方式

图1是根据本公开的实施方案的用于dma中的位操作的系统100的图示。系统100可在任何合适的环境中实现,诸如微控制器,片上系统(soc),计算机,平板电脑,智能电话,服务器,打印机,路由器,工业自动化控制器,汽车电子系统或任何其他合适的电子设备。系统100可包括被配置为将存储器从数据空间102传输至另一数据空间106的dma控制器104。

dma控制器104可通过模拟电路、数字电路或它们的任何合适的组合来实现。dma控制器104可包括数据缓冲区110。此外,dma控制器可包括位操作掩模电路114。

数据空间102和数据空间106可包括用于在系统100中存储数据的任何合适类型的存储器或其他元件。例如,数据空间102可包括专用功能寄存器(sfr)或静态随机存取存储器(sram)108中的一系列存储器位置。类似地,数据空间106可包括sfr或sram108。

dma104可被配置为将存储器从数据空间102传输至数据空间106,以及从数据空间106传输至数据空间102。在一个实施方案中,数据空间102、106可能不是持久存储装置。dma104可代表系统100的其他部分诸如处理器116或外围设备118进行此类传输。在其他情况下,dma104可用于多核处理器中的处理器116或外围设备118内的芯片内数据传输。

处理器116可通过单个或多核处理器,或单线程或多线程处理器来实现。处理器116可在外围设备118中实现,或者外围设备118可包括例如数字信号处理器、打印机、盘驱动控制器、图形卡、网卡或声卡。

通过使用dma104,而不是直接输入和输出到数据空间102、106,处理器116和外围设备118可以能够在数据空间102、106之间传输数据块,而不会减少处理器开销。此外,通过在处理器116的多核实现方式内使用dma104,处理器116可在不占用其处理器时间的情况下向和从其本地存储器传输数据,从而允许并行进行计算和数据传输。dma104可用于存储器到存储器的数据在存储器内的复制或移动。dma104可在处理器116或外围设备118无法保持数据传输速率的情况下使用,或者在处理器116或外围设备118需要执行等待相对较慢的i/o数据传输的其他任务时使用。处理器116或外围设备118可将昂贵的存储器操作(诸如大型复制或散射收集操作)从cpu卸载至专用dma引擎。

dma104以块的形式在数据空间102、106之间传输数据。块可以字节或字的形式来定义,其中最少量的数据将在数据空间102、106之间传输。该最小量的数据是经由dma传输数据所获得的效率的权衡。dma的其他具体实施不允许传输小于所定义的字节或字的数据。在dma的此类其他具体实施中,处理器或外围设备将直接输入和输出命令以在数据空间之间传输数据,而不是使用dma。不能对子字或子字节传输进行逐位操作或位操作。另选地,在dma的其他此类具体实施中,处理器或外围设备可将掩模应用于dma操作,但此类应用程序需要处理器或外围设备对存储器位置直接访问或操作,并且因此遇到相同的延迟和带宽利用率问题。dma与处理器或外围设备的直接输入和输出命令的这种组合规避了dma使用的一些优点。

相比之下,本公开的实施方案包括在传输数据的dma过程期间由dma104执行的位操作。此类位操作可实时发生。此外,位操作可在dma104内执行。此外,位操作相对于处理器116或外围设备118可为异步的,就像其他dma操作对于处理器116或外围设备118是异步的那样。当此类数据通过dma104流传输时,可对通过dma104流传输的数据执行位操作。在数据要存储在目标数据空间中的相同时钟周期期间,可对通过dma104流传输的数据执行位操作。与所需的操作相比,位操作可以动态方式执行。

将由dma104执行的位操作可用于例如,先进先出存储器操作,或用于作为通信协议的一部分的位碰撞。此外,可通过dma104执行位操作以使用dma来增强其他典型的数据传输。例如,dma传输通常可将数据的整个字或字节从一个数据空间传输到另一个数据空间。但是,要传输的数据的总范围可能无法均匀分布在字或字节的总数中。因此,dma的数据传输将具有过多的包容性或包容性不足。dma传输可以是过度包容的,因为超过从一个数据空间到另一个数据空间传输的请求的存储器的数量。额外的存储器的数量可反映附加数据地址,由于附加数据地址在源数据空间中的同一个字或字节内作为要传输至新数据空间的数据,该附加数据地址在未被具体地请求移动到新位置时被移动。这些附加数据地址可反映关于预期接收人的无意义的、垃圾数据或其他破坏性或无用信息。如果此类数据连同旨在在dma过程中传输的数据一起传输,则数据的写入必须由处理器或外围设备在后脚本过程中进行修正。类似地,dma传输可以是不足的,因为为了避免数据过度包容传输,不完全填充字或字节的要传输的数据地址可能不会使用dma进行传输。相反,处理器或外围设备自身可向数据空间进行直接输入和输出传输,以填充否则将不完全填充字或字节的缺失数据地址。这种数据传输的管理可能是缓慢和资源密集型的。相比之下,dma104执行的位操作可通过例如掩模此类数据写入目标数据空间来适应此类数据。

dma104可包括数据缓冲区110。数据缓冲区110可以是由要写入数据空间106的来自数据空间102的字节或字填充的临时存储器。dma104可包括数据缓冲区110的其他实例,因此表现出单独的dma通道。

在一个实施方案中,dma104可包括掩模电路114。掩模电路114可通过模拟电路、数字电路或它们的任何组合来实现。掩模电路114的更详细的具体实施可例如在图2的上下文中找到。掩模电路114可包括或可被配置为访问一个或多个掩模寄存器。掩模寄存器可基于位来定义要对要传输到数据缓冲区110中的目标数据空间的数据执行的一个或多个逻辑操作。每个寄存器可以是数据缓冲区110的大小或宽度。每个寄存器可以是作为dma过程的一部分而同时发送到目标的字或字节的大小或宽度。

掩模电路114可被配置为执行任何合适数量和种类的逻辑操作。在一个实施方案中,掩模电路114可被配置为执行设定操作。在此类操作中,掩模的位可限定要由数据缓冲区110的对应值设定的目标数据空间106的位。在另一个实施方案中,电路114可被配置为执行清除操作。在此类操作中,掩模的位可限定待清除的目标数据空间106的位。在另一个实施方案中,电路114可被配置为执行取反操作。在此类操作中,掩模的位可限定要取反然后被写入目标数据空间106的数据缓冲区110的位。

在一个实施方案中,掩模电路114可被配置为选择性地施加可用的位操作运算中的单个。掩模电路114可被配置为保持可用位操作运算的分级结构,使得如果请求了多于一种类型的位操作运算,则仅执行更优选的操作。例如,设定位值可能是最优选的操作,然后是清除位值,然后是对位值取反。

处理器116和外围设备118可被配置为调用dma104以dma方式将数据从数据空间102传输至数据空间112。这种调用可例如通过dma104的功能调用来执行。当dma104已完成其传输时,可以任何合适的方式对处理器116或外围设备118的调用发出通知。例如,dma104可在传输完成时发出中断,或在发生错误情况时发出中断,使得不可能完成。

处理器116和外围设备118可被配置为以任何合适的方式调用dma104的位操作运算。在一个实施方案中,处理器116和外围设备118可通过dma104通过一个命令调用正常dma传输,并且可利用另一命令来调用具有位操作的dma传输。在另一个实施方案中,处理器116和外围设备118可调用正常dma传输并利用同一命令利用位操作来调用dma传输。在此类实施方案中,dma传输期间的位操作可通过设定或启用由电路114访问的掩模或寄存器中的位来执行。

本公开的实施方案可消除cpu干扰—与由dma104执行的正常dma操作相比,可执行由电路114执行的dma位操作而无需附加总线利用或延迟。由电路114执行的位操作可在启动或终止dma触发器上的操作时执行。

图2是根据本公开的实施方案的掩模电路114的更详细图示。可将要从一个数据空间传输到另一个数据空间的数据输入数据缓冲区110中。如上所述,数据缓冲区110可具有特定的字或字节大小,诸如16位。掩模电路114可处理数据缓冲区110的内容并将这些元素写入单个时钟周期中的目标数据空间。

掩模电路114可包括或可被配置为访问寄存器或其他信息来源,该寄存器或其他信息源限定要对数据缓冲区110的数据执行的位操作运算。此外,此类寄存器或其他信息来源可限定要通过此类运算来操作的位。寄存器内容可被引用为“设定”以指示相关联的内容被操作,并且被引用为“未设定”以指示关联的内容不被操作。在各种具体实施中,给定位的设定或取消设定状态可利用逻辑高(“1”)或逻辑低(“0”)来实现。

在一个实施方案中,掩模电路114可包括或被配置为访问寄存器226或限定取反运算的其他信息源。寄存器226可被给定为“dmainvx”。如果设定了寄存器226的任何位,则掩模电路114可被配置为将由设定位指定的数据缓冲区110的值取反。与未设定位相对应的数据缓冲区110的其他值可能未被取反。结果可传递到掩模电路114的其他部分。取反可借助来自寄存器位的输入和从数据缓冲区110接收的数据由一个或多个xor门220来实现。xor门220可通过逐位xor门或通过多于一个的xor门来实现,该xor门的量足以同时提供数据缓冲区110的尺寸。

在一个实施方案中,如果要对给定位执行优选的位操作,诸如清除或设定,则可能不执行针对这种给定位的取反。如果寄存器226指示要取反此给定位,但给定位将被掩模电路114的其他部分清除或设定,则取反运算可被覆盖。在另一个实施方案中,仍可对这样的给定位执行取反,但取反内容可随后被掩模电路114的其他部分进一步操作。

在一个实施方案中,掩模电路114可包括或被配置为访问寄存器228或限定清除运算的其他信息源。寄存器228可被给定为“dmaclrx”。如果设定寄存器228的任何位,则掩模电路114可被配置为清除从由设定位指定的xor门220接收的数据缓冲区110的值。从xor门220接收的对应于未设定位的数据缓冲区110的其他值可能未被清除。结果可传递到掩模电路114的其他部分。反转可借助用于来自寄存器228的位的取反输入和从xor门220接收的输入由一个或多个and门222来实现。and门222可通过逐位and门或通过多于一个的and门来实现,该and门的量足以同时提供数据缓冲区110的尺寸。

在一个实施方案中,如果要对给定位执行优选的位操作,诸如设定,则可能不执行针对这种给定位的清除。如果寄存器228指示要清除此给定位,但给定位将被掩模电路114的其他部分设定,则清除运算可被覆盖。在另一个实施方案中,仍可对这样的给定位执行清除,但清除内容可随后被掩模电路114的其他部分进一步操作。

在一个实施方案中,掩模电路114可包括或被配置为访问寄存器230或限定设定运算的其他信息源。寄存器230可被给定为“dmasetx”。如果设定寄存器230的任何位,则掩模电路114可被配置为设定从由设定位指定的and门222接收的数据缓冲区110的值。从and门222接收的对应于未设定位的数据缓冲区110的其他值可能未被设定。结果可作为掩模电路114的输出传递到数据空间目标。可借助针对来自寄存器228的位以及从and门222接收的输入通过一个或多个or门224执行设定。or门224可通过逐位or门或通过多于一个的or门来实现,该or门的量足以同时提供数据缓冲区110的尺寸。

dma104可包括数据缓冲区110和掩模电路114的一些或全部的多个实例(未示出),从而表现出单独的dma通道。对于每个dma通道,可存在专用掩模寄存器以及寄存器226、228、230的实例。

电路114的应用可包括例如,fifo数据传输,或与fifo数据传输一起使用的状态位操作。电路114可用于在通信中对dma触发器执行位碰撞或端口寄存器操作。特定的位碰撞或fifo运算可由电路114的寄存器中设定的值来限定。fifo或位碰撞可向例如,外围设备或客户端设备发送初始化或终止信号。因此,dma触发器可用于发送此类信号。在dma触发器上启动或终止从属设备可用于有效控制通信。

可以对存储器列修改进行具有读取修改写入的位启用功能。例如,可使用电路114的掩模从数据空间102选择性地读取数据并将其重写到数据空间102中的相同地址。数据可一次读取一个字节并被馈送到缓冲区110中。特定期望的重写可决定要使用的电路114的掩模。例如,如果存储器列修改旨在设定八位字节的第一和第三位(从最小有效位(lsb)开始),则寄存器230可限定掩模“00000101”。寄存器226、228可各自为“00000000”,或者寄存器230可覆盖其中的内容。存储器列的每行或每排继而可从缓冲区110馈送到电路114中,并且电路114可设定第一位和第三位,从而在重新写入到从中读取存储器的同一排时保持八位中的其他位的完整性。电路114可类似地处理下一排八位。又如,如果存储器列修改旨在清除存储器列的下四位位置中的所有位,则寄存器228可限定掩模“00001111”。寄存器226、230可各自为“00000000”,或者寄存器226的内容可被寄存器228覆盖。存储器列的每行或每排继而可从缓冲区110馈送到电路114中,并且电路114可将重新写入中的下四位清除回到从中读取存储器的同一行,从而保持其他四位的内容。电路114可类似地处理下一排八位。

dma104或掩模电路114可被实现为独立或便携式逻辑块。例如,这些可被实现为微控制器中的内部外围设备。总线主控电路或控制器可包括在dma104或掩模电路114中或者与dma或掩模电路接口,以允许访问内部存储器映射寄存器,从而降低对外围设备自身处理器的需求。

图3是根据本公开的实施方案的用于fifo的dma的示例性应用的图示。dma304可以是dma104的更具体实例。dma304可包括两个通道306a、306b。每个通道306可包括相应的数据缓冲区308和位操作掩模电路310。数据缓冲区308可以是缓冲区110的更具体的实例,并且电路310可以是电路114的更具体的实例。

dma304可被配置为处理来自外围设备301的用于fifo运算的数据。fifo运算可包括例如,串行输出、串行外围接口(spi)运算、uart或其他应用程序。串行数据可能会到达,其中每个位被记入到移位寄存器中。一旦收集整个字节或字(根据移位寄存器的大小),整个收集的字节或字就会移位到fifo中。然后可将数据作为整体在fifo中处理以用于例如,串行操作。在这一点处,移位寄存器可再次为空。在fifo的其他具体实施中,从移位寄存器获取数据并将其放入fifo中可能需要生成cpu中断。在一个实施方案中,dma304可被配置为避免cpu的此类参与。

外围设备的fifo操作通常可涉及两个总线事务。在第一阶段,可访问控制或状态寄存器312。在第二阶段,可移动数据。

位可到达外围设备301中的移位寄存器(未示出)。当这种移位寄存器已满时,其内容可一次性全部放置到fifo314中。从那里,此类数据可经由dma发送到目标,诸如sram空间302。当移位寄存器已满时,在其他实施方案中,可将中断升高至cpu。相比之下,在一个实施方案中,当移位寄存器已满时,可在控制/状态寄存器312中设定一个位。此类位可用于独立且自主地自动地对移位寄存器的内容执行dma传输而无需cpu帮助。

dma304的第一通道306a可被配置为监测控制/状态寄存器312中的位的设定。dma304的第二通道306b可被配置为在通过dma304的第一通道306a检测到位时将数据从fifo314传输至sram302。通道306a可被配置为在完成对控制/状态寄存器312的位的检测时向通道306b发出触发。

dma304可被配置为消灭旨在由填充移位寄存器生成的cpu的中断。外围设备301可设定控制/状态寄存器312的任何合适的位。例如,位8可以是用于设定同一指定位的读写的指定位。可将整个控制/状态寄存器312加载到缓冲区308a中。可以用电路310a中的清除掩模“100000000”清除位8的值。位8处的清除值以及控制/状态寄存器312的读取值的未触及的其他位可被回写至控制/状态寄存器312。

一旦其fifo314准备好进行处理,外围设备301就可中断或触发dma304,并相应地设定或清除其控制/状态寄存器312位。dma304可被配置为通过编程控制/状态寄存器312来响应,以获得准备用于下一阶段的外围设备301。

在第二数据移动阶段期间,可从fifo314获取数据至其他存储器位置,诸如sram302。这可由dma304的通道306b执行。电路310b可不执行任何位操作。其掩模可以是所有“0”值,表明源fifo314的写入将在不进行位操作的情况下写入sram302。可基于来自通道306a的触发来触发写入。

fifo处理可独立于外围设备301的处理内核或访问外围设备301的处理器执行。控制/状态寄存器312可被配置为调用宏以访问作为共享读取数据总线的一部分的数据缓冲区308a。可将数据从掩模电路310a返回至控制/状态寄存器312与共享写入数据总线共享。当通道306a完成时,其可针对通道306b发出中断输入。因此,通道306a可充当到另一个通道306b的fifo触发。此外,通道306a操作外围设备301的控制/状态寄存器位。触发通道306b可导致数据通过缓冲区308b从fifo314移动到sram302。

通道306a可对从控制/状态寄存器312接收的位借助电路310a执行读取修改写入操作,然后将其重写至控制/状态寄存器312。将位重写至控制/状态寄存器312可发起由通道306b执行的fifo数据传输。通道306a可将其源地址指针和目标地址指针编程到相同位置(控制/状态寄存器312),从而读取控制/状态寄存器312的内容,基于电路310a中正确预编程的掩模寄存器来操作相关位,并且将修改后的内容写入回控制/状态寄存器312中的相同位置,从而独立于其处理器完成读取修改写入操作。

图4是根据本公开的实施方案的与内核无关的位碰撞的图示400。图示400可示出系统100的具体实施。例如,dma404可使用通道406的两个实例来实现dma104,每个通道包括数据缓冲区408和位操作掩模电路410。

位碰撞可指要发布到总线、网络、设备或其他合适目标的一系列位或位模式。可通过dma写入来执行位碰撞输出。要执行的位碰撞的具体模式可完全取决于特定协议、握手、交换、共享秘密或其他商定的指定通信方法。要发出的位碰撞的模式可能在不同阶段期间发生变化。否则,位碰撞可能需要使用处理器来连续地处理待发出的位的模式。然而,给定了dma404的位操作能力,可以独立于处理器干预来执行位碰撞。

虽然可执行任何合适的位碰撞,但在图4的示例中,十六位字节的两个最小有效位的不同值模式可在特定序列中改变。特定序列可以是“00”、“10”、“01”、“11”。其他序列可涉及更少或更多位,或序列值的重复或省略。序列的输出可通过dma写入在端口寄存器402(ra)上进行。端口寄存器402可以是到网络或其他设备的输出。具体地讲,可在端口寄存器402、ra0和ra1的两个最小有效位上进行序列的输出。

为了执行位碰撞,作为第一阶段,dma404可清除端口寄存器402的ra0和ra1。第二通道406b可具有其初始的默认掩模值,“0000000000000000”用于取反掩模,“0000000000000011”用于其清除掩模,以及“0000000000000000”用于位操作掩模电路410运算的其设定掩模。在(1)处,端口寄存器402的值可被读取到缓冲区406b中。在(2)处,掩模可应用于缓冲区406b中的该值,并经由dma写入到端口寄存器402。通过应用“0000000000000011”的清除掩模,可清除端口寄存器402的最低两位ra0和ra1,同时保持端口寄存器402的其他十四个值。

dma通道406a和406b可包括在dma操作完成时被激活的触发器。dma通道406a可设定其触发以在dma通道406a的操作完成时通知dma通道406b。dma通道406b可设定其触发以在dma通道406b的操作完成时通知dma通道406a。

作为第二阶段,可操作ra0和ra1的值。在一个实施方案中,sram401中的值可用于顺序地设定通道406b的一个或多个掩模。在通道406b中针对电路410b设定的掩模可导致该序列在端口寄存器402中的位碰撞和发布。给定的掩模值可从sram401中的行或排加载。掩模值可以简单地作为数据存在。

在接收到来自通道406b的触发时,可在通道406a中开始操作。在(3)处,掩模值可被加载到第一通道406a的缓冲区408a中。通道406a的掩模可被设定为所有“0”值,这意味着电路410a可不执行位操作。在(4)处,通道406a可以dma方式将其值写入第二通道406b的合适掩模寄存器。例如,可将这些值写入电路410b的设定掩模。因此,sram401中每个给定行的存储器的内容可控制电路410b的设定掩模。当通道406a完成将这些值写入电路410b的设定掩模时,通道406a可向通道406b发出触发,该通道可开始操作。

在(5)处,可将端口寄存器402的内容读取到缓冲区408b中。在(6)处,可将端口寄存器402的内容重写回到它们在端口寄存器402处的位置,但使用由电路410b根据从sram401提供的掩模值执行的位操作。

从sram401读取的掩模值可被应用于电路410b中的设定掩模。默认情况下存在的清除掩模值可保留在电路410b中。当给定位被清除(在清除掩模中具有“1”)并设定(在设定掩模中具有“1”)时,设定掩模可具有优先权并且可设定掩模。sram401可连续重新读取(必要时重新开始),并且端口寄存器402持续重写直到指定时间。

例如,sram401的第一行可为“0000000000000000”,这意味着电路410b的设定掩模将为“0000000000000000”。清除掩模可以为“0000000000000011”。端口寄存器402的值可加载在缓冲区408b中。最高的十四位可能未更改。可通过清除掩模来清除位ra1。可通过清除掩模来清除位ra0。设定掩模可能不起作用,因为它都是“0”值。端口寄存器402的最低两位的所得值可为“00”。

sram401的第二行可为“0000000000000001”,这意味着电路410b的设定掩模为“0000000000000001”。清除掩模可以为“0000000000000011”。端口寄存器402的值可加载在缓冲区408b中。最高的十四位可能未更改。可通过清除掩模来清除位ra1。设定掩模可对位ra1无影响,因为对应的值为设定掩模中的“0”。位ra0可由设定掩模来设定。清除掩模中的对应值可被设定掩模中的该“1”值覆盖。端口寄存器402的最低两位的所得值可为“01”。

sram401的第三行可为“0000000000000010”,这意味着电路410b的设定掩模将为“0000000000000010”。清除掩模可以为“0000000000000011”。端口寄存器402的值可加载在缓冲区408b中。最高的十四位可能未更改。位ra1可由设定掩模来设定。可通过清除掩模来清除位ra0。端口寄存器402的最低两位的所得值可为“10”。

sram401的第四行可为“0000000000000011”,这意味着电路410b的设定掩模将为“0000000000000011”。清除掩模可以为“0000000000000011”。端口寄存器402的值可加载在缓冲区408b中。最高的十四位可能未更改。位ra1可由设定掩模来设定。位ra1可由设定掩模来设定。可以覆盖清除掩模的对应位中的值“11”。端口寄存器402的最低两位的所得值可为“11”。

因此,sram401的存储器映像可仅用于程序通道406b及其设定的掩模寄存器,而不是直接提供用于位碰撞的位值的内容。dma404利用三位操作功能的隐式优先级。通过将清除掩模寄存器的所需位默认为‘1’,当对应的设定掩模位为‘0’时,来自sram401的传入数据位将被清除为‘0’,从而完成理想的输出。

已根据一个或多个实施方案描述了本公开,并且应当理解,除了明确陈述的那些之外,许多等同物、替代物、变型和修改是可能的并且在本公开的范围内。虽然本公开易受各种修改形式和替代形式的影响,但是其具体示例性实施方案已经在附图中示出并且在本文中详细描述。然而,应当理解,本文对具体示例性实施方案的描述并非旨在将本公开限于本文所公开的特定形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1