王轩Lab3-Cache设计与接口时序解析

需积分: 0 0 下载量 69 浏览量 更新于2024-08-04 收藏 856KB DOCX 举报
"Lab3-王轩-cache编写指导1" 在计算机系统中,Cache是一种高速缓冲存储器,用于临时存储最近频繁访问的数据,以减少CPU访问主存的延迟。本指导主要讨论的是采用“写回+写入分派”策略的Cache设计,这种策略在《计算机体系结构:量化研究方法》(中文第五版)的附录B中有详细介绍。实验中,Cache的状态机管理着其工作流程,包括就绪、命中和缺失状态,确保高效的数据存取。 Cache状态机如图1所示,当CPU发出读写请求时,Cache首先检查是否命中。如果命中,Cache立即响应请求并保持就绪状态。若发生缺失,Cache需从主存中获取数据并可能执行换入操作。如果要换入的块是脏的,必须先换出,然后才能进行换入。在换入换出期间,Cache发出miss=1信号,使CPU流水线暂停(stall)。一旦换入完成,Cache恢复就绪,能够响应原始的读写请求。 Cache与CPU之间的交互通过特定的接口和时序进行。简单直接映射的Cache接口包括读写请求(rd_req和wr_req)、地址(addr)和写数据(wr_data)。当发生命中时,时序类似于dataRam,如图2所示,读写操作在一个时钟周期内完成。而当发生缺失时,miss信号变为1,请求信号保持,addr和wr_data也需保持不变,直到miss信号回到0,请求信号仍然为1,完成一次读写操作,如图3(写缺失时序)和图4(读缺失时序)所示。这里,rd_req与miss、wr_req与miss形成握手信号,这是总线通信中的常见做法。 值得注意的是,实验中的缺失持续时间并不固定,因为主存读写操作可能需要50个周期以上。因此,实际的Cache缺失可能会持续50多个至100多个时钟周期,具体取决于换入操作是否涉及脏数据的换出。 在设计和实现Cache时,理解这些基本原理和时序至关重要,这有助于确保CPU和Cache之间数据传输的正确性和效率。在修改或构建Cache模型时,应遵循上述接口和时序规则,以避免与CPU连接时出现问题。