CN111615691A - 直接存储器访问适配器 - Google Patents
直接存储器访问适配器 Download PDFInfo
- Publication number
- CN111615691A CN111615691A CN201980008729.4A CN201980008729A CN111615691A CN 111615691 A CN111615691 A CN 111615691A CN 201980008729 A CN201980008729 A CN 201980008729A CN 111615691 A CN111615691 A CN 111615691A
- Authority
- CN
- China
- Prior art keywords
- dma
- sfr
- cpu
- legacy
- internal hardware
- 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
Links
- 230000002093 peripheral effect Effects 0.000 claims abstract description 167
- 230000006870 function Effects 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 12
- 238000012546 transfer Methods 0.000 description 6
- 239000000470 constituent Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 101001115830 Homo sapiens Prostate-associated microseminoprotein Proteins 0.000 description 1
- 102100025013 Prostate-associated microseminoprotein Human genes 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Microcomputers (AREA)
Abstract
处理器包括中央处理单元(CPU)和直接存储器访问(DMA)适配器电路。DMA适配器电路包括DMA控制器电路,并且被配置成与传统内部硬件外围设备并与启用DMA的内部硬件外围设备进行交互。启用DMA的内部硬件外围设备包括第一特殊功能寄存器(SFR)。传统内部硬件外围设备不包括DMA特征。CPU被配置成执行传统应用程序,该传统应用程序通过传统内部硬件外围设备访问存储器中的设定。传统应用程序的执行包括由CPU访问存储器中的设定。DMA控制器电路被配置成在通过启用DMA的内部硬件外围设备执行启用DMA的应用程序期间访问存储器中的设定。
Description
优先权声明
本申请要求2018年1月19日提交的美国临时专利申请号62/619,265的优先权,该申请的全部内容以引用方式并入本文。
技术领域
本公开涉及用于处理器和微控制器的存储器管理,并且更具体地,涉及用于微控制器或处理器内的外围设备的直接存储器访问(DMA)适配器。
背景技术
DMA可允许某些硬件子系统,诸如处理器或微控制器内的那些硬件子系统独立于CPU访问主系统存储器,诸如随机存取存储器(RAM)。在不具有DMA的情况下,当CPU使用例程来读取或写入数据时,CPU通常在读取或写入操作的整个持续时间内被完全占用,因此不可用于执行其它工作。在具有DMA的情况下,CPU首先发起传输并在传输正在进行的同时执行其它任务,直到在操作完成时从DMA控制器接收到中断。DMA由处理器和微控制器内的各种外围设备使用,并且可用于任务,诸如向和从辅助存储器的数据写入、图形、联网,或其它任务。DMA还可用于多核处理器中的芯片内数据传输。DMA也可用于复制存储器自身内的数据。
处理器、微控制器、微控制器单元(MCU)、中央处理单元(CPU)和其它电子设备可包括内部外围设备。这些外围设备可包括可供MCU的各个部分执行任务的数字或模拟电路。此类内部外围设备可包括例如计数器、定时器、实时时钟、通用异步收发器(UART)接口、串行外围设备接口(SPI)或I2C接口。
发明内容
本公开的实施方案包括DMA适配器电路。DMA适配器电路可包括DMA控制器电路。DMA适配器电路可被配置成与传统内部硬件外围设备并与启用DMA的内部硬件外围设备进行交互。外围设备可位于处理器、微控制器或系统的内部,在该处理器、微控制器或系统中实现DMA适配器电路或DMA适配器电路通信地耦接到该处理器、微控制器或系统。启用DMA的内部硬件外围设备可包括第一特殊功能寄存器(SFR)。传统内部硬件外围设备可能不包括DMA特征。DMA适配器电路可在处理器、微控制器或系统的中央处理单元(CPU)中实现或可通信地耦接到该CPU,在该处理器、微控制器或系统中实现DMA适配器电路或DMA适配器电路通信地耦接到该处理器、微控制器或系统。CPU可被配置成执行传统应用程序。传统应用程序可被配置成通过传统内部硬件外围设备访问存储器中的第一设定。传统应用程序的执行可包括由CPU访问存储器中的第一设定。DMA控制器电路可被配置成在通过启用DMA的内部硬件外围设备执行启用DMA的应用程序期间访问存储器中的第一设定。结合上述实施方案中的任一项,CPU可被配置成将第一设定查看为存储在存储器映射中的第一SFR中。结合上述实施方案中的任一项,第一SFR是DMA SFR,第一设定被配置成存储在第一SFR中,并且第一SFR对于CPU不可见。结合上述实施方案中的任一项,可在DMA适配器电路中实现第二SFR和第三SFR,其中第三SFR是DMA SFR,传统内部硬件外围设备被配置成在启用DMA的应用程序的执行期间允许CPU访问存储器中的存储在第二SFR中的第二设定,并且启用DMA的内部硬件外围设备被配置成在启用DMA的应用程序的执行期间允许DMA控制器电路访问存储器中的存储在第三SFR中的第三设定。结合上述实施方案中的任一项,第三SFR对于CPU不可见。结合上述实施方案中的任一项,第二SFR和第三SFR共享相同的标识地址。结合上述实施方案中的任一项,传统应用程序和启用DMA的应用程序被配置成在相同的标识地址处访问存储器中的第一设定。结合上述实施方案中的任一项,传统应用程序不具有被配置成访问第一设定的DMA功能。结合上述实施方案中的任一项,DMA控制器电路被配置成通过启用DMA的内部硬件外围设备的第二SFR接收在启用DMA的应用程序中生成的事件。结合上述实施方案中的任一项,CPU被配置成接收由传统应用程序的执行生成并且在CPU中断总线上从传统内部硬件外围设备接收的事件。
本公开的实施方案可包括处理器、微控制器、或系统,其包括上述DMA适配器电路中的任一个。
本公开的实施方案可包括由以上DMA适配器电路、处理器,微控制器或系统中的任一者执行的方法。
附图说明
图1是根据本公开的实施方案的用于与外围设备一起使用的DMA适配器的示例系统的图示。
图2是根据本公开的实施方案的用于与外围设备一起使用的DMA适配器的另一示例系统的图示。
具体实施方式
图1和图2示出了用于DMA适配器的示例系统。
在一个实施方案中,DMA适配器可包括CPU和DMA控制器之间对基于DMA的资源诸如寄存器的共享访问。图1示出了此类示例实施方案。在另一个实施方案中,DMA适配器可包括DMA控制器对基于DMA的资源诸如寄存器的访问,其中该访问被保留用于DMA控制器并且不包括对CPU的访问。图2示出了此类示例实施方案。
在一个实施方案中,DMA适配器可促进传统代码或传统外围设备的使用。可能已使用代码、命令、指令、应用编程接口(API)、库、脚本、函数或可与外围设备一起使用的其它软件来开发用于较旧外围设备的软件。软件可能已经开发具有用于从外围设备或存储器读取数据或向外围设备或存储器写入数据的特定代码。在现有硬件或外围设备上运行的此类软件可为稳定的并被验证。外围设备和软件可能不包括用于从外围设备或存储器读取数据或向外围设备或存储器写入数据的特定于DMA的特征。
然而,可开发具有DMA特征的较新处理器和微控制器。可开发具有对应于处理器和微控制器的DMA能力的较新外围设备。然而,在一个实施方案中,传统外围设备(不具有DMA特征)、添加有DMA特征的传统外围设备、或传统软件(不具有DMA特征)可与(具有DMA特征的)较新处理器和微控制器一起使用。可通过使用根据本公开的实施方案的DMA适配器来协调此类不兼容性。DMA适配器可允许用户在新微控制器和处理器中使用与先前的微控制器和处理器中使用的相同的软件、函数调用和API函数。此外,DMA适配器可允许用户使用具有添加的DMA能力或特征的传统外围设备。这些具有添加的DMA能力的传统外围设备结合本公开的DMA适配器可促进使用DMA特征的新代码以及不使用DMA特征的传统代码。
DMA能力可包括用于DMA读取和写入的寄存器,以及产生DMA中断以通知系统DMA操作的状态。具有DMA能力的较新外围设备可包括支持DMA能力的附加硬件。较新外围设备也可由新代码、命令、指令、API、库、脚本、函数或其它软件支持,使得可利用新DMA特征。新软件可由应用程序的开发者利用以在具有较新外围设备的系统上运行。传统外围设备可利用特定于DMA的特征来增强。在一个实施方案中,为不具有DMA功能的先前外围设备开发的传统代码可被启用以由DMA适配器在具有DMA功能的外围设备上执行。
具有DMA特征的外围设备可包括将DMA所需的数据合并到隔离寄存器中的数据寄存器布局。寄存器可与其它寄存器隔离。最初不考虑DMA特征而构建的传统外围设备可能已经压缩了其数据寄存器布局。例如,传统外围设备中的数据寄存器可能仅需要六位,而不是完整的八位。剩余的两位可用于SFR。这可能与DMA不兼容,因为DMA可能不被配置成有效地操纵给定寄存器内的数据。相反,DMA可被优化或特别适合于在不具有特定子寄存器操纵的情况下将数据移入和移出寄存器。传统外围设备的压缩数据布局可混合不同大小和种类的数据,使得DMA不能以通常可应用DMA的方式和速度有效地提取单一种类或来源的数据。为了继续传统外围设备中的数据寄存器的示例,八位寄存器的四位和五位可为表示脉冲宽度调制(PWM)占空比的10位值的两个最低有效位。剩余的八位可存储在又一个八位寄存器中。为了完全实现PWM占空比,所需的十位必须在八个最高有效位和两个最低有效位之间进行拆分。这两个最低有效位可与来自其它SFR的其它剩余位混合,并且写入到所考虑的寄存器或从所考虑的寄存器读取。在外围设备用于功率控制的应用程序中,如果DMA正在自动更新十位占空比(诸如在波形生成中),则这两位可被设定成静态值。使用寄存器的应用程序可限于具有固定偏移的八位占空比。较新版本的外围设备可创建占空比寄存器的新表示,该占空比寄存器不拆分数据以便适应DMA访问。使用本公开的实施方案,传统驱动器将能够使用传统表示,而对DMA友好的驱动器将使用启用DMA的表示。
图1是根据本公开的实施方案的用于与外围设备一起使用的DMA适配器的示例系统100的图示。在一个实施方案中,在系统100中,CPU可访问或可见与DMA控制器相同的特殊功能寄存器组。
系统100可包括中央处理单元(CPU)104或其它处理器或处理器核心。系统100可包括一个或多个外围设备102。此外,系统100可包括DMA适配器。DMA适配器可由DMA控制器106实现。此外,DMA适配器可由地址解码器110实现。地址解码器110可被配置成将地址转换为外围设备选择。此外,DMA适配器可由一个或多个特殊功能寄存器(SFR)120实现。DMA适配器可促进CPU 104和外围设备102之间的DMA操作。具体地讲,DMA适配器可处理直接来自存储器108和用于外围设备102的寄存器的数据传输。
CPU 106可包括任何合适的处理器、处理器核心或其它电子电路。系统100可在微控制器、微处理器、片上系统(SoC)或其它合适的电子设备中实现。CPU 106可提供存储在计算机可读介质上的指令的处理和执行。指令在由CPU 106加载和执行时可为软件应用程序提供有效的功能。
外围设备102可为构建在此类微控制器、微处理器、SoC或其它合适的电子设备内的外围硬件单元。外围设备102可为附接到或通信地耦接到系统100的其它外围设备(未示出)提供功能。外围设备102可被实现为独立于核心的外围设备(CIP)。CIP可包括电路并且被配置成独立于CPU 104执行。CIP可从CPU 104接收开始命令或停止命令,可经由存储器108向CPU 104发送数据或从CPU发送数据,或以其它方式与CPU 104通信。然而,CIP的正在进行的操作可能不需要在CPU 104内执行指令。一旦将CIP配置成操作,CPU 104就可允许CIP独立地操作。CIP可能仅需要根据需要生成中断或共享数据。CIP可代表系统100卸载某些任务的执行或处理。CIP外围设备可在不连续涉及处理器的情况下操作。CIP可例如在串行端口中连续地将数据路由到系统100或从系统路由数据。外围设备可包括例如模数转换器(ADC)、UART、SPI电路、PWM电路、定时器、数字端口、比较器、运算放大器或可配置逻辑单元(CLC)。CIP可以包括连接在一起以协同操作的外围设备的集合。示例是一起工作以驱动或产生功率源的定时器、CLC、PWM、比较器和运算放大器的组合。一旦该外围设备的集合被配置,功率源就在不具有进一步CPU参与的情况下运行。
DMA可以用于使此类CIP更复杂。功率源CIP还可包括数字端口、定时器和DMA接口,该数字端口、定时器和DMA接口被配置成捕获引脚改变的时间并在捕获该时间之后警示CPU。最终用户可将外围设备组合到专用解决方案中,诸如这种解决方案。因此,外围设备可相对较小,并且可提供外围设备之间的互连。因此,在微控制器或其它通用系统中,可包括更多数量的一般适用的外围设备,但通过使用外围设备,微控制器仍能够实现复杂的解决方案。
DMA适配器可以数字电路和存储器位置的任何合适的组合来实现。存储器位置可包括合适的寄存器。在图1中,DMA适配器可包括组成元件,诸如DMA控制器106、地址解码器110和SFR 120。在各种实施方案中,SFR 120可在外围设备102内实现。
DMA适配器的部件可沿着CPU 104和外围设备102之间的各种总线线路来实现。DMA控制器106可通信地耦接到存储器108、外围设备102和CPU 104。
例如,DMA控制器106可被配置成沿着中断总线114驻留。中断总线114可通信地耦接外围设备102和CPU 104。中断总线114可被配置成向DMA控制器106或CPU 104提供在外围设备112的操作内已发生中断的通知。中断可源自中断逻辑112。中断逻辑112可包括一系列可能的中断事件(事件1、事件2、事件3),其中在任何此类事件发生时,可向CPU 104生成中断。在一个实施方案中,这些事件可包括特定于DMA的事件。虽然CPU 104可接收已发生中断的通用信号,但事件中的特定于DMA的事件可被单独路由到DMA控制器106(未示出)。
在另一个示例中,DMA控制器106可沿着数据总线118通信地耦接到外围设备102的寄存器。DMA控制器106可被配置成写入到SFR 120和存储器108以及从SFR和存储器写入。此外,CPU 104可被配置成还写入到SFR 120和从SFR写入。
在又一个示例中,DMA控制器106可沿着地址总线116通信地耦接到地址解码器110。地址解码器110可被配置成选择在数据总线118上数据要被写入到SFR 120中的哪个或从SFR中的哪个写入。地址解码器110可被配置成由CPU 104或DMA控制器106两者控制。
图2是根据本公开的实施方案的用于与外围设备一起使用的DMA适配器的另一示例系统200的图示。在一个实施方案中,在系统200中,DMA控制器可访问或可见对CPU不可见或不可访问的一组SFR。
系统200可包括CPU 204或其它处理器或处理器核心。系统200可包括一个或多个外围设备202。此外,系统200可包括DMA适配器。DMA适配器可由DMA控制器206实现。此外,DMA适配器可由DMA地址解码器224实现。此外,DMA适配器可由一个或多个特殊功能寄存器(SFR)222实现。DMA适配器可促进CPU 204和外围设备202之间的DMA操作。具体地讲,DMA适配器可处理直接来自存储器208和用于外围设备202的寄存器的数据传输。
CPU 206可包括任何合适的处理器、处理器核心或其它电子电路。系统200可在微控制器、微处理器、片上系统(SoC)或其它合适的电子设备中实现。CPU 206可提供存储在计算机可读介质上的指令的处理和执行。指令在由CPU 206加载和执行时可为软件应用程序提供有效的功能。
外围设备202可为构建在此类微控制器、微处理器、SoC或其它合适的电子设备内的外围硬件单元。外围设备202可为附接到或通信地耦接到系统200的其它外围设备(未示出)提供功能。外围设备202可被实现为CIP。
DMA适配器可以数字电路、模拟电路、由处理器执行的指令、诸如寄存器的存储器位置或它们的任何合适的组合来实现。这些可包括组成元件,诸如DMA控制器206、DMA地址解码器224和SFR 222。在各种实施方案中,SFR 222可在外围设备202内实现。
DMA适配器的部件可沿着CPU 204和外围设备202之间的各种总线线路来实现。DMA控制器206可通信地耦接到存储器208、外围设备202和CPU 204。
例如,DMA控制器206可沿着数据总线218通信地耦接到外围设备202的寄存器。具体地讲,DMA控制器206可沿着数据总线218通信地耦接到外围设备202的SFR 220。此外,DMA控制器206可通信地耦接到SFR 222。DMA控制器206可沿着数据总线218或另一数据总线(未示出)通信地耦接到SFR 222。在一个实施方案中,DMA控制器206可被配置成写入到SFR 220和存储器108以及从SFR和存储器写入。此外,CPU 104可被配置成写入到SFR 220和从SFR写入。在另一个实施方案中,DMA控制器206可被配置成写入到SFR 222和存储器108以及从SFR和存储器写入。
在另一个示例中,在一个实施方案中,DMA控制器206可通信地耦接到DMA地址解码器224。DMA地址解码器224可被配置成选择要相对于DMA控制器206和存储器208将数据写入到SFR 222中的哪个或从SFR中的哪个写入。系统200可包括沿着地址总线216耦接到CPU204的地址解码器226。地址解码器226可被配置成选择要相对于CPU 204写入到SFR 220中的哪个或从SFR中的哪个写入。在另一个实施方案中,DMA控制器206可通信地耦接到地址解码器226。在此类实施方案中,地址解码器226可被配置成选择要相对于DMA控制器206和存储器208写入到SFR 220中的哪个或从SFR中的哪个写入。在此类另一个实施方案中,DMA控制器206和CPU 204两者均可被配置成控制或以其它方式使用地址解码器226。然而,在另选的实施方案中,DMA控制器206可能没有通信地耦接到地址解码器226,并且可能无法访问SFR 220。在另一个实施方案中,CPU 204可能无法访问DMA地址解码器224或SFR 222。
在又一个示例中,DMA控制器206可被配置成从外围设备202接收DMA中断228。在此类示例中,DMA中断228可能不会沿着CPU中断总线214通过其它中断逻辑212。CPU 204可被配置成沿着CPU中断总线214从中断逻辑212接收除DMA中断228之外的通用中断。中断逻辑212可以逻辑方式组合一个或多个非DMA中断,并将逻辑组合的指示发送到CPU 204。
将图1的系统100与图2的系统200进行比较,在一个实施方案中,系统200可实现对特定于DMA的SFR的访问,该特定于DMA的SFR对CPU 204不可用但对DMA控制器206可用。给定DMA任务,DMA控制器206可通过写入和读取CPU 204以其它方式不可见或不可访问的SFR来执行此类DMA任务。此类SFR可包括例如SFR 222。可由CPU 204访问以访问外围设备202的组成元件的地址解码器226可能不包括SFR 222的地址映射。地址解码器226可仅包括SFR 220的地址映射。在外围设备202的SFR池之外,SFR池可被分成SFR 220和SFR 222。在一个实施方案中,SFR 222可能仅对DMA控制器206可见或可用,而对CPU 204则不可见或不可用。在另一个实施方案中,SFR 220可能仅对CPU 204可见或可用,而对DMA控制器206不可见或不可用。在另选的实施方案中,SFR 220可能对CPU 204和DMA控制器206两者可见或可用,但SFR222可能对CPU 204不可见或不可用。
图1的系统100可被配置成实现场景,其中在CPU 104上运行的软件被配置成访问任选地具有或不具有DMA能力的外围设备102。此外,图2的系统200可被配置成也实现场景,其中在CPU 204上运行的软件被配置成访问任选地具有或不具有DMA能力的外围设备202。系统100可利用CPU 104与DMA控制器106之间的共享SFR 120来实现任选的DMA能力,其中SFR 120包括DMA访问SFR。系统200可实现任选的DMA能力,其中SFR 222对DMA控制器206可访问或可见,但对CPU 204不可访问或不可见。
在系统200中,SFR 222可能对CPU 204不可访问或不可见,因为SFR 222的地址可映射在被保留以供DMA控制器206使用而不是CPU 204使用的解码硬件诸如DMA访问解码器224中。相比之下,在系统100中,SFR 120的总体池可由CPU 104和DMA控制器106共享。然而,在系统200中运行的软件可能能够利用DMA操作。基于DMA的操作可在API或其它软件中被定义为用于将数据写入到存储器或从存储器写入数据的可能机制。具体地讲,可使用特定于DMA的软件来访问外围设备202,其中要使用DMA将数据写入到存储器或从存储器写入数据。
在一个实施方案中,外围设备102、202可包括被配置成与DMA一起工作的外围设备,该外围设备包括特定于DMA的特征。在另一个实施方案中,外围设备102、202可包括传统外围设备,该传统外围设备包括添加到传统外围设备的特定于DMA的特征,诸如DMA SFR。此类DMA SFR必须对DMA控制器可见。根据实施方案和实施方式,此类DMA SFR可对CPU可见或不可见。原始寄存器必须对CPU可见。在另一个实施方案中,外围设备102、202可包括在不具有特定于DMA的特征的情况下开发的传统外围设备。在此类实施方案中,外围设备102、202可包括被配置成利用不调用特定于DMA的特征的传统软件代码来执行的传统外围设备。
在不具有DMA功能的传统软件和外围设备中,单个中断可用于外围设备中的所有事件。这些事件可包括发送、接收、出错、完成或其它外围设备。当例如要发送的数据已完成时,可生成中断。此类单个中断可能不适用于DMA,因为该中断以其它方式不必要地中断CPU,从而使DMA的关键特征无效。例如,如果基于DMA的中断通过CPU中断总线214或中断总线114发送到相应CPU,则相应CPU可能必须暂停其对不同应用程序的执行以处理该中断。相比之下,如果来自中断逻辑228的基于DMA的中断被直接发送到相应DMA控制器206,则DMA控制器206能够处理中断并继续其它数据移动任务,同时相应CPU 204并行执行而不中断。在这种情况下,系统可将数据移动从相应CPU卸载到相应DMA控制器。
因此,虽然传统外围设备可将事件收集到单个中断中,但基于DMA的系统可使用多个特定中断作为触发事件,每个中断具有单独线路或总线。如果传统外围设备方法与DMA一起使用,则过多事件可能在单个中断上被编译。例如,如果由中断逻辑112采集的事件共同包括断言的中断,则必须执行第二步骤来解析所包括的事件以确定哪个事件已发生。只有这样才能处理该事件。在这种情况下,DMA操作不能与CPU操作分开。基于DMA的中断将需要由CPU进行解析和处理。类似地,仅将此类收集的中断114路由到DMA控制器诸如DMA控制器106可能是不适当的,因为DMA控制器106可能无法解析指示已发生许多可能事件中的一个的中断信号。例如,DMA操作不能处理错误状况或内务操作。此外,外围设备可使用未正确设计用于最佳DMA用途的SFR。例如,寄存器可在字词的一部分中包括辅助数据或配置信息,该辅助数据或配置信息被其它核心数据信息包围。在一个示例中,脉冲宽度调制占空比可由八位限定,但是存储在十位宽的寄存器中。八个最高有效位可用于定义占空比。剩余的两位可用于另一个目的。DMA将需要部分写入以完成向此类寄存器或从此类寄存器的数据传输。相反,本公开的实施方案可需要用于DMA发送的单独中断、用于DMA接收的单独中断,以及仍用于其它DMA操作的单独中断。可在共享中断上携带其它事件,诸如源自传统外围设备的事件。
本公开的实施方案可包括提供用于DMA操作的数据或事件接口的特定于DMA的寄存器。这些可通过SFR 120或SFR 222的一部分来实现。如果外围设备要使用DMA事件,则数据可在DMA中断时加载到此类SFR或从此类SFR加载。如果外围设备202是代码不使用DMA的传统外围设备,则SFR 222可被忽略或不可访问。如果外围设备102是代码不使用DMA的传统外围设备,则SFR 120的任何特定于DMA的SFR可被忽略或以其它方式重新用于其它SFR任务。如果外围设备202是利用支持DMA的特征和软件启用的新外围设备或传统外围设备,则外围设备202可利用SFR 222。如果外围设备102是利用支持DMA的特征和软件启用的新外围设备或传统外围设备,则外围设备102可利用所有SFR 120。
例如,外围设备102或外围设备202可为处理器或微控制器内部的外围设备。外围设备102或外围设备202可被配置成代表处理器或微控制器执行同步串行通信,诸如I2C、SPI或MSMP。串行通信可被卸载到此类外围设备。DMA适配器可允许软件使用新API来调用DMA功能,以使用DMA特征访问外围设备102或外围设备202。相同的DMA适配器还可处理传统软件调用的先前的非DMA功能。传统软件可被配置成调用不包括DMA特征的传统外围设备。然而,配备有DMA特征的外围设备102或外围设备202可能能够执行此类传统软件。因此,系统100和系统200可能能够处理DMA代码和非DMA代码。
如图1所示,在一个实施方案中,可将SFR 120的特定于DMA的SFR添加到CPU 104的存储器映射中。因此,特定于DMA的SFR包括在CPU 104可以访问的存储器位置的域或范围内。这通过地址解码器110来实现,该地址解码器可由CPU 104和DMA控制器106两者共享。如果传统SFR寄存器保持在SFR 120的存储器映射内,则传统代码可继续正确地操作。在另一个实施方案中,新SFR寄存器可用于DMA和CPU操作两者。使用新近可用的API的新软件可使用特定于DMA的SFR访问DMA功能。然而,SFR寄存器可能会消耗SFR空间,该空间可能是有限的。
如图2所示,在另一个实施方案中,特定于DMA的SFR 222可由DMA地址解码器224寻址和访问,可由DMA控制器206访问而不是直接由CPU 204访问。因此,SFR 222可能仅可访问从CPU 204卸载到DMA控制器206的任务。可通过利用具有基于DMA的命令的API的软件来执行此类卸载。图2中基于DMA的地址与CPU 204直接使用的地址在不同的存储器映射中。
然而,一些SFR 220可为CPU 204和DMA控制器206两者共同的。在这种情况下,DMA控制器206可使用地址解码器226来访问此类SFR 220。软件程序员可访问CPU 204和DMA控制器206两者共同的SFR 220。因此,共享SFR 220的定义应在API中使用特定于DMA的和特定于CPU的函数调用与寻址约定之间的相同的地址、标签和其它文档来定义。类似地,要在CPU104和DMA控制器106之间共享的SFR 120应在特定于DMA的和特定于CPU的函数调用与寻址约定之间共享地址和文档。例如,如果外围设备102或外围设备202包括就CPU 104或CPU204的角度而言寻址在地址10处的数据寄存器,则就DMA控制器106或DMA控制器206的角度而言,相同的数据寄存器也应寻址在地址10处。两个寻址寄存器可被实现为单个寄存器。
从上面返回占空比示例,其中十位寄存器包括占空比数据,该占空比数据包括用于占空比的八位和用于针对其它目的的附加信息的两位,可在用于DMA访问的API中定义八位的新SFR。SFR可包括在SFR 120或SFR 220中。代码可从新SFR读取和写入数据,并且DMA可用于复制该SFR。同一外围设备还可处理访问先前使用的十位寄存器的现有的先前写入的功能。先前使用的10位寄存器可由CPU 104或CPU 204访问,并由地址解码器110或地址解码器226解码。可使用相同的地址标识符来寻址先前使用的10位寄存器和新SFR。当在DMA中使用时,新SFR可由图1中的地址解码器110解码,但可由图2中的DMA地址解码器224解码。
实现外围设备102或外围设备202的具有DMA能力的新外围设备可被配置成生成CPU中断和DMA中断。与先前的外围设备相比,新外围设备可针对不同的事件分别生成不同的CPU中断,而不是允许多种事件全部生成单个中断。
已根据一个或多个实施方案描述了本公开,并且应当理解,除了明确陈述的那些之外,许多等同物、替代物、变型和修改是可能的并且在本公开的范围内。虽然本公开易受各种修改形式和替代形式的影响,但是其具体示例性实施方案已经在附图中示出并且在本文中详细描述。然而,应当理解,本文对具体示例性实施方案的描述并非旨在将本公开限于本文所公开的特定形式。
Claims (18)
1.一种处理器,包括:
中央处理单元(CPU);和
直接存储器访问(DMA)适配器电路,其中:
所述DMA适配器电路包括DMA控制器电路;
所述DMA适配器电路被配置成与传统内部硬件外围设备并与启用DMA的内部硬件外围设备进行交互;
所述启用DMA的内部硬件外围设备包括第一特殊功能寄存器(SFR);
所述传统内部硬件外围设备不包括DMA特征;
所述CPU被配置成执行传统应用程序,所述传统应用程序被配置成通过所述传统内部硬件外围设备访问存储器中的第一设定,其中所述传统应用程序的执行包括由所述CPU访问存储器中的所述第一设定;并且
所述DMA控制器电路被配置成在通过所述启用DMA的内部硬件外围设备执行启用DMA的应用程序期间访问存储器中的所述第一设定。
2.根据权利要求1所述的处理器,其中所述CPU被配置成将所述第一设定查看为存储在存储器映射中的所述第一SFR中。
3.根据权利要求1至2中任一项所述的处理器,其中:
所述第一SFR是DMA SFR;
所述第一设定被配置成存储在所述第一SFR中;并且
所述第一SFR对于所述CPU不可见。
4.根据权利要求1至3中任一项所述的处理器,还包括所述DMA适配器电路中的第二SFR和第三SFR,其中:
所述第三SFR是DMA SFR;
所述传统内部硬件外围设备被配置成允许所述CPU在所述启用DMA的应用程序的执行期间访问存储器中的存储在所述第二SFR中的第二设定;并且
所述启用DMA的内部硬件外围设备被配置成允许所述DMA控制器电路在所述启用DMA的应用程序的执行期间访问存储器中的存储在所述第三SFR中的第三设定;
所述第三SFR对于所述CPU不可见。
5.根据权利要求4所述的处理器,其中所述第二SFR和所述第三SFR共享相同的标识地址。
6.根据权利要求1至5中任一项所述的处理器,其中所述传统应用程序和所述启用DMA的应用程序被配置成在相同的标识地址处访问存储器中的所述第一设定。
7.根据权利要求1至6中任一项所述的处理器,其中所述传统应用程序不具有被配置成访问所述第一设定的DMA功能。
8.根据权利要求1至7中任一项所述的处理器,其中所述DMA控制器电路被配置成通过所述启用DMA的内部硬件外围设备的第二SFR接收在所述启用DMA的应用程序中生成的事件。
9.根据权利要求8所述的处理器,其中所述CPU被配置成接收由所述传统应用程序的执行生成并在CPU中断总线上从所述传统内部硬件外围设备接收的事件。
10.一种方法,包括:
确定内部硬件外围设备连接到中央处理单元(CPU)和DMA控制器电路;
确定所述内部硬件外围设备是传统内部硬件外围设备还是启用DMA的内部硬件外围设备,所述启用DMA的内部硬件外围设备访问第一特殊功能寄存器(SFR);
基于确定所述内部硬件外围设备是传统内部硬件外围设备,执行传统应用程序,其中:
所述传统应用程序被配置成通过所述传统内部硬件外围设备访问存储器中的第一设定;并且
所述传统应用程序的执行包括由所述CPU访问存储器中的所述第一设定;以及
基于确定所述内部硬件外围设备是启用DMA的内部硬件外围设备,执行启用DMA的应用程序,其中:
所述启用DMA的应用程序被配置成通过所述启用DMA的内部硬件外围设备访问存储器中的所述第一设定;并且
所述传统应用程序的执行包括由所述CPU通过所述DMA控制器电路访问存储器中的所述第一设定。
11.根据权利要求10所述的方法,还包括从所述CPU将所述第一设定查看为存储在存储器映射中的所述第一SFR中。
12.根据权利要求10至11中任一项所述的方法,其中:
所述第一SFR是DMA SFR;
所述第一设定被配置成存储在所述第一SFR中;并且
所述第一SFR对于所述CPU不可见。
13.根据权利要求10至12中任一项所述的方法,还包括:
由所述CPU访问第二SFR;
由所述控制器电路访问第三SFR,其中所述第三SFR是DMA SFR;
在所述启用DMA的应用程序的执行期间,允许从所述CPU访问存储在所述第二SFR中的第二设定;以及
在所述启用DMA的应用程序的执行期间,允许从所述DMA控制器电路访问所述第三SFR中的第三设定;
其中所述第三SFR对于所述CPU不可见。
14.根据权利要求13所述的方法,其中所述第二SFR和所述第三SFR共享相同的标识地址。
15.根据权利要求10至14中任一项所述的方法,还包括利用所述传统应用程序和所述启用DMA的应用程序,在相同的标识地址处访问存储器中的所述第一设定。
16.根据权利要求10至15中任一项所述的方法,还包括执行不具有DMA功能的所述传统应用程序以访问所述第一设定。
17.根据权利要求10至16中任一项所述的方法,还包括通过所述启用DMA的内部硬件外围设备的第二SFR接收在所述启用DMA的应用程序中生成的事件。
18.根据权利要求10至18中任一项所述的方法,还包括通过所述CPU接收事件,所述事件在所述传统应用程序中生成并在CPU中断总线上从所述传统内部硬件外围设备接收。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862619265P | 2018-01-19 | 2018-01-19 | |
US62/619,265 | 2018-01-19 | ||
US15/944,772 US10360164B1 (en) | 2018-01-19 | 2018-04-03 | Direct memory access adapter |
US15/944,772 | 2018-04-03 | ||
PCT/US2019/013901 WO2019143749A1 (en) | 2018-01-19 | 2019-01-17 | Direct memory access adapter |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111615691A true CN111615691A (zh) | 2020-09-01 |
CN111615691B CN111615691B (zh) | 2023-12-26 |
Family
ID=67298626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980008729.4A Active CN111615691B (zh) | 2018-01-19 | 2019-01-17 | 直接存储器访问适配器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10360164B1 (zh) |
CN (1) | CN111615691B (zh) |
DE (1) | DE112019000460T5 (zh) |
WO (1) | WO2019143749A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10983936B2 (en) * | 2019-02-27 | 2021-04-20 | Microchip Technology Incorporated | Programmable arbitrary sequence direct memory access controller for configuring multiple core independent peripherals |
US11023400B1 (en) | 2020-01-20 | 2021-06-01 | International Business Machines Corporation | High performance DMA transfers in host bus adapters |
CN116909474A (zh) * | 2022-04-12 | 2023-10-20 | 荣耀终端有限公司 | 器件识别方法和相关装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0718771A1 (en) * | 1994-12-22 | 1996-06-26 | United Microelectronics Corporation | DMA logic unit architecture |
US5561819A (en) * | 1993-10-29 | 1996-10-01 | Advanced Micro Devices | Computer system selecting byte lane for a peripheral device during I/O addressing technique of disabling non-participating peripherals by driving an address within a range on the local bus in a DMA controller |
US6014717A (en) * | 1994-09-16 | 2000-01-11 | Cirrus Logic, Inc. | PCMCIA host adapter and method for variable data transfers |
US6665748B1 (en) * | 2000-09-06 | 2003-12-16 | 3Com Corporation | Specialized PCMCIA host adapter for use with low cost microprocessors |
US20040098519A1 (en) * | 2001-03-16 | 2004-05-20 | Hugo Cheung | Method and device for providing high data rate for a serial peripheral interface |
US20070162650A1 (en) * | 2005-12-13 | 2007-07-12 | Arm Limited | Distributed direct memory access provision within a data processing system |
CN101025723A (zh) * | 2007-03-27 | 2007-08-29 | 中兴通讯股份有限公司 | 一种改变dma外围设备数据传输申请优先级的方法 |
US20150006767A1 (en) * | 2013-06-27 | 2015-01-01 | Samsung Electronics Co., Ltd. | Universal serial interface and semiconductor device including the same |
US20160132445A1 (en) * | 2014-11-11 | 2016-05-12 | Atmel Corporation | Peripheral register parameter refreshing |
US20170220489A1 (en) * | 2016-01-28 | 2017-08-03 | Silicon Laboratories Inc. | Dynamic containerized system memory protection for low-energy mcus |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386642B2 (en) | 2005-01-28 | 2008-06-10 | Sony Computer Entertainment Inc. | IO direct memory access system and method |
US9429980B2 (en) * | 2013-03-14 | 2016-08-30 | Microchip Technology Incorporated | Flexible clocking for audio sample rate converter in a USB system |
-
2018
- 2018-04-03 US US15/944,772 patent/US10360164B1/en active Active
-
2019
- 2019-01-17 CN CN201980008729.4A patent/CN111615691B/zh active Active
- 2019-01-17 WO PCT/US2019/013901 patent/WO2019143749A1/en active Application Filing
- 2019-01-17 DE DE112019000460.3T patent/DE112019000460T5/de active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5561819A (en) * | 1993-10-29 | 1996-10-01 | Advanced Micro Devices | Computer system selecting byte lane for a peripheral device during I/O addressing technique of disabling non-participating peripherals by driving an address within a range on the local bus in a DMA controller |
US6014717A (en) * | 1994-09-16 | 2000-01-11 | Cirrus Logic, Inc. | PCMCIA host adapter and method for variable data transfers |
EP0718771A1 (en) * | 1994-12-22 | 1996-06-26 | United Microelectronics Corporation | DMA logic unit architecture |
US6665748B1 (en) * | 2000-09-06 | 2003-12-16 | 3Com Corporation | Specialized PCMCIA host adapter for use with low cost microprocessors |
US20040098519A1 (en) * | 2001-03-16 | 2004-05-20 | Hugo Cheung | Method and device for providing high data rate for a serial peripheral interface |
US20070162650A1 (en) * | 2005-12-13 | 2007-07-12 | Arm Limited | Distributed direct memory access provision within a data processing system |
CN101025723A (zh) * | 2007-03-27 | 2007-08-29 | 中兴通讯股份有限公司 | 一种改变dma外围设备数据传输申请优先级的方法 |
US20150006767A1 (en) * | 2013-06-27 | 2015-01-01 | Samsung Electronics Co., Ltd. | Universal serial interface and semiconductor device including the same |
US20160132445A1 (en) * | 2014-11-11 | 2016-05-12 | Atmel Corporation | Peripheral register parameter refreshing |
US20170220489A1 (en) * | 2016-01-28 | 2017-08-03 | Silicon Laboratories Inc. | Dynamic containerized system memory protection for low-energy mcus |
Non-Patent Citations (1)
Title |
---|
邓家荣;: "DMA工作方式探析及应用", 福建电脑, no. 05 * |
Also Published As
Publication number | Publication date |
---|---|
CN111615691B (zh) | 2023-12-26 |
DE112019000460T5 (de) | 2020-10-01 |
WO2019143749A1 (en) | 2019-07-25 |
US20190227966A1 (en) | 2019-07-25 |
US10360164B1 (en) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3105223B2 (ja) | マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置 | |
JP5085334B2 (ja) | Usb・otgコントローラ | |
CN111615691B (zh) | 直接存储器访问适配器 | |
CN107346282B (zh) | 用于微处理器的调试支持单元 | |
WO2021244194A1 (zh) | 寄存器的读写方法、芯片、子系统、寄存器组及终端 | |
US5937200A (en) | Using firmware to enhance the functionality of a controller | |
US6401197B1 (en) | Microprocessor and multiprocessor system | |
US9665522B2 (en) | Protocol neutral fabric | |
EP2639703B1 (en) | Device for booting soc chip and soc chip | |
KR900004291B1 (ko) | 데이터 프로세서 | |
KR100403404B1 (ko) | 양방향병렬신호인터페이스 | |
US6968410B2 (en) | Multi-threaded processing of system management interrupts | |
US8843728B2 (en) | Processor for enabling inter-sequencer communication following lock competition and accelerator registration | |
KR100801759B1 (ko) | 슬레이브의 디버깅 방법 및 시스템 | |
CN112988637A (zh) | 促进与i2c的向后兼容性的i3c集线器 | |
CN108958837B (zh) | 一种动态配置me固件的方法、系统及介质 | |
US7552269B2 (en) | Synchronizing a plurality of processors | |
CN100474266C (zh) | 一种用于数字信号处理器的调试系统及其调试方法 | |
CN114327627B (zh) | 一种实模式下基于gpu传统io配置显示分辨率的方法 | |
US20010023481A1 (en) | Processor that executes control signals included in operand section of control instruction | |
US20020143967A1 (en) | Bit-granular writes of control registers | |
CN113672554B (zh) | 处理器核、处理器、片上系统和调试系统 | |
WO2016053146A1 (ru) | Компьютерная система | |
EP2525285A1 (en) | Central processing unit and microcomputer | |
CN118195018A (zh) | 带有协处理器的量子计算机的控制器及方法、介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |