Symbian OS的硬件——片上系统System-on-Chip(SoC)_物理内存映像、中央处理单元(CPU)

本文详细介绍了片上系统(System-on-Chip, SoC)的基本概念及其内部架构,包括专用集成电路(ASIC)和专用半导体部分(ASSP)等组成部分。文中还探讨了SoC中的物理内存映像、总线设计原则以及中央处理单元(CPU)的需求和技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SoCs还有另外两个称呼:针对定制芯片的专用集成电路ASICs (Application-specific Integrated Circuits)和针对商业领域的专用半导体部分ASSP(Application-specific Semiconductor Parts)。所有的这三个术语都不是很精确,而且可以被相互取代。所有主要的硅片公司都设计制造了SoCsTexas Instruments有一个称为OMAP的产品家族,Intel也有他们自己的XScale系列处理器。图2.2显示了一个典型的System-on-Chip设计。

2.2 片上系统

 

SoC里面的每个子组件都是一个智能性能(IP)块,这些块通过工业的标准接口连接到互联总线。IP块可以通过很多途径进行授权,最著名的IP授权公司是ARM有限公司,该公司授权ARM CPU核心。

例子所示的SoC是由ARM926 CPU驱动的,可用于Symbian OS和多媒体数字信号编解码器的DSP。这两个核心都是系统总线上的重要部分,而系统总线是高速低延迟的32位总线,它被连接到DRAM控制器。系统总线和存储控制器把所有的数据访问都集中到主存里,所以它们必须被设计成能提供高带宽和低延迟的传输,以避免过度地拖累CPU或者降低了它高效的性能。

DMA引擎和LCD控制器是另外的重要总线,它们都通过同样的总线访问存储器。其他的外设被称为从属总线——它们不能直接访问存储器,而是通过它们的主总线以命令和数据的形式来满足它们的要求。这些从属块被串联成两个外设总线,一个用于高速DMA设备,另一个用于简单的低带宽外设。

外设总线通过总线桥被连接到系统总线。因为外设总线通常运行速度慢于系统总线,因此必须由总线桥翻译不同的总线格式并平衡速度差。良好的SoC设计会关注这些桥以保证CPU可以快速地访问关键的时控或高带宽外设。

Steve FurberARM System-on-Chip Architecture ¹ 一书里有更多关于ARM SoCs的信息。

2.2.1 物理内存映像

总线和它们的连接决定芯片的物理地址映像——32位编址就有4GB的寻址空间。对于软件,Symbian OS使用CPU的内存管理单元(MMU)把芯片地址空间布局的实体重映像到相应的虚拟地址空间上。

例如,系统总线控制器会把4GBSoC地址空间划分成一些大的区域。只需解码首部的三位,就可以产生八块区域,每个区域有512MB空间大小:

 

Address start

Address end

Content

0x00000000

0x1FFFFFFF

ROM Bank 0 (Boot Rom)

0x20000000

0x3FFFFFFF

ROM Bank 1

0x40000000

0x5FFFFFFF

DSP

0x60000000

0x7FFFFFFF

Fast Peripheral Bus

0x80000000

0x9FFFFFFF

Slow Peripheral Bus

0xA0000000

0xBFFFFFFF

IRAM

0xC0000000

0xDFFFFFFF

DRAM Bank 0

0xE0000000

0xFFFFFFFF

DRAM Bank 1

 

随后,这些大区域会被进一步划分成更小的区域。

对于安装在DRAM Bank032MBRAM,如果2528地址位没有被硬件解码,

剩下的480MB地址空间会包含RAM上的内容的别名,通常会是这样:

 

0xC0000000

0xC1FFFFFF

32 MB RAM

0xC2000000

0xC3FFFFFF

32 MB Alias 1

0xC4000000

0xC5FFFFFF

32 MB Alias 2

. . .

. . .

. . .

0xDE000000

0xDFFFFFFF

32 MB Alias F

 

外设总线区域由外设进行进一步的划分。上述例子中SoC上的每个快速外设都为它们的寄存器组提供有64KB的地址。

0x60000000

0x6000FFFF

NAND Interface

0x60010000

0x6001FFFF

IPC

0x60020000

0x6002FFFF

Audio

0x60030000

0x6003FFFF

USB

. . .

. . .

. . .

0x600x0000

0x7FFFFFFF

Empty Space

 

 

 

 

 

 

 

 

 

实际上,每种ASSP都有不同的物理地址空间,而且大部分不会被使用,往不使用的空间上读写会导致一个总线错误。

一个良好的设计里,所有重要总线角色都要有相应的内存映像,消除翻译物理地址的需求,并且减少发生错误的可能性。

通常,CPU会访问系统中的所有外设,然而其他重要角色只拥有其从属角色的可见性。LCD控制器需要从内存中取得流数据,直接内存存储引擎则在快速外设和内存之间工作。

引导代码使用物理地址映像设置MMU,直接内存存储引擎和其他重要总线角色不包含它们自己的MMU。它们只理解物理地址,而且在这些设备上编码的软件必须在使用之前把虚拟地址翻译回它们的物理地址。

2.2.2 中央处理单元(CPU)

Symbian OS要求有一个具有高性能和低电耗的32位微处理器。它必须采用Little-Endian模式,有完整的MMU,用户和管理者模式,以及有中断和异常机制。ARM的设计很精确地符合这些要求,当写作本书的时候,所有的Symbian OS电话都有一个基于ARMCPU,世界上80%的移动电话也采用这种CPU

下面依次来看看这些需求:

高性能是一个与电池供能设备相关的术语。现在的Symbian电话CPU时钟在100200MHz之间,比起PC上平均3GHz的速度要慢一个数量级,但是它们消耗的能量却少了三个数量级。未来的应用要求CPU的速度峰值能达到300400MHz

低电耗是Symbian OS手机上所有组件的设计要求。在设计CPU的时候,要进行工程学上权衡取舍,而且要加进去一些特性以制造出最有能效的核心。精益求精的硬件设计,所选择的电路时钟以及独特的多种低电模式:空闲、休眠、睡眠、深睡眠和退出,换来了电源的节省。在第十五章,电源管理,我将讨论Symbian OS为电源管理所提供的从硬件到软件框架的映像。

基于CPU提供的用户和管理者模式,MMU允许用户内存的虚拟化。EKA2为应用程序构造了一个强大的执行环境,每个应用程序有它自己受保护的内存区,并且与其他的应用程序相隔离。应用程序代码受限制地在用户模式执行,而内核代码使用管理者模式,只受到很少的限制,其中就包括来自它的虚拟内存映像的限制。在第七章,内存模型,我描述了Symbian OS提供的内存模型。

异常是改变核心指令流的CPU事件。中断异常由正在寻求关注的外设抛出。软件中断作为从用户模式到管理者模式的控制转换而被使用。如果代码试图访问没有被映像的内存,MMU将产生一个数据终止。而当CPU跳转到没有被映像的代码地址时,MMU将产生一个预取终止。第六章,中断和异常,有关于中断和异常的更多信息。

 

===================================================================

说明: 本文由Bequan翻译自Symbian Press的Symbian OS Internals: Real-time Kernal Programming一书。任何人需要转载或引用,请先通过Email( a-pangu@163.comsymbianchn@gmail.com)与Bequan联系,在获得许可后方可转载或引用,否则视为侵权行为。转载或引用时,请在文章中注明上述翻译信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值