中文 英语

分区驱动体系结构方面的考虑

专家在餐桌上,第2部分:分区最大的权衡。

受欢迎程度

半导体工程探索与雷蒙德Nijssen分区坐下,系统工程的副总裁Achronix;首席执行官安迪·拉德Baum;首席营销官戴夫Kelf Breker;梅特卡夫杆,产品管理组负责人在数字和验收小组节奏;马克•克拉产品营销经理导师西门子的业务;汤姆安德森,技术营销顾问OneSpin;在超音速和德鲁Wingard,首席技术官。以下是摘录的讨论。第一部分,点击在这里

SE:一些分区的技术及业务驱动吗?

Kelf我在不久之前会见大基带芯片公司设计一个加速度。他们两倍数量的基带穿上这个大基站,当他们只是增加了芯片的能力像他们发现各种各样的机会,没有之前的分区。所以他们不仅移动软件,但他们开始说,“实际上,我们需要两个调节器,但四个涡轮纠错,等等。”他们在那些块移动这些基带,他们现在能做的。得到的硬件移动,然后,他们然后回到软件可以改变协议栈来实现这一点;添加一个而不是两个处理器的运行。所以增加的能力实际上甚至经常导致实现现有的块,这导致了一个巨大的验证问题,。

Nijssen:分区意味着分离。在两个或三个你减少一些,每次你这么做你介绍优化地平线的障碍。也许两个和两个在一起不是最优,如果你能够把这一切放在一起。每次我们还必须对性能的影响研究,实施影响,可测试性的影响。标准的列表很长,非常多方面,但也有很多矛盾的事物,可测试性的目的,应分区。可能性的目的,最好的区域,它需要分区。为目的的力量,我需要另一个分区。这是现在成为一个多变量、多目标优化问题。最后,在你做出选择,你必须使用可用的ip,因为你不会从一张白纸开始。你可能不能直接通过中间,因为他们不再工作如果你试图这样做。 Or you couldn’t verify them. So we have to partition systems in yet another way. One thing that has kept me busy for the last few years really is where I have this ASIC I want to build and I can not afford to put everything in an FPGA because it would be too big and not fast enough, use too much power, and so forth. But I can’t put it all in an ASIC because I need some flexibility, like the baseband example where there are standards that just keep changing. If you try to build out an ASIC, that would be really bad news because you’d probably find your ASIC is out of date by the time it comes out. There’s another partitioning in terms of what kind of flexibility I need, and do I now embed some FPGA logic in my ASIC to make sure that I have the flexibility so I don’t have to re-spin my ASIC when somebody changes the standard. Or in the case of bitcoin mining, if someone changes the hashing algorithm and I try to make an ASIC out of it, what do I do? If you keep it programmable, or at least partially programmable, then you can adapt to those things. So now not only do we have to think about all the aspects that were just mentioned, we also have to make sure that the ASIC can be future-proofed by adding programmable areas in there. That means I have to sometimes carve out some piece from the CPRI (Common Public Radio Interface), for example, to keep that flexible. But now my whole design changes, I need to re-verify it to make sure that I could insert some flops in there for pragmatic purposes that weren’t there before, because otherwise I can’t close timing. What it comes down to is that partitioning is an iterative process, where sometimes you have to go back and change one block because another block was changed. It’s not like it’s very isolated. It’s not like when you cut through the middle, then now everything becomes totally independent. If there are cross-dependencies between the various partitions, that makes it into a really interesting problem.

安德森:分区的灵活性是另一个维度。是的,在FPGA的选择也是如此。但即使与传统的硬件软件权衡,这也是其中一个因素,你选择的原因和实现一些软件或微码,比方说,将是灵活性。如果总线标准不确定,你想要你的芯片,也许他们会调整的东西一点所以把一些软件。但是的,FPGA可以有灵活的硬件,这是最近相当的有趣。

SE: 1号理由分区设计?它帮助验证和重用吗?

Wingard:分而治之。它是关于管理的复杂性。

梅特卡夫:使用IP减少了很多复杂性。添加,它已经在那里,你知道它会工作。它能减少你变化的复杂性。如果您正在使用一个核心,核心已经被很多客户。这是添加。你知道这些概要文件是什么。

