艾康生物技术 福利待遇:C64x+ Megamodule概述 - wjdvt的专栏 - CSDN博客

来源:百度文库 编辑:中财网 时间:2024/05/02 20:06:02

C64x+ megamodule包含:C64x+ CPU、L1P、L1D、L2、IDMA(内部DMA)、BWM(带宽管理)、INTC(中断控制器)、PDC(power-down控制器)和EMC(外部存储器控制器)。

 

1. C64x+ CPU

C64x+ CPU是C64x CPU的增强版,提供了下面一些新特征:

l  扩展了新的指令

l  增加了代码压缩

l  软硬件的异常中断

C64x+目标码与C64x兼容。

 

2. L1P控制器

L1P控制器是CPU取指流水线与L1P内存的接口。你可以配置L1P内存作为one-way set-associative cache。Cache尺寸可以配置为0KB、4KB、8KB、16KB、32KB。

L1P提供带宽管理、内存保护和power-down支持。L1P复位后初始化配置全部为SRAM或最大容量的CACHE,这取决于具体的芯片。

 

3. L1D控制器

L1D控制器是CPU数据通道与L1D内存之间的接口,L1D内存可以配置为two-way set-associative cache。Cache尺寸可以配置为0KB、4KB、8KB、16KB、32KB。

L1D支持带宽管理、内存保护、power-down。L1D上电复位后总是初始化为全部为SRAM或最大容量的CACHE,这取决于具体芯片。

 

4. L2控制器

L2控制器是L1内存与更高层内存之间的接口。L2内存的一部分可以配置为four-way set-associative cahe,cache尺寸可以配置为0KB、32KB、64KB、128KB、256KB。

L2支持带宽管理、内存保护、power-down。L2上电复位时总是全部初始化为SRAM,如果你想将其中一部分作为CACHE实用,你必须在运行时自己配置。

如果你配置L2内存一部分作为cache,L2控制器提供Writebacks操作或同时Invalidation操作,这些操作可以基于全局或块。你可以指定这些内存一致性的操作,也可以自动发生,这取决于cache结构。

 

5. IDMA

IDMA是megamodule的局部DMA。它在megamodule内部(L1P、L1D、L2和CFG)执行数据搬移操作。

有两个通道的IDMA(通道0和通道1):

l  通道0允许在外设配置空间(CFG)和任何局部内存(L1P、L1D、L2)之间搬移数据。

l  通道1在局部内存(L1P、L1D、L2)之间搬移数据。

IDMA数据搬移发生在CPU操作后台,也就是说IDMA可以与CPU并发进行操作,而不需要消耗任何附加的CPU资源。

IDMA不能传输数据到或去内部的MMR空间。

 

6. BWM(带宽管理)

C64x+ Megamodule包括一套资源(L1P、L1D、L2和配置总线)以及对这些资源进行请求的一个请求集(CPU、SDMA、IDMA和一致性操作),为了避免一个请求对一个资源的长期存取而造成的阻塞,C64x+ Megamodule采用一个带宽管理方案,以确保所有请求者都能够获得一定大带宽资源。

带宽管理的大概机制是:每个请求者被分配一个优先级,共9个优先级:0-8,0优先级最高,8最低。当多个请求竞争一个资源时,优先级最高的获得服务。当竞争持续发生多个连续周期时,一个竞争计数器允许较低优先级请求者在每n个竞争周期获得1个周期对资源的存取。这里n可编程。在竞争发生时,BWM通过每个周期使竞争计数器+1,当请求被允许时,这个计数器1复位到0。当这个计数器到达n时,较低优先级请求者的优先级设为-1,从而至少获得一次存取。当然这个计数器对你来说不可见。

 

7. INTC(中断控制器)

C64x+ CPU提供两种类型的异步事件服务:

l  中断

l  异常

当出现外部或内部硬件事件,即可能产生中断,中断使正常的程序流发生重定向。异常在程序流重定向方面与中断是类似的,但通常与一个系统错误条件相关联。

C64x+ CPU能接收12个可屏蔽/可配置中断、1个可屏蔽异常和一个不可屏蔽中断/异常。CPU能响应内部种种异常条件。

Megamodule包括一个中断控制器,允许124个系统事件路由到CPU的中断/异常输入。这124个事件也能直接连接到可屏蔽中断,或分组一起作为中断和异常。这些不同的路由选择使事件的处理具有很大的灵活性。

当一个中断通知给CPU,而同时对于这个中断正好已经有一个悬挂标志,这时会产生错误事件,除了路由事件外,当CPU丢失一个中断时,中断控制器会检测。当丢失一个实时事件时,你可以用这个错误事件通知CPU。INTC硬件在一个寄存器里保存丢失中断的中断号,以便采取纠正行为。

 

8. MPA(内存保护结构)

C64x+ Megamodule提供内存保护,支持L1P、L1D和L2。系统及内存保护取决于每个器件,并不是所有器件都支持。

内存保护全局定义,但局部实现。这样总的保护方案是为整个C64x+ Megamodule定义的,但是每个资源实现它自己的保护硬件。这种内存保护分布式方法使你只要掌握一个内存保护接口就可以了。同时C64x+仍保留足够的灵活性以支持将来的外设和内存。

为了实现内存保护方案,内存映射被划分为页,每个页有一个相关的允许集,非法存取将产生一个异常并以内存错误寄存器器报告给系统。另外,MPA支持优先级模式(超级、用户)和内存锁。

 

9. PDC(Power-Down控制器)

PDC允许软件对C64x+ Megamodule各部分实施power-down管理。CPU可以基于自己执行的线程或对外部激励的响应来管理C64x+ Megamodule各部分的power-down。

 

10.            EMC(外部内存控制器)

EMC是Megamodule与设备其它部分的桥,它包括三个端口:

l  配置寄存器(CFG):这个端口提供对内存映射的寄存器的存取。这些寄存器控制C64x+芯片的不同的外设和资源。

l  Master DMA(MDMA):MDMA提供对Megamodule外部资源的存取,传输的启动是由Megamodule,也就是说在这儿Megamodule是传输的Master。MDMA典型用于CPU/Cache对L2外的内存存取。这些存取可能是一个cache line定位、writebacks和不可cache对系统内存的load、store。

l  SLAVE DMA(SDMA):SDMA是对megamodule内部资源的存取,发起者在megamodule外部,比如一个DMA控制器、HPI等,这时megamodule处于从位置。

CFG总线总是32bits宽,总应当以32bits LOAD/STORE指令存取或IDMA。MDMA和SDMA端口可以是32、64或128bits宽。它们的实际宽度取决于每个器件。