具体实施方式
以下,根据附图对本发明的实施方式进行说明。但是,本发明的技术范围不限定于这些实施方式,还包括权利要求书中记载的事项及其等同物。
[图像编码系统、存储器控制器、存储器装置的概要]
图1是图像编码系统的结构图。本实施方式的存储器装置对应于存储图像数据等二维阵列数据的帧存储器10。图像编码系统具有处理选择部18和编码处理部20,处理选择部18对输入图像数据IMin选择在同一帧内进行压缩的帧内预测处理和在时间轴方向上进行压缩的帧间预测处理中的一个处理,编码处理部20基于选中的处理进行输入图像数据IMin的编码并输出编码后的输出图像数据CDout。并且,图像编码系统具有帧内预测处理部14以及包含运动预测处理17的帧间预测处理部16。此外,帧内预测处理部14和帧间预测处理部16分别经由存储器控制器12访问帧存储器10,针对存储在帧存储器中的图像数据中期望区域的图像数据进行读或写。处理选择部18基于帧内预测处理的结果和帧间预测处理的结果来选择更合适的处理。帧内预测处理部14和帧间预测处理部16经由存储器控制器12频繁访问帧存储器10。因此,帧存储器10需要高效地进行通过帧内预测处理部14和帧间预测处理部16对期望区域的图像数据的访问。
上述的帧内预测处理和帧间预测处理例如是在MPEG标准的压缩技术中进行的处理。在这些处理中,高频率地进行向帧存储器10的图像数据的写入和从帧存储器10的图像数据的读出。例如,在帧间预测处理中,进行在时间轴方向上不同的帧图像之间检测相同图像的运动方向并求出运动矢量的运动预测处理。在该运动预测处理中,需要进行搜索16×16像素的小矩形区域的图像移动到不同帧的图像内的哪个位置的处理,并重复进行对帧存储器10的读动作。
图2A和图2B是用于说明图像编码系统中针对图像数据的访问区域的指定的图。在图2A的矩形区域访问的情况下,处理部14、16向存储器控制器12提供访问区域22的起点坐标(Xa、Ya)、水平方向的长度Lh、垂直方向的高度Lv、以及倾斜度0°的信息。此外,在图2B的菱形区域访问的情况下,处理部14、16向存储器控制器12提供访问区域22的起点坐标(Xa、Ya)、第一方向的长度Lh、第二方向的长度Lv、以及倾斜度45°的信息。
本实施方式中的存储器装置被构成为能够以更高的效率(更大的带宽)访问上述那样的存储区域。存储器装置例如能够根据访问区域的形状而向图像数据的行方向或列方向进行突发读和突发写。并且,存储器装置能够根据访问区域的倾斜度而向期望倾斜度的倾斜方向进行图像数据的突发读和突发写。此外,存储器装置还能够将突发方向切换为正向和反向中的任意方向。此外,存储器装置还能够基于一次的列系统指令和列地址来对二维的访问区域内的图像数据连续地进行突发读或突发写。
图3是示出本实施方式中的存储器控制器的结构以及与存储器装置的连接结构的图。存储器控制器12从图1的处理部14、16等上级系统接受存储器映射信息MAP的提供,并将该存储器映射信息MAP保存在寄存器34中。存储器映射信息MAP是有关在存储器装置10中如何保存二维阵列数据的信息。此外,存储器控制器12接受访问控制数据Acn的提供,并由存储器寄存器控制部35生成应对存储器装置10内的模式寄存器40进行设定的模式寄存器设定数据MRSdata。该模式寄存器设定数据MRSdata中例如包含由列地址控制部14生成列地址时的步伐信息STEP或宽度信息WIDTH等。关于这些步幅信息STEP或宽度信息WIDTH等,将在存储器装置的说明中进行详细说明。
存储器控制器12从上级系统输入用于指定访问区域的起点坐标(Xa、Ya)、倾斜度SLOP、长度Lh和Lv的信息,由突发方向判定部32判定最佳的突发方向,并生成突发方向信息(对应于后述的矢量地址VA)。并且,地址计算部30基于起点坐标(Xa、Ya)和突发方向信息来计算应向存储器装置10输出的地址。
存储器控制器12经由指令总线(例如4比特)38、地址总线(例如12比特)37、数据总线(例如32比特)36而与存储器装置10连接。指令发出部33生成各种指令、用于指定激活ACT、预充电PRE、读RD、写WR、模式寄存器设置MRS等的4个指令信号/CS,/RAS,/CAS,/WE,并以恰当的定时输出至指令总线38。与指令发出部所发的指令同时,地址发出部31将存储体地址BA、行地址RA、列地址CA、矢量地址VA、模式寄存器设置数据MRSdata等输出至地址总线37。此外,存储器控制器12向数据总线36输出写数据,从数据总线36输入读数据。
存储器控制器12对存储器装置10的控制例如如下进行。存储器控制器12在接通电源时或者在其它预定的定时,将模式寄存器设置数据MRSdata与模式寄存器设定指令MRS一起输出。响应于此,存储器装置10向模式寄存器40中保存模式寄存器设置数据MRSdata。当进行读或写动作时,存储器控制器12随同激活指令ACT一起输出存储体地址BA和行地址RA,使存储器装置10中的与存储体地址BA以及行地址RA对应的页区域成为激活状态。之后,存储器控制器12随同读指令RD或写指令WD一起输出存储体地址BA、列地址CA以及矢量地址VA,从而访问处于激活状态的页区域内期望的存储单位区域。这里,存储单位区域是通过地址被选择的、具有存储胞群的区域,所述存储胞群由多个比特或多个字节构成。
此外,在突发模式下,存储器装置10内的列地址控制部41根据提供而来的列地址CA和矢量地址VA,依次生成与访问区域内的扫描方向对应的内部列地址,使具有胞阵列的存储器核(没有图示)连续进行与扫描方向对应的多个存储单位区域的数据的输入输出。即,存储器装置10在突发模式下,能够响应于一次的列系统指令(读或写)与列地址而连续地读或写在任意的扫描方向上的二维阵列数据。
此外,当扫描方向为倾斜方向时,存储器装置通过向模式寄存器中设定步伐信息STEP并且输入矢量地址VA,还能够向任意的角度方向进行突发访问。此外,当访问区域为二维区域时,通过向模式寄存器中设定宽度信息WIDTH,响应于一次的列系统指令(读或写)与列地址,列地址控制部14能够连续生成与二维访问区域对应的列地址,存储器装置10能够对二维访问区域内的数据连续进行读或写。
上述的存储体地址BA、行地址AV、列地址CA等既存在由存储器控制器多路(时分)地提供给存储器装置的情况,也存在由存储器控制器非多路(非时分而一并)地提供给存储器装置的情况。
图4是本实施方式中的存储器装置的结构图。如图3中的说明,存储器装置10从存储器控制器经由指令纵向38输入用于指定指令的指令信号/CS、/RAS、/CAS、/WE,指令控制部40对应这些指令来控制模式寄存器40、行定时控制部43、列定时控制部42。例如,响应于模式寄存器设定指令MRS,指令控制部40向模式寄存器40中设定被提供至地址总线37上的模式寄存器设置数据MRSdata。此外,响应于激活指令ACT,指令控制部40控制行定时控制部43进行激活动作。此外,响应于读或写指令RD、WD,指令控制部40控制列定时控制部42进行读或写动作。
存储器装置10从存储器控制器经由地址总线37输入地址信号A[11:0],外部行地址raext经由行缓冲器46被提供给行地址控制部44,外部列地址caext经由列缓冲器45被提供给列地址控制部41。此外,存储器装置10从存储器控制器经由专用总线39或者经由地址总线37的一部分比特而输入矢量地址VA[2:0],外部矢量地址vaext被提供给列地址控制部41。并且,与设定在模式寄存器40中的步伐信息或宽度信息对应的控制信号selcntext也被提供给列地址控制部41。
此外,行地址控制部44根据外部行地址raext生成内部行地址raint,并将该内部行地址raint提供给行译码器50。行地址例如由12比特构成。此外,列地址控制部41基于外部列地址caext、矢量地址vaest、控制信号selcntext等来生成内部列地址caint,并将该内部列地址caint提供给列译码器49。对于从外部提供到存储器装置10的地址和控制信号,在参考符号上添加“ext”。此外,对于在存储器装置10的内部生成的地址和控制信号,在参考符号上添加“int”。
图5是示出本实施方式中的存储器装置的存储器映射的一个例子的图。在图5中,包括显示设备1的图像处理系统中的图像数据被存储在存储器装置10内。图像数据由各像素的亮度信号Y和色差信号Ca、Cb或各像素的RGB灰阶信号等数据构成,各信号例如由8比特(1字节)数据构成。
另一方面,存储器装置10通常由SDRAM等在半导体基板上形成了集成电路的大容量且高速的半导体存储器装置构成。这样的存储器装置由多个存储体、在图1中为4个存储体Bank0~3构成,每个存储体Bank0具有多个块BLK-0,每个块具有多个字线WL、位线BL以及它们的交叉位置的存储胞MC。虽然不进行图示,但存储胞包括其栅极连接在字线上的MOS晶体管和连接在该MOS晶体管上的电容器。另外,在图5的例子中,4个存储体与存储体地址BA0~BA4对应,字线WL与行地址RA0~RA7对应,位线BL与列地址CA0~CA127对应。
通过存储体地址BA与行地址RA的组合来选择存储体内的字线WL,通过列地址CA来选择位线BL。即,通过存储体地址BA、行地址RA与列地址CA的组合来访问4字节BY0-3的数据。由于1字节由8比特构成,因此在一次访问中,4字节、即4×8=32比特的数据被关联到存储器的输入输出端子DQ上并被读出或写入。通常,上述1字节数据对应于像素的8比特数据信号。
根据图5所示的存储器映射2,通过存储体地址BA与行地址RA指定的页区域Page被排列成作为图像数据的二维阵列数据的矩阵。并且,如放大区域PageE所示,1个页区域Page具有用列地址CA0~127指定的128个存储单位区域,每个存储单位区域存储4字节BY0~3的数据。该4字节BY0~3的数据经由存储器装置的32比特的输入输出端子DQ0~31被输入输出。
上述的存储器映射2适于使多个存储体结构的SDRAM等存储器装置10高速动作。如上所述,SDRAM响应于与存储体地址BA以及行地址RA一起被提供的激活指令,执行激活动作,即:驱动被选中的存储体内被选中的字线,将存储胞的数据输出至位线,激活与位线对应的读出放大器来放大位线电位。之后,SDRAM响应于与列地址CA一起被提供的读指令,执行从被选中的位线读出数据的读动作。或者,SDRAM在激活动作之后,响应于与列地址CA以及写入数据一起被提供的写指令,执行向被选中的位线写入写入数据的写动作。在读动作或写动作后,进行基于预充电指令的预充电动作,再次变为激活动作、读或写动作。如此,在SDRAM中,每个存储体能够独立进行激活动作、读动作、写动作。
根据图5的存储器映射2,不同的存储体地址BA0~3被对应到上下左右邻接的页区域Page。即,在存储器映射2的奇数行上交替地配置了存储体地址BA0、1,在偶数行上交替地配置了存储体地址BA2、3。并且,在存储器映射2的光栅方向(行方向)上,行地址RA0~7以相同地址重复两次的方式递增,存储器映射2的每个行以4个行地址RA0~3、RA4~7反复。
图6是图5的存储器映射的详细图。图6中示出了存储器映射2、存储体地址BA0及BA1、行地址RA以及列地址CA之间的关系。存储体地址BA0及BA1以“0、1”的二进制数表示,行地址RA以“0~K-1、0~L-1”的十进制数表示。如图6所示,在存储器映射2中,与作为图像数据的二维阵列数据的矩阵方向对应的多个页区域Page基于存储体地址BA和行地址RA被对应。即,低位存储体地址BA0和低位行地址RA对应于行方向的页区域Page,高位存储体地址BA1和高位行地址RA对应于列方向的页区域Page。
图6中示出了放大了的存储器映射2E的一部分。与图5相同,用粗线框包围的相邻的2行2列的页区域对应于存储体地址以及行地址的“BA0,RA0”、“BA1,RA0”、“BA2,RA0”、“BA3,RA0”。并且,行方向在行地址RAK-1处折返。此外,每个页区域内还具有通过列地址CA来对应的多个存储单位区域。在图6中省略了列地址CA的具体值。
例如,当向存储器中分配全高清的1920×1080大小的图像数据时,如果将1个像素的信息假定为8bit×4(GRBα),则1个画面的数据量为64Mbit。在MPEG的编码器和解码器中,如上所述频繁对矩形区域的图像数据进行处理。从而,如图6所示,将多个页区域映射为矩形有助于提高访问效率。并且,通过将相邻的页区域分配给不同的存储体地址,对粗线框中的4个页区域分配相同的行地址,由此在通过需要长时间的激活动作来同时将4个存储体区域变为激活状态后,通过在改变列系统指令的同时改变存储体地址和列地址,可用短时间访问激活状态的存储胞的数据。
图7是示出页区域内的存储器映射的图。在图7的例子中,1个页区域Page具有通过列地址A00~S007选择的16行16列的存储单位区域MU(256区域)。图中,在每个存储单位区域MU上示出了16进制表示的列地址CA00~CAff。存储单位区域MU与32比特的DQ接口相对应地存储4字节(32比特)的数据。并且,根据图7的存储器映射,多个存储单位区域MU基于列地址中低位比特组CA-L(A00~A03)来存储被排列在二维阵列数据的行方向上的数据,并基于列地址中高位比特组CA-U(A04~A07)来存储被排列在二维阵列数据的列方向上的数据。
由此,当1个像素的数据(RGBα、8比特×4=32比特)被集中保存时,在1个存储单位区域MU中保存1个像素的数据(RGBα)。由此,在此情况下,在1个页区域Page中保存16×16像素的图像数据。
此外,当1个像素的数据(RGBα)中的每个数据(8比特)被分离保存时,在1个存储单位区域MU中保存4个像素的图像数据。在此情况下,如果在1个存储单位区域MU中保存1行4列的像素的图像数据,则在1个页区域Page中保存64×16像素的图像数据。此外,如果在1个存储单位区域MU中保存2行2列的像素的图像数据,则在1个页区域中保存32×32像素的图像数据。并且,如果在1个存储单位区域MU中保存4行1列的像素的图像数据,则在1个页区域中保存16×64像素的图像数据。它们的区别在于,存储器控制器基于存储器映射来进行控制。
在图7的存储单位区域MU中,行地址用16进制(CA00~CAff)表示。另一方面,在低位比特组CA-L(A00~A03)、高位比特组CA-U(A04~A07)中,每个4比特的列地址A00~A03、A04~A07用二进制(0,1)表示。
[列地址控制部]
图8是示出本实施方式中的列地址控制部41内的生成列地址的结构的图。列地址控制部41输入8比特的外部列地址caext<07:04>、caext<03:00>,生成8比特的内部列地址caint<07:04>、caint<03:00>,并将该内部列地址caint<07:04>,caint<03:00>提供给存储器核内的列译码器中。当在模式寄存器40中设定了突发模式时,列地址控制部41依次生成并输出突发长度的数目的内部列地址。
列地址控制部41具有:低位地址生成单元80,其生成内部列地址的低位比特组caint<03:00>;高位地址生成单元84,其生成内部地址的高位比特组caint<07:04>;以及地址生成单元控制电路88,其基于二维阵列数据的扫描方向控制信号vaext<02:00>来控制低位地址生成单元80和高位地址生成单元84的动作,该列地址控制部41依次生成与扫描方向控制信号vaext<02:00>的扫描方向对应的内部列地址。在该例子中,低位比特组和高位比特组被分成各4比特,但不限于此,也可以被分成2比特和6比特,3比特和5比特。在此情况下,图7所示的页区域内的存储单位区域的矩阵的比例将根据高位比特数和低位比特数而不同。
低位地址生成单元80具有:4比特计数器81;步伐设定电路82,其设定计数器的步伐数(每1时钟的增减数);以及折返宽度设定电路83,其设定计数器的最大计数值(与折返宽度对应)。步伐设定电路82是选择应将计数控制信号countlz输入到计数器的哪个比特的选择电路,其根据模式寄存器40中设定的步伐控制信号selcntls(2比特)来选择。此外,折返宽度设定电路83是选择应输出哪个比特的计数器输出作为计数结束信号(一种进位信号)caintle的选择电路,其根据模式寄存器40中设定的折返宽度控制信号selcntlw(2比特)来选择计数器的比特。
与低位地址生成单元80一样,高位地址生成单元84具有:4比特计数器81;步伐设定电路82,其设定计数器的步伐数(每1时钟的增减数);以及折返宽度设定电路83,其设定计数器的最大计数值(与折返宽度对应)。步伐设定电路86和折返宽度设定电路87也与低位地址生成单元80内的电路82、83相同。
在模式寄存器40中设定从存储器控制器与模式寄存器设定指令一起提供而来的地址计算控制信号selcntlext。该地址计算控制信号selcntlext具有步伐控制信号selcntls(低位高位各两比特)和折返宽度控制信号selcntlw(低位高位各两比特)。
地址生成单元控制电路88根据从存储器控制器提供的扫描方向控制信号vaext来控制低位以及高位地址生成单元80、84的动作。扫描方向控制信号vaext是3比特的信号,是用于指定上下左右方向和4个倾斜方向的共8个扫描方向的信号。
图9是示出扫描方向控制信号vaext的具体例的图。图中的附图标记90表示扫描方向控制信号vaext的具体例,与从当前像素CPX起的上下列方向、左右行方向以及4个倾斜方向相对应地分配了3比特的扫描方向控制信号vaext。
关于该扫描方向控制信号的提供可考虑由存储器控制器将其与模式寄存器设定指令一起设定至模式寄存器的方法、以及与列系统指令一起提供的方法。图9中的附图标记92示出了在与列系统指令一起提供时的地址端子A00~A11的分配。在发出作为行系统指令的激活指令ACT的同时,向12比特的地址端子A00~A11输入12比特的行地址RA00~RA11。此外,在发出作为列系统指令的写或读指令WR/RD的同时,向地址端子A00~A07输入8比特的列地址CA00~CA07,向地址端子A10输入自动预充电信号AP,并向剩余的地址端子A08、A09、A11输入3比特的扫描方向控制信号VA0~VA2。扫描方向控制信号vaext由于被输入到地址端子上,因此也称为矢量地址。
返回到图8,地址生成单元控制电路88根据扫描方向控制信号vaext来对下述进行控制:是将进行地址控制的时钟CLK作为低位地址生成单元80的计数控制信号countlz输出,还是作为高位地址生成单元84的计数控制信号countuz输出,还是作为两者的计数控制信号countlz、countuz输出。并且,地址生成单元控制电路88根据扫描方向控制信号vaext来对下述进行控制:是将低位地址生成单元80的计数结束信号(进位信号)caintle作为向高位的计数控制信号countuz输出,还是将高位地址生成单元84的计数结束信号(进位信号)caintue作为向低位的计数控制信号countlz输出。而且,地址生成单元控制电路88根据扫描方向控制信号vaext来向低位以及高位地址生成单元80、84输出反向控制信号reverslz、reversuz。
即,当扫描方向为行方向时,输出时钟CLK作为低位地址生成单元80的计数控制信号countlz,并提供低位地址生成单元80的计数结束信号(进位信号)caintle作为高位地址生成单元84的计数控制信号。当扫描方向为列方向时,输出时钟CLK作为高位地址生成单元84的计数控制信号countuz,并提供高位地址生成单元84的计数结束信号caintue作为低位地址生成单元80的计数控制信号。此外,当扫描方向为倾斜方向时,输出时钟,作为低位以及高位的计数控制信号。
以下,对地址生成单元控制电路88根据扫描方向控制信号vaext如何控制低位以及高位地址生成单元80、84进行说明。
(1)扫描方向控制信号vaext=000:向行方向正向前进
时钟CLK与低位的计数控制信号countlz连接;
低位的计数结束信号(进位信号)caintle与高位的计数控制信号countuz连接;
反向控制信号reverslz、reversuz均被设定为正向;
其结果,从低位的时钟控制电路80到高位的时钟控制电路84被串联连接,8比特的内部列地址caint<07:00>与时钟CLK同步地被依次向上计数。即,高位地址生成单元84与低位地址生成单元80的计数结束信号caintle同步地进行计数动作。
(2)扫描方向控制信号vaext=111:向行方向反向前进
时钟CLK与低位的计数控制信号countlz连接;
低位的计数结束信号(进位信号)caintle与高位的计数控制信号countuz连接;
反向控制信号reverslz、reversuz均被设定为反向;
其结果,低位的时钟控制电路80和高位的时钟控制电路84串联连接,8比特的内部列地址caint<07:00>与时钟CLK同步地被依次向下计数。即,高位地址生成单元84与低位地址生成单元80的计数结束信号caintle同步地进行计数动作。关于反向的向下计数动作,将在后面详细说明。此外,反向控制信号reversuz可以被设定为正向。
(3)扫描方向控制信号vaext=001:向列方向正向前进
时钟CLK与高位的计数控制信号countuz连接;
高位的计数结束信号(进位信号)caintue与低位的计数控制信号countlz连接;
反向控制信号reverslz、reversuz均被设定为正向;
其结果,从高位的时钟控制电路84到低位的时钟控制电路80被串联连接,4比特的高位内部列地址caint<07:04>与时钟CLK同步地被依次向上计数,4比特的低位内部列地址caint<03:00>与高位的计数结束信号caintue同步地被依次向上计数。
(4)扫描方向控制信号vaext=110:向列方向反向前进
时钟CLK与高位的计数控制信号countuz连接;
高位的计数结束信号(进位信号)caintue与低位的计数控制信号countlz连接;
反向控制信号reverslz、reversuz均被设定为反向;
其结果,从高位的时钟控制电路84到低位的时钟控制电路80被串联连接,4比特的高位内部列地址caint<07:04>与时钟CLK同步地被依次向下计数,4比特的低位内部列地址caint<03:00>与高位的计数结束信号caintue同步地被依次向下计数。此外,反向控制信号reverslz可以被设定为正向。(5)扫描方向控制信号vaext=011:向右下方向
时钟CLK与高位以及低位的计数控制信号countuz、countlz连接;
反向控制信号reverslz、reversuz均被设定为正向;
其结果,高位的时钟控制电路84和低位的时钟控制电路80与时钟CLK同步地并行地向上计数。即,高位内部列地址caint<07:04>和低位内部列地址caint<03:00>并行地被依次向上计数。
(6)扫描方向控制信号vaext=101:向右上方向
时钟CLK与高位以及低位的计数控制信号countuz、countlz连接;
反向控制信号reverslz、reversuz分别被设定为正向、反向;
其结果,高位的时钟控制电路84和低位的时钟控制电路80与时钟CLK同步地并行进行计数动作,分别向下计数、向上计数。即,高位内部列地址caint<07:04>被依次向下计数,低位内部列地址caint<03:00>被依次向上计数。
(7)扫描方向控制信号vaext=010:向左下方向
时钟CLK与低位以及高位的计数控制信号countuz、countlz连接;
反向控制信号reverslz、reversuz分别被设定为反向、正向;
其结果,高位的时钟控制电路84和地位的时钟控制电路80与时钟CLK同步地并行进行计数动作,分别向上计数、向下计数。即,高位内部列地址caint<07:04>被依次向上计数,低位内部列地址caint<03:00>被依次向下计数。
(8)扫描方向控制信号vaext=100:向左上方向
时钟CLK与高位以及低位的计数控制信号countuz、countlz连接;
反向控制信号reverslz、reversuz均被设定为反向;
其结果,高位的时钟控制电路84和低位的时钟控制电路84与时钟CLK同步地并行进行计数动作,均向下计数。即,高位内部列地址caint<07:04>被依次向下计数,低位内部列地址caint<03:00>也被依次向下计数。
低位以及高位地址生成单元80、84根据步伐控制信号selcntls以设定的步伐向上计数或向下计数。通过适当地设定该步伐值,能够向将倾斜的扫描方向相对于水平、垂直方向倾斜45度的方向(低位、高位的步伐数相等的情况),或者相对于水平、垂直方向倾斜45度以外的角度的方向(低位、高位的步伐数不同的情况)扫描。例如,如果将低位的步伐数设定为1,将高位的步伐数设定为2,则能够向日本将棋中“桂马”的移动方向进行扫描。
此外,低位以及高位地址生成单元80、84根据折返宽度控制信号selcntlw以设定的折返宽度重复向上计数或向下计数。通过适当地设定该折返宽度,能够通过一次基于列系统指令的突发访问对任意矩形进行访问。
并且,由低位以及高位地址生成单元80、84进行的连续计数值基于上述的突发长度用时钟CLK的数目进行控制。
如上所述,扫描方向控制信号vaext和地址计算控制信号selcntlext都是控制地址计算方法的信号。从而,两个控制信号既可以同时通过模式寄存器设定指令被设定到模式寄存器40中,也可以与列系统指令一起从地址端子输入。在图8的实施方式中,扫描方向控制信号vaext与列系统指令一起输入,地址计算控制信号selcntlext通过模式寄存器设定指令被设定到模式寄存器40中。
以下,对倾斜扫描访问、水平以及垂直扫描访问、特殊的扫描访问依次进行说明。
[倾斜扫描访问]
运动图像数据由连续的帧图像数据构成。根据MPEG标准的压缩处理在帧图像之间求出相同图形的运动方向作为运动矢量,并只将运动矢量和图形的差异作为下一个帧图像的数据。由此,能够压缩下一个帧图像的数据量。在该运动矢量的搜索中,搜索与由16×16像素构成的微块的图像数据一致或相似的后续的帧图像内的微块图像。
图10A和图10B是示出运动图像的运动方向的例子的图。在运动图像的情况下,如图10A所示,水平方向的运动较多,接着,如图10B所示,垂直方向的运动较多。即,水平方向的运动和垂直方向的运动占据了图形运动中的一大半。另一方面,图形向倾斜方向移动的概率较低。
图11A和图11B是示出运动图像的运动方向与运动量的分布的图。图11A示出了运动图像的运动方向的分布。假定1个存储单位区域(4字节)存储4个像素的图像数据,4个存储单位区域CA67~CA97存储4×4像素的图像数据。在此情况下,在运动矢量的搜索中,搜索与单位区域CA67~CA97的4×4像素的图像数据一致或相似的4个存储单位区域的图像数据。从而,基于运动图像的运动矢量和运动量的统计来设定搜索区域,这有助于提高运动矢量搜索处理的效率。
在图11A的左侧示出了对试样的运动图像数据进行调查的运动方向的角度θ和移动频率的关系。向与水平方向对应的θ=0、π、2π的方向的移动频率高,向与垂直方向对应的θ=π/2、3π/2的方向的移动频率次高,其余角度的移动频率低。即在图10A和图10B中进行说明的运动图像的运动方向被证实水平方向最多,接着垂直方向多,倾斜方向少。图11B的左侧示出了对试样的运动图像进行调查的运动量d和移动频率的关系。由此可知,移动距离越短移动频率就越高。
根据这些统计结果可以理解:在运动矢量的搜索中,当搜索倾斜方向且移动量d大的区域时,检测到一致或相似的图形的概率较低。
图12是示出运动矢量的搜索范围的一个例子的图。页区域Page由16×16的存储单位区域构成,作为二维阵列数据的图形数据的矩阵与该16
×16的存储单位区域相对应。并且,先假定对中心4个存储单位区域CA67~CA97内的4×4像素的块图形进行运动矢量的搜索。如以往所述,若要对页区域Page内的16×16的存储单位区域全部进行搜索,则需要访问这些256个存储单位区域。
但是,如在图10A~图11B中说明的那样,如果根据运动图像的运动方向和移动量的统计,则能够通过搜索页区域Page内除4个角区域之外的菱形RHB的区域来提高搜索效率。菱形RHB区域是1个页区域Page的1/2面积,因此如果将搜索区域设为菱形区域,则搜索区域就会减半。因此,以下对在该菱形区域RHB内进行运动矢量的搜索时的访问进行说明。
图13A和图13B是示出菱形区域的访问方法的一个例子的图。当访问页区域Page内的菱形区域RHB时,如果在将以往的列地址递增(increment)从而在向行方向扫描的情况下进行访问,则无法以相同的突发长度进行突发读或突发写,访问效率下降。因此,如图13A所示,如果在存储器装置侧在如箭头所示向倾斜方向扫描的情况下进行突发读或突发写,则由于能够以相同的突发长度进行访问,因此访问存储器装置的效率变高。在通常的图像编码系统中,将帧存储器内的图像数据保存在系统内的工作存储器(图13B)中。
如图13A和图13B所示,如果对帧存储器(图13A)内的菱形区域RHB能够沿箭头的倾斜方向进行扫描,则在系统工作存储器(图13B)内就会保存8×16的存储单位区域的图像数据。
图14是对倾斜方向的扫描进行说明的图。为了对菱形区域沿倾斜方向进行扫描,需要存储器装置内的列地址控制部沿图14的箭头方向依次生成列地址CA07~CA7e。即,为了沿倾斜方向进行扫描,必须并行地递增低位的列地址CA-L和高位的列地址CA-U。因此,如在图8的列地址控制部41中进行说明的那样,通过适当地控制低位地址生成单元80和高位地址生成单元84以使它们并行动作,能够以突发模式进行上述倾斜方向的扫描。
图15是示出进行倾斜方向扫描的列地址控制部的图。图16、图17是进行倾斜方向扫描的列地址控制部的细节图。在图15中,地址生成单元控制电路88根据扫描方向控制信号vaext=011而向低位以及高位地址生成单元80、84的计数控制信号countlz、countuz同时提供时钟CLK。并且,步伐控制信号selcntls被设定为步伐数1(step1),被设定为以使步伐设定电路82、86的选择器将计数控制信号countlz、countuz分别提供给计数器81、85的A00和A04。此外,折返宽度控制信号selcntlw被设定为折返宽度16(width16),被设定为以使折返宽度设定电路83、87的选择器选择计数器81、85的A03和A07的输出。此外,计数结束信号caintle、caintue哪也不连接。
通过如上设定,在列地址控制部41中,低位以及高位地址生成单元80、84与时钟CLK同步并行地进行向上计数。由此,如果向低位以及高位地址生成单元80、84的计数器81、85设定初始值CA07=00000111(向低位设定0111,向高位设定0000),并与8个时钟CLK同步地生成列地址,则能够以页模式对图14所示的存储单位区域CA07~CA7e进行访问。
图16、图17中仅示出了低位地址生成单元的详细图。如图所示,步伐设定电路82中的4个选择器161(SL00~SL03)选择计数控制信号countlz以及计数器81的低位数位输出caint0~3中的任一者。该选择器161的选择基于控制信号control(step1、2、4、8)来进行,该控制信号control是由译码器160将2比特的步伐控制信号selcntls译码而得的。在图16的例子中,被设定为step1,从而只有选择器SL00选择了输in2,而其他选择器SL01-03则选择了输入in1。
此外,外部列地址caext0~3作为初始值被提供给4比特计数器81的初始值端子init,比特计数器81与来自选择器161的时钟信号clkca0~3同步来反复进行向上计数动作。在时钟clk的下降沿,计数器81的各触发器反复将输出out从L电平向H电平、或者从H电平向L电平的翻转动作。
通过如上设定,4比特计数器81与计数控制信号countlz同步地将初始值依次向上计数。并且,如图16所示,从计数器81的输出端子out分别输出内部列地址caint0~3。由于低位、高位地址生成单元通过步伐控制信号被设定为step1,因此扫描方向是相对于垂直、水平方向的45度方向。但是,通过适当设定步伐数,也能够将扫描方向设定为与45度不同的方向。由此,根据扫描方向控制信号vaext和步伐控制信号,可进行向任意角度的倾斜方向扫描的突发访问。
另一方面,如图17所示,在来自计数器81的输出端子out的内部列地址caint0~3中,只有被折返宽度设定电路83内的选择器171选择的信号被作为计数结束信号(进位信号)caintle而输出。4个选择器SL10~13基于控制信号control(width02、04、06、08)来进行选择动作,该控制信号control(width02、04、06、08)是由译码器170将各2比特的折返宽度控制信号selcntlw译码而得的。
图18、图19是向倾斜方向扫描时的存储器装置的时序图。图18示出了不具有倾斜方向的突发模式的存储器装置的例子,图19示出了具有倾斜方向的突发模式的存储器装置的例子。图中示出了时钟CLK、作为指令信号的CS、RAS、CAS、WE以及存储体地址BA。并且还示出了附随读指令RD而输入的列地址CA。阴影部分示出了存储体BA1的动作,其余部分示出了存储体BA0的动作。即,在该例子中,两个存储体交叉地进行动作。
在图18的情况下,存储器装置不具有倾斜方向的突发模式。当在时间t0对存储体BA0输入了预充电指令PRE时,从时间t1起存储体BA0进行预充电动作。在此期间,在存储体BA1中响应于读指令RD而反复进行读动作。在时间t1的1个时钟之后起经过RAS预充电时间tRP后的时间t3,对存储体BA0输入激活指令ACT。从而,从时间t3起的1个时钟周期的期间,不发出对存储体BA0的读指令。响应于该激活指令,在存储体BA0中基于图中没有示出的行地址进行激活动作。在此期间,在存储体BA1中再次响应于读指令RD而反复进行读动作。
然后,在RASCAS延迟时间tRCD后的时间t6,对存储体BA0连续输入读指令RD和列地址CA。存储器装置分别响应于不是以突发模式而是连续输入的8次的读指令RD与8种列地址CA07~CA7e,对在倾斜方向排列的8个存储单位区域重复进行读动作。并且,在图18的例子中,在时间t5发出针对存储体BA1的预充电指令PRE,在时间t7发出针对存储体BA1的激活指令ACT。由此,在时间t7起的1个时钟的期间,不发出针对存储体BA0的读指令RD。
如此,在图18的例子中,存储器控制器为了向倾斜方向进行扫描,需要发出8次的列系统指令、即读指令RD以及列地址CA。此外,存储器装置不能以突发模式进行动作,连续的读指令的输入由于存储体交叉动作而被中断。
在图19的情况下,存储器装置具有倾斜方向的突发模式功能。当通过图15、16、17所示的列地址控制部的动作而输入了1次的读指令RD和起始列地址CA07时,列控制电路连续生成内部列地址CA18、CA29、CA3a、CA4b、CA5c、CA6d、CA7e,并连续进行8次的32比特数据的读动作。即,一旦在时间t1针对存储体BA0输入了激活指令ACT,就会在RASCAS延迟时间tRCD后的时间t3输入读指令RDA、起始列地址CA07以及扫描方向控制信号VA=011。由于预先设定了突发长度BL=8,因此列地址控制部连续生成内部列地址CA18、CA29、CA3a、CA4b、CA5c、CA6d、CA7e,并连续进行32比特×8次的读动作。在此期间,虽然在时间t5发出了针对存储体BA1的激活指令ACT,但存储体BA0中的突发读动作不受干扰。读指令RDA是带自动预充电的读指令,能够通过将图9所示的地址端子A10的自动预充电比特设定为H电平来指定该读指令RDA。
如此,由于存储器装置具有倾斜方向的突发模式功能,因此能够高效率地进行访问菱形区域时的倾斜方向的扫描访问。并且,倾斜方向的角度能够通过扫描方向控制信号vaext和步伐控制信号selcntls来设定为任意角度。这里,任意角度是指由存储器映射上的存储单位区域的位置而限制的范围内的任意角度。
[水平以及垂直扫描访问]
图20是示出页区域内的水平扫描访问的图。为了在页区域Page内如箭头所示沿水平方向(行方向)进行扫描的情况下进行访问,存储器装置内的列地址控制部需要优先递增低位列地址CA-L(箭头200),并根据低位列地址的进位信号来递增高位列地址CA-U。由此,可向水平方向连续进行突发读。
图21是示出页区域内的垂直扫描访问的图。为了在页区域Page内如箭头所示沿垂直方向(列方向)进行扫描的情况下进行访问,存储器装置内的列地址控制部需要优先递增高位列地址CA-U(箭头210),并根据高位列地址的进位信号来递增低位列地址CA-L。由此,可向垂直方向连续进行突发读。
图22是示出由存储器控制器进行的突发方向判定处理的图。由图3的存储器控制器12内的突发方向判定部32进行该判定处理。如图22中的附图标记220所示,假定存储器装置的输入输出端子DQ由32比特构成,1个像素的图像数据由8比特构成。并且,假定根据存储器映射,在通过列地址选择的存储单位区域中存储水平方向的像素数Dh=4、垂直方向的像素数Dv=1的像素数据。并且如图22中的附图标记221所示,假定从上级系统发出了针对倾斜度=0、水平方向像素数Lh=8、垂直方向像素数Nv=8的访问区域的访问请求。对此情况下的条数和方向判定处理进行说明。
图23是示出由存储器控制器进行的突发方向判定处理的流程图。存储器控制器从上级系统接收水平方向像素数和垂直方向像素数为Lh=8、Nv=8的访问请求(S20)。存储器控制器内的突发方向判定电路将像素数转换成存储器装置内的列数(S21)。其结果,如图22的附图标记221所示,突发方向判定电路计算水平方向列数Nh=Lh/Dh=2、垂直方向列数Nv=Lv/Dv=8(S22)。然后,突发方向判定电路通过比较该水平方向列数Nh与垂直方向列数Nv来判定最佳的突发方向(S23)。如果Nh≤Nv,则突发方向被设定为水平方向(S24)。相反,如果Nh>Nv,则突发方向被设定为垂直方向。这是因为通过将突发方向设定为较长的方向能够有效地应用基于突发模式的访问。
图24是示出向垂直方向进行扫描访问(突发访问)的例子的图。在在该例子中,在存储单位区域内保存4像素的图像数据,4×8像素的矩形区域被访问。从而,需要对列地址CA20至CA90的垂直方向的8个存储单位区域进行访问。在此情况下,存储器装置内的列地址控制部41从起始的列地址CA20起递增高位列地址CA-U来依次生成CA20~CA90。
图25是向垂直方向进行扫描访问(突发访问)的列地址控制部的结构图。为了向垂直方向进行突发访问,列地址控制部41中的低位地址生成单元80和高位地址生成单元84被上下颠倒连接。即,地址生成单元控制电路88向高位地址生成单元84提供时钟CLK作为计数控制信号countuz,向低位地址生成单元80提供高位地址生成单元84的计数结束信号(进位信号)caintue作为计数控制信号countlz。并且,步伐控制信号selcntls针对低位以及高位地址生成单元两者被设定为步伐step1,低位计数器81和高位计数器85并行地响应计数控制信号而将计数值加1。此外,折返宽度控制信号selcntlw针对低位以及高位地址生成单元两者被设定为宽度width16,由选择器83、87选择低位计数器81和高位计数器85的最高位比特。
通过如上设定,高位计数器85先与时钟CLK同步地将计数值每次增加1,低位计数器81与高位计数器85的计数结束信号caintue同步地将计数值每次增加1。其结果是,列地址控制部41将从外部提供而来的列地址caext0~7作为初始值CA20生成直到最终值CA90的地址并依次作为内部列地址caint0~7。
图26、图27是向垂直方向进行扫描访问时的时序图。图26是存储器装置不具有垂直方向的突发模式时的时序图。与图18相同,当在时间t0对存储体BA0输入了预充电指令PRE时,从时间t1起存储体BA0进行预充电动作。在此期间,在存储体BA1中响应于读指令RD而反复进行读动作。在时间t1的1个时钟之后起经过RAS预充电时间tRP后的时间t3,对存储体BA0输入激活指令ACT。从而,从时间t3起的1个时钟周期的期间,不发出对存储体BA1的读指令。响应于该激活指令,在存储体BA0中基于图中没有示出的行地址进行激活动作。在此期间,在存储体BA1中再次响应于读指令RD而反复进行读动作。
然后,在RASCAS延迟时间tRCD后的时间t6,对存储体BA0连续输入读指令RD和列地址CA。存储器装置分别响应于不是以突发模式而是连续输入的8次的读指令RD与8种列地址CA20~CA90,对在垂直方向排列的8个存储单位区域重复进行读动作。然后,在图26的例子中,在时间t5发出针对存储体BA1的预充电指令PRE,在时间t7发出针对存储体BA1的激活指令ACT。由此,在时间t7起的1个时钟的期间,不发出针对存储体BA0的读指令RD。
如此,在图26的例子中,存储器控制器为了向垂直方向扫描来进行访问,需要发出8次的列系统指令、即读指令RD以及列地址CA。此外,存储器装置不能以突发模式进行动作,连续的读指令的输入由于存储体交叉动作而被中断。
图27是存储器装置具有垂直方向的突发模式功能时的时序图。当通过图25所示的列地址控制部41的动作而输入了1次的读指令RD和起始列地址CA20时,列地址控制部连续生成内部列地址CA20、CA30、CA40、CA50、CA60、CA70、CA80,并连续进行8次的32比特数据的读动作。即,一旦在时间t1针对存储体BA0输入了激活指令ACT,就会在RASCAS延迟时间tRCD后的时间t3输入读指令RDA、起始列地址CA20以及扫描方向控制信号VA=001。由于预先设定了突发长度BL=8,因此列地址控制部连续生成内部列地址CA20、CA30、CA40、CA50、CA60、CA70、CA80,并连续进行32比特×8次的读动作。在此期间,虽然在时间t5发出了针对存储体BA1的激活指令ACT,但存储体BA0中的突发读动作不受干扰。
如此,由于存储器装置具有垂直方向的突发模式功能,因此能够高效率地进行访问在垂直方向上具有较多的存储单位区域的矩形区域时的垂直方向的扫描访问。
图28是示出向垂直方向进行扫描访问(突发访问)的另一例的图。在该例子中,在存储单位区域内保存4像素的图像数据,8×8像素的矩形区域被访问。从而,需要对列地址CA20至CA90的垂直方向的8个存储单位区域以及列地址CA21至CA91的垂直方向的8个存储单位区域进行访问。
在以往的SDRAM中,由于只能向水平方向进行突发访问,因此设定突发长度BL=2,并与列地址CA20、CA30、CA40、CA50、CA60、CA70、CA80一起将8次的列系统指令RD、WR提供给存储器装置,由此访问8×8像素的矩形区域的图像数据。
相对于此,在本实施方式的能够向垂直方向突发访问的存储器装置的情况下,如果设定突发长度BL=8,并与列地址CA20、CA21一起将2次的列系统指令RD、WR提供给存储器装置,就能够访问8×8像素的矩形区域的图像数据。由此,能够缩短存储器控制器与存储器装置之间的总线的忙状态。
[特殊的扫描方向]
以下,将稀疏(間引き)突发访问、矩形区域的突发访问以及正向及反向的访问作为特殊的扫描方向进行说明。
图29是用于说明进行运动预测时的访问的图。在该例子中,每1个像素的8比特的数据被映射到字结构为×16比特的DQ接口的存储器装置。假定在运动预测中,对用粗线框包围的4×4像素的正方形的矩形290,向垂直方向搜索±4像素,向水平方向搜索±8像素。即,在运动矢量搜索中,在矩形290在长方形区域292内分别向列方向移动9次、向行方向移动9次的情况下,共进行81次的比较矩形290的图像数据和移动目的地的矩形的图像数据的处理。一旦检测出一致的图像数据,从矩形290向该检测出的矩形区域的方向即成为运动矢量。
图30、图31是用于说明进行运动预测时的另一访问的图。在该例子中,每1个像素的8比特的数据也被映射到字结构为×16比特的DQ接口的存储器装置。并且,对4×4像素的矩形区域进行运动矢量的搜索。
在图30的访问例中,起初,在于矩形区域302(由CA24-CA2d-CAdd-Cad4包围的矩形区域)内向行列方向稀疏为1/2的区域中搜索处理对象矩形的2倍大小的8×8像素的矩形区域300(由CA46-CA4c-CAcc-CAc6包围的矩形区域)中向行列方向稀疏为1/2的区域。该第一次搜索将向行方向进行4次、向列方向进行3次共进行12次的访问和比较处理。
接着,如图31所示,假定第一次搜索中最佳的位置是将列地址CA66的存储单位区域作为左上角的矩形区域314(由CA66-CA69-Cad9-Cad6包围的区域)。在此情况下,在第二次搜索中,在比矩形区域314大一圈的矩形区域312(由CA55-CA5a-CAea-Cae5包围的区域)内搜索4×4像素的矩形区域310(由CA66-CA67-CA97-CA96包围的区域)。在该搜索中不进行1/2稀疏。该搜索需要向行方向进行5次、向列方向进行7次共进行35次的访问和比较处理。由于图30的第一次搜索进行12次,因此第一次搜索和第二次搜索的总和为12+35=47次。该次数与图29时的81相比约减少至约58%。
上述两阶段搜索规则是公知的。并且当采用了上述两阶段搜索规则时,为了访问图30的被稀疏为1/2的数据,存储器控制器无法利用突发读,需要向存储器装置发出8次的列系统指令和对应的列地址。或者,也可以如下进行访问:通过突发读来访问没有被稀疏为1/2的数据,并丢弃不需要的数据。但是不管何种情况,对存储器装置的访问效率都将大幅下降。
图32、图33是两阶段搜索规则的第一次搜索中的列地址控制部的结构图。图32示出了低位地址生成单元80的一部分,图32示出了高位地址生成单元84的一部分。
第一次搜索中的列地址控制部的结构与图25所示的结构相似。即,地址生成单元控制电路88向高位地址生成单元84提供时钟CLK作为计数控制信号,向低位地址生成单元80提供高位侧的计数结束信号caintue作为计数控制信号。由此,能够高效率地进行在垂直方向上长的矩形区域的突发访问。而且,低位以及高位地址生成单元的步伐设定电路82、86将步幅设定为step2。由此,能够与计数控制信号同步地以步幅2递增计数值,可以对经1/2稀疏的存储单位区域进行突发访问。
接着,对图32、图33进行说明。如上所述,在第一次搜索中,需要访问经1/2稀疏的存储单位区域。因此,在低位以及高位地址生成单元80、84中,选择器SL01、SL05根据步伐控制信号selcntls=Step2来选择计数控制信号countlz、countuz,并向计数器81、85输出计数控制信号countlz、countuz作为时钟clka1、clka5。由此,可以突发模式与时钟CLK同步地在比计数器81、85的A01、A05高的数位(digit)上进行递增动作。其结果,低位以及高位地址生成单元80、84以2的增加量(步伐数)递增内部列地址。由此,在图32所示的经1/2稀疏的矩形区域的访问中,也能够使用突发模式。图32的低位地址生成单元80的选择器SL00的输in1不输入任何时钟。同样地,图33的高位地址生成单元84的选择器SL04的输in1上也不输入任何时钟。由此,计数器的A00、A04比特维持初始设定值的列地址A00、A04。
图34是两阶段搜索规则的第一次搜索中的存储器装置的时序图。如该时序图所示,在时间t3,读指令RDA与存储体地址BA0、列地址CA24、以及矢量地址VA=001一起被输入给存储器装置。响应于此,存储器装置内的列地址控制部依次生成内部列地址CA24、CA44、CA64、CA84,连续访问图30的列地址CA24、CA44、CA64、CA84的存储单位区域。
如上所述,在低位以及高位地址生成单元80、84中,通过根据步伐控制信号selcntls、selcntus将步伐设定电路82、86内的选择器设定为步伐step2,可对经1/2稀疏的存储单位区域进行突发访问。同样地,如果设定为步伐step4、step8,则可对经1/4、1/8稀疏的存储单位区域进行突发访问。以上是稀疏突发访问的说明。
[矩形区域的突发访问]
接着,对矩形区域的突发访问进行说明。通过本实施方式的低位以及高位地址生成单元的折返宽度控制信号selcntlw来设定折返宽度设定电路83、87,能够任意地设定低位以及高位地址生成单元的计数结束值。由此,地址生成单元能够与时钟CLK同步地反复生成任意范围的计数值。只要将之利用,就能够通过1次的列系统指令和起始列地址来突发访问由在行列方向上列地址不同的存储单位区域构成的矩形区域。但是,由于计数器动作的限制,矩形区域的列地址的折返地址在低位、高位地址上均为CA=1、3、7、F的位置。
图35是用于说明本实施方式中的矩形区域的突发访问的图。假定对图35中的由列地址CA00-CA01-CA71-CA70包围的矩形区域进行突发访问。在以往的突发访问中,将突发长度设为BL=2,将8次的列系统指令和列地址CA00、CA10、CA20、CA30、CA40、CA50、CA60、CA70提供给存储器装置。此外,如果可进行在图25、图27等中进行说明的垂直方向的扫描访问,则设定突发长度BL=8,将2次的列系统指令和列地址CA00、CA01提供给存储器装置。
相对于此,在图35的矩形区域的突发访问中,如果向存储器装置提供1次的列系统指令和矩形区域的起始列地址CA00,则存储器装置在内部依次生成16个内部列地址,突发访问16个存储单位区域。为此,在列地址控制部中需要设定折返宽度控制信号selcntlw。
图36是进行本实施方式中的矩形区域的突发访问时的列地址控制部的结构图。在列地址控制部41中,为了能够进行垂直方向的扫描访问,地址生成单元88将同步时钟CLK提供给高位地址生成单元84的计数控制信号countuz,将高位地址生成单元84的计数结束信号(进位信号)caintue提供给低位地址生成单元80的计数控制信号countlz。并且关于高位、低位侧,将步伐控制信号selcntls都设定为step1,将低位侧的折返控制信号selcontlw设定为width16,将高位侧的折返控制信号selcontlw设定为width8。并且如果设定突发长度BL=8,则列地址控制部从起始列地址CA00起通过高位地址生成单元84的递增动作,依次生成内部列地址CA00、CA10、CA20、CA30、CA40、CA50、CA60、CA70,然后输出计数器A06的进位信号作为计数结束信号(进位信号)caintue,并向计数器A00输出该计数结束信号(进位信号)caintue作为地位地址生成单元的计数控制信号countlz。响应于此,低位地址生成单元80将低位地址递增+1。并且,列地址控制部从在低位侧递增了的列地址CA01起通过高位地址生成单元84的递增动作来依次生成内部列地址CA01、CA11、CA21、CA31、CA41、CA51、CA61、CA71。由此,能够通过突发长度为16的突发模式来进行矩形区域的访问。
图37、图38是进行矩形区域的突发访问时的高位地址生成单元的一部分的结构图。如图37所示,高位地址生成单元84在步伐设定电路86和折返宽度设定电路87之间具有4比特计数器85。折返宽度设定电路87具有选择器组SL14~SL17以及选择器组SL24~SL27。并且,如图38所示,高位地址生成单元84具有第一译码器170A和第二译码器170B,第一译码器170A生成用于控制选择器组SL14~SL17的控制信号width02~16,第二译码器170B生成用于控制选择器组SL24~SL27的控制信号cnt02en~con16en。
在图37的高位地址生成单元84中,译码器170A基于折返宽度控制信号selcntlw仅将折返宽度width08控制为H电平,只有选择器SL16选择计数器A06的输出caint6并将其作为计数结束信号caintue来输出。同样地,响应于折返宽度width08=H,图38的译码器170B将控制信号cnt08en、cnt04en、cnt02en控制为H电平,仅将控制信号cnt16en控制为L电平,选择器SL27选择输入in2,其他选择器SL26、SL25、SL24选择输入in1。由此,构成由计数器A04、A05、A06组成的3比特计数器,内部列地址cain4~6依次为000-111。最高位的地址caint7被固定在初始值caext7。即,图38的译码器电路170B由于控制信号380被设定为L电平,因此根据折返宽度信号width02~16来生成控制信号cnt02en~cnt16en。具体地,在折返宽度信号width02~16中,如果width02=H,则cnt02en=H,被设定为1比特计数器。如果width04=H,则cnt02en和cnt04en=H,被设定为2比特计数器。如果width16=H,则cnt02en、cnt04en、cnt08en、cnt16en=H,被设定为4比特计数器。
通过如上构成,列地址控制部从起始的列地址CA00依次递增高位列地址,若内部列地址到达至CA70则将高位的内部列地址折返到0000,并再次从列地址CA01依次递增高位列地址,并到达至CA71。由此生成与突发长度16对应的16个内部列地址CA00~CA70、CA01~CA71。如此,通过适当设定折返控制信号,能够使低位列地址或高位列地址以2、4、8、16折返,可生成对矩形区域进行突发访问所需的内部列地址。
在图36中,按通常方式将计数控制信号连接到低位以及高位地址生成单元,则能够通过1次的列系统指令和起始列地址对在水平方向上长的矩形区域进行突发访问。
图39是进行矩形区域的突发访问时的存储器装置的时序图。图39是与图27一样的突发访问的时序图,如果在时间t3与读指令RDA一起输入列地址CA00以及矢量地址VA=001,则存储器装置内的列地址控制部在时间t3以后依次生成内部列地址CA00、CA10~CA70、以及CA01、CA11~CA71。由此,通过输入1次的列系统指令和列地址,存储器层以突发长度16的突发访问进行矩形区域的突发访问。
[正向、反向访问]
图40是进行反向访问时的低位地址生成单元的一部分的结构图。图40中仅示出了低位地址生成单元80的计数器81,步伐设定电路和折返宽度设定电路被省略了。在计数器81的初始值输入端子init的前级设有EOR(异或)门组400,在输出电子out的后级设有EOR门组402。反向控制信号reverslz被输入给这些EOR门组400、402中一者的输入端子上,如果反向控制信号reverslz=H,则外部列地址caext0~3在EOR门组400中翻转后被输入给计数器81,计数器输出在EOR门组402中翻转后作为内部列地址caint0~3而输出。如果反向控制信号reverslz=L,则EOR门组400、402直接输出另一者的输入信号而不翻转。
即,如果反向控制信号reverslz=H,则例如将外部列地址caext0~3=1111翻转而得的0000作为初始值被设定给计数器,计数器81与计数控制信号countlz同步地从0000依次递增,将其输出值翻转而得的4比特地址作为内部列地址caint0~3而输出。由此,相对于外部列地址caext0~3=1111,通过反向控制,内部列地址caint0~3从1111向0000向反向方向向下计数。
地址生成单元控制电路88由于具有EOR门组400、402,因此能够将低位以及高位地址生成单元的计数方向设定为正向、反向中的任意方向。由此,即使矢量地址VA的方向为列地址的反向方向,列地址控制部也能够与突发模式相对应地依次生成反向方向的内部列地址。
图41是示出具有时间轴的存储器映射的例子的图。上述的实施方式在图7等中以将作为二维排列的数据的图像数据保存在1个页区域内的存储器映射为前提进行了说明。此时,为了可向由水平方向和垂直方向构成的二维空间内的任意方向进行扫描访问,将列地址分割成低位和高位来构成了列地址控制部。
在本实施方式中,列地址的分割数不限于2,可以是3或其以上。图41是列地址的分割数为3的例子。低位列地址CA-L(A00~A03)以及中位列地址CA-M(A04~A07)与二维阵列数据的水平方向和垂直方向相对应,高位列地址CA-U(A08~A09)与时间轴方向time相对应。如此,通过将列地址分割成3个,通过低位和中位列地址指定的二维阵列的页区域Page0~3通过高位列地址被指定为4个。
例如,在运动图像数据的压缩中,不仅进行帧内压缩,还进行时间轴方向上的压缩。此外,最近对于60帧/秒的原始图像数据,通过在帧间添加补偿帧来使得图像更好看。诸如在此情况下,需要不仅高速进行画面的水平和垂直方向的访问而且还高速进行时间轴方向的访问的存储器装置。在此情况下,作为图像数据向存储器的页区域的映射,有效的方式是将还包含时间轴方向的长方体空间映射到存储器。即,如图41所示,添加CA08、CA09作为用于指定时间轴方向的地址,从而将列地址控制部通过作为分配给图像的水平方向的低位列地址CA03~CA00、分配给图像的垂直方向的中位列地址CA07~CA04、分配给时间轴方向的高位列地址CA09~CA08的三个地址生成单元构成。根据该列地址控制部,可向图像的时间轴方向进行突发访问。
产业上的可用性
根据本发明,能够对图像数据等二维阵列数据向各种方向进行突发访问。