文档库 最新最全的文档下载
当前位置:文档库 › 第5.3节 直接存储器访问模块(DMA)

第5.3节 直接存储器访问模块(DMA)

第5章DSP接口与总线

5.3.1 DMA模块总线结构

DMA是基于事件的模块,因此需要有一个外设中断触发才开始DMA数据传输。6个DMA通道的中断触发源可以独立配置,并且每一个通道都拥有各自独立的PIE中断,当DMA传送开始或结束时,可通过PIE中断告知CPU。6个通道中,有5个通道具有相同的性能,而通道1具有一个附加特性:其优先级可以配置成比其它通道的优先级高。DMA 模块的核心是一状态机并与地址控制逻辑总线联系在一起。正是这个地址控制逻辑总线允许对传输过程中的数据块包括缓冲器间的“乒—乓”数据重新排列。

1.DMA的基本特征

具有独立PIE中断的6个通道。

外设中断触发源:ADC排序器1和2、多通道缓冲串口A和B(McBSP-A,McBSP-B)的发送和接收、XINT1~7和XINT13、CPU定时器、ePWM1~6的ADSOCA和ADSOCB 信号以及软件强制触发。

数据源/目的:L4~L7 16K SARAM、所有XINT区域、ADC存储器总线映射结果寄存器、McBSP-A和McBSP-B发送和接收缓冲器、ePWM1~6/HRPWM1~6外设帧3映射的寄存器。

字长度:16位或32位(McBSPs限制为16位)。

吞吐量:4个时钟周期/字(对于McBSP读操作,5个时钟周期/字)。

图5‐17 DMA 结构图

图5-17给出了DMA的结构框图。

2. 外设中断事件触发源

外设中断事件触发器可以为每个DMA通道独立配置18个触发源中的一个。在这些中断触发源中,有8个外部中断信号,这些信号可以连接到GPIO引脚上,这就大大增加了触发事件的灵活性。每个通道MODE寄存器中的PERINTSEL位用来选择该通道的中断触发源。一个有效的外设中断触发事件将锁存至CONTROL寄存器的PERINTFLG位,并且如果相应的中断和DMA通道被使能(MODE.CHx[PERINTE]和CONTROL.CHx[RUNSTS]位),则DMA通道将会响应中断事件。一旦接收到外设中断事件信号,DMA会自动地向中断源发送清零信号,以保证后续中断事件的发生。

无论MODE.CHx[PERINTSEL]位的值是什么,软件总是可以通过PERINTFRC位给通道一个强制触发事件。同样,软件也可以通过CONTROL.CHx[PERINTCLR]位清除一个悬挂的DMA触发源。

一旦特定的中断触发源将通道的PERINTFLG位置位后,该位将保持悬挂状态直到状态机的优先逻辑启动该通道的数据传送;当数据传送开始后,该标志位将被清零。当数据传送过程中,又产生了一个新的中断触发事件时,DMA通道将在当前数据传送完毕后,再按适当的优先次序,去响应这个新的中断触发源。若当前悬挂的中断响应结束前,第3个中断触发源产生,则错误标志CONTROL.CHx[OVRFLG]将被置位。如果外设中断触发事件与清除ERINTFLG标志位同时发生,外设中断触发事件有优先权,且PERINTFLG位仍保持置位。

外设中断触发器输入框图

外设中断触发源外设中断触发源

CPU

DMA软件位

(CHx.CONTROL.PERINTFRC)

ePWM1ADC启动通道A或B转换

ADC排序器1中断、排序器2中断ePWM2ADC启动通道A或B转换外部中断外部中断1~7、外部中断13ePWM3ADC启动通道A或B转换

CPU定时

器定时器0溢出、定时器1溢出定时

器2溢出

ePWM4ADC启动通道A或B转换

McBSP‐A McBSP‐A发送缓冲器空

McBSP‐A接收缓冲器满

ePWM5ADC启动通道A或B转换

McBSP‐B McBSP‐B发送缓冲器空

McBSP‐B接收缓冲器满

ePWM6ADC启动通道A或B转换

3. DMA总线

DMA总线包含22位的地址线、32位的读总线和32位的写总线。连接到DMA总线上的存储器和寄存器通过接口与CPU存储器或外设总线共享资源。与DMA总线相连的资源有:XINTF区域0,6,7、L4 ~L7 SARAM、ADC存储器映射结果寄存器、McBSP-A和McBSP-B数据接收寄存器(DRR2/DRR1)和数据发送寄存器(DXR2/DXR1)、ePWM1~6/HRPEM1~6映射到外设帧3的寄存器

4. 流水线时序和吞吐量

DMA包含了4级流水线操作。当DMA配置成使用McBSPs作为其数据源时,在传送数据过程中,读DRR寄存器会使DMA总线暂停一个时钟周期。

