主题中讨论的其他器件:TMS570LC4357
Tiva-C (至少某些型号)支持使用外部 SDRAM 和/或闪存。 可以从 SDRAM 和闪存运行代码。 好的、这很清楚。
现在、关键在于细节、 能够运行代码并 合理地执行代码是两个不同的事情。 据我所知、Tiva 没有运行任何类型的缓存。 如果指令是从 SDRAM 逐一获取的、那么这并不是一个完全高效的过程。 存储器控制器是否足够智能、至少可以将单个长指令的两个字读取合并到一个事务中? 例如、如果我们使用典型的16位 SDRAM、则在60MHz 时钟下、其工作原理如下:
Alliance AS4C4M16SA 143MHz 器件可在60MHz 时钟下工作、达到 tRCD = 2 clk、CAS = 2clk、TRAS = 3clk、TRP= 2clk
- 因此、如果我们以最不理想的方式执行此操作、则每个字的 tras + TRP 3+2 = 5个周期。 在83ns/PoP 下几乎不是最佳选择。 更糟糕的是、您需要两个字、因此 两次访问需要10个时钟或167ns 或6MHz 指令时钟!
- 可以一次执行多个读取操作、因此连续抓取一条指令的两个字、在6 个时钟 或10MHz 指令时钟下会稍微减少麻烦。 。
- 理想情况下 、SDRAM 控制器"知道"行、并且不会取消选择中间访问的器件、您可以查看 每长时钟3个时钟或20MHz 指令时钟。
那么、在使用 SDRAM 运行代码时、您要处理哪个选项?