Wingard:你不需要做重用为了获得受益于分而治之。世界上最著名的微处理器设计公司大规模分区细化不同组成时,微处理器。他们一切都成碎片,他们非常注意这些东西之间的界限。有些是为了验证和有些是因为他们有数亿,或数十亿行遗留代码运行和兼容,等等。所以,这不是关于重用。而是试图管理成千上万的工程师团队的工作项目,有一些相信你能坚持时间表。

安德森:和权力和性能和刚才提到的所有其他东西。大约有六种不同的向量,可以帮助所有的分区。

Nijssen:剩下的粒度。现在我们经常做这么多比的构建块,说,十年前,当然会分区有各种各样的原因。现在我们说它是更有效或更快,或者工具可以处理它,所以就粘在一起,做一个街区。分区的粒度也在改变,这是移动的很快。

梅特卡夫:这是一个非常重要的一点,因为从物理的角度来看,分区是昂贵的。当我插入分区,我必须有一个I / O。我必须把别针。我已经冻结,所以它不是免费的。粒度是真正关键系统设计师,因为他们不想让成千上万的小块,除非有一个很好的理由。有时有,但你需要一个庞大的设计团队来实现这些成千上万的东西。你不希望出现任何太大,因为在运行时这些东西可以开始成为一个约束。这个范围非常狭窄的甜点分区,考虑很多事情。粒度是一个大的。

SE:性能呢?有权衡,将提高性能?

Wingard:对我来说,最基本的是成本效益,来自许多形式的集成。当然我们所说的SoC的一切。这些好处来自池内存,共享一个昂贵的资源,如内存芯片外。获得更多的功能一样的相对成本的内存。这是固有的性能权衡。你总是平衡成本你能负担得起的系统要求和性能需要交付的内存,以便为应用程序你想要的目标。这是一个固有的权衡。建筑师没有考虑到作为分区的一部分选择设置自己的失败,和在早期的soc,有些年纪大的人都记住——有很多人认为这只是一个ASIC微处理器添加到它。这些人最终意识到这是不同的。这不是仅仅实现某一频率级别之间的人字拖的设计。 There is a system performance requirement that you didn’t have to worry about before. It really just comes from pooling memory.

拉德架构师的主要工作。如果他要提高性能,他将不得不权衡。他会增加力量,也许要去一个新的核心。这将是更昂贵的或者是更多的区域,而且会有一些权衡。总有一条路径来获得更多的性能,但你愿意牺牲。

梅特卡夫:你经历很多假定场景。假设你要几兆字节的记忆融入设计。有几个选择。我可以试着保持on-die ASIC。所以8 mb仍然可能是可行的在合理的成本。但有些时候,你可能会考虑把它作为RLDRAM外(减少延迟DRAM)之类的。对性能产生什么影响?成本有什么影响?假设你刚刚跑出针包,这是我考虑这个的原因。有很多假定场景是不连续的。 It’s not a smooth optimization landscape. It’s very erratic. If I change ‘this,’ then all the other things have to change, too, or my system performance goes down the drain, or the cost goes up, or the board designer is not going to like me anymore. So there’s a lot of these very erratic things that make it very unsuitable for software optimization. As I was listening to the discussion, I was thinking, why isn’t there some software tool that does this for us?

Kelf:这会带来整个验证的讨论。验证这些东西是什么?你得工作。这是最基本的水平。的安全,所有这些不同的参数,之前你必须检查与验证芯片出去。和最大的一个是性能原因每个人都一直在说。当您运行这些验证测试SoC水平,大量的分析只是为了确保你没有你没有预料到的有趣的瓶颈。“一些块不是阻塞那边的东西。通信路径正常工作吗?”和验证任务是改变很多。架构师是建立他们认为是正确的分区,然后必须从性能进行验证,分析和权力的角度使用前验证芯片制造。 This is now a major part of SoC verification, and it’s a huge problem. A lot of companies will find when they run these verification tests that the thing works, but it does this weird thing, and they have to go back and actually redesign a major part of the device.