除了流水线操作外,还有以下性能会影响DMA的整体吞吐量:

在每个数据帧(burst)传输的开始会附加一个时钟周期的延迟;

当从通道1高优先级中断返回时会附加一个时钟周期的延迟;

32位的传输速度是16位传输速度的两倍(32位字和16位字的传输时间相等); 和CPU发生冲突时会产生附加的延迟。

例如,从ADC中传送128个16位字至RAM,通道可以配置成传输8个16字的数据帧。便得到传送需要:8帧x[(4时钟周期/字x16字/帧)+1]=520时钟周期;若通道配置成传送32位字,则传送将需要:8帧x [(4时钟周期/字x8字/帧)+1]=264时钟周期。

5.3.2 CPU仲裁及通道优先级

1.CPU仲裁

DMA典型特性是其与CPU操作是相互独立的。当DMA和CPU同时通过同一接口尝试访问存储器或外设寄存器时,就需要一个仲裁流程。但也有例外的情况,当CPU和DMA同时读访问映射到PF0的ADC寄存器时,并不产生冲突,甚至CPU 和DMA同时访问不同的地址也不会产生冲突。当CPU和DMA访问的是不同的接口,或CPU访问的接口是DMA访问接口的外部时均不会产生冲突。

会产生冲突的接口有:

XINTF存储器区域0,6,7,

L4~ L7 RAM,

外设帧3(McBSP-A,McBSP-B,ePWM1~6/HRPWM1~6)。

5.3.2 CPU仲裁及通道优先级

2. 通道优先级

(1)循环模式

在这种模式下,所有通道都享有平等的优先级,每个使能通道按照循环的方式被响应:CH1 CH2 CH3 CH4 CH5 CH6 CH1 CH2 …。当前通道传送完数据字节后,下一通道才被响应。用户可以定义每一通道传送数据的长度。CH6(或最后被使能的通道)被响应后且没有其它通道处于悬挂状态,循环状态机将进入空闲状态。退出空闲状态时,总是先响应CH1(若通道1被使能)。尽管如此,若DMA当前正在服务某一个通道CHx,其它悬挂的位于x和该循环最后一通道之间的通道都将在CH1之前被服务。例如,假设所有通道都被使能,DMA处于空闲状态;CH1、CH3、CH5在同一周期初始化触发源;当CH1开始传送数据时,CH3、CH5处于悬挂状态;CH1完成数据传送前,DMA接到来自CH2的请求,此时悬挂请求分别来自CH2、CH3和CH5;CH1完成数据传送后,先响应CH2的请求,CH2完成数据传送后,再响应CH3,之后再是CH5;若CH5正在被服务时,DMA又接收到了来自CH1、CH3、CH6的请求;在CH5服务结束后,CH6才开始传输数据,因为在循环模式下,CH6服务顺序位于CH5之后;CH6服务结束后,再服务CH1,之后再是CH3;在CH3服务结束后,若没有其它触发源产生,则循环状态机将进入空闲状态。通过

DMACTRL[PRIORITYRESET]位可将循环状态机复位到空闲状态。

5.3.2 CPU仲裁及通道优先级

通道1高优先级模式

在这种模式下,若CH1触发事件发生,则其它任何通道的当前字传送完毕后(不是整个数据帧的数据都传送完成),该通道的操作将暂停,CH1将被服务传送数据。当CH1的全部数据传送完毕后,操作将返回到CH1触发事件产生时有效的那个通道。其它所有通道享有平等的优先级,且每一使能的通道都按照循环方式被服务:

高优先级:CH1

低优先级:CH2 CH3 CH4 CH5 CH6 CH2 …

举例来说,若在CH1高优先级模式下使能CH1、CH4、CH5,且假设CH4正在被服务。若在CH4传送结束之前,CH1和CH5同时从各自的外设接收到中断触发事件,则CH1和CH5将处于悬挂状态。当CH4中当前字传送结束后,无论DMA是否完全传送CH4中的整个数据帧,CH4操作都将暂停并且开始服务CH1。CH1服务结束后,CH4将继续操作。在CH4服务结束后,CH5开始被服务。在CH5服务结束后,若没有其它通道处于悬挂状态,循环状态机将进入空闲状态。

5.3.3 地址指针和传送控制

DMA状态机是两级嵌套循环。内循环是接收到外设中断触发事件后传送一个帧的数据。帧(burst)是每次传送数据的最小量级,帧的长度大小可通过BURST_SIZE寄存器来定义(每帧最多传送32个16位字)。TRANSFER_SIZE设置外循环的长度大小,即定义在整个传送过程中共传送多少个这样的帧数据。TRANFER_SIZE是一个16位寄存器,每次传送可以产生一个CPU中断(若中断使能)。该中断可以通过

MODE.CHx[CHINTMODE]位配置为在每次传送的开始或结束时刻产生。

在MODE.CHx[ONESHOT]位默认设置下,DMA在每接收到一个中断触发事件信号时传送一帧数据。传送完毕后,状态机按照优先级指向下一悬挂通道,即使刚完成传送任务的通道又接收到一个中断触发事件信号并处于悬挂状态,状态机也会指向下一悬挂通道。这一特性可以防止任一单个通道独占DMA总线。若单个触发事件要求传送数据的长度超过了每帧允许传送字的最大值,则需要传送多个帧数据,这时可以通过设置MODE.CHx[ONESHOT]位来完成整个数据帧的传递任务。需要注意的是,这种模式下可能会发生某一触发事件独占大部分DMA带宽的情况。

5.3.3 地址指针和传送控制

每个DMA通道包含了源地址(SRC_ADDR)和目的地址(DST_ADDR )的映射地址指针。在每次传送的开始时,映射(shadow)寄存器中的地址指针会拷贝到相应的当前工作(active)寄存器中。在帧循环(burst loop)中,在每个字传送完毕后,源地址和目的地址的BURST_STEP寄存器中的值会加到当前工作的SRC/DST_ADDR上(即做加法),用以修改当前工作的地址指针;在传送循环(transfer loop)中,每一帧传送完毕后,有两种方法修改当前工作的地址指针:第一种方法(默认)是将SRC/DST_TRANSFER_STEP寄存器的值加到相应的地址指针上(即做加法);第二中方法是一种被称作为“打包”(wraping)的过程,该方法中,一个数据打包的地址装载到当前工作的地址指针中(即赋值)。当一个打包过程发生后,相应的SRC/DST_TRANSFER_STEP寄存器内容将被忽略。

5.3.3 地址指针和传送控制

当SRC/DST_WRAP_SIZE所定义的一定数量的帧数据传送完毕后,地址打包过程发生。每个DMA通道包含了两个打包地址指针:SRG_BEG_ADDR和DST_BEG_ADDR,这两指针已被映射,源打包地址和目的打包地址可以独立配置。与SRC_ADDR、DST_ADDR寄存器一样,在每个传送的开始时刻,当前工作的SRC/DST_BEG_ADDR寄存器将载入与之相应的映射寄存器的内容。当一定数量的帧数据传送完毕后,“打包”过程分两步发生:

首先当前工作寄存器SRC/DST_BEG_ADDR按照

SRC/DST_WRAP_STEP寄存器中的定义值增加,然后新的当前工作寄存器SRC/DST_BEG_ADDR内容被加载到SRC/DST_ADDR寄存器中。

此外,数据打包计数器(SRC/DST_WRAP_COUNT)寄存器重新载入SRC/DST_WRAP_SIZE的值,启动下一个“打包”周期。这就允许通道在单个传送过程中多次“打包”。结合上文所述的每个字传送完毕后源/目的地址可以修改,那么在单个传送过程中,可以访问多个缓冲器地址。

5.3.3 地址指针和传送控制

在地址指针中,DMA分别包含了当前工作(active)和映射(shadow)寄存器组。当DMA传送开始时,映射寄存器组的内容拷贝到当前工作的寄存器组。这就允许用户在DMA工作于当前工作的寄存器组时,对映射寄存器编程,为下次传送做准备;另外,还允许用户修改ping-pong缓冲器配置而不打断DMA通道操作。有如下地址指针:

①源/目的地址指针(SRC/DST_ADDR):写入映射寄存器的值是进行第一次读取或写入操作的起始地址。在每次传送的开始,映射寄存器内容被复制到当前工作寄存器中,当前工作寄存器的值代表当前的地址指针。

②源/目的起始地址指针(SRC/DST_BEG_ADDR):该指针是数据打包地址指针。在传送开始时,写入到其映射寄存器的值将加载到当前工作的寄存器中;“打包”过程发生后,当前工作寄存器将按照SRC/DST_WRAP_STEP中定义的值增加,增加后的值再加载到SRC/DST_ADDR寄存器中。

5.3.3 地址指针和传送控制

对于每个通道,传送过程可以通过以下长度(SIZE)值控制:

①源和目的帧长度(BURST_SIZE):定义每帧传送的数据字个数。在每次传送开始时,该值将被装载到BURST_COUNT寄存器中,每传送一字后,

BURST_COUNT的值减1,当减为0时,一帧数据传送完毕,表明可以服务另一通道。当前通道的工作方式可以通过MODE寄存器的ONE_SHOT位控制。帧长度可设置的最大值由外设类型而定。

②源和目的传送长度(TRANSFER_SIZE):MODE寄存器中的CHINTMODE位决定中断在传送的开始或结束时刻产生;MODE的CONTINUOUS位决定一次传送完毕后,通道保持使能或禁止。每次传送开始时,TRANSFER_SIZE寄存器的值装载到TRANSFER_COUNT中。TRANSFER_COUNT的值明示已经传送了多少帧的数据,当其减为0时,DMA传送结束。

③源/目的数据打包长度(SRC/DST_WRAP_SIZE):该位决定当前地址指针返回到起始值之前需传送的数据帧的个数。在每次传送开始时,数值被装载到相应的SRC/DST_WRAP_COUNT寄存器中,该寄存器可明示通道已经传送了多少帧的数据,当寄存器值减为0时,相应的源或目的地址指针执行“打包”过程。

写入到SIZE寄存器的值是所要传送的长度减去1。无论DATASIZE位的状态为何,SIZE寄存器中的数值都是对于16位字长的地址而言,因此,当需要传送3个32位长的字时,应向SIZE寄存器写入5。

5.3.3 地址指针和传送控制

可通过以下步长(STEP)值来改变每一个源/目的指针地址:

①源/目的帧步长(SRC/DST_BURST_STEP):在每帧数据传送过程中,源地址和目的地址变化步长由该寄存器决定。其值为2的补码形式的有符号数,所以地址指针可以根据要求增加和减小。若不需要增加,如访问McBSP数据接收和发送寄存器时,应赋值为0。

②源/地址传送步长(SRC/DST_TRANSFER_STEP):该寄存器决定在当前帧数据传送完毕后,开始下一帧数据传送时的地址偏量。寄存器值为2的补码形式的有符号数,因而地址指针可跟据需要增加和减小。

③源/目的数据打包步长(SRC/DST_WRAP_STEP):当数据打包计数器减至0时,该寄存器值决定BEG_ADDR指针加上或减去多少偏量,进而设置新的起始地址。寄存器值为2的补码形式的有符号数,因而地址指针可根据需要增加和减小。

注意,无论DATASIZE位是什么值,上述STEP寄存器定义的值均是对于16位字长的数据地址而言,所以,若需增加一个32位字长的数据地址,则需向上述寄存器中写入2。

5.3.3 地址指针和传送控制

在帧循环(burst loop)和传送循环(transfer loop)中,有3种方式控制状态机的操作模式,其特性和模式如下图5-21所示。

①单次触发模式(ONESHOT):在单次触发模式下,当触发事件发生后,DMA将持续传送数据帧直至TRANSFER_COUNT为0;若该模式被禁止,则在传送每个数据帧时都要一个事件触发直至TRANSFER_COUNT减为0。需要注意的是,单次发模式可能占用大量外设带宽并且导致CPU长时间的暂停。为避免这种情况发生,用户可以配置CPU定时器(或类似操作)作为中断触发事件,并禁止单次发模式。

②连续模式(CONTINUOUS):如果连续模式被禁止,CONTROL寄存器中的RUNSTS位将在传送结束后被清零,表明DMA通道被禁止。那么在该通道启动下一传送之前,必须将CONTROL寄存器中的RUN位置位,重新使能该通道。如果使能了连续模式,则在每次传送结束后,RUNSTS位不会被清零

③通道中断模式(CHINTMODE):该模式决定各个通道的DMA中断在每个传送的开始还是结束时刻产生。当用连续模式实现ping-pong缓冲器操作时,中断应在每次传送的开始产生,即在映射寄存器组内容拷贝到当前工作寄存器组之后;若DMA不工作在连续模式,则中断通常配置成在每次传送完成后产生。

5.3.4 ADC同步特性

当ADC工作在排序器覆盖功能使能的连续转换模式时,DMA提供了与ADC排序器1中断(SEQ1INT)同步的硬件方法。在这种特定的模式下,ADC连续转换ADC排序通道,且不需在排序器转换结束后复位排序器指针。当接收到触发事件时,因为DMA不知道排序器指针指向的是哪个ADC结果寄存器,故DMA和ADC步调可能不一致。为此,当ADC配置成此模式时,每当从结果寄存器0(RESULT0)开始转换序列并有中断触发事件发生时,ADC为DMA提供同步信号。DMA将该信号视为打包进程或开始传送数据的同步信号。若DMA未进行此操作,则会发生重新同步,即:

重新将WRAP_SIZE值装载到WRAP_COUNT寄存器中。

将当前工作BEG_ADD寄存器值装载到当前工作ADDR寄存器中。

将CONTROL寄存器的SYNCERR位置位。

若有需要,允许使用多个缓冲器存储数据,并使DMA和ADC重新同步。

5.3.4 ADC同步特性

如图5-22所示,同步信号源由MODE寄存器中的PERINTSEL位选择。若对选定的源和通道使能了同步特性(SYNC),则在RUN位被置位后接收到第一个SYNC信号时,才开始所选定通道的传送。在第一个SYNC事件发生前,所有的外设中断触发事件都将被忽略。

5.3.5 DMA超载

当DMA接收到外设的触发事件,CONTROL寄存器的PERINTFLG位会置位,并将相应的通道在DMA状态机中置为悬挂状态。当该通道开始传送数据后,PERINTFLG位会自动清零。如果在PERINTFLG被事件置位到该位因开始传送数据而被清零的时间段内,又发生了一个触发事件,则第二个触发事件将丢失(发上超载),这会将CONTROL寄存器的OVRFLG位置位。若使能了超载中断,则会向PIE发送通道中断请求。

DMA、TRIX指标原理和详解

DMA指标原理和详解 DMA指标又叫平行线差指标,是目前股市分析技术指标中的一种中短期指标,它常用于大盘指数和个股的研判。 第一节 DMA指标的原理及计算方法 一、 DMA指标的原理 DMA指标是属于趋向类指标,也是一种趋势分析指标。DMA是依据快慢两条移动平均线的差值情况来分析价格趋势的一种技术分析指标。它主要通过计算两条基准周期不同的移动平均线的差值,来判断当前买入卖出的能量的大小和未来价格走势的趋势。 二、 DMA指标的计算方法 DMA指标的计算方法比较简单,其计算过程如下: DMA=短期平均值—长期平均值 AMA=短期平均值 以求10日、50日为基准周期的DMA指标为例,其计算过程具体如下: DMA(10)=10日平均值—50日平均值 AMA(10)=10日平均值 和其他指标的计算一样,由于选用的计算周期的不同,DMA指标也包括日DMA指标、周DMA指标、月DMA指标年DMA指标以及分钟DMA指标等各种类型。经常被用于股市研判的是日DMA指标和周DMA 指标。虽然它们的计算时的取值有所不同,但基本的计算方法一样。另外,随着股市软件分析技术的发展,投资者只需掌握DMA形成的基本原理和计算方法,无须去计算指标的数值,更为重要的是利用DMA 指标去分析、研判股票行情。 第二节 DMA指标的一般研判标准 一、DMA和AMA的值及线的运动方向 1、当DMA和AMA均大于0(即在图形上表示为它们处于零线以上)并向上移动时,一般表示为股市处于多头行情中,可以买入或持股; 2、当DMA和AMA均小于0(即在图形上表示为它们处于零线以下)并向下移动时,一般表示为股市处于空头行情中,可以卖出股票或观望。 3、当DMA和AMA均大于0(即在图形上表示为它们处于零线以上),但在经过一段比较长时间的向上运动后,如果两者同时从高位向下移动时,一般表示为股票行情处于退潮阶段,股票将下跌,可以卖出股票和观望; 4、当DMA和AMA均小于0时(即在图形上表示为它们处于零线以下),但在经过一段比较长时间的的向下运动后,如果两者同时从低位向上移动时,一般表示为短期行情即将启动,股票将上涨,可以短期买进股票或持股待涨。 二、DMA曲线和股价曲线的配合使用

直接存储器存取

直接存储器存取—基本原理、结构与应用(上) 上网时间: 2007年06月14日 直接存储器存取(DMA) 控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。它之所以属于外设,是因为它是在处理器的编程控制下来执行传输的。值得注意的是,通常只有数据流量较大(kBps或者更高)的外设才需要支持DMA能力,这些应用方面典型的例子包括视频、音频和网络接口。 一般而言,DMA控制器将包括一条地址总线、一条数据总线和控制寄存器。高效率的DMA控制器将具有访问其所需要的任意资源的能力,而无须处理器本身的介入,它必须能产生中断。最后,它必须能在控制器内部计算出地址。 一个处理器可以包含多个DMA控制器。每个控制器有多个DMA通道,以及多条直接与存储器站(memory bank)和外设连接的总线,如图1所示。在很多高性能处理器中集成了两种类型的DMA控制器。第一类通常称为“系统DMA控制器”,可以实现对任何资源 (外设和存储器)的访问,对于这种类型的控制器来说,信号周期数是以系统时钟(SCLK)来计数的,以ADI的Blackfin处理器为例,频率最高可达133MHz。第二类称为内部存储器DMA控制器(IMDMA),专门用于内部存储器所处位置之间的相互存取操作。因为存取都发生在内部 (L1-L1、L1-L2,或者L2-L2),周期数的计数则以内核时钟(CCLK)为基准来进行,该时钟的速度可以超过600MHz。 每个DMA控制器有一组FIFO,起到DMA子系统和外设或存储器之间的缓冲器的作用。对于MemDMA(Memory DMA)来说,传输的源端和目标端都有一组FIFO存在。当资源紧张而不能完成数据传输的话,则FIFO可以提供数据的暂存区,从而提高性能。 因为你通常会在代码初始化过程中对DMA控制器进行配置,内核就只需要在数据传输完成后对中断做出响应即可。你可以对DMA控制进行编程,让其与内核并行地移动数据,而同时让内核执行其基本的处理任务—那些应该让它专注完成的工作。 图1:系统和存储器DMA架构。

