半导体装置、数据处理系统和半导体装置控制方法与流程

文档序号:11677194阅读:334来源:国知局
半导体装置、数据处理系统和半导体装置控制方法与流程

相关申请的交叉引用

包括说明书、附图和摘要的、2015年11月30日提交的日本专利申请no.2015-232944的公开的全部内容通过引用被并入本文中。

本发明涉及半导体装置、数据处理系统和半导体装置控制方法。例如,本发明涉及执行算术处理的半导体装置、数据处理系统和半导体装置控制方法。



背景技术:

近年来,广泛使用执行图像处理和各种其他算术处理的半导体装置。当将图像和其他数据写入存储器并且从存储器读取它们时,半导体装置例如遵循预定标准执行编码、解码、压缩和解压缩。

在例如日本未经审查的专利申请公开no.hei10(1998)-27127中描述了与压缩和解压缩相关的熟知技术。根据日本未经审查的专利申请公开no.hei10(1998)-27127,通过总线耦合到计算单元和存储装置的数据处理系统包括被设置在总线和计算单元之间的压缩电路和解压缩电路。压缩电路压缩指示计算单元处理的结果的数据并且将被压缩的数据存储在存储装置中。解压缩电路解压缩从存储装置读取的压缩数据并且用计算单元来处理被解压缩的数据。



技术实现要素:

执行各种算术处理的半导体装置优选地以适于算术处理的最佳配置来执行压缩和解压缩。因此,为了以增加的适宜度来执行压缩和解压缩,做出本发明的一方面。

从以下描述和附图中,其他优点和新颖特征将变得清楚。

根据本发明的一个方面,提供了一种半导体装置,所述半导体装包括计算模块和存储器控制模块。所述计算模块包括算术处理部和压缩部。所述存储器控制模块包括访问部和解压缩部。在所述计算模块中,所述算术处理部执行算术处理并且所述压缩部压缩指示算术处理的结果的数据。在所述存储器控制模块中,所述访问部将被压缩的数据写入存储器并且从所述存储器读取被写入的数据,所述压缩部压缩从所述存储器读取的数据并且将解压缩后的数据输出到所述计算模块。

本发明的以上方面能够以增加的适宜度执行压缩和解压缩。

附图说明

图1是示出根据第一基本示例的数据处理系统的示例性构造的示图;

图2是示出根据第二基本示例的数据处理系统的示例性构造的示图;

图3是示出根据第三基本示例的数据处理系统的示例性构造的示图;

图4是示出根据本发明的第一实施例的数据处理系统的示意性构造的示图;

图5是示出根据第一实施例的数据处理系统的示意性构造的示图;

图6是示出根据第一实施例的数据处理系统的示意性构造的示图;

图7是示出根据第一实施例的计算单元的输出数据的示图;

图8是示出根据第一实施例的计算单元的输出数据的示图;

图9是示出根据第一实施例的缓冲器的示例性构造的示图;

图10是示出根据第一实施例的缓冲器的输入/输出操作的示图;

图11是示出根据第一实施例的缓冲器的输入/输出操作的示图;

图12是示出根据第一实施例的缓冲器的输入/输出操作的示图;

图13是示出根据第一实施例的缓冲器的输入/输出操作的示图;

图14是示出根据第一实施例的缓冲器的输入/输出操作的示图;

图15是示出数据长度和存储器访问效率之间的关系的曲线图;

图16是示出根据本发明的第二实施例的压缩数据的示图;

图17是示出根据本发明的第三实施例的存储器控制模块的示例性构造的示图;

图18是示出根据第三实施例的存储器访问操作的示图;

图19是示出根据本发明的第四实施例的被压缩的数据的示图;以及

图20是示出根据第四实施例的存储器访问操作的示图。

具体实施方式

在下面的描述中和附图中,为了清楚说明,根据需要做出了省略和简化。另外,可由cpu、存储器、或其他电路来实现用于附图中被描绘为执行各种处理的功能块的各种元件的硬件,而例如可由被加载在存储器中的程序来实现用于这些元件的软件。因此,本领域的技术人员要理解,功能块不限于硬件或软件,但可仅仅由硬件,仅仅由软件,或由硬件和软件的组合以各种方式来实现该功能块。另外,用相同的参考标号来指定附图中的类似元件,并且将不对其进行冗余描述。

第一基本示例至第三基本示例

首先,将描述构成实施例的基础的第一基本示例至第三基本示例。图1至图3分别示出根据第一基本示例、第二基本示例和第三基本示例的数据处理系统的构造。

如图1至图3中所示,根据第一基本示例至第三基本示例的数据处理系统91-93均包括半导体装置(lsi)901-903和sdram200。sdram200存储半导体装置901-903的数据。半导体装置901-903包括多个计算模块110(例如,计算模块110_a-110_c)和存储器控制模块120。计算模块110通过例如数据总线130被耦合到存储器控制模块120。

计算模块110中的每个充当用于执行算术处理的计算部分,并且包括计算单元111(例如,111_a-111_c),以便实现算术处理功能。存储器控制模块120充当存储器控制部分并且为实现此控制功能包括访问电路121存储器控制部分其用于遵循来自计算模块110的请求控制相对于sdram200的读/写操作,。计算单元111通过数据总线130和存储器控制模块120将数据存储在sdram200中并且从sdram200读取数据。sdram200是用于存储半导体装置的数据的存储器的示例,因此可被不同的存储装置取代。

半导体装置901-903还包括压缩电路11和解压缩电路21。压缩电路11压缩指示计算结果的数据。解压缩电路21解压缩被压缩的数据。半导体装置901、半导体装置902和半导体装置903是在压缩电路11和解压缩电路21的布局方面不同的示例。

如图1中所示,根据第一基本示例的半导体装置901被构造成,使得压缩电路11和解压缩电路21被设置在计算模块110和数据总线130之间。压缩电路11和解压缩电路21与数据总线130成一对一关系。如图2中所示,根据第二基本示例的半导体装置902被构造成,使得压缩电路11和解压缩电路21被设置在存储器控制模块120中。压缩电路11和解压缩电路21与存储器控制模块120成一对一关系。

各计算单元111基于其算术处理的特征来输出输出数据。也就是说,对于不同的计算单元而言,开始传递输出数据的地址、传递的长度、和数据的格式(连续或离散的)不同。当如第一或第二基本示例中一样压缩电路11和解压缩电路21与数据总线130或存储器控制模块120成一对一关系时,压缩电路需要压缩所有计算单元111的输出。在这种情况下,压缩效率不可被增大。更具体地,尽管对于不同的计算单元而言输出特性不同,但使用同一压缩电路来进行压缩。因此,不可在适于压缩的数据结构中执行压缩。这样造成了压缩效率减小的问题。

同时,如图3中所示,根据第三基本示例的半导体装置903被构造成,使得压缩电路11和解压缩电路21被设置在各计算模块110之间。压缩电路11和解压缩电路21与各计算单元111成一对一关系。即使当如第三基本示例中一样压缩电路11和解压缩电路21与各计算单元111成一对一关系时,压缩效率也可能不被增大。原因在于,当指示计算结果的数据将被另一个计算单元使用时,数据需要被压缩在公共数据结构中,以便允许其他计算单元解压缩该数据。如果公共数据结构用于压缩,则不可根据各计算单元的输出来压缩数据。这造成与以上提到的问题类似的问题。

另外,当采用第三基本示例中说明的构造时,不执行压缩的计算单元111_c需要解压缩电路21_c读取被另一个计算单元111压缩的数据。因此,对于所有的计算单元而言,都需要解压缩电路。这样造成了电路面积增大的问题。

此外,例如,可使用sdram来作为存储装置。然而,取决于计算单元111所生成的数据的特性,数据在结构中可以不是连续的。这样造成了sdram的传递效率不可轻易被增大的问题。

第一实施例

现在,将参照附图描述本发明的第一实施例。

<第一实施例的概况>

图4示出根据本发明的第一实施例的数据处理系统的示意性构造。如图4中所示,根据本实施例的数据处理系统1包括半导体装置100和sdram200。如第一基本示例至第三基本示例的情况一样,根据本实施例的数据处理系统1包括多个计算模块110(例如,计算模块110_a至110_c)和存储器控制模块120。计算模块110均包括计算单元111(111_a-111_c)。一些计算模块110还包括压缩电路(例如,压缩电路11_a、11_b)。存储器控制模块120包括访问电路121和解压缩电路21。如图5中所示,根据本实施例的半导体装置100可至少包括在图4中描绘的计算模块110和存储器控制模块120。更具体地,计算模块110至少包括:计算单元(算术处理部)111,其执行算术处理;以及压缩电路(压缩部)11,其压缩指示算术处理结果的数据,并且存储器控制模块120包括:访问电路(访问部)121,其将被压缩的数据写入sdram(存储器)200中并且从sdram200读取被写入的数据;以及解压缩电路(解压缩部)21,其解压缩从sdram200读取的数据并且将被解压缩的数据输出到计算模块110。

如上所述,包括计算部分(计算模块)和存储器控制部分(存储器控制模块)的根据本实施例的数据处理系统被表征为,使得计算部分包括压缩待被输出的数据的压缩电路,并且使得存储器控制部分包括解压缩从存储器读取的数据(当数据被压缩时解压缩数据)的解压缩电路。因为计算部分包括压缩电路,所以可根据计算单元的数据来执行压缩。因为存储器控制部分中的解压缩单元解压缩被压缩的数据并随后将被解压缩的数据发送到各计算部分,所以所有计算部分可使用被存储在存储器中的被压缩的数据和未被压缩的数据二者。并非所有计算部分都需要包括解压缩电路。这样使得可以抑制电路面积的增大。

<第一实施例的构造>

图6示出根据本实施例的数据处理系统的详细示例性构造。如图6中所示,根据本实施例的半导体器件100被构造成,使得一些计算模块110包括除了图4中描绘的元件之外的缓冲器112。

半导体器件100被构造成,使得各计算模块110包括计算单元111、缓冲器112和压缩电路11。缓冲器112是转换部,其将指示算术处理结果的数据转换成以压缩处理单位而形成的数据,将指示计算单元111计算结果的、来自计算单元111的输出数据保持在适于压缩的压缩数据结构中,并且将被保持在压缩数据结构中的数据传递到压缩电路11。压缩电路11压缩被输入的数据并且通过数据总线130将被压缩的数据传递到存储器控制模块120。存储器控制模块120将传递的被压缩的数据201存储在外部sdram200中。解压缩电路21被设置在存储器控制模块120中,使得从sdram200读取的被压缩的数据210在被发送到数据总线130之前被解压缩。请求读取的计算模块110将指示数据是被压缩还是被解压缩的控制信号发送到存储器控制模块120。

在图6的示例中,半导体器件100包括计算模块110_a-110_d。例如,计算模块110_a、110_b分别包括计算单元111_a、111_b、缓冲器112_a、112_b和压缩电路11_a、11_b,并且计算模块110_c、110_d分别包括计算单元111_c、111_d。

例如,计算模块110_a(计算单元111_a)是解码图像数据(视频数据)的解码器。计算模块110_a解码数据,然后压缩被解码的数据,并且将结果得到的被压缩的数据201存储在sdram200中。

计算模块110_b(计算单元111_b)是图像处理装置(gpu),其对通过计算模块110_a解码的图像数据执行诸如放大和缩小的图像处理(视频处理)。计算模块110_b通过解压缩电路21从sdram200获取解码后的被压缩的数据201,对所获取的数据执行图像处理,压缩图像处理后的数据以得到被压缩的数据201,并且将被压缩的数据201存储在sdram200中。

计算模块110_c(计算单元111_c)使用从计算模块110_b获取的图像处理后的数据,以便例如通过添加诸如菜单的gui,生成显示画面数据。计算模块110_c通过解压缩电路21从sdram200获取图像处理后的压缩数据201,然后生成显示画面数据,并且将所生成的显示画面数据作为未被压缩数据的202存储在sdram200中。

计算模块110_d(计算单元111_d)是cpu,其通过使用由计算模块110_a-110c进行操作控制和计算的结果来执行应用处理。计算模块110_d从sdram200获取诸如显示画面数据的未被压缩的数据202,然后对未被压缩的数据202执行应用处理,并且将处理后的未被压缩的数据202存储在sdram200中。

<第一实施例的操作>

首先,将描述根据本实施例的计算模块110(例如,计算模块110_a)执行的操作。

压缩电路11通过使用数据的冗余压缩数据,来减少数据量。例如,通过使用目标像素和参考像素之间的差异来压缩图像数据。因此,相邻像素由于它们的差异小而往往会以高压缩比被压缩。因此,为了通过压缩高效减少数据量,优选地,以具有预定长度的连续数据(诸如块数据的在连续地址处的数据)为单位来执行压缩。

然而,从计算单元111输出的数据不是总具有适于压缩的结构。更具体地,取决于计算单元111执行的处理和数据的特性,从计算单元111输出的数据的次序可与sdram200的缓冲器的地址的次序不一致。在这种情形下,数据在地址非连续的地方被分段。因此,不能够高效地压缩数据。依据这些情形,本实施例没有直接压缩来自计算单元111的输出数据,而是将输出数据存储在缓冲器112中,将缓冲器112中的输出数据转换成适于压缩的结构(具有预定长度和连续地址的结构),然后允许压缩电路11压缩输出数据。

下面描述以下示例:计算单元111(例如,计算单元111_a)是具有遵循h.265视频压缩标准的去块滤波器的解码器并且解码器的输出被转换成针对4个垂直像素行的64个水平像素的连续256字节数据的被压缩的数据结构。

根据h.265视频压缩标准,以个体图像(图片)为单位压缩视频图像。压缩后的图片被粗略分类成三种类型:i、p和b。

通过仅仅使用关于i图片的数据来压缩i图片并且可以以图片为单位来解码i图片。通过使用图片和前一解码结果(被解码的图像)之间的差异,压缩p或b图片。因此,p和b图片的被压缩的数据的大小小于i图片的被压缩的数据的大小。当对于p或b图片将生成差异数据时,可从待被参考的解码图像中选择任意位置处的数据。例如,选择使被压缩的数据量最少的位置处的数据。

根据h.265标准,采用去块滤波器来提高视频图像压缩效率和主观的视频图像质量。计算单元111包括去块滤波器df。去块滤波器df减少了在图像解码期间出现的块失真。

例如,计算单元111通过执行熵解码或逆量化/逆变换来实现解码,并且去块滤波器df被用作解码最后阶段中的环内滤波器。因此,从计算单元111输出的h.265解码图像是去块滤波后的数据。也就是说,数据可从去块滤波后的数据开始被按顺序地存储在sdram的缓冲器中。通过h.265标准来限定次序,在该次序中将由去块滤波器df来处理关于图像的位置。因此,计算单元111输出数据的次序随着被处理的图像内的位置而变化。

根据h.265标准,以被称为ctb(树形编码块)的正方形像素块为单位执行编码处理和解码处理。ctb的大小是可选择的。在一些情况下,可选择的大小是16×16个像素、32×32个像素和64×64个像素。下面描述ctb大小是64×64个像素的示例。

图7示出当ctb大小是64×64个像素时输出亮度数据的次序。图8是示出图7的部分的放大视图。如图7中所示,取决于待被处理像素的位置,计算单元111以1行16个水平像素为单位在垂直方向上连续输出8、12和16个像素。也就是说,如图7和图8中的箭头所指示,以16×8个像素、16×12个像素和16×16个像素的输出块ob为单位来输出数据。

根据h.265标准,ctb被进一步划分成分级块,以便执行编码处理和解码处理。例如,ctb被划分成多个cb(编码块),并且各cb被再分成多个pb(预测块)或tb(变换块)。以cb为单位执行一系列编码/解码处理,诸如预测内/预测间处理、变换/量化和逆量化/逆变换处理、熵编码/解码处理。以pb为单位执行预测内/预测间处理。以tb为单位执行变换/量化和逆量化/逆变换处理。去块滤波器df以pb为单位或者以tb为单位执行滤波处理。输出块ob例如是pb或tb,这是因为去块滤波器df以ob为单位执行处理。

