导航:首页 > 源码编译 > 编译器基础架构SOC

编译器基础架构SOC

发布时间:2022-10-25 12:36:12

‘壹’ 浅谈多核心CPU和SoC芯片及其工作原理

姓名:吕红霞;学号:20011210203;学院:通信工程学院

转自https://mp.weixin.qq.com/s/rULXlihPLhZCjnGhbMbCMg

【嵌牛导读】 本文讲解了多核心CPU和SoC芯片及其工作原理

【嵌牛鼻子】 多核CPU,进程,线程

【嵌牛提问】 现在的CPU或SoC基本都是在单芯片中集成多个CPU核心,形成通常所说的4核、8核或更多核的CPU或SoC芯片。为什么要采用这种方式?多个CPU 核心在一起是如何工作的?CPU核心越多就一定越好吗?

【嵌牛正文】

要说明什么是多核心CPU或SoC芯片,首先要从CPU核心(Core)说起。我们知道,CPU是中央处理器(Central Processing Unit)的英文简称,它具有控制和信息处理的能力,是电脑和智能设备的控制中枢。如果把传统CPU芯片中的封装和辅助电路(例如引脚的接口电路、电源电路和时钟电路等)排除在外,只保留完成控制和信息处理功能的核心电路,这部分电路就是 CPU核心 ,也简称CPU核。一个CPU核心基本上是一个完全独立的处理器,它可以从内部存储器中读取指令,并执行指令指定的控制和计算任务。

如果把 一个 CPU核心和相关辅助电路封装在一个芯片中,这个芯片就是传统的 单核心CPU芯片 ,简称单核CPU。如果把 多个 CPU核心和相关辅助电路封装在一个芯片中,这个芯片就是 多核心CPU芯片 ,简称多核CPU。当然,多核心CPU芯片会包含更多的辅助电路,以解决多个CPU核心之间的通信和协调问题。

如果在多核心CPU芯片中再集成一些其它功能部件和接口电路,就形成了完整的系统,那么这个芯片就变成了 多核心SoC芯片 了,简称多核SoC。在不严格区分的情况下,SoC也可以称为CPU。

发展多核心CPU的初心源于“人多力量大”的简单道理。从这个意义上来看,当初芯片集成度不高的时候,Inteli8086 CPU和i8087协处理器应该算是多核心CPU的雏形,是 多芯片协作形成了一个处理核心 ,需要采取许多技术来解决CPU和协处理器之间的合作、协作问题。

今天芯片的集成度很高,单芯片中集成几个甚至几十个CPU核心已不在话下,但还是不能满足超级计算的需要,需要在超级计算机中使用成千上万块高性能CPU芯片一起合作、协作,这可以看作 芯片内 多核心、 芯片外 多芯片的多核心CPU集群。

CPU芯片从外观上看是一块芯片,但打开封装来看,内部可能只有一块裸片(die),也可能是多块裸片封装在一起,称为 多芯片模组 (Multichip Mole,简称 MCM ),如图2b所示。但从软件角度来看,封装形式无关紧要,无论是芯片内还是芯片外,CPU核心多少才是最重要的,它们决定着系统的并行运算和处理能力,它们的主频频率和核心之间通信方式决定了系统的处理速度。

另外,今天的桌面计算机CPU、手机SoC中还集成了许多图形处理器(GPU)核心、人工智能处理器(APU)核心等,这些是否也应该算作多核心CPU和SoC中的“核心”呢?我觉得从广义角度上应该算吧。

因此,要回顾多核心CPU的发展,大致可以分为 1 .雏形期; 2 . 单芯片单核心; 3 .单芯片多核心; 4 .单核心多芯片; 5 .多核心多芯片几种情形。这些发展阶段不一定按照这个前后顺序,可能有交叉时期,也可能有前后颠倒的情形。第2和第3种情形一般是应用在桌面计算机、智能手机等移动终端上的CPU芯片,第4和第5种是应用在服务器和超级计算机上的CPU芯片。本文限于篇幅和主题集中的需要,主要探讨第3种 单芯片多核心 的情况,这种情况下的CPU是 单芯片多处理器 (Chip Multi Processors,简称 CMP )模式。

1971 ~2004年,单核心CPU一路独行 。Intel公司1971年推出全球首款CPU芯片i4004,直到2004年推出超线程的Pentium 4 CPU系列,期间共33年时间。在这期间,CPU芯片很好地沿着摩尔定律预示的规律发展,沿着集成度不断翻倍、主频不断提升、晶体管数量快速增加的道路前进,这是一条单核心CPU不断迭代升级的发展之路。

但是,当晶体管数量大幅增加导致功耗急剧增长,CPU芯片发热让人难以接受,CPU芯片可靠性也受到很大影响的时候,单核心CPU发展似乎到了穷途末路。摩尔定律的提出者 戈登.摩尔 也依稀觉得“尺寸不断缩小”、“主频为王”这条路子即将走到尽头。2005年4月他曾公开表示,引领芯片行业接近40年的摩尔定律将在10~20年内失效。

其实,早在上世纪90年代末,就有许多业界人士呼吁用CMP技术实现的多核心CPU替代单线程单核心CPU。IBM、惠普、Sun等高端服务器厂商,更是相继推出了多核心服务器CPU。但是,由于服务器CPU芯片价格太高、应用面较窄,并未引起大众广泛关注。

2005年初AMD抢先推出了64位CPU芯片,并率先Intel发表声明保证其64位CPU的稳定性和兼容性,Intel才想起了利用“多核心”这一武器进行“帝国反击战”。2005年4月,Intel仓促推出简单封装的2核心Pentium D和Pentium4至尊版840。之后不久,AMD也发布了双核心皓龙(Opteron)和速龙(Athlon)CPU芯片[9]。

2006 年被认为是多核心CPU的元年 。这年7月23日,Intel基于酷睿(Core)架构的CPU发布。11月,Intel又推出了面向服务器、工作站和高端PC机的至强(Xeon)5300和酷睿2双核心和4核心至尊版系列CPU。与上一代台式机CPU相比,酷睿2双核心CPU在性能方面提高40%,功耗反而降低40%。

作为对Intel的回应,7月24日,AMD宣布对双核Athlon64 X2处理器进行大降价。两大CPU巨头在宣传多核心CPU时,都会强调其节能效果。Intel发布的低电压版4核心至强CPU功耗仅为50瓦。而AMD的“Barcelona”4核心CPU的功耗也没超过95瓦。在Intel高级副总裁Pat Gelsinger看来,摩尔定律还是有生命力的,因为“CPU从单核心到双核心,再到多核心的发展,可能是摩尔定律问世以来,CPU芯片性能提升最快的时期” [9]。

CPU 技术发展要比软件技术发展更快 ,软件对多核心CPU的支持相对滞后。如果没有操作系统的支持,多核心CPU的性能提升优势不能发挥出来。同样运行Win7的情况下,4核心CPU和8核心CPU所带来的差异化体验并不明显,导致这种情况的原因是Win7根本没有对8核心CPU进行相应的优化。而在Win10出来后,8核心CPU所带来的体验速度就明显要比4核心处理器快很多,这源于微软在Win10上对多核心CPU的支持做了优化。而且微软还将在Win10上针对多核心CPU做进一步适配优化。

目前 核心最多的服务器CPU 有Intel至强铂金9282,56核心112线程,引线焊球多达5903个,估计售价约4万美元;AMD霄龙 7H12,64核心128线程,散热设计功耗280W。这两款CPU都需要采用液冷散热。 核心最多的台式机CPU 有Intel酷睿i97980XE至尊版,18核心36线程,散热设计功耗165W,售价1999美元;AMD的Ryzen9 5950X,16核心32线程,散热设计功耗105W,售价6049元。 核心最多的手机SoC 有Apple M1、麒麟9000、高通骁龙 888等。多核心CPU或者多核心SoC似乎成为一种潮流,但是不是核心越多CPU就越好呢?在不考虑其它因素影响,单从技术和集成度考虑的话,有人甚至预测到2050年,人们可能会用上1024个核心的CPU芯片。

我们先从任务处理的角度来看这个问题。如果把CPU处理的事情叫做任务的话,以前的CPU只有一个核心,CPU只会“一心一用”地处理一个任务,干完一件事再接着干下一件事。专业上称之为 串行单任务处理 。这在DOS操作系统的时代是合适的,这个时期对CPU的追求只有一条,那就是处理速度要尽可能地快。在Windows操作系统出现后,出现了多任务的处理需求,要求CPU可以“一心多用”,同时干多件事情。专业上称之为 分时多任务处理 。这个时期对CPU的追求 一是 处理速度要尽可能地快, 二是 同时可处理的任务尽可能地多。其实这种“一心多用”的处理方法是把时间分配给了多个任务,从宏观上看CPU处理的任务多了,但从某项任务来看CPU对该项任务的处理速度变慢了。

要实现CPU处理的任务更多、处理速度更快,人们自然想到了在芯片中集成多个CPU核心,采用“多心多用”的方式处理事务,因而就出现了多核心CPU的需求,而这种需求在服务器CPU应用方面显得尤为迫切。

我们再从提高CPU时钟频率,加快处理速度的角度来看这个问题。无论是“一心一用”、“一心多用”、还是“多心多用”,只要提高了CPU的时钟频率,CPU的处理速度都会加快。如论是单任务还是多任务,就会在更短时间完成任务。因此,CPU发展的历史就是随着芯片技术的进步,CPU的时钟频率不断提升的历史,从早期的MHz级别不断提升到目前的GHz级别,大约提升了1000倍左右。无论是单核心还是多核心,CPU时钟频率是人们选用CPU芯片的重要指标。

过去很长一段时间里,随着Intel和AMD CPU速度越来越快,x86操作系统上的软件的性能和速度自然会不断提高,系统整机厂家只要对现有软件作轻微设置就能坐享电脑系统整体性能提升的好处。

但是随着芯片工艺沿着摩尔定律发展,CPU集成度提高、晶体管密度加大,时钟频率提升,直接导致CPU芯片的功率不断增大,散热问题成为一个无法逾越的障碍。据测算,CPU主频每增加1GHz,功耗将上升25瓦,而在芯片功耗超过150瓦后,现有的风冷散热将无法满足要求。2003年前后Intel推出的主频为3.4GHz的Pentium4至尊版CPU芯片,最高功耗已达135瓦,有人给它送了一个“电炉”的绰号,更有好事者用它来玩煎蛋的游戏。现在的服务器CPU芯片Xeon W-3175标称功耗为255W,默认频率实测能达到380W,超频的话甚至会突破500W,必须采用高端水冷系统来降温。

所以,功耗极限制约着CPU频率的提升。下图是CPU功率密度随时间的变化趋势图,IntelPentium之后的CPU芯片,由于晶体管密度和时钟频率提升,CPU芯片的功率密度陡然上升,CPU产生的热量将会超过太阳表面。