练习题2微机原理

练习题2 一、选择题 1. 并行接口与串行接口的区别主要在于( )之间的数据传输前者是并行,后者是串行。 A、接口与MPU B、接口与外设 C、接口与MPU和外设 2. 采用8255作数据传送接口,并使用I/O地址的最低两位作芯片内部寻址,已知芯片A口的地址为0F4H,则当CPU执行输出指令访问0F7H端口时,其操作为( )。 A、数据从端口C送数据总线 B、数据从数据总线送端口C C、控制字送控制字寄存器 D、数据从数据总线送端口B 3.计算机能直接认识、理解和执行的程序是( )。 A、汇编语言程序 B、机器语言程序 C、高级语言程序 4. 计算机内的“溢出”是指其运算的结果( )。 A、为无穷大 B、超出了计算机内存储单元所能存储的数值范围 C、超出了该指令所指定的结果单元所能存储的数值范围 5. 已知两个数的真值:X=-46,Y=117,则[X+Y]和[X-Y]的补码分别等于( )。 A.、47H和5DH B、47H和71H C、2EH和71H 6. 下列指令中,错误的是( )。 A、MOV AX,100 B、POPF C、ADD OFFSET[BX][SI],DX D、DEC DI 7. 在微机中,CPU访问各类存储器的频率由高到低的次序为( )。 A、高速缓存、内存、磁盘、磁带 B、内存、磁盘、磁带、高速缓存 C、磁盘、内存、磁带、高速缓存 D、磁盘、高速缓存、内存、磁带 8. 8086在响应外部HOLD请求后将( )。 A、转入特殊中断服务程序 B、进入等待周期 C、只接收外部数据 D、所有三态引脚处于高阻态,CPU放弃对总线控制权 9.CPU对存储器或I/O端口完成一次读/写操作所需的时间为一个( )。 A、指令周期 B、总线周期 C、时钟周期 10. 8253无论工作在哪种方式,在初始化编程时,写入控制字后,输出端OUT( )。 A、变为高电平 B、变为低电平 C、变为相应的高电平或低电平 D、保持原状态不变,直至计数结束 1、某计算机的主存为3KB,则内存地址寄存器需要( )位就足够了。 A.、10 B、11 C、12 D、13 2、目的变址寄存器是( ) 。 A、DI B、SI C、SP D、DX 3、CPU对存储器或I/O端口完成一次读/写操作所需的时间为一个( )。 A、指令周期 B、总线周期 C、时钟周期 4、能实现外设和内存直接交换数据的数据传输方式是( ). A、查询方式 B、无条件传送方式 C、中断方式 D、DMA方式 5、DOS功能调用是通过中断类型号( )来实现的。 A、16H B、21H C、0CH D、0DH 6、下列存储器那种存取速度最快( )。 A、硬盘 B、DRAM C、ROM D、Cache 7、用于直接存储器存取的接口芯片是( ) 。 A.、8255A B、8237A C、8259A D、8251a 8、下面指令中,错误的是( )。 A、MOV AX,100 B、POPF C、ADD OFFSET[BX][SI],DX D、DEC DI 9、完成将BX清零,并使CF清零,下面指令不能实现的是( ) 。 A、SUB BX,BX B、XOR BX,BX C、MOV BX,0 D、AND BX,0000H

DMA工作原理

DMA原理 DM A原理:DMA(Direct Memory Access,直接内存存取) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依于CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。DMA传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA传输对于高效能嵌入式系统算法和网络是很重要的。 在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。 一个完整的DMA传输过程必须经过下面的4个步骤。 一、DMA传输过程 1.DMA请求 CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。 2.DMA响应 DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU 执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA 已经响应,通过DMA控制器通知I/O接口开始DMA传输。 3.DMA传输 DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过程中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。 4.DMA结束 当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。当I/O接口收到结束信号后,一方面停止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。

Linux设备驱动程序学习(20)-内存映射和DMA-基本概念

