Cache设计基本信息
本文讲述四路组相联Cache的RTL设计,其中,cache采用写回法、写分配法,替换策略采用LRU替换,下面是设计的一个基本情况: 1.Cache 共16个组(set),每组4个cache line,每个cache line包含8个字,一个字的位宽为32bit,即4个字节。每个cache line,还会额外设置一个valid有效位,一个dirty脏位,一个tag标签位以及一个lru计数器(32bit)。 只考虑数据部分,则cache的大小为4*8*4*16=2048字节。 2.DRAM DRAM共4096字,共16384个字节,DRAM和Cache之间,采用AXI总线进行数据的传输。由于块大小为8个字,因此突发传输长度固定为8(AxLEN=7),而突发传输类型为INCREMENT。 综合上述信息,CPU地址可以被划分为以下几个部分: cpu_addr[13:9]:共5位,为tag部分。 cpu_addr[8:5]:共4位,组索引(set index)。 cpu_addr[4:2]:共3位,块内字偏移地址。 cpu_addr[1:0]:共2位,字节偏移。
状态机的设计我们抽象出6个状态,它们分别是 S0:IDLE状态,空闲,无CPU读写请求;