CN100527109C - 存储器访问装置 - Google Patents
存储器访问装置 Download PDFInfo
- Publication number
- CN100527109C CN100527109C CNB2007101366496A CN200710136649A CN100527109C CN 100527109 C CN100527109 C CN 100527109C CN B2007101366496 A CNB2007101366496 A CN B2007101366496A CN 200710136649 A CN200710136649 A CN 200710136649A CN 100527109 C CN100527109 C CN 100527109C
- Authority
- CN
- China
- Prior art keywords
- address
- data
- output
- write
- memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
Abstract
存储器访问装置包括:根据读出数据的数据尺寸和DSP的地址空间中的地址,输出对于第一和第二存储器的至少一方的读出地址的地址输出部;根据读出数据的所述数据尺寸和所述DSP的地址空间中的地址,对第一和第二存储器的至少一方输出读出请求的访问请求输出部;输出关于读出数据的数据尺寸的信息和关于DSP的地址空间中的地址的信息的数据信息输出部;按照读出地址、读出请求,从由第一和第二存储器的至少一方输出的数据,根据关于数据尺寸的信息和关于DSP的地址空间中的地址的信息,生成并输出读出数据的读出数据输出部。
Description
技术领域
本发明涉及存储器访问装置。
背景技术
在DSP(Digital Signal Processor)等处理电路中,为了高速进行数据处理,有时内置多个存储器。专利文献1中描述的DSP具有2个用于存储数据的存储器,为了能同时访问这2个存储器,设置2组地址总线和数据总线。而且,在这样的DSP中,把对乘法累加器(MAC:MultiplyAccumulator)输入的2个数据从2个存储器经由2个总线同时读出,从而实现运算处理的高速化。
[专利文献1]特开2006-190389号公报
发明内容
作为用于进一步把DSP的运算处理高速化的手法,考虑设置多个乘法累加器。可是,如上所述,即使在能同时读出2个数据的DSP中设置2个乘法累加器,能同时从存储器读出的数据是2个。因此,即使同时进行2个乘法累加器的计算,一方的乘法累加器的输入数据的读出只有在另一方的乘法累加器的输入数据的读出结束后进行,无法有效地把DSP的运算处理高速化。
本发明是鉴于所述课题而提出的,其目的在于,提供能实现高效的存储器访问的存储器访问装置。
为了实现所述的目的,本发明的存储器访问装置访问第一和第二存储器,包括:根据读出数据的数据尺寸和DSP的地址空间中的地址,输出对于所述第一和第二存储器的至少一方的读出地址的地址输出部;根据所述读出数据的所述数据尺寸和所述DSP的地址空间中的所述地址,对所述第一和第二存储器的至少一方输出读出请求的访问请求输出部;输出所述读出数据的所述数据尺寸是N位还是2N位的信息和所述DSP的地址空间中的地址是偶数还是奇数的信息的数据信息输出部;按照从所述地址输出部输出的所述读出地址、从所述访问请求输出部输出的所述读出请求,从由所述第一和第二存储器的至少一方输出的数据,根据从所述数据信息输出部输出的关于所述数据尺寸的信息和关于所述DSP的地址空间中的地址的信息,生成并输出读出数据输出部;在所述第一存储器中存储所述DSP的地址空间的偶数地址的N位宽度的数据,在所述第二存储器中存储所述DSP地址空间的奇数地址的N位宽度的数据。
此外,在所述存储器访问装置中,所述地址输出部在所述读出数据的所述数据尺寸是N位时,把与所述地址空间的所述地址对应的所述读出地址对所述第一或第二存储器输出,在所述读出数据的所述数据尺寸是2N位时,把与所述地址空间的所述地址对应的所述读出地址对所述第一和第二存储器输出,所述读出数据输出部在所述读出数据的所述数据尺寸是N位时,把从所述第一或第二存储器输出的数据作为所述读出数据输出,在所述读出数据的所述数据尺寸是2N位,所述地址空间中的所述地址是偶数地址时,把从所述第一存储器输出的数据作为上级位,把从所述第二存储器输出的数据作为下级位,生成所述读出数据,输出,所述读出数据的所述数据尺寸是2N位,所述地址空间中的所述地址是奇数地址时,把从所述第二存储器输出的数据作为上级位,把从所述第一存储器输出的数据作为下级位,生成所述读出数据,输出。
此外,在所述存储器访问装置中,所述地址输出部根据写入数据的数据尺寸和DSP的地址空间中的地址,输出对于所述第一以及第二存储器的至少一方的写入地址;所述访问请求输出部根据所述写入数据的所述数据尺寸和所述DSP的地址空间中的地址,对所述第一以及第二存储器的至少一方输出写入请求;所述数据信息输出部输出关于所述写入数据的所述数据尺寸的信息和关于所述DSP的地址空间中的地址的信息;还具有:根据从所述数据信息输出部输出的关于所述数据尺寸的信息和关于所述DSP的地址空间中的地址的信息,对所述第一以及第二存储器的至少一方输出所述写入数据的写入数据输出部。
此外,在所述存储器访问装置中,在所述第一存储器中存储所述地址空间的偶数地址的N位宽度的数据,在所述第二存储器中存储所述地址空间的奇数地址的N位宽度的数据,所述地址输出部在所述写入数据的所述数据尺寸为N位时,把与所述地址空间的所述地址对应的所述写入地址对所述第一或第二存储器输出,在所述写入数据的所述数据尺寸为2N位时,把与所述地址空间的所述地址对应的所述写入地址对所述第一和第二存储器输出,所述写入数据输出部在所述写入数据的所述数据尺寸为N位,所述地址空间的所述地址为偶数地址时,把所述写入数据对所述第一存储器输出,在所述写入数据的所述数据尺寸为N位,所述地址空间的所述地址为奇数地址时,把所述写入数据对所述第二存储器输出,在所述写入数据的所述数据尺寸为2N位,所述地址空间的所述地址为偶数地址时,把所述写入数据的上级N位对所述第一存储器输出,把所述写入数据的下级N位对所述第二存储器输出,在所述写入数据的所述数据尺寸为2N位,所述地址空间的所述地址为奇数地址时,把所述写入数据的上级N位对所述第二存储器输出,把所述写入数据的下级N位对所述第一存储器输出。
此外,在所述存储器访问装置中,还具有:存储从所述地址输出部输出的所述写入地址的写入地址存储部;把从所述写入数据输出部输出的所述写入数据在写入所述第一或第二存储器之前存储的写入数据存储部;从所述地址输出部输出的所述读出地址和所述写入地址存储部中存储的所述写入地址不同时,把所述读出地址对所述第一或第二存储器输出的地址选择电路;所述读出数据输出部在从所述地址输出部输出的所述读出地址和所述写入地址存储部中存储的所述写入地址不同时,从由所述第一或第二存储器的至少一方输出的数据生成所述读出数据,输出,在从所述地址输出部输出的所述读出地址和所述写入地址存储部中存储的所述写入地址相同时,输出所述写入数据存储部中存储的所述写入数据。
此外,在所述存储器访问装置中,所述地址输出部在时钟从一方的逻辑电平向另一方的逻辑电平变化的第一定时,输出所述读出地址,所述访问请求输出部在所述第一定时之后,在所述时钟从所述一方的逻辑电平向所述另一方的逻辑电平变化的第二定时,输出所述读出请求。
此外,在所述存储器访问装置中,所述地址输出部在时钟从一方的逻辑电平向另一方的逻辑电平变化的第一定时,输出所述写入数据,所述访问请求部在所述第一定时之后,在所述时钟从所述一方的逻辑电平向所述另一方的逻辑电平变化的第二定时,把从所述地址输出部输出的所述写入地址存储到所述地址存储部中,并且把从所述写入数据输出部输出的所述写入数据存储到所述写入数据存储部中。
能提供能实现高效的存储器访问的存储器访问装置。
附图说明
下面简要说明附图。
图1是表示本发明的存储器访问装置的一个实施例的数字信号处理电路的结构例的图。
图2是表示DSP的管道控制的例子的图。
图3是表示DSP的控制电路和存储器访问电路的详细结构例的图。
图4是表示数据存储器的地址结构例的图。
图5是表示向数据存储器的访问模式的图。
图6是表示数据尺寸为16位,地址空间的地址为偶数时的写入动作的图。
图7是表示数据尺寸为16位,地址空间的地址为奇数时的写入动作的图。
图8是表示数据尺寸为32位,地址空间的地址为偶数时的写入动作的图。
图9是表示数据尺寸为32位,地址空间的地址为奇数时的写入动作的图。
图10是表示数据尺寸为16位,地址空间的地址为偶数时的读出动作的图。
图11是表示数据尺寸为16位,地址空间的地址为奇数时的读出动作的图。
图12是表示数据尺寸为32位,地址空间的地址为偶数时的读出动作的图。
图13是表示数据尺寸为32位,地址空间的地址为奇数时的读出动作的图。
图14是表示数据尺寸为16位,地址空间的地址为偶数,接着对同一地址的写入动作的读出动作的图。
图15是表示数据尺寸为16位,地址空间的地址为偶数,接着对不同地址的写入动作的读出动作的图。
图16是表示数据尺寸为16位,地址空间的地址为奇数,接着对同一地址的写入动作的读出动作的图。
图17是表示数据尺寸为16位,地址空间的地址为奇数,接着对不同地址的写入动作的读出动作的图。
图18是表示数据尺寸为32位,地址空间的地址为偶数,接着对同一地址的写入动作的读出动作的图。
图19是表示数据尺寸为32位,地址空间的地址为偶数,接着对不同地址的写入动作的读出动作的图。
图20是表示数据尺寸为32位,地址空间的地址为奇数,接着对同一地址的写入动作的读出动作的图。
图21是表示数据尺寸为32位,地址空间的地址为奇数,接着对不同地址的写入动作的读出动作的图。
图22是表示读出动作时的定时的图。
图23是表示写入动作时的图。
符号的说明。
10—数字信号处理电路(DSP);20—控制电路;21A、21B—存储器访问电路;22—程序存储器;23Aa、23Ab、23Ba、23Bb—数据存储器;24—寄存器;25—运算电路;BDAA、BDAB—地址总线;BDA、BDB—数据总线;31—提取电路;32—管道控制电路;33—地址生成电路;41a、41b—地址寄存器;42a、42b—地址缓存器;43a、43b—地址比较电路;44a、44b—地址选择电路;45a、45b—读出数据选择电路;46a、46b—读出缓存器;47—读出数据合成电路;51、52—设定寄存器;53—写入数据选择电路。
具体实施方式
图1是表示本发明的存储器访问装置的一个实施例的数字信号处理电路(DSP:Digital Signal Processor)的结构例的图。DSP10包含控制电路20、存储器访问电路21A、21B、程序存储器22、数据存储器23Aa、23Ab、23Ba、23Bb、寄存器24、运算电路25、地址总线BDAA、BDAB、数据总线BDA、BDB。
控制电路20通过读出程序存储器22中存储的程序,执行,进行数字信号处理电路10的各种控制。例如,控制电路20进行数字信号处理电路10的管道处理的控制、通过存储器访问电路21A、21B的向数据存储器23Aa~23Bb的访问控制、运算电路25的运算处理的执行控制。
存储器访问电路21A按照来自控制电路20的指示,控制向数据存储器23Aa、23Ab的访问。此外,存储器访问电路21B按照来自控制电路20的指示,控制向数据存储器23Ba、23Bb的访问。
程序存储器22是闪存等非易失性的存储区,存储由控制电路20执行的程序。须指出的是,程序存储器22也可以设置在数字信号处理电路10的外部。此外,程序存储器22可以为易失性的存储器,从数字信号处理电路10的外部读入程序。
数据存储器23Aa、23Ab、23Ba、23Bb例如是SRAM(Staric RandomAccess Memory)等存储区,存储DSP10的各种处理中使用的数据或生成的数据。须指出的是,数据存储器23Aa、23Ab、23Ba、23Bb也可以设置在数字信号处理电路10的外部。
寄存器24是由多个通用寄存器等构成的存储区,主要作为从数据存储器23Aa、23Ab、23Ba、23Bb读出的数据、运算电路25的处理结果的暂时存储区使用。
运算电路25是把寄存器24中存储的数据作为输入数据,进行乘法或加法等计算的电路。本实施例的运算电路25中包含2个乘法累加器(MAC:Multiply Accumulator),通过从寄存器24同时读出4个数据,能同时进行2个乘法累加器的计算。
地址总线BDAA例如是由24位的地址总线BDAA0、BDAA1构成的总线,输出从数据存储器23Aa、23Ab读出数据时的地址(读出地址)或者对数据存储器23Aa、23Ab写入数据时的地址(写入地址)。此外,数据总线BDA是32位的数据总线,输出从数据存储器23Aa、23Ab读出的数据(读出数据)、或者对数据存储器23Aa、23Ab写入的数据(写入数据)。
地址总线BDAB例如是由24位的地址总线BDAB0、BDAB1构成的总线,输出从数据存储器23Ba、23Bb读出数据时的地址(读出地址)或者对数据存储器23Ba、23Bb写入数据时的地址(写入地址)。此外,数据总线BDB例如是32位的数据总线,输出从数据存储器23Ba、23Bb读出的数据(读出数据)、或者对数据存储器23ba、23bb写入的数据(写入数据)。
图2是表示DSP10的管道控制的例子的图。在DSP10中,通过控制电路20的控制,进行管道控制。在管道控制中,把一系列的处理分割为多个阶段,并行执行多个处理的各阶段的动作。在图2所示的例子中,分割为提取阶段(F阶段)、译码阶段(D阶段)、地址生成阶段(A阶段)、执行阶段(E1阶段)、执行阶段(E2阶段)等5个阶段。然后,如果在时刻(时钟周期)T1的F阶段进行处理A的提取(提取A),接着就在时刻T2的D阶段进行提取的命令的译码(译码A)。然后,时刻T3的A阶段进行用于访问数据的地址生成(地址A),在时刻T4的E1阶段执行乘法(执行A1),在时刻T5的E2阶段执行加法(执行A2)。而且,各阶段的动作能并行执行,所以在时刻T2的F阶段进行处理B的提取(提取B),在时刻T3的D阶段进行处理B的译码(译码B)。
图3是表示DSP10的控制电路20和存储器访问电路21A的详细结构例的图。控制电路20包含提取电路31、管道控制电路32、地址生成电路33。此外,存储器访问电路21A包含地址寄存器41a、41b、地址缓存器42a、42b、地址比较电路43a、43b、地址选择电路44a、44b、读出数据选择电路45a、45b、读出缓存器46a、46b、读出数据合成电路47、设定寄存器51、52、写入数据选择电路53、写入缓存器54a、54b。须指出的是,数据存储器23Aa相当于本发明的第一存储器,数据存储器23Ab相当于本发明的第二存储器。此外,由管道控制电路32能实现本发明的访问请求输出部,由地址生成电路33能实现本发明的地址输出部和数据信息输出部。此外,读出数据选择电路45a、读出缓存器46a、读出数据合成电路47能实现本发明的读出数据输出部。此外,由写入数据选择电路53能实现本发明的写入数据输出部,由地址缓存器42a、42b能实现本发明的写入地址存储部,由写入缓存器54a、54b能实现本发明的写入数据存储部。此外,关于存储器访问电路21B,也成为与存储器访问电路21A同样的电路结构。
提取电路31从程序存储器22读出由程序计数器指定的地址的程序,对管道控制电路32输出。
管道控制电路32把从提取电路31输出的程序译码,根据由译码取得的命令,进行存储器访问电路21A、21B或运算电路25的管道控制。例如,管道控制电路32在适当的定时输出对数据存储器23Aa的读出请求(XRD0)和写入请求(XWR0)、对数据存储器23Ab的读出请求(XRD1)和写入请求(XWR1)。须指出的是,在本实施例中,读出请求(XRD0)为“0”时,从数据存储器23Aa读出数据,在写入请求(XWR0)为“0”时,对数据存储器23Aa写入数据。此外,在本实施例中,读出请求(XRD1)为“0”时,从数据存储器23Ab读出数据,在写入请求(XWR1)为“0”时,对数据存储器23Ab写入数据。
地址生成电路33根据程序的译码结果,生成对数据存储器23Aa、23Ab的至少一方访问时的地址,对地址总线BDAA输出。在本实施例中,对地址总线BDAA0输出对于数据存储器23Aa的地址,对地址总线BDAA1输出对于数据存储器23Ab的地址。
具体说明地址生成电路33的地址生成。图4是表示数据存储器23Aa、23Ab的地址结构例的图。数据存储器23Aa、23Ab是数据宽度16位(N位),在数据存储器23Aa中存储DSP10的地址空间中的偶数地址的数据,在数据存储器23Ab中存储DSP10的地址空间中的奇数地址的数据。例如,在数据存储器23Ab的n地址存储DSP10的地址空间中的2n+1地址的数据。
图5是表示向数据存储器23Aa、23Ab的访问模式的图。图5(a)是表示访问对象的数据的DSP10的地址空间的地址为偶数(2n),数据尺寸为16位时的访问的图。这时,地址生成电路33根据地址空间中的地址(2n地址)和数据尺寸(16位),生成对于数据存储器23Aa的地址(n地址),对地址总线BDAA0输出。图5(b)是表示访问对象的数据的DSP10的地址空间的地址为奇数(2n+1),数据尺寸为16位时的访问的图。这时,地址生成电路33根据地址空间中的地址(2n+1地址)和数据尺寸(16位),生成对于数据存储器23Ab的地址(n地址),对地址总线BDAA1输出。图5(c)是表示访问对象的数据的DSP10的地址空间的地址为偶数(2n),数据尺寸为32位时的访问的图。这时,地址生成电路33根据地址空间中的地址(2n地址)和数据尺寸(32位),生成对于数据存储器23Aa、23Ab的地址(n地址),对地址总线BDAA0、BDAA1输出。图5(d)是表示访问对象的数据的DSP10的地址空间的地址为奇数(2n+1),数据尺寸为32位时的访问的图。这时,地址生成电路33根据地址空间中的地址(2n+1地址)和数据尺寸(32位),生成对于数据存储器23Ab的地址(n地址),对地址总线BDAA1输出,并且生成对于数据存储器23Aa的地址(n+1地址),对地址总线BDAA0输出。
对数据存储器23Aa写入数据时,在地址寄存器41a存储对地址总线BDAA0输出的地址。此外,对数据存储器23Ab写入数据时,在地址寄存器41b存储对地址总线BDAA1输出的地址。具体而言,在E1阶段对地址总线BDAA0输出的地址在E2阶段由地址寄存器41a取入,在E1阶段对地址总线BDAA1输出的地址在E2阶段由地址寄存器41b取入。
对数据存储器23Aa写入数据时,在地址缓存器42a存储在地址寄存器41a中存储的地址。此外,对数据存储器23Ab写入数据时,在地址缓存器42b存储在地址寄存器41b中存储的地址。具体而言,在E2阶段中存储在地址寄存器41a中的地址在下一时钟周期中由地址缓存器42a取入,在E2阶段中存储在地址寄存器41b中的地址在下一时钟周期中由地址缓存器42b取入。
地址比较电路43a输出对地址总线BDAA0输出的地址和地址缓存器42a中存储的地址的比较结果。此外,地址比较电路43b输出对地址总线BDAA1输出的地址和地址缓存器42b中存储的地址的比较结果。
地址选择电路44a根据从地址比较电路43a输出的比较结果,把对地址总线BDAA0输出的地址或者地址缓存器42a中存储的地址的任意一方对数据存储器23Aa的地址输入端子输入。具体而言,在对地址总线BDAA0输出的对于数据存储器23Aa的读出地址与地址缓存器42a中存储的对于数据存储器23Aa的写入地址相同时,把地址缓存器42a中存储的写入地址对数据存储器23Aa输出,这2个地址不同时,把对地址总线BDAA0输出的读出地址向数据存储器23Aa输出。此外,地址选择电路44b根据从地址比较电路43b输出的比较结果,把对地址总线BDAA1输出的地址或者地址缓存器42b中存储的地址的任意一方对数据存储器23Ab的地址输入端子输入。具体而言,在对地址总线BDAA1输出的对于数据存储器23Ab的读出地址与地址缓存器42b中存储的对于数据存储器23Ab的写入地址相同时,把地址缓存器42b中存储的写入地址对数据存储器23Ab输出,这2个地址不同时,把对地址总线BDAA1输出的读出地址向数据存储器23Ab输出。
读出数据选择电路45a根据从地址比较电路43a输出的比较结果,把从数据存储器23Aa的数据输出端子输出的数据、或者写入缓存器54a中存储的预定对数据存储器23Aa写入的数据的任意一方对读出缓存器46a输出。具体而言,对地址总线BDAA0输出的对于数据存储器23Aa的读出地址和地址缓存器42a中存储的对于数据存储器23Aa的写入地址相同时,把写入缓存器54a中存储的数据对读出缓存器46a输出,这2个地址不同时,把从数据存储器23Aa的数据输出端子输出的数据对读出缓存器46a输出。此外,读出数据选择电路45b根据从地址比较电路43b输出的比较结果,把从数据存储器23Ab的数据输出端子输出的数据、或者写入缓存器54b中存储的预定对数据存储器23Ab写入的数据的任意一方对读出缓存器46b输出。具体而言,对地址总线BDAA1输出的对于数据存储器23Ab的读出地址和地址缓存器42b中存储的对于数据存储器23Ab的写入地址相同时,把写入缓存器54b中存储的数据对读出缓存器46b输出,这2个地址不同时,把从数据存储器23Ab的数据输出端子输出的数据对读出缓存器46b输出。
在读出缓存器46a中存储从读出数据选择电路45a输出的数据。具体而言,从数据存储器23Aa读出数据时,在A阶段对地址总线BDAA0输出读出地址,在E1阶段,从数据存储器23Aa或写入缓存器54a读出数据,读出的数据在E2阶段存储到读出缓存器46a。此外,在读出缓存器46b中存储从读出数据选择电路45b输出的数据。具体而言,从数据存储器23Ab读出数据时,在A阶段对地址总线BDAA1输出读出地址,在E1阶段,从数据存储器23Ab或写入缓存器54b读出数据,读出的数据在E2阶段存储到读出缓存器46b。
读出数据合成电路47根据设定寄存器51中存储的关于数据尺寸的信息和关于地址的信息,从读出缓存器46a、46b的至少一方中存储的数据生成读出数据,对数据总线BDA输出。具体而言,读出数据的数据尺寸为16位,读出数据的地址空间中的地址为偶数时(图5(a)),把读出缓存器46a中存储的数据对数据总线BDA的下级16位[15:0]输出。此外,读出数据的数据尺寸为16位,读出数据的地址空间中的地址为奇数时(图5(b)),把读出缓存器46b中存储的数据对数据总线BDA的下级16位[15:0]输出。此外,读出数据的数据尺寸为32位,读出数据的地址空间中的地址为偶数时(图5(c)),把读出缓存器46a中存储的数据对数据总线BDA的上级16位[31:16]输出,把读出缓存器46b中存储的数据对数据总线BDA的下级16位[15:0]输出。此外,读出数据的数据尺寸为32位,读出数据的地址空间中的地址为奇数时(图5(d)),把读出缓存器46b中存储的数据对数据总线BDA的上级16位[31:16]输出,把读出缓存器46a中存储的数据对数据总线BDA的下级16位[15:0]输出。
在设定寄存器51存储关于来自数据存储器23Aa、23Ab的读出数据、或者向数据存储器23Aa、23Ab的写入数据的关于数据尺寸的信息以及关于地址空间的地址的信息。在本实施例中,关于数据尺寸的信息在数据尺寸为16位时用“1”表示,在数据尺寸为32位时用“0”表示。此外,在本实施例中,关于地址的信息在地址为偶数时用“0”表示,在地址为奇数时用“1”表示。
对数据存储器42a或数据存储器42b写入数据时,在设定寄存器52中存储在设定寄存器51中设定的数据。具体而言,在E1阶段在设定寄存器51中设定的数据在E2阶段由设定寄存器52取入。
写入数据选择电路53根据设定寄存器52中存储的关于数据尺寸的信息和关于地址的信息,把对数据总线BDA输出的写入数据输出到写入缓存器54a、54b的至少一方。具体而言,写入数据的数据尺寸为16位,写入数据的地址空间的地址为偶数时(图5(a)),把对数据总线BDA的下级16位[15:0]输出的数据输出到写入缓存器54a。此外,写入数据的数据尺寸为16位,写入数据的地址空间的地址为奇数时(图5(b)),把对数据总线BDA的下级16位[15:0]输出的数据输出到写入缓存器54b。此外,写入数据的数据尺寸为32位,写入数据的地址空间的地址为偶数时(图5(c)),把对数据总线BDA的上级16位[31:16]输出的数据输出到写入缓存器54a,把对数据总线BDA的下级16位[15:0]输出的数据输出到写入缓存器54b。此外,写入数据的数据尺寸为32位,写入数据的地址空间的地址为奇数时(图5(d)),把对数据总线BDA的上级16位[31:16]输出的数据输出到写入缓存器54b,把对数据总线BDA的下级16位[15:0]输出的数据输出到写入缓存器54a。
==存储器访问动作==
参照图6~图23说明DSP的存储器访问动作。须指出的是,在图6~图21中,用实线表示与存储器访问动作关联的部分,用虚线表示不关联的部分。
图6是表示数据尺寸为16位,地址空间的地址为偶数时的写入动作的图。地址空间的地址为偶数,所以在A阶段,在地址生成电路33生成对数据存储器23Aa的写入地址。然后,生成的写入地址在E1阶段对地址总线BDAA0输出。然后,在E2阶段,把对地址总线BDAA0输出的写入地址由地址寄存器41a取入,并且对数据总线BDA的下级16位[15:0]输出16位的写入数据。此外,地址生成电路33在E1阶段把表示数据尺寸为16位的信息“1”、表示地址是偶数的信息“0”对设定寄存器51写入。然后,对设定寄存器51写入的信息在E2阶段由设定寄存器52取入。
然后,如果变为E2阶段的下一时钟周期,地址寄存器41a中存储的地址就由地址缓存器42a取入。此外,写入数据选择电路53按照设定寄存器52中存储的信息,把对数据总线BDA的下级16位[15:0]输出的数据对写入缓存器54a输出。
在图6时,在写入之后不接着读出,所以通过管道控制电路32的控制,地址选择电路44a把地址缓存器42a中存储的地址对数据存储器23Aa的地址输入端子输入。然后,从管道控制电路32对数据存储器23Aa输出写入请求(XWR0=“0”),从而把写入缓存器54a中存储的数据写入数据存储器23Aa。
图7是表示数据尺寸为16位,地址空间的地址为奇数时的写入动作的图。地址空间的地址为奇数,所以在A阶段,在地址生成电路33生成对数据存储器23Ab的写入地址。然后,生成的写入地址在E1阶段对地址总线BDAA1输出。然后,在E2阶段,把对地址总线BDAA1输出的写入地址由地址寄存器41b取入,并且对数据总线BDA的下级16位[15:0]输出16位的写入数据。此外,地址生成电路33在E1阶段把表示数据尺寸为16位的信息“1”、表示地址是奇数的信息“1”对设定寄存器51写入。然后,对设定寄存器51写入的信息在E2阶段由设定寄存器52取入。
然后,如果变为E2阶段的下一时钟周期,地址寄存器41b中存储的地址就由地址缓存器42b取入。此外,写入数据选择电路53按照设定寄存器52中存储的信息,把对数据总线BDA的下级16位[15:0]输出的数据对写入缓存器54b输出。
在图7时,在写入之后不接着读出,所以通过管道控制电路32的控制,地址选择电路44b把地址缓存器42b中存储的地址对数据存储器23Ab的地址输入端子输入。然后,从管道控制电路32对数据存储器23Ab输出写入请求(XWR1=“0”),从而把写入缓存器54b中存储的数据写入数据存储器23Ab。
图8是表示数据尺寸为32位,地址空间的地址为偶数时的写入动作的图。首先,在A阶段,地址生成电路33中生成对数据存储器23Aa、23Ab的写入地址。然后,在E1阶段,把对数据存储器23Aa的写入地址对地址总线BDAA0输出,把对数据存储器23Ab的写入地址对地址总线BDAA1输出。然后在E2阶段,对地址总线BDAA0输出的写入地址由地址寄存器41a取入,对地址总线BDAA1输出的写入地址由地址寄存器41b取入。此外,在E2阶段,对数据总线BDA[31:0]输出写入数据。此外,地址生成电路33在E1阶段把表示数据尺寸为32位的信息“0”、表示地址是偶数的信息“0”对设定寄存器51写入。然后,对设定寄存器51写入的信息在E2阶段由设定寄存器52取入。
然后,如果变为E2阶段的下一时钟周期,地址寄存器41a中存储的地址就由地址缓存器42a取入,地址寄存器41b中存储的地址就由地址缓存器42b取入。此外,写入数据选择电路53按照设定寄存器52中存储的信息,把对数据总线BDA的上级16位[31:16]输出的数据对写入缓存器54a输出,把对数据总线BDA的下级16位[15:0]输出的数据对写入缓存器54b输出。
在图8时,在写入之后不接着读出,所以通过管道控制电路32的控制,地址选择电路44a把地址缓存器42a中存储的地址对数据存储器23Aa的地址输入端子输入。同样,地址选择电路44b把地址缓存器42b中存储的地址对数据存储器23Ab的地址输入端子输入。然后,从管道控制电路32对数据存储器23Aa输出写入请求(XWR0=“0”),从而把写入缓存器54a中存储的数据写入数据存储器23Aa。同样,从管道控制电路32对数据存储器23Ab输出写入请求(XWR1=“0”),从而把写入缓存器54b中存储的数据写入数据存储器23Ab。
图9是表示数据尺寸为32位,地址空间的地址为奇数时的写入动作的图。首先,在A阶段,地址生成电路33中生成对数据存储器23Aa、23Ab的写入地址。然后,在E1阶段,把对数据存储器23Aa的写入地址对地址总线BDAA0输出,把对数据存储器23Ab的写入地址对地址总线BDAA1输出。然后在E2阶段,对地址总线BDAA0输出的写入地址由地址寄存器41a取入,对地址总线BDAA1输出的写入地址由地址寄存器41b取入。此外,在E2阶段,对数据总线BDA[31:0]输出写入数据。此外,地址生成电路33在E1阶段把表示数据尺寸为32位的信息“0”、表示地址是奇数的信息“1”对设定寄存器51写入。然后,对设定寄存器51写入的信息在E2阶段由设定寄存器52取入。
然后,如果变为E2阶段的下一时钟周期,地址寄存器41a中存储的地址就由地址缓存器42a取入,地址寄存器41b中存储的地址就由地址缓存器42b取入。此外,写入数据选择电路53按照设定寄存器52中存储的信息,把对数据总线BDA的上级16位[31:16]输出的数据对写入缓存器54b输出,把对数据总线BDA的下级16位[15:0]输出的数据对写入缓存器54a输出。
在图9时,在写入之后不接着读出,所以通过管道控制电路32的控制,地址选择电路44a把地址缓存器42a中存储的地址对数据存储器23Aa的地址输入端子输入。同样,地址选择电路44b把地址缓存器42b中存储的地址对数据存储器23Ab的地址输入端子输入。然后,从管道控制电路32对数据存储器23Aa输出写入请求(XWR0=“0”),从而把写入缓存器54a中存储的数据写入数据存储器23Aa。同样,从管道控制电路32对数据存储器23Ab输出写入请求(XWR1=“0”),从而把写入缓存器54b中存储的数据写入数据存储器23Ab。
图10是表示数据尺寸为16位,地址空间的地址为偶数时的读出动作的图。地址空间的地址为偶数,所以在A阶段,在地址生成电路33生成对数据存储器23Aa的读出地址。然后,生成的读出地址在E1阶段对地址总线BDAA0输出。此外,地址生成电路33在E1阶段把表示数据尺寸为16位的信息“1”、表示地址是偶数的信息“0”对设定寄存器51写入。
在图10时,在读出之前不进行写入,所以通过管道控制电路32的控制,地址选择电路44a把对地址总线BDAA0输出的地址对数据存储器23Aa的地址输入端子输入。然后,如果从管道控制电路32对数据存储器23Aa输出读出请求(XRD0=“0”),就从数据存储器23Aa输出相应的数据。此外,在读出之前不进行写入,所以通过管道控制电路32的控制,读出数据选择电路45a把从数据存储器23Aa输出的数据对读出缓存器46a输出。然后,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46a中存储的数据向数据总线BDA的下级16位[15:0]输出。
图11是表示数据尺寸为16位,地址空间的地址为奇数时的读出动作的图。地址空间的地址为奇数,所以在A阶段,在地址生成电路33生成对数据存储器23Ab的读出地址。然后,生成的读出地址在E1阶段对地址总线BDAA1输出。此外,地址生成电路33在E1阶段把表示数据尺寸为16位的信息“1”、表示地址是奇数的信息“1”对设定寄存器51写入。
在图11时,在读出之前不进行写入,所以通过管道控制电路32的控制,地址选择电路44b把对地址总线BDAA1输出的地址对数据存储器23Ab的地址输入端子输入。然后,如果从管道控制电路32对数据存储器23Ab输出读出请求(XRD1=“0”),就从数据存储器23Ab输出相应的数据。此外,在读出之前不进行写入,所以通过管道控制电路32的控制,读出数据选择电路45b把从数据存储器23Ab输出的数据对读出缓存器46b输出。然后,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46b中存储的数据向数据总线BDA的下级16位[15:0]输出。
图12是表示数据尺寸为32位,地址空间的地址为偶数时的读出动作的图。首先,在A阶段,在地址生成电路33中生成对数据存储器23Aa、23Ab的读出数据。然后,在E1阶段,把对数据存储器23Aa的读出地址对地址总线BDAA0输出,把对数据存储器23Ab的读出地址对地址总线BDAA1输出。此外,地址生成电路33在E1阶段把表示数据尺寸为32位的信息“0”、表示地址是偶数的信息“0”对设定寄存器51写入。
在图12时,在读出之前不进行写入,所以通过管道控制电路32的控制,地址选择电路44a把对地址总线BDAA0输出的地址对数据存储器23Aa的地址输入端子输入。而且,如果从管道控制电路32对数据存储器23Aa输出读出请求(XRD0=“0”),就从数据存储器23Aa输出相应的数据。同样,地址选择电路44b把对地址总线BDAA1输出的地址对数据存储器23Ab的地址输入端子输入。而且,如果从管道控制电路32对数据存储器23Ab输出读出请求(XRD1=“0”),就从数据存储器23Ab输出相应的数据。此外,在读出之前不进行写入,所以通过管道控制电路32的控制,读出数据选择电路45a把从数据存储器23Aa输出的数据对读出缓存器46a输出。同样,读出数据选择电路45b把从数据存储器23Ab输出的数据对读出缓存器46b输出。然后,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46a中存储的数据向数据总线BDA的上级16位[31:16]输出,把读出缓存器46b中存储的数据向数据总线BDA的下级16位[15:0]输出。
图13是表示数据尺寸为32位,地址空间的地址为奇数时的读出动作的图。首先,在A阶段,在地址生成电路33中生成对数据存储器23Aa、23Ab的读出数据。然后,在E1阶段,把对数据存储器23Aa的读出地址对地址总线BDAA0输出,把对数据存储器23Ab的读出地址对地址总线BDAA1输出。此外,地址生成电路33在E1阶段把表示数据尺寸为32位的信息“0”、表示地址是奇数的信息“1”对设定寄存器51写入。
在图13时,在读出之前不进行写入,所以通过管道控制电路32的控制,地址选择电路44a把对地址总线BDAA0输出的地址对数据存储器23Aa的地址输入端子输入。而且,如果从管道控制电路32对数据存储器23Aa输出读出请求(XRD0=“0”),就从数据存储器23Aa输出相应的数据。同样,地址选择电路44b把对地址总线BDAA1输出的地址对数据存储器23Ab的地址输入端子输入。而且,如果从管道控制电路32对数据存储器23Ab输出读出请求(XRD1=“0”),就从数据存储器23Ab输出相应的数据。此外,在读出之前不进行写入,所以通过管道控制电路32的控制,读出数据选择电路45a把从数据存储器23Aa输出的数据对读出缓存器46a输出。同样,读出数据选择电路45b把从数据存储器23Ab输出的数据对读出缓存器46b输出。然后,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46b中存储的数据向数据总线BDA的上级16位[31:16]输出,把读出缓存器46a中存储的数据向数据总线BDA的下级16位[15:0]输出。
图14是表示数据尺寸为16位,地址空间的地址为偶数,接着对同一地址的写入动作的读出动作的图。地址空间的地址为偶数,所以在A阶段,在地址生成电路33中生成对于数据存储器23Aa的读出地址。然后,把生成的读出地址在E1阶段对地址总线BDAA0输出。此外,地址生成电路33在E1阶段把表示数据尺寸为16位的信息“1”、表示地址是偶数的信息“0”对设定寄存器51写入。
在图14时,在读出之前进行写入,所以通过管道控制电路32的控制,地址比较电路43a输出对地址总线BDAA0输出的地址和地址缓存器42a中存储的地址的比较结果。在图14时,这些地址相同,所以地址选择电路44a按照从地址比较电路43a输出的比较结果,把地址缓存器42a中存储的地址对数据存储器23Aa的地址输入端子输入。此外,读出数据选择电路45a按照从地址比较电路43a输出的比较结果,把写入缓存器54a中存储的数据对读出缓存器46a输出。然后,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46a中存储的数据向数据总线BDA的下级16位[15:0]输出。此外,如果从管道控制电路32对数据存储器23Aa输出写入请求(XWR0=“0”),就把写入缓存器54a中存储的数据对数据存储器23Aa写入。
图15是表示数据尺寸为16位,地址空间的地址为偶数,接着对不同地址的写入动作的读出动作的图。地址空间的地址为偶数,所以在A阶段,在地址生成电路33中生成对于数据存储器23Aa的读出地址。然后,把生成的读出地址在E1阶段对地址总线BDAA0输出。此外,地址生成电路33在E1阶段把表示数据尺寸为16位的信息“1”、表示地址是偶数的信息“0”对设定寄存器51写入。
在图15时,在读出之前进行写入,所以通过管道控制电路32的控制,地址比较电路43a输出对地址总线BDAA0输出的地址和地址缓存器42a中存储的地址的比较结果。在图15时,这些地址不同,所以地址选择电路44a按照从地址比较电路43a输出的比较结果,对地址总线BDAA0输出的地址对数据存储器23Aa的地址输入端子输入。如果从管道控制电路32对数据存储器23Aa输出读出请求(XRD0=“0”),就从数据存储器23Aa输出相应的数据。然后,读出数据选择电路45a按照从地址比较电路43a输出的比较结果,把从数据存储器23Aa输出的数据对读出缓存器46a输出。此外,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46a中存储的数据向数据总线BDA的下级16位[15:0]输出。须指出的是,地址缓存器42a中存储的地址和写入缓存器54a中存储的数据不清除地保持。然后,在从数据存储器23Aa进行数据读出之后的适宜的定时,把地址缓存器42a中存储的地址对数据存储器23Aa的地址输入端子输入,输出写入请求(XWR0=“0”),从而对数据存储器23Aa进行数据的写入。
图16是表示数据尺寸为16位,地址空间的地址为奇数,接着对同一地址的写入动作的读出动作的图。地址空间的地址为奇数,所以在A阶段,在地址生成电路33中生成对于数据存储器23Ab的读出地址。然后,把生成的读出地址在E1阶段对地址总线BDAA1输出。此外,地址生成电路33在E1阶段把表示数据尺寸为16位的信息“1”、表示地址是奇数的信息“1”对设定寄存器51写入。
在图16时,在读出之前进行写入,所以通过管道控制电路32的控制,地址比较电路43b输出对地址总线BDAA1输出的地址和地址缓存器42b中存储的地址的比较结果。在图16时,这些地址相同,所以地址选择电路44b按照从地址比较电路43b输出的比较结果,把地址缓存器42b中存储的地址对数据存储器23Ab的地址输入端子输入。此外,读出数据选择电路45b按照从地址比较电路43b输出的比较结果,把写入缓存器54b中存储的数据对读出缓存器46b输出。然后,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46b中存储的数据向数据总线BDA的下级16位[15:0]输出。此外,如果从管道控制电路32对数据存储器23Ab输出写入请求(XWR1=“0”),就把写入缓存器54b中存储的数据对数据存储器23Ab写入。
图17是表示数据尺寸为16位,地址空间的地址为奇数,接着对不同地址的写入动作的读出动作的图。地址空间的地址为奇数,所以在A阶段,在地址生成电路33中生成对于数据存储器23Ab的读出地址。然后,把生成的读出地址在E1阶段对地址总线BDAA1输出。此外,地址生成电路33在E1阶段把表示数据尺寸为16位的信息“1”、表示地址是奇数的信息“1”对设定寄存器51写入。
在图17时,在读出之前进行写入,所以通过管道控制电路32的控制,地址比较电路43b输出对地址总线BDAA1输出的地址和地址缓存器42b中存储的地址的比较结果。在图17时,这些地址不同,所以地址选择电路44b按照从地址比较电路43b输出的比较结果,对地址总线BDAA1输出的地址对数据存储器23Ab的地址输入端子输入。如果从管道控制电路32对数据存储器23Ab输出读出请求(XRD1=“0”),就从数据存储器23Ab输出相应的数据。然后,读出数据选择电路45b按照从地址比较电路43b输出的比较结果,把从数据存储器23Ab输出的数据对读出缓存器46b输出。此外,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46b中存储的数据向数据总线BDA的下级16位[15:0]输出。须指出的是,地址缓存器42b中存储的地址和写入缓存器54b中存储的数据不清除地保持。然后,在从数据存储器23Ab进行数据读出之后的适宜的定时,把地址缓存器42b中存储的地址对数据存储器23Ab的地址输入端子输入,输出写入请求(XWR1=“0”),从而对数据存储器23Ab进行数据的写入。
图18是表示数据尺寸为32位,地址空间的地址为偶数,接着对同一地址的写入动作的读出动作的图。首先在A阶段,在地址生成电路33生成对于数据存储器23Aa、23Ab的读出地址。然后,在E1阶段把对于数据存储器23Aa的读出地址对地址总线BDAA0输出,把对于数据存储器23Ab的读出地址对地址总线BDAA1输出。此外,地址生成电路33在E1阶段把表示数据尺寸为32位的信息“0”、表示地址是偶数的信息“0”对设定寄存器51写入。
在图18时,在读出之前进行写入,所以通过管道控制电路32的控制,地址比较电路43a输出对地址总线BDAA0输出的地址和地址缓存器42a中存储的地址的比较结果。在图18时,这些地址相同,所以地址选择电路44a按照从地址比较电路43a输出的比较结果,把地址缓存器42a中存储的地址对数据存储器23Aa的地址输入端子输入。此外,读出数据选择电路45a按照从地址比较电路43a输出的比较结果,把写入缓存器54a中存储的数据对读出缓存器46a输出。同样,地址比较电路43b输出对地址总线BDAA1输出的地址和地址缓存器42b中存储的地址的比较结果。在图18时,这些地址相同,所以地址选择电路44b按照从地址比较电路43b输出的比较结果,把地址缓存器42b中存储的地址对数据存储器23Ab的地址输入端子输入。此外,读出数据选择电路45b按照从地址比较电路43b输出的比较结果,把写入缓存器54b中存储的数据对读出缓存器46b输出。然后,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46a中存储的数据向数据总线BDA的上级16位[31:16]输出,把读出缓存器46b中存储的数据向数据总线BDA的下级16位[15:0]输出。此外,如果从管道控制电路32对数据存储器23Aa输出写入请求(XWR0=“0”),就把写入缓存器54a中存储的数据对数据存储器23Aa写入。同样,如果从管道控制电路32对数据存储器23Ab输出写入请求(XWR1=“0”),就把写入缓存器54b中存储的数据对数据存储器23Ab写入。
图19是表示数据尺寸为32位,地址空间的地址为偶数,接着对不同地址的写入动作的读出动作的图。首先在A阶段,在地址生成电路33生成对于数据存储器23Aa、23Ab的读出地址。然后,在E1阶段把对于数据存储器23Aa的读出地址对地址总线BDAA0输出,把对于数据存储器23Ab的读出地址对地址总线BDAA1输出。此外,地址生成电路33在E1阶段把表示数据尺寸为32位的信息“0”、表示地址是偶数的信息“0”对设定寄存器51写入。
在图19时,在读出之前进行写入,所以通过管道控制电路32的控制,地址比较电路43a输出对地址总线BDAA0输出的地址和地址缓存器42a中存储的地址的比较结果。在图19时,这些地址不同,所以地址选择电路44a按照从地址比较电路43a输出的比较结果,把对地址总线BDAA0输出的地址对数据存储器23Aa的地址输入端子输入。此外,如果从管道控制电路32对数据存储器23Aa输出读出请求(XRD0=“0”),就从数据存储器23Aa输出相应的数据。同样,地址比较电路43b输出对地址总线BDAA1输出的地址和地址缓存器42b中存储的地址的比较结果。在图19时,这些地址不同,所以地址选择电路44b按照从地址比较电路43b输出的比较结果,把对地址总线BDAA1输出的地址对数据存储器23Ab的地址输入端子输入。此外,如果从管道控制电路32对数据存储器23Ab输出读出请求(XRD1=“0”),就从数据存储器23Ab输出相应的数据。
然后,读出数据选择电路45a按照从地址比较电路43a输出的比较结果,把从数据存储器23Aa输出的数据对读出缓存器46a输出。同样,读出数据选择电路45b按照从地址比较电路43b输出的比较结果,把从数据存储器23Ab输出的数据对读出缓存器46b输出。此外,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46a中存储的数据向数据总线BDA的上级16位[31:16]输出,把读出缓存器46b中存储的数据向数据总线BDA的下级16位[15:0]输出。须指出的是,地址缓存器42a、42b中存储的地址和写入缓存器54a、54b中存储的数据不清除地保持。然后,在从数据存储器23Aa、23Ab进行数据的读出之后的适宜的定时,把地址缓存器42a、42b中存储的地址分别对数据存储器23Aa、23Ab的地址输入端子输入,输出写入请求(XWR0=“0”、XWR1=“0”),从而对数据存储器23Aa、23Ab进行数据的写入。
图20是表示数据尺寸为32位,地址空间的地址为奇数,接着对同一地址的写入动作的读出动作的图。首先在A阶段,在地址生成电路33生成对于数据存储器23Aa、23Ab的读出地址。然后,在E1阶段把对于数据存储器23Aa的读出地址对地址总线BDAA0输出,把对于数据存储器23Ab的读出地址对地址总线BDAA1输出。此外,地址生成电路33在E1阶段把表示数据尺寸为32位的信息“0”、表示地址是奇数的信息“1”对设定寄存器51写入。
在图20时,在读出之前进行写入,所以通过管道控制电路32的控制,地址比较电路43a输出对地址总线BDAA0输出的地址和地址缓存器42a中存储的地址的比较结果。在图20时,这些地址相同,所以地址选择电路44a按照从地址比较电路43a输出的比较结果,把地址缓存器42a中存储的地址对数据存储器23Aa的地址输入端子输入。此外,读出数据选择电路45a按照从地址比较电路43a输出的比较结果,把写入缓存器54a中存储的数据对读出缓存器46a输出。同样,地址比较电路43b输出对地址总线BDAA1输出的地址和地址缓存器42b中存储的地址的比较结果。在图20时,这些地址相同,所以地址选择电路44b按照从地址比较电路43b输出的比较结果,把地址缓存器42b中存储的地址对数据存储器23Ab的地址输入端子输入。此外,读出数据选择电路45b按照从地址比较电路43b输出的比较结果,把写入缓存器54b中存储的数据对读出缓存器46b输出。然后,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46b中存储的数据向数据总线BDA的上级16位[31:16]输出,把读出缓存器46a中存储的数据向数据总线BDA的下级16位[15:0]输出。如果从管道控制电路32对数据存储器23Aa输出写入请求(XWR0=“0”),就把写入缓存器54a中存储的数据对数据存储器23Aa写入。同样,如果从管道控制电路32对数据存储器23Ab输出写入请求(XWR1=“0”),就把写入缓存器54b中存储的数据对数据存储器23Ab写入。
图21是表示数据尺寸为32位,地址空间的地址为奇数,接着对不同地址的写入动作的读出动作的图。首先在A阶段,在地址生成电路33生成对于数据存储器23Aa、23Ab的读出地址。然后,在E1阶段把对于数据存储器23Aa的读出地址对地址总线BDAA0输出,把对于数据存储器23Ab的读出地址对地址总线BDAA1输出。此外,地址生成电路33在E1阶段把表示数据尺寸为32位的信息“0”、表示地址是奇数的信息“1”对设定寄存器51写入。
在图21时,在读出之前进行写入,所以通过管道控制电路32的控制,地址比较电路43a输出对地址总线BDAA0输出的地址和地址缓存器42a中存储的地址的比较结果。在图21时,这些地址不同,所以地址选择电路44a按照从地址比较电路43a输出的比较结果,把对地址总线BDAA0输出的地址对数据存储器23Aa的地址输入端子输入。此外,如果从管道控制电路32对数据存储器23Aa输出读出请求(XRD0=“0”),就从数据存储器23Aa输出相应的数据。同样,地址比较电路43b输出对地址总线BDAA1输出的地址和地址缓存器42b中存储的地址的比较结果。在图21时,这些地址不同,所以地址选择电路44b按照从地址比较电路43b输出的比较结果,把对地址总线BDAA1输出的地址对数据存储器23Ab的地址输入端子输入。此外,如果从管道控制电路32对数据存储器23Ab输出读出请求(XRD1=“0”),就从数据存储器23Ab输出相应的数据。
然后,读出数据选择电路45a按照从地址比较电路43a输出的比较结果,把从数据存储器23Aa输出的数据对读出缓存器46a输出。同样,读出数据选择电路45b按照从地址比较电路43b输出的比较结果,把从数据存储器23Ab输出的数据对读出缓存器46b输出。此外,读出数据合成电路47按照设定寄存器51中存储的信息,把读出缓存器46b中存储的数据向数据总线BDA的上级16位[31:16]输出,把读出缓存器46a中存储的数据向数据总线BDA的下级16位[15:0]输出。须指出的是,地址缓存器42a、42b中存储的地址和写入缓存器54a、54b中存储的数据不清除地保持。然后,在从数据存储器23Aa、23Ab进行数据的读出之后的适宜的定时,把地址缓存器42a、42b中存储的地址分别对数据存储器23Aa、23Ab的地址输入端子输入,输出写入请求(XWR0=“0”、XWR1=“0”),从而对数据存储器23Aa、23Ab进行数据的写入。
图22是表示读出动作时的定时的图。这里,把如图6所示那样进行读出动作的情形为例进行说明。首先,以A阶段的时钟的上升(第一定时)为契机,在地址生成电路33生成读出地址,在时刻t1对地址总线BDAA0输出地址。然后,以时刻t2的时钟的下一上升(第二定时)为契机,对数据存储器23Aa输出读出请求(XRD0=“0”),从时刻t3,从数据存储器23Aa开始输出相应的数据。以时刻t4的时钟的下一上升为契机,从数据存储器23Aa输出的数据由读出缓存器46a取入。以时刻t5的时钟的下一上升为契机,把读出缓存器46a中存储的数据对数据总线BDA的下级16位[15:0]输出,存储到寄存器24。然后,寄存器24中存储的数据在基于运算电路25的运算处理中使用。
在DSP10中,在E1阶段的前一个时钟周期即A阶段,读出地址向地址总线BDAA输出。因此,与以E1阶段的时钟的上升为契机,把读出地址对地址总线BDAA输出,以E1阶段的时钟的下降为契机,对数据存储器23Aa、23Ab输出数据的读出请求的情形比较,能使设置读出地址的时间具有余裕。此外,在DSP10中,从数据存储器23Aa、23Ab输出的数据在E2阶段由读出缓存器取入。因此,与以E1阶段的时钟的下降为契机,对数据存储器23Aa、23Ab输出数据的读出请求,以E2阶段的时钟的上升为契机,由寄存器24取入数据的情形比较,能使设置读出数据的存储的时间具有余裕。而且,在DSP10中,设置时间上产生余裕的结果是能提高时钟的频率,能提高DSP10的处理速度。
图23是表示写入动作时的图。这里,以如图15所示那样在写入动作之后接着进行对不同的地址的读出动作的情形为例,进行说明。首先,在写入动作的E2阶段(第一定时)即时刻t6,由地址寄存器41a取入地址,对数据总线BDA的下级16位[15:0]输出写入数据。然后,以时刻t7的时钟的下一上升(第二定时)为契机,地址寄存器41a中存储的地址由地址缓存器42a取入,对数据总线BDA的下级16位[15:0]输出的数据由写入缓存器54a取入。而且,在图15所示的例子中,写入地址和读出地址不同,所以以时刻t8的时钟的下一上升(读出动作的E1阶段开始的定时)为契机,对数据存储器23Aa输出读出请求(XRD0=“0”),从数据存储器23Aa输出相应的数据。须指出的是,地址缓存器42a中存储的地址和写入缓存器54a中存储的数据不清除地保持。然后,以时刻t9的下一时钟的上升为契机,把地址缓存器42a中存储的地址对数据存储器23Aa的地址输入端子输入,对数据存储器23Aa输出写入请求(XWR0=“0”),从而对数据存储器23Aa写入数据。须指出的是,地址不同的读出动作连续多个时,在读出动作结束之前,保持地址缓存器42a中存储的地址和写入缓存器54a中存储的数据,在读出动作结束后,进行向数据存储器23Aa的写入。
在DSP10中,在E2阶段的下一时钟周期,由地址缓存器42a、42b取入地址,由写入缓存器54a、54b取入写入数据。然后,把此后的时钟周期的时钟的上升作为契机,对数据存储器23Aa、23Ab输出写入请求。因此,与以E2阶段的时钟的上升为契机,开始对数据存储器23Aa、23Ab的写入地址和写入数据的输出,以E2阶段的时钟的下降为契机,输出对数据存储器23Aa、23Ab的写入请求的情形比较,能使设置写入地址和写入数据的时间具有余裕。而且,在DSP10中,设置时间上产生余裕的结果是能提高时钟的频率,能提高DSP10的处理速度。
此外,在DSP10中,接着写入动作,进行对不同地址的读出动作时,优先进行对数据存储器23Aa的读出访问。此外,在DSP10中,接着写入动作,进行对同一地址的读出动作时,把写入缓存器54a、54b中存储的数据作为读出数据输出,并且把写入缓存器54a、54b中存储的数据对数据存储器23Aa、23Ab写入。即在DSP10中,不会由于先行的写入动作而让后续的读出动作等待,运算电路25的数据等待时间缩短,能提高处理速度。
以上说明本发明的实施例,如上所述,在DSP10中,从由2个数据存储器23Aa、23Ab的至少一方输出的数据,根据关于读出数据的数据尺寸的信息和关于对于读出数据的地址空间的地址的信息,生成读出数据,输出。即能只从数据存储器23Aa、23Ab的任意一方读出数据,也能从数据存储器23Aa、23Ab双方读出数据。而且,在从数据存储器23Aa、23Ab双方读出数据时,把读出的2个数据作为对于构成运算电路25的一个乘法累加器的2个输入数据使用。从存储器访问电路21B也同样能同时读出2个数据,所以在DSP10全体,能同时读出4个数据。因此,能同时进行构成运算电路25的2个乘法累加器的计算。在DSP10中,能实现高效的存储器访问,DSP10的运算处理变得高速化。
此外,在DSP10的存储器访问电路21A,在数据存储器23Aa存储地址空间的偶数地址的数据,在数据存储器23Ab存储地址空间的奇数地址的数据。而且,读出数据合成电路47按照读出数据的地址是偶数还是奇数、读出数据的数据尺寸是16位(N位)还是32位(2N位),生成读出数据。即在DSP10中,能通过存储器访问电路21A读出一个16位的数据,也能同时读出2个16位的数据。同样,在DSP10中,能通过存储器访问电路21B读出一个16位的数据,也能同时读出2个16位的数据。即在DSP10中,最多能同时读出4个16位的数据。在DSP10中,实现高效的存储器访问,从而能提高处理速度。
此外,在DSP10中,根据关于写入数据的数据尺寸的信息和关于对于写入数据的地址空间的地址的信息,能对数据存储器23Aa、23Ab的至少一方写入数据。即对数据存储器23Aa、23Ab的任意一方能写入数据,也能对数据存储器23Aa、23Ab双方写入数据。通过存储器访问电路21B也同样能写入数据,所以在DSP10全体,能同时写入4个数据。在DSP10中,能实现高效的存储器访问,能提高处理速度。
此外,在DSP10的存储器访问电路21A,在数据存储器23Aa存储地址空间的偶数地址的数据,在数据存储器23Ab存储地址空间的奇数地址的数据。而且,写入数据选择电路53按照写入数据的地址是偶数还是奇数、写入数据的数据尺寸是16位(N位)还是32位(2N位),把对数据总线BDA输出的数据对写入缓存器54a、54b输出。即在DSP10中,能通过存储器访问电路21A写入一个16位的数据,也能同时写入2个16位的数据。同样,在DSP10中,能通过存储器访问电路21B写入一个16位的数据,也能同时写入2个16位的数据。因此,在DSP10中,最多能同时写入4个16位的数据。在DSP10中,实现高效的存储器访问,从而能提高处理速度。
此外,在DSP10的存储器访问电路21A,接着写入动作进行读出动作时,进行控制,从而不会由于写入动作而让后续的读出动作等待。即接着写入动作进行读出动作时,在写入地址和读出地址不同时,在向数据存储器23Aa、23Ab的写入之前,进行从数据存储器23Aa、23Ab的读出。此外,在写入地址和读出地址相同时,从写入缓存器54a、54b中存储的数据生成读出数据,并且进行向数据存储器23Aa、23Ab的写入。据此,接着写入动作进行读出动作时,不会由于先行的写入动作而让后续的读出动作等待,运算电路25的数据等待时间缩短。即在DSP10,实现高效的存储器访问,从而能提高处理速度。
此外,在DSP10的存储器访问电路21A,在读出动作时的读出地址的设置时间上存在余裕。因此,能提高时钟的频率,能提高DSP10的处理速度。
此外,在DSP10的存储器访问电路21A,在写入动作的写入地址和写入数据的设置时间上存在余裕。因此,能提高时钟的频率,能提高DSP10的处理速度。
须指出的是,所述实施例是为了容易理解本发明,并不用于限定解释本发明。本发明在不脱离其宗旨的前提下,能变更、改良,并且在本发明中包含其等价物。
Claims (7)
1.一种存储器访问装置,访问第一和第二存储器,
包括:
地址输出部,根据读出数据的数据尺寸和DSP的地址空间中的地址,输出对于所述第一和第二存储器的至少一方的读出地址;
访问请求输出部,根据所述读出数据的所述数据尺寸和所述DSP的地址空间中的地址,对所述第一和第二存储器的至少一方输出读出请求;
数据信息输出部,输出所述读出数据的所述数据尺寸是N位还是2N位的信息和所述DSP的地址空间中的地址是偶数还是奇数的信息;和
读出数据输出部,按照从所述地址输出部输出的所述读出地址、从所述访问请求输出部输出的所述读出请求,从由所述第一和第二存储器的至少一方输出的数据,根据从所述数据信息输出部输出的关于所述数据尺寸的信息和关于所述DSP的地址空间中的地址的信息,生成所述读出数据,并输出;
在所述第一存储器中存储所述DSP的地址空间的偶数地址的N位宽度的数据,在所述第二存储器中存储所述DSP地址空间的奇数地址的N位宽度的数据。
2.根据权利请求1所述的存储器访问装置,其特征在于:
所述地址输出部,在所述读出数据的所述数据尺寸是N位时,将与所述地址空间的所述地址对应的所述读出地址输出到所述第一或第二存储器;
所述地址输出部,在所述读出数据的所述数据尺寸是2N位时,将与所述地址空间的所述地址对应的所述读出地址输出到所述第一和第二存储器;
所述读出数据输出部,在所述读出数据的所述数据尺寸是N位时,将从所述第一或第二存储器输出的数据作为所述读出数据输出;
所述读出数据输出部,在所述读出数据的所述数据尺寸是2N位,所述地址空间中的所述地址是偶数地址时,将从所述第一存储器输出的数据作为上级位,将从所述第二存储器输出的数据作为下级位,生成所述读出数据,并输出;
在所述读出数据的所述数据尺寸为2N位,所述地址空间中的所述地址是奇数地址时,将从所述第二存储器输出的数据作为上级位,将从所述第一存储器输出的数据作为下级位,生成所述读出数据,并输出。
3.根据权利请求1所述的存储器访问装置,其特征在于:
所述地址输出部根据写入数据的数据尺寸和DSP的地址空间中的地址,输出对于所述第一以及第二存储器的至少一方的写入地址;
所述访问请求输出部根据所述写入数据的所述数据尺寸和所述DSP的地址空间中的地址,对所述第一以及第二存储器的至少一方输出写入请求;
所述数据信息输出部输出关于所述写入数据的所述数据尺寸的信息和关于所述DSP的地址空间中的地址的信息;
还具有写入数据输出部,根据从所述数据信息输出部输出的关于所述数据尺寸的信息和关于所述DSP的地址空间中的地址的信息,对所述第一以及第二存储器的至少一方输出所述写入数据。
4.根据权利请求3所述的存储器访问装置,其特征在于:
在所述第一存储器中存储所述地址空间的偶数地址的N位宽度的数据,在所述第二存储器中存储所述地址空间的奇数地址的N位宽度的数据;
所述地址输出部,在所述写入数据的所述数据尺寸为N位时,将与所述地址空间的所述地址对应的所述写入地址输出到所述第一或第二存储器;
所述地址输出部,在所述写入数据的所述数据尺寸为2N位时,将与所述地址空间的所述地址对应的所述写入地址输出到所述第一和第二存储器;
所述写入数据输出部,在所述写入数据的所述数据尺寸为N位,所述地址空间的所述地址为偶数地址时,将所述写入数据输出到所述第一存储器;
所述写入数据输出部,在所述写入数据的所述数据尺寸为N位,所述地址空间的所述地址为奇数地址时,将所述写入数据输出到所述第二存储器输出;
所述写入数据输出部,在所述写入数据的所述数据尺寸为2N位,所述地址空间的所述地址为偶数地址时,将所述写入数据的上级N位输出到所述第一存储器,将所述写入数据的下级N位输出到所述第二存储器;
所述写入数据输出部,在所述写入数据的所述数据尺寸为2N位,所述地址空间的所述地址为奇数地址时,将所述写入数据的上级N位输出到所述第二存储器,将所述写入数据的下级N位输出到所述第一存储器。
5.根据权利请求3或4所述的存储器访问装置,其特征在于:
还具有:
写入地址存储部,存储从所述地址输出部输出的所述写入地址;
写入数据存储部,将从所述写入数据输出部输出的所述写入数据在写入所述第一或第二存储器之前存储;和
地址选择电路,从所述地址输出部输出的所述读出地址和所述写入地址存储部中存储的所述写入地址不同时,将所述读出地址输出到所述第一或第二存储器;
所述读出数据输出部,在从所述地址输出部输出的所述读出地址和所述写入地址存储部中存储的所述写入地址不同时,从由所述第一或第二存储器的至少一方输出的数据生成所述读出数据,并输出,在从所述地址输出部输出的所述读出地址和所述写入地址存储部中存储的所述写入地址相同时,输出所述写入数据存储部中存储的所述写入数据。
6.根据权利请求1或2所述的存储器访问装置,其特征在于:
所述地址输出部在时钟从一方的逻辑电平向另一方的逻辑电平变化的第一定时,输出所述读出地址;
所述访问请求输出部在所述第一定时之后,在所述时钟从所述一方的逻辑电平向所述另一方的逻辑电平变化的第二定时,输出所述读出请求。
7.根据权利请求5所述的存储器访问装置,其特征在于:
所述地址输出部在时钟从一方的逻辑电平向另一方的逻辑电平变化的第一定时,输出所述写入数据;
所述访问请求部在所述第一定时之后,在所述时钟从所述一方的逻辑电平向所述另一方的逻辑电平变化的第二定时,将从所述地址输出部输出的所述写入地址存储到所述地址存储部中,并且将从所述写入数据输出部输出的所述写入数据存储到所述写入数据存储部中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006256162A JP2008077418A (ja) | 2006-09-21 | 2006-09-21 | メモリアクセス装置 |
JP2006256162 | 2006-09-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101149713A CN101149713A (zh) | 2008-03-26 |
CN100527109C true CN100527109C (zh) | 2009-08-12 |
Family
ID=39226397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101366496A Expired - Fee Related CN100527109C (zh) | 2006-09-21 | 2007-07-18 | 存储器访问装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7702860B2 (zh) |
JP (1) | JP2008077418A (zh) |
KR (1) | KR20080027175A (zh) |
CN (1) | CN100527109C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521142B (zh) * | 2011-12-13 | 2015-05-13 | 曙光信息产业(北京)有限公司 | 一种提高大容量、多内存设备访问效率的方法 |
CN102523374B (zh) * | 2011-12-19 | 2014-02-19 | 北京理工大学 | 一种实时并行的电子稳像系统设计方法 |
US9256384B2 (en) * | 2013-02-04 | 2016-02-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for reducing write latency in a data storage system by using a command-push model |
JP6239078B1 (ja) * | 2016-11-04 | 2017-11-29 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置および読出し方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5717394A (en) * | 1993-02-10 | 1998-02-10 | Ricoh Company Ltd. | Method and apparatus for encoding and decoding data |
JP3479385B2 (ja) * | 1995-06-29 | 2003-12-15 | 東芝マイクロエレクトロニクス株式会社 | 情報処理装置 |
JPH10143448A (ja) | 1996-11-14 | 1998-05-29 | Ricoh Co Ltd | メモリシステム |
DE60019081D1 (de) * | 2000-01-31 | 2005-05-04 | St Microelectronics Srl | Verschachtelter Burst-Speicher mit Burst-Zugriff bei synchronen Lesezyklen, wobei die beiden untergeordneten Speicherfelder unabhängig lesbar sind mit wahlfreiem Zugriff während asynchroner Lesezyklen |
JP2006190389A (ja) | 2005-01-06 | 2006-07-20 | Sanyo Electric Co Ltd | データ処理用集積回路 |
-
2006
- 2006-09-21 JP JP2006256162A patent/JP2008077418A/ja active Pending
-
2007
- 2007-07-18 CN CNB2007101366496A patent/CN100527109C/zh not_active Expired - Fee Related
- 2007-08-01 US US11/832,536 patent/US7702860B2/en active Active
- 2007-09-20 KR KR1020070095856A patent/KR20080027175A/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
US7702860B2 (en) | 2010-04-20 |
US20080077754A1 (en) | 2008-03-27 |
CN101149713A (zh) | 2008-03-26 |
KR20080027175A (ko) | 2008-03-26 |
JP2008077418A (ja) | 2008-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5658556B2 (ja) | メモリ制御装置、及びメモリ制御方法 | |
US8094157B1 (en) | Performing an occurence count of radices | |
US7689541B1 (en) | Reordering data using a series of offsets | |
CN101847986B (zh) | 一种实现fft/ifft变换的电路及方法 | |
CN101083643A (zh) | 一种低存储器开销的混合基fft处理器及其方法 | |
CN102999313A (zh) | 一种基于蒙哥马利模乘的数据处理方法 | |
CN100527109C (zh) | 存储器访问装置 | |
WO2018027706A1 (zh) | Fft处理器及运算方法 | |
CN112307421A (zh) | 一种基4频率抽取快速傅里叶变换处理器 | |
CN103064948A (zh) | 基于散列链表的内容寻址方法及相应的存储器电路 | |
US8990741B2 (en) | Circuit design support device, circuit design support method and program | |
CN102567243B (zh) | 存储设备的刷新处理方法和存储设备 | |
CN102253925A (zh) | 一种矩阵转置的方法 | |
CN117271953A (zh) | 一种用于优化快速傅里叶变换的存内计算加速电路及方法 | |
CN110060196B (zh) | 图像处理方法及装置 | |
CN104317554B (zh) | 用于simd处理器的寄存器文件数据读写装置和方法 | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
CN102663051A (zh) | 搜索内容可寻址存储器的方法和系统 | |
JP2016033818A (ja) | データ処理方法、装置、およびシステム | |
CN101819608B (zh) | 一种微处理器指令级随机验证中加速取指的装置和方法 | |
CN110337637B (zh) | 数据处理方法和设备 | |
CN106649136B (zh) | 一种数据存储方法和存储装置 | |
CN113448624A (zh) | 数据存取方法及装置、系统、ai加速器 | |
JP2006293741A (ja) | プロセッサ | |
CN111368250A (zh) | 基于傅里叶变换/逆变换的数据处理系统、方法及设备 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090812 Termination date: 20100718 |