Wingard:这是我们一直在做过去的20年里,这是越来越明显,这是一个问题。我们的方法是与体系结构。每个产品我们曾经建立基于硬件虚拟渠道,因为他们允许我们做什么。所以你可以把更高的优先级,保证吞吐量,感伤的东西,完美的了解他们将如何相互作用。所以我们的观点是,我们想要SoC-level性能验证可以通过死记硬背的东西。我们不想被发现。我们想要设计。

SE:但这并不经常发生;人们并不总是采取这种方法。这就是为什么分区是这样的大事,对吗?

Wingard:你是对的,总有伤害自己的方法:现在,你可以付给我了,或者你可以付给我。如果你看看我们给客户的用户界面,它开始通过创建一个性能试验台。这是你要做的第一件事,因为我们学会了在早期我们可以自动化装置,这很好,但是没有推理的芯片性能模型。你不能一个缓冲区大小,你不能建立一个仲裁者,coudn不做任何事。你需要性能模型驱动的选择。所以从我们的角度来看,这是你应该做的是第一个,不是最后一次。

Kelf:你肯定做到第一,但你回去只是验证它。如果你依赖,最终验证性能,这将是可怕的,没有人会这样做。但只是最后一点验证,试图找到一些奇怪的角情况下,处理器是驾驶三件事时不应该在同一时间,例如,整个系统负载下,突然你在手机试图发送一个照片同时输入一个文本消息时,你发现的交互只是吹整件事分开,你没有预料到的。这是更大的问题。SoC是越来越大,越来越复杂,这些场景现在也越来越艰难。

克拉:当涉及到性能和总是试图达到更高的性能,EDA供应商遇到的是10年或更长时间,我们能够产生更快的处理引擎,更快的模拟器,三个(最大的EDA工具供应商)骑在背上的微处理器时钟速度公司人跃跃欲试。好吧,如果你看趋势数据在过去三、四或五年,它不再发生,那么如何继续得到更高的性能验证世界?我们分区。我们都是沿着这条道路如何并行化的现在你在做什么,至少我们所听到的来自我们的客户基础的方法,使实际工作巧妙设计分区;你不能把任何通用设计和神奇的并行引擎上运行它。这的gpu, cpu。有不同的方式把此处试验台和你把设计。现在有各种各样的事情发生。所以我们分区试图获得更多的性能,因为我们没有得到更快的时钟速度,所以你要么做事情并行或者你要去一个更高层次的抽象不是性能,只是计算少和做决定。甚至在所有的验证是由分区,即使设计IP类型的东西,如果你没有能力改变你的分区过程中,那么你会没有区别,因为每个人都是购买标准的第三方作为PCIe控制器和以太网mac和安巴架构,然后没有区别。 So everyone’s looking at doing certain things in software or change this or change that.

拉德:把多核设计理念。人没有得到每年时钟速度的增加,他们不得不去mutlicore。

克拉:实际上,开车把整个试验台自动化行业,因为他们所做的行为研究,人类不能做多线程在他们的头。所以你不得不去试验台自动化可以做多个源同步或异步的刺激;你不能只写直接测试了。

Nijssen:导致另一个趋势——异构计算——你看到越来越多的不同,专业模块在设计之前你会试图这么做也许CPU,但现在你要有这个H.265块作为一个单独的块和不同种类的加速器,gpu或fpga系统中,不知为何现在系统分区从上到下再次需要这些不同的任务映射到最好的街区。如果有硬化任务划分,使其更加复杂,性能分析,“如果我有一个CPU运行的这个任务,现在需要做一个矩阵相乘或1000 x 1000 x 1000但我要保持我的CPU或做我支付罚金将这这个FPGA块然后去为我做这个转移整个事情回到CPU和继续?这种分析非常复杂,你需要非常精心testbenches现实的向量和使用模型来确保它不仅平均情况下工作很好,但不可能是最坏的情况下。和你怎么知道这样一个复杂的系统,所有不同的球员是不同的,你现在怎么知道仍然不会有一些场景,在该场景中,这些人碰撞或将达到某种死锁吗?

有关的故事

分区驱动体系结构方面的考虑

为什么并行太难了

分区将变得更加困难

更多的节点,新问题



留下一个回复


(注意:这个名字会显示公开)

Baidu