综上所述,追求多任务处理功能,追求处理速度提升是CPU芯片设计的两大目标。以提升CPU时钟频率而加快处理速度又受到CPU功耗极限的制约,多核心CPU芯片成为解决上述矛盾的必由之路。目前,多核心CPU和SoC已成为处理器芯片发展的主流。

与单核心CPU相比,多核心CPU在体系结构、软件、功耗和安全性设计等方面面临着巨大的挑战,但也蕴含着巨大的潜能。本文参考了后附的参考资料1,对多核心CPU用到的技术作如下简单介绍。

1. 超线程技术

一个传统CPU核心只有一个运算处理单元(Processing Unit,简称PU)和一个架构状态单元(Architectual State,简称AS),在同一时间只能处理一个软件线程(Thread)。采用了 超线程 (Hyper-Threading,简称 HT )技术的CPU核心中包含一个PU和两个AS,两个AS共用这个PU。软件在CPU核心上运行时,AS与软件线程对接,并把线程的任务分配到PU中的相关单元中。所以,两个AS就可以处理两个软件线程。

用生产车间打个比方,PU是生产部门,有几台机床用于生产;AS是跟单员,他同时只能跟一个任务订单;软件线程好比是任务订单。如果生产车间只有一个AS时,这个车间同时只能处理一个任务订单,PU的有些机床有事干,有些机床可能无事干而闲置。如果有两个AS时,就能处理两个任务订单,并把任务分配到不同的机床上去完成。

所以,具有超线程的CPU核心的集成度增加量不大,但有两个AS后使它看起来像两个逻辑的CPU核心,就可以同时处理两个软件线程,大约可以提高40%的处理能力。所以,我们经常可以看到CPU芯片广告,说某多核心CPU芯片是N个核心,2×N个线程,就是采用了超线程带来的好处。否则,如果没有采用超线程技术的话,多核心CPU芯片参数就只能写成N个核心,N个线程。下图给出了2核心CPU无超线程和有超线程的示意图。

2. 核心结构研究

多核心CPU的结构分成 同构 (homogeneous)多核和 异构 (heterogeneous)多核两类,同构多核是指芯片内多个CPU核心的结构是相同的,而异构多核是指芯片内多个CPU核心的结构各不相同。面对不同的应用场景,研究核心结构的实现方式对CPU整体性能至关重要。核心本身的结构,关系到整个芯片的面积、功耗和性能。怎样继承和发展传统CPU的成果,也直接影响多核的性能和实现周期。同时,核心所用的指令系统对系统的实现也是很重要的,多核心采用相同的指令系统还是不同的指令系统,能否运行操作系统等,也是设计者要研究的重要问题。

3.Cache 设计技术

CPU和主存储器之间的速度差距对多核心CPU来说是个突出的矛盾,因此必须使用多级Cache来缓解。可分为共享一级Cache、共享二级Cache和共享主存三种方式。多核心CPU一般采用共享二级Cache的结构,即每个CPU核心拥有私有的一级Cache,并且所有CPU核心共享二级Cache。

Cache本身的体系结构设计直接关系到系统整体性能。但是在多核心CPU中,共享Cache或独有Cache孰优孰劣、是否在片上建立多级Cache、以及建立几级Cache等,对整个芯片尺寸、功耗、布局、性能以及运行效率等都有很大的影响,需要认真研究和慎重对待。同时还要考虑多级Cache引发的一致性问题。

4. 核心间通信技术

多核心CPU的各核心同时执行程序,有时需要在核心之间进行数据共享与同步,因此硬件结构必须支持CPU核心间的通信。高效通信机制是多核心CPU高性能的重要保障,比较主流的片上高效通信机制有两种, 一种 是基于总线共享的Cache结构,另 一种 是基于片上的互连结构。

总线共享Cache结构 是指每个CPU核心拥有共享的二级或三级Cache,用于保存比较常用的数据,并通过核心间的连接总线进行通信。它的优点是结构简单,通信速度高,缺点是基于总线的结构可扩展性较差。

片上互连的结构 是指每个CPU核心具有独立的处理单元和Cache,各个CPU核心通过交叉开关电路或片上网络等方式连接在一起。各个CPU核心间通过消息进行通信。这种结构的优点是可扩展性好,数据带宽有保证,缺点是硬件结构复杂,且软件改动较大。

5. 总线设计技术

传统CPU中,Cache不命中或访问存储器事件都会对CPU的执行效率产生负面影响,而总线接口单元(BIU)的工作效率会决定此影响的程度。在多核心CPU中,当多个CPU核心同时要求访问内存,或多个CPU核心内私有Cache同时出现Cache不命中事件时,BIU对这些访问请求的仲裁机制效率,以及对外存储访问的转换机制的效率决定了多核心CPU系统的整体性能。

6. 针对多核心的操作系统

对于多核心CPU,优化操作系统的 任务调度 是提升执行效率的关键。任务调度算法有 全局 队列调度和 局部 队列调度之分。前者是指操作系统维护一个全局的任务等待队列,当系统中有一个CPU核心空闲时,操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。其优点是CPU核心利用率较高。后者是指操作系统为每个CPU核心维持一个局部的任务等待队列,当系统中有一个CPU核心空闲时,便从该核心的任务等待队列中选取就绪任务来执行。其优点是有利于提高CPU核心局部Cache命中率。大多数的多核心CPU操作系统采用的是基于全局队列的任务调度算法。

多核心CPU的中断处理和单核CPU有很大不同。CPU核心之间需要通过中断方式进行通信和协调,所以,CPU核心的本地中断控制器和仲裁各CPU核心之间中断的全局中断控制器需要封装在芯片内部。

另外,多核心CPU操作系统是一个多任务系统。由于不同任务会竞争共享资源,因此需要系统提供同步与互斥机制。而传统的用于单核心CPU的解决机制并不能满足多核心的情况,需要利用硬件提供的“读-修改-写”的原始操作或其他同步互斥机制来进行保证。

7. 低功耗设计技术

每两三年CPU晶体管密度和功耗密度都会翻倍。低功耗和热优化设计已经成为多核心CPU设计的重点。需要同时在操作系统级、算法级、结构级、电路级等多个层次上考虑。每个层次上实现的效果不同,抽象层次越高,功耗和温度降低的效果越明显。

8. 可靠性及安全性设计技术

在今天的信息社会,CPU的应用无处不在,对CPU的可靠性和安全性提出了更高要求。一方面多核心CPU复杂性提高,低电压、高主频、高温度对维持芯片安全运行带来挑战。另一方面,来自外界恶意攻击越来越多,手段越来越先进,高可靠、安全性设计技术越来越受到重视。

要弄明白多核心CPU是如何工作,要从应用程序、操作系统和CPU核心一起来分析。Windows操作系统作为任务调度者,按照 进程 (Process)和 线程 (Thread)为应用程序(Program)分配程序执行的硬件资源——CPU核心。一个进程对应一个应用程序,但是一个应用程序可以同时对应多个进程,通过多个进程来完成这个程序的执行。

应用程序未执行的时候是“静态”的,程序一旦被用户启动执行,就被操作系统接管变成“动态”的了。操作系统按照一个一个的 进程 管理着一批被用户启动了的程序。所以一个 进程 可以看作是一个“执行中的程序”,进程中包括了由操作系统分配给这个程序的基本资源。

一个进程又被细分为多个 线程 ,只有 线程 才能通过操作系统获得CPU核心的使用权限来让自己运行。只包含一个线程的进程可以叫做 单线程 程序,如果包含多个线程的进程,就可以叫做 多线程 程序了。

程序的线程要想获得CPU时间,必须进入操作系统的线程队列排队,经过操作系统调度之后,获得某个CPU核心的执行时间。操作系统对CPU核心的分派是非常复杂的过程,谁也无法用简短的文字说清楚具体详细的过程。以下按单核心CPU和4核心CPU两种情况来示意说明,程序进程的一个个线程,是如何分派到CPU核心上进行执行的[7]。

如果CPU是单核心的话,而且没有采取超线程技术,线程队列就只有1个,线程的选择也只有1个。如果采取了超线程技术,单核心就扩展成2个逻辑核心,线程队列就有2个,线程的选择就有2个。

如果站在多核心CPU角度看,每个CPU核心不断从操作系统收到要执行的软件线程,按照程序指令去完成规定任务,它可能要使用存储器、运算器、输入输出等部件,还要与其它CPU核心进行通信和传递数据,完成任务后还要报告。这些过程可看成一个一个的事件,都要通过事件中断处理部件来协调。多核心CPU的硬件调度处理模式大致有三种[8][18]。

1. 对称多处理 (Symmetric Multi-Processing,简称 SMP )是目前使用最多的模式。在SMP模式下,一个操作系统同等地管理着各个CPU核心,并为各个核心分配工作负载。目前,大多数的操作系统都支持SMP模式,例如Linux,Windows,Vxworks等。另外,这种模式通常用在同构多核CPU上,因为异构多核CPU的结构不同,实现SMP比较复杂。

2. 非对称多处理 (Asymmetric Multi-Processing,简称 AMP )是指多个核心相对独立地运行着不同的任务,每个核心可能运行不同的操作系统或裸机程序,或者不同版本的操作系统,但是有一个 主导 的CPU核心,用来控制其它 从属 的CPU核心以及整个系统。这种模式大多情况是异构多核心CPU。例如MCU + DSP,MCU +FPGA等。当然,同构多核心CPU也可以用。

3. 边界多处理 (Bound Multi-processing,简称 BMP )与SMP基本相同,唯一区别是开发者可以定义某个任务仅在某个CPU核心上执行。

以上只是原理性的简单介绍,如果要了解多核心CPU的硬件调度原理和实现细节,恐怕只能打进Intel或AMD公司内部,才能了解更多技术详情。

多核心CPU中的核心是否越多越好,多CPU系统中的CPU芯片是否也越多越好?同样条件下是否具有超线程就比不具有超线程的好?回答是仁者见仁,智者见智。主要是要分清用在哪些场合,不能一概而论。

首先,多核心CPU或者多CPU之间需要同步和调度,这是以时间开销和算力损耗为代价的。如果CPU核心数或者CPU芯片数增加对系统处理能力提升是加分项的话,同步和调度带来的时间开销和算力损耗就是减分项。如果加分大于减分,而且成本增加可接受的话,则方案是可行的,否则就是不值当的方案。系统方案的评判除了要考虑CPU核心数量以外,还要考虑操作系统的差异、调度算法的不同,应用和驱动程序特点等因素,它们共同影响着系统的处理速度。以下是一些文章的讨论观点。

1 . CPU核心越多,执行速度不一定越快。这里说的是“不一定”,因为一个线程可能要等待其它线程或进程完成后,才能轮到它继续执行。在它等待别的线程或进程的时候,即便排队队列轮到了它,它也只能放弃运行权利而继续等待,让队列后续线程超过它在CPU上执行。对它这个线程的程序来说是变慢了,但对系统来说,它起码它让开了位置让其它线程继续运行。多核心CPU肯定可以加速批量进程的执行,但对某个进程或者某类型的程序来说,未必是最快的。

