CN1133454A - 半导体集成电路 - Google Patents
半导体集成电路 Download PDFInfo
- Publication number
- CN1133454A CN1133454A CN95120103.4A CN95120103A CN1133454A CN 1133454 A CN1133454 A CN 1133454A CN 95120103 A CN95120103 A CN 95120103A CN 1133454 A CN1133454 A CN 1133454A
- Authority
- CN
- China
- Prior art keywords
- data
- instruction
- queue
- bus
- integrated circuit
- 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.)
- Pending
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 113
- 230000015572 biosynthetic process Effects 0.000 claims description 132
- 238000005755 formation reaction Methods 0.000 claims description 132
- 230000005055 memory storage Effects 0.000 claims description 56
- 241001269238 Data Species 0.000 claims description 5
- 238000000034 method Methods 0.000 abstract description 10
- 230000006872 improvement Effects 0.000 abstract description 7
- 230000008569 process Effects 0.000 abstract description 5
- 238000003860 storage Methods 0.000 description 30
- 230000014509 gene expression Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Microcomputers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
Abstract
一种半导体集成电路,一次可处理n位指令或数据(n是整数,n>1),该半导体集成电路具有存储(n×m)位的指令或数据的队列,这些指令或数据是通过指令总线或数据总线从一个外部存储器那里接收到的。因此有可能实现半导体集成电路的性能改进,并且还可能提供低造价的半导体集成电路。
Description
本发明涉及半导体集成电路,具体来说涉及改善半导体集成电路性能的技术。
随着制造半导体器件技术的迅速进展,微处理器的性能也随之有了巨大的改进。另一方面,存储集成度也得到了改善,但存取性能却没有得到很大的提高。为此,微处理器和存储器之间的性能差异变得日益加大,因此即使一个系统配有高性能的微处理器,也难以在整体上更多地改进系统的性能。因为微处理器总是要和存储器进行数据传递的,所以耗费时间的存储器存取操作妨碍了微处理器的有效内部处理操作。因此,有必要抑制因存储器存取操作引起的性能下降并提高系统的整体性能。
图29表示一个背景技术的半导体集成电路,构造该集成电路的目的是消除微处理器和存储器之间的性能差异。在图29中,标号1、2、3分别代表存储器、微处理器、和总线控制器。在总线控制器3的内部有一个控制单元4和一个寄存器5。图29表示的是当微处理2的内部总线的总线宽度和外部总线(如,地址总线、数据总线)的总线宽度不同时改善数据传递效率的一个典型的结构。例如,现在假定:较宽总线的宽度为16位,较窄总线的宽度为8位。当从较窄总线向较宽总线传递数据时,首先在寄存器5中存储来自较窄总线的8位数据,并且接收来自较窄总线的另一个8位数据以构成一个16位数据,然后将该16位数据传送到较宽总线。当从较宽总线向较窄总线进行数据传递时,将来自较宽总线的16位数据分成两个8位数据,然后向较窄总线传送每一个8位数据。
因此,在背景技术的半导体集成电路中,由于总线控制器和微处理器各自独立地操作,因此不可能实现计及微处理器的内部处理操作的寄存器控制。这就会引起半导体集成电路性能的下降。例如,当执行一个分支指令时或进行分支转移时,不可能在送数延迟期间消除存入寄存器中的数据,或者不可能完成不用数据填充寄存器这样的内部处理。此外,微处理器难以通过预先获取多个指令在内部完成动态调度。动态调度在这里指的是改变存储在一个队列中的指令的执行顺序,通过动态调度可毫无困难地得到性能的改进。
但在背景技术的半导体集成电路中,在微处理器外部对数据分割等提供控制功能,将使半导体集成电路的元件数增多,并且使制造成本增加。
本发明涉及一种半导体集成电路。按本发明的第一方面,半导体集成电路包括:一个芯片,用于以n位为单位(n是大于1的整数)处理第一数据;至少一个(n×m位宽度的(m>1)一个队列,用于从外部存储器接收等于或小于(n×m)位宽度的第二数据,并在这里存储第二数据;以及一个多路转换器,用于从该至少一个的队列接收第二数据,并向芯片有选择地输出第二数据中的n位,以此作为第一数据。
最好,该至少一个队列包括p个队列(p是大于1的整数),p个队列彼此串接,p个队列构成一个队列组,并且半导体集成电路进一步还包括一个队列控制部分,用于通过从P个队列中的一个队列向下一个队列依次移动第二数据向多路转换器传送第二数据。
最好,半导体集成电路进一步还包括(n×m)位宽度的一个总线,用于从外部存储器向队列组传送第二数据。
最好,半导体集成电路进一步还包括一个插在该总线某个中间部位的对准器。
最好,第二数据是可变长度数据,半导体集成电路进一步还包括一个选择器,用于向最靠近该总线的一个队列的规定存储位置输出第二数据。
还是最好,该半导体集成电路进一步还包括一个插在该总线某个中间位置的超高速缓冲存储器。
按本发明的第二方面,半导体集成电路包括:(a)一个芯片,用于以n位为单位(n是大于1的整数)处理第一指令或第一数据;(b)一个指令队列经组,包括:(b-1)(n×m)位宽度的第一指令队列(m>1),用于从外部存储器接收等于或小于(n×m)位宽度的第二指令,并且在这里存储第二指令;以及(b-2)(n×m)位宽度的第S指令队列(1<s≤p,p是大于1的整数),用于从第(s-1)指令队列接收第二指令,并且在这里存储第二指令,该指令队列组具有串接的第一至第p指令队列;(c)一个数据队列组,包括:(c-1)(n×m)位宽度(m>1)的第一数据队列,用于从外部存储器接收等于或小于(n×m)位宽度的第二数据,并在这里存储第二数据;以及(c-2)(n×m)位宽度的第t数据队列(1<t≤q,q是大于1的整数),用于从第(t-1)数据队列接收第二数据,并在这里存储第二数据,该数据队列组具有串接的第一至第q数据队列;(d)一个队列控制部分,用于分别依次移动指令队列组和数据队列组中的第二指令和第二数据;(e)第一多路转换器,用于从第P指令队列接收第二指令,并且向芯片有选择地输出第二指令中的n位,以此作为第一指令;以及(f)第二多路转换器,用于从第q数据队列接收第二数据,并且向芯片有选择地输出第二数据中的n位,以此作为第一数据。
最好,第二指令和第二数据是可变长度数据,并且半导体集成电路进一步还包括:(g)插在指令队列组和外部存储器之间的第一选择器,用于向第一指令队列的规定存储位置输出第二指令;以及(h)插在数据队列组和外部存储器之间的第二选择器,用于向第一数据队列的规定存储位置输出第二数据。
最好,半导体集成电路进一步还包括:(g)一个指令总线,它连接外部存储器和第一指令队列,用于传送第二指令;以及(h)一个数总线,它连接外部存储器和第一数据队列,用于传送第二数据。
最好,半导体集成电路进一步还包括一个对准器,它插在指令总线和数据总线至少二者之一中的某个中间位置。
还是最好,把外部存储器分为一个指令存储器和一个数据存储器,指令总线和数据总线分别连接到指令存储器和数据存储器。
按本发明的第三方面,半导体集成电路包括:(a)一个芯片,用于以n位为单位(n是大于1的整数)处理第一指令或第一数据;(b)一个指令队列组,包括:(b-1)n位宽度的第一指令队列,用于从外部存储器接收在第二指令中的n位,并在这里存储第二指令中的n位;以及(b-2)n位宽度的第s指令队列(1<s≤p,p是大于1的整数),用于从第(s-1)指令队列接收第二指令中的n位,并在这里存储第二指令的n位,指令队列组具有串接的第一至第p指令队列;(c)一个数据队列组,包括:(c-1)n位宽度的第一数据队列,用于从外部存储器接收第二数据中的n位,并在这里存储第二数据中的n位;以及(c-2)n位宽度的第t数据队列(1<t≤q,q是大于1的整数),用于从第(t-1)数据队列接收第二数据中的n位,并在这里存储第二数据中的n位,数据队列组具有串接的第一至第q数据队列;(d){n×(m-1)}位宽度的公用队列组,用于接收第二指令和第二数据,并在这里存储它们;(e)一个队列控制部分,用于分别依次移动指令队列组和数据队列组以及公用队列组中的第二指令和第二数据;(f)n位宽度的第一总线,它将外部存储器连到第一指令队列和第一数据队列,用于传送第二指令和第二数据;(g){n×(m-1)}位宽度的第二总线,它连接外部存储器和公用队列组,用于传送第二指令和第二数据;(h)第一多路转换器,用于从指令队列组并且从公用队列组接收第二指令,并且向芯片有选择地输出第二指令中的n位,以此作为第一指令;以及(i)第二多路转换器,用于从数据队列组并且从公用队列组接收第二数据,并且向芯片有选择地输出第二数据中的n位,以此作为第一数据。
最好,半导体集成电路进一步还包括(j)一个插在第二总线的某个中间部位的超高速缓冲存储器。
按本发明的第四方面,半导体集成电路包括:(a)一个芯片,用于以n位为单位(n是大于1的整数)处理第一指令或第一数据;(b)一个指令队列组,包括:(b-1)(n×m)位宽度的第一指令队列,用于从外部存储器接收(n×m)位或小于(n×m)位宽度的第二指令,并且在这里存储第二指令;以及(b-2)(n×m)位宽度的第s指令队列(1<s≤p,p是大于1的整数),用于从第(s-1)指令队列接收第二指令,并在这里存储第二指令,该指令队列组具有串接的第一至第P指令队列;(c)一个数据队列组,包括:(c-1)n位宽度的第一数据队列,用于从外部存储器接收n位宽度的第二数据,并在这里存储第二数据;以及(c-2)n位宽度的第t数据队列(1<t≤q,q是大于1的整数),用于从第(t-1)数据队列接收第二数据,并且在这里存储第二数据,该数据队列组具有串接的第一至第q数据队列;(d)一个队列控制部分,用于分别依次移动指令队列组和数据队列组中的第二指令和第二数据;以及(e)一个多路转换器,用于从第p指令队列接收第二指令,并且向芯片有选择地输出第二指令中的n位,以此作为第一指令,并且从第q数据队列获得第一数据。
最好,半导体集成电路进一步还包括:(f)一个指令总线,它连接外部存储器和第一指令队列,用于传送第二指令;以及(g)一个数据总线,它连接外部存储器和第一数据队列,用于传送第二数据。
最好,半导体集成电路进一步还包括一个对准器,它插在指令总线和数据总线至少二者之一的某个中间部位。
还是最好,将外部存储器分为一个指令存储器和一个数据存储器,指令总线和数据总线分别连到指令存储器和数据存储器。
按本发明的第五方面,半导体集成电路包括:(a)一个芯片,用于以n位为单位(n是大于1的整数)处理第一指令或第一数据;(b)一个指令队列组,包括:(b-1)n位宽度的第一指令队列,用于从外部存储器接收位n位宽度的第二指令,并在这里存储第二指令;以及(b-2)n位宽度的第S指令队列(1<s≤p,p是大于1的整数),用于从第(s-1)指令队列接收第二指令,并在这里存储第二指令,该指令队列组具有串接的第一至第P指令队列;(c)一个数据队列组,包括:(c-1)(n×m)位宽度的第一数据队列(m>1),用于从外部存储器接收等于或小于(n×m)位宽度的第二数据,并在这里存储第二数据;以及(c-2)(n×m)位宽度的第t数据队列(1<t≤q,q是大于1的整数),用于从第(t-1)数据队列接收第二数据,并在这里存储第二数据,数据队列组具有串接的第1至第q数据队列;(d)一个队列控制部分,用于分别依次移动指令队列组和数据队列组中的第二指令和第二数据;以及(e)一个多路转换器,用于从第q数据队列接收第二数据,并且向芯片有选择地输出第二数据中的n位,以此作为第一数据,并且从第p指令队列获得第一指令。
最好,半导体集成电路进一步还包括:(f)一个指令总线,它连接外部存储器和第一指令队列,用于传送第二指令;以及(g)一个数据总线,它连接外部存储器和第一数据队列,用于传送第二数据。
最好,半导体集成电路进一步还包括一个对准器,它插在指令总线和数据总线至少二者之一的某个中间部位。
还是最好,将外部存储器分为一个指令存储器和一个数据存储器,指令总线和数据总线分别连到指令存储器和数据存储器。
按本发明的第六方面,半导体集成电路包括:(a)一个芯片,用于以n位为单位处理第一指令或第一数据(n是大于1的整数);(b)一个指令队列组,包括:(b-1)(n×m)位宽度(m>1)的第一指令队列,用于从外部存储器接收(n×m)位宽度的第二指令,并在这里存储第二指令;以及(b-2)(n×m)位宽度的第s指令队列(1<s≤p,p是大于1的整数),用于从第(s-1)指令队列接收第二指令,并在这里存储第二指令,该指令队列组具有串接的第1至第p指令队列;(c)一个数据队列组,包括:(c-1)(n×k)位宽度(k>m)的第一数据队列,用于从外部存储器接收等于或小于(n×k)位宽度的第二数据,并在这里存储第二数据;(c-2)(n×k)位宽度的第t数据队列(1<t≤q,q是大于1的整数),用于从第(t-1)数据队列接收第二数据,并在这里存储第二数据,该数据队列组具有串接的第1至第q数据队列;(d)一个队列控制部分,用于分别依次移动指令队列组和数据队列组中的第二指令和第二数据;(e)第一多路转换器,用于从第p指令队列接收第二指令,并且向芯片有选择地输出第二指令中的n位,以此作为第一指令;以及(f)第二多路转换器,用于从q数据队列接收第二数据,并向芯片有选择地输出第二数据中的n位,以此作为第一数据。
最好,半导体集成电路进一步还包括:(g)一个指令总线,它连接外部存储器和第一指令队列,用于传送第二指令;以及(h)一个数据总线,它连接外部存储器和第一数据队列,用于传送第二数据。
最好,半导体集成电路进一步还包括一个对准器,它插在指令总线和数据总线至少二者之一的某个中间部位。
还是最好,把外部存储器分成一个指令存储器和一个数据存储器,指令总线和数据总线分别连到指令存储器和数据存储器。
当半导体集成电路在内部一次可处理n位时,按本发明的半导体集成电路的内部具有可存储(n×m)位的指令或数据的一个队列组。因此能够根据半导体集成电路内的处理条件完成内部操作。
因此,例如当执行分支转移指令时,按本发明的半导体集成电路能实现高效的内部处理,并且能够进行动态调度,因此可保证它的性能改善。
但在半导体集成电路内部设置队列组还可减少元件数目。这就进一步地减小了制造成本。于是才有可能提供廉价的半导体集成电路。
本发明的目的是实现半导体集成电路性能的改善,并且提供一种廉价的半导体集成电路。
从下述结合附图对本发明进行的详细描述中,本发明的这些目的和其它的一些目的、特征、方面、和优点都将变得更加清楚明了。
图1是表示按本发明第一优选实施例的半导体集成电路的结构的电路图;
图2是图1的电路图的详图;
图3是说明选择队列组13的多路转换器(MUX)12的操作的示意图;
图4是一个定时关系图,表示和微处理器6的操作速度有关的1级等待存储器存取的操作
图5是一个定时关系图,表示和微处理器6的操作速度有关的2级等待存储器存取的操作;
图6A—6F说明使用一个队列完成的操作
图7A—7F及图8A—8F说明按本发明第一优选实施例的操作;
图9是表示按本明第二优选实施例的半导体集成电路的结构的电路图;
图10是表示按本发明第三优选实施例的半导体集成电路的结构的电路图;
图11是表示按本发明第四优选实施例的半导体集成电路的结构的电路图;
图12是表示按本发明第五优选实施例的半导体集成电路的结构的电路图;
图13是表示按本发明第六优选实施例的半导体集成电路的结构的电路图;
图14是表示按本发明第七优选实施例的半导体集成电路的结构的电路图;
图15是表示按本发明第八优选实施例的半导体集成电路的结构的电路图;
图16是表示按本发明第九优选实施例的半导体集成电路的结构的电路图;
图17是表示按本发明第十优选实施例的半导体集成电路的结构的电路图;
图18是表示按本发明第十一优选实施例的半导体集成电路的结构的电路图;
图19是表示按本发明第十二优选实施例的半导体集成电路的结构的电路图;
图20A和20B说明队列组13存储可变长度指令或可变长度数据的状态;
图21是表示把超高速缓冲存储器48插在微处理器6和存储器7之间的一种结构的电路图;
图22是表示按本发明第十三优选实施例的半导体集成电路的结构的电路图;
图23是表示把一个超高速缓冲存储器51插在微处理器6和存储器7之间的一种结构的电路图;
图24是表示按本发明第十四优选实施例的半导体集成电路的结构的电路图;
图25说明了对准器54的操作
图26是表示分别为指令总线和数据总线提供对准器55和56的结构的电路图;
图27是表示在图26的结构中额外增设超高速缓冲存储器58和59的一种结构的电路图;
图28是表示把一个超高速缓冲存储器57插在对准器54和存储器53之间的一种结构的电路图;以及
图29是表示背景技术的半导体集成电路的结构的电路图。
<第一优选实施例>
图1表示按本发明第一优选实施例的半导体集成电路的结构。微处理器6和存储器7通过n位宽度的地址总线和(n×m)位宽度的数据总线彼此相连。微处理6包括一个芯片8。芯片8包括一个操作单元9和一个寄存器10,并且进行n位操作。在第一优选实施例中,假定微处理器6以n位为单位处理指令和数据。芯片8还包括一个图中未曾示出的CPU(中央处理单元)。例如,CPU控制总线控制器11,以便通过地址总线向存储器7提供地址。多路转换器12(在这里称之为“MUX”)从下面将要讨论的一个队列中选择数据,将选定的数据输出到操作单元9。队列组13由多个队列组成,每个队列的位宽度为(n×m)(m>1),并且当微处理器6一次能处理n位指令或数据时,每个队列13i存储m×n位的指令或数据。队列控制器14控制队列组13。
图2更加详细地表示出图1电路图的一部分。每个队列13i由排成一行的(n×m)个D触发器组成,并且与时钟信号CLK同步地接收(n×m)位的指令或数据。接收的指令或数据从队列13i到队列13p依次移位。队列控制器14按照时钟信号CLK通过向每个D触发器的时钟端施加一个信号来控制输入到队列组13的指令或数据的操作(例如,从队列13的较低级同较高级的移位操作),并且按照CPU给出的队列清除信号15清除所有队列13i至13p。队列控制器14向CPU输出一个表示队列13i的内部状态的队列状态信号16。队列状态信号16为“0”表示在队列13i到13p中存在自由区,CPU在收到队列状态信号16为“0”时向存储器7发出读出请求。队列状态信号16为“1”表示队列13i至13p是充满的,CPU在收到队列状态信号16为“1”时不从存储器7读出任何指令。
队列控制器14由分别对应于第一到第p个队列13i到13p的串接的第一到第p个D触发器组成。第一到第p个D触发器移动一个就绪信号以便输出一个代表存储在队列13p中的数据的有效性的有效性信号17,上述的就绪信号表示在队列13i到13p移动数据的同一时刻已从存储器7输出了数据。仅在队列13p中的数据具有有效信息时有效性信号17才变为“1”
当有效性信号17为“1”时,按照一个选择信号通过MUX12将队列13p中的数据分割成大小适当的数据块,换言之,在这时要选择用于存储将要采用的数据(指令)的一个D触发器。然后,将分割的数据输出到CPU。
图3说明了选择队列13p的内容的MUX12的操作。为了便于讨论,这里假定队列13i存储指令。例如,在队列13p中存储8位的指令A到D。应该按照CPU输出的选择信号以正常的方式选择指令A。但因为在操作单元9中要执行转移指令而使操作单元9需要指令C的情况下,MUX12就要选择指令C并且将指令C输出给芯片8中的操作单元9。
在第一优选实施例中,对存储器7进行存取的数据总线的宽度为m×n位(m>1),从而可读出m×n位的指令,而微处理器6可以处理n位宽度的指令。将来自存储器7的n×m位指令存储在微处理器6中的队列组13内。按照每一个时钟信号CLK的周期或每n个CLK周期微处理器发出的请求从存储器7读出指令,从而可完成有效的内部处理。对于每一个地址信号都从存储器输出m个n位指令。存储在队列组13中的指令从队列13i移动到队列13p,并由MUX12分割为多个指令,每个指令的大小都和微处理器6能够处理的大小相同,然后将分割的指令输出到芯片8的操作单元9。用微处理器6一次能够处理的位宽度作为通过MUX12进行的指令分割的一个单位。微处理器6能够处理的n位总线宽度例如当微处理器6有一个8位的ALU时为8位,例如当微处理器6有两个8位的ALU时为16位。从存储器7输出要存储在每个队列13i中的指令,其总线宽度为m×8位或m×16位(例如,m为2或更大)。
图4和图5是定时关系图,表示背景技术的器件中从存储器1向微处理器2输出数据的操作。图4和5中的每一个都表示出:一个操作微处理器2的基准时钟C、从微处理器2通过2n位宽度的地址总线向存储器1输出的一个地址信号A、寄存储器中的一对指令寄存器R1、R2的相应的内容、输入到微处理器2的指令M。图4表示一个1级等待存储器存取操作,即存储器存取比微处理器2的处理慢两倍。图5表示一个2级等待存储器存取。在图4和5中,地址信号A的1、2、……代表地址信号A的数目,寄存器1、2、……代表对应于地址信号A的1、2、……的指令,指令M的1、2、……代表从寄存器R1和R2读出的指令的数目。
如图4所示,在1级等待存储器存取过程中,在微处理器2中没有发生从寄存器R1和R2读出指令的等待。另一方面,在图5所示的2级等待存储器存取过程中,在微处理器2中存在等待,如缎点部分所示。在等待状态,微处理器2保留它正在进行的处理,不可能从寄存器读出指令。在发生这样的等待时,任何高性能的微处理器2都需花费时间从存储器向寄存器读出指令。使微处理器的性能下降。当微处理器2和存储器1之间的性能差异加大时,即等待发生的数目加大时,在微处理器2中要发生更多和更长的等待。其原因是,总线控制器3中的寄存器的数目有限,并且寄存器中的存储器的大小等效于微处理器2能够处理的总线宽度。
但在第一优选实施例中,通过队列组13接收(n×m)位宽度的指令,这个位宽度大于微处理器6能够处理的总线宽度,因为不需要微处理器6等待从存储器7向芯片8的寄存器10读取指令所需的时间。此外,通过MUX12向芯片8的操作单元9仅输出存入队列13p中的那些指令中的一些必要的指令,因此比图5所示的微处理器2中发生的等待次数要少。在第一优选实施例中,将m×n位的指令预先读入微处理器6中,因此不存在图4所示的等待,并且向操作单元9迅速输出指令。
在第一优选实施例中,队列组最好包括多个队列13i。
图6a—6F表示只提供一个(n×m)位宽度的队列130而不是队列组13的情况下的操作,队列130对应于p=1的情况。在这些图中表示的是m=2的一个典型的情况。向队列130提供每个指令均为n位的指令1、2、3、和4,这些指令进一步从队列130传送到芯片8。处理指令1需两个时钟信号周期,处理指令2、3、和4各需一个时钟周期。完成2级等待存储器存取。
在图6A的步骤中,已将指令1和2存入队列130,在下一个周期,在芯片8中开始对指令1进行处理(图6B)。在芯片8中对指令1的处理需要另一个周期才能完成(图6C)。在下一个周期,在芯片8中随后对指令2进行处理,这仅需一个周期(图6D)。另一方面,由于进行的是2级存储器存取,所以不存储任何指令,因此芯片8处在等待状态,这需一个周期(图6E)。然后,将指令3和4存入队列130中(图6F)。
图7A—7F表示队列组13包括两个队列131和132和情况下的操作。和图6A—6F所示的操作过程类似,处理指令1需要两个时钟信号周期,处理指令2、3、和4各需一个时钟信号周期。完成2级等待存储器存取。
在图7A的步骤中,因为要完成的是2级等待存储器存取,所以已在队列132中存入了两个指令1和2,而在队列131中不存入任何指令。在图7B的步骤的下一个周期,在芯片8中开始对指令1进行处理。在图7B的步骤中,在队列131中还是不存入任何指令。对指令1的处理需要另一个周期才能完成,在这一步骤将指令3和4存入队列131中(图7C)。在下一个周期,在芯片8中对指令2进行处理,并将指令3和4从队列131移到队列132(图7D)。由于对指令2的处理需要一个周期才能完成,所以随后在芯片8中要对指令3进行处理。在这一步骤,因为是2级等待存储器存取,所以在队列131中不存入指令。在另一周期,在芯片8中对指令4进行处理,并且将下两个指令5和6同时存入队列131中(图7F)。
因而,提供多个队列131和132,可防止芯片8进入等待状态,由此可保证快速处理。
图8A—8F表示队列组13包括多个队列131和132并且在芯片8中处理每个指令1、2、3、和4需要一个周期的情况下的操作。在这种情况下,处理所有的指令1、2、3、和4共需6个周期。换言之,通过提供多个阵列132和132,可在同一周期完成对指令1的处理,和处理指令1需要两个周期还是需要一个周期无关。
如以上所讨论的,在第一优选实施例中,在队列13i中一次可存入数目大于微处理器6能处理的指令(或数据)的数量的指令(或数据),因此可将实际的存储器存取所需的时间减小m倍。因而,可减少存储器存取的数目,从而可实现高性能和较少内部处理的微处理器6,并且使微处理器6的处理和存储器存取之间的差异减小。特别是,因为提供了多个队列13i,所以大大地缩小了微处理器6和存储器7之间的操作速度的差异。如果微处理器6从存储器7和队列组13读出数据,使队列组13总是可以存储数据,则可防止微处理器6由于送数延迟引起的性能下降。在执行分支转换指令的情况下,由于可从队列组13中的一个特定的队列13i读出分支目标指令,所以微处理器6能够比背景技术的微处理器快得多地存取分支目标指令。然而,进行动态调度也是比较容易的。此外,因为在微处理器6中设置了队列组13,所以可以减少元件数目并可保证较低的制造成本。
<第二优选实施例>
图9表示按本发明第二优选实施例的半导体集成电路的结构。标号6—11代表和图1相同的部件。将图1的数据总线分成指令总线和数据总线,它们和队列组25及28分别相连。指令队列组25及数据队列组28的另一侧分别通过MUX24和27连到芯片8。MUX24选择通过指令队列组25传送的指令,并向芯片8输出n位的指令。MUX27选择通过数据队列组28传送的数据,并向芯片8输出n位的数据。指令队列组25和数据队列组28的内部都由多个D触发器组成,和图2的队列组13类似。指令队列组的最低队列(最靠近存储器7的队列)连接到指令总线,数据队列组28的最低队列(最靠近存储器7的队列)连到数据总线。指令队列控制器26按照控制信号(队列清除信号15、队列状态信号16、和有效性信号17、以及类似信号)控制指令队列组25,数据队列控制器29按类似的方式控制数据队列组28。虽然存储器7是一个结构,但它能向一个公用总线输出(n×m)位指令或数据,使指令或数据分别进入指令队列组25或数据队列组28。当芯片8向总线控制器11发出读出请求信号时,从存储器7读出指令或数据。当芯片8分别向指令队列控制器26或数据队列控制器29给出控制信号并且向MUX24或27给出选择信号18或19时,指令或数据开始读入芯片8中。从指令队列组25的最高队列(最靠近MUX24的队列)或从数据队列组28的最高队列(最靠近MUX27的队列)通过MUX24或27将所需的指令或数据按适当的大小读入芯片8。为了识别存储器7的输出,不管是指令还是数据,可将存储器7中的存储空间明确地分为指令存储空间的数据存储空间。在这种情况下,微处理器6输出的地址信号用于确定读出的是指令还是数据。按另一种方式,还可以使用微处理器输出的控制信号。
如以上所述,在第二优选实施例中,微处理器6具有在内部分开指令队列和数据队列的结构,因此可彼此独立地进行指令存取和数据存取。
<第三优选实施例>
图10表示按第三优选实施例的半导体集成电路的结构。标号6—11及24—29代表与图9相同的元件。将存储器7分成指令存储器30和数据存储器31。指令存储器30通过(n×m)位宽度的指令总线连到指令队列组25,数据存储器31通过(n×m)位宽度的数据总线连到数据队列组28。指令存储器30和数据存储器31通过n位宽度的公用地址总线连到总线控制器11。指令存储器30和数据器31彼此独立地操作。
微处理器6从总线控制器11向指令存储器30或数据存储器31输出n位的地址信号。从指令存储器30通过指令总线向指令队列组25读出(n×m)位的指令,从数据存储器31通过数据总线向数据队列组28读出(n×m)位的数据。当芯片8向总线控制器11发出读出请求信号时,从指令存储器30或数据存储器31就读出了指令或数据。当芯片8分别向指令队列控制器26或数据队列控制器29发出控制信号并且向MUX24或27发出选择信号18或19时,指令或数据就可开始读入芯片8。从指令队列组25的最高队列(最靠近MUX24的队列)或从数据队列组28的最高队列(最靠近MUX27的队列)通过MUX24或27将所需的指令或数据按适当的大小读入芯片8中。
如上所述,在第三优选实施例中,微处理器6具有指令队列和数据队列在内部分开的结构,因而可彼此独立地进行指令存取和数据存取。因此可防止指令存取和数据存取彼此竞争干优。由于指令存储器30和数据存储器31分开设置,所以如果程序长度很小,可将指令存储器30设在微处理器6中。但小容量的存储器产生的效果是改善了存取速度。
<第四优选实施例>
图11表示按第四优选实施例的半导体集成电路的结构。标号6—11、24、26、和29表示和图9相同的元件。指令队列组32由多个串接的队列组成,当微处理器6一次可处理n位指令时,每个队列存储(n×m)位指令。数据队列组33由多个串接的队列组成,每个队列存储微处理器6一次能够处理的n位数据。
在第四优选实施例中,只有连到指令队列组32的指令总线为(n×m)位宽度,这个宽度大于微处理器6的内部总线宽度。另一方面,和数据队列组33相连的是在(n×m)位宽度的数据总线中的n位宽度的数据总线(和微处理器6的内部总线宽度一样大)。数据队列组33具有存储n位宽度的数据的结构。具体来说,数据队列级33的每个队列由n个D触发器组成。通过数据队列33传送的n位数据不通过MUX直接输出到芯片8。虽然用一个公用总线来连接指令总线、数据总线与存储器7,但微处理器6不接收该数据总线中除n位之外的那些并非必要的位。数据总线中这些非必要位可保持开路,或可由多路转换器选择。从存储器7向微处理器6读出指令或数据的操作、以及微处理器6将指令或数据读入芯片8的操作均和第二优选实施例相同,这里省去了对它们的讨论。
按以上所述构成的第四优选实施例可使所用的数据队列组33的大小变小,产生减小半导体集成电路的电路规模的效果。
<第五优选实施例>
图12表示按第五优选实施的半导体集成电路的结构。标号6—11、24、26、和29—31表示与图10相同的元件。当微处理器6一次可处理n位指令时,指令队列34的每一个队列存储(n×m)位的指令。数据队列组35的每一个队列存储微处理器6一次可处理的n位数据。
在第五实施例中,将存储器分为指令存储器30和数据存储器31。连到指令队列组34的指令总线有(n×m)位宽度,这个宽度大于微处理器的内部总线宽度;连到数据队列组35的数据总线有n位宽度,这个宽度和微处理器6的内部总线宽度一样大。数据阵列组35具有存储n位宽度的数据的结构。具体来说,数据队列组35的每一个队列都由n个D触发器组成。通过数据队列组35传送的n位数据不经过MUX直接输出到芯片8。从存储器7向微处理器6读出指令或数据的操作,以及微处理器6将指令或数据读入芯片8的操作均和第三优选实施例相同,因此这里省去了对它们的描述。
按以上所述构成的第五优选实施例可使所用的数据队列组35的大小减小,因此可产生缩小半导体集成电路的电路规模的效果。
<第六优选实施例>
图13表示按第六优选实施例的半导体集成电路的结构。标号6—11、26、27、和29代表和第二优选实施例相同的元件。指令队列级36的每个队列存储微处理器6一次能够处理的n位指令。当微处理器6一次能处理n位数据时,数据队列组37的每个队列存储(n×m)位的数据。
在第六优选实施例中,只有连到数据队列组37的数据总线才具有(n×m)位的宽度,这个宽度大于微处理器6的内部总线宽度。另一方面,和指令队列组36相连的是n位宽度的指令总线,这个宽度和微处理器6的内部总线宽度一样大,而指令总线的其余位无处连接,但可保持开路。存储器7只有一种结构,但指令和数据在输出到队列组36和37时却被分开。指令队列组36具有存储n位宽度的指令的结构。具体来说,指令队列组36的每个队列由n个D触发器组成。通过指令队列组36传送的n位指令不通过MUX直接输出到芯片8。虽然使用一个公用总线来连接指令总线、数据总线与存储器7,但微处理器6并不接收指令总线中除n位以外的其它非必要位。指令总线的这些非必要位可保持开路,或可供多路转换器选择。从存储器7向微处理器6读出指令或数据的操作、以及微处理器6将指令或数据读入芯片8的操作均和第二实施例相同。
按以上所述构成的第六优选实施例可减小指令队列组36的大小,因此可产生缩小半导体集成电路的电路规模的效果。
<第七优选实施例>
图14表示第七优选实施例的半导体集成电路的结构。标号6—11、26、27、和29—31与图10的元件相同。指令队列组38由多个串接的队列构成,每个队列存储微处理器6一次可能处理的n位的指令。数据队列组29由多个串接的队列构成,每个队列当微处理器6一次能处理n位数据时存储(n×m)位的数据。
在第七优选实施例中,将存储器分为指令存储器30和数据存储器31。只有连到数据队列组39的数据总线才有(n×m)位的宽度,这个宽度大于微处理器6的内部总线宽度;连到指令队列组38的指令总线具有n位宽度,这个宽度和微处理器6的内部总线宽度一样大。指令队列组38具有存储n位宽度的指令的结构。具体来说,指令队列组38的每个队列由n个D触发器组成。通过指令队列组38发送的n位指令不经MUX直接输出到芯片8。从存储器7向微处理器6读出指令或数据的操作,以及微处理器6将指令或数据读入芯片8的操作均和第三实施例相同,这里省去了对它们的讨论。
按以上所述构成的第七优选实施例在将存储器7分成指令寄存器30和数据寄存器31时可缩小要使用的指令队列组38的大小,因此可产生缩小半导体集成电路的电路规模的效果。
<第八优选实施例>
图15表示按第八优选实施例的半导体集成电路的结构。标号6—11、24、26、27、和29代表和图9相同的元件。指令队列组40由多个串接的队列组成,当微处理器6一次能处理n位指令时,每个队列存储(n×m)位的指令。数据队列组41由多个串接的队列组成,每个队列存储(n×k)位的数据,假定k>m>1。
在第八优选实施例中,连到指令队列组40的指令总线有(n×m)位宽度,这个宽度是微处理器6的内部总线宽度的m倍;连到数据队列组41的数据总线具有(n×k)位宽度,这个宽度是微处理器6的内部总线宽度的k倍(k>m)。例如,当微处理器6一次可处理的总线宽度是6位时,从存储器7向指令队列组40读出16位宽度的指令,这个宽度是微处理器6一次能够处理的总线宽度的两倍;并且从存储器7向数据队列组41读出24位宽度的数据,这个宽度是微处理器6一次能够处理的总线宽度的3倍。数据队列组41具有存储从存储器7读出的(n×k)位宽度的数据的结构。具体来说,数据队列组41的每个队列都由(n×k)个D触发器组成。存储器7和微处理器6与(n×k)位宽度的一个公用总线相连。指令的数据通过公用总线传送到微处理器6。从指令总线向指令队列组40只读出所需的(n×m)位的指令。其余的指令位保持开路。虽然存储器7只是一个结构,但在分别向指令队列组40和数据队列组41输入指令和数据时可将指令和数据分割开来。从存储器7向微处理器6读出指令或数据的操作、以及微处理器6将指令或数据读入芯片8内的操作均和第二优选实施例相同。
按以上所述构成的第八优选实施例可在数据队列组41中存储较多数量的数据,因而可实现简便的动态调度和半导体集成电路性能的改进。
<第九优选实施例>
图16表示按照第九优选实施例的半导体集成电路的结构。标号6—11、24、26、27、和29代表和图10相同的元件。指令队列组42由多个串接的队列组成,当微处理器6一次可处理n位指令时,每个队列存储(n×m)位指令。数据队列组43由多个串接的队列组成,每个队列存储(n×k)位的数据,假定k>m>1。
在第九优选实施例中,将存储器7分成指令存储器30和数据存储器31。指令存储器30通过(n×m)位宽度的指令总线连到指令队列组42。数据存储器31通过(n×k)位宽度的数据总线连到数据队列组43。指令存储器30和数据存储器31通过n位宽度的地址总线连到总线控制器11。指令队列组42的每个队列有(n×m)个D触发器,数据队列组43的每个队列有(n×k)个D触发器。从存储器7向微处理器6读出指令或数据的操作以及微处理器6把指令或数据读入芯片8的操作均和第三优选实施例相同。
在如以上所述构成的第九优选实施例中,当将存储器分成指令存储器30和数据存储器31时,微处理器6可按照相应的总线宽度对指令总线和数据总线进行存取,因此可以根据要处理的数据量(用于控制、图像处理、等等)实现平衡良好的结构。
<第十优选实施例>
图17表示按第十优选实施例的半导体集成电路的结构。标号6—11、24、26、27、和29代表和图9相同的元件。指令队列组44由多个串接的队列组成,每个队列存储n位的指令,微处理器6一次能处理n位。数据队列组45由多个串接的队列组成,每个队列存储n位的数据,微处理器6一次能处理n位。公共队列组60由多个串接的队列组成,每个队列存储n×(m-1)位的指令或数据。公用队列组60由指令队列控制器26和数据队列控制器29联合控制。
在第十优选实施例中,从存储器7输出(n×m)位指令或数据,在(n×m)位中的n位指令或数据通过第一总线传送到微处理器6中的指令队列组44或数据队列组45,其余的n×(m-1)位指令或数据通过第二总线传送到微处理器6中的公用队列60。当分支指令的扫行要求一个新的分支目标指令时,或者按照存储条件(换句话说,按照处理条件)需要指令或数据时,微处理器6向总线控制器11发出指令或数据的读出请求信号。按照微处理器6输出的读出请求信号来确定应通过第一总线还是应通过第二总线向微处理器6传送来自存储器7的指令(或数据)。
如以上所述,在第十优选实施例中,额外设置了公用队列组60以及连接该公用队列组60和存储器7的第二总线,因此第十优选实施列能够按照数据存储条件有效地进行微处理器6的内部处理。
<第十一优选实施例>
图18表示按第十一优选实施例的半导体集成电路的结构。标号6—11、24、26、27、和29代表和图9相同的元件。和第十优选实施例类似,第十一优选实施例包括公用队列组60、第一总线、和第二总线。此外,在存储器7和微处理器6之间还设有一个超高速缓冲存储器46。和存储器7相比,超高速缓冲存储器46是一种容量较小但速较高的存储器,并且对存储器46进行连接,使存储在超高速缓冲存储器46中的指令或数据可通过第二总线传送到微处理器6。
微处理器6向总线控制器11发出读出请求信号和地址信号,总线控制器11向超高速缓冲存储器46发出地址信号。然后,向微处理器6输出位于由该地址信号规定的超高速缓冲存储器46的地址的指令或数据。当在超高速缓冲存储器46中没有发现指令或数据(超高速缓中丢失)时,要从存储器7向超高速缓冲存储器46读出指令或数据,然后将指令或数据输出到微处理器6。当在超高速缓中存储器中没有发现指令或数据时从存储器7向超高速缓冲存储器46读入指令或数据的技术是众所周知的,这里省去了对它的讨论。
如以上所述,在第十一优选实施例中,额外增设了超高速缓冲存储器,因此第十一优选实施例可使指令存取或数据存取能以较高的速度进行,因此可保证半导体集成电路的高速操作。
<第十二优选实施例>
图19表示按第十二优选实施例的半导体集成电路的结构。标号6—14代表与图1相同的元件。选择器47从数据总线接收(n×m)位的指令或数据,并将它们输出到队列组13。
第十二优选实施例通过利用选择器47的功能可向队列组13有效地传送可变长度的指令或数据。例如,如图20A所示,当依次将4字节指令(或数据)1、1字节指令(或数据)2、和3字节指令(或数据)3从存储器7传送到可存储4字节指令或数据的队列组13时,则在队列132和131中存在着自由空间(如阴影响部分所示)。
如果使用选择器47,则有可能根据队列的自由空间从存储器7向队列组13内存储指令或数据,如图20B所示。按以下所述的方式来控制选择器47。队列控制器14向微处理器6发出有关队列131的自由空间的信息,即D触发器的存储条件。微处理器6根据由队列控制器14给出的有关队列131的信息以及来自存储器7的可变长度指令或数据判断来自存储器7的指令或数据是否能够存储在队列131的自由空间内,微处理器6将判断结果输出到总线控制器11。当队列131不可能存储指令或数据时,队列控制器14在从总线控制器11接收到该判断结果时将队列131中存储的指令或数据移动到下一个队列132,并且消除队列131。当队列131能够存储来自存储器是的指令或数据时,总线控制器11在收到来自芯片8的判断结果时向选择器47发出一个允许信号。选择器47在接收到该允许信号时,就要确定队列131的一个可利用的位置,并将来自存储器7的指令或数据传送到这个位置。当总线控制器11没有向选择器47发出允许信号时,则先要通过以上讨论过的队列控制器14消除队列131,而后将指令或数据存入队列131中。
此外,可在微处理器6和存储器7之间设置一个超高速缓冲存储器48,如图21所示。在具有这种结构的图21的半导体集成电路中,和图19的半导体集成电路相比,微处理器6能够更加迅速地从超高速缓冲存储器48向队列组13读出(n×m)位的指令或数据。当在超高速缓中存储器48中没有发现指令或数据时,微处理器6进行的控制应使(n×m)位指令或数据可从存储器7读入超高速缓冲存储器48并进一步可向微处理器6中的队列组13传送。
如以上所讨论的,在第十二优选实施例中,额外增设了选择器47,第十二优选实施例对于可变长度指令或数据有效地利用了队列13。此外,因设置了超高速缓中存储器48,所以可保证半导体集成电路的高速操作。
<第十三优选实施例>
图22表示按第十三优选实施例的半导体集成电路的结构。在第十三优选实施例中,在图9的半导体集成电路内额外增设最选择器49和50。选择器49通过(n×m)位宽度的指令总线连到存储器7,选择器50通过(n×m)位宽度的数据总线连到存储器7。选择器49的另一侧连到指令队列组25的最靠近存储器7的一个队列上,选择器50的另一侧连到数据队列组28的最靠近存储器7的一个队列上。通过指令总线或数据总线向选择器49或选择器50输入来自存储器7的可变长度指令或数据。和图19的选择器47类似,选择器49或选择器50根据指令队列25或数据队列28的最靠近存储器7的那个队列的自由空间从存储器7向指令队列组25或数据队列组28传送可变长度指令或数据。
此外,如图23所示,可在存储器7和微处理器6之间额外增设一个超高速缓中存储器51。
如以上所述的,在第十三优选实施例中,当将队列组分成指令队列组和数据队列组时增设了选择器49和50,因此第十三优选实施例有效地利用了队列。此外,因为提供了超高速缓冲存储器51,所以可保证半导体集成电路高速操作。
<第十四优选实施例>
图24表示按第十四优选实施例的半导体集成电路的结构。微处理器52通过数据总线和地址总线连到存储器53。在数据总线的某个中间部位设置一个对准器54,对准器54可将要输入到微处理器52的部分数据移动到数据中的一个适当的位置以使数据的顺序正确。图25表示出对准器54的功能。当需要移动来自存储器7的(n×m)位数据中的要在微处理器52中处理的有效数据(由阴影部分表示)的位置时,对准器54按照微处理器52输出的控制信号移动该有效数据,并将移动了的数据输出到微处理器52。为了以相同的位宽处理不同大小的数据就需要这个对准器54。和以前讨论过的其它优选实施例类似,在微处理器52内要提供队列组。对准器本来是微处理器52性能变坏的一个原因,但由于对准器是设在微处理器52的外部,所以微处理器的内部操作负提减轻了许多。
当微处理器52一次能处理n位数据(指令)时,数据总线(或指令总线)具有(n×m)位的宽度。此外,在微处理器52中可提供多个指令队列组或多个数据队列组。
还可能存在如图26所示的结构,其中将总线分为指令总线和数据总线,对准器55和56分别设在指令总线或数据总线的某个中间位置。此外,如图27所示,因为在存储器和相应的对准器55、56之间设有超高速缓冲存储器58、59,所以可以以较高的速度进行指令存取或数据存取,从而可保证半导体集成电路的高速操作。还可能存在另一种结构,如图28所示,其中提供一个公用的数据总线,并且在对准器54和存储器53之间设置超高速缓冲存储器57,从而可保证半导体集成电路的高速操作。
虽然已经详细描述并表示了本发明,但以上的描述在所有方面都是说明性的,而不是限制性的。因此可以理解,在不偏离本发明的范围的条件下还可以设计出许多改进和变化。
Claims (25)
1.一种半导体集成电路,包括:
一个芯片,用于以n位为单位(n是大于1的整数)处理第一数据;
至少一个(n×m)位宽度的队列(m>1),用于从外部存储器接收等于或小于(n×m)位宽度的第二数据并在其中存储所说第二数据;以及
一个多路转换器,用于从所说至少一个队列接收所说第二数据并有选择地将所说第二数据中的n位输出到所说芯片,以此作为所说第一数据。
2.如权利要求1的半导体集成电路,其中:
所说至少一个队列包括p个彼此串接的队列(p是大于1的整数),
所说p个队列构成一个队列组,并且
所说半导体集成电路进一步还包括:
一个队列控制部分,用于将所说第二数据传到所述多路转换器,这是通过将所述第二数据从所说p个队列中的一个队列依次移动到下一个队列来实现的。
3.如权利要求2的半导体集成电路,进一步还包括一个(n×n)位宽度的总线,用于从所说外部存储器向所说队列组传送所说第二数据。
4.如权利要求3的半导体集成电路,其中:
所说第二数据是可变长度数据,并且
所说半导体集成电路进一步还包括一个选择器,用于将所说第二数据输出到最靠近所说总线的所说多个队列中的一个队列的一个队列的一个规定的存储位置。
5.如权利要求4的半导体集成电路,进一步还包括一个插在所说总线某个中间位置的超高速缓冲存储器。
6.一种半导体集成电路,包括:
(a)一个芯片,用于以n位为单位(n是大于1的整数)处理第一指令或第一数据;
(b)一个指令队列组,它包括:
(b-1)一个(n×m)位宽度(m>1)的第一指令队列,用于从一个外部存储器接收等于或小于(n×m)位宽度的第二指令并在这里存储所说第二指令;以及
(b-2)一个(n×m)位宽度的第3指令队列(1<s≤p;p是大于1的整数),用于从第(s-1)指令队列接收所说第二指令,并在这里存储所说第二指令;
所说指令队列组具有串接的所说第一到第p指令队列,
(c)一个数据队列组,包括:
(c-1)(n×m)位宽度(m>1)的第一数据队列,用于从所说外部存储器接收(n×m)位宽度的第二数据并在这里存储所说第二数据;
(c-2)(n×m)位宽度的第t数据队列(1<t≤q,q是大于1的整数),用于接收来自第(t-1)数据;
所说数据队列组具有串接的所说第一至第q数据队列,
(d)一个队列控制部分,用于分别依次移动所说反映令队列组和所说指令队列组中的所说第二指令和所说第二数据;
(e)第一多路转换器,用于从所说第p指令队列接收所说第二指令,并且向所说芯片有选择地输出在所说第二指令中的n位,以此作为所说第一指令;以及
(f)第二多路转换器,用于从所说第q数据队列接收所说第二数据,并且向所说芯片有选择地输出在所说第二数据中的n位,以此作为所说第一数据。
7.如权利要求6的半导体集成电路,其中:
所说半导体集成电路进一步还包括:
(g)第一选择器,设在所说指令队列组和所说外部存储器之间,用于向所说第一指令队列的一个规定的存储位置输出所说第二指令;以及
(h)第二选择器,设在所说数据队列和所说外部存储器之间,用于向所说第一数据队列的一个规定的存储位置输出所说第二数据。
8.如权利要求6的半导体集成电路,进一步还包括:
(g)一个指令总线,它连接所说外部存储器和所说第一指令队列,用于传送所说第二指令;以及
(h)一个数据总线,它连接所说外部存储器和所说第一数据队列,用于传送所说第二数据。
9.如权利要求8的半导体集成电路,其中:
把外部存储器分开为一个指令存储器和一个数据存储器;以及
所说指令总线和所说数据总线分别连到所说指令存储器和所说数据存储器。
10.一种半导体集成电路,包括:
(a)一个芯片,用于以n位为单位(n是大于1的整数)处理第一指令或第一数据;
(b)一个指令队列组,包括:
(b-1)一个n位宽度的第一指令队列,用于从一个外部存储器接收第二指令的n位,并在这里存储所说第二指令中的所说n位;以及
(b-2)n位宽度的第s指令队列(1<s≤p,p是大于1的整数),用于从第(s-1)指令队列接收所说第二指令的所说n位,并在这里存储所说第二指令的所说n位;
所说指令队列组具有串接的所说第一至第p指令队列,
(c)一个数据队列组,包括:
(c-1)n位宽度的第一数据队列,用于从所说外部存储器接收第二数据中的n位,并在这里存储所说第二数据中的所说n位;以及
(c-2)n位宽度的第t数据队列(1<t≤q,q是大于1的整数),用于从第(t-1)数据队列接收所说第二数据中的所说n位,并在这里存储所说第二数据中的所说n位;
所说数据队列组具有串接的所说第1至第q数据队列,
(d){n×(m-1)}位宽度的公用队列组,用于接收所说第二指令和所说第二数据,并在这里存储它们;
(e)一个队列控制部分,用于分别依次移动在所说指令队列组和所说数据队列组以及所说公用队列组中的所说第二指令和所说第二数据;
(f)一个n位宽度的第一总线,它连接所说外部存储器和所说第一指令队列及所说第一数据队列,用于传送所说第二指令和所说第二数据;
(g)一个{n×(m-1)}位宽度的第二总线,它连接所说外部存储器和所说公用队列组,用于传送所说第二指令和所说第二数据;
(h)第一多路转换器,用于从所说指令队列组并且从所说公用队列组接收所说第二指令,并且向所说芯片有选择地输出所说第二指令中的所说n位,以此作为所说第一指令;以及
(i)第二多路转换器,用于从所说数据队列组并且从所说公用队列组接收所说第二数据,并且向所说芯片有选择地输出所说第二数据中的所说n位,以此作为所说第一数据。
11.如权利要求10的半导体集成电路,进一步还包括:(j)插在所说第二总线的某个中间部位的一个超高速缓冲存储器。
12.一种半导体集成电路,包括:
(a)一个芯片,用于以n位为单位(n是大于1常数)处理第一指令或第一数据;
(b)一个指令队列组,包括:
(b-1)(n×m)位宽度(m>1)的第一指令队列,用于从外部存储器接收等于或小于(n×m)位宽度的第二指令,并在这里存储所说第二指令;以及
(b-2)(n×m)位宽度的第s指令队列(1<s<p,p是大于1的整数),用于从第(s-1)指令队列接收所说第二指令,并在这里存储所说第二指令;
所说指令队列组具有串接的第一至第p指令队列;
(c)一个数据队列组,包括:
(c-1)n位宽度的第一数据队列,用于从所说外部存储器接收n位宽度的第二数据,并在这里存储所说第二数据;以及
(c-2)位宽度的第t数据队列(1<t≤q,q是大于1的整数),用于从第(t-1)数据队列接收所说第二数据,并在这里存储所说第二数据;
所说数据队列组具有串接的所说第1至第q数据队列,
(d)一个队列控制部分,用于分别依次移动在所说指令队列组和数据队列组中的所说第二指令和所说第二数据;以及
(e)一个多路转换器,用于从所说第p指令队列接收所说第二指令,并且向所说芯片有选择地输出所说第二指令中的n位,作为所述第一指令,其中:
从所说第q数据队列来获取所说第一数据。
13.如权利要求12的半导体集成电路,进一步还包括:
(f)一个指令总线,它连接所说外部存储器和所说第一指令队列,用于传送所说第二指令;以及
(g)一个数据总线,它连接所说外部存储器和所说第一数据队列,用于传送所说第二数据。
14.如权利要求13的半导体集成电路,其中:
把所说外部存储器分成一个指令存储器和一个数据存储器;并且
所说指令总线和所说数据总线分别与所说指令存储器和所说数据存储器相连。
15.一种半导体集成电路,包括:
(a)一个芯片,用于以n位为单位(n是大于1的整数)处理第一指令或第一数据;
(b)一个指令队列组,包括:
(b-1)n位宽度的第一指令队列,用于从外部存储器接收n位宽度的第二指令,并在这里存储所说第二指令;以及
(b-2)n位宽度的第s指令队列(1<s<p,p是大于1的整数),用于从第(s-1)指令队列接收所说第二指令,并在这里存储所说第二指令;
所说指令队列组具有串接的所说第1至第p指令队列;
(c)一个数据队列组,包括:
(c-1)(n×m)位宽度(m>1)的第一数据队列,用于从所说外部存储器接收等于或小于(n×m)位宽度的第二数据,并在这里存储所说第二数据;以及
(c-2)(n×m)位宽度的第t数据队列(1<t<q,q是大于1的整数),用于从第(t-1)数据队列接收所说第二数据,并在这里存储所说第二数据;
所说数据队列组具有串接的所说第一至第q数据队列;
(d)一个队列控制部分,用于分别依次移动所说指令队列组和所说数据队列组中的所说第二指令和所说第二数据;以及
(e)一个多路转换器,用于从第q数据队列接收所说第二数据,并且向所说芯片有选择地输出所说第二数据中的n位,以此作为所说第一数据,其中:
从所说第p指令队列获得所说第一指令。
16.如权利要求15的半导体集成电路,进一步还包括:
(f)一个指令总线,它连接所说外部存储器和所说第一指令队列,用于传送所说第二指令;以及
(g)一个数据总线,它连接所说外部存储器和所说第一数据队列,用于传送所说第二数据。
17.如权利要求16的半导体集成电路,其中:
把所说外部存储器分为一个指令存储器和一个数据存储器,并且
所说指令总线和所说数据总线分别连到所说指令存储器和所说数据存储器。
18.一种半导体集成电路,包括:
(a)一个芯片,用于以n位为单位(n为大于1的整数)处理第一指令或第一数据;
(b)一个指令队列组,包括:
(b-1)(n×m)位宽度(m>1)的第一指令队列,用于从外部存储器接收等于或小于(n×m)位宽度的第二指令,并在这里存储所说第二指令;以及
(b-2)(n×m)位宽度的第s指令队列(1<s≤p,p是大于1的整数),用于从第(s-1)指令队列接收所说第二指令,并在这里存储所说第二指令;
所说指令队列组具有串接的所说第一至第p指令队列;
(c)一个数据队列组,包括:
(c-1)(n×k)位宽度(k>m)的第一数据队列,用于从所说外部存储器接收等于或小于(n×k)位宽度的第二数据,并且在这里存储所说第二数据;以及
(c-2)(n×k)位宽度的第t数据队列(1<t≤q,q是大于1的整数),用于从第(t-1)数据队列接收所说数据,并在这里存储所说第二数据;
所说数据队列组具有串接的所说第一至第q数据队列;
(d)一个队列控制部分,用于分别顺序地移动所说指令队列组和所说数据队列组中的所说第二指令和所说第二数据;
(e)第一多路转换器,用于从所说第p指令队列接收所说第二指令,并向所说芯片有选择地输出所说第二指令中的n位,以此作为所说第一指令;以及
(f)第二多路转换器,用于从所说第q数据队列接收所说第二数据,并向所说芯片有选择地输出所说第二数据中的n位,以此作为所说的第一数据。
19.如权利要求18的半导体集成电路,进一步还包括:
(g)一个指令总线,它连接所说外部存储器和所说第一指令队列,用于传送所说第二指令;以及
(h)一个数据总线,它连接所说外部存储器和所说第一数据队列,用于传送所说第二数据。
20.如权利要求19的半导体集成电路,其中:
把所说外部存储器分为一个指令存储器和一个数据存储器,并且
所说指令总线和所说数据总线分别连接到所说指令存储器和所说数据存储器。
21.如权利要求3的半导体集成电路,进一步还包括一个插在所说总线的某个中间位置的对准器。
22.如权利要求8的半导体集成电路,进一步还包括一个插在所说指令总线和所说数据总线至少二者之一的某个中间位置的对准器。
23.如权利要求13的半导体集成电路,进一步还包括一个插在所说指令总线和所说数据总线至少二者之一的某个中间位置的对准器。
24.如权利要求16的半导体集成电路,进一步还包括一个插在所说指令总线和所说数据总线至少二者之一的某个中间位置的对准器。
25.如权利要求19的半导体集成电路,进一步还包括一个插在所说指令总线和所说数据总线至少二者之一的某个中间位置的对准器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP327596/94 | 1994-12-28 | ||
JP6327596A JPH08185320A (ja) | 1994-12-28 | 1994-12-28 | 半導体集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1133454A true CN1133454A (zh) | 1996-10-16 |
Family
ID=18200832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN95120103.4A Pending CN1133454A (zh) | 1994-12-28 | 1995-12-27 | 半导体集成电路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5621694A (zh) |
JP (1) | JPH08185320A (zh) |
KR (1) | KR0169555B1 (zh) |
CN (1) | CN1133454A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100351747C (zh) * | 2003-02-06 | 2007-11-28 | 松下电器产业株式会社 | 数据传送方法和数据传送设备 |
CN102150132A (zh) * | 2008-09-10 | 2011-08-10 | 瑞萨电子株式会社 | 信息处理装置 |
CN111656335A (zh) * | 2018-01-29 | 2020-09-11 | 美光科技公司 | 存储器控制器 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0858168A1 (en) | 1997-01-29 | 1998-08-12 | Hewlett-Packard Company | Field programmable processor array |
US5949272A (en) * | 1997-06-12 | 1999-09-07 | International Business Machines Corporation | Bidirectional off-chip driver with receiver bypass |
DE69841256D1 (de) * | 1997-12-17 | 2009-12-10 | Panasonic Corp | Befehlsmaskierung um Befehlsströme einem Prozessor zuzuleiten |
DE69827589T2 (de) | 1997-12-17 | 2005-11-03 | Elixent Ltd. | Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen |
JP2003526129A (ja) | 1997-12-17 | 2003-09-02 | エリクセントリミティド | プログラマブル・アレイにおける乗算器の実現 |
JP4593252B2 (ja) * | 2004-12-02 | 2010-12-08 | パナソニック株式会社 | 半導体集積回路 |
US20070157030A1 (en) * | 2005-12-30 | 2007-07-05 | Feghali Wajdi K | Cryptographic system component |
US7900022B2 (en) | 2005-12-30 | 2011-03-01 | Intel Corporation | Programmable processing unit with an input buffer and output buffer configured to exclusively exchange data with either a shared memory logic or a multiplier based upon a mode instruction |
KR100867269B1 (ko) * | 2007-02-22 | 2008-11-06 | 삼성전자주식회사 | 프로세서의 추론적 로드 명령 실행 방법 및 상기 방법을채용한 프로세서 |
FR2984657B1 (fr) * | 2011-12-19 | 2014-01-10 | Kalray | Systeme d'emission de flots de donnees concurrents sur un reseau |
US10902166B2 (en) * | 2017-12-31 | 2021-01-26 | Arteris, Inc. | System and method for isolating faults in a resilient system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6362064A (ja) * | 1986-09-03 | 1988-03-18 | Toyo Commun Equip Co Ltd | バス変換装置 |
US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
JPH0397340A (ja) * | 1989-09-11 | 1991-04-23 | Fujitsu Ltd | データバス幅変換回路 |
JPH0546535A (ja) * | 1991-08-09 | 1993-02-26 | Iwatsu Electric Co Ltd | データ転送インタフエース装置 |
JPH05120211A (ja) * | 1991-10-28 | 1993-05-18 | Matsushita Electric Ind Co Ltd | データバス幅制御装置 |
JP2836321B2 (ja) * | 1991-11-05 | 1998-12-14 | 三菱電機株式会社 | データ処理装置 |
-
1994
- 1994-12-28 JP JP6327596A patent/JPH08185320A/ja active Pending
-
1995
- 1995-10-31 US US08/550,809 patent/US5621694A/en not_active Expired - Fee Related
- 1995-12-27 KR KR1019950058784A patent/KR0169555B1/ko not_active IP Right Cessation
- 1995-12-27 CN CN95120103.4A patent/CN1133454A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100351747C (zh) * | 2003-02-06 | 2007-11-28 | 松下电器产业株式会社 | 数据传送方法和数据传送设备 |
CN102150132A (zh) * | 2008-09-10 | 2011-08-10 | 瑞萨电子株式会社 | 信息处理装置 |
CN111656335A (zh) * | 2018-01-29 | 2020-09-11 | 美光科技公司 | 存储器控制器 |
CN111656335B (zh) * | 2018-01-29 | 2023-11-17 | 美光科技公司 | 存储器控制器 |
Also Published As
Publication number | Publication date |
---|---|
US5621694A (en) | 1997-04-15 |
KR0169555B1 (ko) | 1999-01-15 |
JPH08185320A (ja) | 1996-07-16 |
KR960025044A (ko) | 1996-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1133454A (zh) | 半导体集成电路 | |
CN1069423C (zh) | 排序系统和方法 | |
CN1102770C (zh) | 微处理器的功率估算方法 | |
CN1862515A (zh) | 数据传送装置、数据传送方法和程序 | |
CN1725642A (zh) | 可编程逻辑电路装置和可编程逻辑电路重配置方法 | |
CN1713185A (zh) | 数据流图处理方法、可重构电路及处理装置 | |
CN101063700A (zh) | 一种实现芯片测试的方法及装置 | |
CN1741193A (zh) | 非易失性存储装置 | |
CN100352165C (zh) | 半导体集成电路 | |
CN1551507A (zh) | 串行和并行之间的数据格式转换器 | |
CN1212400A (zh) | 数据处理装置 | |
CN1180900A (zh) | 同时输入和输出数据的双端的存储器 | |
CN101053158A (zh) | 可重构半导体集成电路及其处理分配方法 | |
CN1183462C (zh) | 可变流水线级数的数据处理装置 | |
CN1794459A (zh) | 单元、标准单元、标准单元库、使用标准单元的布局方法和半导体集成电路 | |
CN1819554A (zh) | 数据处理系统及其数据接口连接方法 | |
CN1471153A (zh) | 集成电路,系统开发方法,和数据处理方法 | |
CN1106097C (zh) | 含有两个缓冲器的帧同步器 | |
CN100340971C (zh) | 运算装置 | |
CN1960194A (zh) | 排序装置 | |
CN1940991A (zh) | 图像处理的可重配置地址生成电路及可重配置lsi | |
CN1206145A (zh) | 带有流水线处理电路的信号处理器及其方法 | |
CN1636185A (zh) | 逻辑计算系统和方法 | |
CN1229925A (zh) | 半导体集成电路 | |
CN1713369A (zh) | 用于半导体集成器件的设计方法、设计程序和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |