今年的四月十三号,我们迎来了本学期第一门外教的课——SOC,虽说是外教,其实是一个常年呆在德国的中国人,但每堂课基本都是用英文教学。座位也早就排好了,并且节节点名,这可能是受德国人严谨的影响。
由于时间问题,这门课在短短的两周内就结束了。课程的密度很大,几乎每天都有。
现在这门课过去快一周了,我觉得他讲的很不错,我也有很大的收获,不仅在如此短的时间内给我们分析了关于SOC设计方面的事情,而且还锻炼了我们的英语听力。
以前从字面意思上看,SOC就是System On Chip的缩写,现在才知道它真正的含义,SOC通俗点讲就是将以嵌入式系统(包括硬件和软件)封装到一个芯片里。
1,它主要由四部分组成
u 嵌入式CPU,例如ARM,MIPS等等
u 嵌入式软件,例如:设备驱动等
u 内存
u 总线
所以SOC同样具有嵌入式系统的某些优点:成本低,低功耗,易于集成,体积小等优点
2,而SOC的设计目标是:正确的功能,高的特性(芯片面积利用率,能量利用率)
在这里引入了两个概念:
u 芯片面积利用率:单位面积的硅芯片上的数据流量
Ea=T/S
T为数据吞吐量,S为硅芯片的面积
T的单位MIPS,即每秒钟可以执行多少百万条指令
S的范围如下图所示:
u 能量利用率:每消耗单位功率的数据流量
Ep=T/P
T为数据吞吐量,P为功耗,基本单位为瓦特
3,讲到这里的时候,有些概念容易混淆,当我们买电脑的时候会注意CPU的主频是多少,在这里用f来表示,f=1.6GHZ,它表示的是时钟频率,即每秒钟有多少个时钟。
时钟周期=1/f,我们注意到f与吞吐量T之间存在一定的关系,关系如下:
T=f*IPC,IPC为Instructions Per Cycle,即每个周期可以执行几条指令
为了说明IPC,请看下图
由上图可以看出在十个时钟周期内总共有六条指令进入ALU被执行,所以由IPC的定义可知IPC=6/10,由于通常情况下,cpu只能从内存但中读取一条指令,体系结构当中也只有一个ALU,所以IPC<=1,小于1的情况如下图所示:
那么是什么时候可以使IPC>1了,这时,cpu从内存但中读取指令数要大于1,相应的体系结构当中的ALU数也必须大于1,这也就是所说的Superscalar结构,如下图所示
此时的IPC<=2