2 .智能手机要向用户提供优秀的使用体验,不仅仅是靠CPU性能一个方面。除了CPU核心数这个因素以外,还应包括决定通信质量的基带芯片的性能,再加上GPU的性能、游戏和VR应用性能等。系统综合性能好才是真的好。

3 .联发科2015年推出10核心、3重架构等手机SoC芯片技术,后来又开发了10核心、4重架构helio X30,通过多重架构的方式来降低功耗。虽然联发科在多核心SoC方面的技术优势是毋庸置疑,但是高通在2015年底推出了仅有四个核心的骁龙820芯片,苹果手机较早使用的SoC芯片也不过是双核心而已。这些都表明,对于智能手机而言,多核心CPU或SoC的意义到底大不大,不可绝对断言,需要从系统角度分析才能得出正确结论。

结语 :多核心CPU和SoC是为了满足整机系统对处理能力和处理速度不断提升的需求,在单核心CPU沿着摩尔定律向前发展,受到了芯片功率极限阻碍时,人们不得不选择的一种突破路线。多核心CPU推动着操作系统的更新和升级,操作系统又决定了多核心CPU效能的发挥。多核心CPU技术的难点是多核心之间的信息传递、数据同步和任务调度等。系统性能优劣不能只考虑CPU核心数量,还要考虑操作系统、调度算法、应用和驱动程序等。多核心CPU技术和FinFET等3D芯片技术可以看作是延续摩尔定律生命的两大关键技术。

‘贰’ 单片机和soc有什么区别

单片机和soc的区别::
MCU,即微控制器,是以前的一种做法,类似于单片机,只是集成了一些更多的功能模块,
它本质上仍是一个完整的单片机,有处理器,有各种接口,所有的开发都是基于已经存在的系统架构,应用者要做的就是开发软件程序和加外部设备。
SOC,是个整体的设计方法概念,它指的是一种芯片设计方法,集成了各种功能模块,每一种功能都是由硬件描述语言设计程序,然后在SOC内由电路实现的;
每一个模块不是一个已经设计成熟的ASIC“器件”,只是利用芯片的一部分资源去实现某种传统的功能。这种功能是没有限定的,可以是存储器,当然也可以是处理器,如果这片SOC的系统目标就是处理器,那么做成的SOC就是一个MCU;
如果要做的是一个完整的带有处理器的系统,那么MCU就是整个SOC中的一个模块,一个IP。
SOC可以做成批量生产的通用器件,如MCU;也可以针对某一对象专门设计,可以集成任何功能,不像MCU那样有自身架构的限定。
它的体积可以很少,特殊设计的芯片可以根据需要减少体积、降低功耗,在比较大的范围内不受硬件架构的限制(当然,它也是会受芯片自身物理结构的限制,如晶圆类型、大小等)。
SOC的一大特点就是其在仿真时可以连同硬件环境一起仿真,仿真工具不只支持对软件程序的编译调试,同时也支持对硬件架构的编译调试,如果不满意硬件架构设计,想要加一个存储器,或是减少一个接口都可以通过程序直接更改,这一点,MCU的设计方法是无法实现的,MCU的方法中,硬件架构是固定的,是不可更改的,多了只能浪费,少了也只能在软件上想办法或是再加,存储空间不够可以再加,如果是接口不够则只能在软件上想办法复用。仿真之后可以通过将软、硬件程序下载到FPGA上进行实际硬件调试,以便更真实地进行器件测试。
如果硬件调试成功后直接投片生产成“固定结构的芯片”,则其为普通的SOC;如果其硬件就是基于FPGA的,也就是说它是“用FPGA做为最终实现”的,它在以后也可以随时进行硬件升级与
调试的,叫它为SOPC的设计方法,所以说SOPC是SOC的一种解决方案。
SOPC设计灵活、高效,且具有成品的硬件可重构特性(SOC在调试过程中也可硬件重构),的适用性可以很广,针对不同的对象,它可以进行实时的结构调整,如减少程序存储空间、增加接口数目等,这一附加价值是任何固定结构IC所无法具备的,但它的价格可能会比批量生产的固定结构IC要贵得多。

‘叁’ 集成电路设计、VLSI、SoC、FPGA 等的区别 计算机系统结构 的研究分支

1、包含范围不同

总体来说,集成电路设计的范围较为广泛,包含了各种电路设计,而其他的则被包含在里面。

集成电路设计是指以集成电路、超大规模集成电路为目标的设计流程。集成电路设计涉及对电子器件、器件间互连线模型的建立。所有的器件和互连线都需安置在一块半导体衬底材料之上,这些组件通过半导体器件制造工艺(例如光刻等)安置在单一的硅衬底上,从而形成电路。

2、各自所指的电路不同

VLSI是超大规模集成电路的简称,指几毫米见方的硅片上集成上万至百万晶体管、线宽在1微米以下的集成电路。

SoC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。

FPGA是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

(3)编译器基础架构SOC扩展阅读

集成电路设计硬件实现

对于不同的设计要求,工程师可以选择使用半定制设计途径,例如采用可编程逻辑器件(现场可编程逻辑门阵列等)或基于标准单元库的专用集成电路来实现硬件电路;也可以使用全定制设计,控制晶体管版图到系统结构的全部细节。

1、全定制设计

这种设计方式要求设计人员利用版图编辑器来完成版图设计、参数提取、单元表征,然后利用这些自己设计的单元来完成电路的构建。

通常,全定制设计是为了最大化优化电路性能。如果标准单元库中缺少某种所需的单元,也需要采取全定制设计的方法完成所需的单元设计。