Linux设备驱动程序学习(20)-内存映射和DMA-基本概念 (2011-09-25 15:47) 标签: 虚拟内存设备驱动程序Linux技术分类:Linux设备驱动程序 这部分主要研究 Linux 内存管理的基础知识, 重点在于对设备驱动有用的技术. 因为许多驱动编程需要一些对于虚拟内存(VM)子系统原理的理解。 而这些知识主要分为三个部分: 1、 mmap系统调用的实现原理:它允许设备内存直接映射到一个用户进程地址 空间. 这样做对一些设备来说可显著地提高性能. 2、与mmap的功能相反的应用原理:内核态代码如何跨过边界直接存取用户空间的内存页. 虽然较少驱动需要这个能力. 但是了解如何映射用户空间内存到内 核(使用 get_user_pages)会有用. 3、直接内存存取( DMA ) I/O 操作, 它提供给外设对系统内存的直接存取. 但所有这些技术需要理解 Linux 内存管理的基本原理, 因此我将先学习VM子 系统的基本原理. 一、Linux的内存管理 这里重点是 Linux 内存管理实现的主要特点,而不是描述操作系统的内存管理理论。Linux虚拟内存管理非常的复杂,要写可以写一本书:《深入理解Linux 虚拟内存管理》。学习驱动无须如此深入, 但是对它的工作原理的基本了解是必要的. 解了必要的背景知识后,才可以学习内核管理内存的数据结构. Linux是一个虚拟内存系统(但是在没有MMU的CPU中跑的ucLinux除外), 意味着在内核启动了MMU 之后所有使用的地址不直接对应于硬件使用的物理地址,这些地址(称之为虚拟地址)都经过了MMU转换为物理地址之后再从CPU的内存总线中发出,读取/写入数据. 这样 VM 就引入了一个间接层, 它是许多操作成为可能: 1、系统中运行的程序可以分配远多于物理内存的内存空间,即便单个进程都可拥有一个大于系统的物理内存的虚拟地址空间. 2、虚拟内存也允许程序对进程的地址空间运用多种技巧, 包括映射程序的内存到设备内存.等等~~~ 1、地址类型 Linux 系统处理几种类型的地址, 每个有它自己的含义: 用户虚拟地址:User virtual addresses,用户程序见到的常规地址. 用户地址在长度上是 32 位或者 64 位, 依赖底层的硬件结构, 并且每个进程有它自己 的虚拟地址空间.

DMA基础教程教学大纲

D M A基础教程教学大纲Prepared on 21 November 2021

《3D MAX基础教程》课程实施性教学大纲 制定人:日期: 审核人:日期: 批准人:日期: 一、说明 1.课程的性质和内容 《3D MAX基础教程》是一门专业必修课。本课程的任务是旨在运用现代科技和艺术的理念,对三维软件3D MAX作系统的讲述,使学生掌握3D MAX软件的使用方法,并能够应用该软件从事相关的艺术设计。 通过系统学习本课程专业理论知识与专业技能,使学生了解三维设计基本原理,掌握三维建模的基本方法、材质的使用编辑、灯光效果的使用等基本设计技能,并能运用于三维室内效果图的制作中。着重于建模与室内设计的理论、设计表现、设计方法的学习与运用。要求学生掌握室内环境与空间设计的基本理论、设计方法,加强3D MAX软件知识的学习,利用课余时间扩展相关知识。 2.课程的任务和要求 本课程的教学任务是:通过本课程的学习,使学生掌握三维建模与三维动画制作流程的专业范围、性质和意义。在培养学习方法和设计理念的基础上,进一步掌握三维建模的基本设计方法和表现内容,掌握不同模型的类型、功能与性质,确定环境中模型空间、形态、材料和功能的关系和规律,在对三维建模和三维动画制作流程认识和理解的基础上,能根据不同的功能、性质,应用3DMAX及相关软件进行合理的设计和绘制,能用不同的手段表现差异化的设计效果。 教学过程从技工学生能力教育特点出发,在讲授过程中,突出该课程的概念性、实践性都很强的特点,注意课堂讲授和实验密切结合。在教学过程中,要注意激发学生学习兴趣,提倡学生主动思考问题,培养学生的自学能力。 前期应当完成的课程:《设计素描》、《设计色彩》和《构成基础》的专业基础课程。 3.教学中应注意的问题(含教学建议) 《3D MAX基础教程》课程是一门实践性的课程,因此,在教学中可以转变教学观念,改变教学方法,在教学过程中,对于教学案例的解析,让学生的主动性增

DMA基本原理、结构与应用(下)

