来自群友的讨论
我的理解是DMA某种程度相当于一个CPU是因为DMA拥有访问其他地址空间的权利。
从系统角度考虑,对整个系统的观测者一般CPU DSP GPU DMA是一个级别,其他都是slave。cache一致性POC是要保证所有观测者,包括DMA观测到相同数据。
但是DMA一般不能上电自运行,我还没见过一个系统中只有DMA没有DSP CPU GPU这种。
所以更准确的说法是,DMA是系统中的一个master。
在soc系统中,以简单的只有一条总线为例,CPU、dma等等是作为master可以直接发起总线访问的,而UART控制器、spi控制器等等是作为slave的,不能主动发起总线访问,只能等总线选中自己然后应答或者回数据,
DMA这个mater比其他master特殊在于,其他master比如CPU DSP GPU可以上电自己取值 译码 执行,DMA不能。
你将dma理解成CPU,其实就是说CPU和dma都是master这个共同点,CPU和dma可以直接发起总线访问,当他们一起发起访问申请时,总线还会总裁看看谁优先级高就让谁访问,另一个得等一等
是的,复杂一点的soc里,master很多的,还比如JPEG模块,会主动读取YUV或JPG图片,经过压缩或解压后再主动写到ram里,也是初始化的时候CPU给他配置一下,后面JPEG模块就自己玩了,或者摄像头模块,主动从引脚上读取数据解析后放到ram里,这些都不需要CPU干预的,不然每次操作都用CPU从fifo读写数据,那效率太低了
比如我们的芯片,红框部分都是master,他们和dma差不多,都是master
什么叫CPU,中央处理器单元,不要光用master和slave去解释,DMA再能干也是地方,CPU才是中央。一个单片机没有dma照样工作,一个没有cpu的ic,只能叫专用ic模块
个人感觉慢慢的中央这两个字在弱化
从功能上比如爱芯这种,系统中有CPU但是主打的ISP,性能也是主要以ISP衡量
从性能上一个主要跑AI推理的机器,应该是GPU性能大于CPU,我猜的单GPU板卡中是高性能图像处理期+低性能CPU,CPU做引导启动,提供一些风扇控制,异常处理等等服务
是,所以说是简化版的,意思是两者在一些重要特征上有点类似。