ARM存储数据类型 六种数据类型:
(1) 8位有符号和无符号字节。
(2)16位有符号和无符号半字。
(3)32位有符号和无符号字。
ARM指令都是32位的字,必须以字(4字节)为单位边界对齐。
Thumb指令是16位半字,必须以2字节位单位边界对齐。
在内部,所有ARM操作都是面向32位的操作数;只有数据传送指令支持较短的字节和半字的数据类型。当从存储器调入一个字节和半字时,根据指令对数据的操作类型,将其无符号0或有符号“符号位”扩展为32位,进而作为32位数据在内部进行处理。
ARM体系结构所支持的最大寻址空间为4GB(232字节)
ARM体系结构将存储器看作是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。
ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式
ARM存储格式
数据存储格式有两种:
(1)大端模式:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址。
(2)小端模式:较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址。 ARM存储周期
4种基本类型:
空闲周期。
非顺序周期。
顺序周期。
协处理器寄存器传送周期。
ARM总线接口信号分类
ARM7TDMI的总线接口信号分成4类:
时钟和时钟控制信号:MCLK、ECLK、nRESET、nWAIT。
地址类信号:A[31:0]、nRW、MAS[1:0]、nOPC、nTRANS、LOCK、TBIT。
存储器请求信号:nMREQ、SEQ。
数据时序信号:D[31:0]、DIN[31:0]、DOUT[31:0]、ABORT、BL[3:0]。
ARM总线接口可以实现的总线周期
总线周期使用nMREQ和SEQ信号编码。
4种不同类型的总线周期。
N周期:非顺序周期,最简单的总线周期;存储控制器必须启动存储器访问来满足这个请求;该方式存储系统常需要长的访问时间。
S周期:顺序周期,实现总线上的突发传送;第一个周期,地址可与前一个内部周期相同;与非顺序访问相比响应更快,访问时间更短。
I周期:内部周期,不要求存储器访问;可广播下一次访问的地址以便开始译码,但存储控制器不允许进行存储器访问。
C周期:协处理器寄存器传递周期,通过数据总线向或从协处理器传送数据;不需存储周期,存储控制器不启动事务;传送期间,存储系统不允许驱动数据总线。
高速缓存(Cache)的分类
1)统一Cache和独立的数据/程序Cache
统一Cache:一个存储系统中指令预取时使用的Cache和数据读写时使用的Cache是同一个Cache。
独立的Cache:一个存储系统中指令预取时使用的Cache和数据读写时使用的Cache是各自独立的。
用于指令预取的Cache称为指令Cache。
用于数据读写的Cache称为数据Cache。
使用独立的数据Cache和指令Cache,可以在同一个时钟周期中读取指令和数据,而不需要双端口的Cache。但此时要注意保证指令和数据的一致性。
(2)写通Cache和写回Cache
当CPU更新了Cache的内容时,要将结果写回到主存中。
写通法: write-throught,指CPU在执行写操作时,必须把数据同时写入Cache和主存。
写回法: write-back,指CPU在执行写操作时,被写的数据只写入Cache,不写入主存。仅当需要替换时,才把已经修改的Cache块写回到主存中。
(3)读操作分配Cache和写操作分配Cache
当进行数据写操作时,可能Cache未命中,这时根据Cache执行的操作不同。
读操作分配Cache:当进行数据写操作时,如果Cache未命中,只是简单地将数据写入主存中。主要在数据读取时,才进行Cache内容预取。
写操作分配Cache:当进行数据写操作时,如果Cache未命中,Cache系统将会进行Cache内容预取,从主存中将相应的块读取到Cache中相应的位置,并执行写操作,把数据写入到Cache中。
对于写通类型的Cache,数据将会同时被写入到主存中,对于写回类型的Cache数据将在合适的时候写回到主存中。
|