微处理器和多处理器片上系统MPSOC设计的新纪元

发布者:brian808090最新更新时间:2015-04-21 来源: eechina关键字:微处理器  片上系统  MPSOC 手机看文章 扫描二维码
随时随地手机看文章
可配置处理器标志着第四代微处理器设计的开始,这种技术更加适合片上系统SOC的设计。每一代处理器持续大约十年时间,每个时代的处理器适合当时那个时期的需要。大约在二十世纪七十年代出现了第一代处理器,这个时期的处理器设计只是简单地追求性能,从4位处理器到早期的16位和32位微处理器。这种性能的提升奠定了二十世纪八十年代个人计算机PC和工作站的基础。个人计算机和工作站的增长使得微处理器设计进入了二十世纪八十年代的第二代微处理器研制时期。精简指令集RISC设计时代发生在二十世纪九十年代。在这个时期,即使像X86这样坚定的复杂指令集CISC处理器也假装成精简指令集RISC体系结构。在最初的这三代处理器的成长和发展过程中,微处理器设计专家将处理器设计成固定的、单个的和可重用的模块。但是,在二十世纪九十年代随着专用集成电路ASIC和片上系统SOC制造技术的发展为微处理器设计进入第四代(即后RISC、可配置处理器)打下了坚实的基础。 

当今的系统开发工具已经非常先进,完全可以允许设计人员根据具体的应用目标任务来定制微处理器核。处理器定制可以在非常短的时间内,甚至是几分钟就可以根据具体应用完成片上系统处理器核的设计。由于根据具体任务来定制处理器的速度非常快,因此可配置处理器可以具有非常优异的高性能来构建片上系统的设计,并且经常用于快速建立一些功能模块,而这些功能模块如果采用人工RTL方式设计的话,则可能需要几个月的时间。正是由于可配置处理器技术的高性能和快速开发能力,使得许多最终产品在多个可配置处理器核的基础上实现了片上系统SOC(多处理器片上系统SOC或者简写为MPSOC)。这些最终产品的范围从最大和最小的网络路由器一直到诸如便携式摄像机、打印机和低成本视频游戏机等消费类电子产品。 

两种最新的开发技术已经嵌入到可配置处理器甚至片上系统SOC设计中,即全自动化的、专用指令集定制技术和对处理器内部执行部件的多口访问技术。前者允许片上系统设计人员更加专注系统体系结构方面的问题,而通过依赖自动化设计工具来完成某些单一功能模块以达到性能方面的目标。后者则永远克服了以前那种存在已久的总线瓶颈问题,而这种总线瓶颈问题从1971年第一个微处理器出现以来就一直阻碍微处理器性能的提高。 

自动化处理器定制 

十多年来,硬件设计人员一直在努力用C或者C++对系统进行描述进而转换成有效的硬件。最初的系统说明通常是用C或者C++写成的,因为采用这些高级语言描述的系统可以在廉价的PC上进行执行和评价。然而,即使是廉价的PC也不适合许多嵌入式系统的设计,尤其是在消费电子领域,因为其功耗太大。因此,设计人员开始希望找到一种工具来将用C或者C++写成的系统描述转换成硬件。 

许多像“行为综合”、“C语言硬件综合”和“ESL”等词汇描述的设计方法都有一些缺陷,因为它们都是试图解决在本质上很复杂的问题:用时序可执行语言写成的系统描述转换成并行互操作和非可编程的硬件模块。 

Tensilica的XPRES编译器采用一种更加简单、更加直接的方法来解决这一设计问题。XPRES编译器不是试图从头开始进行与应用相关的硬件设计,而是从一个完整的功能处理器核开始设计,然后以添加硬件执行部件和相应的机器指令的方式来增加硬件,以加速处理器上目标应用程序的执行速度。因此,XPRES编译器从一个正在工作的硬件(Xtensa微处理器核)开始设计,同时使得目标程序代码运行得更快。这种搜索的结果是完成一个微处理器的配置,此配置有一个性能/硬件开销的特性曲线,如图1所示。 



图1: XPRES编译器为设计者提供一系列微处理器配置。随着硅片面积的增加也使得与应用相关的系统性能得到提升。 

性能优化的三种技术途径 

XPRES编译器采用三种技术来建立优化的Xtensa处理器配置:操作数融合、单指令流多数据流SIMD(向量化)和FLIX(可变长度指令扩展)。操作数融合技术记录程序循环语句中简单操作出现的频度。XPRES编译器将这些指令序列合并成一条增强型指令,这种增强型指令通过减少循环内部的指令条数来加速程序代码的执行。图2表示由XPRES编译器产生的数据流操作,图中用灰色表示出融合操作。 



图2:由XPRES编译器产生的数据流图表示出一系列融合操作。当减法操作、取绝对值操作、加法操作和位域抽取操作融合成一条新的指令后,由XPRES编译器进行评估需要增加474个逻辑门。 [page]

应用程序中的许多循环语句对一个数据阵列执行相同的操作,XPRES编译器可以将这些循环语句进行向量化,建立一条由多个相同执行部件并行执行多个数据项的指令。对Xtensa处理器增加单指令流多数据流SIMD指令与Tensilica的XCC C/C++编译器是一致的,该编译器能够将应用程序代码中的内循环展开并且进行向量化。通过向量化可以加速循环语句的执行,这通常和增强型指令内部SIMD运算部件的序号有关。

XPRES编译器采用的第三种加速程序代码执行的技术是Tensilica的FLIX(可变长度指令扩展)技术。FLIX指令是一种类似于融合和单指令流多数据流SIMD指令的多操作指令。然而,FLIX指令包括多个独立的操作,而融合和单指令流多数据流SIMD指令则均为相关多操作。FLIX指令中的每一个操作都是和其它操作互相独立的,XCC C/C++编译器将彼此独立的操作压缩成一条FLIX格式的指令,而这种压缩后的指令能够显著加速程序代码的执行速度。 

采用可配置处理器进行多处理器SOC设计 

在当今的应用中,很少只用一个处理器就能满足系统的性能指标,即使采用面向目标应用的可配置处理器也很难做到。然而,多处理器MP指令集、高带宽接口和小面积使得在一个片上系统SOC设计中可以集成多个可配置处理器。 

片上系统SOC中处理器模块之间硬件互连机制的选择对系统性能和硅片成本产生很大影响,而且这些硬件互连机制必须直接支持多处理器MP系统设计的互连要求。消息传递软件通信机制直接影响到数据队列。类似地,共享存储器软件通信模式也影响到基于总线的硬件系统。可配置处理器可以提供系统以很大的灵活性,提供对共享设备和存储器进行访问所需的仲裁机制。共享存储器总线的基本拓扑结构有如下几种: 

1. 通过通用处理器总线访问系统全局存储器:微处理器设计一个通用接口以便实现多种总线事务处理。在读操作时,如果处理器认为相应的数据不在本地局部存储器(根据地址或者高速缓存CACHE缺失进行判断),那么处理器必须要进行全局存储器访问。处理器请求总线控制权,当控制权得到应答后,处理器通过总线发送读操作的目标地址。相应的设备(例如,存储器或者输入/输出接口)对地址进行译码,然后通过总线对处理器所需要的数据进行传送,如图3所示。 



图 3: 两个处理器通过总线共享存储器 

当两个处理器通过总线对全局共享存储器进行访问时,一个处理器获得总线控制权对数据进行写操作,另一个处理器就必须稍后才能获得总线控制权以便进行读操作。按照这种方式,每个字传输需要两个总线操作事务周期才能完成。该方法需要适度的硬件支持,并且具有较高的灵活性,因为全局存储器和输入/输出接口通过公共总线进行访问。然而,对全局存储器的使用却不好根据处理器和设备的数量进行度量,因为总线拥塞会使得访问时间变长和不可预测。 

2. 通过通用处理器总线对处理器本地局部存储器进行访问:可配置处理器可以允许局部数据存储器参与通用总线事务处理。这些处理器基本上是由本地的处理器使用,并且二者是紧密耦合的。然而,控制局部数据存储器的处理器可以按照总线从设备的方式进行操作,如图4所示。 



图4: 一个处理器通过总线访问第二个处理器的局部数据存储器 

第一个处理器和第二个处理器之间访问时间的不对称性可以保证push 通信,即当第一个处理器向第二个处理器发送数据时,它将数据通过总线写到第二个处理器的本地局部存储器。如果写操作经过缓冲器,那么第一个处理器不必等到写操作完成就可以继续执行后面的操作。因此,到第二个处理器数据传输的长时间延时就被隐藏了。 

3. 通过局部总线访问多口局部存储器:当数据流在处理器之间双向传输且对时延要求比较严格时,那么对任务间通信而言,采用本地共享数据存储器通常是最好的选择。每个处理器使用自己的本地数据存储器接口来访问共享存储器,如图5所示。存储器可以有两个物理访问端口(每个时钟周期可以访问两次存储器),或者通过一个简单的仲裁器来控制。 



图5:两个处理器共享局部数据存储器 

直接互连的数据端口 

处理器直接相连可以减少通信开销和时间。这种连接方式将数据从一个处理器的寄存器传送到另一个处理器的寄存器和执行功能部件。直接互连的一个简单例子如图6所示。当第一个处理器向输出寄存器写一个数值(通常作为计算的一部分)时,该值将自动出现在处理器的输出端口上。同样的数值可以立即输入到第二个处理器进行相应的数据操作。 



图 6:处理器到处理器之间通过端口直接进行访问 

数据队列 

任务之间通信的最高带宽机制是数据队列的硬件实现。一个数据队列可以使系统获得每个时钟周期传输一次的数据速率,或者在宽操作数位数的情况下可以达到每秒10GB的传输速率(每个操作数几十个字节,时钟速率几百兆赫MHz)。生产者和消费者之间的握手信号隐含在处理器之间的接口和数据队列的头信息和尾信息之中。 

专用处理器允许数据队列作为指令集扩展的一部分直接进行硬件实现。数据队列可以通过一条专门指令来说明,队列可以作为结果值的目的或者使用输入队列值作为源。这种形式的队列接口方式如图7所示,该队列允许用户建立一个新的数据值,或者每个队列接口使用一个时钟周期。 [page]



图 7: 硬件数据队列机制 

数据队列对任务间的性能有一定的影响。如果数据队列生产者和消费者速率高度一致,那么队列长度可以比较短。如果队列生产者或者消费者速率不同,那么需要设计深度队列来弥补二者之间的失配。 

由于处理器执行部件的队列接口对商用处理器核而言具有极其重要的特性,因此更加深入地对接口机制进行一些探讨是非常必要的。数据队列接口通过如下TIE语法格式添加到Xtensa LX处理器中: 

queue in|out 

上面语法格式定义了数据队列的名称、宽度和队列的方向。一个Xtensa LX处理器可以包含300多个队列,每个队列宽度可以高达1024位。设计人员可以采用数据队列来对处理器性能进行折中,即在快速、窄带处理器接口和慢速、宽带接口之间进行折中以获得系统高带宽和高性能的目的。 

图8为TIE队列和简单的Designware FIFO队列之间的连接,这种连接方式非常容易。TIE队列的push 和 pop操作由FIFO的队列空和队列满状态信号进行门控,这样可以使设计与Designware的 FIFO控制模式保持一致。 



图8:采用TIE队列的Designware同步FIFO示意图 (diag_n输入驱动为高且almost_full、 half_full、almost_empty和 error输出均未用) 

TIE队列可以和寄存器操作数、系统状态或者存储器接口那样直接为TIE指令提供输入和输出操作数。下面的TIE语法格式建立了一条新的指令,该指令对输入数据队列中的数据进行累加,然后送给寄存器文件。 

operation QACC {inout AR ACC} {in IQ1} { 

assign ACC = ACC + IQ1; 



图9表示TIE队列是如何像其它指令操作数那样在Xtensa LX处理器中使用的。 



图9:TIE队列作为指令操作数使用 

Xtensa LX处理器本身包括一个两项的数据缓冲器,用于缓冲系统设计人员定义的每个TIE队列。每个队列的两项数据缓冲器所占用的面积大大小于一个加载/存储处理单元。因此,TIE队列接口所占的处理器面积是完全受到设计人员所控制的,并且可以按照需要增大或者减小。 

数据流直达处理 

数据端口和数据队列与可配置处理器执行部件直接相连,这种互连允许处理器应用数据流直达技术进行处理,而那些应用在以前是为手工编写的RTL代码逻辑块预留的。将数据队列和输出队列接口与设计人员定义的执行部件相结合就可以建立一个在处理器内部由固件控制的处理模块,该模块可以从输入数据队列中读取数据,对这些数据执行计算,然后按照流水线方式每完成一个“输入-计算-输出”周期就将计算结果输出。图10表示一个简单的系统设计,该系统有两个256位的输入数据队列,一个256位的输出数据队列和一个256位的加法器/多路器执行部件。尽管该处理器扩展是在固件模式下进行控制的,但是其操作可以将处理器的存储器总线和加载/存储单元旁路以便可以获得同硬件一样的处理速度。 



图10:通过在可配置处理器中增加数据流直达处理模式来将执行部件和多个队列相结合 

即使在处理器扩展中使用大量的硬件,但在定义时也只是仅仅写如下四行TIE代码而已: 

queue InData1 256 in 

queue InData2 256 in 

queue OutData 256 out 

operation QADD {} { in InData1, in InData2, in SumCtrl, out OutData} { assign OutData = SumCtrl ? (InData1 + InData2) : InData1; } 

前三行代码定义了一个256位的输入队列和一个256位的输出队列,第四行定义了一条新的处理器指令QADD,该指令执行256位的加法运算或者将256位的数据从输入队列送到输出队列。通过TIE语言定义的指令告诉Xtensa处理器产生器自动为处理器增加相应的硬件,同时为处理器软件开发工具增添一条新指令。 

用于多处理器片上系统MPSOC设计的处理器核 

可配置处理器的出现使得片上系统SOC设计人员可以建立起一种崭新的且非常灵活的硬件模块构建方法。同传统的固定指令集体系结构ISA处理器相比,可配置处理器通过添加用户定制的执行功能部件、寄存器和寄存器堆以及专用通信接口能够获得很高的系统性能。 

自从1971年第一个微处理器研制成功至今已经30多年,由于受固定处理器核的束缚,导致可配置处理器的发明无法实现。对于二十一世纪的片上系统SOC设计而言,这些制约因素已经不再存在,而且这些过时的约束也不再限制系统设计人员对处理器的使用。
关键字:微处理器  片上系统  MPSOC 引用地址:微处理器和多处理器片上系统MPSOC设计的新纪元

上一篇:低功耗模式下微控制器时钟配置应用
下一篇:如何选择正确的芯片验证方法

推荐阅读最新更新时间:2024-03-16 13:59

2021年全球微处理器销售额将首次突破1000亿美元
据调研机构 IC Insights 在今日公布的最新报告,今年整体 MPU(微处理器)销售额将达 1037 亿美元,按年增长 14%,将首度突破 1000 亿美元,创下历史新高。 该报告还指出,手机应用处理器销售单价、出货量的强劲成长,导致了微处理器销售额在今年突飞猛进。 IC Insights 还预计,今年微处理器的出货量将达 25 亿颗,年增 11%,整体销售单价也将上涨 4%,此次报告也上调近 5 年微处理器市场的年复合成长率至 7.1%,预计 2025 年销售额将达 1278 亿美元。 IT之家了解答到,根据微处理器的应用领域,微处理器大致可以分为三类:通用高性能微处理器、嵌入式微处理器和数字信号处理器、微控制器
[半导体设计/制造]
e 络盟推出德州仪器参考设计,以简化 Xilinx MPSoC、SoC 和 FPGA
中国上海,2018年5月9日—全球电子元器件与开发服务分销商e 络盟推出两款德州仪器参考设计,为Xilinx® Zynq® UltraScale+™MPSoC系列产品的客户提供支持,让他们可以更轻松地运用这些设备开发电源解决方案,加速其创新应用开发。 这些参考设计为可扩展电源,可为基于 FPGA 的 Xilinx Zynq UltraScale+ 系列MPSoC器件供电。有了它们,客户在完全了解其电源需求之前即可轻松进行原型设计。这些设计从标准直流电源接收电力,并通过明确的Samtec插座端子板连接方式向 Xilinx 芯片组和 DDR 存储器的所有导轨供电。 适用于 Xilinx Zynq UltraScale+ZU2CG−
[半导体设计/制造]
基于AVR单片机的电动代步车控制器
本世纪将是一个人口老龄化程度越来越高的世纪,老年人和残疾人的护理将是社会的一个沉重负担。据老龄委统计结果显示,2004年底,中国60岁及以上老年人口为1.43亿,2014年将达到2亿,2026年将达到3亿,老龄人口的规模将越来越大。同时在我国人口中有8 296万残疾人,占全国总人口的比例为6.34%,其中肢体残疾人数2 412万,占29.07%。老年人和残疾人这个庞大的弱势群体需要一种适合他们心理和生理的代步车来满足日常生活及参与社会活动的需要。 随着科学技术的迅速发展和人民的生活水平的不断提高,手动轮椅逐渐被性能优越、操作简单、行驶安全的电动代步车所替代。电动代步车的出现除了能满足老年人或残疾人室内外活动的要求之外,还在医
[单片机]
基于AVR单片机的电动代步车控制器
IC Insights:2022年微处理器销售额将增长12%
根据 IC Insights 更新的数据,尽管今年经济困难重重,但由于平均售价(ASP)的提高,预计2022年微处理器(MPU)总销售额将增长近12%,达到创纪录的1148亿美元。今年MPU总出货量仅增长3%,继2021年和2020年分别增长6%和5%之后,这将推动近250万个处理器销量的历史新高。 第二季度更新表示,继去年平均价格增长7%和2020年增长10%之后,预计2022年MPU收入将受到ASP 增长(8%)的推动。 2021年,五家最大的微处理器供应商的市场份额合计达到全球1027亿美元MPU销售额的86%。接下来的五家最大的MPU供应商(英伟达、三星、紫光展锐、海思和恩智浦)合计占4.3%。 值得注意的是,
[嵌入式]
IC Insights:2022年<font color='red'>微处理器</font>销售额将增长12%
基于ARM微处理器和Linux的无线气象数据通
自动气象站数据采集器一般基于单片机或PC/104总线控制器设计,具有与PC兼容性好、功耗低、体积紧凑等特点,然而如何设计出功能强大,网络传输功能强的自动气象站数据采集器,满足现代气象检测的要求,是一个值得研究的课题。 文中基于ARM微处理器和Linux操作系统平台,借助前端无线传感器网络的数据输入,利用嵌入式Qt的开发优势并设计数据通信格式,完成无线气象数据通信系统的设计,实现了数据的可靠传输。为天气预报、科学研究、气象灾害预警等提供实时的气象观测数据。 1 无线气象数据通信系统的基本组成 如图1所示,无线气象数据通信系统主要由无线传感器网络节点、协调器、数据通信器(数据通信器以S3C2440AL为核心)、远程服务器
[单片机]
基于ARM<font color='red'>微处理器</font>和Linux的无线气象数据通
ARM正式加盟Linux基金会 将参加LinuxCon大会
  日前,英国微处理器和微控制器制造商 ARM 公司宣布正式加盟 Linux 基金会。 Linux 负责销售和开发者计划的副总裁Amanda McPherson在Liunx基金会上表示,“通过加入 Linux 基金会后, ARM 将会证明其对开放标准和 Linux 的承诺”。   截止今天, ARM 已经销售超过1000亿个用于移动设备的 ARM 处理器,其中有许多是运行 Linux 系统的。 ARM 公司负责市场营销的副总裁Ian Drew表示,“加入 Linux 基金会是很自然地一步,公司可以获得 Linux 社区一些先进的创新技术,已经与此相关的丰富的计算经验”。    ARM 公司一直是 Linux 核心产品的主要
[嵌入式]
英飞凌推出AIROC™ CYW20820蓝牙®和低功耗蓝牙®片上系统
英飞凌推出AIROC™ CYW20820蓝牙®和低功耗蓝牙®片上系统,实现灵活、低功耗及高性能的连接 【2022年6月17日,德国慕尼黑讯】英飞凌科技股份公司将推出 AIROC™ CYW20820蓝牙® 和低功耗蓝牙®片上系统(SoC) ,进一步壮大其AIROC蓝牙系列的产品阵容。AIROC CYW20820 蓝牙和低功耗蓝牙片上系统,专为物联网应用而设计,符合蓝牙5.2核心规范。它可支持家居自动化以及传感器的丰富应用场景,包括医疗、家居、安防、工业、照明、蓝牙Mesh网络以及其他需要采用低功耗蓝牙或双模蓝牙连接的物联网应用。 AIROC™ CYW20820 AIROC CYW20820 蓝牙和低功耗蓝牙片上系统能
[物联网]
英飞凌推出AIROC™ CYW20820蓝牙®和低功耗蓝牙®<font color='red'>片上</font><font color='red'>系统</font>
德州仪器针对 ZigBee 无线传感器网络推出业界首款定位检测片上系统
        高集成度器件可准确计算网状网络中的节点位置 2007 年 6 月 18 日,北京讯 日前,德州仪器 (TI) 宣布推出业界首款带硬件定位引擎的片上系统 (SoC) 解决方案CC2431,以满足低功耗 ZigBee∕IEEE 802.15.4 无线传感器网络应用的需求。这款来自Chipcon 产品系列的器件可满足多种应用要求,其中包括资产和设备跟踪、库存控制、病患监护、远程控制、安全监控网络等应用,此外,TI 领先的 ZigBee 协议栈 Z-Stack 还提供有关支持。(更多详情,敬请访问: http://www.ti.com/cc2431-pr 。) CC2431 建立在业界首款针对低功耗 RF 应用的 So
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved