总线互联noc/nic400/designWare fabric

1-3节介绍了业界常用的3种总线interconnect IP

1.synopsys的designWare

DesignWare IP Solutions for AMBA - Infrastructure & Fabric

        在这种情况下,设计者使用AMBA的各种DW组件(Fabric)来自行搭建互联结构。这样在简单系统还可以,复杂SOC很容易出问题。

        另外Synopsys也提供了自动集成的工具 coreAssembler。该工具或许可以向NOC那样直接生成总线互联结构(暂时没有使用过,猜测)。

面向AMBA 互连的 DesignWare IP 解决方案

2.ARM的NIC-400

        The CoreLink NIC-400 Network Interconnect is highly configurable and enables you to create a complete high performance, optimized, and AMBA-compliant network infrastructure. There are many possible configurations for the CoreLink NIC-400 Network Interconnect. They can range from a single bridge component, for example an AHB to AXI protocol conversion bridge,
to a complex interconnect that consists of up to 128 masters and 64 slaves of AMBA protocols.

        可参考ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manualicon-default.png?t=N7T8http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0475g/index.html

        NIC是crossBar结构的总线互联,一般用在主从设备较少的情况下,这种情况下NIC的效率很高,在1到2个时钟周期数据就能到达从设备。所以常看到NIC被用在子系统内部互联多个apb的slave

        NIC是只支持amba的协议【因为NIC和AMBA都是ARM一家的】,不像NOC需要专门的路由协议

        ARM总线产品还有CCI(CrossBar),CCN(Ring),NOC(Mesh)三类。可参考:

NOC总线架构拓扑介绍(转载) - 知乎弄清了访存的路径,可能就会想到一个问题:处理器发出去的读写请求到底是个什么东西?要想搞清楚它,就需要引入总线。下文我拿ARM的AXI/ACE总线协议以及由它衍生的总线结构来展开讨论。这两个协议广泛用于主流的手…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/93409326

3.NoC

3.0 NOC的起源

参考Intel和Facebook 都看好的技术:NoC神奇在哪里?

     下面一段摘自嵌入式系统/ARM技术中的片上网络取代片上总线 - 将睿

     法国高新企业Arteris公司日前公布了一种可取代传统片上总线系统的新型解决方案,即可适应当今许多复杂单片系统(SoC) 设计所采用的多个异步时钟的片上网络 (NOC)系统。

    NOC解决方案为片上通信提供了一种全新的联网手段,据称其性能大约为传统总线系统的三倍。SoC解决方案可与专用片上总线架构及商用片上总线——如ARM公司的AMBA(高级微控制器总线架构)及Sonic公司的 SiliconBackplane等相媲美。 

    Arteris公司营销副总裁Philippe Martin称,NOC解决方案将联网概念运用于片上通信。与利用网络来连接多台计算机的方法相类似的是,NOC解决方案将多个分布式系统(例如IP块及功能集等)连在一起,从而能减少迹线数量并因此而减少设计中的延时。Martin说:“过去几年,人们对NOC进行了相当多的研究,但大部分是学术性研究,而现在我们能提供商用产品。”该产品包括Danube NOC IP库、用于得出NOC架构的NOCexplorer,以及用于生成SystemC及可综合Verilog与VHDL的NocCompiler。

    Martin表示,NOC解决方案的目标针对采用异步设计方法(即在一块芯片上采用多个时钟及数百个IP块)的设计。鉴于此,Arteris公司开发出专用的片上以及基于分组的NTTP(NOC处理与传输协议)。而由网络接口单元 (NIU)、数据包传输单元及物理链路组成的Danube库,则包含用于执行这种协议的必要元素。芯片架构师可用NOCexplorer工具来进行NOC拓扑建模,并得出一种NOC架构。NOCexplorer用户可用一种称为GALS(全局异步、局部同步)的方法来指定一组同步逻辑。该工具利用NIU将NOC与采用片上插口标准——例如AMBA AHB(高级高性能总线)、AMBA AXI(高级可扩展接口)及OCP(开放式内核协议)2.0版等的内核相连。Danube库中的开关控制着集群间的同步链接,而库中的GALS则控制着异步链接。NOCexplorer利用一个数据流仿真引擎来对系统行为进行建模。

    在芯片架构师得出用于其设计的最佳NOC配置后,就可用NOCcompiler来生成可综合的Verilog、VHDL或SystemC,以便用传统IC设计流来完成设计。NOCcompiler拥有规则检查功能,以确保多个版本间的设计一致性。此外,它还能在预综合阶段估计电路面积。它能生成配置NOC单元的数据表格,包括一张寄存器映射表。NOC利用Artisan库和现成的EDA工具在90nm TSMC硅工艺上达到了750 MHz的工作频率。NOC解决方案的起价为35万美元。

3.1 NOC协议和简单结构

R:Router,NOC内部重要节点,用于路由和流量控制,有的地方叫做SWITCH。

NI:Network InterFace

NIU:是NI于AMBA接口的转换和异步处理【异步处理可以在NIU、LINK和switch做

LINK:连接NIU、Router/SWITCH的物理线路,上面可以有pipe和async组件

NTTP:NoC Transaction and Transport Protocol,NOC传输和处理协议

NOC采用的是基于数据包的传输和处理协议【packet-based NoC Transaction and Transport Protocol (NTTP) 】。为了完成传输和处理,NTTP包含了很多子协议:

下面一段摘自NoC协议概述-优快云博客

1.路由协议:确定数据包在网络中的传输路径,使数据包可以从源节点到目标节点进行路由。常见的路由算法有Dijkstra算法、Floyd算法、最短路径算法等。

2.拥塞控制协议:当网络中的某些部分过载时,拥塞控制协议将采取措施防止网络拥塞,以确保数据包的可靠传输。常见的拥塞控制算法有流控制、拥塞避免、拥塞检测等。

3.流量控制协议:在NoC中,流量控制协议用于控制不同节点之间的数据传输速率,以避免网络拥塞和数据丢失。流量控制协议通常使用缓冲区来存储数据包,并在必要时限制传输速率。

4.错误控制协议:错误控制协议用于检测和纠正网络中发生的错误,以确保数据的可靠传输。常见的错误控制协议有检验和、循环冗余检测等。

5.安全协议:安全协议用于保护NoC中传输的数据和信息的安全性,防止网络攻击和数据泄露。安全协议通常使用加密和解密技术来确保数据的机密性和完整性。

所以说NOC在流控,QOS和security及功能安全都做的很好,这些是NIC所没有的。

3.2 NIC/NOC/CCI的简单比较

        NIC crossbar 结构,特点是全互联switch,容量高,latency低,并发性好。缺点是可扩展性差,适用于输入输出数目比较小的情况。

        NOC是类似路由的一种结构,特点是可扩展性好,缺点是并行性差,结构复杂,需要路由协议。适用于连接非常多个处理单元的情况。  

        NIU准确的定义应该是BIU,也就 bus interface unit.用于连接网络节点和处理单元, NIU/BIU不是必须的,如果两种协议一致,就不需要这个了。

        CCI是保证多核处理单元之间cache 内容一致性的互联结构。

下面这篇文章对为什么选择noc给出了比较详细的说明

谈谈NoC Interconnect在复杂SoC设计中的应用 - 多核/异构系统的最佳互连方法 - 知乎

摘了一段话如下:

NoC结构为了实现扩展性,也需要负担router/switcher逻辑之类的额外开销,而一旦片上互连模块数量增加时(如大于30个模块),NoC的优势就会体现,此时路由器逻辑和网络协议的开销就可以忽略不计,因此在互联模块数量较多时NoC可以实现更高的性能,同时面积却更小;在互连模块的数量较少时(低于20个),那么片上总线和Crossbar因为设计简单会更加适合。

3.3 noc首先在消费性电子晶片市场获得初步成功

以下摘自NoC势力版图扩张SoC IP全面互联更Easy

以CoreLink NIC-400为例,为了让所有晶片商方便使用,该方案的运作即是采用AXI介面(Advanced eXtensible Interface)以让每个IP都可彼此互联,但事实上,并非每个IP都有连结到所有IP的必要性,这种方式往往造成晶片内有过多不必要的通讯渠道,反而让布线更为拥塞。以CoreLink NIC-400的128位元AXI汇流排架构为例,其晶片内布线平均数量更高达二百九十个,反而无法实际有效解决问题。

Shuler分析,在这样的背景之下,专门用来建立IP互联架构的NoC势力渐渐崛起,并率先在消费性电子晶片市场获得初步成功;不过,在诸如工厂自动化、汽车工业、国防航太、机械、医疗产品等领域,NoC业者则尚未能成功进入这些市场,原因在于这些领域通常拥有较严苛的产业标准,如汽车领域的ISO 26262、医疗领域的IEC 60601、航太业的RTCA/DO -178B、工厂自动化应用的EN 62601、机械设计的ISO 13849等规范,因此有意跨足的晶片商、IP业者、系统厂都须花费一翻工夫,NoC业者亦然。

事实上,在NoC方案进军这些市场之前,业者仅能针对自己的晶片开发自有的IP互联架构。不过,近来Arteris已成功开发出新一代NoC互联方案--FlexNoC Resilience Package,以满足医疗、汽车、国防航太、工厂自动化等应用市场的需要,扩大NoC业者的势力版图。

Shuler表示,采用新一代NoC互联架构,能帮助SoC业者降低晶片开发成本,并快速达到各项严苛的产业标准,让NoC全面渗透各项产业,加速所有SoC IP互联时代的来临。据了解,Arteris的FlexNoC Resilience Package方案,目前已经得到工业型晶片商Mobileye、Altera、德州仪器(TI)和瑞萨电子(Renesas Electronics)的支持,并率先用于先进驾驶辅助系统(ADAS)、嵌入式FPGA SoC等设计。

4.互联结构

以下摘自片上网络NoC为何还没有得到实际应用 回答者young cc来源:知乎
 

4.1 共享总线 即 BUS结构

Bus是最简单的互联,适合small system,当connected nodes太多时,若多个node同时通信,很容易产生contention,bandwidth 太小。所以Bus只适合小系统,一般十个以下的互联设备。

4.2 CrossBar

crossbar也是一种常用互联机制,每个node能与其他node直接互联,所以low latency and high throughput.,但 not scalable(可扩展性差), 复杂度是。所以Crossbar适合不太大的系统,一般用于几个到十几个connected nodes 的系统。

4.3 noc

当前多核系统最流行的是Mesh结构。

NoC的诱人之处是可以支持各种扩展功能:

如decouple各模块;deadlock free(利用routing algorithm, 使用多个virtual channel, circuit switching); flow control(使用credits); QoS(强力推荐TDM NoC,相比priority scheduling能提供hard guarantees); fault tolerance/resilience,容错机制(利用topology, additional mechanism);congestion management; GALS(全局异步局部同步,这点在多核系统中很重要,所有router可以是同步,但是每个router所连接的processing element与router异步,自成一个clock domain,这样可以动态调整每个模块的频率电压到合适值);等等。

 Mesh(网格型互联结构)用在了Tilera(做多核处理器闻名)公司的100核处理器芯片TILE-GX100。且mesh是很多片上互联结构的原型。

4.4 peer to peer

下图截自 凌明等编著的《嵌入式系统-从SOC芯片到系统》一书

5.疑问

synopsys的dw_AXI到底是peer-to-peer还是crossBar?两则何区别?

<think>好的,我现在需要帮用户分析他们提供的终端命令和输出内容。首先,用户执行了`sudo apt install --reinstall server-xorg-core`,看起来是想重新安装Xorg的核心组件。Xorg是Linux中的显示服务器,负责图形界面,所以用户可能遇到了显示问题,比如黑屏、分辨率不对或者驱动不兼容。 接下来,用户提到了一些包名,比如`chromium-codecs-ffmpeg-extra`和`gstreamer1.0-vaapi`,这些是多媒体相关的库,可能用户之前尝试安装或更新这些软件,但过程中出现了问题。注意到包名中有拼写错误,比如`1ibgstreamer-plugins-bad1.0-0`,正确的应该是`libgstreamer-plugins-bad1.0-0`,这可能导致安装失败,用户需要纠正这些错误。 输出的部分显示有多个软件源,包括`cn.archive.ubuntu.com`和`security.ubuntu.com`,说明用户可能更换了软件源镜像,或者是系统自动选择最快的镜像。但其中有一个拼写错误的源`ch.archive.ubuntu.com`,正确的应该是`cn.archive`,这可能导致部分包下载失败,需要检查`/etc/apt/sources.list`中的配置。 用户还运行了`sudo apt autoremove`,这通常用于清理不再需要的依赖包,但需要确认是否有重要包被误删。另外,用户尝试了`apt-get update --fix-missing`,这可能是因为之前的更新有缺失的仓库或错误,需要修复。 在输出的安装过程中,系统提示是否继续安装,用户输入了`y`,然后显示下载了几个包,包括`xserver-common`和`server-xorg-core`,版本号是`1.20.19`,属于Ubuntu 20.04的更新版本。这表明用户可能在修复Xorg的版本问题,或者应用安全更新。 最后,用户可能遇到了依赖关系问题,比如某些包需要特定版本的库,或者软件源配置错误导致无法正确获取包。需要检查所有软件源是否正确,并且没有重复或错误的条目。此外,建议用户运行`apt update`和`apt upgrade`来确保系统是最新的,再尝试重新安装Xorg相关包,同时注意包名的正确拼写。如果问题持续,可能需要检查日志文件,如`/var/log/apt/term.log`,查找具体的错误信息。</think>这个命令和输出信息涉及Ubuntu系统中Xorg显示服务器的重新安装过程。以下是分步骤解析: --- ### **步骤1:命令意图分析** 您执行的命令是: ```bash sudo apt install --reinstall server-xorg-core ``` - **目的**:重新安装Xorg显示服务器核心组件(通常用于修复图形界面问题) - **适用场景**:显示驱动异常、分辨率错误、Xorg配置损坏等情况 --- ### **步骤2:输出信息关键点解读** 1. **软件源地址**: - `cn.archive.ubuntu.com`:Ubuntu中国镜像源 - `security.ubuntu.com`:Ubuntu官方安全更新源 - 存在拼写错误源地址(如`ch.archive.ubuntu.com`需更正为`cn.archive`) 2. **软件包关联**: - 主安装包:`server-xorg-core`(版本`1.20.19`) - 依赖包:`xserver-common`、`xfonts-100dpi`、`xfonts-75dpi`等 - 错误包名:`1ibgstreamer-plugins-bad1.0-0`(应为`libgstreamer-plugins-bad1.0-0`) 3. **操作确认**: - 安装包大小:约1.37MB - 用户输入`[Y/n] y`确认安装 --- ### **步骤3:潜在问题与解决方案** #### **问题1:软件源配置错误** - **表现**:`ch.archive.ubuntu.com`拼写错误 - **修复方法**: ```bash sudo sed -i 's/ch.archive/cn.archive/g' /etc/apt/sources.list # 替换错误源 sudo apt update ``` #### **问题2:包名拼写错误** - **错误示例**:`1ibgstreamer-plugins-bad1.0-0`(首字母应为`lib`) - **解决方法**:使用正确包名重新安装: ```bash sudo apt install --fix-broken libgstreamer-plugins-bad1.0-0 ``` #### **问题3:依赖关系修复** - **推荐操作**: ```bash sudo apt --fix-broken install # 修复依赖关系 sudo apt autoremove # 清理无效依赖 ``` --- ### **步骤4:验证安装结果** 1. 检查Xorg版本: ```bash Xorg -version ``` 2. 查看日志验证安装: ```bash cat /var/log/apt/term.log | grep "server-xorg-core" ``` --- ### **补充建议** - 如果图形界面仍异常,尝试重建Xorg配置: ```bash sudo dpkg-reconfigure xserver-xorg ``` - 更新系统以获取最新修复: ```bash sudo apt update && sudo apt upgrade -y ``` 请按需选择操作步骤。若遇到具体错误提示,可提供详细信息进一步分析。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值