DSP

ARM裸机-S5PV210简析

2019-07-13 16:14发布

Cortex-A8架构

ARMv7架构

v5至v7架构比较

指令集

ARMv7架构是在ARMv6架构的基础上诞生的。该架构采用了Thumb-2技术,Thumb-2技术是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案的完整的代码兼容性。Thumb-2技术比纯32位代码少使用 31%的内存,减小了系统开销。同时能够提供比已有的基于Thumb技术的解决方案高出38%的性能。

NEON技术

ARMv7架构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制应用的需求。
此外,ARMv7还支持改良的运行环境,以迎合不断增加的JIT(Just In Time)和DAC(DynamicAdaptive Compilation)技术的使用。

协处理器(Cortex-A8只用了cp0/cp15)

ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。

8种工作模式

1、用户模式(Usr):用于正常执行程序; 2、快速中断模式(FIQ):用于高速数据传输; 3、外部中断模式(IRQ):用于通常的中断处理; 4、管理模式(svc):操作系统使用的保护模式; 5、数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储以及存储保护; 6、系统模式(sys):运行具有特权的操作系统任务; 7、未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件;
8、 监控模式(Mon)也称(被动)保护模式(sec):可在安全和非安全模式切换 结论:提供更多功能,应对更多的异常情况

超标量体系结构流水线

流水线

流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。

超流水线

超级流水线以增加流水线级数的方法来缩短机器周期,相同的时间内超级流水线执行了更多的机器指令。
一般而言,CPU执行一条指令需要经过以下阶段:取指->译码->地址生成->取操作数->执行->写回,每个阶段都要消耗一个时钟周期,同时每个阶段的计算结果在周期结束以前都要发送到阶段之间的锁存器上,以供下一个阶段使用。所以,每个时钟周期所消耗的时间就是由以上几个阶段中的耗时最长的那个决定的。假设耗时最长的阶段耗时为s秒,那么时钟频率就只能设计到1/s赫兹(这里不考虑阶段间信号传递的时间和锁存器的反应时间)。

超标量

超标量(superscalar)是指在CPU中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。 其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。

MMU内存管理单元

在ARM存储系统中,使用MMU实现虚拟地址到实际物理地址的映射。
MMU的实现过程,实际上就是一个查表映射的过程。
MMU的映射分为两种,一级页表的变换和二级页表变换。两者的不同之处就是所实现的变换地址空间大小不同。一级页表变换支持1M大小的存储空间的映射,而二级可以支持64KB、4KB和1KB大小地址空间的映射。
要实现从虚拟地址到物理地址的映射,必然会遇到一个问题,如何找到这个页表。对于表的查找,要知道这个表的基地址和偏移地址,在具有MMU功能的处理器中,集成了一个被称为CP15的协处理器,该协处理器的C2寄存器中用于保存页表的基地址.

Cortex-A8系统框图

精简版:
这里写图片描述 详细版:
这里写图片描述

S5PV210架构

S5PV210架构图如下:
这里写图片描述

Cortex-A8内核

S5PV210采用了ARM CortexTM-A8内核,ARM V7指令集,主频可达1GHZ,64/32位内部总线结构,32/32KB的数据/指令一级缓存,512KB的二级缓存。

IROM(64k)和IRAM(96k)

S5PV210内部有96Kb的IRAM和64Kb的IROM。
主要实现时钟以及外设等的初始化。

硬件编解码功能

包含很多强大的硬件编解码功能,内建MFC(Multi Format Codec),支持MPEG-1/2/4,H.263,H.264等格式视频的编解码,支持模拟/数字TV输出。JPEG硬件编解码,最大支持8000x8000分辨率 内建高性能PowerVR SGX540 3D图形引擎和2D图形引擎,支持2D/3D图形加速。
同时还具有1080P高清解码引擎,能够输出1080P/30fps的高清视频,带有HDMI 1.3输出,可以将高清视频输出到外部显示器上。

丰富的外设接口

24 bit TFT LCD Controller support 1024X768(XGA) resolution
Camera Interface 支持最大12M(8192x8192) 接口8-bit ITU 601/656和MPDI/CSI
4 Uarts
24-channel DMA
4-Timers with PWM
3-ch 24-bit I2S BUS for audio-codec
3-ch IIC BUS up to 400Kbit/s
2-ch HS-SPI
USB Host 2.0
USB OTG 2.0 480Mbps
4-ch SD/SDIO/HS-MMC interface
10-ch 12-bit multiplexed ADC
1-ch AC-97 Audio codec interface
3-ch PCM serial audio interface
HDMI&TV-out (PAL/NTSC)
14X8 keypad interface
237 GPIO
ATA Interface

S5PV210地址空间分布图

S5PV210地址空间分布图(存储器地址映射)如下:
这里写图片描述
这里写图片描述
  1. 0x0000 0000 - 0x1FFF FFFF : 引导区
    其中:0x0000 0000 - 0x0000 FFFFIROM(64k)不能写(三星公司已经将代码烧录进去),用于初始化系统时钟,设置看门狗,初始化堆和栈,加载BL1。
  2. 0x2000 0000 - 0x2FFF FFFF :DRAM0:内存通道0(0.5G)
    0x4000 0000 - 0x4FFF FFFF :DRAM1:内存通道1(1G) (uboot在此处开始执行)
    可供使用内存扩展为:1.5G(GEC210开发板只用了512M)
  3. 0x8000 0000 - 0xAFFF FFFF:bank(0—5):均为128M
    不能同时使用(引脚不够用,只有27个)
    bank:块 总线型设备寻址
  4. 0xB000 0000 - 0xBFFF FFFF : 256MB NAND闪存
  5. 0xC000 0000 - 0xCFFF FFFF : 256MB MP3_SRAM output buffer
  6. 0xD000 0000 - 0xD000 FFFF 64KB IROM
  7. 0xD002 0000 - 0xD003 7FFF 96KB IRAM
  8. 0xD800 0000 - 0xDFFF FFFF 128MB DMZ ROM
  9. 0xE000 0000 -0xFFFF FFFF:特殊功能寄存器
参考文章:
1、流水线、超流水线、超标量技术对比
2、ARMv7架构特点
3、内存管理单元MMU