下冰雹 · 2022年03月29日

如何根据性能需求定架构?

性能指标是啥?该怎么去定一个设计的架构?相信很多初学者不曾想过这些问题,或者曾经想过却没有太care,毕竟对初学者来说,能够实现功能就已经相当振奋人心了。所以在面试的时候,很经常会遇到一些应届毕业生,连设计的时钟怎么约束都不清楚。但是,随着学习的深入,你会发现在工作中,仅仅是功能实现,已经满足不了需求。评估性能,然后定架构,是每个设计工程师必然会遇到的问题。

本文借助一个具体的例子来跟大家说说,我是怎么根据性能指标去定出自己最终的架构的。其步骤大概分为五步:

  1. 提出性能需求;
  2. 根据性能需求画出架构图;
  3. 画出架构时间线图;
  4. 调整架构,重新评估;
  5. 根据设计复杂度,面积和功耗来确认最终方案。

第一步,提出性能需求

工作中,性能需求大部分来源于市场。例如竞品的性能提高了,为了跟它对标,我们必须跟着有所改进,否则只会被残酷的市场淘汰;又例如,配套产品的性能提高了,我们必须要提高性能与其适配等。

下图是市场的一个设计需求,其中DMAC和FC是现成的模块,SECC是需要我们重新设计的。

1648525588(1).png

整个系统的数据流为:

  1. FC模块将数据以4KB为单位送给SECC模块,数据位宽为64bit;
  2. SECC模块接收到4KB数据后,就可以启动解码;
  3. 解码完成后,再把这4K数据发给DMAC,数据位宽为64bit。

已知条件有:

  1. SECC解一个4KB数据需要花费的时间是2154T;
  2. DMAC和FC使用的是200M的系统时钟,吞吐率都在500MB/s;
  3. 系统可用使用有200M和320M两个;
  4. 为了节省面积,只能使用单口RAM进行缓存。

第二步,根据性能需求画出架构图

首先,最简单也是最容易想到的架构如下:

1648525617(1).png

该架构的数据处理可分成三个步骤:

  1. 把从FC传过来的4KB数据缓存到RAM中;
  2. 启动ECC4K_DEC进行解码;
  3. 解码完成后,将数据从RAM中搬走。

第三步,画出架构时间线图

如下图,根据上面的数据处理步骤画出时间线图。其中wr_ram表示把从FC传过来的4KB数据缓存到RAM中,因为数据位宽为64bit,所以耗时为512T;dec_ram表示ECC4K_DEC在解码,耗时为2154T;而rd_ram表示将4KB数据从RAM中搬走,因为数据位宽为64bit,所以耗时512T。

1648525653(1).png

从上面的分析,可得:处理4KB数据的总耗时为1024T+2154T。在这种架构下,即使使用320M的时钟,SECC的吞吐率也只有401MB/s,比DMAC和FC的500MB/s都低,显然SECC成为了设计瓶颈,需要调整架构。

第四步,调整架构,重新评估

如下图,在上面架构的基础上,加多一片RAM。对两片RAM进行pingpong操作。即在解码的同时,FC可以将下一个4KB数据写到另外一片RAM中,这样能保证解码模块一直在工作,隐藏了数据从FC到写到RAM的时间。

1648525692(1).png

该架构的时间线图如下:

1648525714(1).png

假设写wr_ram和rd_ram用的是clk1,dec_ram用的是clk2。那么总耗时为1024Tclk1+(2154*data_len/4KB)Tclk2。我们以传输的数据长度为128K进行评估:

  1. clk1和clk2都是200M,吞吐率大概为366MB/s,不能满足要求;
  2. clk1和clk2都用320M,吞吐率大概为585MB/s,可以满足要求。

第五步,根据设计复杂度,面积和功耗来确认最终方案

如果采用上面的第二种方案,clk1和clk2都为320M,会带来两个问题:

  1. DMAC和FC都是200M,这样SECC和他们便是不同的时钟域,设计上要做大量的跨时钟处理,增加了设计的复杂度和加大了风险;
  2. 320M的时钟无疑会带来更大的功耗。

那么我们可以考虑另外一种方案:clk1使用200M,clk2使用320M。这种方案SECC的吞吐率为569MB/s,能够满足要求;且由于wr_ram,dec_ram和rd_ram三者是有严格的先后顺序的,所以我们只需要在dec_ram之前将ram的时钟切到320M,dec_ram之后再切回200M即可。不仅降低了设计复杂度,还降低了功耗。

作者:年哥
原文链接:IC小迷弟

推荐阅读

更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
19430
内容数
1299
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息