用于操作具有内部数据高速缓存器的CPU的方法 【技术领域】
本发明涉及使用CPU高速缓存器的方法、执行所述方法的芯片组和包括这些芯片组的装置。
背景技术
通常,作为CPU的CPU集成电路可以使用两种形式的存储器:CPU内的第一存储器(“数据高速缓存器”)和存储在一个或多个存储器芯片上的外部存储器。CPU地处理器能够比外部存储器更快速地存取数据高速缓存器,但数据高速缓存器的容量小于外部存储器,以及针对许多计算,CPU需要外部存储器的全部容量。因此,将数据高速缓存器设置用于存储外部存储器中的数据的副本。于是,处理器可以在其需要复制数据时对数据高速缓存器进行存取,而在其需要未被复制到内部存储器中的数据时,对外部存储器进行存取。
其结构如图1所示,示出了当CPU 3的处理器1需要对具有给定地址的数据进行存取时,其通过确定具有该地址的数据是否被存储在数据高速缓存器7中的高速缓存器控制器5来进行。如果是,则从中读取数据。如果不是,则使用系统总线11,从外部存储器9(可以采用一个或多个存储器芯片的形式)读取数据。当CPU 3从外部存储器9读取数据时,将数据镜像到数据高速缓存器7中,并将跳过从外部存储器9中的相同位置的下一读取存取,代替地,将从数据高速缓存器7中获得数据。当处理器将数据写入数据高速缓存器7中时,通常并不立即将其复制到外部存储器9中,而是在将要替换数据高速缓存器7中的相应数据时,将其写入外部存储器9中。应当注意,如图1所示的系统通常包括地址解码器(未示出),用于在CPU 3和外部存储器9之间传递信号。采用此地址解码器(未示出),因为可能会对外部存储器9进行分区,以及由地址解码器定义CPU存储器空间中的地址与外部存储器9中的地址之间的映射。例如,当CPU 3发出写指令时,解码器将CPU的存储器空间中的CPU 3的输出地址转换为已分区外部存储器9中的相应位置的地址。
图2示出了CPU的存储器空间中、如图1所示的系统的存储器地址映射。此存储器的全部对应于外部存储器9中的地址(在解码器所定义的映射下)。地址空间包括由处理器1用作用于执行其操作的读/写存储器的“存储器”部分4(将此存储器空间的变化部分镜像到数据高速缓存器7中)、以及作为执行计算实际上并不需要的存储器区域的“保留”部分6。
【发明内容】
本发明的目的在于提出一种对存储器进行存取的新的有用方式,以及实现所述方法的芯片组。
本发明基于以下事实:如果只使用存储在数据高速缓存器中的存储器,则能够以更高的性能来实现计算机的处理。例如,在具有几个处理器的系统中,如果这些处理器中的一个或多个只使用其各自内部的数据高速缓存器,将能够改善性能。这种较高的性能可以得自于更快的存储器存取和/或降低的外部存储器需求。
概括地,本发明提出了具有内部数据高速缓存器的CPU与伪接口协同操作,所述伪接口模拟了具有与高速缓存器相同地址空间的外部存储器的存在,但不能存储写入其中的数据。按照这种方式,能够对根据本设计的CPU进行操作,而无需将数据存储在外部存储器中的能力,至少针对其存储地址空间的一部分。
具体地,本发明的第一表述为一种数据处理系统,具有:
至少一个处理器芯片,包括处理器单元和内部数据高速缓存器;以及
伪接口,接收由所述处理器芯片写入其中的数据,并丢弃所述数据。
所述处理器也可以与提供初始化数据高速缓存器的数据的外部存储器芯片相连,例如,通过所述伪接口。
所述至少一个处理器芯片可以是也包括可以访问外部存储存储器的至少一个处理器芯片在内的多个处理器芯片中的一个或多个。
本发明的第二表述为一种操作处理芯片的方法,所述处理芯片具有处理器、内部数据高速缓存器和用于将写指令传输到集成电路之外以更新外部存储器的高速缓存器控制器,所述方法包括丢弃所述写指令,并针对由所述处理器操作的程序代码,设置为只需要所述数据高速缓存器作为存储器。
【附图说明】
现在,将仅为了示例的目的,参照以下附图,对本发明的实施例进行描述,其中:
图1示意性地示出了已知的数据处理系统;
图2示出了针对如图1所示的系统的地址映射;
图3示意性地示出了根据本发明的数据处理系统;
图4示出了由图3所示的系统所模拟的外部存储器;
图5示出了针对如图3所示的系统的地址映射;以及
图6示出了包括如图3所示的结构的系统。
【具体实施方式】
实施例如图3所示,其中以相同的参考数字表示与图1所示相同的组件。如图3所示,数据处理系统包括具有内部处理器的CPU处理器芯片3、高速缓存器控制器5和通过系统总线11与伪接口13相连的内部数据高速缓存器7。伪接口13与存储器19和地址解码器15相连。
在初始化阶段,伪接口13将初始化CPU 3所需的数据(包括程序代码)从存储器9读取到数据高速缓存器7的一部分中。
随后,在操作中,处理器1精确地在本系统中进行操作。但是,其运行的程序代码(即在初始化期间从存储器19上载的程序代码)使得处理器1所需的存储器量由数据高速缓存器7提供。高速缓存器控制器5按照传统的方式进行操作,执行对数据高速缓存器7的写操作,并通过向系统总线11传送写操作,试图保持对(实际上并不存在的)外部存储器17的更新,以对数据高速缓存器7中的内容进行镜像。将这些写指令传递给简单地丢弃其所接收到的数据的伪接口13。
地址解码器15按照类似于上述现有技术解码器的方式进行操作,但区别在于,其并不将写/读命令从CPU引导到外部存储器9。伪接口13和解码器15简单地丢弃来自CPU 3的写命令。在伪接口接收到来自CPU 3的读命令的情况下(如在一些实施例中,其可能在初始化过程中进行的那样),伪接口传送并不依赖于先前已经传送给其的数据的输出,例如,其可以总是输出“0”。在其中可以使用从伪接口13读取的数值将并非从外部存储器19复制的存储器部分初始化为零的数据高速缓存器7的初始化期间,可以是使用此特征。
现在,对从CPU 3的观点来看的情形进行分析。CPU的操作等同于伪接口并不丢弃数据而是作为执行对存储器17的读/写操作的正常接口的情形,伪接口的操作如图3所示:即,并不存储(“N/C”)写入其中的数据,而是在任何读操作中总是输出数值“0”。事实上,此存储器17并不存在,而CPU 3无法“得知”。
由于程序代码是使其只由数据高速缓存器7提供所需的存储器,处理器1按照与运行相同代码的如图1所示的系统精确相同的方式进行操作。但是,图3所示的系统具有需要更少存储器的优点,由于只需要如图3所示的外部存储器19来存储初始化数据,并可以比如图1所示的存储器9更小。
转到图5,示出了针对该系统的地址映射。在这种情况下,CPU 3的存储器空间完全由数据高速缓存器7定义。数据高速缓存器的部分14存储在初始化期间从外部存储器19读取的数据,并且在处理器1的操作期间,不覆写此部分。数据高速缓存器7的第二部分16是处理器1用于执行其计算的读/写区域。数据高速缓存器7的部分18是“保留的”,即在处理器1的操作中未被使用。
应当注意,CPU 3可以是作为数据处理系统的一部分的多个处理单元之一,如图6所示,具有主处理单元20和多个从处理单元21。在这种情况下,一个或多个CPU处理单元(例如,只是主处理单元20)可以具有按照如参照图1所述的传统方法保持更新以镜像该处理单元的内部数据高速缓存器的外部存储器23。其他CPU处理单元(例如,一些或全部从处理单元21)可以如图3所述,即不能将数据存储在外部存储器中,而是代替地只使用其内部数据高速缓存器来执行处理,并向丢弃其写指令的伪接口25传送其写指令。伪接口使用在随后的处理操作期间并不存储数据的一个或多个存储器芯片29来初始化从处理单元21。按照这种方式,改善了系统的整体性能,由于需要更少的读/写存储器23。与此同时,提高了系统的处理速度,由于多个处理器(例如从处理单元21)从不需要等待获得来自外部存储器的数据。
在这种系统中,具有向/从外部存储器23读/写数据的能力的惟一处理器芯片20是需要比其内部数据高速缓存器更大的读/写存储器以执行其任务的处理器芯片,以及写入整个处理芯片组20、21进行操作的程序代码,从而将需要比CPU的内部数据高速缓存器更大的存储器的所有任务都分配给可以访问外部存储器的那些CPU 20。