五大ARM存储器之一:协处理器CP15

发布者:Lihua1314520最新更新时间:2016-04-29 来源: eefocus关键字:ARM  存储器  协处理器  CP15 手机看文章 扫描二维码
随时随地手机看文章
ARM存储系统有非常灵活的体系结构,可以适应不同的嵌入式应用系统的需要。ARM存储器系统可以使用简单的平板式地址映射机制(就像一些简单的单片机一样,地址空间的分配方式是固定的,系统中各部分都使用物理地址),也可以使用其他技术提供功能更为强大的存储系统。比如:

  · 系统可能提供多种类型的存储器件,如FLASH、ROM、SRAM等;

  · Caches技术;

  · 写缓存技术(write buffers);

  · 虚拟内存和I/O地址映射技术。

大多数的系统通过下面的方法之一实现对复杂存储系统的管理。

   · 使能Cache,缩小处理器和存储系统速度差别,从而提高系统的整体性能。

   · 使用内存映射技术实现虚拟空间到物理空间的映射。这种映射机制对嵌入式系统非常重要。通常嵌入式    系统程序存放在ROM/FLASH中,这样系统断电后程序能够得到保存。但是通常ROM/FLASH与SDRAM相比,速度    慢很多,而且基于ARM的嵌入式系统中通常把异常中断向量表放在RAM中。利用内存映射机制可以满足这种需    要。在系统加电时,将ROM/FLASH映射为地址0,这样可以进行一些初始化处理;当这些初始化处理完成后将    SDRAM映射为地址0,并把系统程序加载到SDRAM中运行,这样很好地满足嵌入式系统的需要。

  · 引入存储保护机制,增强系统的安全性。

  · 引入一些机制保证将I/O操作映射成内存操作后,各种I/O操作能够得到正确的结果。在简单存储系统中,    不存在这样问题。而当系统引入了Cache和write buffer后,就需要一些特别的措施。

在ARM系统中,要实现对存储系统的管理通常是使用协处理器CP15,它通常也被称为系统控制协处理器(System Control Coprocessor)。

ARM的存储器系统是由多级构成的,每级都有特定的容量和速度。图1显示了存储器的层次结构。

① 寄存器。处理器寄存器组可看作是存储器层次的顶层。这些寄存器被集成在处理器内核中,在系统中提供最快的存储器访问。典型的ARM处理器有多个32位寄存器,其访问时间为ns量级。

  

图1 存储器的层次结构

② 紧耦合存储器TCM。为弥补Cache访问的不确定性增加的存储器。TCM是一种快速SDRAM,它紧挨内核,并且保证取指和数据操作的时钟周期数,这一点对一些要求确定行为的实时算法是很重要的。TCM位于存储器地址映射中,可作为快速存储器来访问。

  ③ 片上Cache存储器的容量在8KB~32KB之间,访问时间大约为10ns。

  ④ 高性能的ARM结构中,可能存在第二级片外Cache,容量为几百KB,访问时间为几十ns。

  ⑤ DRAM。主存储器可能是几MB到几十MB的动态存储器,访问时间大约为100ns。

  ⑥ 后援存储器,通常是硬盘,可能从几百MB到几个GB,访问时间为几十ms。

  注意TCM和SRAM在技术上相同,但在结构排列上不同;TCM在片上,而SRAM在板上。

 