去块滤波器df通过参考与块相邻的边界像素来执行滤波处理。因此,去块滤波器df能够直到完成对下一个相邻块(水平或垂直的相邻块)的滤波处理前不输出数据。因此,去块滤波器df不以ctb大小为单位而是以与ctb大小不同的大小为单位来输出数据。

在图7的示例中,将从计算单元111输出的数据以64×64个像素为单位从图像的位置向左水平移位16个像素并且向上垂直移位4个像素。也就是说,处理单位与用于ctb的处理单位不相同。由最左端的48个像素、中间的64个像素和最右端的80个像素形成水平输出的数据,由最上端的60个像素、中间的64个像素和最下端的68个像素形成垂直输出的数据。

更具体地,首先输出48×60个像素的输出块组obu1,然后在水平方向上连续输出64×60个像素的输出块组obu2,并且最后在水平方向上输出80×60个像素的输出块组obu3。从48×64个像素的输出块组、64×64个像素的输出块组、直至80×64个像素的输出块组obu6依次输出随后水平方向的数据。在输出块组obu4-obu6在垂直方向上被连续输出之后,最终在垂直方向上输出48×68个像素的输出块组obu7。随后,在垂直方向上连续输出64×68个像素的输出块组obu8之后,最终在垂直方向上输出80×68个像素的输出块组obu9。

如所指示的,例如,在图8中,当输出块组obu被输出时,从输出块ob1、被设置于下方的输出块ob11、被设置于右上方的输出块ob2、被设置于右侧的输出块ob3、被设置于左下方的输出块ob12、直至被设置于右方的输出块ob13等等依次输出第一输出块组obu1,并且从输出块ob4、被设置于右方的输出块ob5、被设置于左下方的输出块ob14、被设置于右侧的输出块ob15等依次输出下一个输出块组obu2。

如上所述,计算单元111以图7和图8中的箭头所指示的次序输出数据。因此,如果照原样采用此输出次序,则结果得到的图像数据的位置关系不同于实际的图像数据的位置关系。更具体地,虽然实际图像是由输出块ob1、ob2、ob3、ob4等的连续序列水平形成的,但输出数据是非连续的,因为如箭头所指示的它是由输出块ob1、ob11、ob2、ob3等的非连续序列形成的。

在本实施例中,缓冲器112将图7和图8中描绘的输出数据转换成以64×4为单位形成的连续图像数据结构。图9示出实现缓冲器112的示例性构造。根据本实施例的缓冲器可具有以上提到的数据结构。因此,可采用任何构造进行数据输入和数据输出。缓冲器112中的缓冲控制部分可控制缓冲器112中的数据的输入次序和输出次序。替代方式是让计算单元控制输入至缓冲器112的数据的次序并且让压缩电路控制从缓冲器112输出的数据的次序。

如图9中所示,缓冲器112包括两个堆积:堆积bk0和堆积bk1。堆积bk0、bk1不需要总是物理上被划分的堆积。可供选择地,一个物理缓冲器的前一半和后一半可分别被用作堆积bk0和堆积bk1。堆积bk0、bk1的大小相同。各堆积能够存储由高达64×68个像素形成的数据。

堆积bk0、bk1具有水平方向上的四个16像素区和垂直方向上的两个个区域,这两个区域即为32行区域和36行区域。也就是说,堆积bk0包括16×32个像素区ar01-ar04和16×36个像素区ar05-ar08,并且堆积bk1包括16×32个像素区ar11-ar14和16×36个像素区ar15-ar18。

水平区域中的16个像素的大小与各输出块ob的大小相同,堆积中的水平64个像素的大小与输出块组obu2、obu5、obu8(或ctb)的大小相同。垂直区域中的32行36行的大小与输出块组obu7、obu8、obu9的上两个块和下三个块的大小相同。

现在,将参照图10至图14详细描述当计算单元111从图像的左上方开始输出数据时由缓冲器112执行的存储操作。

由48×60个像素形成第一ctb的输出数据(obu1)。如图10中所示,以箭头所指示的次序将输出块组obu1中的数据存储在缓冲器112的堆积bk0中。以图7和图8中指示的次序输出输出块组obu1中的块。因此,缓冲器112将以指定次序将输出块ob1、ob11存储在区域ar01中,将输出块ob2存储在区域ar02中,将输出块ob3存储在区域ar03中,将输出块ob2之后的输出块ob12存储在区域ar02中,并且将输出块ob3之后的输出块ob13存储在区域ar03中。随后,以指定次序将数据存储在区域ar05-ar07中,将输出块组obu1存储在堆积bk0中。在这个阶段中,并未占用堆积bk0的区域ar04、ar08,并且还被准备好以64×4为压缩单位的数据。因此,从缓冲器中不输出数据。

由64×60个像素形成针对第二ctb的输出数据(obu2)。如图11中所示,以箭头所指示的次序将输出块组obu2中的数据存储在缓冲器112的堆积bk0、bk1中。在这种情形下,因为输出块组obu1中的数据被存储在堆积bk0的区域ar01-ar03、ar05-ar07中,所以堆积bk0的未被占用区域(ar04和ar08)和堆积bk1的区域被使用。以图7和图8中指示的次序输出输出块组obu2中的块。因此,缓冲器112将输出块ob4存储在区域ar04中,将输出块ob5存储在区域ar11中,将输出块ob4之后的输出块ob14存储在区域ar04中,并且将输出块ob3之后的输出块ob15存储在区域ar11中。随后,将数据以指定次序存储在区域ar12-ar14、ar08、ar15-ar18中。

当针对第二ctb的输出数据(obu2)被存储在缓冲器112中时,以64×64为单位(压缩单位)的许多连续数据ol在堆积bk0中被准备好。从缓冲器112读出这些连续数据ol并且将其发送到压缩电路11。

压缩电路11压缩从缓冲器112接收的连续数据ol。压缩电路11可使用任何压缩方法,只要解压缩电路21可解压缩由压缩电路11压缩的数据。例如,可使用dpcm(差分脉冲编码调制)方法、无损压缩方法、或有损压缩方法。在完成数据压缩后,压缩电路11通过数据总线130将被压缩的数据发送到存储器控制模块120。存储器控制模块120将接收到的压缩数据存储在sdram200的缓冲器中。

在从堆积bk0读取以64×4为单位的连续数据ol之后,被如图13中所示堆积bk0是未被占用的,并且准备存储数据。接下来,如图14中所示,堆积bk1的未占用区域(ar14和ar18)和堆积bk0的未占用区域被用于存储用于下一个ctb的输出数据。随后,堆积bk0和堆积bk1被交替地用于重复地存储从计算单元111接收的数据并且以64×4为单位读取该数据。

在以上示例中,为了简化说明,假设在存储了用于ctb的整个数据之后,读取以64×4为单位的数据。然而,事实上,本实施例不限于此方案。更具体地,当以64×4为单位的数据准备就绪时,就可对其进行读取。

现在,将描述根据本实施例的存储器控制模块120执行的操作。本实施例的特征主要是存储器的读取操作。因此,以下描述读取操作。

如图6中所示,用于解压缩被压缩的数据的解压缩电路21被设置在存储器控制模块120中。请求进行读取的计算模块110将读取的命令和标志发送到存储器控制模块120。该标志指示是否压缩待被读取的数据。遵循该读取命令,存储器控制模块120(访问电路121)从sdram200读取数据并且参考对于该命令的标志。如果该标志指示所读取的数据未被压缩,则存储器控制模块120将从sdram200读取的数据照原样发送到计算模块110。如果相反,对于该命令的标志指示所读取的数据被压缩,则存储器控制模块120将所读取的数据转发到存储器控制模块120中的解压缩电路21,允许解压缩电路21解压缩所读取的数据,并且将解压缩后的所读取的数据发送到计算模块110。当计算模块110(计算单元)指定标志时,可在计算模块110(计算单元)的控制下读取被压缩的数据201或未被压缩的数据202。

<第一实施例的有益效果>

如上所述,本实施例被构造成使得缓冲器被设置在计算模块中。因此,数据被缓冲,然后被压缩。因此,数据被转换成适于压缩的数据结构,以便增大压缩比。

另外,未被压缩的数据的长度增大。因此,即使在压缩之后,被压缩的数据的长度足以实现半导体器件和sdram之间的高传递效率。图15的曲线图指示相对于单个数据传递长度的sdram的传递效率(访问效率)。

例如,假设未被压缩的数据的长度是128个字节,随后当数据被压缩时,减至一半,也就是说,至64个字节。当数据长度是128个字节时,传递效率近乎是100%。然而,当数据长度是64个字节时,传递效率是大致50%。50%的传递效率意味着两个传递周期之中的一个是不可用的。因此,结果得到的情形等同于传递128个字节的情况。也就是说,半导体器件和sdram之间的传递量被大幅减少。因此,优选地应该使数据长度即使在数据压缩之后也适于实现高效传递。例如,256个字节的数据长度应该被减至128个字节的数据长度。优选地,被压缩的数据的长度接近于128个字节的数据传递长度(传递速率)。

此外,因为存储器控制模块包括解压缩电路,所以可在将被压缩的数据发送到各计算模块之前对其进行解压缩。因此,当提供指示被压缩的数据是访问目标的信息时,甚至不具有解压缩电路的计算模块也可使用sdram中的被压缩的数据和未被压缩的数据二者。

第二实施例

现在,将参照附图描述本发明的第二实施例。第二实施例可应用于第一基本示例至第三基本示例或第一实施例,并且其与第一基本示例至第三基本示例或第一实施例的不同之处只在于对被压缩的数据的存储的方法。

图16是第二实施例中的被压缩的数据的存储的图像。如图16中所示,图1至图6中描绘的压缩电路11对数据进行压缩,然后该数据被存储在sdram中。

例如,压缩电路11以256个字节为单位压缩从计算单元111输出的数据。被压缩的数据的数据长度短。因此,如果被压缩的数据被连续地存储在sdram中,则数据的地址是未对准的。为了直接访问其地址是未对准的数据,需要将在改变之前分配的地址和在改变之后分配的地址彼此关联地进行存储。

鉴于以上情形,如图16中所示,本实施例致使压缩电路11从256个字节的初始地址开始存储被压缩的数据,对于未被压缩的数据而言,同样如此。更具体地,当将被压缩的数据存储在sdram200中时,本实施例只存储被压缩的数据的地址,而不改变256个字节的初始地址。

如上所述,当以256个字节为单位进行考量时,本实施例中的用于被压缩的数据的存储的地址与用于未被压缩的数据的存储的地址相同。这样消除了保持诸如缓冲器的初始地址的未被压缩的数据的地址的需要。另外,可按随机次序访问(随机访问)任何被压缩的数据。

第三实施例

现在,将参照附图描述本发明的第三实施例。第三实施例可应用于第一或第二实施例,并且其与第一或第二实施例的不同之处只在于存储器控制模块的构造。

图17示出根据第三实施例的存储器控制模块120的示例性构造。图18示出根据本实施例的数据读取操作的示例。

如图17中所示,通过在根据第一或第二实施例的存储器控制模块120中添加地址转换器122和mmu(存储器管理单元)123,得到根据本实施例的存储器控制模块120。地址转换器122接收命令指定的逻辑地址并且将接收到的逻辑地址转换成另一个逻辑地址。mmu123将转换后的逻辑地址转换成sdram中的物理地址。访问电路121根据该物理地址来访问sdram200。另外,地址转换器122(或解压缩电路21)基于转换后的逻辑地址确定数据是否被压缩。例如,解压缩电路21在被请求的地址被包括在第一地址区域中时解压缩所读取的数据,并在被请求的地址被包括在第二地址区域中时不解压缩所读取数据。例如,当第一地址区域的转换后的地址区域和第二地址区域的转换后的地址区域是sdram中的相同地址区域时,可实现高效的存储器使用。

在本实施例中,存储被压缩的数据的逻辑地址区域(区域a)被重新映射到另一个逻辑地址区域(区域b)。当访问区域b中的地址时,地址转换器122将该地址转换成区域a中的逻辑地址。例如,地址转换器122包括映射未转换的逻辑地址和转换后的逻辑地址的映射表(和指示数据是否被压缩的信息)。通过参考映射表,地址转换器122使地址经受转换或逆转换并且确定数据是被压缩的还是未被压缩的。

如图18中所示,地址转换器确定通过访问区域a而读取的数据是从区域a读取的未被压缩的数据。因此,从sdram200的区域a读取的数据被照原样输出到计算模块110。地址转换器确定通过访问区域b而读取的数据是从区域a读取的被压缩的数据。因此,由解压缩电路21从dram200的区域a读取的数据进行解压缩,并且被解压缩的数据作为区域b数据被输出到计算模块110。

根据本实施例,可根据待被读取的地址区域,进行未被压缩的数据和被压缩的数据之间的切换。也就是说,当将要读取被存储在存储器中的数据时,可根据待被读取的地址区域来指定被压缩的数据是否将被解压缩。这样使得可以删除指示从计算模块输出的数据是否被压缩的标志。另外,可以具有将被重新映射的多个区域并且对于各区域而言在被压缩的类型和未被压缩的类型之间切换。

第四实施例

现在,将参照附图描述本发明的第四实施例。第四实施例可应用于第二或第三实施例,并且其与第二或第三实施例的不同之处只在于压缩数据的映射。

图19是第四实施例中的被压缩的数据的存储的图像。图20示出根据本实施例的数据读取操作的示例。

如图19中所示,使用将256个字节压缩成128个字节的、根据第二实施例的固定长度压缩方法来存储数据,通过对256个字节的压缩单位的前一半和后一半采用不同映射方案(区域)来压缩该数据。尽管在第三实施例中限定了区域a和b,但在本实施例中另外限定了作为第三重新映射区域的区域c。例如,区域b被映射到256个字节之中的前128个字节,区域c被映射到256个字节之中的剩余128个字节。也就是说,为解压缩256个字节之中的前128个字节的被压缩的数据而访问区域b,为解压缩剩余的128字节的数据而访问区域c。在以上示例中,存储有两个数据,即,256个字节的压缩单位的前一半和后一半。然而,可供选择地,可存储三个或更多数据。

如图20中所示,确定通过访问区域a而读取的数据是从区域a读取的传递数据(诸如,不需要解压缩的未被压缩的数据)。因此,从sdram200的区域a读取的数据被照原样输出到计算模块110。确定通过访问区域b而读取的数据是将从区域a中的256个字节之中的前128个字节读取的被压缩的数据。因此,从sdram200的区域a中的256个字节之中的前128个字节读取的数据(数据0-125、256-384、512-640和768-896)被解压缩电路21解压缩,并且解压缩后的数据作为区域b中的数据(数据1024-2048)被输出到计算模块110。确定通过访问区域c而读取的数据是将从区域a中的256个字节之中的剩余128个字节读取的被压缩的数据。因此,从sdram200的区域a中的256个字节之中的剩余128个字节读取的数据(数据128-256、384-512、640-768和896-1024)被解压缩电路21解压缩,并且解压缩后数据作为区域c中的数据(数据2048-3072)被输出到计算模块110。

根据本实施例,多个区域中的被压缩的数据被存储在sdram的一个区域中。因此,根据解压缩后的数据的大小,缓冲器大小可加倍。另外,如结合第二实施例所描述地可实现随机访问。此外,如结合第三实施例所描述地,可删除指示从计算模块输出的数据是否被压缩的标志。

虽然已经参照实施例详细描述了本发明的发明人所做出的本发明,但本发明不限于上述实施例。本领域的技术人员将理解,可在不脱离本发明的精神和范围的情况下,进行各种修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1