DMA
DMA=Direct Memory Access。这是一种通过硬件实现的数据传输机制。简单的说,就是不在CPU的参与下完成数据的传输。
DMA是一种硬件设备。这种设备的工作原理是这样的:
——首先CPU告诉DMA设备,要有一堆数据需要传输,为了效率而请它出马。(DMA请求)
——DMA收到CPU的消息,开始准备。此时CPU把数据源地址、数据目标地址、传输数据量、传输模式等等参数告诉它。(DMA初始化)
——DMA初始化完,向CPU发送消息“借你的总线用一用,我要开始传输数据了!”(总线出借,DMA启动)
——CPU收到消息后,暂时切断自己与总线的联系。DMA开始传输数据。(DMA数据)
——DMA传输完数据之后,向CPU发送消息“搞定了!总线还给你。”(总线归还)
——CPU说:“干得好!老将出马一个顶俩!辛苦了,你先歇着吧。”DMA设备停止。CPU该干啥干啥。
由于是硬件实现的,所以DMA的速度非常快。快到什么程度呢?在DS上,尤其是数据量非常大的时候,相比于CPU当中介,效率能够提高一百万倍以上。
由于DMA的速度是如此之快,所以大量的数据传输,一般都要求使用DMA。
TCM
TCM=Tightly Coupled Memory,是一种高速缓存,据说是被直接集成在CPU芯片中。DS有两种TCM,分别是ITCM(Instruction TCM)和DTCM(Data TCM)。
注意:
1.内存支持列表中,内存详细参数里,SS指的是单面内存,DS指的是双面内存。内存一共有两面,根据内存总容量和内存芯片的存储容量,内存厂家会生产双面内存和单面内存,也就是内存的两面都有存储芯片,或者只有一面有存储芯片。单双面内存在兼容性上有一定区别,所以会单独列出来。
2。ITCM是cortex内核中指令传输总线,DTCM是cortex内核中数据传输总线
是cpu内核同flash及sram之间传输指令和数据的通道,指令的取指和执行及数据的读写在性能及管理上存在差异性,因而需要予以区分。