关于C64x+ DSP高速缓存一致性分析与维护-基础电子_第1页
关于C64x+ DSP高速缓存一致性分析与维护-基础电子_第2页
关于C64x+ DSP高速缓存一致性分析与维护-基础电子_第3页
关于C64x+ DSP高速缓存一致性分析与维护-基础电子_第4页
关于C64x+ DSP高速缓存一致性分析与维护-基础电子_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑关于C64x+DSP高速缓存一致性分析与维护-基础电子高速缓存(CACHE)作为内核和低速存储器之间的桥梁,基于代码和数据的时间和空间相关性,以块为单位由硬件控制器自动加载内核所需要的代码和数据。如果所有程序和数据的存取都由内核完成,基于CACHE的运行机制,内核始终能够得到存储器中的数据。但是当有其它可以更改存储器内容的部件存在时,例如不需要内核干预的直接数据存取(DMA)引擎,就可能出现由于CACHE的存在而导致内核或者DMA不能够得到数据的现象,也就是CACHE一致性的问题。

C64x+存储器架构

德州仪器(TI)公司对高性能C64x核进行了改进,使其性能大副提升,称之为C64x+DSP核。C64x+系统的存储器框图如图1所示。存储器被分成了三级:级是L1,包含数据存储器(L1D)和代码存储器(L1P);第二级是代码和数据共用存储器(L2);第三级是外部存储器,主要是DDR2存储器。L1P、L1D和L2的CACHE功能分别由相应的L1P控制器、L1D控制器和L2控制器完成。表1总结了C64x+平台上可用的CACHE情况。

图1C64x+存储器框图

表1C64x+CACHE特性

C64x+平台上L1P用来存储或者缓存代码;L1D用来存储或者缓存数据。L1P和L1D大小都是32K字节,可以分别配置0K、4KB、8KB、16KB或者32KB作为CACHE,其余作为代码或者数据RAM。作为CACHE的部分,用来缓存L2和DDR2的数据或代码。作为RAM的部分,可以存储关键的代码或者数据使得内核能够以很高的速度访问。C64x+平台上L2存储器可用于存储代码和数据。L2上可以分配256K字节CACHE来缓存DDR2中的数据或代码。L2中其余部分作为RAM存储代码和数据。

图2内核访问存储器流程

高速缓存一致性问题分析

在任何时刻,内核或者其它主机访问存储器中数据时,由于CACHE的存在造成不能够得到近更新过的数据,就会出现CACHE一致性问题。CACHE的一致性问题分为两个大类:内核读一致性问题和内核写一致性问题。在下面两个小节中,分别描述了这两种情况的模型:

内核读一致性模型

图3给出了内核读一致性的模型。在这个模型中,CACHE一致性问题的存在取决于图中虚线箭头指示的第二步操作能否在内核从CACHE中重新读数据之前完成。如果不能,则会造成内核读取的数据不是其它主机更新后的数据,而是原来CACHE中的内容,从而导致一致性的问题。

图3内核读一致性模型

L1PCACHE对L2内存或者DDR2外存中的代码进行缓存。当内核次对L2或者DDR2中的代码进行读操作的时候,由于代码不在L1PCACHE中,CAHCE硬件会将L2或者DDR2中的代码读到L1PCACHE中。内核可以得到的代码,不存在一致性的问题。此后,如果其它主机更新L2或者DDR2中的代码,然后内核再次读取此部分代码时,会发现相应的代码已经存在L1PCACHE中,此时内核会直接从L1PCACHE中读取代码。由于内核不能得到的代码,就出现了内核读一致性的问题。L1D内核读一致性问题的原理和L1P相同,只是L1D缓存的是L2或者DDR2中的数据。

内核写一致性模型

图4给出了内核写一致性的模型。在这个模型中,CACHE一致性问题的存在取决于图中虚线箭头指示的第二步操作能否在其它主机从存储器中读数据之前完成。如果不能,会造成其它主机从存储器中读到的数据是原来的数据而不是内核更新过的数据,从而导致一致性的问题。

图4内核写一致性模型

当内核对L2或者DDR2中的代码/数据进行写操作的时候,如果代码/数据已经在L1CACHE中,新的代码/数据会被更新到L1CACHE中。当其它主机从L2或者DDR2中读代码/数据的时候,会直接从L2或者DDR2中读取相应的内容,如果L1CACHE中新的代码/数据未被更新到L2或者DDR2中,则其它主机读取的不是更新后的内容,就会出现内核写一致性的问题。

C64x+一致性分析

C64x+上的CACHE一致性问题,需要根据放置代码/数据的相应位置进行分析。由于在C64x+平台上,L1P、L1D和L2内存既可以作为CACHE又可以作为存储器使用,因此,在分析一致性问题的时候,需要考虑以下几种情况:

1)代码在L1P存储器中;2)代码在L2存储器中;3)代码在DDR2存储器中;4)数据在L1D存储器中;5)数据在L2存储器中;6)数据在DDR2存储器中。

对于1),由于代码直接在L1P存储器中,不需要进行CACHE,所以不会存在一致性的问题。

对于2)和3),涉及到L1PCACHE,存在代码的更新能否被内核读到的问题。代码的更新分成两种情况:一是内核在运行过程中对代码进行修改;二是其它主机对代码的修改。这两种情况下,都会存在CACHE读一致性问题,需要由软件来维护。

对于4),数据直接在L1D存储器中,内核始终能够读到其它主机更新到L1D内存中的内容,内核写过的数据也能够被其它主机直接从L1D内存中读到。所以不会存在一致性的问题。

对于5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论