2、半定制设计

与全定制设计相对的设计方式为半定制设计。简而言之,半定制集成电路设计是基于预先设计好的某些逻辑单元。例如,设计人员可以在标准组件库(通常可以从第三方购买)的基础上设计专用集成电路,从中选取所需的逻辑单元(例如各种基本逻辑门、触发器等)来搭建所需的电路。

也可以使用可编程逻辑器件来完成设计,这类器件的几乎所有物理结构都已经固定在芯片之中,仅剩下某些连线可以由用户编程决定其连接方式。与这些预先设计好的逻辑单元有关的性能参数通常也由其供应商提供,以方便设计人员进行时序、功耗分析。在半定制的现场可编程逻辑门阵列上实现设计的优点是开发周期短、成本低。

参考资料来源:网络—集成电路设计

参考资料来源:网络—VLSI

参考资料来源:网络—SoC

参考资料来源:网络—FPGA

‘肆’ MCU,SOC是什么东西

MCU,即微控制器,是以前的一种做法,类似于单片机,只是集成了一些更多的功能模块,它本质上仍是一个完整的单片机,有处理器,有各种接口,所有的开发都是基于已经存在的系统架构,应用者要做的就是开发软件程序和加外部设备。
SOC,是个整体的设计方法概念,它指的是一种芯片设计方法,集成了各种功能模块,每一种功能都是由硬件描述语言设计程序,然后在SOC内由电路实现的;每一个模块不是一个已经设计成熟的ASIC“器件”,只是利用芯片的一部分资源去实现某种传统的功能。这种功能是没有限定的,可以是存储器,当然也可以是处理器,如果这片SOC的系统目标就是处理器,那么做成的SOC就是一个MCU;如果要做的是一个完整的带有处理器的系统,那么MCU就是整个SOC中的一个模块,一个IP。SOC可以做成批量生产的通用器件,如MCU;也可以针对某一对象专门设计,可以集成任何功能,不像MCU那样有自身架构的限定。它的体积可以很少,特殊设计的芯片可以根据需要减少体积、降低功耗,在比较大的范围内不受硬件架构的限制(当然,它也是会受芯片自身物理结构的限制,如晶圆类型、大小等)。
SOC的一大特点就是其在仿真时可以连同硬件环境一起仿真,仿真工具不只支持对软件程序的编译调试,同时也支持对硬件架构的编译调试,如果不满意硬件架构设计,想要加一个存储器,或是减少一个接口都可以通过程序直接更改,这一点,MCU的设计方法是无法实现的,MCU的方法中,硬件架构是固定的,是不可更改的,多了只能浪费,少了也只能在软件上想办法或是再加,存储空间不够可以再加,如果是接口不够则只能在软件上想办法复用。仿真之后可以通过将软、硬件程序下载到FPGA上进行实际硬件调试,以便更真实地进行器件测试。
如果硬件调试成功后直接投片生产成“固定结构的芯片”,则其为普通的SOC;如果其硬件就是基于FPGA的,也就是说它是“用FPGA做为最终实现” 的,它在以后也可以随时进行硬件升级与调试的,我们就叫它为SOPC的设计方法,所以说SOPC是SOC的一种解决方案。
SOPC设计灵活、高效,且具有成品的硬件可重构特性(SOC在调试过程中也可硬件重构),它的适用性可以很广,针对不同的对象,它可以进行实时的结构调整,如减少程序存储空间、增加接口数目等,这一附加价值是任何固定结构IC所无法具备的,但它的价格可能会比批量生产的固定结构IC要贵得多!

‘伍’ gcc的结构

GCC的外部接口长得像一个标准的Unix编译器。使用者在命令列下键入gcc之程序名,以及一些命令参数,以便决定每个输入档案使用的个别语言编译器,并为输出程序码使用适合此硬件平台的组合语言编译器,并且选择性地执行连接器以制造可执行的程序。
每个语言编译器都是独立程序,此程序可处理输入的原始码,并输出组合语言码。全部的语言编译器都拥有共通的中介架构:一个前端解析符合此语言的原始码,并产生一抽象语法树,以及一翻译此语法树成为GCC的暂存器转换语言〈RTL〉的后端。编译器最佳化与静态程序码解析技术(例如FORTIFY_SOURCE,一个试图发现缓冲区溢位〈buffer overflow〉的编译器)在此阶段应用于程序码上。最后,适用于此硬件架构的组合语言程序码以Jack Davidson与Chris Fraser发明的算法产出。
几乎全部的GCC都由C写成,除了Ada前端大部分以Ada写成。 前端的功能在于产生一个可让后端处理之语法树。此语法解析器是手写之递归语法解析器。
直到2004年,程序的语法树结构尚无法与欲产出的处理器架构脱钩。而语法树的规则有时在不同的语言前端也不一样,有些前端会提供它们特别的语法树规则。
在2005年,两种与语言脱钩的新型态语法树纳入GCC中。它们称为GENERIC与GIMPLE。语法解析变成产生与语言相关的暂时语法树,再将它们转成GENERIC。之后再使用gimplifier技术降低GENERIC的复杂结构,成为一较简单的静态唯一形式(Static Single Assignment form,SSA)基础的GIMPLE形式。此形式是一个与语言和处理器架构脱钩的全域最佳化通用语言,适用于大多数的现代编程语言。 GCC后端的行为因不同的前处理器宏和特定架构的功能而不同,例如不同的字符尺寸、呼叫方式与大小尾序等。后端接口的前半部利用这些讯息决定其RTL的生成形式,因此虽然GCC的RTL理论上不受处理器影响,但在此阶段其抽象指令已被转换成目标架构的格式。
GCC的最佳化技巧依其释出版本而有很大不同,但都包含了标准的最佳化算法,例如循环最佳化、执行绪跳跃、共通程序子句消减、指令排程等等。而RTL的最佳化由于可用的情形较少,且缺乏较高阶的资讯,因此相比较起来,增加的GIMPLE语法树形式,便显得比较不重要。
后端经由一次重读取步骤后,利用描述目标处理器的指令集时所取得的信息,将抽象暂存器替换成处理器的真实暂存器。此阶段非常复杂,因为它必须关注所有GCC可移植平台的处理器指令集的规格与技术细节。
后端的最后步骤相当公式化,仅仅将前一阶段得到的汇编语言代码借由简单的子例程转换其暂存器与内存位置成相对应的机器码。

‘陆’ 什么是soc架构

SoC技术的发展

集成电路的发展已有40 年的历史,它一直遵循摩尔所指示的规律推进,现已进入深亚微米阶段。由于信息市场的需求和微电子自身的发展,引发了以微细加工(集成电路特征尺寸不断缩 小)为主要特征的多种工艺集成技术和面向应用的系统级芯片的发展。随着半导体产业进入超深亚微米乃至纳米加工时代,在单一集成电路芯片上就可以实现一个复 杂的电子系统,诸如手机芯片、数字电视芯片、DVD 芯片等。在未来几年内,上亿个晶体管、几千万个逻辑门都可望在单一芯片上实现。 SoC ( System - on - Chip)设计技术始于20世纪90年代中期,随着半导体工艺技术的发展, IC设计者能够将愈来愈复杂的功能集成到单硅片上, SoC正是在集成电路( IC)向集成系统( IS)转变的大方向下产生的。1994 年Motorola发布的Flex Core系统(用来制作基于68000和PowerPC的定制微处理器)和1995年LSILogic公司为Sony公司设计的SoC,可能是基于IP ( Intellectual Property)核完成SoC设计的最早报导。由于SoC可以充分利用已有的设计积累,显着地提高了ASIC的设计能力,因此发展非常迅速,引起了工业 界和学术界的关注。

SOC是集成电路发展的必然趋势,1. 技术发展的必然2. IC 产业未来的发展。

SoC基本概念

SoC的定义多种多样,由于其内涵丰富、应用范围广,很难给出准确定义。一般说来, SoC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术, 用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从 广义角度讲, SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。国内外学术界一般倾向将SoC定义为将微处 理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。

SoC定义的基本内容主要表现在两方面:其一是它的构成,其二是它形成过程。系统级芯片的构成可以是系统级芯片控制逻辑模块、微处理器/微控制器CPU 内核模块、数字信号处理器DSP模块、嵌入的存储器模块、和外部进行通讯的接口模块、含有ADC /DAC 的模拟前端模块、电源提供和功耗管理模块,对于一个无线SoC还有射频前端模块、用户定义逻辑(它可以由FPGA 或ASIC实现)以及微电子机械模块,更重要的是一个SoC 芯片内嵌有基本软件(RDOS或COS以及其他应用软件)模块或可载入的用户软件等。系统级芯片形成或产生过程包含以下三个方面:

1) 基于单片集成系统的软硬件协同设计和验证;

2) 再利用逻辑面积技术使用和产能占有比例有效提高即开发和研究IP核生成及复用技术,特别是大容量的存储模块嵌入的重复应用等;

3) 超深亚微米(UDSM) 、纳米集成电路的设计理论和技术。

SoC设计的关键技术

具体地说, SoC设计的关键技术主要包括总线架构技术、IP核可复用技术、软硬件协同设计技术、SoC验证技术、可测性设计技术、低功耗设计技术、超深亚微米电路实 现技术等,此外还要做嵌入式软件移植、开发研究,是一门跨学科的新兴研究领域。图1是SoC设计流程的一个简单示意图。

SoC的发展趋势及存在问题

当前芯片设计业正面临着一系列的挑战,系统芯片SoC已经成为IC设计业界的焦点, SoC性能越来越强,规模越来越大。SoC芯片的规模一般远大于普通的ASIC,同时由于深亚微米工艺带来的设计困难等,使得SoC设计的复杂度大大提 高。在SoC设计中,仿真与验证是SoC设计流程中最复杂、最耗时的环节,约占整个芯片开发周期的50%~80% ,采用先进的设计与仿真验证方法成为SoC设计成功的关键。SoC技术的发展趋势是基于SoC开发平台,基于平台的设计是一种可以达到最大程度系统重用的 面向集成的设计方法,分享IP核开发与系统集成成果,不断重整价值链,在关注面积、延迟、功耗的基础上,向成品率、可靠性、EMI 噪声、成本、易用性等转移,使系统级集成能力快速发展。

当前无论在国外还是国内,在SoC设计领域已展开激烈的竞争。SoC按指 令集来划分,主要分x86系列(如SiS550) 、ARM 系列(如OMAP) 、M IPS系列(如Au1500 ) 和类指令系列(如M 3Core)等几类,每一类都各有千秋。国内研制开发者主要基于后两者,如中科院计算所中科SoC (基于龙芯核,兼容M IPSⅢ指令集) 、北大众志(定义少许特殊指令) 、方舟2号(自定义指令集) 、国芯C3 Core (继承M3 Core)等。开发拥有自主知识产权的处理器核、核心IP和总线架构,同时又保证兼容性(集成第三方IP) ,将使我国SoC发展具有更强的竞争力,从而带动国内IC产业往深度、广度方向发展。

‘柒’ 何谓SOC架构

在数字时代,拥有一个安全运营中心(SOC)对于每个组织的网络安全都是至关重要的。然而,并非每个SOC都能有效应对网络威胁和攻击。这背后的主要原因是缺乏标准化的SOC框架。SOC框架要求设计一份文件,提供指导方针、要求和规范,以有效支持网络安全运营。

开放Web应用程序安全项目(OWASP)引入了SOC框架,以便组织使用有效的技术控制(如安全信息和事件管理(SIEM)系统)以及组织控制(如流程)和其他人为因素来应对网络安全事件。除了应对网络安全事件外,SOC的其他主要目标还包括使组织对未来的攻击具有弹性;提供有效的报告机制,及时发现威胁。

一、SOC框架的必要条件

要建立一个强大的SOC框架,组织必须:

1.1定义一个策略

拥有一个涉及关键利益相关者和执行者的战略,将允许一个框架实现SOC的目的和业务的某些目标。该战略还应包括 足够的技术资源、关键专业人员的专门知识和脆弱性评估 的范围。有效的沟通,与往常一样,是允许透明的关键。

1.2实现基于策略的基础结构

一旦制定了战略,就应该建立 基础设施,包括内部和外部威胁情报工具,如新闻源和漏洞警报 。分析和监控工具可以有效地检测威胁。基础设施还应该包括防火墙和入侵保护系统(IPS)/入侵检测系统(IDS)等安全工具的使用。其他基本工具将在后面几节中讨论。

二、用有效的工具和解决方案建立强大的SOC

安全信息和事件管理(SIEM)工具被认为是非常有效的监控工具,因为它提供了安全警报的实时分析。这实际上允许数据分析、日志收集和报告安全事件的功能。由于资源的枯竭,对于一个组织来说,维护两个独立的SIEM解决方案是很正常的:一个用于数据安全,另一个用于遵守法律。

SIEM不再作为独立的工具使用,有时还与其他工具结合使用,以加强安全控制。为此,安全从业者更喜欢安全编排、自动化和响应(SOAR)平台。这种技术使安全数据的收集自动化,并相应地做出响应。它通过修补漏洞来加速事件响应。由于自动化特性,SOAR对于与SIEM集成的组织来说变得越来越普遍。

按照Gartner的说法,SOAR是多种技术的集合,允许公司从不同的来源(多数情况下来自SIEM)收集数据和安全警报。组织可以同时使用机器和人力进行威胁分析和补救。

在SOC中,SOAR的作用是不可或缺的。如今,网络安全技能差距正在急剧扩大,由于其自动化特性,SOAR在填补这一差距方面发挥了重要作用。通过自动化各种日常和手工任务,SOAR最小化了对安全专业人员的需求。因此,SOAR是SOC框架中的一个重要的安全组成部分。

三、谁是SOC组的成员?

除了网络安全解决方案和技术,一个成功的SOC框架还严重依赖于组成该团队的安全专业人员,如计算机安全事件响应团队(CSIRT)。SOC小组的主要成员包括:

3.1合规审计

对于任何类型的组织来说,遵守监管标准都是避免处罚和罚款的必要条件。合规审核员确保采取必要的措施以满足合规标准,如《通用数据保护条例》(GDPR)。

3.2安全分析人员

安全分析师负责检测、分析和响应网络事件。它们还处理警报的实时分类。

3.3事件响应和取证调查

事件响应人员执行安全警报的事件响应计划、初始评估和威胁分析。然而,取证调查人员通过收集情报、证据和其他与威胁相关的信息来分析事件。

3.4SOC经理

他们是领导SOC团队、管理SOC团队并帮助确定网络安全预算的高层管理人员。

结论

为了使SOC有效,遵循SOC框架是必要的。虽然目前还缺乏SOC的框架,但在本文中,我们已经了解了构成可靠SOC的最佳SOC框架。这个框架结合了一些工具和技术,以及运行SOC的安全专家。

你是否担心公司的网络安全?你对公司目前的安全状况感到不舒服吗?Logsign为世界各地的企业提供下一代SIEM和安全编排、自动化和响应(SOAR)平台。

https://digitalguardian.com/blog/what-security-operations-center-soc

https://www.mitre.org/sites/default/files/publications/pr-13-1028-mitre-10-strategies-cyber-ops-center.pdf

https://www.ncsc.gov.uk/guidance/security-operations-centre-soc-buyers-guide

https://www.csoonline.com/article/2124604/what-is-siem-software-how-it-works-and-how-to-choose-the-right-tool.html

https://resources.infosecinstitute.com/security-orchestration-automation-and-response-soar/#gref

阅读全文

与编译器基础架构SOC相关的资料

热点内容
不能修改的pdf 浏览:740
同城公众源码 浏览:475
一个服务器2个端口怎么映射 浏览:283
java字符串ascii码 浏览:62
台湾云服务器怎么租服务器 浏览:462
旅游手机网站源码 浏览:317
android关联表 浏览:930
安卓导航无声音怎么维修 浏览:322
app怎么装视频 浏览:424
安卓系统下的软件怎么移到桌面 浏览:81
windows拷贝到linux 浏览:757
mdr软件解压和别人不一样 浏览:889
单片机串行通信有什么好处 浏览:326
游戏开发程序员书籍 浏览:849
pdf中图片修改 浏览:275
汇编编译后 浏览:480
php和java整合 浏览:835
js中执行php代码 浏览:447
国产单片机厂商 浏览:63
苹果手机怎么设置不更新app软件 浏览:289