CN100357913C - 多维存储器的数据传送装置、传送程序以及传送方法 - Google Patents

多维存储器的数据传送装置、传送程序以及传送方法 Download PDF

Info

Publication number
CN100357913C
CN100357913C CNB031243703A CN03124370A CN100357913C CN 100357913 C CN100357913 C CN 100357913C CN B031243703 A CNB031243703 A CN B031243703A CN 03124370 A CN03124370 A CN 03124370A CN 100357913 C CN100357913 C CN 100357913C
Authority
CN
China
Prior art keywords
storer
data
multidimensional
read
dimension
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB031243703A
Other languages
English (en)
Other versions
CN1445679A (zh
Inventor
久保敏浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of CN1445679A publication Critical patent/CN1445679A/zh
Application granted granted Critical
Publication of CN100357913C publication Critical patent/CN100357913C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供一种能够进行高效率SIMD运算的同时,适合于在多维存储器和一维存储器之间传送数据的多维存储器数据传送装置。DMAC43从二维数据、访问、存储器(10)中读出二维数据、访问、存储器(10)的逻辑二维空间中的矩形区域内的数据,将读出的数据写入一维数据、访问、存储器(41)中。从一维数据、访问、存储器(41)中读出数据,将读出数据写入二维数据、访问、存储器(10)中以便于将该数据配置在二维数据、访问、存储器(10)的逻辑二维空间中的矩形区域中。

Description

多维存储器的数据传送装置、传送程序以及传送方法
技术领域
本发明涉及可以实现高效率SIMD(单指令流多数据流)运算的在二维存储器和SRAM等一维存储器之间进行数据传送的装置、程序以及方法,特别涉及在能够进行高效率SIMD运算的同时,适合于在多维存储器和一维存储器之间进行数据传送的多维存储器的数据传送装置以及多维存储器的数据传送程序、以及多维存储器的数据传送方法。
背景技术
SIMD运算为带有多个处理器并且通过同一命令来处理多个数据的方式。为此,一般地,在从存储在存储器中的一维数据列中取出连续部分的一部分列进行并行运算的情况下,它是非常有效率的。
但是,作为运算对象的数据不是连续存储在存储器上,希望将运算结果分散配置到存储器上一定位置的情况下,需要用于准备并列运算对象数据的处理以及用于将并列运算结果配置在存储器一定位置上的处理。为此,存在妨碍原本并列处理的好处的缺陷。
但是,作为通过SIMD处理将二维离散余弦变换高速化的技术,已知的是在特开2000-69478号公报上记载的发明。
该发明将按扫描顺序配置的图像数据重新排列为在适合于通过SIMD处理来执行变换编码运算中的蝶形运算的顺序,每次将该重新排列结果存储在存储器中,将存储在该存储器中的图像数据进行二维离散余弦变换。
但是,在上述公报中记载的发明,将图像数据重新排列的操作是必须的,在通过硬件实现的情况中,有关该重新排列的电路是必须的,考虑到电路规模变大等不利之处,并且还存在由于重新排列操作引起的通过存储器访问导致消耗功率变大这些不利之处。
作为解决该问题的一个方法,可以采用从访问一侧看去,将存储器空间构造成二维空间的二维存储器。
由如下单元构造二维存储器:例如,在假设纵向横向上排列二维形成的一定虚拟最小二维存储器空间的二维存储器空间的同时,预先以一定规则分别分配虚拟最小二维存储器空间的各个地址的n个存储器,数据读出时,特定所述虚拟最小二维存储器空间上的访问位置,根据从特定的访问位置中读出数据的方向或指定模式的读出访问图案,重新排列来自n个存储器的各个读出数据,将重新排列的各个读出数据一并输出的读出数据控制器,指定读出地址时,根据所述指定读出访问模式和特定访问位置,将指定读出地址校正为一定地址并输出到n个存储器中的读出地址控制单元。
由此,由于从物理各存储器中同时读出在从二维存储器空间上读指定位置处开始横方向或纵方向排列的连续数据或不连续数据,因此能实现有效率的SIMD运算。对于二维存储器,在本申请人以前申请的特愿2000-355945中详细说明了。
因此,由于将进行SIMD运算的情况假定为将存储在SRAM等(以下,相对于称为二维存储器的术语,将SRAM等常规存储器称之为一维存储器)中的运算对象数据读入二维存储器中开始执行运算,因此需要从一维存储器开始有效率地将数据传送到二维存储器中的结构。同样地,运算之后,由于假定将存储在二维存储器中的运算数据写入一维存储器中,因此需要从二维存储器开始有效率地将数据传送到一维存储器中的结构。这种情况,期望数据传送不只传送数据,而是适合于运算。即,SIMD运算由于有对二维空间中的一定区域内的数据进行运算,因此需要从一维存储器中一并读出这样的数据。
为此,不局限于二维存储器,在从访问一侧看去将存储器空间构成多维空间的多维存储器和一维存储器之间进行数据传送的情况中也是同样的。
发明内容
因此,本发明着眼于现有技术中未解决的问题,其目的在于为提供一种在能够进行高效率SIMD运算的同时,适合于在多维存储器和一维存储器之间进行数据传送的多维存储器的数据传送装置以及多维存储器的数据传送程序、以及多维存储器的数据传送方法。
为了实现上述目的,涉及本发明的第1方面中记载的多维存储器的数据传送装置,它在从访问一侧看去将存储器空间构成多维空间的多维存储器和从访问一侧看去将存储器空间构成一维空间的一维存储器之间进行数据传送,它带有,从所述多维存储器中读出所述多维空间内一定区域内的数据的多维存储器读出装置;在所述多维空间中的一个位置与多个存储器每个中的一个位置相对应,在所述多维空间中的一个位置的读出数据同时包括多个存储器每个中的一个位置的读出数据;以及将由所述多维存储器读出装置读出的数据写入所述一维存储器中的一维存储器写入装置。
根据这样的结构,通过多维存储器读出装置,从多维存储器中读出多维空间内一定区域中的数据,通过一维存储器写入装置,将读出的数据写入一维存储器中。
这里,多维存储器是从访问一侧看去将存储器空间构成多维空间的多维存储器,也可以是任何结构,其中,除了将存储器空间构造成二维空间的二维存储器之外,还包含将存储器空间构造成三维以上的多维空间的多维存储器。以下,在第10方面中记载的多维存储器的数据传送装置、第22以及23方面中记载的多维存储器的数据传送程序、以及第24以及25方面中记载的多维存储器的数据传送方法中都包含上述相同的含义。
涉及本发明的第2方面中记载的多维存储器的数据传送装置,在第1方面中记载的多维存储器的数据传送装置中,所述多维存储器读出装置输入作为读出数据时基准的读出基准地址以及用来特定所述多维空间内读出区域的读出区域特定信息,根据输入的读出基准地址以及读出区域特定信息,从所述多维存储器中读出所述多维空间内一定区域中的数据。
根据这样的结构,一旦输入读出基准地址以及读出区域特定信息时,通过多维存储器读出装置,基于输入的读出基准地址以及读出区域特定信息,从多维存储器中读出多维空间内一定区域内的数据。
这里,读出区域特定信息是用于特定多维空间内的读出区域的信息,也可以是其它信息,例如,可以是表示特定读出区域的形状的坐标的信息,还可以是将读出区域定义为矩形以及三角形等的规定区域情况下表示它的形态的信息。
涉及本发明的第3方面中记载的多维存储器的数据传送装置,在第2方面中记载的多维存储器的数据传送装置中,所述读出区域特定信息包含表示所述多维空间每个维中的该维中应该读出数据的长度的读出数据长度信息,所述多维存储器读出装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,以及所述读出基准地址,特定所述多维空间中的读出区域,从而从所述多维存储器中读出特定读出区域内的数据。
根据这样的结构,一旦输入读出基准地址以及读出区域特定信息时,通过多维存储器读出装置,基于包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,以及所述读出基准地址,特定多维空间中的读出区域,从而从多维存储器中读出特定读出区域的数据。
涉及本发明的第4方面中记载的多维存储器的数据传送装置,在第3方面中记载的多维存储器的数据传送装置中,所述读出区域特定信息还包含表示对于所述多维空间的一定维数其中该维数的最大数据长度的最大数据长度信息,所述多维存储器读出装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,由包含在所述读出区域特定信息中的最大数据长度信息特定的数据长度,以及所述读出基准地址,特定所述多维空间中的读出区域,从而从所述多维存储器中读出特定读出区域内的数据。
根据这样的结构,一旦输入读出基准地址以及读出区域特定信息时,通过多维存储器读出装置,基于由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,由包含在读出区域特定信息中的最大数据长度信息特定的数据长度、以及所述读出基准地址,特定多维空间中的读出区域,从而从多维存储器中读出特定读出区域内的数据。
涉及本发明的第5方面中记载的多维存储器的数据传送装置,在第3以及4方面任一方面中记载的多维存储器的数据传送装置中,所述一维存储器写入装置输入作为写入数据时基准的写入基准地址以及用来特定所述一维空间内写入区域的写入区域特定信息,根据输入的写入基准地址以及写入区域特定信息,将由所述多维存储器读出装置读出的数据写入所述一维存储器中。
根据这样的结构,一旦输入写入基准地址以及写入区域特定信息时,通过一维存储器写入装置,基于输入的写入基准地址以及写入区域特定信息,将读出的数据写入一多维存储器中。
这里,写入区域特定信息是用于特定一维空间内的写入区域的信息,也可以是其它信息,例如,也可以是表示特定写入区域的形状的坐标的信息,还可以是将写入区域定义为矩形以及三角形等的规定区域情况下表示它的形态的信息。
涉及本发明的第6方面中记载的多维存储器的数据传送装置,在第5方面中记载的多维存储器的数据传送装置中,所述写入区域特定信息包含在由逻辑上所述一维存储器构成与所述多维空间相同的多维空间的情况下,表示对于所述逻辑多维空间规定维数而言该维数最大数据长度的最大数据长度信息,所述一维存储器写入装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,由包含在所述写入区域特定信息中的最大数据长度信息特定的数据长度,以及所述写入基准地址,特定所述一维存储器的写入区域从而将由所述多维存储器读出装置读出的数据写入所述特定的写入区域。
根据这样的结构,一旦输入写入基准地址以及写入区域特定信息时,通过一维存储器写入装置,基于由包含在读出区域特定信息中的各个读出数据长度信息特定的数据长度,由包含在写入区域特定信息中的最大数据长度信息特定的数据长度、以及写入基准地址,特定多维存储器中的写入区域,从而将数据写入特定写入区域中。
涉及本发明的第7方面中记载的多维存储器的数据传送装置,在第6方面中记载的多维存储器的数据传送装置中,所述一维存储器写入装置可以设定下列两种模式中的任何一种:使所述读出区域和所述写入区域相对应,在所述写入区域中写入所述读出区域的数据的常规传送模式,以及将所述读出区域和所述写入区域转置,在所述写入区域中写入所述读出区域数据的转置传送模式,根据设定的传送模式,将由所述多维存储器读出装置读出的数据写入所述一维存储器中。
根据这样的结构,设定为常规传送模式时,通过一维存储器写入装置,使读出区域与写入区域相对应,将读出的数据写入一维存储器中。设定转置传送模式时,通过一维存储器写入装置,将读出区域与写入区域转置,将读出的数据写入一维存储器中。
涉及本发明的第8方面中记载的多维存储器的数据传送装置,在第1到7方面的任一方面中记载的多维存储器的数据传送装置中,通过第1脉冲串长度的总线与所述多维存储器相连,所述多维存储器读出装置以所述第1脉冲串长度为单位从所述多维存储器中读出所述多维空间中一定区域内的数据,应该从所述多维存储器中读出的数据不足所述第1脉冲串长度时,仅对该数据而言,变为以不足所述第1脉冲串长度的数据为单位从所述多维存储器中读出。
根据这样的结构,通过多维存储器读出装置,以第1脉冲串长度为单位从多维存储器中读出多维空间中一定区域内的数据。但是,应该从所述多维存储器中读出的数据不足所述第1脉冲串长度时,仅对该数据而言,变为以不足脉冲串长度的数据为单位从多维存储器中读出。
涉及本发明的第9方面中记载的多维存储器的数据传送装置,在第1到8方面的任一方面中记载的多维存储器的数据传送装置中,通过第2脉冲串长度的总线与所述一维存储器相连,所述一维存储器写入装置,以所述第2脉冲串长度为单位将由所述多维存储器读出装置读出数据写入所述一维存储器中,应该写入到所述一维存储器中的数据不足所述第2脉冲串长度时,仅对该数据而言,变为以不足所述第2脉冲串长度的数据为单位写入所述一维存储器中。
根据这样的结构,通过一维存储器读出装置,以第2脉冲串长度为单位将读出数据写入一维存储器中。但是,应该写入到一维存储器中的数据不足第2脉冲串长度时,仅对该数据而言,变为以不足第2脉冲串长度的数据为单位将其写入一维存储器中。
涉及本发明的第10方面中记载的多维存储器的数据传送装置,它在从访问一侧看去将存储器空间构成多维空间的多维存储器和从访问一侧看去将存储器空间构成一维空间的一维存储器之间进行数据传送,它带有,从所述一维存储器中读出数据的一维存储器读出装置,以及将由所述一维存储器读出装置读出的数据写入所述多维存储器中以便于将该数据配置在所述多维空间的一定区域中的多维存储器写入装置,所述多维空间中的一个位置对应于每个多维存储器中的一个位置,在所述多维空间中的一个位置上写入数据同时形成了在多个存储器的每个中的一个位置上写入数据。
根据这样的结构,通过一维存储器读出装置,从一维存储器中读出数据,通过多维存储器写入装置,将读出的数据写入到多维存储器中从而配置在多维空间内一定区域中。
涉及本发明的第11方面中记载的多维存储器的数据传送装置,在第10方面中记载的多维存储器的数据传送装置中,所述一维存储器读出装置输入作为读出数据时基准的读出基准地址,以及在由所述一维存储器逻辑上构成与所述多维空间相同的多维空间的情况下用来特定所述逻辑多维空间内读出区域的读出区域特定信息,根据输入的读出基准地址以及读出区域特定信息,从所述一维存储器中读出所述逻辑多维空间内一定区域中的数据。
根据这样的结构,一旦输入读出基准地址以及读出区域特定信息时,通过一维存储器读出装置,基于输入的读出基准地址以及读出区域特定信息,从一多维存储器中读出逻辑多维空间中一定区域内的数据。
这里,读出区域特定信息是用于特定逻辑多维空间内的读出区域的信息也可以是其它信息,例如,也可以是表示特定读出区域的形状的坐标的信息,还可以是将读出区域定义为矩形以及三角形等的规定区域情况下表示它的形态的信息。
涉及本发明的第12方面中记载的多维存储器的数据传送装置,在第11方面中记载的多维存储器的数据传送装置中,所述读出区域特定信息包含表示所述逻辑多维空间每个维中在该维中应该读出数据的长度的读出数据长度信息,所述一维存储器读出装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,以及所述读出基准地址,特定所述逻辑多维空间中的读出区域,从而从所述一维存储器中读出特定读出区域内的数据。
根据这样的结构,一旦输入读出基准地址以及读出区域特定信息时,通过一维存储器读出装置,基于由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,以及所述读出基准地址,特定所述逻辑多维空间中的读出区域,从而从一维存储器中读出特定读出区域内的数据。
涉及本发明的第13方面中记载的多维存储器的数据传送装置,在第12方面中记载的多维存储器的数据传送装置中,所述读出区域特定信息还包含表示对于所述逻辑多维空间的一定维数其中该维数的最大数据长度的最大数据长度信息,所述一维存储器读出装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,由包含在所述读出区域特定信息中的最大数据长度信息特定的数据长度,以及所述读出基准地址,特定所述逻辑多维空间中的读出区域从而从所述一维存储器中读出特定读出区域内的数据。
根据这样的结构,一旦输入读出基准地址以及读出区域特定信息时,通过一维存储器读出装置,基于由包含在读出区域特定信息中的各个读出数据长度信息特定的数据长度、由包含在读出区域特定信息中的最大数据长度信息特定的数据长度,以及读出基准地址,特定所述逻辑多维空间中的读出区域,从而从一维存储器中读出特定读出区域内的数据。
涉及本发明的第14方面中记载的多维存储器的数据传送装置,在第12以及13方面任何一个中记载的多维存储器的数据传送装置中,所述多维存储器写入装置输入作为写入数据时基准的写入基准地址以及用来特定所述多维空间内写入区域的写入区域特定信息,根据输入的写入基准地址以及写入区域特定信息,将由所述一维存储器读出装置读出的数据写入所述多维存储器中。
根据这样的结构,一旦输入写入基准地址以及写入区域特定信息时,通过多维存储器写入装置,基于输入的写入基准地址以及写入区域特定信息,将读出的数据写入多维存储器中。
这里,写入区域特定信息最好是用于特定多维空间内的写入区域的信息,例如,可以是表示特定写入区域的形状的坐标的信息,还可以是将写入区域定义为矩形以及三角形等的规定区域情况下表示它的形态的信息。
涉及本发明的第15方面中记载的多维存储器的数据传送装置,在第14方面中记载的多维存储器的数据传送装置中,所述写入区域特定信息包含表示对于所述多维空间规定维数而言该维数最大数据长度的最大数据长度信息,所述多维存储器写入装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,由包含在所述写入区域特定信息中的最大数据长度信息特定的数据长度,以及所述写入基准地址,特定多维存储器的写入区域,从而将由所述一维存储器读出装置读出的数据写入所述特定的写入区域。
根据这样的结构,一旦输入写入基准地址以及写入区域特定信息时,通过多维存储器写入装置,基于由包含在读出区域特定信息中的各个读出数据长度信息特定的数据长度,由包含在写入区域特定信息中的最大数据长度信息特定的数据长度,以及写入基准地址,特定所述多维存储器的写入区域,从而将数据写入特定的写入区域。
涉及本发明的第16方面中记载的多维存储器的数据传送装置,在第15方面中记载的多维存储器的数据传送装置中,所述多维存储器写入装置可以设定下列两种模式中的任何一种:使所述读出区域和所述写入区域相对应,在所述写入区域中写入所述读出区域的数据的常规传送模式,以及将所述读出区域和所述写入区域转置,在所述写入区域中写入所述读出区域数据的转置传送模式,根据设定的传送模式,将由所述一维存储器读出装置读出的数据写入所述多维存储器中。
根据这样的结构,设定了常规传送模式时,通过多维存储器写入装置,使读出区域与写入区域相对应,将读出的数据写入多维存储器中。设定转置传送模式时,通过多维存储器写入装置,将读出区域与写入区域转置,将读出的数据写入多维存储器中。
涉及本发明的第17方面中记载的多维存储器的数据传送装置,在第10-16方面任一方面中记载的多维存储器的数据传送装置中,通过第1脉冲串长度的总线与所述多维存储器相连,所述多维存储器写入装置以所述第1脉冲串长度为单位将从所述一维存储器中读出的数据写入到所述多维存储器中,应该写入从所述多维存储器的数据不足所述第1脉冲串长度时,仅对该数据而言,变为以不足所述第1脉冲串长度的数据为单位写入到所述多维存储器中。
根据这样的结构,通过多维存储器读出装置,以第1脉冲串长度为单位将读出数据写入多维存储器中。但是,应该写入多维存储器中的数据不足所述第1脉冲串长度时,仅对该数据而言,变为以不足第1脉冲串长度的数据为单位写入多维存储器中。
涉及本发明的第18方面中记载的多维存储器的数据传送装置,在第10到17任一方面中记载的多维存储器的数据传送装置中,通过第2脉冲串长度的总线与所述一维存储器相连,所述一维存储器读出装置,以所述第2脉冲串长度为单位从所述一维存储器中读出来自所述一维存储器的数据,应该从所述一维存储器读出的数据不足所述第2脉冲串长度时,仅对该数据而言,变为以不足所述第2脉冲串长度的数据为单位从所述一维存储器中读出。
根据这样的结构,通过一维存储器读出装置,以第2脉冲串长度为单位从一维存储器中读出多维空间一定区域的数据。但是,应该从一维存储器中读出的数据不足第2脉冲串长度时,仅对该数据而言,变为以不足第2脉冲串长度的数据为单位从一维存储器中将其读出。
涉及本发明的第19方面中记载的多维存储器的数据传送装置,在第1到18任一方面中记载的多维存储器的数据传送装置中,所述多维存储器和所述一维存储器之间的数据传送为与利用所述多维存储器进行运算的运算处理装置的操作相独立而执行的。
根据这样的结构,多维存储器和一维存储器之间的数据传送是独立于运算处理装置的操作而执行的。
涉及本发明的第20方面中记载的多维存储器的数据传送装置,在第1到19任一方面中记载的多维存储器的数据传送装置中,所述多维存储器带有:假设在纵向横向上排列二维形成的一定虚拟最小二维存储器空间的二维存储器空间的同时,预先以一定规则分别分配所述虚拟最小二维存储器空间的各个地址的n个存储器,数据读出时,特定所述虚拟最小二维存储器空间上的地址位置,根据从特定的地址位置中读出数据的方向或指定图案的读出访问模式,重新排列来自n个存储器的读出数据,将重新排列的各个读出数据一并输出的读出数据控制器,指定读出地址时,根据所述指定读出访问模式和所述特定访问位置,或在跨过访问空间相邻的所述虚拟最小二维存储器空间的情况下根据所述指定读出访问模式,来将所述指定读出地址校正为一定地址并输出到所述n个存储器中的读出地址控制单元。
根据这样的结构,指定读出地址时,通过读出地址控制单元,对应于指定读出访问模式和特定访问位置,将指定读出地址校正为一定地址,将校正后的地址输出到n个存储器中。在访问空间跨过相邻的所述虚拟最小二维存储器空间的情况下,通过读出地址控制单元,对应于指定读出访问模式,将指定读出地址校正为一定地址,将校正后的地址输出到n个存储器中。然后,在数据读出时,通过读出数据控制单元,特定虚拟最小二维存储器空间上的访问位置,对应于读出访问模式,重新排列来自n个存储器的各读出数据,将重新排列的各个读出数据一并输出。
涉及本发明的第21方面记载的多维存储器的数据传送装置,在第20方面中记载的多维存储器的数据传送装置中,所述读出数据控制器带有:读出数据时,输出根据指定的读出地址来特定的所述虚拟最小二维存储器空间上的访问位置以及根据指定的所述读出访问模式来选择所述n个存储器的读出数据的选择信号的数据控制器,以及对应于所述n个存储器所设置、基于来自所述数据控制器的选择信号来选择来自所述n个存储器的各个读出数据并同时将其输出的n个选择器,所述读出地址控制单元带有:指定读出地址时,根据所述读出访问模式以及所述读出地址,输出将相当于所述各个存储器的下位侧地址的所述读出地址变换为一定值的地址变换信号的同时,在访问空间跨过相邻的所述虚拟最小二维存储器空间的情况下,根据所述读出访问模式,输出将相当于所述各个存储器上位侧地址的所述读出地址进行校正的校正信号的地址控制器,以及对应于所述n个存储器设置、基于来自所述地址控制器的地址变换信号将所述读出地址变换为一定值并向所述各个存储器输出的同时,基于来自所述地址控制器的校正信号对所述读出地址进行校正并向所述各个存储器输出的n个地址校正器。
根据这样的结构,指定读出地址时,通过地址控制器,对应于读出访问模式以及读出地址,输出将相当于各个存储器的下位侧地址的读出地址变换为一定值的地址变换信号,通过各个地址校正单元,基于地址变换信号,将读出地址变换为一定值并输出到各个存储器中。在访问空间跨过相邻的虚拟最小二维存储器空间的情况下,通过地址控制器,根据读出访问模式,输出将相当于各个存储器上位侧地址的读出地址进行校正的校正信号,通过各个地址校正单元,基于校正信号,校正读出地址并将其输出到各个存储器中。
然后,在数据读出时,通过数据控制器,输出对应于根据读出地址的指定特定的虚拟最小二维存储器空间上的访问位置,以及读出访问模式的指定来选择n个存储器的读出数据的选择信号,通过各个选择单元,基于选择信号,选择来自n个存储器的各读出数据并同时将其输出。
另一方面,为了实现上述目的,涉及本发明的第22方面中记载的多维存储器的数据传送程序,它在从访问一侧看去将存储器空间构成多维空间的多维存储器和从访问一侧看去将存储器空间构成一维空间的一维存储器之间进行数据传送,它是用于在计算机中执行作为从所述多维存储器中读出所述多维空间内一定区域内的数据的多维存储器读出装置,以及将由所述多维存储器读出装置读出的数据写入所述一维存储器中的一维存储器写入装置来实现的处理的程序。
根据这样的结构,通过计算机读取程序,根据读出的程序计算机执行处理时,可以获得与第1方面记载的多维存储器的数据传送装置相同的效果。
涉及本发明的第23方面中记载的一种多维存储器的数据传送程序,它在从访问一侧看去将存储器空间构成多维空间的多维存储器和从访问一侧看去将存储器空间构成一维空间的一维存储器之间进行数据传送,其特征在于,它是用于在计算机中执行作为从所述一维存储器中读出数据的一维存储器读出装置,以及将由所述一维存储器读出装置读出的数据写入所述多维存储器中以便于将该数据配置在所述多维空间的一定区域中的多维存储器写入装置来实现的处理的程序。
根据这样的结构,通过计算机读取程序,根据读出的程序计算机执行处理时,可以获得与第10方面记载的多维存储器的数据传送装置相同的效果。
另一方面,为了实现上述目的,涉及本发明的第24方面中记载的一种多维存储器的数据传送方法,它在从访问一侧看去将存储器空间构成多维空间的多维存储器和从访问一侧看去将存储器空间构成一维空间的一维存储器之间进行数据传送,它包含从所述多维存储器中读出所述多维空间内一定区域内的数据的多维存储器读出步骤,以及将由所述多维存储器读出步骤读出的数据写入所述一维存储器中的一维存储器写入步骤。
涉及本发明的第25方面中记载的一种多维存储器的数据传送方法,它在从访问一侧看去将存储器空间构成多维空间的多维存储器和从访问一侧看去将存储器空间构成一维空间的一维存储器之间进行数据传送,它包含从所述一维存储器中读出数据的一维存储器读出步骤,以及将由所述一维存储器读出步骤读出的数据写入所述多维存储器中以便于将该数据配置在所述多维空间的一定区域中的多维存储器写入步骤。
附图说明
图1是示出虚拟最小二维存储器空间1的图。
图2是示出映射到虚拟最小二维存储器空间的物理存储器的图。
图3是示出了基于虚拟最小二维存储器空间1所形成的二维存储器空间3的图。
图4是说明访问模式的图。
图5是示出了二维数据、访问、存储器10的结构框图。
图6是示出读出地址控制单元11以及读出数据控制器12结构框图。
图7是示出写入地址控制单元13以及写入数据控制器14的结构框图。
图8是示出根据读出地址和读出访问模式各选择单元选择哪个存储器的输出的图。
图9是示出读出地址变换例子的图。
图10是示出读出地址校正例子的图。
图11是示出涉及本发明的运算处理装置的结构框图。
图12是示出通过常规传送模式传送数据情况的示意图。
图13是示出常规传送处理的流程图。
图14是示出通过转置传送模式传送数据情况的示意图。
图15是示出转置传送处理的流程图。
图16是利用二维数据、访问、存储器10执行二维DCT的情况时的操作图。
图17是利用二维数据、访问、存储器10执行二维DCT的情况时的操作图。
图18是利用二维数据、访问、存储器10执行二维DCT的情况时的操作图。
图19是表示相对于DMAC43输入输出信号变化的时序图。
图20是示出了在地址信号的最上位比特部分中分配访问模式情况的数据结构例子的图。
图21是示出了如图20所示分配信号的情况中,读出地址控制单元以及读出数据控制器的结构例子框图。
具体实施方式
以下,参照附图说明本发明的实施例。图1到图19是示出了涉及本发明的多维存储器的数据传送装置以及多维存储器的数据传送程序、以及多维存储器的数据传送方法的实施例的图。
本实施例将涉及本发明的多维存储器的数据传送装置以及多维存储器的数据传送程序、以及多维存储器的数据传送方法应用于通DMAC(直接存储器寻址控制器)在二维数据、访问、存储器和一维数据、访问、存储器之间进行数据传送的情况。
本实施例中,除了SRAM等一维数据、访问、存储器之外,还可以利用从访问侧看去将存储器空间构造成二维存储器的数据、访问、存储器。由于二维数据、访问、存储器确定了如图1所示的虚拟最小二维存储器空间1,因此,首先对此进行说明。图1是示出了虚拟最小二维存储器空间1的图。
如图1所示,虚拟最小二维存储器空间1是例如在纵方向和横方向上分别各配置4个总计16个可存储1字节(8比特)最小单位的假设存储元件2。因而,该例子是由4字节×4字节=16字节构成。并且,虚拟最小二维存储器空间1的大小除了上述16字节以外还可以是8×8=64字节等。
如图2所示,在物理上,将虚拟最小二维存储器空间1预先分割为4个物理的存储器4A-4C并映射。即,1个虚拟最小二维存储器空间1对应于从4个物理存储器4A-4C的相同地址开始的4字节连续区域。具体而言,例如,预先分别将各存储器4A-4D的一定地址an(0)、bn(0)、cn(0)、dn(0)分配给虚拟最小二维存储器空间1的各地址an(0)、bn(0)、cn(0)、dn(0)…。
本实施例中,由于假定了如图3所示的二维存储器空间3,因此对此进行说明。图3是示出了基于虚拟最小二维存储器空间1所形成的二维存储器空间3的图。
如图3所示,二维存储器空间3将虚拟最小二维存储器空间1在纵方向和横方向上配置为瓦片状。在二维存储器空间3中,在横方向上排列虚拟最小二维存储器空间1的个数可以任意设定为2的倍数,图3的例子中,为16字节×n字节。
随后,参照图1到图4说明涉及本实施例的存储器的利用方法。
首先,如图3所示,假定使虚拟最小二维存储器空间1在纵横方向上排列成瓦片状的二维存储器空间3。
另一方面,预先将虚拟最小二维存储器空间1的各个地址分配(对应)到由与虚拟最小二维存储器空间1的大小之间的关系确定的4个物理存储器4A-4D的一定各个地址(参照图1以及图2)。
随后,说明有关读出从虚拟最小二维存储器空间1上的任意地址开始连续的数据时的存储器4A-4D的读出操作。
这种情况中,指定该任意读出地址同时,指定指定数据读出方向的读出访问模式。
在读出访问模式中,存在行方向访问模式、列方向访问模式、行方向2阶段访问模式。
如图4的M1所示,行方向访问模式从虚拟最小二维存储器空间1上的任意读出地址开始沿行方向(横方向)按8比特×4、16比特×2、或32比特×1这样读出数据,考虑16个左右的地址。
如图4的M2所示,列方向访问模式从虚拟最小二维存储器空间1上的任意读出地址开始沿列方向(纵方向)按8比特×4这样读出数据,考虑16个左右的地址。
行方向2阶段访问模式如图4的M3所示从虚拟最小二维存储器空间1上的任意地址开始跨越行方向2阶段,按16比特×2这样读出数据,考虑8个左右的地址。在该模式中,将行方向仅限定为2字节单位。
如此,指定虚拟最小二维存储器空间1上的任意读出地址,并且一旦指定了读出访问模式,就基于该指定的读出地址以及指定的读出访问模式,指定对应于存储器4A-4D的各个地址,读出数据时,同时输出该读出的数据。
例如,在图4中,在虚拟最小二维存储器空间1上,指定地址cn(0),并且指定M3所示的行方向2阶段访问模式的情况中,变为以下情况。即,在这种情况中,分别将存储器4A指定为地址an(1),将存储器4B指定为地址bn(1),将存储器4C指定为地址cn(0),将存储器4D指定为地址dn(0),同时读出各个数据。
随后,说明将数据同时写入虚拟最小二维存储器空间1上的任意地址中时的存储器4A-4D的写入操作。
该情况中,指定该任意写入地址的同时,指定指定了数据写入方向的写入访问模式。这样做时,基于该指定写入地址和指定写入访问模式,在指定对应于存储器4A-4D的各个地址并变为可写入数据的同时,同时在各个地址中写入应该写入的数据。
例如,在图4中,在虚拟最小二维存储器空间1上,指定地址cn(0),并且指定M3所示的行方向2阶段访问模式的情况中,变为以下情况。即,在这种情况中,分别将存储器4A指定为地址an(1),将存储器4B指定为地址bn(1),将存储器4C指定为地址cn(0),将存储器4D指定为地址dn(0),数据变为可以写入状态,同时执行这些各个数据的写入。
如上所述,根据涉及本实施例的存储器的利用方法,一旦指定了二维存储器空间3上任意的访问位置和访问模式,则对应于该指定,可以将二维存储器空间3上任意访问位置开始的横方向或纵方向上连续的数据同时读出写入到各个存储器4A-4D中。为此,涉及本实施例的存储器的利用方法有利于SIMD运算的高效率。
参照图5到图7来说明二维数据、访问、存储器10的结构。
二维数据、访问、存储器10是将涉及上述实施例的存储器利用方法具体化的装置,如图5所示,它带有存储器4A-4D、读出地址控制单元11、读出数据控制器12、写入地址控制单元13、写入数据库控制单元14。
然后,读出地址控制单元11和读出数据控制器12构成数据读出系统,同时,写入地址控制单元13和写入数据控制器14构成数据写入系统,这两个系统共同拥有存储器4A-4D。
如图3所示,存储器4A-4D是这样的存储器:假设将虚拟最小二维存储器空间1排列在纵横方向上的二维存储器空间3,如图2所示,事先按照一定的规则将虚拟最小二维存储器空间1的各个地址分别分配给预先确定的地址。
读出地址控制单元11为这样的地址控制单元:指定读出地址时,根据读出访问模式的指定,将该读出地址中的一定地址变换为一定值并输出到存储器4A-4D的同时,在访问空间跨过相邻的所述虚拟最小二维存储器空间1的情况下(参照图3以及图4),根据指定读出访问模式,校正该读出地址中的除了上述地址之外的地址并将其输出到存储器4A-4D。
读出数据控制器12为这样的控制单元:指定读出地址时,根据读出地址的一部分特定虚拟最小二维存储器空间1上的读出地址,对应于特定的读出地址以及指定的读出访问模式,重新排列来自存储器4A-4D的各个读出数据,并且将重新排列的数据同时输出。
写入地址控制单元13为这样的控制单元:指定写入地址时,根据写入访问模式的指定,将该写入地址中的一定地址变换为一定值并输出到存储器4A-4D的同时,在访问空间跨过相邻的所述虚拟最小二维存储器空间1的情况下,根据指定写入访问模式,校正该写入地址中的除了上述地址之外的地址并将其输出到存储器4A-4D。
写入数据控制器14为这样的控制单元:对存储器4A-4D写入各个数据时,基于写入地址的一部分,特定虚拟最小二维存储器空间1上的写入地址,根据特定的写入地址以及指定的写入访问模式,重新排列对存储器4A-4D的各个写入数据,并且将重新排列的各个写入数据同时写入存储器4A-4D的各个指定地址中。
然后,参照图6详细说明读出地址控制单元11以及读出数据控制器12的结构。图6是示出读出地址控制单元11以及读出数据控制器12结构框图。
如图6所示,读出地址控制单元11带有地址控制器21以及4个地址校正单元22A-22D。
地址控制器21为这样的控制单元,根据读出地址A0、A1、A4、A5的指定以及读出访问模式的指定,将用于将相当于存储器4A-4D下位2比特的地址a0、a1的读出地址A4、A5变换为一定值的地址变换信号输出到校正单元22A-22D的同时,在访问的空间跨接相邻的虚拟最小二维存储器空间1的情况下,根据读出访问模式的指定,用于将相当于存储器4A-4D上位5比特的地址a2-a7的读出地址A2、A3、A6-A9校正为一定值的校正信号输出到地址校正单元22A-22D。
这里,读出地址A0、A1为指定虚拟最小二维存储器空间1的行方向(横方向)的地址的地址,相当于存储器4A-4D的下位侧的地址a0、a1。读出地址A4、A5为指定虚拟最小二维存储器空间1的列方向(纵方向)的地址的地址。另外,读出地址A2、A3、A6-A9为指定二维存储器空间3的地址的地址,相当于存储器4A-4D的地址a2-a7。
地址校正单元22A-22D为这样的单元:对应于存储器4A-4D而设计,根据来自地址控制器21的地址变换信号,将读出地址A4、A5变换为一定值,并将其作为存储器4A-4D的下位侧的地址a0、a1输出的同时,基于来自地址控制器21的校正信号,将读出地址A2、A3、A6-A9仅校正为一定值并将其作为存储器4A-4D的上5位地址a2-a7输出。
如图6所示,读出数据控制器12带有数据控制端器23和4个选择单元24A-24D。
数据控制器23为这样的单元:读出地址时,根据读出地址A0、A1、A4、A5的指定,特定虚拟最小二维存储器空间1上的读出地址,根据指定从特定读出地址中读出数据的方向的读出访问模式,分别向选择单元24A-24D输出选择单元24A-24D选择存储器4A-4D时的选择信号。
选择单元24A-24D是对应于存储器4A-4D而设计,并且是基于来自数据控制器23的选择信号来选择各个存储器4A-4D输出线上的读出数据并同时将其输出(取出)的单元。
随后,参照图7详细说明写入地址控制单元13以及写入数据控制器14的结构。图7是示出写入地址控制单元13以及写入数据控制器14的结构框图。
如图7所示,写入地址控制单元13带有地址控制器31以及4个地址校正单元32A-32D。
地址控制器31为这样的控制单元,根据写入地址A0、A1、A4、A5的指定以及写入访问模式的指定,将用于将相当于存储器4A-4D下位2比特的地址a0、a1的写入地址A4、A5变换为一定值的地址变换信号输出到校正单元32A-32D的同时,在访问的空间跨接相邻的虚拟最小二维存储器空间1的情况下,根据写入访问模式的指定,用于将相当于存储器4A-4D上位5比特的地址a2-a7的地址的写入地址A2、A3、A6-A9仅校正为一定值的校正信号输出到地址校正单元32A-32D。
这里,写入访问模式与读出访问模式基本相同,由3个访问模式组成。
地址校正单元32A-32D为这样的单元:对应于存储器4A-4D而设计,根据来自地址控制器31的地址变换信号,将写入地址A4、A5变换为一定值,并将其作为存储器4A-4D的下位侧的地址a0、a1输出的同时,基于来自地址控制器31的校正信号,将写入地址A2、A3、A6-A9校正为一定值并将其作为存储器4A-4D的上5位地址a2-a7输出。
如图7所示,写入数据控制器14带有数据控制器33和4个选择单元34A-34D。
数据控制器33为这样的单元:写入数据时,根据写入地址A0、A1、A4、A5的指定,特定虚拟最小二维存储器空间1上的写入地址,根据指定从特定写入地址中写入数据的方向的写入访问模式,分别向选择单元34A-34D输出选择单元34A-34D选择存储器4A-4D时的选择信号。
选择单元34A-34D是对应于存储器4A-4D而设计,并且是基于来自数据控制器33的选择信号,使来自外部的写入数据(例如,32比特)对应于各个存储器4A-4D的各个指定地址,并且以例如8比特为单位同时将其提供的选择单元。
随后,参照图8到图10说明二维数据、访问、存储器10的操作。
首先,说明读出数据的情况。这种情况中,需要进行地址控制器21和地址校正单元22A-22D的对读出地址的控制以及数据控制器23和选择单元24A-24D的对读出数据的控制,从数据控制器23开始进行说明。
在读出数据时,数据控制器23根据指定读出地址A0、A1、A4、A5特定假设的最小二维存储器空间1上的读出地址,与此同时,根据读出地址,将选择器24A-24D选择存储器4A-4D时的选择信号分别输出给选择器24A-24D。
例如,如图8的No1所示,将“00”、“00”指定为读出地址“A0、A1”、“A4、A5”,将行方向访问模式(00)指定为读出访问模式的情况下,选择单元24A选择存储器4A,选择单元24B选择存储器4B,选择单元24C选择存储器4C,以及选择单元24D选择存储器4D。
例如,如图8的No17所示,将“00”、“00”指定为读出地址“A0、A1”、“A4、A5”,将列方向访问模式(01)指定为读出访问模式的情况下,选择单元24A选择存储器4A,选择单元24B选择存储器4C,选择单元24C选择存储器4B,以及选择单元24D选择存储器4D。
选择单元24A-24D根据来自数据控制器23的选择信号读出数据时,同时输出各个存储器4A-4D输出线上的读出数据。
例如,在上述图8的No1的情况中,读出数据时,同时输出各个存储器4A-4D输出线上的读出数据(例如,8比特),即,由选择单元24A选择的存储器4A的数据、由选择单元24B选择存储器4B,选择单元24C选择存储器4C,以及选择单元24D选择存储器4D。在图8的No17的情况下,读出数据时,同时输出各个存储器4A-4D输出线上的读出数据,即,由选择单元24A选择的存储器4A的数据,由选择单元24B选择的存储器4C的数据,由选择单元24C选择的存储器4B的数据,以及由选择单元24D选择的存储器4D的数据。
另一方面,地址控制器21根据读出地址A0、A1、A4、A5的指定以及读出访问模式的指定,用于将相当于存储器4A-4D下位2比特的地址a0、a1的读出地址A4、A5变换为一定值的地址变换信号分别输出到校正单元22A-22D。
例如,如图9所示,在将行方向访问模式作为读出访问模式指定的情况中,指定读出地址A4、A5时,不执行该指定读出地址A4、A5的变换。因此,例如,将读出地址A4、A5指定为00的情况下,将该00作为存储器4A-4D的各个地址a0、a1来输出。
与此相反,如图9所示,在读出访问模式为列行方向访问模式或指定行方向2阶段访问模式的情况中,指定读出地址A4、A5时,执行该指定读出地址A4、A5的变换。例如,将列方向访问模式指定为读取访问模式,将读出地址A4、A5指定为00时,虽然不对存储器4A的各个地址a0、a1进行变换,因而对于存储器4B、4C、4D的各个地址a0、a1而言,分别将其变换为01、10以及11并输出。
地址控制器21在访问跨过的空间相邻的虚拟最小二维存储器空间1的情况下(参照图3以及图4),根据读出访问模式的指定,将指定的读出地址A2、A3、A6-A9作为相当于存储器4A-4D上位5比特的地址d2-d7的地址原样输出,或校正该指定的读出地址A2、A3、A6-A9,向地址校正单元22A-22D输出将校正过的地址作为存储器4A-4D上位5比特的地址d2-d7输出的校正信号。
例如,如图10的No2所示,将行方向访问模式作为读出访问模式指定,将“10000”指定为读出地址A0、A1、A4、A5的情况中,地址控制器21将用来将存储器22A的地址a2-a7加上+1的校正信号输出到地址校正单元22A。因而,图10中的+1以及+4表示将存储器22A的地址a2-a7加上+1以及+4。
然后,说明写入数据的情况。这种情况中,需要进行地址控制器31和地址校正单元32A-32D的写入地址的控制以及数据控制器33和选择单元34A-34D的读出数据的控制。
但是,由于地址控制器31和地址校正单元32A-32D的写入地址的控制操作与地址控制器21和地址校正单元22A-22D的读出地址的控制操作实质相同,因此省略对其的说明。
在数据写入时,根据写入地址A0、A1、A4、A5的指定,数据控制器33特定虚拟最小二维存储器空间1上的写入地址,根据指定将来自特定写入地址的数据写入方向的写入访问模式,将选择单元34A-34D选择存储器4A-4D时用的选择信号分别输出到选择单元34A-34D。数据控制器33与数据控制器23的操作基本相同。
选择单元34A-34D根据来自数据控制器33的选择信号,选择来自外部的各个写入数据,并将其同时提供给各个存储器4A-4D的指定地址。
如上所述,根据二维数据、访问、存储器10,能够从物理的存储器4A-4D上同时读出从二维存储器空间3上指定位置开始排列在横方向或纵方向上的连续数据,由于能够在各个存储器4A-4D上同时写入以便于从二维存储器空间3上指定位置开始沿横方向或纵方向上,数据能连续地排列,因此可以实现高效率的SIMD运算。
其次,参照图11说明有关本发明的运算处理装置的结构。图11是示出了有关本发明运算处理装置结构的框图。
运算处理装置是利用二维数据、访问、存储器10,在SIMD型处理器42中执行二维DCT(Discrete Cosine Transform:离散余弦变换)的装置。
如图11所示,运算处理装置由一维数据、访问、存储器41、二维数据、访问、存储器10、利用一维数据、访问、存储器41以及二维数据、访问、存储器10执行SIMD运算的SIMD型处理器42,在一维数据、访问、存储器41和二维数据、访问、存储器10之间传送数据的DMAC43构成。
SIMD型处理器42是根据后述的一定运算处理,在可以指定二维数据、访问、存储器10中的数据读出或写入时的地址的同时,能以命令程序设定访问模式的处理器。
DMAC43通过一定脉冲串长度(例如,4比特)的总线分别连接到一维数据、访问、存储器41以及二维数据、访问、存储器10,通过来自SIMD型处理器42的指令在一维数据、访问、存储器41和二维数据、访问、存储器10之间以矩形形状的存储器区域为单位进行数据的传送。在数据传送模式中,可以设定原样传送矩形形状存储器区域的常规传送模式,以及将矩形形状的存储器区域转置传送的转置模式,根据来自传送模式SIMD型处理器42的指令来将传送模式为任一模式。
随后,参照图12以及图13说明DMAC43中执行的常规传送处理。图12是示出了通过常规传送模式传送数据情况的示意图。图13是示出了常规传送处理的流程图。
将常规传送模式设定为传送模式的情况中,常规传送处理为在一维数据、访问、存储器41和二维数据、访问、存储器10之间执行数据传送的处理。
在从二维数据、访问、存储器10开始向一维数据、访问、存储器41进行数据传送的情况中,如图12所示,在二维数据、访问、存储器10中,将逻辑上构成的二维空间横方向上的数据长度定为FrameX,在一维数据、访问、存储器41中,将逻辑上构成的二维空间横方向上的数据长度定为FrameX′的同时,通过将二维数据、访问、存储器10中的逻辑二维空间中的矩形区域原样传送到一维数据、访问、存储器41中的逻辑二维空间中来执行数据传送。
在二维数据、访问、存储器10中,通过作为从二维数据、访问、存储器10读出数据时的基准的传送端地址SA、矩形区域的横方向的数据长度Rect.X以及矩形区域的纵方向的数据长度Rect.Y,特定矩形区域其位置和大小。在一维数据、访问、存储器41中,通过作为在一维数据、访问、存储器41中写入数据时的基准的传送目的地地址DA、矩形区域的横方向的数据长度Rect.X以及矩形区域的纵方向的数据长度Rect.Y,特定矩形区域其位置和大小。
进行数据传送时,如图13所示,SIMD型处理器42首先移动到步骤S100。
在步骤S100中,在寄存器中设定传送端地址SA,移动到步骤S102,在寄存器中设定传送目的地地址DA,移动到步骤S104,在寄存器中设定数据长度FrameX,移动到步骤S106,在寄存器中设定数据长度FrameX′,移动到步骤S108。
在步骤S108中,在寄存器中设定数据长度Rect.X,移动到步骤S110,在寄存器中设定数据长度Rect.Y,移动到步骤S112,在寄存器中将常规传送模式作为传送模式来设定,移动到步骤S114,通过设定控制寄存器来指示开始传送数据,这一系列处理结束后返回到原始的处理。
DMAC43一旦设定常规传送模式、设定控制寄存器时,就执行常规传送处理,如图13所示,首先移动到步骤S200。
步骤S200中,将状态变更为忙碌状态,移动到步骤S202,将数据长度Rect.Y设定为变量Y,移动到步骤S204,将数据长度Rect.X设定为变量X,移动到步骤S206。
在步骤S206中判断变量Y的值是否大于0,在判断出变量Y的值大于0时(Yes),移动到步骤S208,判断变量X的值是否是超过脉冲串长度(在上述例子中为4比特)的值,判断出变量X的值为超过脉冲串长度的值时(Yes),移动到步骤S210。
在步骤S210中,以传送端地址SA为基准,以脉冲串长度为单位从二维数据、访问、存储器10中读出数据,移动到步骤S212,以传送目的地地址DA为基准,以脉冲串长度为单位将数据写入一维数据、访问、存储器41中,移动到步骤S214。
在步骤S214中,从变量X的值中减去脉冲串长度,移动到步骤S228,在传送端地址SA中加上脉冲串长度,移动到步骤S230,在传送目的地地址DA中加上脉冲串长度,然后移动到步骤S208。
另一方面,在步骤S208中,判断出变量X的值没有脉冲串长度长之时(No),移动到步骤S232,以传送端地址SA为基准,从二维数据、访问、存储器10中读出相当于变量X值大小的比特数数据,移动到步骤S250,以传送目的地地址DA为基准,在一维数据、访问、存储器41中写入相当于变量X值的比特数数据,移动到步骤S252。
在步骤S252中,在传送端地址SA中加上从变量X以及数据长度FrameX的相加值中减去数据长度Rect.X所得到的值,移动到步骤S254,在传送目的地地址DA中加上从变量X以及数据长度FrameX′的相加值中减去数据长度Rect.X所得到的值,移动到步骤S256,从变量Y的值中减去1,然后移动到步骤S204。
另一方面,在步骤S206中,判断出变量Y的值为0以下的值时(No),移动到步骤S258,将完成状态变更为结束状态。完成状态的变更是在一维数据、访问、存储器41中等待通过步骤S300输出的写入操作结束响应后执行的。
然后,移动到步骤S260,判断中断屏蔽标记的值是否为0,判断出中断屏蔽的值不为0时(No),移动到步骤S262,将状态变更为准备状态,结束一系列的处理返回到原始处理状态。
另一方面,在步骤S260中,判断中断屏蔽标记为0时(Yes),移动到步骤S264,输出请求到中断控制器中,结束一系列的处理返回到原始处理。
在中断控制器中,输入请求时,将中断信号输出到SIMD型处理器42,在SIMD型处理器42中输入中断信号时,移动到步骤S120,执行例外处理。执行例外处理时,DMAC43通过步骤S226进入完成状态的结束位,结束一系列的处理返回到原始处理。
然后,在执行从一维数据、访问、存储器41到二维数据、访问、存储器10的数据传送的情况中,如图12所示,将一维数据、访问、存储器41的逻辑二维空间横方向上的数据长度定为FrameX,将二维数据、访问、存储器10中逻辑上的二维空间横方向上的数据长度定为FrameX之时,通过将一维数据、访问、存储器41的逻辑二维空间中的矩形区域原样传送到二维数据、访问、存储器10中的逻辑二维空间中来执行数据传送。
在一维数据、访问、存储器41中,通过作为从一维数据、访问、存储器41中读出数据时的基准的传送端地址SA、矩形区域的横方向的数据长度Rect.X以及矩形区域的纵方向的数据长度Rect.Y,特定矩形区域其位置和大小。在二维数据、访问、存储器10中,通过作为在二维数据、访问、存储器10中写入数据时的基准的传送目的地地址DA、矩形区域的横方向的数据长度Rect.X以及矩形区域的纵方向的数据长度Rect.Y,特定矩形区域其位置和大小。
这种情况中,在DMAC43中,以与执行从二维数据、访问、存储器10到一维数据、访问、存储器41的数据传送的情况相同的方式来执行常规传送处理。因而,省略对其的说明。
其次,参照图14以及图15说明在DMAC43中执行的转置传送处理。图14是示出了通过转置传送模式传送数据情况的示意图。图15是显示转置传送处理的流程图。
在将转置传送模式设定为传送模式的情况下,转置传送处理是在一维数据、访问、存储器41和二维数据、访问、存储器10之间执行数据传送的处理。
在执行从二维数据、访问、存储器10到一维数据、访问、存储器41的数据传送的情况中,如图14所示,将二维数据、访问、存储器10中逻辑上的二维空间横方向上的数据长度定为FrameX,将一维数据、访问、存储器41的逻辑上的二维空间横方向上的数据长度定为FrameX′之时,通过将二维数据、访问、存储器10中逻辑上的二维空间中的矩形区域转置并传送到一维数据、访问、存储器41中逻辑上的二维空间中,来执行数据传送。
在二维数据、访问、存储器10中,通过作为从二维数据、访问、存储器10读出数据时基准的传送端地址SA、矩形区域的横方向的数据长度Rect.X以及矩形区域的纵方向的数据长度Rect.Y,特定矩形区域其位置和大小。在一维数据、访问、存储器41中,通过作为在一维数据、访问、存储器41中写入数据时基准的传送目的地地址DA、矩形区域的横方向的数据长度Rect.X以及矩形区域的纵方向的数据长度Rect.Y,特定矩形区域其位置和大小。
进行数据传送时,如图15所示,SIMD型处理器42首先移动到步骤S100。
在步骤S100中,在寄存器中设定传送端地址SA,移动到步骤S102,在寄存器中设定传送目的地地址DA,移动到步骤S104,在寄存器中设定数据长度FrameX,移动到步骤S106,在寄存器中设定数据长度FrameX′,移动到步骤S108。
在步骤S108中,在寄存器中设定数据长度Rect.X,移动到步骤S110,在寄存器中设定数据长度Rect.Y,移动到步骤S112,在寄存器中将常规传送模式作为传送模式来设定,移动到步骤S114,通过设定控制寄存器来指示开始传送数据,这一系列处理结束后返回到原始的处理。
DMAC43一旦设定转置传送模式、设定控制寄存器时,就执行常规传送处理,如图15所示,首先移动到步骤S200。
步骤S200中,将状态变更为忙碌状态,移动到步骤S202,将数据长度Rect.Y设定为变量Y,移动到步骤S204,将数据长度Rect.X设定为变量X,移动到步骤S206。
在步骤S206中判断变量Y的值是否大于0,在判断出变量Y的值大于0时(Yes),移动到步骤S208,判断变量X的值是否是超过脉冲串长度(在上述例子中为4比特)的值,判断出变量X的值为脉冲串长度以上的值时(Yes),移动到步骤S210。
在步骤S210中,以传送端地址SA为基准,以脉冲串长度为单位从二维数据、访问、存储器10中读出数据,移动到步骤S214,从变量X的值中减去脉冲串长度,移动到步骤S216,在变量n中设定脉冲串长度,移动到步骤S218。
在步骤S218中,以传送目的地地址DA为基准,将1字节的数据写入一维数据、访问、存储器41中,移动到步骤S220,在传送目的地地址DA中加上数据长度FrameX′,移动到步骤S220,从变量n的值中减去1,然后移动到步骤S224。
在步骤S224中,判断变量n的值是否大于0,判断变量n的值大于0时(Yes),移动到步骤S218,将其判断为否定时(No),移动到步骤S226,在转送端地址SA中加上脉冲串长度,移动到步骤S208。
另一方面,在步骤S208中,判断变量X的值没有超过脉冲串长度(No)时,移动到步骤S232,以传送端地址SA为基准从二维数据、访问、存储器10中读出相当于变量X值的比特数数据,移动到步骤S234,在变量n中设定变量X的值,移动到步骤S236。
在步骤S236中,以传送目的地地址DA为基准,将1字节的数据写入一维数据、访问、存储器41中,移动到步骤S238,在传送目的地地址DA中加上数据长度FrameX′,移动到步骤S240,从变量m的值中减去1,然后移动到步骤S242。
在步骤S242中,判断变量n的值是否大于0,判断变量n的值大于0时(Yes),移动到步骤S236,将其判断为否定时(No),移动到步骤S244。
在步骤S244中,在传送端地址SA中加上从变量X以及数据长FrameX的相加值中减去数据长度Rect.X所得到的值,移动到步骤S246,在传送目的地地址DA中加上从数据长度FrameX′以及数据长度Rect.X的相乘值中减去1所得到的值,移动到步骤S248,从变量Y的值中减去1,然后移动到步骤S204。
另一方面,在步骤S206中,判断变量Y的值小于0时(No),移动到步骤S258,将完成状态变更为结束状态。完成状态的变更是在一维数据、访问、存储器41中等待通过步骤S300输出的写入操作结束响应后执行的。
随后,移动到步骤S260,判断中断屏蔽标记的值是否为0,判断出中断屏蔽的值不为0时(No),移动到步骤S262,将状态变更为准备状态,结束一系列的处理返回到原始处理状态。
另一方面,在步骤S260中,判断中断屏蔽标记为0时(Yes),移动到步骤S264,输出请求到中断控制器中,结束一系列的处理返回到原始处理。
在中断控制器中,输入请求时,将中断信号输出到SIMD型处理器42,在SIMD型处理器42中输入中断信号时,移动到步骤S120,执行例外处理。执行例外处理时,DMAC43通过步骤S226进入完成状态的结束位,结束一系列的处理返回到原始处理。
其次,在执行从一维数据、访问、存储器41到二维数据、访问、存储器10的数据传送的情况中,如图14所示,将一维数据、访问、存储器41中逻辑上的二维空间横方向上的数据长度定为FrameX,将二维数据、访问、存储器10中逻辑上的二维空间横方向上的数据长度定为FrameX′之时,通过将一维数据、访问、存储器41中逻辑上的二维空间中的矩形区域转置并传送到二维数据、访问、存储器10中逻辑上的二维空间中,来执行数据传送。
在一维数据、访问、存储器41中,通过作为从一维数据、访问、存储器41读出数据时基准的传送端地址SA、矩形区域的横方向的数据长度Rect.X以及矩形区域的纵方向的数据长度Rect.Y,特定矩形区域其位置和大小。在二维数据、访问、存储器10中,通过作为在二维数据、访问、存储器10中写入数据时基准的传送目的地地址DA、矩形区域的横方向的数据长度Rect.X以及矩形区域的纵方向的数据长度Rect.Y,特定矩形区域其位置和大小。
这种情况中,在DMAC43中,以与执行从二维数据、访问、存储器10到一维数据、访问、存储器41的数据传送的情况相同的方式来执行传送转置处理。因而,省略对其的说明。
然后,参照附图说明本实施例的操作。
开始,参照图16到图18来说明利用二维数据、访问、存储器10由SIMD型处理器42执行二维DCT的情况。图16到图18是示出了利用二维数据、访问、存储器10执行二维DCT的情况的图。
首先,如图16所示,从一维数据、访问、存储器41中读出变为执行二维DCT对象的8×8象素数据,将读出的数据写入到二维数据、访问、存储器10中。
然后,SIMD型处理器42在行方向上执行一维DCT。为此,如图16所示,SIMD型处理器42使偶数行和奇数行的象素数据成对,在列方向上读入2个象素数据,通过SIMD运算同时变换2行一维DCT。
然后,如图17所示,将行方向上的一维DCT的结果再次写入二维数据、访问、存储器10中。
另外,SIMD型处理器42在列方向上执行一维DCT。在这种情况中,如图17所示,使偶数列和奇数列成对,在行方向上读2个象素数据,通士SIMD运算同时变换2列一维DCT,将其结果再次写入二维数据、访问、存储器10中。由此,在二维数据、访问、存储器10上获得如图18所示最终的二维DCT的结果。
如上所述,由于使用了二维数据、访问、存储器10,可以有效率地执行SIMD运算。
其次,参照图19说明在二维数据、访问、存储器10和一维数据、访问、存储器41之间通过常规传送模式传送数据的情况。图19是示出了有关DMAC43输入输出信号的变化时序图。
通过常规传送模式从二维数据、访问、存储器10开始向一维数据、访问、存储器41进行数据传送的情况中,SIMD型处理器42通过步骤S100-S112,分别设定传送端地址SA、传送目的地地址DA、数据长度FrameX、数据长度FrameX′、数据长度Rect.X以及数据长度Rect.Y的同时,将常规传送模式设定为传送模式。然后,通过步骤S114,通过设定控制寄存器来指示开始数据传送。该设定是对DMAC43的寄存器执行的。
DMAC43设定常规传送模式、设定控制寄存器时,通过步骤S200-S204,将状态变更为忙碌状态,将数据长度Rect.Y设定为变量Y,将数据长度Rect.X设定为变量X。然后,通过步骤S210、S212,以转送端地址SA为基准,以脉冲串长度为单位从二维数据、访问、存储器10中读出数据,以转送目的地地址DA为基准,以脉冲串长度为单位将数据写入一维数据、访问、存储器41中。
具体而言,以如图19所示的时序执行数据传送。图19中,DCLK表示时钟信号。DAD0、DEN0、DRW0、DREADY0以及DIN0为对于二维数据、访问、存储器10的输入输出信号,DAD0表示到达存储器的地址信号,DEN0为到达存储器的总线使能信号,DRW0表示表明显示读出的信号,DREADY0表示来自存储器的响应信号,DIN0表示从存储器读出的数据信号。另外,DAD1、DEN1、DRW1、DREADY1以及DOUT1为对一维数据、访问、存储器41输入输出信号,DAD1表示到达存储器的地址信号,DEN1表示达到存储器的总线使能信号,DRW1表示表明显示写入的信号,DREADY1表示来自存储器的响应信号,DOUT1表示到达存储器的写入信号。DE-IRQ表示从DMAC43输出到中断控制器的中断信号。
首先,在t0-t4时刻,如果分别将地址信号DADD输出到二维数据、访问、存储器10中时,在时刻t2、t3、t5、t6,基于各个地址信号DADD从二维数据、访问、存储器10中读出数据并输入到DMAC43中。
然后,在时刻t2输入的数据在时刻t3与地址信号DAD1一起被输出到一维数据、访问、存储器41中,在t3时刻输入的数据在时刻t4与地址信号DAD1一起被写入到一维数据、访问、存储器41中。在时刻t5输入的数据在时刻t6与地址信号DAD1一起被输出到一维数据、访问、存储器41中,在t9时刻输入的数据在时刻t10与地址信号DAD1一起被写入到一维数据、访问、存储器41中。
然后,通过步骤S214、S228、S230,从变量x的值中减去脉冲串长度,在传送端地址SA以及传送目的地地址DA中分别加上脉冲串长度。重复执行从步骤S210到步骤S230的一系列传送处理直到变量x的值不足脉冲串长度。由此,将矩形区域的1行数据中去掉了脉冲串长度的小数部分的全部数据传送给一维数据、访问、存储器41。
变量x的值不足脉冲串长度时,通过步骤S232、S250,以传送端地址SA作为基准从二维数据、访问、存储器10中读出相当于变量x的值的比特数数据,以传送目的地地址DA作为基准将相当于变量x的值的比特数数据写入一维数据、访问、存储器41中。还可以通过图19所示的时序图来执行该数据的传送。由此,可以将矩形区域内1行中的数据全部传送给一维数据、访问、存储器41。
随后,通过步骤S252-S256,在传送端地址SA中加上从变量X以及数据长度FrameX的相加值中减去数据长度Rect.X所得到的值,在传送目的地地址DA中加上从变量X以及数据长度FrameX′的相加值中减去数据长度Rect.X所得到的值,并且从变量Y的值中减去1。重复执行步骤S204到S256的一系列传送处理直到变量y的值变为0以下。由此,可以将矩形区域内的数据全部传送给一维数据、访问、存储器41。
另一方面,即使通过常规传送模式执行从一维数据、访问、存储器41到二维数据、访问、存储器10的数据传送的情况中,以与上述情况相同的方式执行数据传送。
然后,说明通过转置传送模式在二维数据、访问、存储器10和一维数据、访问、存储器41之间传送数据的情况。
在通过转置传送模式从二维数据、访问、存储器10到一维数据、访问、存储器41执行传送数据的情况中,SIMD型处理器42通过步骤S100-S112,分别设定传送端地址SA、传送目的地地址DA、数据长度FrameX、数据长度FrameX′、数据长度Rect.X,以及数据长度Rect.Y时,将转置传送模式作为传送模式来设定。然后,通过步骤S114,通过设定控制寄存器来指示开始传送数据。对于DMAC43的寄存器来执行这些设定。
DMAC43一旦设定转置传送模式、设定控制寄存器时,通过步骤S200-S204,将状态变更为忙碌状态,将数据长度Rect.Y设定为变量Y,将数据长度Rect.X设定为变量X。然后,通过步骤S210、S214,以传送端地址SA为基准,以脉冲串长度为单位从二维数据、访问、存储器10读出数据,从变量X的值中减去脉冲串长度。随后,通过步骤S216-S222,以传送目的地地址DA为基准,将比特数据写入一维数据、访问、存储器41中,在传送目的地DA中加上数据长度FrameX′,仅重复执行相当于脉冲串长度次数写入以及加法运算。
然后,通过步骤226,在传送端地址SA中加上脉冲串长度。重复执行从步骤S210到步骤S226的一系列传送处理直到变量x的值不足脉冲串长度。由此,将矩形区域的1行数据中去掉了脉冲串长度的小数部分的数据全部传送给一维数据、访问、存储器41。由于传送模式为转置传送模式,因此如图14所示,在一维数据、访问、存储器41中在纵方向上传送数据。
在变量x的值不足脉冲串长度时,通过步骤S232,以传送端地址SA为基准,从二维数据、访问、存储器10中读出相当于变量X值大小的比特数数据。通过步骤S234-S240,以传送目的地地址DA为基准,在一维数据、访问、存储器4 1中写入相当于1的比特的数据,在传送目的地DA中加上数据长度FrameX′,仅重复执行相当于变量X值次数的写入以及加法运算。由此,将矩形区域中1行数据传送给一维数据、访问、存储器41。由于传送模式为转置传送模式,因此如图14所示,在一维数据、访问、存储器41中在纵方向上传送数据。
然后,通过步骤S244-S248,在传送端地址SA中加上从变量X以及数据长度FrameX的相加值中减去数据长度Rect.X后的值,在传送目的地地址DA中加上从数据长度FrameX′以及数据长度Rect.X相乘所得到的值中减去1所得到的值,并且从变量Y的值中减去1。重复执行步骤S204到S248的一系列传送处理直到变量Y的值变为0以下。由此,可以将矩形区域内的数据全部传送给一维数据、访问、存储器41。
另一方面,即使通过转置传送模式执行从一维数据、访问、存储器41到二维数据、访问、存储器10的数据传送的情况中,以与上述情况相同的方式执行数据传送。这种情况中,由于数据写入侧为二维数据、访问、存储器10,并且在纵方向上连续执行数据的写入,因此象上述情况那样,不局限于在二维数据、访问、存储器10中每个1比特写入数据,还可以以总线长度为单位写入数据。后者可以进行较高速度的数据传送。
如此,本实施例中,DMAC43可以从二维数据、访问、存储器10中读出二维数据、访问、存储器10的逻辑二维空间中的矩形区域的数据,并且将读出的数据写入一维数据、访问、存储器41中。
由此,由于能够以二维空间中的矩形区域为单位将数据从二维数据、访问、存储器10中传送到一维数据、访问、存储器41中,因此可以在二维数据、访问、存储器10和一维数据、访问、存储器41之间执行比较适合于SIMD运算的数据传送。并且通过利用二维数据、访问、存储器10,能够实现有效的SIMD运算。
本实施例中,DMAC43基于数据长度Rect.X、Rect.Y以及传送端地址SA特定二维数据、访问、存储器10的逻辑二维空间中的读出区域,从二维数据、访问、存储器10中读出特定读出区域中的数据。
由此,由于能够通过数据长度Rect.X、Rect.Y来设定读出区域的大小,因此在SIMD运算中根据其运算内容调整读出区域大小时,能够根据调整的大小来执行数据的传送。因而,可以在二维数据、访问、存储器10和一维数据、访问、存储器41之间执行比较适合于SIMD运算的数据传送。
本实施例中,DMAC43基于数据长度Rect.X、Rect.Y、数据长度FrameX以及传送端地址SA特定二维数据、访问、存储器10的逻辑二维空间中的读出区域,从二维数据、访问、存储器10中读出特定读出区域中的数据。
由此,由于能够通过数据长度FrameX来设定读出区域的大小,因此在SIMD运算中根据其运算内容调整二维数据、访问、存储器10的逻辑二维空间大小时,能够根据调整的大小来执行数据的传送。因而,可以在二维数据、访问、存储器10和一维数据、访问、存储器41之间执行比较适合于SIMD运算的数据传送。
本实施例中,DMAC43基于数据长度Rect.X、Rect.Y、数据长度FrameX′以及传送端地址SA特定二维数据、访问、存储器41的写入区域,将读出数据写入特定写入区域中。
由此,由于能够通过数据长度FrameX′来设定一维数据、访问、存储器41的逻辑二维空间的大小,因此在SIMD运算中根据其运算内容调整一维数据、访问、存储器41的逻辑二维空间的大小时,能够根据调整的大小来执行数据的传送。因而,可以在二维数据、访问、存储器10和一维数据、访问、存储器41之间执行比较适合于SIMD运算的数据传送。
另外,本实施例中,DMAC43可以设定下列两种模式中的任何一种:使读出区域和写入区域相对应,在写入区域中写入读出区域的数据的常规传送模式,以及将读出区域和写入区域转置,在写入区域中写入读出区域数据的转置传送模式,根据设定的传送模式,将读出的数据写入一维数据、访问、存储器41中。
由此,由于除了将数据原样传送之外还能够转置传送,因此在SIMD运算中根据其运算内容需要转置传送的情况下,能够执行与其对应的数据传送。因而,可以在二维数据、访问、存储器10和一维数据、访问、存储器41之间执行比较适合于SIMD运算的数据传送。
另外,在本实施例中,DMAC43通过一定脉冲串长度的总线与二维数据、访问、存储器10相连,以脉冲串长度为单位从二维数据、访问、存储器10中读出二维数据、访问、存储器10的逻辑二维空间中的矩形区域数据,应该从二维数据、访问、存储器10读出的数据不足脉冲串长度时,仅对该数据而言,变为以不足脉冲串长度的数据为单位从二维数据、访问、存储器10中读出。
由此,由于大体上是以脉冲串长度为单位从二维数据、访问、存储器10中读出数据,因此,在二维数据、访问、存储器10和一维数据、访问、存储器41之间能够执行比较高速度数据传送。并且由于适当地传送不足脉冲串长度的数据,因此,在数据传送时,能够降低在一维数据、访问、存储器41中写入不需要数据的可能性。
另外,在本实施例中,DMAC43通过一定脉冲串长度的总线与一维数据、访问、存储器41相连,以脉冲串长度为单位将读出数据写入一维数据、访问、存储器41中,应该写入到一维数据、访问、存储器41中的数据不足脉冲串长度时,仅对该数据而言,变为以不足脉冲串长度的数据为单位写入一维数据、访问、存储器41中。
由此,由于大体上是以脉冲串长度为单位将数据写入一维数据、访问、存储器41中,因此,在二维数据、访问、存储器10和一维数据、访问、存储器41之间能够执行比较高速度数据传送。并且由于适当地传送不足脉冲串长度的数据,因此,在数据传送时,能够降低在一维数据、访问、存储器41中写入不需要数据的可能性。
本实施例中,DMAC43从一维数据、访问、存储器41中读出数据,将读出的数据写入二维数据、访问、存储器10以便于将其设置在二维数据、访问、存储器10的逻辑二维空间中的矩形区域中。
由此,由于能够以二维空间中的矩形区域为单位将数据从一维数据、访问、存储器41传送到二维数据、访问、存储器10中,因此,在二维数据、访问、存储器10和一维数据、访问、存储器41之间执行比较适合于SIMD运算的数据传送。另外,通过利用二维数据、访问、存储器10,可以实现有效的SIMD运算。
本实施例中,DMAC43基于数据长度Rect.X、Rect.Y以及传送端地址SA特定一维数据、访问、存储器41的逻辑二维空间中的读出区域,从一维数据、访问、存储器41中读出变为特定读出区域的数据。
由此,由于能够通过数据长度Rect.X、Rect.Y来设定读出区域的大小,因此在SIMD运算中根据其运算内容调整读出区域大小时,能够根据调整的大小来执行数据的传送。因而,可以在二维数据、访问、存储器10和一维数据、访问、存储器41之间执行比较适合于SIMD运算的数据传送。
本实施例中,DMAC43基于数据长度Rect.X、Rect.Y、数据长度FrameX以及传送端地址SA特定一维数据、访问、存储器41的逻辑二维空间中的读出区域,从一维数据、访问、存储器41中读出特定读出区域中的数据。
由此,由于能够通过数据长度FrameX来设定一维数据、访问、存储器41的逻辑二维空间的大小,因此在SIMD运算中根据其运算内容调整一维数据、访问、存储器41的逻辑二维空间的大小时,能够根据调整的大小来执行数据的传送。因而,可以在二维数据、访问、存储器10和一维数据、访问、存储器41之间执行比较适合于SIMD运算的数据传送。
本实施例中,DMAC43基于数据长度Rect.X、Rect.Y、数据长度FrameX′以及传送目的地地址DA特定二维数据、访问、存储器10的写入区域,变为将读出数据写入特定写入区域中。
由此,由于能够通过数据长度FrameX′来设定二维数据、访问、存储器10的逻辑二维空间的大小,因此在SIMD运算中根据其运算内容调整二维数据、访问、存储器10的逻辑二维空间的大小时,能够根据调整的大小来执行数据的传送。因而,可以在二维数据、访问、存储器10和一维数据、访问、存储器41之间执行比较适合于SIMD运算的数据传送。
本实施例中,DMAC43可以设定下列两种模式中的任何一种:使读出区域和写入区域相对应,在写入区域中写入读出区域的数据的常规传送模式,以及将读出区域和写入区域转置,在写入区域中写入读出区域数据的转置传送模式,根据设定的传送模式,将读出的数据写入二维数据、访问、存储器10中。
由此,由于除了将数据原样传送之外还能够转置传送,因此在SIMD运算中根据其运算内容需要转置传送的情况下,能够执行与其对应的数据传送。因而,可以在二维数据、访问、存储器10和一维数据、访问、存储器41之间执行比较适合于SIMD运算的数据传送。
另外,在本实施例中,DMAC43通过一定脉冲串长度的总线与二维数据、访问、存储器10相连,以脉冲串长度为单位将从一维数据、访问、存储器41中读出的数据写入二维数据、访问、存储器10中,应该写入到二维数据、访问、存储器10中的数据不足脉冲串长度时,仅对该数据而言,变为以不足脉冲串长度的数据为单位写入到二维数据、访问、存储器10中。
由此,由于大体上是以脉冲串长度为单位将数据写入二维数据、访问、存储器10中,因此,在二维数据、访问、存储器10和一维数据、访问、存储器41之间能够执行比较高速度数据传送。并且由于适当地传送不足脉冲串长度的数据,因此,在数据传送时,能够降低在二维数据、访问、存储器10中写入不需要数据的可能性。
另外,在本实施例中,DMAC43通过一定脉冲串长度的总线与一维数据、访问、存储器41相连,以脉冲串长度为单位从一维数据、访问、存储器41中读出来自一维数据、访问、存储器41的数据,应该从一维数据、访问、存储器41读出的数据不足脉冲串长度时,仅对该数据而言,变为以不足脉冲串长度的数据为单位从一维数据、访问、存储器41中读出。
由此,由于大体上是以脉冲串长度为单位执行从一维数据、访问、存储器41中读出数据,因此,在二维数据、访问、存储器10和一维数据、访问、存储器41之间能够执行比较高速度数据传送。并且由于适当地传送不足脉冲串长度的数据,因此,在数据传送时,能够降低在二维数据、访问、存储器10中写入不需要数据的可能性。
另外,本实施例中,DMAC43使二维数据、访问、存储器10和一维数据、访问、存储器41之间的数据传送变为与SIMD型处理器42的操作独立来执行。
由此,在数据传送过程中能够降低对SIMD型处理器42的负载的同时,在二维数据、访问、存储器10和一维数据、访问、存储器41之间能够执行比较高速度数据传送。
本实施例中,二维数据、访问、存储器10带有;假设在纵向横向上排列的二维形成的一定虚拟最小二维存储器空间1的二维存储器空间3的同时,预先以一定规则分别分配虚拟最小二维存储器空间1的各个地址的物理存储器4A、4D,数据读出时特定虚拟最小二维存储器空间上的地址位置,根据从特定的地址位置中读出数据的方向或指定模式的读出访问模式,交替来自物理存储器4A-4D的各个读出数据,将交替的的各个读出数据一并输出的读出数据控制器12,指定读出地址时,根据指定读出访问模式和特定地址位置,或根据在跨过访问空间相邻的虚拟最小二维存储器空间1的情况下所指定读出访问模式,来将指定读出地址校正为一定地址并输出到物理存储器4A-4D中的读出地址控制单元11。
由此,能够从物理存储器4A-4D上同时读出从二维存储空间3上的指定位置开始的横方向或纵方向上排列的连续数据,由于能够在从二维存储器空间3上的指定位置开始沿横向或纵向向各个存储器4A-4D上同时写入数据,因此可以实现有效率的SIMD运算。
在上述实施例中,二维数据、访问、存储器10对应于第1到25方面中记载的多维存储器,一维数据、访问、存储器41对应于第1、5到7、9到13、17到19、22到25方面中记载的一维存储器,步骤S210、S232对应于第1到9或22方面中记载的多维存储器读出装置、第10到16、18或23方面中记载的一维存储器读出装置、第24记载的多维存储器读出步骤、或第25方面记载的一维存储器读出步骤。此外,步骤S212、S218、S236、S250对应于第1、5到7、9或22方面记载的一维存储器写入装置、第10、14到17或23方面记载的多维存储器写入装置、第24方面记载的一维存储器写入步骤,或第25方面记载的多维存储器写入步骤。
上述实施例中,传送端地址SA对应于第2到4、11到13方面记载的读出基准地址,传送目的地地址DA对应于第5、6、14或15方面记载的写入基准地址,数据长度Rect.X、Rect.Y、FrameX对应于第2到4、6、11到13或15方面记载的读出区域特定信息。数据长度Rect.X、Rect.Y对应于第3、4、12、13或15方面记载的读出数据长度信息,数据长度FrameX′对应于第5、6、14或15方面记载的写入区域特定信息,数据长度FrameX、FrameX′对应于第4、6、13或15方面记载的最大数据长度信息。
在上述实施例中,虽然说明了用来指定访问模式的信号线是作为与地址信号(读出地址信号或写入地址信号)不同的信号来输入的,但是还可以将用来指定访问模式的信号线与地址信号汇总输入。例如,如图20所示,还可以将访问模式分配在地址信号的最上位比特部分。图21是示出了分配如图20所示的信号情况的读出地址控制单元以及读出数据控制器的结构例子框图。
在这样结构的情况中,利用二维数据、访问、存储器10执行处理的情况中,用户输入地址时,由于仅合并输入访问模式即可,因此输入操作可以变得较简单。并且,由于二维数据、访问、存储器10的结构变得较简单,能够缩小电路规模,从而可以提高集成度。
在上述实施例中,虽然构造成使二维数据、访问、存储器10和MDAC43直接连接,但是不局限于此,还可以构造成使二维数据、访问、存储器10通过存储器I/F与DMAC43相连。
在上述实施例中,虽然构造成使一维数据、访问、存储器41和MDAC43直接连接,但是不局限于此,还可以构造成使一维数据、访问、存储器41通过存储器I/F与DMAC43相连。
在上述实施例中,在DMAC43中,虽然构造成执行常规传送处理以及转制传送处理,但是不局限于此,根据用于实现常规传送处理以及转制传送处理的程序,可以构造成SIMD型处理器42等计算机来执行这些处理。这种情况下,作为运算处理单元的CPU在RAM中读取存储在ROM中的程序,根据读取的程序执行常规传送处理以及转制传送处理。当然,程序不局限于存储在ROM中,还可以存储在其它存储媒体中,通过在RAM中读取存储在存储媒体中的程序来执行处理。
这里,作为存储媒体可以是RAM、ROM等半导体存储媒体、FD、HD等磁记录行记录媒体、CD、CDV、LD、DVD等光学读取方式的存储媒体、MO等磁记录型/光学读取方式记录媒体,不论电子的、磁性的、光学等读取方法,如果是能通过计算机读取的存储媒体,包含所有的存储媒体。
在上述实施例中,在通过DMAC43在二维数据、访问、存储器10和一维数据、访问、存储器41之间进行数据传送的情况中,适用涉及本发明的多维存储器的数据传送装置以及多维存储器的数据传送程序以及多维存储器的数据传送方法,但不限于此,在不脱离本发明精神的范围中还可以用于其它情况中。
发明效果
如上所述,根据涉及本发明第1到9、19到21方面中记载的多维存储器的数据传送装置,由于可以以多维空间中的一定区域为单位将数据从多维存储器传送到一维存储器中,因此,可以获得在多维存储器和一维存储器之间进行比较适合于SIMD运算的数据传送的效果。并且,通过使用多维存储器,还可以获得能实现有效率的SIMD运算的效果。
根据涉及本发明的第2到7方面中记载的多维存储器的数据传送装置,由于通过仅输入读出基准地址以及读出区域特定信息来执行数据传送,因此可以获得比较容易地执行数据传送的效果。
根据涉及本发明的第3到7方面中记载的多维存储器的数据传送装置,由于能够通过读出数据长度信息来设定读出区域的大小,因此,在SIMD运算过程中根据运算内容来调整读出区域的大小的情况中,能够根据调整的大小来执行数据传送。因而,可以获得在多维存储器和一维存储器之间进行比较适合于SIMD运算的数据传送的效果。
根据涉及本发明的第4方面中记载的多维存储器的数据传送装置,由于能够通过最大数据长度信息来设定多维空间的大小,因此,在SIMD运算过程中根据运算内容来调整多维空间的大小的情况中,能够根据调整的大小来执行数据传送。因而,可以获得在多维存储器和一维存储器之间进行比较适合于SIMD运算的数据传送的效果。
根据涉及本发明的第5到7方面中记载的多维存储器的数据传送装置,由于通过仅输入读出基准地址、读出区域特定信息、写入基准地址以及写入区域特定信息来执行数据传送,因此可以获得比较容易地执行数据传送的效果。
根据涉及本发明的第6或7方面中记载的多维存储器的数据传送装置,由于能够通过最大数据长度信息来设定逻辑多维空间的大小,因此,在SIMD运算过程中根据运算内容来调整多维空间的大小的情况中,能够根据调整的大小来执行数据传送。因而,可以获得在多维存储器和一维存储器之间进行比较适合于SIMD运算的数据传送的效果。
根据涉及本发明的第7方面中记载的多维存储器的数据传送装置,由于可以或是将数据原样传送或是进行转置传送,因此在SIMD运算过程中根据运算内容进行转置传送的情况下,能够执行与之相应的数据传送。因而可以获得在多维存储器和一维存储器之间进行比较适合于SIMD运算的数据传送的效果。
根据涉及本发明的第8方面中记载的多维存储器的数据传送装置,由于能够大致以第1脉冲串长度为单位执行从多维存储器中读出数据,因此可以获得在多维存储器和一维存储器之间进行比较高速的数据传送的效果。此外,由于适当地传送不足第1脉冲串长度的数据,因此,可以获得在传送数据时降低将不需要的数据写入一维存储器中的可能性的效果。
根据涉及本发明的第9方面中记载的多维存储器的数据传送装置,由于能够大致以第2脉冲串长度为单位将数据写入一维存储器中,因此可以获得在多维存储器和一维存储器之间进行比较高速的数据传送的效果。此外,由于适当地传送不足第2脉冲串长度的数据,因此,可以获得在传送数据时降低将不需要的数据写入一维存储器中的可能性的效果。
根据涉及本发明的第10到21方面中记载的多维存储器的数据传送装置,由于能够以多维空间内一定区域为单位将数据从一维存储器传送到多维存储器中,因此,可以获得在多维存储器和一维存储器之间进行比较适合于SIMD运算的数据传送的效果。并且,通过使用多维存储器,还可以获得能实现有效率的SIMD运算的效果。
根据涉及本发明的第11到16方面中记载的多维存储器的数据传送装置,由于通过仅输入读出基准地址以及读出区域特定信息来执行数据传送,因此可以获得比较容易地执行数据传送的效果。
根据涉及本发明的第12到16方面中记载的多维存储器的数据传送装置,由于能够通过读出数据长度信息来设定读出区域的大小,因此,在SIMD运算过程中根据运算内容来调整读出区域的大小的情况中,能够根据调整的大小来执行数据传送。因而,可以获得在多维存储器和一维存储器之间进行比较适合于SIMD运算的数据传送的效果。
根据涉及本发明的第13方面中记载的多维存储器的数据传送装置,由于能够通过最大数据长度信息来设定多维空间的大小,因此,在SIMD运算过程中根据运算内容来调整多维空间的大小的情况中,能够根据调整的大小来执行数据传送。因而,在可以获得多维存储器和一维存储器之间进行比较适合于SIMD运算的数据传送的效果。
根据涉及本发明的第14到16方面中记载的多维存储器的数据传送装置,由于通过仅输入读出基准地址、读出区域特定信息、写入基准地址以及写入区域特定信息来执行数据传送,因此可以获得比较容易地执行数据传送的效果。
根据涉及本发明的第15或16方面中记载的多维存储器的数据传送装置,由于能够通过最大数据长度信息来设定多维空间的大小,因此,在SIMD运算过程中根据运算内容来调整多维空间的大小的情况中,能够根据调整的大小来执行数据传送。因而,可以获得在多维存储器和一维存储器之间进行比较适合于SIMD运算的数据传送的效果。
根据涉及本发明的第16方面中记载的多维存储器的数据传送装置,由于可以或是将数据原样传送或是进行转置传送,因此在需要SIMD运算过程中根据运算内容进行转置传送的情况下,能够执行与之相应的数据传送。因而可以获得在多维存储器和一维存储器之间进行比较适合于SIMD运算的数据传送的效果。
根据涉及本发明的第17方面中记载的多维存储器的数据传送装置,由于能够大致以第1脉冲串长度为单位执行将数据写入到多维存储器中,因此可以获得在多维存储器和一维存储器之间进行比较高速的数据传送的效果。.此外,由于适当地传送不足第1脉冲串长度的数据,因此,可以获得在传送数据时降低将不需要的数据写入多维存储器中的可能性的效果。
根据涉及本发明的第18方面中记载的多维存储器的数据传送装置,由于能够大致以第2脉冲串长度为单位从一维存储器中读出数据,因此可以获得在多维存储器和一维存储器之间进行比较高速的数据传送的效果。此外,由于适当地传送不足第2脉冲串长度的数据,因此,可以获得在传送数据时降低将不需要的数据写入多维存储器中的可能性的效果。
根据涉及本发明的第19方面中记载的多维存储器的数据传送装置,在进行数据传送过程中能够降低对运算处理装置的负担的同时,可以获得在多维存储器和一维存储器之间进行比较高速的数据传送的效果。
根据涉及本发明的第20或21中记载的多维存储器的数据传送装置,由于能够从物理各存储器中同时读出排列在从多维存储器空间上指定位置处开始的横方向或纵方向上的连续数据,并且能够在从多维存储器空间上指定位置处开始沿横方向或纵方向上连续排列地将数据同时写入物理各存储器中,因此可以获得能实现有效率的SIMD运算的效果。
另一方面,根据涉及本发明的第22方面中记载的多维存储器的数据传送程序,可以获得与第1方面中记载的多维存储器数据传送装置相同的效果。
另外,根据涉及本发明的第23方面中记载的多维存储器的数据传送程序,可以获得与第10中记载的多维存储器数据传送装置相同的效果。
另外,根据涉及本发明的第24方面中记载的多维存储器的数据传送方法,可以获得与第1方面中记载的多维存储器数据传送装置相同的效果。
根据涉及本发明的第25方面中记载的多维存储器的数据传送方法,可以获得与第10方面中记载的多维存储器数据传送装置相同的效果。

Claims (23)

1.一种多维存储器的数据传送装置,在从访问一侧看去将存储器空间构成多维空间的多维存储器和从访问一侧看去将存储器空间构成一维空间的一维存储器之间进行数据传送,所述数据传送装置具有:从所述多维存储器中读出所述多维空间内一定区域内的数据的多维存储器读出装置,在所述多维空间中的一个位置与多个存储器每个中的一个位置相对应,在所述多维空间中的一个位置的读出数据同时形成了在多个存储器每个中的一个位置读出数据;以及将由所述多维存储器读出装置读出的数据写入所述一维存储器中的一维存储器写入装置。
2.如权利要求1中所述的多维存储器的数据传送装置,其特征在于,所述多维存储器读出装置输入作为读出数据时基准的读出基准地址以及用来特定所述多维空间内读出区域的读出区域特定信息,根据输入的读出基准地址以及读出区域特定信息,从所述多维存储器中读出所述多维空间内一定区域中的数据。
3.如权利要求2中所述的多维存储器的数据传送装置,其特征在于,所述读出区域特定信息包含表示所述多维空间每个维中的该维中应该读出数据的长度的读出数据长度信息,
所述多维存储器读出装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,以及所述读出基准地址,特定所述多维空间中的读出区域,从而从所述多维存储器中读出特定读出区域内的数据。
4.如权利要求3中所述的多维存储器的数据传送装置,其特征在于,所述读出区域特定信息还包含表示对于所述多维空间的一定维数中该维中的最大数据长度的最大数据长度信息,
所述多维存储器读出装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,由包含在所述读出区域特定信息中的最大数据长度信息特定的数据长度,以及所述读出基准地址,特定所述多维空间中的读出区域,从而从所述多维存储器中读出特定读出区域内的数据。
5.如权利要求3或4所述的多维存储器的数据传送装置,其特征在于,所述一维存储器写入装置输入作为写入数据时基准的写入基准地址以及用来特定所述一维空间内写入区域的写入区域特定信息,根据输入的写入基准地址以及写入区域特定信息,将由所述多维存储器读出装置读出的数据写入所述一维存储器中。
6.如权利要求5中所述的多维存储器的数据传送装置,其特征在于,所述写入区域特定信息包含在逻辑上由所述一维存储器中构成与所述多维空间相同的多维空间的情况下,表示对于所述逻辑多维空间的规定维数而言该维数最大数据长度的最大数据长度信息,
所述一维存储器写入装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,由包含在所述写入区域特定信息中的最大数据长度信息特定的数据长度,以及所述写入基准地址,特定所述一维存储器的写入区域,从而将由所述多维存储器读出装置读出的数据写入所述特定的写入区域。
7.如权利要求6中所述的多维存储器的数据传送装置,其特征在于,所述一维存储器写入装置可以设定下列两种模式中的任何一种:使所述读出区域和所述写入区域相对应,在所述写入区域中写入所述读出区域的数据的常规传送模式,以及将所述读出区域和所述写入区域转置,在所述写入区域中写入所述读出区域数据的转置传送模式,根据设定的传送模式,将由所述多维存储器读出装置读出的数据写入所述一维存储器中。
8.如权利要求1-4任一项中所述的多维存储器的数据传送装置,其特征在于,通过第1脉冲串长度的总线与所述多维存储器相连,
所述多维存储器读出装置以所述第1脉冲串长度为单位从所述多维存储器中读出所述多维空间中一定区域内的数据,当应从所述多维存储器中读出的数据不足所述第1脉冲串长度时,以不足所述第1脉冲串长度的数据为单位从所述多维存储器中仅读出该数据。
9.如权利要求1-4任一项中所述的多维存储器的数据传送装置,其特征在于,所述一维存储器通过第2脉冲串长度的总线相连,
所述一维存储器写入装置,以所述第2脉冲串长度为单位将由所述多维存储器读出装置读出数据写入所述一维存储器中,应该写入到所述一维存储器中的数据不足所述第2脉冲串长度时,仅对该数据而言,变为以不足所述第2脉冲串长度的数据为单位写入所述一维存储器中。
10.一种多维存储器的数据传送装置,在从访问一侧看去将存储器空间构成多维空间的多维存储器和从访问一侧看去将存储器空间构成一维空间的一维存储器之间进行数据传送,
所述数据传送装置包括从所述一维存储器中读出数据的一维存储器读出装置;以及
将由所述一维存储器读出装置读出的数据写入所述多维存储器中以便于将该数据配置在所述多维空间的一定区域中的多维存储器写入装置,所述多维空间中的一个位置对应于每个多维存储器中的一个位置,在所述多维空间中的一个位置上写入数据同时形成了在多个存储器的每个中的一个位置上写入数据。
11.如权利要求10中所述的多维存储器的数据传送装置,其特征在于,所述一维存储器读出装置输入作为读出数据时基准的读出基准地址,以及在所述一维存储器中逻辑上构成与所述多维空间相同的多维空间的情况下用来特定所述逻辑多维空间内读出区域的读出区域特定信息,根据输入的读出基准地址以及读出区域特定信息,从所述一维存储器中读出所述逻辑多维空间内一定区域中的数据。
12.如权利要求11中所述的多维存储器的数据传送装置,其特征在于,所述读出区域特定信息包含表示所述逻辑多维空间每个维中在该维中应该读出数据的长度的读出数据长度信息,
所述一维存储器读出装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,以及所述读出基准地址,特定所述逻辑多维空间中的读出区域从而从所述一维存储器中读出特定读出区域内的数据。
13.如权利要求12中所述的多维存储器的数据传送装置,其特征在于,所述读出区域特定信息还包含表示对于所述逻辑多维空间的一定维数中该维数的最大数据长度的最大数据长度信息,
所述一维存储器读出装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,由包含在所述读出区域特定信息中的最大数据长度信息特定的数据长度,以及所述读出基准地址,特定所述逻辑多维空间中的读出区域,从而从所述一维存储器中读出特定读出区域内的数据。
14.如权利要求12或13所述的多维存储器的数据传送装置,其特征在于,所述多维存储器写入装置输入作为写入数据时基准的写入基准地址以及用来特定所述多维空间内写入区域的写入区域特定信息,根据输入的写入基准地址以及写入区域特定信息,将由所述一维存储器读出装置读出的数据写入所述多维存储器中。
15.如权利要求14中所述的多维存储器的数据传送装置,其特征在于,所述写入区域特定信息包含表示对于所述多维空间一定维数而言该维数最大数据长度的最大数据长度信息,
所述多维存储器写入装置根据由包含在所述读出区域特定信息中的各个读出数据长度信息特定的数据长度,由包含在所述写入区域特定信息中的最大数据长度信息特定的数据长度,以及所述写入基准地址,特定所述多维存储器的写入区域,从而将由所述一维存储器读出装置读出的数据写入所述特定的写入区域。
16.如权利要求15中所述的多维存储器的数据传送装置,其特征在于,所述多维存储器写入装置可以设定下列两种模式中的任何一种:使所述读出区域和所述写入区域相对应,在所述写入区域中写入所述读出区域的数据的常规传送模式,以及将所述读出区域和所述写入区域转置,在所述写入区域中写入所述读出区域数据的转置传送模式,根据设定的传送模式,将由所述一维存储器读出装置读出的数据写入所述多维存储器中。
17.如权利要求10-13任一项中所述的多维存储器的数据传送装置,其特征在于,通过第1脉冲串长度的总线与所述多维存储器相连,
所述多维存储器写入装置以所述第1脉冲串长度单位将从所述一维存储器中读出的数据写入到所述多维存储器中,应该写入所述多维存储器的数据不足所述第1脉冲串长度时,仅对该数据而言,变为以不足所述第1脉冲串长度的数据单位写入到所述多维存储器中。
18.如权利要求10-13任一项中所述的多维存储器的数据传送装置,其特征在于,通过第2脉冲串长度的总线与所述一维存储器相连,
所述一维存储器读出装置,以所述第2脉冲串长度为单位从所述一维存储器中读出来自所述一维存储器的数据,应该从所述一维存储器读出的数据不足所述第2脉冲串长度时,仅对该数据而言,变为以不足所述第2脉冲串长度的数据为单位从所述一维存储器中读出。
19.如权利要求1-13任一项中所述的多维存储器的数据传送装置,其特征在于,所述多维存储器和所述一维存储器之间的数据传送为与利用所述多维存储器进行运算的运算处理装置的操作相独立而执行的。
20.如权利要求1-13任一项中所述的多维存储器的数据传送装置,其特征在于,所述多维存储器带有:假设在纵向横向上排列的二维形成的一定虚拟最小二维存储器空间的二维存储器空间的同时,预先以一定规则分别分配所述虚拟最小二维存储器空间的各个地址的n个存储器,
数据读出时,特定所述虚拟最小二维存储器空间上的地址位置,根据从特定的地址位置中读出数据的方向或指定图案的读出访问模式,重新排列来自n个存储器的读出数据,将重新排列的各个读出数据一并输出的读出数据控制器,
指定读出地址时,根据所述指定读出访问模式和所述特定访问位置,或根据在访问空间跨过相邻的所述虚拟最小二维存储器空间的情况下所述指定读出访问模式,来将所述指定读出地址校正为一定地址并输出到所述n个存储器中的读出地址控制单元。
21.如权利要求20所述的多维存储器的数据传送装置,其特征在于,所述读出数据控制器带有:读出数据时,输出根据指定的读出地址来特定的所述虚拟最小二维存储器空间上的访问位置以及根据指定的所述读出访问模式来选择所述n个存储器的读出数据的选择信号的数据控制器,以及对应于所述n个存储器所设置、基于来自所述数据控制器的选择信号来选择来自所述n个存储器的各个读出数据并同时将其输出的n个选择器,
所述读出地址控制单元带有:指定读出地址时,根据所述读出访问模式以及所述读出地址,输出将相当于所述各个存储器的下位侧地址的所述读出地址变换为一定值的地址变换信号的同时,在访问空间跨过相邻的所述虚拟最小二维存储器空间的情况下,根据所述读出访问模式,输出将相当于所述各个存储器上位侧地址的所述读出地址进行校正的校正信号的地址控制器,以及对应于所述n个存储器设置、基于来自所述地址控制器的地址变换信号将所述读出地址变换为一定值并向所述各个存储器输出的同时,基于来自所述地址控制器的校正信号对所述读出地址进行校正并向所述各个存储器输出的n个地址校正器。
22.一种多维存储器的数据传送方法,在从访问一侧看去将存储器空间构成多维空间的多维存储器和从访问一侧看去将存储器空间构成一维空间的一维存储器之间进行数据传送,所述数据传送方法包含从所述多维存储器中读出所述多维空间内一定区域内的数据的多维存储器读出步骤,以及将由所述多维存储器读出步骤读出的数据写入所述一维存储器中的一维存储器写入步骤。
23.一种多维存储器的数据传送方法,在从访问一侧看去将存储器空间构成多维空间的多维存储器和从访问一侧看去将存储器空间构成一维空间的一维存储器之间进行数据传送,所述数据传送方法包含从所述一维存储器中读出数据的一维存储器读出步骤,以及将由所述一维存储器读出步骤读出的数据写入所述多维存储器中以便于将该数据配置在所述多维空间的一定区域中的多维存储器写入步骤。
CNB031243703A 2002-03-20 2003-03-19 多维存储器的数据传送装置、传送程序以及传送方法 Expired - Fee Related CN100357913C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002079523A JP2003280982A (ja) 2002-03-20 2002-03-20 多次元メモリのデータ転送装置及び多次元メモリのデータ転送プログラム、並びに多次元メモリのデータ転送方法
JP79523/2002 2002-03-20
JP79523/02 2002-03-20

Publications (2)

Publication Number Publication Date
CN1445679A CN1445679A (zh) 2003-10-01
CN100357913C true CN100357913C (zh) 2007-12-26

Family

ID=27785314

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031243703A Expired - Fee Related CN100357913C (zh) 2002-03-20 2003-03-19 多维存储器的数据传送装置、传送程序以及传送方法

Country Status (4)

Country Link
US (2) US7149904B2 (zh)
EP (1) EP1347387A3 (zh)
JP (1) JP2003280982A (zh)
CN (1) CN100357913C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281543A (zh) * 2013-07-01 2015-01-14 图芯芯片技术(上海)有限公司 显示控制器和二维图形处理器通过同一个内存控制器访问内存的架构方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653929B2 (en) * 2004-06-28 2010-01-26 Intel Corporation Power management apparatus, systems, and methods
US7363397B2 (en) * 2004-08-26 2008-04-22 International Business Machines Corporation System and method for DMA controller with multi-dimensional line-walking functionality
JP2006129262A (ja) * 2004-10-29 2006-05-18 Toshiba Corp 電子機器および同機器の消費電力制御方法
US20060136764A1 (en) * 2004-12-22 2006-06-22 Munguia Peter R Methods and apparatus to manage power consumption of a system
JP2007013438A (ja) * 2005-06-29 2007-01-18 Toshiba Corp 音声画像再生装置及び動作制御方法
JP2007183692A (ja) * 2005-12-29 2007-07-19 Fujitsu Ltd データ処理装置
US20070162780A1 (en) * 2006-01-10 2007-07-12 Yao-Yi Wang Method for controlling an operating frequency of a processor during playback of a recorded video
KR101570116B1 (ko) 2008-09-09 2015-11-19 삼성전자주식회사 터치스크린을 이용한 컨텐츠 탐색 및 실행방법과 이를 이용한 장치
JP5471969B2 (ja) * 2010-08-23 2014-04-16 株式会社リコー Simdプロセッサのためのメモリコントローラ
CN103019946B (zh) * 2012-11-26 2016-06-01 北京北大众志微系统科技有限责任公司 一种访存指令的执行装置
JP6266308B2 (ja) * 2013-11-07 2018-01-24 ルネサスエレクトロニクス株式会社 半導体装置
DE102015104776B4 (de) * 2015-03-27 2023-08-31 Infineon Technologies Ag Verfahren und Vorrichtung zum Verarbeiten von Radarsignalen
US10019262B2 (en) * 2015-12-22 2018-07-10 Intel Corporation Vector store/load instructions for array of structures
US10942843B2 (en) * 2017-04-25 2021-03-09 Micron Technology, Inc. Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes
JP7136343B2 (ja) * 2018-09-18 2022-09-13 日本電気株式会社 データ処理システム、方法、およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5047958A (en) * 1989-06-15 1991-09-10 Digital Equipment Corporation Linear address conversion
CN1126860A (zh) * 1994-04-11 1996-07-17 株式会社日立制作所 半导体集成电路

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62205452A (ja) 1986-03-06 1987-09-10 Nec Corp 記憶制御方式
JPS62297951A (ja) 1986-06-18 1987-12-25 Fujitsu Ltd メモリ回路
US5046023A (en) * 1987-10-06 1991-09-03 Hitachi, Ltd. Graphic processing system having bus connection control capable of high-speed parallel drawing processing in a frame buffer and a system memory
JPH02126364A (ja) 1988-11-05 1990-05-15 Hitachi Ltd 複数次元データ処理装置
US5522083A (en) * 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
JPH0465777A (ja) 1990-07-06 1992-03-02 Hitachi Ltd 画像データ転送方式
JPH04153846A (ja) 1990-10-18 1992-05-27 Matsushita Electric Ind Co Ltd 記憶装置
JPH04167191A (ja) 1990-10-31 1992-06-15 Fujitsu Ltd 分散メモリ型並列計算機における高速データ転送方式
EP1199639A3 (en) * 1990-12-25 2004-12-08 Mitsubishi Denki Kabushiki Kaisha A semiconductor memory device with a large storage capacity memory and a fast speed memory
JPH04333952A (ja) 1991-05-10 1992-11-20 Toshiba Corp Dmaコントロールlsi
JPH0581170A (ja) 1991-09-19 1993-04-02 Olympus Optical Co Ltd Dma転送装置
US5566341A (en) * 1992-10-05 1996-10-15 The Regents Of The University Of California Image matrix processor for fast multi-dimensional computations
US5666521A (en) * 1992-12-07 1997-09-09 Intel Corporation Method and apparatus for performing bit block transfers in a computer system
US5457779A (en) * 1993-01-15 1995-10-10 Silicon Graphics, Inc. System for accessing graphic data in a SIMD processing environment
JP3569961B2 (ja) 1994-07-07 2004-09-29 株式会社日立製作所 ディジタル映像信号復号装置
JP3096576B2 (ja) * 1994-07-29 2000-10-10 三洋電機株式会社 メモリ制御回路とその回路を内蔵した集積回路素子
JP3013876B2 (ja) * 1995-01-31 2000-02-28 日本ビクター株式会社 変換符号化装置
US5745785A (en) * 1995-05-09 1998-04-28 Sofmap Future Design, Inc. System for alternatively transferring data from external memory to memory device and from memory device to internal memory depending upon processing unit's operational
US5757381A (en) * 1996-04-04 1998-05-26 Sofmap Future Design, Inc. Methods for fast scrolling of images
JP2778583B2 (ja) 1996-05-30 1998-07-23 日本電気株式会社 低消費電力マイクロプロセッサ
US5844856A (en) * 1996-06-19 1998-12-01 Cirrus Logic, Inc. Dual port memories and systems and methods using the same
US5850553A (en) * 1996-11-12 1998-12-15 Hewlett-Packard Company Reducing the number of executed branch instructions in a code sequence
US6026466A (en) * 1997-06-16 2000-02-15 Integrated Silicon Solution, Inc. Multiple row address strobe DRAM architecture to improve bandwidth
US6170046B1 (en) 1997-10-28 2001-01-02 Mmc Networks, Inc. Accessing a memory system via a data or address bus that provides access to more than one part
US6049882A (en) * 1997-12-23 2000-04-11 Lg Semicon Co., Ltd. Apparatus and method for reducing power consumption in a self-timed system
US5959929A (en) * 1997-12-29 1999-09-28 Micron Technology, Inc. Method for writing to multiple banks of a memory device
JPH11203860A (ja) * 1998-01-07 1999-07-30 Nec Corp 半導体記憶装置
GB2335126B (en) 1998-03-06 2002-05-29 Advanced Risc Mach Ltd Image data processing apparatus and a method
US6360328B1 (en) * 1998-07-02 2002-03-19 Yamaha Corporation Plural sampling frequency signal processing by performing designated routines during sub-multiple time slots of each period
JP2000069478A (ja) 1998-08-18 2000-03-03 Canon Inc 画像処理装置及び方法並びに記憶媒体
JP2000079723A (ja) 1998-09-03 2000-03-21 Canon Inc 画像形成装置、情報処理システム、画像処理方法、及び記憶媒体
DE69917489T2 (de) * 1998-11-09 2005-06-02 Broadcom Corp., Irvine Anzeigesystem zur mischung von graphischen daten und videodaten
WO2000043868A1 (en) 1999-01-20 2000-07-27 Hitachi, Ltd. Data processor and device for arithmetic operation
US6094397A (en) * 1999-02-09 2000-07-25 International Business Machines Corporation Method and apparatus for addressing multi-bank memory
JP2000355945A (ja) 1999-06-15 2000-12-26 Daikichi Suematsu コンクリート壁面構造
JP2001243112A (ja) 2000-02-25 2001-09-07 Canon Inc 画像メモリアクセス装置
JP2001331162A (ja) * 2000-05-19 2001-11-30 Mitsubishi Electric Corp 表示制御装置
US6366524B1 (en) * 2000-07-28 2002-04-02 Micron Technology Inc. Address decoding in multiple-bank memory architectures
JP3931577B2 (ja) * 2000-11-22 2007-06-20 セイコーエプソン株式会社 メモリの使用方法、及び演算処理装置
US6888848B2 (en) * 2000-12-14 2005-05-03 Nortel Networks Limited Compact segmentation of variable-size packet streams
US6694442B2 (en) * 2000-12-18 2004-02-17 Asustek Computer Inc. Method for saving power in a computer by idling system controller and reducing frequency of host clock signal used by system controller
JP4139579B2 (ja) 2001-06-19 2008-08-27 株式会社ルネサステクノロジ 半導体装置および半導体装置の動作モード制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5047958A (en) * 1989-06-15 1991-09-10 Digital Equipment Corporation Linear address conversion
CN1126860A (zh) * 1994-04-11 1996-07-17 株式会社日立制作所 半导体集成电路

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281543A (zh) * 2013-07-01 2015-01-14 图芯芯片技术(上海)有限公司 显示控制器和二维图形处理器通过同一个内存控制器访问内存的架构方法
CN104281543B (zh) * 2013-07-01 2017-12-26 图芯芯片技术(上海)有限公司 同时支持显示控制器和图形加速器访问内存的架构方法

Also Published As

Publication number Publication date
US7096312B2 (en) 2006-08-22
CN1445679A (zh) 2003-10-01
JP2003280982A (ja) 2003-10-03
US20030233511A1 (en) 2003-12-18
EP1347387A3 (en) 2005-04-20
EP1347387A2 (en) 2003-09-24
US20030221136A1 (en) 2003-11-27
US7149904B2 (en) 2006-12-12

Similar Documents

Publication Publication Date Title
CN100357913C (zh) 多维存储器的数据传送装置、传送程序以及传送方法
CN100424654C (zh) 一种矩阵数据存取方法及其矩阵数据存储装置
CN101331464A (zh) 存储区域分配系统及方法和控制装置
CN102870053A (zh) 可编程控制器的cpu单元、可编程控制器用的系统程序以及存储了可编程控制器用的系统程序的记录介质
CN102438149B (zh) 一种基于可重构技术的avs反变换的实现方法
CN105095110A (zh) 可融合可重构缓存架构
CN101504632A (zh) 一种dma数据传输方法、系统及一种dma控制器
JP2003084751A5 (zh)
US7840826B2 (en) Method and apparatus for using port communications to switch processor modes
WO2021070303A1 (ja) 演算処理装置
CN102289424B (zh) 一种动态可重构阵列处理器的构令流工作方法
CN101794276B (zh) 适用于soc的dct_idct协处理器
CN101782878B (zh) 基于分布式存储器的数据存储方法
CN104750659A (zh) 一种基于自动布线互连网络的粗粒度可重构阵列电路
CN101604294B (zh) 存储器控制装置和信息处理设备
JPH07210545A (ja) 並列処理プロセッサ
JP5298625B2 (ja) メモリ方法およびメモリ装置
CN115965067B (zh) 一种针对ReRAM的神经网络加速器
CN116150046B (zh) 一种高速缓存电路
CN102622318B (zh) 一种存储器控制电路及其控制的向量数据寻址方法
CN102323918B (zh) 一种动态可重构处理单元阵列扩展的方法
US7503046B2 (en) Method of obtaining interleave interval for two data values
CN103761196A (zh) 二维块数据存储系统
JPH08101805A (ja) データ処理プロセッサ装置
KR20230166900A (ko) 확장 가능한 대역폭을 가지는 내부 메모리를 포함하는 신경 프로세싱 유닛 및 그 동작 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20071226

Termination date: 20150319

EXPY Termination of patent right or utility model