Pico镇楼
相信这个小玩意大家都知道了,双核Cortex-M0+,时钟频率133MHz(实际上保底可以超频到250MHz+),自带PIO、SIO等一系列有趣的外设,并且拥有2MB SPI Flash(自带16KB的cache)+264KB SRAM的内存.
那么问题来了,已知:
之前我在Nios II上移植过NES的模拟器,可以跑到20 fps左右(不包含索引色处理的部分,声音暂时也没做),而且当时没有用上汇编优化,(不排除超频的前提下)RP2040的性能应该足以模拟NES了。
RP2040有两个核心,可以像NES一样,一个模拟2A03(CPU+APU),另一个模拟PPU,两者可以同时工作。
RP2040的片上内存达到了264KB,不考虑显示部分的话应该够用了,而且显示部分可以由一个核心直接渲染,不需要把一整帧渲染后的RGB图像存储下来,大大节约了空间。
RP2040支持XIP,可以把Flash直接映射到内存空间,最大支持16MB,足以放下所有的NES游戏并且直接寻址,有cache的话速度应该还不错。
RP2040的PIO可以用来处理输出并且自带FIFO,根据别人的demo来看直接输出VGA应该没啥问题。
RP2040的SIO中的Interpolator应该很适合用来处理音频数据。
感觉经过以上分析,似乎在Pico(RP2040)上跑个NES模拟器是可行的?欢迎大家讨论。
离线
而且超频也不仅仅是把主时钟频率提上去就完了,要考虑flash读等待周期吧
一方面,RP2040有SRAM,而且AHB-Lite总线的Crossbar映射是完整的,意味着两个核的访问可以做到互不冲突,可以把关键代码放到SRAM以提升效率;另外,RP2040对于Flash有16KB的Cache,这个Cache应对(简单的)NES游戏来说应该是比较够用的。
离线
我觉得还不如esp32有得玩。
感觉ESP32和RP2040是两种不大一样的玩意,前者的卖点非常突出(互联、性能够用),简单操作就可以做出非常有趣的东西;后者则把料都堆在了提升数字处理性能的地方(虽然部分搭配确实有待商榷,比如神奇的高频双核Cortex-M0+),属于需要细致研究才能做出有意义成品的芯片,但是玩好了可以实现意想不到的效果,可能更适合geek向的应用。
离线