1、基于32位超高速RISC体系处理器之SoC平台的Linux2.6操作系统翻开文本图片集:本文介绍如何在兼容ARM V4指令集的32位超高速RISC处理器(FA626)所构建的SoC平台上(即FIE8180),运用智原科技所提供的FA626-Linux开发包通过armboot装载Linux2.6操作系统。使开发人员可以在基于FIE8180 SoC的仿真平台-MediaCreative!上进行二次开发和验证设计。 关键字:FA626;SoC;FIE8180;AHB;FA626-Linux;Kernel;ARMBOOT1引言智原科技的FIE8180 SoC平台,是利用智原科技所开发并验证过的大量硅知
2、识产权构建而成的高性能SoC平台,用于视频相关的应用开发,也可用于基于FA626 CPU的SoC设计的验证。基于FA626-Linux软件开发套件,通过完成对平台上所有IP的驱动程序安装和对FA626的内部调试,开发人员可以将Linux 2.6.14软件环境在FIE8180平台上安装实现。 2 FA626 介绍FA626是一颗有着广泛用途的32位嵌入式RISC处理器。它包括了CPU内核,独立的指令/数据缓存(cache),独立的指令/数据高速暂存区(scratchpad),一个写缓存(write buffer),一个内存管理单元(memory management unit)和JTAG在线仿真
3、(ICE)接口。CPU内核是8级流水线(pipeline)的哈佛(Harvard)结构型。为了提高整体性能,FA626 CPU也包含了一个分支运算缓存(Branch Target Buffer: BTB)以及返回栈(Return Stack)来减少分支运算的开销(penalties)。 FA626 CPU内核的指令是兼容ARM V4的结构,并使用四个高速点对点(peer-to-peer) PVCI接口与外部内存和设备进行通讯。此外, CPU内核提供一个coherence接口来完成硬件内容的一致性。FA626 CPU有着广泛的应用领域,特别是针对那些需要高性能和低功耗的应用。FA626 CPU
4、内核是完全可综合的,它的单相时钟(single-phase clock)结构可以很容易地实现,而且易于开发系统级芯片(SoC)。FA626 CPU内核的方块图如图1所示。FA626 CPU内每个功能模块的说明如下: 1) CPU 内核FA626完全兼容ARM V4结构,包括V4指令集和一个存放器指令集。CPU 内核是依照哈佛体系设计,8级流水线包括:取(fetch),指令(instruction), 解码(decode),访问存放器(Register Access), 搬移(shift),执行(execution),数据访存(memory),写回(write)。总共30个通用存放器和6个处理器
5、状态存放器。FA626提供7种处理器模式,包括:Supervisor, System, FIQ, IRQ, abort, undefined 和user模式。2) 分支预测单元(Branch Prediction Unit)分支预测单元可通过三种分支预测处理 (branch prediction)机能来提高处理器的性能。分别是分支运算缓存(Branch Target Buffer),返回栈(Return Stack)以及静态分支预测(Static Branch Prediction)。凭借精确的分支预测处理,分支运算缓存可解决大局部控制指令间相关性的问题(dependency)和减少分支错误时
6、的效能损失 (branch penalty)。FA626的分支预测中,分支运算缓存采用128储存单元(entry)直接映射(direct map)体系,使用2位计数器算法,并提供一个使所有分支运算缓存(BTB)单元都无效的操作选择。返回栈是一个含两个储存单元(entry)的缓存,用来储存过程调用(procedure call)的返回地址。当过程调用发生时,返回地址被推入返回栈。当该返回指令被预测到,相关的返回地址再由返回栈取回,一个空的返回栈是无法预测的。当一个分支目的地址不在分支运算缓存内时,将使用静态分支预测。对于非条件分支(B/BL),静态分支预测总是预测它将被执行。对于条件分支,向后分
7、支(backward prediction)将会被执行,而向前分支那么不会被执行。3) 指令缓存和数据缓存(ICache and DCache)指令/数据缓存运用本地编程(programs locality)的方式来提高处理器性能。它在一个快速本地内存里存储最近期使用过的指令或数据。两者都是使用4路组关联(way set-associated) 结构,它们的大小可配置为 4k, 8k, 16k, 32k或64k。4) 内存管理单元(MMU)FA626内存管理单元使用两个级别的TLB结构。第一级TLB 包括一个针对指令访问查表的ITLB以及一个针对数据访问查表的DTLB。两者都是8路组关联TLB
8、。 第二级TLB 称为UTLB,是一个统一的2路组关联TLB结构。TLBs贮藏最近使用地址转换的页描述符(page descriptor) 。这么设计极大地提升了整体的性能,一旦UTLB丧失,page table walk那么由硬件自动完成。5) 指令/数据高速暂存区(IScratchpad and DScratchpad)暂存区是一个靠近处理器内核的快速片上SRAM。一些要求性能高的代码和数据可被预抓取(pre-fetched)到暂存区并以CPU的全速执行。这主要用于嵌入式应用。暂存区可以是1 kB, 2 kB, 4 kB, 8 kB, 16 kB或32 kB。当第一个指令高速暂存区被访问,
9、FA626 CPU将自动填满整个高速暂存区。DScratchpad需要由软件写入。IScratchpad和DScratchpad 的大小能被编程为1 kB, 2 kB, 4 kB, 8 kB, 16 kB或32 kB。IScratchpad和DScratchpad 的基地址(base addresses) 应该使用物理地址并被编程到CR9存放器。IScratchpad 和 DScratchpad 在FA626 内核是可被移除的。6) 总线接口单元(But Interface Unit:BIU)总线接口单元可从CPU内核里接受内存访问的请求并通过外部系统总线执行指令和数据的访问。FA626设计的
10、四个总线端口提供了极高的频宽,分别为读指令端口(IR),读数据端口(DR), 写数据端口(DW)以及外设端口用来访问数据,每个端口各是一个PVCI接口。7) 写缓存(Write Buffer: WB)写缓存隐藏写入下一个内存层时的延迟,并减少写堵塞。少了写缓存,当写入慢速的外部内存,CPU就得停止(stall)。写缓存调节慢速的外部内存所以CPU无须等待直到写操作完成。这也极大地提升了整体的效能。FA626写缓存包括一个8个字的地址缓冲器和一个8个字的数据缓冲器。8) ASIE InterfaceASIE可用于处理器功能的扩展。它提供两个扩展功能:协助器的连接和指令扩展(coprocessor
11、 connection and extension instruction)。 9) 在线仿真器(ICE)FA626提供与ARM兼容的JTAGE类型ICE接口。ICE 模块作为编程调试用,标准的ARM 调适器如AXD或RealView都能被用于调试FA626 CPU核。10) 省电控制单元(Power Saving Control Unit)省电节省控制单元控制着整个芯片时钟以减少操作功耗。当软件程序发现CPU长时间处在空闲状态,它会强制让处理器进入省电模式。处理器支持两种省电模式:Idle 和Sleep模式。在Idle模式下,处理器内部电路的时钟除了省电控制单元都停止下来。在Sleep模式下
12、,处理器内部电路包括PLL都停止。在省电模式下,处理器可以通过一个中断或一个ICE驱动来唤醒。这样的启动时间需要16个时钟周期,大约5个微秒从Sleep模式到唤醒。3 FIE8180 SoC 平台介绍FIE8180 视频SoC平台是智原科技用来验证公司内部FA626 CPU内核与H.264 视频编码IP核所设计的芯片,系统架构如以下列图2所示。通过提供集成了众多硅验证过的高速外设,如USB2.0 OTG控制器与物理层, DDR控制器等,还有一些视频输入与输出的模块构成。(下转第77页)4基于FA626的Linux2.6操作系统4.1开发系统介绍4.1.1 所需主开发环境开发Linux的主系统开
13、发环境需要有:硬件: 兼容Intel x86的PC标准16550 UART接口软件: Linux操作系统 (Fedora core 2.6.14-FC5或更高版本) FA626-Linux 软件包4.1.2 通用平台系统所需的器件:- 128 MB DDR DRAM - 16 MB Flash 4.2 FA626的Linux安装FA626-Linux可以将Fedora core 2.6.14-FC5软件环境在Faraday FA626处理器和外设IP上安装实现。5结果我们利用智原科技所提供的FIE8180的开发板上成功地移植了Linux 2.6.14的操作系统。智原科技的ARM CPU在开发上与ARM的开发工具兼容,使得我们的移植过程十分顺利。FIE8180的外设又很完整,不管是UART口或是以太网口都能用来做辅助的调试。随后就可以很顺利地编写开发板上外设的驱动程序。