复用时钟是指在同一个片上系统(SoC)中,多个时钟域使用同一个时钟源的技术。这种技术可以有效减少系统中使用的时钟数量,降低功耗并提高性能。
在SoC中,不同的模块可能使用不同的时钟域,而时钟域之间存在边界。在跨越时钟域边界时,需要打开复用时钟。例如,当DMA控制器将数据从外部设备传输到内存时,需要跨越CPU时钟域和DMA时钟域,此时需要打开复用时钟。
此外,当使用外部接口时,也需要跨越时钟域边界。例如,使用PCI Express时,需要跨越CPU和外设的时钟域,此时也需要打开复用时钟。
在SoC中,多个模块之间存在时序约束,即一个模块的输出需要作为另一个模块的输入,此时需要打开复用时钟。例如,在音视频编解码中,音频模块需要读取视频模块的帧头来进行同步,此时需要打开复用时钟。
同样地,在多媒体处理中,需要在视频解码后进行显示,因此需要将解码器模块和显示器模块的时钟同步才能正常工作。
为了降低系统功耗,处理器会在空闲时进入节电模式。但是,在进入节电模式后,处理器关闭了所有使用的时钟,这可能会导致跨时钟域边界设备无法正常工作。此时需要打开复用时钟,以保证设备正常工作。
同时,在处理器进入节电模式后,需要在下一次唤醒前恢复设备状态。因此,在打开复用时钟后,需要使用一些特定的设备状态保存和恢复机制。