直接存储器存取—基本原理、结构与应用(下) 在上一期中,我们讨论了分别基于寄存器和描述符的DMA模式。在本文中,我们将在系统层面上探讨应用中关于数据移动的各种选项所应做出的某些重要的决策问题,以及某些先进的DMA功能特性如何协助数据在多媒体系统中有效地移动。首先让我们重新回顾一下DMA模式,以便以之说明另外一两条关于何时选择其中一种模式而非另一种模式的指导原则。 对于规模相同、连续、单向的数据传输来说,自动缓冲方案是最合理的。DMA配置寄存器只要设置一次,就可以自动地在传输结束的时候重新载入。如果采用多维寻址,则可以设置多重缓冲,在每次缓冲结束时可以单独设置各次中断的触发。 到一个音频编码解码器的传输就是这种类型事务。你所选取的子缓冲区的数量应该与你需要执行的处理的类型相一致。对于连续传输来说,只要确保能让每个缓冲器的最大处理间隔小于取空一个缓冲器所花费的时间即可。 如果在给定通道上的传输在方向和尺寸上都将是可变的,描述符模式就是最佳的选择。试考虑在内部和外部的存储间发生的一系列小规模的传输,如果数据块的尺寸发生改变,或者如果你希望以一种非连续的方式来在缓冲器中处理数据,则可以为此建立描述符。 高速缓存 vs DMA 我们接下来将考察系统数据转移的某些情形,在这些情形中,我们需要在高速缓存和DMA之间做出选择。为此,我们首先需要考察一项在应用内部存在的各种数据移动类型。 通过片上外设来将数据转移到系统内或者将其移到系统外是一种最容易说明问题的情况,因此我们以这些数据的转移为起点开始讨论。许多外设可以在使用内核存取还是用DMA通道来转移数据之间做出选择。一般来说,如果可以做出选择的话,你应该使用DMA通道。DMA控制器之所以成为最佳选择,是因为数据往往要么来得太慢,要么来得太快,处理器无法高效地对其进行实时处理。 当我们采用慢速的串行器件(如SPI端口或者UART)时,数据的传输速率远低于处理器内核运行的速度。内核对这些类型的外设的访问必然涉及对一个映射存储器的寄存器的某些位的轮询(polling)。即使当外设的工作速度与处理器时钟相比较很低的话(这意味着访问的频率将会降低),轮询也是一种浪费。在某些情况下,外设有能力发出中断,指示内核传输已经发生。不过,在这里,每次增量数据传输完成后都会遇到为中断提供服务的开销问题,包括前后条件(context)切换的时间。 另一方面,使用DMA控制器来执行传输,使得系统可以精密地控制在发出中断前所完成的传输的次数。而且,这种中断可以在每个数据“块”的末尾发生,而不仅仅是在每个字节或者字之后。 在吞吐率分布的另一端,更为高速(例如以10~100MHz)的并行外设可能无法选择内核传输的方式。原因为:首先,以这种方式进行设定时,处理器会频繁地访问外设;其次,与高速外设相关的处理几乎总是对数据块进行的。无论是在一个信号处理应用中通过FFT完成,还是在图像处理系统中进行二维卷积(convolution),处理器在送往缓冲器的最后一个数据采样一到达时就开始其操作。这里,用于指示一个数据块传输结束的中断可以出现在数百次甚至上千次传输中。

DMA原理

第2章气凝胶热学力学特性及表面修饰机理2.2.2.1 DMA测试原理 动态热机械分析仪(DMA)被广泛用于材料的粘弹性能研究,可获得材料的动态储能模量,损耗模量和损耗角正切(tan δ)等指标。DMA8000主要是用来测量样品在一定条件温度、时间、频率、应力或应变、气氛和湿度等综合条件下的动态力学性能。DMA8000用于研究材料在交变应力(或应变)作用下的应变(或应力)的响应、蠕变、应力松弛和热机械性能等测试。图2.4为DMA8000实物图。 图2.4 DMA8000实物图 DMA使一定几何形状的样品产生一个正弦形变。这样,样品能够经受一个可控的应力或应变。如果应力一定,那么样品将产生一定程度的形变。形变的大小与样品的刚度有关。里面的电动机产生正弦波,并通过驱动轴传送到样品上。驱动轴的柔度及用来固定驱动轴的稳定轴承显著地影响测试效果。由DMA8000的驱动系统示意图(图2.5)可知,这种设计既不需要弹簧也不需要气动轴承装置来支撑驱动轴,使仪器有更低的柔度。

同济大学硕士学位论文气凝胶保温隔热材料的制备及力学热学性能研究 图2.5 DMA8000轻质驱动系统 DMA测量样品的刚度和阻尼,即模量和tan delta。因为仪器引入了一个正弦力,模量可以表示成同相部分(即储能模量)和异相部分(即损耗模量),如图2.6所示。储能模量(E’或G’)可以衡量样品的弹性行为。耗能模量与储能模量的比值就是tan delta(即损耗角正切)。它可以测量材料的能量损耗,它是材料摆脱能量的能力的量度,被称为相位角的正切。它告诉我们材料吸收能量的能力。它随着材料的状态(即温度)和频率的变化而变化。 图2.6 正弦应力与应变的关系、相位滞后和形变 2.2.2.2 DMA夹具的选择及测试模式 DMA8000配置了六种常用的夹具用于多种形变模式测试(图2.7),囊括了测试材料所需的所有类型。通常,根据待测样品的特性、尺寸以及用途等来选择适合的夹具。 单悬臂梁弯曲模式:对于大多数高聚物条状样品Tg前后的常规性能测试是非常适合的,也可选用试料夹测试粉末状或粘质样品。 双悬臂梁弯曲模式:特别适用于低硬度的样品,例如很小自由长度的特薄薄

相关文档