协处理器CP15

  ARM处理器支持16个协处理器。在程序执行过程中,每个协处理器忽略属于ARM处理器和其他协处理器的指令。当一个协处理器硬件不能执行属于它的协处理器指令时,将产生一个未定义指令异常中断,在该异常中断处理程序中,可以通过软件模拟该硬件操作。比如,如果系统不包含向量浮点运算器,则可以选择浮点运算软件模拟包来支持向量浮点运算。

  CP15,即通常所说的系统控制协处理器(System Control Coprocesssor)。它负责完成大部分的存储系统管理。除了CP15外,在具体的各种存储管理机制中可能还会用到其他的一些技术,如在MMU中除CP15外,还使用了页表技术等。

  在一些没有标准存储管理的系统中,CP15是不存在的。在这种情况下,针对协处理器CP15的操作指令将被视为未定义指令,指令的执行结果不可预知。

  CP15包含16个32位寄存器,其编号为0~15。实际上对于某些编号的寄存器可能对应多个物理寄存器,在指令中指定特定的标志位来区分这些物理寄存器。这种机制有些类似于ARM中的寄存器,当处于不同的处理器模式时,某些相同编号的寄存器对应于不同的物理寄存器。

  CP15中的寄存器可能是只读的,也可能是只写的,还有一些是可读可写的。在对协处理器寄存器进行操作时,需要注意以下几个问题。

  · 寄存器的访问类型(只读/只写/可读可写)。

  · 不同的访问引发的不同功能。

  · 相同编号的寄存器是否对应不同的物理寄存器。

  · 寄存器的具体作用。

CP15寄存器访问指令

  通常对协处理器CP15的访问使用以下两种指令。

  MCR:将ARM寄存器的值写入CP15寄存器中;

  MRC:将CP15寄存器的值写入ARM寄存器中。

  注意通过协处理器访问指令CDP、LDC和STC指令对协处理器CP15进行访问将产生不可预知的结果。

  其中,CDP为协处理器数据操作指令,这个指令初始化一些与协处理器相关的操作;

  LDC为一个或多个字的协处理器数据读取指令,此指令从存储器读取数据到指定的协处理器中;

  STC为一个或多个32位字的协处理器数据写入指令,此指令初始化一个协处理器的写操作,从给定的协处理器把数据传送到存储器中。

指令MCR和MRC指令访问CP15寄存器使用通用语法。

  语法格式为:

  MCR{《cond》} p15,《opcode1=0》,《Rd》,《CRn》,《CRm》{,《opcode2》}

  MRC{《cond》} p15,《opcode1=0》,《Rd》,《CRn》,《CRm》{,《opcode2》}

  其中:

  《cond》为指令的执行条件。当《cond》条件域为空时,指令无条件执行;

  《opcode1》在标准的MRC指令中,为协处理器的《opcode1》,即操作数1。对于CP15来说,此操作数恒为0,即0b000。当针对CP15的MRC指令中《opcode1》不为0时,指令的操作结果不可预知;

  《Rd》为ARM寄存器,在ARM和协处理器交换数据时使用。在MRC指令中作为目的寄存器,在MCR中作为源寄存器。

  注意r15不能作为ARM寄存器出现在MRC或MCR指令中,如果r15作为《Rd》出现在这里,那么指令的执行结果不可预知。

  《CRn》是CP15协处理器指令中用到的主要寄存器。在MRC指令中为源寄存器,在MCR中为目的寄存器。CP15协处理器的寄存器c0、c1、…、c15均可出现在这里。

  《CRm》是附加的协处理器寄存器,用于区分同一个编号的不同物理寄存器和访问类型。当指令中不需要提供附加信息时,将《CRm》指定为C0,否则指令的操作结果不可预知。

  《opcode2》提供附加信息,用于区分同一个编号的不同物理寄存器,当指令中没有指定附加信息时,省略《opcode2》或者将其指定为0,否则指令的操作结果不可预知。

  MCR和MRC指令只能操作在特权模式下,如果处理器运行在用户模式,指令的执行结果不可预知。

  注意在用户模式下,如果要访问系统控制协处理器,通常的做法是由操作系统提供SWI软中断调用来完成系统模式的切换。由于不同型号的ARM处理器对此管理差别很大,所以建议用户在应用时将SWI作为一个独立的模块来管理并向上提供通用接口,以屏蔽不同型号处理器之间的差异。

  例1给出了一个典型的利用SWI进行模式切换的例子。

【例1】

  典型的在SWI中进行模式切换的例子。利用此例,调用SWI 0来完成系统模式切换。

  EHT_SWI

  LDR sp,=EHT_Exception_Stack ;更新SWI堆栈指针

  ADD sp,sp,#EXCEPTION_SIZE ;得到栈顶指针

  STMDB sp!,{r0-r2,lr} ;保存程序中用到的寄存器

MRS r0,SPSR ;得到SPSR

  STMDB sp!,{r0} ;保持SPSR

  LDR r0,[lr,#-4] ;计算SWI指令地址

  BIC r0,r0,#0xFF000000 ;提取中断向量号

  CMP r0,#MAX_SWI ;检测中断向量范围

  LDRLS pc,[pc,r0,LSL #2] ;如果在范围内,跳转到软中断向量表

  B EHT_SWI_Exit ;为定义的SWI指令出口

  EHT_Jump_Table

  DCD EHT_SU_Switch

  DCD EHT_Disable_Interrupts

  ;*********************************************************************************

  ;用户可在此添加更多的自定义软中断,在此SWI0作为系统保留的软中断,调用例程EHT_SU_Switch,来进行模式切换

  ;*********************************************************************************

  EHT_SU_Switch

  MMU_DISABLE ;转换前禁用MMU

  LDMIA sp!,{r0} ;从堆栈中取出SPSR

  BIC r0,r0,#MODE_MASK ;清除模式位

  ORR r0,r0,#SYS_MODE ;设置程序状态字的supper模式位

  STMDB sp!,{r0} ;从新将SPSR放入堆栈

  B EHT_SWI_Exit

  EHT_Disable_Interrupts

  LDMIA sp!,{r0} ;从堆栈中读出SPSR

  ORR r0,r0,#LOCKOUT ;禁止中断

  STMDB sp!,{r0} ;存储SPSR到中断

  ; B EHT_SWI_Exit

  EHT_SWI_Exit

  LDMIA sp!,{r0} ;从堆栈中读出SPSR

  MSR SPSR_cf,r0 ;将SPSR放入SPSR_cf

  LDMIA sp!,{r0-r2,pc}^ ;寄存器出栈并返回

  END

1.2 CP15中的寄存器

  表1给出了CP15主要寄存器的功能和作用。

  表1 CP15寄存器

寄存器编号

基本作用

在MMU中的作用

在PU中的作用

0

ID编码(只读)

ID编码和cache类型

 

1

控制位(可读写)

各种控制位

 

2

存储保护和控制

地址转换表基地址

Cachability的控制位

3

存储保护和控制

域访问控制位

Bufferablity控制位

4

存储保护和控制

保留

保留

5

存储保护和控制

内存失效状态

访问权限控制位

6

存储保护和控制

内存失效地址

保护区域控制

7

高速缓存和写缓存

高速缓存和写缓存控制

 

8

存储保护和控制

TLB控制

保留

9

高速缓存和写缓存

高速缓存锁定

 

10

存储保护和控制

TLB锁定

保留

11

保留

 

 

12

保留

 

 

13

进程标识符

进程标识符

 

14

保留

 

 

15

因不同设计而异

因不同设计而异

因不同设计而异

1.3 寄存器c0
 
寄存器c0包含的是ARM本身或芯片生产厂商的一些标识信息。当使用MRC指令读c0寄存器时,根据第二个操作码opcode2的不同,读出的标识符也是不同的。操作码与标识符的对应关系如表2所示。寄存器c0是只读寄存器,当用MCR指令对其进行写操作时,指令的执行结果不可预知。
 
表2 操作码和标识符的对应关系

opcode_2编码

对应的标识符号寄存器

0b000

主标识符寄存器

0b001

cache类型标识符寄存器

其他

保留

 在操作码opcode2的取值中,主标识符(opcode2=0)是强制定义的,其他标识符由芯片的生产厂商定义。如果操作码opcode2指定的值未定义,指令将返回主标识符。其他标识符的值应与主标识符的值不同,可以由软件编程来实现,同时读取主标识符和其他标识符,并将两者的值进行比较。如果两个标识符值相同,说明未定义该标识符;如果两个标识符值不同,说明定义了该标识符,并且得到该标识符的值。
 

(1)主标识符寄存器

  当协处理器指令对CP15进行操作,并且操作码opcode=2时,处理器的主标识符将被读出。从主标识符中,可以确定ARM体系结构的版本型号。同时也可以参考由芯片生产厂商定义的其他标识符,来获得更详细的信息。

  在主标识信息中,bit[15:12]区分了不同的处理器版本:

  · 如果bit[15:12]为0x0,说明处理器是ARM7之前的处理器;

  · 如果bit[15:12]为0x7,说明处理器为ARM7处理器;

  · 如果bit[15:12]为其他值,说明处理器为ARM7之后的处理器。

  对于ARM7之后的处理器,其标识符的编码格式如图2所示。

  其中各部分的编码含义说明如下。

  bit[3:0]:包含生产厂商定义的处理器版本型号。

  bit[15:4]:生产厂商定义的产品主编号,可能的取值为0x0~0x7。

  bit[19:16]:ARM体系的版本号,可能的取值如表3(其他值由ARM公司保留将来使用)所示。

  协处理器CP15

  图2 ARM7之后处理器标识符编码

表3 bit[19:16]与ARM版本号

 可能的取值    版 本 号

  0x1       ARM体系版本4

  0x2       ARM体系版本4T

  0x3       ARM体系版本5

  0x4       ARM体系版本5T

  0x5      ARM体系版本5TE

bit[23:20]:生产厂商定义的产品子编号。当产品主编号相同时,使用子编号区分不同的产品子类,如产品中不同的cache的大小。

bit[31:24]:生产厂商的编号现已定义的如表4所示。其他的值ARM公司保留将来使用。

 表4 bit[31:24]值与ARM生产厂商

  可能的取值   ARM芯片生产厂商

  0x41  (A)ARM公司

  0x44  (D)Digital Equipment

  0x69  (i)Intel公司

 对于ARM7系统的处理器,其主标识符的编码如图3所示。

  协处理器CP15

 

  图3 ARM7处理器标识符编码

 其中各部分的含义说明如下。

  bit[3:0]:包含生产厂商定义的处理器版本型号。

  bit[15:4]:生产厂商定义的产品主编号,其最高4位的值为0x7。

  bit[22:16]:生产商定义的产品子编号。当产品的主编号相同时,使用子编号区分不同的产品子类,如产品中不同的产品子类、不同产品中高速缓存的大小。

  bit[23]:ARM7处理器支持下面两种ARM体系的版本号。0x0代表ARM体系版本3;0x1代表ARM体系版本4T。

  bit[31:24]:生产厂商的编号已定义的如表5所示,其他的值ARM公司保留将来使用。

  表5 bit[31:24]值与ARM生产厂商

  可能的取值ARM芯片生产厂商

  0x41(A)ARM公司

  0x44(D)Digital Equipment

  0x69(i)Intel公司

  对于ARM7系统的处理器,其主标识符的编码如图4所示。

  协处理器CP15

  图4 ARM7之前处理器标识符编码

  其中各部分的含义说明如下。

  bit[3:0]:包含生产厂商定义的处理器版本型号。

  bit[31:4]:处理器标识符及其含义如表6所示。

  表6 ARM之后处理器标识符与含义

  处理器标识符含 义

  0x4156030ARM3(体系版本2)

  0x4156060ARM600(ARM体系版本3)

  0x4156061ARM610(ARM体系版本3)

  0x4156062ARM620(ARM体系版本3)

(2)Cache类型标识符寄存器

  如前所述,对于指令MRC来说,当协处理器寄存器为r0,而第二操作数opcode2为0b001时,指令读取值为Cache类型,即可以用下面的指令将处理器的Cache类型标识符寄存器的内容读取到寄存器r0中。

  MRC P15,0,r0,c0,c0,1

  Cache类型标识符定义了关于Cache的信息,具体内容如下所述。

  · 系统中的数据Cache和指令Cache是分开的还是统一的。

  · Cache的容量、块大小以及相联特性。

  · Cache类型是直(write-through)写还是回写(write-back)。

  · 对于回写(write-back)类型的Cache如何有效清除Cache内容。

  · Cache是否支持内容锁定。

  Cache类型标识符寄存器各控制字段的含义编码格式如图5所示。

  协处理器CP15

  图5 Cache属性寄存器标识符编码格式

其中各控制字段的含义说明如下。

  属性字段(ctype):指定没有在S位、数据Cache相关属性位、指令Cache相关属性类中指定的属性,其具体编码参见表7。

  表7 Cache类型标识符寄存器属性字段含义

  编 码  Cache类型  Cache内容清除方法  Cache内容锁定方法

  0b0000   直写    不需要内容清除    不支持

  0b0001   回写    数据块读取       不支持

  0b0010   回写    由寄存器定义     不支持

  0b0110   回写    由寄存器定义    支持格式A,见后

  0b0111   回写    由寄存器定义    支持格式B,见后

  S位:定义系统中的数据Cache和指令Cache是分开的还是统一的。如果S=0,说明指令Cache和数据Cache是统一的,如果S=1,则说明数据Cache和指令Cache是分离的。

  数据Cache相关属性:定义了数据Cache容量、行大小和相联(associativity)特性(如果S≠0)。

  指令Cache相关属性:定义了指令Cache容量、行大小和相联(associativity)特性(如果S≠0)。

  数据Cache相关属性和指令Cache相关属性分别占用控制字段[23:12]和[11:0],它们的结构相同,图6以指令Cache为例,显示了编码结构。

 协处理器CP15

  图6 指令Cache编码结构

  其中,各部分的含义说明如下。

  bit[11:9]:保留用于将来使用。

  bit[8:6]:定义Cache的容量,其编码格式及含义如表8所示。

表8 类型标识符寄存器控制字段bit[8:6]含义

  编 码   M=0时的含义   M=1时的含义

  0b000   0.5KB       0.75KB

  0b00   11KB        1.5KB

  0b010  2KB        3KB

  0b011  4KB        6KB

  0b100   8KB       12KB

  0b101  16KB       24KB

  0b110  32KB       48KB

  0b111  64KB       96KB

  bit[1:0]:定义Cache的块大小,其编码格式及含义如表9所示。

表9 类型标识符寄存器控制字段bit[1:0]含义

  编 码  Cache块大小

  0b00   2个字(8字节)

  0b01   4个字(16字节)

  0b10   8个字(32字节)

  0b11   16个字(64字节)

 bit[5:3]:定义了Cache的相联属性,其编码格式及含义如表10所示。

  表10 类型标识符寄存器控制字段bit[5:3]含义

  编 码   M=0时的含义    M=1时的含义

  0b000   1路相联   (直接映射)没有Cache

  0b001  2路相联     3路相联

  0b010  4路相联     6路相联

  0b011  8路相联    12路相联

  0b1001  6路相联    24路相联

  0b101  32路相联    48路相联

  0b110  64路相联    96路相联

  0b111   128路相联   192路相联

1.4 寄存器c1

  CP15中的寄存器c1包括以下控制功能:

  · 禁止/使能MMU以及其他与存储系统有关的功能;

  · 配置存储系统以及ARM处理器中相关的工作。

  注意在寄存器c1中包含了一些没有使用的位,这些位在将来可能被扩展其他功能时使用。因此为了编写代码在将来更高版本的ARM处理器中仍可以使用,在修改寄存器c1中的位时应该使用“读取-修改特定位-写入”的操作序列。

  当对寄存器c1进行读操作时,指令中CRm和opcode2的值将被处理器忽略,所以要人工将其置位为0。

  例2用MRC/MCR指令将协处理器寄存器c1的值进行读取和写入。

【例2】

  MRC P15,0,r0,c1,0,0 ;将寄存器c1的值读取到ARM寄存器r0中

  MCR P15,0,r0,c1,0,0 ;将ARM寄存器r0的值写入寄存器c1

  图7显示了寄存器c1的编码格式。

  协处理器CP15

  图7 寄存器c1编码格式

  寄存器c1各控制字段的含义如表11所示。

  表11 寄存器c1中各控制位字段的含义

  C1中的控制位含 义

  M(bit[0])禁止/使能MMU或者MPU

  0:禁止MMU或者MPU

  1:使能MMU或者MPU

  如果系统中没有MMU或者MPU,读取时该位返回0,写入时忽略

  A(bit[1])对于可以选择是否支持内存访问时地址对齐检查的系统,本位禁止/使能地址对齐检查功能

  0:禁止地址对齐检查功能

  1:使能地址对齐检查功能

  对寄存器进行写操作时,忽略该位

  C(bit[2])当数据Cache和指令Cache分开时,本控制位禁止/使能数据Cache。

  当数据Cache和指令Cache统一时,该控制位禁止/使能整个Cache

  0:禁止Cache

  1:使能Cache

  如果系统中不含Cache,读取时该位返回0,写入时忽略

  当系统中Cache不能禁止时,读取返回1,写入时忽略

  W(bit[3])禁止/使能写缓存

  0:禁止写缓存

  1:使能写缓存

  如果系统中不含写缓存,读取时该位返回0,写入时忽略

  当系统中的写缓存不能禁止时,读取时该位返回0,写入时忽略

  P(bit[4])对于向前兼容26位ARM处理器,本控制位控制PRGC32控制信号

  0:异常中断处理程序进入32位地址模式

  1:异常中断处理程序进入26位地址模式

  如果系统不支持向前兼容26位地址,读取该位时返回1,写入时被忽略

  D(bit[5])对于向前兼容26位ARM处理器,本控制位控制DATA32控制信号

  0:禁止26位地址异常检查

  1:使能26位地址异常检测

  如果系统不支持向前兼容26位地址,读取该位时返回1,写入时被忽略

  L(bit[6])对于ARMv3及以前版本,本控制位可以控制处理器的中止模式

  0:选择早期中止模式

  1:选择后期中止模式

  对于以后的处理器读取该位时返回1,写入时忽略

  B(bit[7])对于存储系统同时支持大/小端(big-endian/little-endian)的ARM处理器,该控制位配置系统使用哪种内存模式

  0:使用小端(little-endian)

  1:使用大端(big-endian)

  对于只支持小端(little-endian)的系统,读取时该位返回0,写入时忽略

  对于只支持大端(big-endian)的系统,读取时该位返回1,写入时忽略

  S(bit[8])支持MMU的存储系统中,本控制位用作系统保护

  R(bit[9])支持MMU的存储系统中,本控制位用作ROM保护

  F(bit[10])本控制位由生产厂商定义

  Z(bit[11])对于支持跳转预测的ARM系统,本控制位禁止/使能跳转预测功能

  0:禁止跳转预测功能

  1:使能跳转预测功能

  对于不支持跳转预测的ARM系统,读取时该位返回0,写入时忽略

  I(bit[12])当数据Cache和指令Cache是分开的,本控制位禁止/使能指令Cache

  0:禁止指令Cache

  1:使能指令Cache

  如果系统中使用统一的指令Cache和数据Cache或者系统中不含Cache,读取该位时返回0,写入时忽略该位

  当系统中的指令Cache不能禁止时,读取该位返回1,写入时忽略该位

  V(bit[13])支持高端异常向量表的系统中,本控制位控制向量表的位置

  0:选择0x00000000~0x0000001c

  1:选择0Xffff0000~0xffff001c

  对于不支持高端中断向量表的系统,读取时返回0,写入时忽略

  RR(bit[14])如果系统中Cache的淘汰算法可以选择的话,本控制位选择淘汰算法

  0:选择常规的淘汰算法,如随机淘汰算法

  1:选择预测性的淘汰算法,如轮转(round-robin)淘汰算法

  如果系统中淘汰算法不可选择,写入该位时被忽略,读取该位时,根据其淘汰算法是否可以比较简单地预测最坏情况返回1或者0

  L4(bit[15])ARM版本5及以上的版本中,本控制位可以提供兼容以前的ARM版本的功能

  0:保持当前ARM版本的正常功能

  1:对于一些根据跳转地址的bit[0]进行状态切换的指令,忽略bit[0],不进行状态切换,保持和以前ARM版本兼容

  此控制位可以影响以下指令:LDM、LDR和POP

  对于ARM版本5以前的处理器,该位没有使用,应作为UNP/SBZP

  对于ARM版本5以后的处理器,如果不支持向前兼容的属性,读取时该位返回0,写入时忽略

  Bit(bit[31:16])这些位保留将来使用,应为UNP/SBZP


关键字:ARM  存储器  协处理器  CP15 引用地址:五大ARM存储器之一:协处理器CP15

上一篇:ARM寄存器简介
下一篇:arm上电后的第一条指令

推荐阅读最新更新时间:2024-03-16 14:52

基于LPC2131嵌入式系统的CAN模块设计与实现
随着信息技术技术的飞速发展, ARM技术方案架构作为一种具备低功耗、高性能、以及小体积等特性的32位嵌入式微处理器,得到了众多的知识产权授权用户,其中包括世界顶级的半导体和系统公司。目前已被广泛的用于各类电子产品,汽车、消费娱乐、影像、工业控制、海量存储、网络、安保和无线等领域。被业界人士认为,基于ARM的技术方案是最具市场前景和市场优势的解决方案。 现场总线CAN是为解决现代汽车中众多的电控模块之间的数据交换而开发的一种串行通信协议。由于其具有多主站依据优先权进行总线访问,采用非破坏性总线仲裁,可完成对通信数据的错误检验和优先级判别,数据长度最多为8个字节,传输时间短,受干扰的概率低,抗干扰能力较强,通信速率最高可达1Mbit/s
[嵌入式]
NVIDIA主管:HPC的未来属于ARM而非x86
NVIDIA HPC产品部门主管Sumit Gupta在接受媒体采访时表示,HPC的未来方向在于ARM而非x86。 公司正在和西班牙巴塞罗那超级计算中心合作(BSC)开发全球首款ARM架构HPC试验机。该产品采用的是NVIDIA Tegra 3与CUDA GPU的组合。其目标是在带来ExaScale(亿亿次)计算的同时,能耗降低至现在产品水平的1/15~1/30。 Sumit Gupta称,ARM的能耗优势是x86平台所不能取代的。当然,x86依然优秀,但其不适合HPC(高性能计算机)。“HPC的未来一定是能耗比更高的CPU+GPU混合加速计算平台更占优势。”
[单片机]
基于ARM和eCos的嵌入式WEB服务器设计
      引 言   随着现代通信技术和网络技术的迅猛发展,以太网技术也越来越成熟,特别是基于TCP/IP通信协议的Web技术得到了广泛应用。我们可以用微控制器加以太网接口芯片,取代PC机进行现场控制,组成嵌入式Web Serv-er系统。现场传感器自动跟踪各监测点的信息,把检测到的数据存储在非易失性存储器中,并及时发布到互联网上;相关的工作人员就可以通过Web技术对设备进行远程控制、管理和维护,从浏览器上直接监控现场设备的运行,这样就大大提高了生产效率和管理水平。   为了实现WEB服务器的功能,嵌入式操作系统和一个可实现的TCP/IP协议栈是必需的,因此对嵌入式处理器提出了更高的要求。与传统的8/16位单片机相比,A
[嵌入式]
基于嵌入式uCLinux内核启动过程分析与设计
  0 引言   32位ARM嵌入式处理器具有高性能、低功耗、高性价比的特性,已被广泛应用于消费电子产品、无线通信、控制和网络通信等领域。uCLinux是专门为无MMU处理器设计的嵌入式操作系统,已支持ARM、Motorola等微处理器。目前采用ARM+uCLinux作为嵌入式系统的一种开发模式非常普遍。   一个基于uCLinux的完整的嵌入式系统由三个部分组成,即系统引导程序Bootloader、uCLinux操作系统内核和文件系统。嵌入式系统的启动引导技术是嵌入式系统开发的一个难点,系统启动引导的成功与否决定了应用程序的运行环境是否能正确建立,系统启动成功是应用正确运行的前提。而uCLinux内核的启动过程也是其中重要一
[单片机]
基于嵌入式uCLinux内核启动过程分析与设计
ARM的服务器芯片有多强
处理器的世界没有什么绝对的护城河。被认为是X86阵营最稳固后方的PC和服务器领域,正在被ARM内核慢慢渗透。先是苹果宣布将用自研的处理器芯片替代Intel处理器,然后是富士通的48核SoC驱动的Fugaku超级计算机夺得了全球超算500的榜首,最后就是Ampere公司推出了面向云计算的Altra处理器的最新款,128核的Ampere™ Altra Max。而这枚基于7nm工艺的处理器巨无霸也将ARM服务器芯片的性能推向了极致。 为云原生而升级 在今年的3月份,Ampere公司发布了世界上第一款云原生处理器Altra。这款处理器满足了云原生处理器的三大需求:一是可预测的高性能,二是高可扩展性,三是高能效。 据Ampere 产品高
[手机便携]
<font color='red'>ARM</font>的服务器芯片有多强
ARM中C和汇编混合编程及示例
在嵌入式系统开发中,目前使用的主要编程语言是C 和汇编,C++已经有相应的编译器,但是现在使用还是比较少的。在稍大规模的嵌入式软件中,例如含有OS,大部分的代码都是用C 编写的,主要是因为C 语言的结构比较好,便于人的理解,而且有大量的支持库。尽管如此,很多地方还是要用到汇编语言,例如开机时硬件系统的初始化,包括CPU 状态的设定,中断的使能,主频的设定,以及RAM 的控制参数及初始化,一些中断处理方面也可能涉及汇编。另外一个使用汇编的地方就是一些对性能非常敏感的代码块,这是不能依靠C 编译器的生成代码,而要手工编写汇编,达到优化的目的。而且,汇编语言是和CPU 的指令集紧密相连的,作为涉及底层的嵌入式系统开发,熟练对应汇编语言的
[单片机]
嵌入式系统的远程参数测量的设计
嵌入式系统由于性价比高开发周期短等优点目前得到了迅猛发展,各类基于 ARM 处理器的应用开发更是如火如荼。这里介绍基于 ARM9 嵌入式芯片 S3C2410 构建的测量监控系统,该系统设计方案先进,集成度较高,在实践中得到了广泛的应用。 2. 嵌入式 ARM9 S3C2410X 简介 S3C2410X 是三星公司提供的基于 ARM920T 内核的 32 位 RISC 处理器,它的低功耗、低价格、高性能设计特别适合于手持设备和通用嵌入式应用场合,为降低整个系统的成本,它提供了丰富的内部设备,包括分开的 16KB 指令 Cache 和 16KB 数据 Cache,MMU 虚拟存储器管理,24bbp 模式下最大 16M 色 TFT
[单片机]
嵌入式系统的远程参数测量的设计
LG基于Arm平台实现数字电视处理性能的巨大飞跃
数字电视 (DTV) 正在演变为具有更丰富用户体验的多功能设备。除了如今已经大行其道的高品质视频流媒体服务,数字电视还提供诸如视频通话、健康和健身应用、游戏等功能。同时,用户体验也在不断改善,响应速度更快,人工智能 (AI) 功能日益增多,而且随着屏幕尺寸持续扩大,高清晰度 4K 用户界面 (UI) 也已然问世。 所有这些趋势都对数字电视平台提出了越来越高的算力需求。因此,数字电视的系统级芯片 (SoC) 需要采用更高性能的 CPU 和 GPU。 LG 追求更高性能 LG 是一家积极追求更高性能数字电视 SoC 的公司。这家消费类电子和家用电子公司在本周的 CES 2024 上推出了全新 OLED 电视,基于四核 Arm
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved