CN102483697B - 无存储器瓶颈的低能耗高速计算机 - Google Patents
无存储器瓶颈的低能耗高速计算机 Download PDFInfo
- Publication number
- CN102483697B CN102483697B CN201080033094.2A CN201080033094A CN102483697B CN 102483697 B CN102483697 B CN 102483697B CN 201080033094 A CN201080033094 A CN 201080033094A CN 102483697 B CN102483697 B CN 102483697B
- Authority
- CN
- China
- Prior art keywords
- travelling
- block
- memory
- lead
- cache
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 claims abstract description 51
- 230000001360 synchronised effect Effects 0.000 claims abstract description 3
- 230000000694 effects Effects 0.000 claims description 16
- 238000003491 array Methods 0.000 claims description 11
- 230000005855 radiation Effects 0.000 claims 2
- 238000012546 transfer Methods 0.000 abstract description 6
- 239000003990 capacitor Substances 0.000 description 84
- 239000004065 semiconductor Substances 0.000 description 74
- 230000005540 biological transmission Effects 0.000 description 37
- 238000000034 method Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 26
- 238000005265 energy consumption Methods 0.000 description 21
- 238000010276 construction Methods 0.000 description 13
- 239000010931 gold Substances 0.000 description 12
- 230000006399 behavior Effects 0.000 description 9
- 229910045601 alloy Inorganic materials 0.000 description 8
- 239000000956 alloy Substances 0.000 description 8
- 239000010949 copper Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 229910003460 diamond Inorganic materials 0.000 description 7
- 239000010432 diamond Substances 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 229910002056 binary alloy Inorganic materials 0.000 description 5
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 4
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 4
- JDNQIVVMUDFBLD-UHFFFAOYSA-N [Ni][In][Au] Chemical compound [Ni][In][Au] JDNQIVVMUDFBLD-UHFFFAOYSA-N 0.000 description 4
- 230000004913 activation Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 229910052802 copper Inorganic materials 0.000 description 4
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 4
- 229910052737 gold Inorganic materials 0.000 description 4
- MSNOMDLPLDYDME-UHFFFAOYSA-N gold nickel Chemical compound [Ni].[Au] MSNOMDLPLDYDME-UHFFFAOYSA-N 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 229910052709 silver Inorganic materials 0.000 description 4
- 239000004332 silver Substances 0.000 description 4
- 229910000679 solder Inorganic materials 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 244000287680 Garcinia dulcis Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/08—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
- G11C19/18—Digital stores in which the information is moved stepwise, e.g. shift registers using capacitors as main elements of the stages
- G11C19/182—Digital stores in which the information is moved stepwise, e.g. shift registers using capacitors as main elements of the stages in combination with semiconductor elements, e.g. bipolar transistors, diodes
- G11C19/184—Digital stores in which the information is moved stepwise, e.g. shift registers using capacitors as main elements of the stages in combination with semiconductor elements, e.g. bipolar transistors, diodes with field-effect transistors, e.g. MOS-FET
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Advance Control (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
Abstract
一种计算机系统包括处理器(11)和行进式主存储器(31),该处理器包括控制块(111)和ALU(112),ALU(112)被配置为与时钟信号同步地执行算术和逻辑运算;该行进式主存储器包括存储器块阵列,被配置为将信息存储在每个存储器块中,以及与时钟信号同步地传送,从而向处理器(11)活动且顺序地提供所存储的信息,以便ALU(112)能够利用所存储的信息执行算术和逻辑运算。ALU(112)中的处理结果被发送到行进式主存储器(31),但是仅仅存在从行进式主存储器(31)到处理器的单向指令流。
Description
技术领域
本发明涉及以低能耗和高速运行的计算机系统。
背景技术
自从冯诺依曼(von Neumann)等人在60多年前开发了存储程序的电子计算机以来,基础的存储器访问理论就没有改变过。尽管在高性能计算(HPC)应用的整个范围内计算机的处理速度近年来显著地提高,但是这是通过避免存储器访问的装置技术或方案(例如使用高速缓存)来实现的。然而,存储器访问时间仍然限制着性能。如图1中所示,当前的计算机系统使用许多的处理器11和大规模主存储器331。
图1中示出的计算机系统包括处理器11、高速缓存存储器(321a、321b)和主存储器331。处理器11包括具有被配置为生成时钟信号的时钟发生器113的控制块111、被配置为与所述时钟信号同步地执行算术和逻辑运算的算术逻辑块(ALU)112、与控制块111相连的指令寄存器文件(RF)322a和与ALU112相连的数据寄存器文件(RF)322b。高速缓存存储器(321a、321b)具有指令高速缓存存储器321a和数据高速缓存存储器321b。主存储器331的一部分和指令高速缓存存储器321a通过布线和/或总线电连接,这限制了存储器访问时间(或具有冯诺依曼瓶颈)351。主存储器331的剩余部分和数据高速缓存存储器321b电连接来实现类似的存储器访问351。此外,在数据高速缓存存储器321b和指令高速缓存存储器321a、以及指令寄存器文件322a和数据寄存器文件322b之间电连接实现存储器访问352的布线和/或总线。
尽管期望HPC系统以高速和低能耗运行,但是由于存储器访问瓶颈351、352,因此还是存在速度限制。由于布线长度延迟了对计算机的访问、并且布线之间存在的寄生电容造成了额外的延迟,因此瓶颈351、352可被归因于处理器11和主存储器331之间的布线。这种电容需要与处理器11的时钟频率成正比的更多的功耗。
当前使用若干向量算术流水线来实现一些HPC处理器。这种向量处理器更好地使用存储器带宽,并且是能够以向量记法表达的用于HPC应用的高级机器。从源程序中的循环中得到向量指令,并且在向量处理器中的算术流水线或并行处理器中的对应块中执行这些向量指令中的每一个。这些处理方案的结果给出了相同的结果。
然而,即便基于向量处理器的系统在所有块之间也具有存储器瓶颈351、352。即便在具有宽存储器和大带宽的单个系统中,也出现相同的瓶颈351、352,并且如果系统包括许多与在并行处理器中相同的块,则瓶颈351、352是无法避免的。
在常规的计算机系统中存在两个基本的存储器访问问题。第一个问题是布线不仅被布置在存储器芯片和高速缓存之间、或者被布置在甚至位于一个芯片上的这两个块之间,而且也被布置在存储器系统的内部。由于容量和布线信号时间延迟,在这两个芯片/块之间的布线导致更多的动态功耗。这是与访问线和剩余读取/写入线相关的存储器芯片内的内部布线问题的延伸。因此在存储器芯片的内部及其之间的布线中,均存在由伴随这些布线的电容导致的功耗。
第二个问题是处理器芯片、高速缓存和存储器芯片之间的存储器瓶颈351,352。由于ALU可以访问高速缓存或存储器的任意部分,所以访问路径351,352由很长长度的全局布线组成。这些路径在可用布线数目上也是受限的。这种瓶颈似乎是由于比如总线的硬件造成的。特别是在存在高速CPU和大容量存储器时,在这两者之间基本上存在明显的瓶颈。
去除所述瓶颈的关键在于具有与所述CPU相同的存储器时钟周期。首先,必须创建寻址进程来改进存储器访问。其次,在存储器内部和存储器外部都必须显著地减少由于较长的布线造成的时间延迟。
通过解决这两个问题,进行存储器和CPU之间的快速耦合,这个事实使得能够实现无存储器瓶颈的计算机。
因为这些问题,所述处理器消耗总能量的70%,该70%被分为用于供应指令的42%以及用于数据的28%,如图32中所示。所述布线问题不仅产生功耗,而且产生信号的时间延迟。克服所述布线问题意味着消除限制数据/指令的流动的瓶颈351,352。如果能够去除芯片内/芯片间的布线,则将解决功耗问题、时间延迟问题以及存储器瓶颈351,352问题。
发明内容
本发明的特有方面是计算机系统,该计算机系统包括:(a)处理器,该处理器包括控制块和算术逻辑块,所述控制块具有被配置为生成时钟信号的时钟发生器,所述算术逻辑块被配置为与所述时钟信号同步地执行算术和逻辑运算;以及(b)行进式主存储器,该行进式主存储器包括存储器块阵列、所述阵列的输入端子和所述阵列的输出端子,所述存储器块通常称为存储块,每个存储器块具有信息块,所述行进式主存储器被配置为将信息存储在每个所述存储器块中,以及与所述时钟信号同步地、逐步向所述输出端子传送信息,从而向所述处理器活动且顺序地提供所存储的信息,以便所述算术逻辑块可以利用所存储的信息执行所述算术和逻辑运算,另外,除了在指令移动的情况下,仅仅存在从所述行进式主存储器到所述处理器的单向指令流之外,所述算术逻辑块中的处理结果被发送到所述行进主存储器。
附图说明
图1例示了示出常规计算机系统的组织的示意方框图;
图2例示了本发明的第一实施例的计算机系统的基本组织的示意方框图;
图3例示了用于实现在本发明的第一实施例的计算机系统中使用的行进式主存储器的存储器块阵列以及所述行进式主存储器中的信息传送;
图4例示了在本发明的第一实施例的计算机系统中使用的行进式主存储器的单元级(cell level)表示;
图5例示了被配置为施加到在本发明的第一实施例的计算机系统中使用的行进式主存储器的时钟信号的波形的示例;
图6例示了在本发明的第一实施例的计算机系统中使用的行进式主存储器的单元级表示中的每个单元中的AND门的电路配置的示例;
图7例示了用于实现在本发明的第一实施例的计算机系统中使用的反向行进式主存储器的存储器块阵列以及所述反向行进式主存储器中的信息反向传送;
图8(a)例示了用于实现图7中示出的反向行进式主存储器的单元级表示中的第i行的阵列上的单元的每个中的AND门的电路配置的示例,以及图8(b)例示了被配置为施加到图7中示出的反向行进式主存储器的时钟信号的波形的示例;
图9例示了本发明的第一实施例的计算机系统中的行进式主存储器中的存储器块流时间(memory unit streaming time)和处理器(CPU)中的时钟周期之间的时域关系;
图10示意性地例示了本发明的第一实施例的计算机系统的组织,其中在本发明的第一实施例的计算机系统中,处理器(CPU)和包括所述行进式主存储器的行进式存储器结构之间的存储器瓶颈消失;
图11(a)例示了本发明的第一实施例的计算机系统中的从包括所述行进式主存储器的行进式存储器结构流向处理器(CPU)的前向数据流以及从所述处理器(CPU)流向所述行进式存储器结构的后向数据流,以及图11(b)例示了在所述行进式存储器结构的存储器块流时间等于所述处理器(CPU)的时钟周期的理想条件下,所述行进式存储器结构和所述处理器(CPU)之间建立的带宽;
图12(a)例示了信息的行进行为(前向行进行为)的具体图像,其中在一维行进式主存储器中信息朝向右手方向行进(移动),图12(b)例示了所述一维行进式主存储器的保持状态(staying state),以及图12(c)例示了信息的反向行进行为(后向行进行为)的具体图像,其中在本发明的第一实施例的计算机系统中的一维行进式主存储器中,信息朝向左手方向行进(移动);
图13例示了可以实现图12(a)-(c)中示出的双向传送行为的一维行进式主存储器的电路配置的示例,该一维行进式主存储器被配置为在本发明的第一实施例的计算机系统中存储和双向传送指令或标量数据;
图14(a)例示了与处理器相邻的一维行进式主存储器中的指令的双向传送模式,所述指令朝向所述处理器移动,以及移自/移到布置在左手侧的下一存储器,图14(b)例示了与ALU相邻的一维行进式主存储器中的标量数据的双向传送模式,所述标量数据朝向所述ALU移动,以及移自/移到所述下一存储器,以及图14(c)例示了与流水线相邻的一维行进式主存储器中的向量/流数据的单向传送模式,所述向量/流数据朝向所述流水线移动,以及移自所述下一存储器;
图15(a)与图15(b)比较,图15(a)例示了现有存储器的内部配置,其中每个存储器块利用地址标记,以及图15(b)例示了本发明的一维行进式主存储器的内部配置,其中单个存储器块的定位对于识别向量/流数据中的一组连续存储器块的起始点和结束点至少是必需的;
图16(a)例示了本发明的一维行进式主存储器的内部配置,其中个体存储器块的定位对于识别向量指令中的一组连续存储器块的起始点和结束点至少是必需的,图16(b)例示了本发明的用于标量数据的一维行进式主存储器的内部配置,图16(c)例示了本发明的一维行进式主存储器的内部配置,其中位置索引对于识别向量/流数据中的一组连续存储器块的起始点和结束点至少是必需的;
图17(a)示意性地例示了针对向量/流数据情况的利用多个页实现的本发明的行进式主存储器的整体配置的示例,图17(b)示意性地例示了针对向量/流数据情况的利用多个文件实现的本发明的行进式主存储器的整体配置的示例,以及图17(c)示意性地例示了本发明的第一实施例的计算机系统中的所述文件中的一个文件的配置的示例,所述文件中的每个是针对向量/流数据情况利用多个存储器块实现的;
图18(a)示意性地例示了针对程序/标量数据情况的利用多个页实现的本发明的行进式主存储器的整体配置的示例,其中每页将它自己的位置索引作为地址,图18(b)示意性地例示了所述多个页中的一页的配置以及使用二进制系统的数字表示的该页的驱动位置的示例,每个所述页针对程序/标量数据情况利用多个文件实现,以及每个文件将它自己的位置索引作为地址,以及图18(c)示意性地例示了本发明的第一实施例的计算机系统中的所述多个文件中的一个文件的配置以及使用二进制系统的数字表示的该文件的驱动位置的示例,对于程序/标量数据情况通过多个存储器块实现每个所述文件,其中每个存储器块将它自己的位置索引作为地址;
图19(a)示意性地例示了与在本发明的第一实施例的计算机系统中使用的行进式主存储器的速度/能力相比较的现有存储器的速度/能力,以及图19(b)示意性地例示了与图19(a)中示出的现有存储器的速度/能力相比较的所述行进式主存储器的速度/能力;
图20(a)示意性地例示了与在本发明的第一实施例的计算机系统中使用的行进式主存储器的速度/能力相比较的现有存储器的针对标量指令的最坏情况的速度/能力,以及图20(b)示意性地例示了与图20(a)中示出的现有存储器的最坏情况的速度/能力相比较的行进式主存储器的速度/能力;
图21(a)示意性地例示了与在本发明的第一实施例的计算机系统中使用的行进式主存储器的速度/能力相比较的现有存储器的针对标量指令的中等情况的速度/能力,以及图21(b)示意性地例示了与图21(a)中示出的现有存储器的中等情况的速度/能力相比较的行进式主存储器的速度/能力;
图22(a)示意性地例示了与在本发明的第一实施例的计算机系统中使用的行进式主存储器的速度/能力相比较的现有存储器的针对标量数据情况的中等情况的速度/能力,以及图22(b)示意性地例示了与图22(a)中示出的现有存储器的中等情况的速度/能力相比较的行进式主存储器的速度/能力;
图23(a)示意性地例示了与在本发明的第一实施例的计算机系统中使用的行进式主存储器的速度/能力相比较的现有存储器的针对流数据及数据并行情况的最好情况的速度/能力,以及图23(b)示意性地例示了与图23(a)中示出的现有存储器的最好情况的速度/能力相比较的行进式主存储器的速度/能力;
图24例示了用于实现在本发明的第一实施例的计算机系统中使用的行进式主存储器的二维存储器块阵列的示例,所述存储器块中的每一个用于存储和传送数据或指令;
图25例示了用于实现在本发明的第一实施例的计算机系统中使用的行进式主存储器的二维存储器块阵列的另一示例,所述存储器块中的每一个用于存储和传送数据或指令;
图26例示了用于实现在本发明的第一实施例的计算机系统中使用的行进式主存储器的二维存储器块阵列的又一示例,所述存储器块中的每一个用于存储和传送数据或指令;
图27例示了用于实现在本发明的第一实施例的计算机系统中使用的行进式主存储器的二维存储器块阵列的又一示例,所述存储器块中的每一个用于存储和传送数据或指令;
图28例示了用于实现在本发明的第一实施例的计算机系统中使用的行进式主存储器的二维存储器块阵列的又一示例,所述存储器块中的每一个用于存储和传送数据或指令;
图29例示了用于实现在本发明的第一实施例的计算机系统中使用的行进式主存储器的二维存储器块阵列的又一示例,所述存储器块中的每一个用于存储和传送数据或指令;
图30例示了用于实现在本发明的第一实施例的计算机系统中使用的行进式主存储器的二维存储器块阵列的又一示例,所述存储器块中的每一个用于存储和传送数据或指令;
图31(a)例示了当前微处理器中的器件级能耗,被分解为静态能耗和动态能耗,图31(b)例示了图31(a)中示出的动态能耗中的功耗的净值和开销,以及图31(c)例示了当前微处理器中的净能耗;
图32例示了通过Dally估计的常规体系架构中的包括寄存器和高速缓存的处理器上的实际能耗分布;
图33(a)例示了常规的基于高速缓存的体系架构中的能耗,将所述高速缓存存储器中的能耗分解为静态能耗和动态能耗,以及图33(b)例示了根据本发明的第三实施例的计算机系统中的能耗,将所述行进式高速缓存存储器中的能耗分解为静态能耗和动态能耗;
图34例示了示出本发明的第二实施例的计算机系统的组织的方框示意图;
图35例示了示出本发明的第三实施例的计算机系统的组织的方框示意图;
图36(a)例示了本发明的第三实施例的计算机系统中的算术流水线和行进式寄存器块的组合,以及图36(b)例示了本发明的第三实施例的计算机系统中的行进式高速缓存块阵列;
图37例示了根据本发明的第三实施例的修改例的利用单个处理器内核、行进式高速缓存存储器以及行进式寄存器文件的组合实现的计算机系统的组织的方框示意图;
图38例示了根据本发明的第三实施例的另一修改例的利用单个算术流水线、行进式高速缓存存储器以及行进式向量寄存器文件的组合实现的计算机系统的组织的方框示意图;
图39例示了根据本发明的第三实施例的又一修改例的利用多个处理器内核、行进式高速缓存存储器以及行进式寄存器文件的组合实现的计算机系统的组织的方框示意图;
图40例示了根据本发明的第三实施例的另一修改例的利用多个算术流水线、行进式高速缓存存储器以及行进式向量寄存器文件的组合实现的计算机系统的组织的方框示意图;
图41(a)例示了利用多个算术流水线、多个常规高速缓存存储器、多个常规向量寄存器文件(RF)以及常规主存储器的组合实现的常规计算机系统的组织的方框示意图,其中所述常规高速缓存存储器和常规主存储器之间产生瓶颈,以及图41(b)例示了根据本发明的第三实施例的又一修改例的利用多个算术流水线、多个行进式高速缓存存储器、多个行进式向量寄存器文件以及行进式主存储器的组合实现的计算机系统的组织的方框示意图,其中不产生瓶颈;
图42例示了示出本发明的第四实施例的高性能计算(HPC)系统的组织的方框示意图;
图43例示了示出本发明的第五实施例的计算机系统的组织的方框示意图;
图44(a)例示了在本发明的第五实施例的计算机系统中使用的三维行进式主存储器的剖面图,图44(b)例示了在本发明的第五实施例的计算机系统中使用的三维行进式高速缓存的剖面图,以及图44(c)例示了在本发明的第五实施例的计算机系统中使用的三维行进式寄存器文件的剖面图;
图45例示了在本发明的第五实施例的计算机系统中使用的三维配置的透视图;
图46例示了在本发明的第五实施例的计算机系统中使用的另一三维配置的透视图;
图47例示了图46中示出的三维配置的剖面图;
图48例示了在本发明的第五实施例的计算机系统中使用的另一三维配置的剖面图;
图49通过表示本发明的第五实施例的计算机系统中的控制路径,示意性地例示了用于执行所述控制处理的计算机系统中的基本内核的三维配置的剖面图;
图50通过表示本发明的第五实施例的计算机系统中的标量数据的数据路径,示意性地例示了用于执行所述标量数据处理的计算机系统中的基本内核的三维配置的剖面图;
图51通过表示本发明的第五实施例的计算机系统中的向量/流数据的数据路径,示意性地例示了用于执行所述向量/流数据处理的计算机系统中的基本内核的三维配置的剖面图;
图52通过表示本发明的第五实施例的计算机系统中的标量数据路径和控制路径的组合,示意性地例示了被配置为执行计算机系统的标量数据部分的计算机系统中的基本内核的三维配置的剖面图,其中多个处理块(CPU)不仅执行标量数据而且执行向量/流数据,设置成流水线的(pipelined)ALU被包括在所述处理块中;
图53例示了MISD体系架构中的标量/向量数据的比特级并行处理;
图54例示了SIMD体系架构中的向量数据的并行处理;
图55例示了向量处理中的典型链;
图56例示了MISD体系架构中的标量/向量数据的并行处理;和
图57例示了MISD体系架构中的标量/向量数据的并行处理。
具体实施方式
将参照附图描述本发明的各个实施例。要注意的是,在整个附图中,相同或相似参考标记被施加给相同或相似部分和元素,相同或相似部分和元素的描述将被省略或简化。通常并且在半导体器件的表示中是常规的,将明白的是,各个附图从一个附图到另一附图不是按比例绘制,并且在给定附图内部也不是按比例绘制,特别是为了便于阅读附图,层厚被任意绘制。在下面的描述中,阐述了具体细节,比如特定材料、过程和设备,以便提供对本发明的全面理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实现本发明。在其它实例中,对公知的制造材料、过程和设备不进行详细阐述,以便不对本发明产生不必要的混淆。比如“之上”、“在……上方”、“之下”、“在……下方”以及“正交的”的介词相对于衬底的平面表面来定义,而不管所述衬底实际保持的方位如何。即使存在中间层,一层仍在另一层之上。
--第一实施例--
(计算机系统的基本组织)
如图2中所示,本发明的第一实施例的计算机系统包括处理器11以及行进式主存储器31。处理器11包括控制块111和算术逻辑块(ALU)112,控制块111具有被配置为生成时钟信号的时钟发生器113,ALU112被配置为与时钟信号同步地执行算术和逻辑运算。如图3中所示,行进式主存储器31包括存储器块U1,U2,U3,……,Un-1,Un的阵列、阵列的输入端子以及阵列的输出端子,存储器块U1,U2,U3,……,Un-1,Un中的每一个具有信息块,该信息包括数据或指令的字尺寸。如图3中所示,行进式主存储器31将信息存储在存储器块U1,U2,U3,……,Un-1,Un中的每一个中,并且与时钟信号同步地,逐步地将信息传送到输出端子,以便活动且顺序地向处理器111提供所存储的信息,从而ALU112可以利用所存储的信息执行算术和逻辑运算。
如图2中所示,行进式主存储器31和处理器11利用多个结合件54电连接。例如,每个结合件54可以通过被连接到行进式主存储器31的第一端子管脚、被连接到处理器11的第二端子管脚以及置于第一端子管脚和第二端子管脚之间的导电突起实现。对于导电突起的材料,焊料球、金(Au)突起、银(Ag)突起、铜(Cu)突起、镍金(Ni-Au)合金突起或镍金铟(Ni-Au-In)合金突起等是可接受的。经过ALU112中的处理所得到的数据通过结合件54被发送到行进式主存储器31。因此,如双向箭头φ(希腊字母)12所示,通过结合件54,在行进式主存储器31和处理器11之间双向传送数据。相反,如单向箭头η(希腊字母)11所示,对于指令运动,仅仅存在从行进式主存储器31到处理器11的单向指令流。
如图2中所示,本发明的第一实施例的计算机系统的组合还包括比如磁盘的外部辅助存储器41、输入块61、输出块62以及输入/输出(I/O)接口电路63。类似于常规的von Neumann计算机,信号或数据由输入块61接收,信号或数据从输出块62发送。例如,公知的键盘和公知的鼠标可以被认为是输入块61,而公知的监视器和打印机可以被认为是输出块62。用于计算机之间的通信的公知设备,比如调制解调器和网卡等,通常服务于输入块61和输出块62两者。输入块61将人类用户所提供的物理运动用作输入,并且将其变换为第一实施例的计算机系统可以理解的信号。例如,输入块61将到来的数据和指令变换为二进制代码形式的电信号模式,该电信号模式可被第一实施例的计算机系统理解,通过I/O接口电路63,输入块61的输出被输送到行进式主存储器31。输出块62将行进式主存储器31通过I/O接口电路63提供的信号用作输入。输出块62随后将这些信号变换为人类用户可以看见或阅读的表示,与所述输入块61的过程相反,将数字化的信号转换为用户可读的形式。只要处理器11驱动输入块61和输出块62,就需要I/O接口电路63。处理器11可以通过I/O接口电路63,与输入块61和输出块62通信。如果在正在交换格式不同的数据的情况下,则I/O接口电路63将串行数据变换为并行形式,并将并行数据变换为串行形式。如果需要,则生成中断以及供处理器11进一步处理的对应类型数值。
辅助存储器41比行进式主存储器31更为长期地存储数据和信息。行进式主存储器31主要涉及存储当前执行的程序以及当前被使用的数据,辅助存储器41通常存储即使计算机断电或者当前没有程序执行时也需要保存的任何东西。辅助存储器41的示例是公知的硬盘(或音频驱动器)以及公知的外部介质驱动器(比如CD-ROM驱动器)。这些存储方法大多被广泛使用来存储计算机的操作系统、用户的软件集合以及用户期望的任何其它数据。尽管硬盘驱动器被使用来半永久地存储数据和软件以及外部介质驱动器被使用来保存其它数据,但是这种设置根据可用存储的不同形式以及使用每个存储的便利性胡乱地改变。如双向箭头φ(希腊字母)1所示,通过现有的布线连接53,在辅助存储器41、行进式主存储器31和处理器11之间双向地传送数据。
尽管图示被省略,但是在图2中示出的第一实施例的计算机系统中,处理器11可以包括多个算术流水线,算术流水线被配置为通过输出端子从行进式主存储器31接收所存储的信息,并且如单向箭头φ(希腊字母)12所示,通过结合件54,在行进式主存储器31和多个算术流水线之间双向地传送数据。
在图2中示出的第一实施例的计算机系统中,因为即使在处理器11和行进式主存储器31之间进行任何数据交换时,整个计算机系统也没有全局布线(global wires),所以不存在包括数据总线和地址总线的总线,而布线或总线造成常规计算机系统中的瓶颈。在行进式主存储器31中仅仅存在短的局部布线,或者行进式主存储器31和对应的ALU112之间的连接部分。由于不存在产生时间延迟以及这些布线之间的寄生电容的全局布线,所以第一实施例的计算机系统可以实现快得多的处理速度以及更低的功耗。
(行进式主存储器的单元级表示)
在大多数常规计算机中,地址解析的单位是字符(例如,字节)或字。如果该单位是字,则可以使用给定尺寸的地址来访问较大量的存储器。另一方面,如果该单位是字节,则可以对单个字符寻址(即,在存储器操作期间选择)。机器指令通常是体系架构的字尺寸的几分之一或倍数。这是自然的选择,因为指令和数据通常共享相同的存储器子系统。
图4对应于图3中示出的行进式主存储器31的单元级表示。在图4中,m*n矩阵的第一列表示图3中示出的第一存储器块U1,该第一列利用单元M11,M21,M31,……,Mm-1,1,Mm1的垂直阵列实现。其中,“m”是利用字尺寸确定的整数。尽管字尺寸的选择是非常重要的,但是当设计计算机体系架构时,字尺寸通常是8个比特的倍数,其中通常使用16、32或64比特。类似地,m*n矩阵的第二列表示第二存储器块U2,该第二列利用单元M12,M22,M32,……,Mm-1,2,Mm2的垂直阵列实现;m*n矩阵的第三列表示第三存储器块U3,该第三列利用单元M13,M23,M33,……,Mm-1,3,Mm3的垂直阵列实现;……;m*n矩阵的第(n-1)列表示第(n-1)存储器块Un-1,该第(n-1)列利用单元M1,n-1,M2,n-1,M3,n-1,……,Mm-1,n-1,Mm,n-1的垂直阵列实现;以及m*n矩阵的第n列表示第n存储器块Un,该第n列利用单元M1,n,M2,n,M3,n,……,Mm-1,n,Mm,n的垂直阵列实现。
在图4中示出的行进式主存储器31的单元级表示中,分配在第一行的最左侧且连接到输入端子I1的第一单元M11包括电容器C11以及AND门G11,该电容器C11被配置为存储信息,AND门G11的一个输入端连接到电容器C11,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给第一行上的相邻第二单元M12的下一AND门G12。图5中示出了时钟信号的波形的示例。当时钟信号的逻辑值“1”被输送到AND门G11的另一输入端时,电容器C11中存储的信息被传送到被分配给相邻第二单元M12的电容器C12,该电容器C12存储信息。即,行进式主存储器31的单元级表示中的第一行上的第二单元M12包括电容器C12和AND门G12,AND门G12的一个输入端连接到电容器C12,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给第一行上的相邻第三单元M13的下一AND门G13的一个输入端。类似地,行进式主存储器31的单元级表示中的第一行上的第三单元M13包括电容器C13和AND门G13,电容器C13被配置为存储信息,AND门G13的一个输入端连接到电容器C13,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给相邻第四单元的下一AND门的一个输入端,但是第四单元的图示被省略。因此,当逻辑值“1”被输送到AND门G12的另一输入端时,电容器C12中存储的信息被传送到分配给第三单元M13的电容器C13,并且电容器C13存储信息,以及当逻辑值“1”被输送到AND门G13的另一输入端时,电容器C13中存储的信息被传送到分配给第四单元的电容器。此外,行进式主存储器31的单元级表示中的第一行上的第(n-1)单元M1,n-1包括电容器C1,n-1和AND门G1,n-1,电容器C1,n-1被配置为存储信息,AND门G1,n-1的一个输入端连接到电容器C1,n-1,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给相邻第n单元的下一AND门G1,n的一个输入端,该第n单元被分配在第一行的最右侧并且连接到输出端子O1。因此,单元M1,1,M1,2,M1,3,……,M1,n-1,M1,n中的每一个存储信息,并且与时钟信号同步,逐步地向输出端子O1传送信息,以便活动且顺序地向处理器11提供所存储的信息,从而ALU112可以利用所存储的信息执行算术和逻辑运算。
类似地,在图4中示出的行进式主存储器31的单元级表示中,分配在第二行的最左侧且连接到输入端子I2的第一单元M21包括电容器C21以及AND门G21,AND门G21的一个输入端连接到电容器C21,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给第二行上的相邻第二单元M22的下一AND门G22。行进式主存储器31的单元级表示中的第二行上的第二单元M22包括电容器C22和AND门G22,AND门G22的一个输入端连接到电容器C22,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给第二行上的相邻第三单元M23的下一AND门G23的一个输入端。类似地,行进式主存储器31的单元级表示中的第二行上的第三单元M23包括电容器C23和AND门G23,AND门G23的一个输入端连接到电容器C23,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给相邻第四单元的下一AND门的一个输入端。此外,行进式主存储器31的单元级表示中的第二行上的第(n-1)单元M2,n-1包括电容器C2,n-1和AND门G2,n-1,AND门G2,n-1的一个输入端连接到电容器C2,n-1,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给相邻第n单元的下一AND门G2,n的一个输入端,该第n单元被分配在第二行的最右侧并且连接到输出端子O2。因此,第二行上的单元M2,1,M2,2,M2,3,……,M2,n-1,M2,n中的每个存储信息,并且与时钟信号同步,逐步地朝向输出端子O2传送信息,以便活动且顺序地向处理器11提供所存储器的信息,从而ALU112可以利用所存储的信息执行算术和逻辑运算。
在第三行,分配在最左侧且连接到输入端子I3的第一单元M31、与第一单元M31相邻的第二单元M32、与第二单元M32相邻的第三单元M33、……、第(n-1)单元M3,n-1以及第n单元M3n被对齐,该第n单元M3n被分配在第三行的最右侧且连接到输出端子O3。并且,第三行上的单元M3,1,M3,2,M3,3,……,M3,n-1,M3,n中的每个存储信息,并且与时钟信号同步,逐步地朝向输出端子O3传送信息,以便活动且顺序地向处理器11提供所存储器的信息,从而ALU112可以利用所存储的信息执行算术和逻辑运算。
在第(m-1)行,分配在最左侧且连接到输入端子Im-1的第一单元M(m-1),1、与第一单元M(m-1),1相邻的第二单元M(m-1),2、与第二单元M(m-1),2相邻的第三单元M(m-1),3、……、第(n-1)单元M(m-1),n-1以及第n单元M(m-1),n被对齐,该第n单元M(m-1),n被分配在第(m-1)行的最右侧且连接到输出端子Om-1。并且,第(m-1)行上的单元M(m-1),1,M(m-1),2,M(m-1),3,……,M(m-1),n-1,M(m-1),n中的每个存储信息,并且与时钟信号同步,逐步地朝向输出端子Om-1传送信息,以便活动且顺序地向处理器11提供所存储器的信息,从而ALU112可以利用所存储的信息执行算术和逻辑运算。
在第m行,分配在最左侧且连接到输入端子Im的第一单元Mm1、与第一单元Mm1相邻的第二单元Mm2、与第二单元Mm2相邻的第三单元Mm3、……、第(n-1)单元Mm,n-1以及第n单元Mmn被对齐,该第n单元Mmn被分配在第m行的最右侧且连接到输出端子Om。并且,第m行上的单元Mm1,Mm2,Mm3,……,Mm,n-1,Mmn中的每个存储信息,并且与时钟信号同步,逐步地朝向输出端子Om传送信息,以便活动且顺序地向处理器11提供所存储器的信息,从而ALU112可以利用所存储的信息执行算术和逻辑运算。
图6中例示了AND门Gij,Gi,j+1,Gi+1,j,Gi+1,j+1的电路配置的一个示例,AND门Gij,Gi,j+1,Gi+1,j,Gi+1,j+1可以用于第一实施例的行进式主存储器31的单元级表示中的第i行上的第j单元Mij、第i行上的第j+1单元Mi,j+1、第i+1行上的第j单元Mi+1,j、第i+1行上的第j+1单元Mi+1,j+1,但是存在各种用于实现本发明的AND门的电路配置。
第i行上的第j单元Mij包括第j电容器Cij以及第j AND门Gij,电容器Cij被配置为存储信息,AND门Gij的一个输入端连接到电容器Cij,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给第i行上的相邻的第j+1单元Mi,j+1的下一第(j+1)AND门Gi,j+1的一个输入端。第j AND门Gij包括:第一pMOS晶体管Qij1,第一pMOS晶体管Qij1的源极连接到电源线VDD,栅极连接到时钟信号供应线;与第一pMOS晶体管Qij1并联的第二pMOS晶体管Qij2,第二pMOS晶体管Qij2的源极连接到电源线VDD,栅极连接第j电容器Cij的一个电极以及先前的第(j-1)AND门Gi,j-1的输出端,并且漏极连接到第一pMOS晶体管Qij1的漏极;第一nMOS晶体管Qij3,第一nMOS晶体管Qij3的源极连接到结合第一和第二pMOS晶体管Qij1、Qij2的漏极的公共节点,并且栅极连接到时钟信号供应线;与第一nMOS晶体管Qij3串联的第二nMOS晶体管Qij4,第二nMOS晶体管Qij4的源极连接到第一nMOS晶体管Qij3的漏极,栅极连接到第二pMOS晶体管Qij2的栅极、第j电容器Cij的一个电极以及先前的第(j-1)AND门Gi,j-1的输出端,漏极连接到地电势;第三pMOS晶体管Qij5,第三pMOS晶体管Qij5的源极连接到电源线VDD,以及栅极连接到结合第一和第二pMOS晶体管Qij1、Qij2的漏极的公共节点;以及与第三pMOS晶体管Qij5串联的第三nMOS晶体管Qij6,第三nMOS晶体管Qij6的源极连接到第三pMOS晶体管Qij5的漏极,栅极连接到第三pMOS晶体管Qij5的栅极以及结合第一和第二pMOS晶体管Qij1、Qij2的漏极的公共节点,并且漏极连接地电势。这里,第一pMOS晶体管Qij1、第二pMOS晶体管Qij2、第一nMOS晶体管Qij3和第二nMOS晶体管Qij4实现NAND门,该NAND门的一个输入端连接到第j电容器Cij,并且另一输入端连接到时钟信号供应线。第三pMOS晶体管Qij5和第三nMOS晶体管Qij6实现非门,该非门的输入端连接到第j单元Mij的NAND门的输出端,并且输出端连接到被分配给相邻的第(j+1)单元Mi,j+1的下一第(j+1)AND门Gi,j+1的一个输入端。
如图6中所示,AND门Gi,j+1,Gi+1,j,Gi+1,j+1的其它电路配置也可以分别利用六个MOS晶体管实现。因为AND门Gi,j+1,Gi+1,j,Gi+1,j+1的电路配置基本上类似于AND门Gi,j的电路配置,所以省略AND门Gi,j+1,Gi+1,j,Gi+1,j+1的电路配置的详细描述,以避免描述重复和冗长,但是AND门Gi,j+1,Gi+1,j,Gi+1,j+1可以利用比如电阻器-晶体管逻辑等其它电路配置来实现,或者利用具有AND逻辑功能的各种半导体元件、磁性元件、超导元件或单个量子元件等来实现。
如图6中所示,行进式主存储器31的单元级表示与DRAM的单元级表示一样简单,其中每个存储器单元由一个电容器和一个AND门组成。AND门Gij,Gi,j+1,Gi+1,j,Gi+1,j+1中的每一个基于图3中示出的时钟,从左向右移位信号。特别地,对于在行进式主存储器31的每个存储器块中连续地正确执行移位动作而言,AND门Gij,Gi,j+1,Gi+1,j,Gi+1,j+1的每个中的时间延迟τ(希腊字母)d是非常重要的。
(反向行进式主存储器)
图3到图6例示了行进式主存储器,该行进式主存储器用于将信息存储在存储器块U1,U2,U3,……,Un-1,Un中的每一个中,并且与时钟信号同步,逐步地将信息从输入端子向输出端子传送,而图7例示了另一行进式主存储器。
在图7中,存储器块U1,U2,U3,……,Un-1,Un的每一个存储包括数据或指令的字尺寸的信息,并且与时钟信号同步,将处理器11利用在ALU112中执行的最终数据提供的信息,沿着相反的方向逐步地向输出端子传送。
图8(a)例示了图7中示出的另一行进式主存储器的单元级表示中的m*n矩阵中的第i行的阵列(这里,m是利用字尺寸确定的整数),该行进式主存储器将比特级的信息存储在阵列存储单元Mi1,Mi2,Mi3,……,Mi,n-1,Mi,n中的每个中,并且与时钟信号同步,沿着与图3-图6中示出的行进式主存储器相反的方向逐步地传送该信息,即,从输出端子OUT朝向输入端子IN。
如图8(a)中所示,在反向行进式主存储器中,分配在第i行的最右侧且连接到输入端子IN的第n单元Mi,n包括电容器Cin以及AND门Gin,该电容器Cin被配置为存储信息,AND门Gin的一个输入端连接到电容器Cin,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给第i行上的相邻第(n-1)单元Mi,(n-1)的前一AND门Gin-1的一个输入端。如图8(b)中所示,时钟信号具有逻辑值“1”或“0”,并且从时间“t”到时间“t+1”,保持逻辑值“1”。当逻辑值“1”被输送到AND门Gin的另一输入端时,电容器Cin中存储的信息被传送到被分配给第i行上的相邻第(n-1)单元Mi,n-1的电容器Ci, n-1,并且该电容器Ci,n-1存储信息。即,反向行进式主存储器31中的第i行上的第(n-1)单元Mi,n-1包括电容器Ci,n-1和AND门Gi,n-1,AND门Gi,n-1的一个输入端连接到电容器Ci,n-1,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给相邻的第三单元Mi,n-2(图示被省略)的前一AND门Gi,n-2的一个输入端。
类似地,反向行进式主存储器的第i行上的第三单元Mi3包括电容器Ci3和AND门Gi3,电容器Ci3被配置为存储信息,AND门Gi3的一个输入端连接到电容器Ci3,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给相邻的第二单元的前一AND门Gi,2的一个输入端。因此,当逻辑值“1”被输送到AND门Gi3的另一输入端时,电容器Ci3中存储的信息被传送到分配给第二单元Mi2的电容器Ci2,并且电容器Ci2存储信息。
此外,反向行进式主存储器的第i行上的第二单元Mi2包括电容器Ci2和AND门Gi2,电容器Ci2被配置为存储信息,AND门Gi2的一个输入端连接到电容器Ci2,另一输入端被配置为被提供时钟信号,并且输出端连接到被分配给相邻第一单元Mi1的前一AND门Gi1的一个输入端,该第一单元被分配在第i行的最左侧并且连接到输出端子OUT。
根据图7、图8(a)、图8(b)中示出的第一实施例的反向一维行进式主存储器31,不需要对所有存储器块U1,U2,U3,……,Un-1,Un进行刷新,因为所有的存储器块U1,U2,U3,……,Un-1,Un通常由于信息移动方案(信息行进方案)而被自动地刷新。并且因此对每个存储器块U1,U2,U3,……,Un-1,Un的寻址消失,并且所需求的信息向与存储器的边缘连接的它的目的地行进。访问第一实施例的反向一维行进式主存储器31的机制是对于从寻址模式开始来读取/写入信息的现有存储器方案的完全替代。因此,根据第一实施例的反向一维行进式主存储器31,无寻址模式的存储器访问比现有存储器方案更加简单。
图9示出了在本发明的第一实施例的计算机系统中使用的行进式主存储器31的概图,这不同于现有的计算机存储器,因为行进式主存储器31被有意地设计为具有存储以及通过行进式主存储器31中的所有存储器块U1,U2,U3,……,Un-1,Un传递信息/数据的功能。行进式存储器以与处理器(CPU)11相同的速度向处理器11提供信息/数据。如图9中的时域关系中所示,通过行进式主存储器31中的一个存储器块U1,U2,U3,……,Un-1,Un传送信息/数据所需的存储器块流时间Tmus等于处理器11中的时钟周期Tcc。行进式主存储器31将信息/数据存储在存储器块U1,U2,U3,……,Un-1,Un的每一个中,并且与时钟信号同步,逐步地朝向输出端子传送,以便向处理器11提供所存储的信息,从而算术逻辑块112可以利用所存储的信息/数据执行算术和逻辑运算。
因此,如图10中所示,行进式存储器结构3包括本发明的第一实施例的行进式主存储器31。术语“行进式存储器结构”意味着除了在与本发明的第一实施例有关的计算机系统中使用的行进式主存储器31之外,还包括行进式指令寄存器文件(RF)22a和连接到ALU112的行进式数据寄存器文件(RF)22b、以及行进式指令高速缓存存储器21a和行进式数据高速缓存存储器21b的存储器结构的一般性概念,该行进式指令寄存器文件(RF)22a和行进式数据寄存器文件(RF)22b将在下述第二实施例中进一步说明,该行进式指令高速缓存存储器21a和行进式数据高速缓存存储器21b将在下述的第三实施例中进一步说明。
图11(a)例示了从行进式存储器结构3流到处理器11的前向数据流Sf以及从处理器11流到行进式存储器结构3的后向数据流(反向数据流)Sb,以及图11(b)例示了在假设行进式存储器结构3中的存储器块流时间Tmus等于处理器11的时钟周期Tcc的情况下,在行进式存储器结构3和处理器11之间建立的带宽。
(双向行进式主存储器)
如图12(a)-(c)中所示,本发明的第一实施例的行进式主存储器31可以实现信息/数据的双向传送。也就是,图12(a)例示了信息/数据的前向行进行为,其中在一维行进式主存储器31中信息/数据向右手方向(前向)行进(移动),图12(b)例示了一维行进式主存储器31的保持状态(staying state),以及图12(c)例示了信息/数据的反向行进行为(后向行进行为),其中在一维行进式主存储器31中,信息/数据向左手方向(反向)行进(移动)。
图13例示了可以实现图12(a)-(c)中示出的双向行为的双向行进式主存储器31的单元级表示中的m*n矩阵的第i行的阵列(这里,m是利用字尺寸确定的整数)。
如图13中所示,两种AND门被分配给第i行上的单元Mi1,Mi2,Mi3,……,Mi,n-1,Mi,n中的每一个,以便建立信息/数据的双向传送。双向行进式主存储器31将比特级的信息/数据存储在单元Mi1,Mi2,Mi3,……,Mi,n-1,Mi,n中的每一个中,并且与时钟信号同步,逐步地沿着前向方向和/或反向方向(后向方向),在第一I/O选择器512和第二I/O选择器513之间双向地传送信息/数据。
在图13中示出的行进式主存储器31的单元级表示中,分配在第i行的最左侧且连接到第一I/O选择器512的第一单元Mi1包括电容器Ci1、前向AND门Gi1f以及后向AND门Gi1b,前向AND门Gi1f的一个输入端连接到电容器Ci1,另一输入端被提供第一时钟信号CL1,并且输出端连接到被分配给第i行上的相邻第二单元Mi2的下一前向AND门Gi2f,后向AND门Gi1b的一个输入端连接到电容器Ci1,另一输入端被提供第二时钟信号CL2,以及输出端连接到第一I/O选择器512。
被配置为驱动前向数据流的第一时钟信号CL1以及被配置为驱动后向数据流的第二时钟信号CL2分别由时钟选择器511选择,第一时钟信号CL1和第二时钟信号CL2中的每个都具有逻辑值“1”和“0”,并且从时间“t”到时间“t+1”,保持逻辑值“1”。当第一时钟信号CL1的逻辑值“1”被输送到前向AND门Gi1f的另一输入端时,电容器Ci1中存储的信息/数据被传送到分配给相邻的第二单元Mi2的电容器Ci2,并且该电容器Ci2存储信息/数据。
双向行进式主存储器31的第i行上的第二单元Mi2包括电容器Ci2、前向AND门Gi2f以及后向AND门Gi2b,前向AND门Gi2f的一个输入端连接到电容器Ci2,另一输入端被提供第一时钟信号CL1,并且输出端连接到被分配给第i行上的相邻第三单元Mi3的下一前向AND门Gi3f的一个输入端,后向AND门Gi2f的一个输入端连接到电容器Ci2,另一输入端被提供第二时钟信号CL2,并且输出端连接到前一后向AND门Gi3f的一个输入端。
类似地,第i行上的第三单元Mi3包括电容器Ci3、前向AND门Gi3f以及后向AND门Gi3b,前向AND门Gi3f的一个输入端连接到电容器Ci3,另一输入端被提供第一时钟信号CL1,并且输出端连接到被分配给相邻的第四单元Mi4的下一前向AND门的一个输入端,但是第四单元的图示被省略,后向AND门Gi3f的一个输入端连接到电容器Ci3,另一输入端被提供第二时钟信号CL2,并且输出端连接到相邻的第二单元Mi3的前一后向AND门Gi4f的一个输入端。因此,当第一时钟信号CL1的逻辑值“1”被输送到前向AND门Gi2f的另一输入端时,电容器Ci2中存储的信息/数据被传送到分配给第三单元Mi3的电容器Ci3,并且该电容器Ci3存储信息/数据,以及当第一时钟信号CL1的逻辑值“1”被输送到前向AND门Gi3f的另一输入端时,电容器Ci3中存储的信息/数据被传送到分配给第四单元的电容器。
此外,第i行上的第(n-1)单元Mi,(n-1)包括电容器Ci,(n-1)、前向AND门Gi(n-1)f和后向AND门Gi(n-1)b,前向AND门Gi(n-1)f的一个输入端连接到电容器Ci,(n-1),另一输入端被提供第一时钟信号CL1,并且输出端连接到被分配给相邻第n单元M1,n的下一前向AND门Gi(n-1)f的一个输入端,该第n单元被分配在第i行的最右侧并且连接到第二I/O选择器513,后向AND门Gi(n-1)b的一个输入端连接到电容器Ci,(n-1),另一输入端被提供第二时钟信号CL2,并且输出端连接到被分配给相邻第三单元M1,(n-2)b的前一后向AND门Gi(n-2)b的一个输入端(图示被省略)。
最后,分配在第i行的最右侧且连接到第二I/O选择器513的第n单元Mi,n包括电容器Ci,n、后向AND门Ginb以及前向AND门Ginf,后向AND门Ginb的一个输入端连接到电容器Cin,另一输入端被提供第二时钟信号CL2,并且输出端连接到被分配给第i行上的相邻的第(n-1)单元M1,n-1的前一后向AND门Gi(n-1)b的一个输入端,前向AND门Ginf的一个输入端连接到电容器Cin,另一输入端被配置为被提供第一时钟信号CL1,并且输出端连接到第二I/O选择器513。
当第二时钟信号CL2的逻辑值“1”被输送到后向AND门Ginb的另一输入端时,电容器Cin中存储的信息/数据被传送到分配给第i行上的相邻的第(n-1)单元Mi,(n-1)的电容器Ci,(n-1),并且该电容器Ci,(n-1)存储信息/数据。随后,当第二时钟信号CL2的逻辑值“1”被输送到后向AND门Gi3b的另一输入端时,电容器Ci3中存储的信息/数据被传送到分配给第二单元Mi2的电容器Ci2,并且该电容器Ci2存储信息/数据。此外,当第二时钟信号CL2的逻辑值“1”被输送到后向AND门Gi2b的另一输入端时,电容器Ci2中存储的信息/数据被传送到分配给第一单元Mi1的电容器Ci1,并且该电容器Ci1存储信息/数据,以及第二时钟信号CL2的逻辑值“1”被输送到后向AND门Gi1b的另一输入端时,电容器Ci1中存储的信息/数据被传送到第一I/O选择器512。
因此,双向行进式主存储器的第i行上的单元M2,1,M2,2,M2,3,……,M2,n-1,M2,n中的每一个存储信息/数据,并且与第一时钟信号CL1和第二时钟信号CL2同步,逐步地在第一I/O选择器512和第二I/O选择器513之间双向地传送信息/数据,以便活动且顺序地向处理器11提供所存储器的信息,从而ALU112可以利用所存储的信息执行算术和逻辑运算。
(位置指示策略)
图14(a)例示了与处理器相邻的一维行进式主存储器中的指令的双向传送模式,其中指令向处理器移动,以及移自下一存储器或移到下一存储器。图14(b)例示了与ALU112相邻的一维行进式主存储器中的标量数据的双向传送模式,标量数据向ALU移动,以及移自/移到下一存储器。图14(c)例示了与流水线117相邻的一维行进式主存储器中的向量/流数据的单向传送模式,向量/流数据向流水线移动,以及移自下一存储器,该单向传送模式将在下述的第三实施例中说明。
在第一实施例的计算机系统中使用的行进式主存储器31使用定位来识别向量/流数据中的一组连续的存储器块U1,U2,U3,……,Un-1,Un的起始点和结束点。另一方面,对于程序和标量数据,每个项必须具有类似于常规地址的位置索引。图15(a)例示了常规主存储器的配置,其中每个存储器块U1,U2,U3,……,Un-1,Un利用地址A1,A2,A3,……,An-1,An标记。图15(b)例示了一维行进式主存储器的配置,其中单个存储器块U1,U2,U3,……,Un-1,Un的定位不总是必需的,但是对于识别向量/流数据中的一组连续存储器块的起始点和结束点,单个存储器块U1,U2,U3,……,Un-1,Un的定位至少是必需的。
图16(a)例示了本发明的一维行进式主存储器的内部配置,其中对于标量指令Is,类似现有地址的位置索引不是必需的,但是对于识别向量指令Iv中的一组连续存储器块的起始点和结束点(如阴影圆形所指示的),单个存储器块的定位至少是必须的。图16(b)例示了本发明的一维行进式主存储器的内部配置,其中对于标量数据“b”和“a”,位置索引不是必需的。然而,如图16(c)中所示,对于识别向量/流数据“o”、“p”、“q”、“r”、“s”、“t”、……中的一组连续存储器块的起始点和结束点(如阴影圆形所指示的),单个存储器块的定位至少是必需的。
在行进式存储器系列中,基于参考的本地性特性,主存储器、寄存器文件和高速缓存存储器之间的关系具有它们自有的位置指示策略,除了在本发明的第一实施例的计算机系统中使用的行进式主存储器31之外,该行进式存储器家族还包括行进式指令寄存器文件22a和与ALU112相连的行进式数据寄存器文件22b,以及行进式指令高速缓存存储器21a和行进式数据高速缓存存储器21b,该行进式指令寄存器文件22a和行进式数据寄存器文件22b将在下面的第二实施例中说明,该行进式指令高速缓存存储器21a和行进式数据高速缓存存储器21b将在下面的第三实施例中说明。
图17(a)示意性地例示了针对向量/流数据情况的利用多个页Pi-1,j-1,Pi,j-1,Pi+1,j-1,Pi+2,j-1,Pi-1,j,Pi,j,Pi+1,j,Pi+2,j实现的本发明的行进式主存储器的整体配置的示例。图17(b)示意性地例示了阴影页Pi,j的配置的示例,针对向量/流数据情况,利用多个文件F1,F2,F3,F4实现该阴影页,并且多个页Pi-1,j-1,Pi,j-1,Pi+1,j-1,Pi+2,j-1,Pi-1,j,Pi,j,Pi+1,j,Pi+2,j中的每一个可以用于第三实施例中的行进式高速缓存存储器21a和21b。图17(c)示意性地例示了阴影文件F3的配置的示例,针对向量/流数据情况,利用多个存储器块U1,U2,U3,……,Un-1,Un实现文件F1,F2,F3,F4中的每一个,并且文件F1,F2,F3,F4中的每一个可以用于第二实施例中的行进式寄存器文件22a和22b。
类似地,图18(a)示意性地例示了针对标量数据情况的利用多个页Pi-1,j-1,Pr-1,s-1,Pr,s-1,Pr+1,s-1,Pi+2,s-2,Pr-1,s,Pr,s,Pr+1,s,Pr+2,s实现的本发明的行进式主存储器的整体配置的示例,其中每页将它自有的位置索引作为地址。图18(b)示意性地例示了阴影页Pr-1,s的配置以及使用二进制系统的数字表示的该页Pr-1,s的驱动位置的示例,针对程序/标量数据情况利用多个文件F1,F2,F3,F4实现页Pi-1,j-1,Pr-1,s-1,Pr,s-1,Pr+1,s-1,Pi+2,s-2,Pr-1,s,Pr,s,Pr+1,s,Pr+2,s中的每一个。页Pi-1,j-1,Pr-1,s-1,Pr,s-1,Pr+1,s-1,Pi+2,s-2,Pr-1,s,Pr,s,Pr+1,s,Pr+2,s中的每一个可以用于第三实施例中的行进式高速缓存存储器21a和21b,其中文件F1,F2,F3,F4中的每个将它自有的位置索引作为地址。图18(c)示意性地例示了阴影文件F3的配置以及使用二进制系统中的数字0,1,2,3表示的文件F3的驱动位置的示例,针对程序/标量数据情况利用多个存储器块U1,U2,U3,……,Un-1,Un实现文件F1,F2,F3,F4中的每一个。文件F1,F2,F3,F4中的每个可以用于第二实施例中的行进式寄存器文件22a和22b,其中存储器块U1,U2,U3,……,Un-1,Un中的每一个将它自有的位置索引n+4,n+3,n+2,……,5,4,3,2,1,0作为地址。图18(c)利用二进制系统中的数字表示针对所有情况的位置指示策略。
如图18(c)中所示,n个二进制数字在具有与行进式寄存器文件的尺寸对应的相等尺寸的存储器结构中,分别标识2n个存储器块中的单个存储器块。并且,如图18(b)中所示,一页的结构具有与行进式高速缓存存储器的尺寸对应的相等尺寸,其利用两个数字表示,该两个数字标识4个文件F1,F2,F3,F4,而一个行进式主存储器的结构利用三个数字表示,该三个数字标识图18(a)中示出的行进式主存储器中的8页Pr-1,s-1,Pr,s-1,Pr+1,s-1,Pr+2,s-1,Pi-1,s,Pr,s,Pr+1,s,Pr+2,s。
(速度/能力)
常规计算机系统中的存储器访问时间和CPU周期时间之间的速差例如是1:100。然而,在第一实施例的计算机系统中,行进式存储器访问时间的速度等于CPU周期时间。图19将无高速缓存的常规计算机系统的速度/能力与行进式主存储器31的速度/能力进行比较,该行进式主存储器31被配置为在本发明的第一实施例的计算机系统中使用。也就是,图19(b)示意性地例示了利用100个存储器块U1,U2,U3,……,U100实现的行进式主存储器31的速度/能力,并且与图19(a)中示出的现有存储器的速度/能力相比较。在具有必需的处理器来使用来自行进式主存储器31的数据的条件下,还可以支持行进式主存储器31中的99个其它并行的存储器块。因此,常规计算机系统中的一个存储器块时间Tmue被估计为等于本发明的第一实施例的行进式主存储器31的100个存储器块时间Tmus。
并且,图20将现有存储器的针对标量数据或程序指令的最坏情况的速度/能力与行进式主存储器31的速度/能力进行比较,该行进式主存储器31被配置为在本发明的第一实施例的计算机系统中使用。也就是,图20(b)示意性地例示了利用100个存储器块U1,U2,U3,……,U100实现的行进式主存储器31的速度/能力,并且与图20(a)中示出的现有存储器的最坏情况的速度/能力相比较。在最坏情况下,可以读出行进式主存储器31的99个存储器块,但是由于标量程序的要求,它们不可用。
此外,图21将现有存储器的针对标量数据或程序指令的中等情况的速度/能力与行进式主存储器31的速度/能力进行比较,该行进式主存储器31被配置为在本发明的第一实施例的计算机系统中使用。也就是,图21(b)示意性地例示了利用100个存储器块U1,U2,U3,……,U100实现的行进式主存储器31的速度/能力,并且与图21(a)中示出的现有存储器的中等情况的速度/能力相比较。在中等情况下,可以通过标量程序中的抽象数据制备,读出99个存储器块,但是仅仅若干存储器块可用,如现有存储器中的阴影存储器块所示。
图22将现有存储器的针对标量数据情况的中等情况的速度/能力与行进式主存储器31的速度/能力进行比较,该行进式主存储器31被配置为在本发明的第一实施例的计算机系统中使用。也就是,图22(b)示意性地例示了利用100个存储器块U1,U2,U3,……,U100实现的行进式主存储器31的速度/能力,并且与图22(a)中示出的现有存储器的速度/能力相比较。类似于图21(a)-(b)中示出的情况,在中等情况下,可以通过在多线程并行处理中的标量数据或程序指令中的抽象数据制备,读出99个存储器块,但是仅仅若干存储器块可用,如现有存储器中的阴影存储器块所示。
图23将现有存储器的针对流数据的最好情况的速度/能力与行进式主存储器31的速度/能力进行比较,该行进式主存储器31被配置为在本发明的第一实施例的计算机系统中使用。也就是,图23(b)示意性地例示了利用100个存储器块U1,U2,U3,……,U100实现的行进式主存储器31的速度/能力,并且与图23(a)中示出的现有存储器的最好情况的速度/能力相比较。在最好情况下,可以理解,行进式主存储器31的100个存储器块可用于并行的流数据和数据。
(二维行进式主存储器)
存储器块可以如图24-30中所示二维地布置在芯片上,从而可以实现各种操作模式,而无需开关/网络。根据图24-30中示出的第一实施例的二维行进式主存储器31,不需要对所有存储器块U11,U12,U13,……,U1,v-1,U1v;U21,U22,U23,……,U2,v-1,U2v;……;Uu1,Uu2,Uu3,……,Uu,v-1,Uuv进行刷新,因为所有的存储器块U11,U12,U13,……,U1,v-1,U1v;U21,U22,U23,……,U2,v-1,U2v;……;Uu1,Uu2,Uu3,……,Uu,v-1,Uuv通常由于信息移动方案(信息行进方案)而被自动地刷新。并且因此对每个存储器块U11,U12,U13,……,U1,v-1,U1v;U21,U22,U23,……,U2,v-1,U2v;……;Uu1,Uu2,Uu3,……,Uu,v-1,Uuv的寻址消失,并且所需求的信息向与存储器的边缘连接的它的目的地行进。访问第一实施例的二维行进式主存储器31的机制是对于从寻址模式开始来读取/写入信息的现有存储器方案的完全替代。因此,与现有存储器方案相比,根据第一实施例的二维行进式主存储器31中的无寻址模式的存储器访问过程更加简单。
(能耗)
为了理解本发明的第一实施例的计算机系统的体系架构、设计和实现方面的改进,将说明能耗方面的改进。图31(a)示出了微处理器中的能耗可以分解为静态功耗和动态功耗。在图31(b)中显著地示出图31(a)中所示出的动态功耗中的功耗的净值和开销。如图31(c)中所示,在实践中,仅仅净能耗是在计算机系统中操作给定工作所必需的,从而这些纯能量部分给出执行计算机系统的最小能耗。这意味着利用图31(c)中示出的所消耗的净能量实现最短的处理时间。
即使将一些效应引入到处理器的架构、设计和实现中,在图1中示出的常规体系架构中仍然存在瓶颈。在常规体系架构中,在Von Neumann计算机中存在如下的各种问题。
1)程序与数据类似地存储在存储器中;
2)在单个处理器中,所有处理基本上是顺序的;
3)程序的操作是指令的顺序执行;
4)向量数据由CPU利用向量指令顺序地处理;
5)流数据利用线程顺序地处理;
6)程序和线程被顺序地布置;
7)并行数据由作为向量的数据布置组成;以及
8)流数据是数据流。
根据常规计算机的特性,归纳出程序和数据的存储采用程序和数据基本上顺序布置的方式。这个事实意味着在程序和对应的数据中存在指令的规则布置。
在图2中示出的本发明的第一实施例的计算机系统中,对行进式主存储器31中的指令的存取不是必需的,因为指令自身活动地进入处理器11。类似地,对行进式主存储器31中的数据的存取不是必需的,因为数据自身活动地进入处理器11。
图32示出了由William J.Dally等在Computer,Vol.41,No.7,2008,pp.27-32上的“Efficient Embedded Computing”中估计的常规体系架构中的包括寄存器和高速缓存的处理器上的实际能耗分布。在图32中,公开了除了芯片之间的布线之外的仅仅整个芯片上的功耗分布的估计。通过Dally等,指令供应功耗被估计为是42%,数据供应功耗被估计是28%,时钟和控制逻辑功耗被估计是24%,以及算术功耗被估计是6%。因此,可以理解,与时钟和控制逻辑功耗和算术功耗相比,指令供应功耗和数据供应功耗相对更大,这归因于具有多条布线的高速缓存/寄存器访问的低效率以及由于这些高速缓存和寄存器的访问方式以及所有存储器、高速缓存和寄存器的非刷新造成的一些软件开销。
因为指令供应功耗与数据供应功耗之比是3:2,并且时钟和控制逻辑功耗与算术功耗之比是4:1,所以根据图2中示出的本发明的第一实施例的计算机系统,通过至少部分地使用行进式主存储器31,可以容易地将数据供应功耗减少到20%,从而指令供应功耗变为30%,而可以将算术功耗增加到10%,从而时钟和控制逻辑功耗变为40%,这意味着指令供应功耗和数据供应功耗之和可以变为50%,并且时钟和控制逻辑功耗与算术功耗之和可以变为50%。
如果将数据供应功耗降低到10%,则指令供应功耗变为15%,如果将算术功耗增加到15%,则时钟和控制逻辑功耗将变为60%,这意味着指令供应功耗和数据供应功耗之和可以变为25%,并且时钟和控制逻辑功耗与算术功耗之和可以变为75%。
常规计算机系统利用相对大的用于寻址和读取/写入存储器块的平均活动时间,消耗图33(a)中示出的能量,该平均活动时间伴随有布线延迟时间,而本发明的计算机系统消耗图33(b)中示出的较小的能量,因为通过行进式存储器本发明的计算机系统具有较短且平滑的平均活动时间,并且可以利用较少的能量,所以比常规计算机系统更快地处理相同的数据。
--第二实施例--
如图34中所示,本发明的第二实施例的计算机系统包括处理器11以及行进式主存储器31。处理器11包括控制块111、算术逻辑块(ALU)112以及连接到控制块111的行进式指令寄存器文件(RF)22a和连接到ALU112的行进式数据寄存器文件(RF)22b,控制块111具有被配置为生成时钟信号的时钟发生器113,ALU112被配置为与时钟信号同步地执行算术和逻辑运算。
尽管图示被省略,但是与图3-7、8(a)、8(b)和24-30中示出的行进式主存储器31非常类似,行进式指令寄存器文件22a具有指令寄存器块阵列,第三阵列的指令寄存器输入端子被配置为从行进式主存储器31接收所存储的指令,第三阵列的指令寄存器输出端子被配置为将指令存储在每个指令寄存器块中,并且从与指令寄存器输入端子相邻的指令寄存器块开始到与指令寄存器输出端子相邻的指令寄存器块,与时钟信号同步地将每个指令寄存器块中存储的指令连续且周期性地传送到相邻的指令寄存器块,以便通过指令寄存器输出端子,将指令活动且顺序地提供给控制块111,从而控制块111可以利用指令执行操作。
此外,类似于图3-7、8(a)、8(b)和24-30中示出的行进式主存储器31,行进式数据寄存器文件22b具有数据寄存器块阵列,第四阵列的数据寄存器输入端子被配置为从行进式主存储器31接收所存储的数据,第四阵列的数据寄存器输出端子被配置为将数据存储在每个数据寄存器块中,并且从与数据寄存器输入端子相邻的数据寄存器块开始到与数据寄存器输出端子相邻的数据寄存器块,与时钟信号同步地将每个数据寄存器块中存储的数据连续且周期性地传送到相邻的数据寄存器块,以便通过数据寄存器输出端子,将数据活动且顺序地提供给ALU112,从而ALU112可以利用数据执行操作,但是行进式寄存器文件22b的详细图示被省略。
如图34中所示,行进式主存储器31的一部分与行进式指令寄存器文件22a利用多个结合件54电连接,并且行进式主存储器31的剩余部分与行进式数据寄存器文件22b利用另外的多个结合件54电连接。
ALU112中的处理所得到的数据被发送到行进式数据寄存器文件22b。因此,如双向箭头φ(希腊字母)24所示,数据在行进式数据寄存器文件22b和ALU112之间双向传送。此外,行进式数据寄存器文件22b中存储的数据通过结合件54发送到行进式主存储器31。因此,如双向箭头φ(希腊字母)23所示,数据在行进式主存储器31和行进式数据寄存器文件22b之间,通过结合件54双向传送。
相反,如单向箭头η(希腊字母)22以及η(希腊字母)23所示,对于指令运动,仅仅存在从行进式主存储器31到行进式指令寄存器文件22a以及从行进式指令寄存器文件22a到控制块111的单向指令流。
在图34中示出的第二实施例的计算机系统中,因为即使在行进式主存储器31和行进式指令寄存器文件22a之间、在行进式主存储器31和行进式数据寄存器文件22b之间、在行进式指令寄存器文件22a和控制块111之间以及在行进式数据寄存器文件22b和ALU112之间进行任何数据交换时,整个计算机系统也没有布线,所以不存在包括数据总线和地址总线的总线,而布线或总线造成常规计算机系统中的瓶颈。由于不存在全局布线,而该全局布线生成时间延迟以及这些布线之间的寄生电容,所以第二实施例的计算机系统可以实现快得多的处理速度以及更低的功耗。
由于第二实施例的计算机系统的其它功能、配置和操作方式与第一实施例中已经说明的功能、配置和操作方式基本上类似,所以可以省略重复或冗余的描述。
--第三实施例--
如图35中所示,本发明的第三实施例的计算机系统包括处理器11、行进式高速缓存存储器(21a,21b)以及行进式主存储器31。类似于第二实施例,处理器11包括控制块111、算术逻辑块(ALU)112以及连接到控制块111的行进式指令寄存器文件(RF)22a和连接到ALU112的行进式数据寄存器文件(RF)22b,控制块111具有被配置为生成时钟信号的时钟发生器113,ALU112被配置为与时钟信号同步地执行算术和逻辑运算。
行进式高速缓存存储器(21a,21b)包括行进式指令高速缓存存储器21a以及行进式数据高速缓存存储器21b。尽管图示被省略,与图3-7、8(a)、8(b)和24-30中示出的行进式主存储器31非常类似,行进式指令高速缓存存储器(21a,21b)中的每一个在与信息块对应的位置处具有高速缓存存储器块阵列,阵列的高速缓存输入端子被配置为从行进式主存储器31接收所存储的信息,阵列的高速缓存输出端子被配置为将信息存储在每个高速缓存存储器块中,以及与时钟信号同步,逐步地将每个高速缓存存储器块的信息传送到相邻的高速缓存存储器块,以便将所存储的信息活动且顺序地提供给处理器11,从而ALU112可以利用所存储的信息执行算术和逻辑操作。
如图35中所示,行进式主存储器31的一部分与行进式指令高速缓存存储器21a利用多个结合件52电连接,并且行进式主存储器31的剩余部分与行进式数据高速缓存存储器21b利用另外的多个结合件52电连接。此外,行进式指令高速缓存存储器21a与行进式指令寄存器文件22a利用多个结合件51电连接,并且行进式数据高速缓存存储器21b与行进式数据寄存器文件22b利用另一多个结合件51电连接。
ALU112中的处理所得到的数据被发送到行进式数据寄存器文件22b。因此,如双向箭头φ(希腊字母)34所示,数据在行进式数据寄存器文件22b和ALU112之间双向传送。此外,行进式数据寄存器文件22b中存储的数据通过结合件51被发送到行进式数据高速缓存存储器21b,并且如双向箭头φ(希腊字母)33所示,在行进式数据高速缓存存储器21b和行进式数据寄存器文件22b之间,数据通过结合件51被双向传送。此外,行进式数据高速缓存存储器21b中存储的数据通过结合件52发送到行进式主存储器31,并且如双向箭头φ(希腊字母)32所示,在行进式主存储器31和行进式数据高速缓存存储器21b之间,数据通过结合件52被双向传送。
相反,如单向箭头η(希腊字母)31、η32以及η33所示,对于指令运动,仅仅存在从行进式主存储器31到行进式指令高速缓存存储器21a,从行进式指令高速缓存存储器21a到行进式指令寄存器文件22a以及从行进式指令寄存器文件22a到控制块111的单向指令流。
在图35中示出的第三实施例的计算机系统中,因为即使在行进式主存储器31和行进式指令高速缓存存储器21a之间,在行进式指令高速缓存存储器21a和行进式指令寄存器文件22a之间、在行进式主存储器31和行进式数据高速缓存存储器21b之间,在行进式数据高速缓存存储器21b和行进式数据寄存器文件22b、在行进式指令寄存器文件22a和控制块111之间以及在行进式数据寄存器文件22b和ALU112之间进行任何数据交换时,整个计算机系统也没有全局布线,所以不存在包括数据总线和地址总线的总线,而布线或总线造成常规计算机系统中的瓶颈。由于不存在全局布线,而该全局布线生成时间延迟以及这些布线之间的寄生电容,所以第三实施例的计算机系统可以实现快得多的处理速度以及更低的功耗。
由于第三实施例的计算机系统的其它功能、配置和操作方式与第一和第二实施例中已经说明的功能、配置和操作方式基本上类似,所以可以省略重复或冗余的描述。
如图36(a)中所示,第三实施例的计算机系统中的ALU112可以包括多个算术流水线P1,P2,P3,……,Pn,算术流水线被配置为通过行进式寄存器块R11,R12,R13,……,R1n;R21,R22,R23,……,R2n接收所存储的信息,其中数据与算术流水线P1,P2,P3,……,Pn的排列方向平行地移动。在存储向量数据的情况下,可以使用行进式向量寄存器块R11,R12,R13,……,R1n;R21,R22,R23,……,R2n。
此外,如图36(b)中所示,可以平行地排列多个行进式高速缓存块C11,C12,C13,……,C1n;C21,C22,C23,……,C2n;C31,C32,C33,……,C3n。
如图37中所示,第三实施例中的计算机系统中的ALU112可以包括单个处理器内核116,并且如十字箭头所示,信息可以从行进式高速缓存存储器21移动到行进式寄存器文件22,以及从行进式寄存器文件22移动到处理器内核116。经过处理器内核116中的处理所得到的数据被发送给行进式寄存器文件22,从而数据在行进式寄存器文件22和处理器内核116之间双向传送。此外,行进式寄存器文件22中存储的数据被发送给行进式高速缓存存储器21,从而数据在行进式高速缓存存储器21和行进式寄存器文件22之间双向传送。在指令运动的情况下,不存在沿着要处理的信息的相反方向的信息流。
如图38中所示,第三实施例中的计算机系统中的ALU112可以包括单个算术流水线117,并且如十字箭头所示,信息可以从行进式高速缓存存储器21移动到行进式向量寄存器文件22v,以及从行进式向量寄存器文件22v移动到算术流水线117。经过算术流水线117中的处理所得到的数据被发送给行进式向量寄存器文件22v,从而数据在行进式向量寄存器文件22v和算术流水线117之间双向传送。此外,行进式向量寄存器文件22v中存储的数据被发送给行进式高速缓存存储器21,从而数据在行进式高速缓存存储器21和行进式向量寄存器文件22v之间双向传送。在指令运动的情况下,不存在沿着要处理的信息的相反方向的信息流。
如图39中所示,第三实施例中的计算机系统中的ALU112可以包括多个处理器内核116-1,116-2,116-3,116-4,……,116-m,并且如十字箭头所示,信息可以从行进式高速缓存存储器21移动到行进式寄存器文件22,以及从行进式寄存器文件22移动到处理器内核116-1,116-2,116-3,116-4,……,116-m。经过处理器内核116-1,116-2,116-3,116-4,……,116-m中的处理所得到的数据被发送给行进式寄存器文件22,从而数据在行进式寄存器文件22和处理器内核116-1,116-2,116-3,116-4,……,116-m之间双向传送。此外,行进式寄存器文件22中存储的数据被发送给行进式高速缓存存储器21,从而数据在行进式高速缓存存储器21和行进式寄存器文件22之间双向传送。在指令运动的情况下,不存在沿着要处理的信息的相反方向的信息流。
如图40中所示,第三实施例中的计算机系统中的ALU112可以包括多个算术流水线117-1,117-2,117-3,117-4,……,117-m,并且如十字箭头所示,信息可以从行进式高速缓存存储器21移动到行进式向量寄存器文件22v,以及从行进式向量寄存器文件22v移动到算术流水线117-1,117-2,117-3,117-4,……,117-m。经过算术流水线117-1,117-2,117-3,117-4,……,117-m中的处理所得到的数据被发送给行进式向量寄存器文件22v,从而数据在行进式向量寄存器文件22v和算术流水线117-1,117-2,117-3,117-4,……,117-m之间双向传送。此外,行进式向量寄存器文件22v中存储的数据被发送给行进式高速缓存存储器21,从而数据在行进式高速缓存存储器21和行进式向量寄存器文件22v之间双向传送。在指令运动的情况下,不存在沿着要处理的信息的相反方向的信息流。
如图41(b)中所示,第三实施例中的计算机系统中的ALU112可以包括多个算术流水线117-1,117-2,117-3,117-4,……,117-m,并且多个行进式高速缓存存储器21-1,21-2,21-3,21-4,……,21-m与行进式主存储器31电连接。这里,第一行进式向量寄存器文件22v-1连接到第一行进式高速缓存存储器21-1,第一算术流水线117-1连接到第一行进式向量寄存器文件22v-1。并且,第二行进式向量寄存器文件22v-2连接到第二行进式高速缓存存储器21-2,第二算术流水线117-2连接到第二行进式向量寄存器文件22v-2;第三行进式向量寄存器文件22v-3连接到第三行进式高速缓存存储器21-3,第三算术流水线117-3连接到第三行进式向量寄存器文件22v-3;……;第m行进式向量寄存器文件22v-m连接到第m行进式高速缓存存储器21-m,第m算术流水线117-m连接到第m行进式向量寄存器文件22v-m。
信息从行进式主存储器31并行地移动到行进式高速缓存存储器21-1,21-2,21-3,21-4,……,21-m,从行进式高速缓存存储器21-1,21-2,21-3,21-4,……,21-m并行地移动到行进式向量寄存器文件22v-1,22v-2,22v-3,22v-4,……,22v-m,以及从行进式向量寄存器文件22v-1,22v-2,22v-3,22v-4,……,22v-m并行地移动到算术流水线117-1,117-2,117-3,117-4,……,117-m。经过算术流水线117-1,117-2,117-3,117-4,……,117-m中的处理所得到的数据被发送给行进式向量寄存器文件22v-1,22v-2,22v-3,22v-4,……,22v-m,从而数据在行进式向量寄存器文件22v-1,22v-2,22v-3,22v-4,……,22v-m和算术流水线117-1,117-2,117-3,117-4,……,117-m之间双向传送。此外,行进式向量寄存器文件22v-1,22v-2,22v-3,22v-4,……,22v-m中存储的数据被发送给行进式高速缓存存储器21-1,21-2,21-3,21-4,……,21-m,从而数据在行进式高速缓存存储器21-1,21-2,21-3,21-4,……,21-m和行进式向量寄存器文件22v-1,22v-2,22v-3,22v-4,……,22v-m之间双向传送;以及行进式高速缓存存储器21-1,21-2,21-3,21-4,……,21-m中存储的数据被发送给行进式主存储器31,从而数据在行进式主存储器31和行进式高速缓存存储器21-1,21-2,21-3,21-4,……,21-m之间双向传送。在指令运动的情况下,不存在沿着要处理的信息的相反方向的信息流。
相反,如图41(a)中所示,在包括多个算术流水线117-1,117-2,117-3,117-4,……,117-m的常规计算机系统的ALU112中,多个常规高速缓存存储器321-1,321-2,321-3,321-4,……,321-m通过布线和/或总线电连接到常规主存储器331,该布线和/总线造成von Neumann瓶颈325。因此,信息通过von Neumann瓶颈325,从常规主存储器331并行地移动到高常规高速缓存存储器321-1,321-2,321-3,321-4,……,321-m;从高常规高速缓存存储器321-1,321-2,321-3,321-4,……,321-m并行地移动到常规向量寄存器文件(RF)322v-1,322v-2,322v-3,322v-4,……,322v-m;以及从常规向量寄存器文件(RF)322v-1,322v-2,322v-3,322v-4,……,322v-m并行地移动到算术流水线117-1,117-2,117-3,117-4,……,117-m。
在图41(b)中示出的第三实施例的计算机系统中,因为即使在算术流水线117-1,117-2,117-3,117-4,……,117-m和行进式主存储器31之间进行任何数据交换时,整个系统也没有全局布线,所以不存在包括数据总线和地址总线的总线,而布线或总线造成常规计算机系统中的瓶颈。由于不存在全局布线,而该全局布线生成时间延迟以及这些布线之间的寄生电容,所以图41(b)中的计算机系统可以实现快得非常多的处理速度以及更低的功耗。
--第四实施例--
如图42中所示,第四实施例的计算机系统包括常规主存储器31s、与常规主存储器31s相连的母行进式主存储器31-0以及多个处理块12-1,12-2,12-3,……,多个处理块被配置为与母行进式主存储器310通信以便实现高性能计算(HPC)系统,该HPC系统可以用于基于图形处理块(GPU)的通用计算。尽管图示被省略,但是第四实施例的HPC系统还包括控制块111以及现场可编程门阵列(FPGA),控制块111具有被配置为生成时钟信号的时钟发生器113,FPGA被配置为切换控制多个处理块12-1,12-2,12-3,……的操作,从而利用并行运行来优化计算(crunching calculation)的流程,由此帮助管理和组织带宽消耗。FPGA在本质上是可以针对给定任务对自身进行改写的计算机芯片。可以利用比如VHDL或Verilog的硬件描述语言来对FPGA进行编程。
第一处理器块12-1包括第一分支行进式主存储器31-1、多个第一行进式高速缓存存储器21-11,21-12,……,21-1p、多个第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p以及多个第一算术流水线117-11,117-12,……,117-1p,多个第一行进式高速缓存存储器21-11,21-12,……,21-1p分别电连接到第一分支行进式主存储器31-1,多个第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p分别电连接到第一行进式高速缓存存储器21-11,21-12,……,21-1p,多个第一算术流水线117-11,117-12,……,117-1p分别电连接到第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p。
与图3-7、8(a)、8(b)和24-30等中示出的配置类似,因为母行进式主存储器31-0、第一行进式高速缓存存储器21-11,21-12,……,21-1p、第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p以及第一算术流水线117-11,117-12,……,117-1p中的每一个包括存储器块阵列,因此阵列的输入端子以及阵列的输出端子被配置为将信息存储在每个存储器块中,并且与时钟信号同步,逐步地从输入端子侧向输出端子传送信息。
因为母行进式主存储器31-0、第一分支行进式主存储器31-1、第一行进式高速缓存存储器21-11,21-12,……,21-1p、第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p以及第一算术流水线117-11,117-12,……,117-1p由FPGA控制,所以信息从母行进式主存储器31-0并行地移动到第一分支行进式主存储器31-1、从第一分支行进式主存储器31-1并行地移动到第一行进式高速缓存存储器21-11,21-12,……,21-1p、从第一行进式高速缓存存储器21-11,21-12,……,21-1p并行地移动到第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p以及从第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p并行地移动到第一算术流水线117-11,117-12,……,117-1p。经过算术流水线117-11,117-12,……,117-1p中的处理所得到的数据被发送给第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p,从而数据在第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p和第一算术流水线117-11,117-12,……,117-1p之间双向传送。此外,第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p中存储的数据被发送给第一行进式高速缓存存储器21-11,21-12,……,21-1p,从而数据在第一行进式高速缓存存储器21-11,21-12,……,21-1p和第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p之间双向传送;以及第一行进式高速缓存存储器21-11,21-12,……,21-1p中存储的数据被发送给第一分支行进式主存储器31-1,从而数据在第一分支行进式主存储器31-1和第一行进式高速缓存存储器21-11,21-12,……,21-1p之间双向传送。然而,FPGA控制指令运动,从而使得在第一处理块12-1中,不存在沿着要处理的信息的相反方向的信息流。
第二处理器块12-2包括第二分支行进式主存储器31-2、多个第二行进式高速缓存存储器21-21,21-22,……,21-2p、多个第二行进式向量寄存器文件22v-21,22v-22,……,22v-2p以及多个第二算术流水线117-21,117-22,……,117-2p,多个第二行进式高速缓存存储器21-21,21-22,……,21-2p分别电连接到第二分支行进式主存储器31-2,多个第二行进式向量寄存器文件22v-21,22v-22,……,22v-2p分别电连接到第二行进式高速缓存存储器21-21,21-22,……,21-2p,多个第二算术流水线117-21,117-22,……,117-2p分别电连接到第二行进式向量寄存器文件22v-21,22v-22,……,22v-2p。与第一处理块12-1类似,母行进式主存储器31-0、第二分支行进式主存储器31-2、第二行进式高速缓存存储器21-21,21-22,……,21-2p、第二行进式向量寄存器文件22v-21,22v-22,……,22v-2p以及第二算术流水线117-21,117-22,……,117-2p由FPGA控制,所以信息从母行进式主存储器31-0并行地移动到第二分支行进式主存储器31-2、从第二分支行进式主存储器31-2并行地移动到第二行进式高速缓存存储器21-21,21-22,……,21-2p、从第二行进式高速缓存存储器21-21,21-22,……,21-2p并行地移动到第二行进式向量寄存器文件22v-21,22v-22,……,22v-2p以及从第二行进式向量寄存器文件22v-21,22v-22,……,22v-2p并行地移动到第二算术流水线117-21,117-22,……,117-2p。经过算术流水线117-21,117-22,……,117-2p中的处理所得到的数据被发送给第二行进式向量寄存器文件22v-21,22v-22,……,22v-2p,从而数据在第二行进式向量寄存器文件22v21,22v22,……,22v2p和第二算术流水线117-21,117-22,……,117-2p之间双向传送。此外,第二行进式向量寄存器文件22v-21,22v-22,……,22v-2p中存储的数据被发送给第二行进式高速缓存存储器21-21,21-22,……,21-2p,从而数据在第二行进式高速缓存存储器21-21,21-22,……,21-2p和第二行进式向量寄存器文件22v-21,22v-22,……,22v-2p之间双向传送;以及第二行进式高速缓存存储器21-21,21-22,……,21-2p中存储的数据被发送给第二分支行进式主存储器31-2,从而数据在第二分支行进式主存储器31-2和第一行进式高速缓存存储器21-21,21-22,……,21-2p之间双向传送。然而,FPGA控制指令运动,从而使得在第二处理块12-2中,不存在沿着要处理的信息的相反方向的数据流。
例如,从源程序的循环中生成的向量指令从母行进式主存储器310并行地传送到第一处理块12-1、第二处理块12-2、第三处理块12-3,……,从而这些向量指令的并行处理可以由第一处理块12-1、第二处理块12-2、第三处理块12-3,……的每一个中的算术流水线117-11,117-12,……,117-1p,117-21,117-22,……,117-2p,……执行。
尽管当前的由FPGA控制的HPC系统要求大量的布线资源,这产生图42中示出的第四实施例的HPC系统中的时间延迟和这些布线之间的寄生电容,从而对造成瓶颈,但是因为对于在第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p和第一算术流水线117-11,117-12,……,117-1p之间,在第一行进式高速缓存存储器21-11,21-12,……,21-1p和第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p之间、在第一分支行进式主存储器31-1和第一行进式向量寄存器文件22v-11,22v-12,……,22v-1p之间,在第二行进式高速缓存存储器21-21,21-22,……,21-2p和第二算术流水线117-21,117-22,……,117-2p之间、在第二行进式高速缓存存储器21-21,21-22,……,21-2p和第二行进式向量寄存器文件21-21,21-22,……,21-2p之间、在第二分支行进式主存储器31-2和第二行进式高速缓存存储器21-21,21-22,……,21-2p之间、在母行进式主存储器31-0和第一分支行进式主存储器31-1之间、以及在母行进式主存储器31-0和第二分支行进式主存储器31-2之间进行的任何数据交换,不存在比如数据总线和地址总线的总线,所以与当前的FPGA受控的HPC系统相比,图42中示出的由FPGA控制的HPC系统可以实现快得多的处理速度以及更低的功耗。通过增加处理块12-1、12-2、12-3,……的数目,第四实施例的由FPGA控制的HPC系统可以例如以非常高的速度,同时执行成千个线程或更多的线程,从而实现大量数据上的高计算吞吐量。
--第五实施例--
如图43所示,本发明的第五实施例的计算机系统包括处理器11、行进式寄存器文件22-1,22-2,22-3,……的堆栈、行进式高速缓存存储器21-1,21-2,21-3,……的堆栈以及行进式主存储器31-1,31-2,31-3,……的堆栈,该行进式寄存器文件实现与处理器11相连的三维行进式寄存器文件,该行进式高速缓存存储器堆栈实现与三维行进式寄存器文件(22-1,22-2,22-3,……)相连的三维行进式高速缓存存储器,该行进式主存储器堆栈实现与三维行进式高速缓存(21-1,21-2,21-3,……)相连的三维行进式主存储器。处理器11包括控制块111以及算术逻辑(ALU)块112,控制块111具有被配置为生成时钟信号的时钟发生器113,ALU112被配置为与时钟信号同步地执行算术和逻辑运算。
在三维行进式寄存器文件(22-1,22-2,22-3,……)中,第一行进式寄存器文件22-1包括与控制块111相连的第一行进式指令寄存器文件22a-1以及与ALU112相连的第一行进式数据寄存器文件22b-1,第二行进式寄存器文件22-2包括与控制块111相连的第二行进式指令寄存器文件22a-2以及与ALU112相连的第二行进式数据寄存器文件22b-2,第三行进式寄存器文件22-3包括与控制块111相连的第三行进式指令寄存器文件22a-3以及与ALU112相连的第三行进式数据寄存器文件22b-3,……。在三维行进式高速缓存(21-1,21-2,21-3,……)中,第一行进式高速缓存存储器21-1包括第一行进式指令高速缓存存储器21a-1以及第一行进式数据高速缓存存储器21b-1,第二行进式高速缓存存储器21-2包括第二行进式指令高速缓存存储器21a-2以及第二行进式数据高速缓存存储器21b-2,第三行进式高速缓存存储器21-3包括第三行进式指令高速缓存存储器21a-3以及第三行进式数据高速缓存存储器21b-3,……。
尽管图示被省略,与图24-30中示出的行进式主存储器31非常类似,行进式主存储器31-1,31-2,31-3,……中的每一个具有二维存储器块阵列,每个存储器块具有信息块、主存储器阵列的输入端子以及主存储器阵列的输出端子,行进式主存储器31-1,31-2,31-3,……中的每一个将信息存储在每个存储器块中,并且与时钟信号同步,逐步地向主存储器阵列的输出端子传送信息,以便将所存储的信息活动且顺序地提供给三维行进式高速缓存21-1,21-2,21-3,……)。三维行进式高速缓存(21-1,21-2,21-3,……)中的每个具有二维高速缓存存储器块阵列,行进式高速缓存阵列的高速缓存输入端子被配置为从三维行进式主存储器(31-1,31-2,31-3,……)接收所存储的信息,行进式高速缓存阵列的高速缓存输出端子被配置为将信息存储在每个高速缓存存储器块中,以及与时钟信号同步,逐步地朝向相邻的高速缓存存储器传送信息,以便将所存储的信息活动且顺序地提供给三维行进式寄存器文件(22-1,22-2,22-3,……)。三维行进式寄存器文件(22-1,22-2,22-3,……)中的每一个具有二维寄存器块阵列,寄存器块中的每一个具有信息块、寄存器阵列的输入端子以及寄存器阵列的输出端子,寄存器阵列的输入端子被配置为从三维行进式高速缓存存储器(21-1,21-2,21-3,……)接收所存储的信息,三维行进式寄存器文件(22-1,22-2,22-3,……)中的每一个将信息存储在每个寄存器块中,以及与时钟信号同步,逐步地向寄存器阵列的输出端子传送,以便将所存储的信息活动且顺序地提供给处理器11,从而处理器11可以利用所存储的信息执行算术和逻辑运算。
三维行进式主存储器31-1,31-2,31-3,……中的每一个利用在半导体芯片的表面上刻划的二维存储器块阵列来实现,并且多个半导体芯片如图27A中所示垂直堆叠,将散热板58m-1,58m-2,58m-3,……层夹在多个半导体芯片之间以便实现三维行进式主存储器(31-1,31-2,31-3,……)。优选地,散热板58m-1,58m-2,58m-3,……由具有高导热性的材料制成,比如钻石。类似地,行进式高速缓存存储器21-1,21-2,21-3,……中的每一个利用在半导体芯片的表面上刻划的二维存储器块阵列来实现,并且多个半导体芯片如图27B中所示垂直堆叠,将散热板58c-1,58c-2,58c-3,……层夹在多个半导体芯片之间以便实现三维高速缓存存储器(21-1,21-2,21-3,……);以及行进式寄存器文件22-1,22-2,22-3,……中的每一个利用在半导体芯片的表面上刻划的二维存储器块阵列实现,并且多个半导体芯片如图27C中所示垂直堆叠,将散热板58r-1,58r-2,58r-3,……夹在多个半导体芯片之间以便实现三维行进式寄存器文件(22-1,22-2,22-3,……)。优选地,散热板58c-1,58c-2,58c-3,……,58r-1,58r-2,58r-3,……由具有高导热性的材料制成,比如钻石。因为在图44(a)-45(c)中示出的三维配置中的半导体芯片的表面内部不存在互连,所以容易将散热板58m-1,58m-2,58m-3,……,58c-1,58c-2,58c-3,……,58r-1,58r-2,58r-3,……插入在半导体芯片之间,图44(a)-45(c)中示出的配置可被扩展为具有任意数目的半导体芯片堆栈结构。在常规体系架构中,当直接堆叠常规半导体芯片时,鉴于热量问题,所堆叠的半导体芯片的数目存在限制。在第五实施例的计算机系统中,图44(a)-45(c)中示出的三明治结构适合于通过散热板58m-1,58m-2,58m-3,……,58c-1,58c-2,58c-3,……,58r-1,58r-2,58r-3,……,更有效率地建立从活动的计算半导体芯片到系统外部的热量流动。因此,在第五实施例的计算机系统中,这些半导体芯片可以与系统的规模成比例地堆叠,并且如图44(a)-45(c)中所示,因为并入行进式主存储器31-1,31-2,31-3,……、高速缓存存储器21-1,21-2,21-3,……和行进式寄存器文件22-1,22-2,22-3,……的多个半导体芯片可以被容易地堆叠来实现三维配置,所以可以容易地组织可缩放的计算机系统,由此将系统的温度保持为更冷。
尽管图示被省略,但是三维行进式主存储器(31-1,31-2,31-3,……)与三维行进式高速缓存(21-1,21-2,21-3,……)利用多个结合件电连接,三维行进式高速缓存(21-1,21-2,21-3,……)与三维行进式寄存器文件(22-1,22-2,22-3,……)利用多个结合件电连接,以及三维行进式寄存器文件(22-1,22-2,22-3,……)与处理器11利用另外的多个结合件电连接。
经过ALU112中的处理所得到的数据通过结合件发送到三维行进式寄存器文件(22-1,22-2,22-3,……),从而数据在三维行进式寄存器文件(22-1,22-2,22-33,……)和ALU112之间双向传送。此外,三维行进式寄存器文件(22-1,22-2,22-3,……)中存储的数据通过结合件发送到三维行进式高速缓存(21-1,21-2,21-3,……),从而数据在三维行进式高速缓存(21-1,21-2,21-3,……)和三维行进式寄存器文件(22-1,22-2,22-3,……)之间双向传送。此外,三维行进式高速缓存(21-1,21-2,21-3,……)中存储的数据通过结合件发送到三维行进式主存储器(31-1,31-2,31-3,……),从而数据在三维行进式主存储器(31-1,31-2,31-3,……)和三维行进式高速缓存(21-1,21-2,21-3,……)之间双向传送。
相反,仅仅存在从三维行进式主存储器(31-1,31-2,31-3,……)到三维行进式高速缓存(21-1,21-2,21-3,……)、从三维行进式高速缓存(21-1,21-2,21-3,……)到三维行进式寄存器文件(22-1,22-2,22-3,……)以及从三维行进式寄存器文件(22-1,22-2,22-3,……)到控制块111的单向指令流。例如,通过三维行进式高速缓存(21-1,21-2,21-3,……)和三维行进式寄存器文件(22-1,22-2,22-3,……),将由源程序的循环生成的向量指令,从三维行进式主存储器(31-1,31-2,31-3,……)传送到控制块111,从而这些向量指令中的每个可以由控制块111中的算术流水线来执行。
在图43中示出的第五实施例的计算机系统中,在三维行进式主存储器(31-1,31-2,31-3,……)和三维行进式高速缓存(21-1,21-2,21-3,……)之间、在三维行进式高速缓存(21-1,21-2,21-3,……)和三维行进式寄存器文件(22-1,22-2,22-3,……)之间以及在三维行进式寄存器文件(22-1,22-2,22-3,……)和控制块111之间进行任何数据交换时,不存在比如数据总线和地址总线的总线,而布线或总线实现常规计算机系统中的瓶颈。由于不存在全局布线,该全局布线生成时间延迟以及这些布线之间的寄生电容,所以与常规计算机系统相比,通过使用散热板58m-1,58m-2,58m-3,……,58c-1,58c-2,58c-3,……,58r-1,58r-2,58r-3,……,第五实施例的计算机系统可以实现快得非常多的处理速度以及更低的功耗,以便将计算机系统的温度保持在更低的温度,从而建立“冷计算机”,散热板58m-1,58m-2,58m-3,……,58c-1,58c-2,58c-3,……,58r-1,58r-2,58r-3,……由比如钻石等具有高导热性的材料制成,并且布置在半导体芯片之间。第五实施例的冷计算机与现有的计算机不同,因为冷计算机例如被有意地架构和设计为能量消耗平均减少30%且尺寸减少10000%,以获得100倍的较高速度。
由于第五实施例的计算机系统的其它功能、配置和操作方式与第一到第三实施例中已经说明的功能、配置和操作方式基本上类似,所以可以省略重复或冗余的描述。
(其它三维配置)
图43、44(a)、44(b)和44(c)中示出的三维配置仅仅是示例,如何实现三维配置,存在各种方式和组合,从而便于组织可缩放的计算机系统。
例如,如图45中所示,并入有多个算术流水线117和多个行进式寄存器文件22的第一芯片(顶部芯片)、并入有行进式高速缓存存储器21的第二芯片(中间芯片)以及并入有行进式主存储器31的第三芯片(底部芯片)可以垂直地堆栈。算术流水线117中的每一个可以包括向量处理块,以及行进式寄存器文件22中的每一个可以包括行进式向量寄存器。在第一和第二芯片之间,插入多个结合件55a,以及在第二和第三芯片之间,插入多个结合件55b。例如,结合件55a和55b中的每一个可以利用导电突起实现,比如焊料球、金(Au)突起、银(Ag)突起、铜(Cu)突起、镍金(Ni-Au)合金突起或镍金铟(Ni-Au-In)合金突起等。尽管图示被省略,类似于图44(a)-45(c)中示出的配置,散热板可以插入在第一和第二芯片之间,以及插入在第二和第三芯片之间。
或者,如图46和47中所示,第一三维(3D)堆栈和第二3D芯片被二维地布置在同一衬底或同一电路上,以便利用多个处理器实现并行计算,其中第一3D堆栈包括第一顶部芯片、第一中间芯片以及第一底部芯片,第二3D堆栈包括第二顶部芯片、第二中间芯片以及第二底部芯片,第一3D堆栈和第二3D堆栈利用桥59a和59b连接。
在第一3D堆栈中,并入有多个第一算术流水线117-1和多个第一行进式寄存器文件22-1的第一顶部芯片、并入有第一行进式高速缓存存储器21-1的第一中间芯片以及并入有第一行进式主存储器31-1的第一底部芯片可以垂直地堆栈。第一算术流水线117-1中的每一个可以包括向量处理块,以及第一行进式寄存器文件22-1中的每一个可以包括行进式向量寄存器。在第一顶部芯片和第一中间芯片之间,插入多个结合件55a-1,以及在第一中间芯片和第一底部芯片之间,插入多个结合件55b-1。例如,结合件55a-1和55b-1中的每个可以利用导电突起实现,比如焊料球、金(Au)突起、银(Ag)突起、铜(Cu)突起、镍金(Ni-Au)合金突起或镍金铟(Ni-Au-In)合金突起等。类似地,并入有多个第二算术流水线117-2和多个第二行进式寄存器文件22-2的第二顶部芯片、并入有第二行进式高速缓存存储器21-2的第二中间芯片以及并入有第二行进式主存储器31-2的第二底部芯片可以垂直地堆栈。第二算术流水线117-2中的每个可以包括向量处理块,以及第二行进式寄存器文件22-2中的每个可以包括行进式向量寄存器。在第二顶部芯片和第二中间芯片之间,插入多个结合件55a-2,以及在第二中间芯片和第二底部芯片之间,插入多个结合件55b-2。例如,结合件55a-2和55b-2中的每个可以利用导电突起实现,比如焊料球、金(Au)突起、银(Ag)突起、铜(Cu)突起、镍金(Ni-Au)合金突起或镍金铟(Ni-Au-In)合金突起等。尽管图示被省略,类似于图44(a)-45(c)中示出的配置,散热板可以插入在第一顶部芯片和第一中间芯片之间,第一中间芯片和第一底部芯片之间,第二顶部芯片和第二中间芯片之间,第二中间芯片和第二底部芯片之间,从而实现“冷芯片”。
类似于第四实施例中的计算机系统,通过遍历在第一算术流水线1171和第二算术流水线1172上处理的向量的线程或链,现场可编程门阵列(FPGA)可以切换控制第一和第二3D堆栈的操作,从而实现HPC系统,该HPC系统可以用于基于GPU的通用计算。
或者,如图48中所示,并入有多个算术流水线117的第一芯片(顶部芯片)、并入有多个行进式寄存器文件22的第二芯片、并入有行进式高速缓存存储器21的第三芯片、并入有第一行进式主存储器31-1的第四芯片、并入有第二行进式主存储器31-2的第五芯片以及并入有第三行进式主存储器31-3的第六芯片可以垂直地堆栈。算术流水线117中的每一个可以包括向量处理块,行进式寄存器文件22中的每个可以包括行进式向量寄存器,从而由源程序中的循环生成的向量指令可以在向量处理块中执行。第一散热板58-1插入在第一和第二芯片之间,第二散热板58-2插入在第二和第三芯片之间,第三散热板58-3插入在第三和第四芯片之间,第四散热板58-4插入在第四和第五芯片之间,第五散热板58-5插入在第五和第六芯片之间,从而实现“冷芯片”。因为在图48中示出的三维配置中的这些冷芯片的表面内部不存在互连,所以容易将比如钻石芯片的散热板58-1、58-2、58-3、58-4、58-5交替地插入在这六个芯片之间。
图48中示出的冷芯片配置不限于6个芯片的情况,而可以扩展到具有任意数目个芯片的三维堆栈结构,因为图48中示出的三明治结构适合于通过散热板58-1、58-2、58-3、58-4、58-5,更有效率地建立从活动的计算半导体芯片到冷计算机系统外部的热量流动。因此,在第五实施例的计算机系统中的冷芯片的数目可以与系统的规模成比例地增加。
图49到51示出了用于实现根据本发明的第五实施例的计算机系统的基本内核的一部分的三维(3D)堆栈的各个示例,3D堆栈中的每一个包括冷却技术,该冷却技术使用插入在半导体芯片3a和3b之间的比如钻石板的散热板,在半导体芯片3a和3b中,并入有被分类在行进式存储器家族中的行进式存储器中的至少一个。除了在本发明的第一实施例中说明的行进式主存储器31之外,术语“行进式存储器家族”还包括在第二实施例中说明的行进式指令寄存器文件22a以及与ALU112相连的行进式数据寄存器文件22b,以及在第三实施例中说明的行进式指令高速缓存存储器21a和行进式数据高速缓存存储器21b。
也就是,如图49中所示,用于实现本发明的第五实施例的计算机系统中的基本内核的一部分的3D堆栈包括第一半导体存储器芯片3a、散热板58、第二半导体存储器芯片3b以及处理器11,第一半导体存储器芯片3a并入有行进式存储器家族的行进式存储器中的至少一个,散热板58布置在第一半导体存储器芯片3a的下方,第二半导体存储器芯片3b布置在散热板58的下方,并且并入有行进式存储器家族的行进式存储器中的至少一个,处理器11布置在散热板58的一侧上。这里,在图49中,因为处理器11的位置被例示为上述示例中的一个,所以取决于3D堆栈的设计选择,处理器11可以布置在3D堆栈的配置中的任何要求的或合适的地点,或者布置在3D堆栈的外部。例如,处理器11可以分配在与第一半导体存储器芯片3a相同的水平面上,或者分配在第二半导体存储器芯片3b的平面上。并入在第一半导体存储器芯片3a上的行进式存储器和并入在第二半导体存储器芯片3b上的行进式存储器分别存储程序指令。在图49中示出的3D配置中,其中第一半导体存储器芯片3a、散热板58和第二半导体存储器芯片3b垂直地堆栈,在第一半导体存储器芯片3a和处理器11之间提供第一控制路径,以及在第二半导体存储器芯片3b和处理器11之间提供第二控制路径,从而便于利用处理器执行控制处理。在第一半导体存储器芯片3a和第二半导体存储器芯片3b之间可以提供另一数据路径,从而便于在第一半导体存储器芯片3a和第二半导体存储器芯片3b之间直接传送程序指令。
此外,如图50中所示,用于实现本发明的第五实施例的计算机系统中的基本内核的一部分的另一3D堆栈包括第一半导体存储器芯片3a、散热板58、第二半导体存储器芯片3b以及ALU112,第一半导体存储器芯片3a并入有行进式存储器家族的行进式存储器中的至少一个,散热板58布置在第一半导体存储器芯片3a的下方,第二半导体存储器芯片3b布置在散热板58的下方,并且并入有行进式存储器家族的行进式存储器中的至少一个,ALU112布置在散热板58的一侧上。ALU112的位置不限于图50中例示的地点,取决于3D堆栈的设计选择,ALU112可以布置在3D堆栈的配置中的任何要求的或合适的地点,或者布置在3D堆栈的外部。比如,ALU112可以分配在与第一半导体存储器芯片3a相同的水平面上,或者分配在第二半导体存储器芯片3b的平面上。并入在第一半导体存储器芯片3a上的行进式存储器和并入在第二半导体存储器芯片3b上的行进式存储器分别读取/写入标量数据。在图50中示出的3D配置中,其中第一半导体存储器芯片3a、散热板58和第二半导体存储器芯片3b垂直地堆栈,在第一半导体存储器芯片3a和ALU112之间提供第一控制路径,以及在第二半导体存储器芯片3b和ALU112之间提供第二控制路径,从而便于利用处理器执行控制处理。在第一半导体存储器芯片3a和第二半导体存储器芯片3b之间可以提供另一数据路径,从而便于在第一半导体存储器芯片3a和第二半导体存储器芯片3b之间直接传送标量数据。
此外,如图51中所示,用于实现本发明的第五实施例的计算机系统中的基本内核的一部分的另一3D堆栈包括第一半导体存储器芯片3a、散热板58、第二半导体存储器芯片3b以及算术流水线117,第一半导体存储器芯片3a并入有行进式存储器家族的行进式存储器中的至少一个,散热板58布置在第一半导体存储器芯片3a的下方,第二半导体存储器芯片3b布置在散热板58的下方,并且并入有行进式存储器家族的行进式存储器中的至少一个,以及算术流水线117布置在散热板58的一侧上。类似于图49和50中示出的拓扑,算术流水线117的位置不限于图51中例示的地点,取决于3D堆栈的设计选择,算术流水线117可以布置在3D堆栈的配置中的任何要求的或合适的地点,或者布置在3D堆栈的外部。比如,算术流水线117可以分配在与第一半导体存储器芯片3a相同的水平面上,或者分配在第二半导体存储器芯片3b的平面上。并入在第一半导体存储器芯片3a上的行进式存储器和并入在第二半导体存储器芯片3b上的行进式存储器分别读取/写入向量/流数据。在图51中示出的3D配置中,其中第一半导体存储器芯片3a、散热板58和第二半导体存储器芯片3b垂直地堆栈,在第一半导体存储器芯片3a和算术流水线117之间提供第一控制路径,以及在第二半导体存储器芯片3b和算术流水线117之间提供第二控制路径,从而便于利用处理器执行控制处理。在第一半导体存储器芯片3a和第二半导体存储器芯片3b之间可以提供另一数据路径,从而便于在第一半导体存储器芯片3a和第二半导体存储器芯片3b之间直接传送向量/流数据。
如图52中所示,根据第五实施例的3D混合计算机系统包括第一左侧芯片(左上方芯片)3p-1、第二左侧芯片3p-2、第三左侧芯片3p-3、第四左侧芯片3p-4、第五左侧芯片3p-5以及第六左侧芯片(左下方芯片)3p-6,上述六个芯片垂直堆栈,第一左侧芯片3p-1并入有行进式存储器家族中的行进式存储器的至少一个,第二左侧芯片3p-2并入有行进式存储器家族中的行进式存储器的至少一个,第三左侧芯片3p-3并入有行进式存储器家族中的行进式存储器的至少一个,第四左侧芯片3p-4并入有行进式存储器家族中的行进式存储器的至少一个,第五左侧芯片3p-5并入有行进式存储器家族中的行进式存储器的至少一个,第六左侧芯片3p-6并入有行进式存储器家族中的行进式存储器的至少一个。第一左侧散热板58a-1插入在第一左侧芯片3p-1和第二左侧芯片3p-2之间,第二左侧散热板58a-2插入在第二左侧芯片3p-2和第三左侧芯片3p-3之间,第三左侧散热板58a-3插入在第三左侧芯片3p-3和第四左侧芯片3p-4之间,第四左侧散热板58a-4插入在第四左侧芯片3p-4和第五左侧芯片3p-5之间,第五左侧散热板58a-5插入在第五左侧芯片3p-5和第六左侧芯片3p-6之间,从而实现“冷的左侧芯片”。
此外,第一右侧芯片(右上方芯片)3q-1、第二右侧芯片3q-2、第三右侧芯片3q-3、第四右侧芯片3q-4、第五右侧芯片3q-5以及第六右侧芯片(右下方芯片)3q-6垂直堆栈,第一右侧芯片3q-1并入有行进式存储器家族中的行进式存储器的至少一个,第二右侧芯片3q-2并入有行进式存储器家族中的行进式存储器的至少一个,第三右侧芯片3q-3并入有行进式存储器家族中的行进式存储器的至少一个,第四右侧芯片3q-4并入有行进式存储器家族中的行进式存储器的至少一个,第五右侧芯片3q-5并入有行进式存储器家族中的行进式存储器的至少一个,第六右侧芯片3q-6并入有行进式存储器家族中的行进式存储器的至少一个。第一右侧散热板58b-1插入在第一右侧芯片3q-1和第二右侧芯片3q-2之间,第二右侧散热板58b-2插入在第二右侧芯片3q-2和第三右侧芯片3q-3之间,第三右侧散热板58b-3插入在第三右侧芯片3q-3和第四右侧芯片3q-4之间,第四右侧散热板58b-4插入在第四右侧芯片3q-4和第五右侧芯片3q-5之间,第五右侧散热板58b-5插入在第五右侧芯片3q-5和第六右侧芯片3q-6之间,从而实现“冷的右侧芯片”。
第一处理块11a设置在第一左侧散热板58a-1和第一右侧散热板58b-1之间,第二处理块11b设置在第三左侧散热板58a-3和第三右侧散热板58b-3之间,以及第三处理块11c设置在第五左侧散热板58a-5和第五右侧散热板58b-5之间,并且在处理块11a、11b、11c中分别包括设置成流水线的ALU。
在第一左侧芯片3p-1和第二左侧芯片3p-2之间建立标量数据路径和控制路径,在第二左侧芯片3p-2和第三左侧芯片3p-3之间建立标量数据路径和控制路径,在第三左侧芯片3p-3和第四左侧芯片3p-4之间建立标量数据路径和控制路径,在第四左侧芯片3p-4和第五左侧芯片3p-5之间建立标量数据路径和控制路径,以及在第五左侧芯片3p-5和第六左侧芯片3p-6之间建立标量数据路径和控制路径。在第一右侧芯片3q-1和第二右侧芯片3q-2之间建立标量数据路径和控制路径,在第二右侧芯片3q-2和第三右侧芯片3q-3之间建立标量数据路径和控制路径,在第三右侧芯片3q-3和第四右侧芯片3q-4之间建立标量数据路径和控制路径,在第四右侧芯片3q-4和第五右侧芯片3q-5之间建立标量数据路径和控制路径,以及在第五右侧芯片3q-5和第六右侧芯片3q-6之间建立标量数据路径和控制路径。通过计算机系统的标量数据路径和控制路径的组合,图52中示出的3D计算机系统不仅可以执行标量数据,而且可以执行向量/流数据。
因为在图52中示出的3D配置中的这些冷芯片的表面内部不存在互连,所以容易将比如左侧钻石芯片的散热板58a-1、58a-2、58a-3、58a-4、58a-5交替地插入在这六个芯片之间,以及将比如右侧钻石芯片的散热板58b-1、58b-2、58b-3、58b-4、58b-5交替地插入在这六个芯片之间。
(其它实施例)
对于本领域的技术人员而言,在接受到本公开的教导后,将变得可以在不背离本公开的范围的情况下进行各种修改。
存在若干不同形式的并行计算,比如比特级、指令级、数据以及任务并行,以及如作为“Flynn分类(Flynn’s taxonomy)”已知的,针对计算机正在使用单个指令集还是使用多个指令集进行操作,或者这些指令是否是使用单个或多个数据集,对程序和计算机进行分类。
例如,如图53中所示,行进式存储器可以在多指令单数据(MISD)体系架构中实现对标量/向量数据的比特级并行处理,该行进式存储器可以包括已经在第一到第五实施例中讨论的行进式寄存器文件、行进式高速缓存存储器和行进式主存储器,其中利用MISD体系架构,在具有处理器11-1、11-2、11-3、11-4的收缩阵列(systolic array)的情况下,垂直于第一处理器11-1、第二处理器11-2、第三处理器11-3、第四处理器11-4,……提供的许多独立的指令流同时对单个水平数据流进行并行操作。
或者,如图54中所示,可以采用单指令多数据(SIMD)体系架构,利用包括已经在第一到第五实施例中讨论的行进式寄存器文件、行进式高速缓存存储器和行进式主存储器的行进式存储器,建立算术级并行处理,其中利用SIMD体系架构,在具有处理器11-1、11-2、11-3、11-4的矩阵的情况下,单个指令流被提供给第一处理器11-1、第二处理器11-2、第三处理器11-3和第四处理器11-4,从而单个指令流可以同时对多个水平数据流进行操作。
或者,如图55中所示,行进式存储器可以利用第一处理器11-1、第二处理器11-2、第三处理器11-3和第四处理器11-4,在向量处理时实现典型的链,该行进式存储器可以包括已经在第一到第五实施例中讨论的行进式寄存器文件、行进式高速缓存存储器和行进式主存储器,其中第一指令I1、第二指令I2、第三指令I3以及第四指令I4分别被提供给第一处理器11-1、第二处理器11-2、第三处理器11-3和第四处理器11-4。
此外,如图56中所示,行进式存储器可以利用第一处理器11-1、第二处理器11-2、第三处理器11-3和第四处理器11-4,在MISD体系架构中,实现对单个水平标量/向量数据流进行并行处理,该行进式存储器可以包括已经在第一到第五实施例中讨论的行进式寄存器文件、行进式高速缓存存储器和行进式主存储器。
此外,如图57中所示,行进式存储器可以利用第一处理器11-1、第二处理器11-2、第三处理器11-3和第四处理器11-4,在MISD体系架构中,实现对单个水平标量/向量数据流进行并行处理,该行进式存储器可以包括已经在第一到第五实施例中讨论的行进式寄存器文件、行进式高速缓存存储器和行进式主存储器,其中第一处理器11-1被配置为执行乘法,第二处理器11-2被配置为执行加法,第三处理器11-3被配置为执行乘法,以及第四处理器11-4被配置为执行加法。
此外,关于进程级并行处理,可以利用行进式存储器实现单线程流单数据流体系架构、单线程流多数据流体系架构、多线程流单数据流体系架构和多线程流多数据流体系架构,该行进式存储器可以包括已经在第一到第五实施例中讨论的行进式寄存器文件、行进式高速缓存存储器和行进式主存储器。
因此,本发明当然包括上面没有详细说明的各个实施例和修改例等。因此,本发明的范围将在下述权利要求中限定。
工业应用性
本发明可以应用于计算机系统工业领域。
Claims (22)
1.一种计算机系统,包括:
处理器,所述处理器包括:
控制块,具有用于生成时钟信号的时钟发生器,及
算术逻辑块,用于与所述时钟信号同步地执行算术和逻辑运算;
行进式主存储器,所述行进式主存储器包括存储器块阵列,其中多个存储器块沿列方向排列,每个存储器块包括沿列方向排列的单元阵列,每个单元存储信息,以便每个存储器块能存储沿列方向排列的信息块,并且还沿行方向设置多个沿列方向排列的存储器块的一维布置,
其中,行进式主存储器还包括:
输入端子列,所述输入端子列包括多个沿列方向排列的输入端子,通过输入端子列分别向沿列方向排列的存储器块中的单元的行位置分配每个输入端子,向每个沿列方向排列的存储器块中的单元阵列输送信息块;以及
输出端子列,所述输出端子列包括多个沿列方向排列的输出端子,分别向沿列方向排列的存储器块中的单元的行位置分配每个输入端子,在输出端子列中至少一部分输出端子与算术逻辑块连接,
其中,在阵列中以组织行进的方式,与所述时钟信号同步地向输出端子列传送每个存储器块中存储的信息块,并且通过部分输出端子并行地提供所存储的信息到处理器,并且
所述算术逻辑块能够与所述时钟信号同步地,利用通过部分输出端子顺序地输送的信息执行所述算术和逻辑运算,另外,将所述算术逻辑块中的处理结果发送到所述行进式主存储器;
其中在输出端子列中至少另一部分输出端子与控制块连接,
在沿列方向排列的多个存储器块内的,与输出端子列的另一部分输出端子对应的行位置的存储器块的各个单元中在列方向存储一组指令,
在阵列中以组织行进的方式,与所述时钟信号同步地向在输出端子列中所述另一部分输出端子传送在每个存储器块中存储的一组指令,并且通过所述另一部分输出端子并行地提供存储的指令到处理器,以及
所述算术逻辑块能够与时钟信号同步地,利用输送的一组指令执行所述算术和逻辑运算。
2.根据权利要求1所述的计算机系统,其中沿列方向排列的每个存储器块包括:
第一单元阵列,被配置为以组织行进的方式,与所述时钟信号同步地向输出端子列传送每个存储器块中存储的信息块,以及
另一个第二单元阵列,被配置为以组织行进的,与第二时钟信号同步地向输入端子列传送每个存储器块中存储的信息块。
3.根据权利要求1所述的计算机系统,其中沿列方向排列的一部分存储器块包括第一存储器块,所述第一存储器块包括第一单元阵列,所述第一单元阵列被配置为以组织行进的方式,与所述时钟信号同步地向输出端子列传送信息块,并且
沿列方向排列的另一部分存储器块包括第二存储器块,所述第二存储器块包括第二单元阵列,所述第二单元阵列被配置为以组织行进的方式,与第二时钟信号同步地向输入端子列传送信息块。
4.根据权利要求2或3所述的计算机系统,还包括用于选择时钟信号或第二时钟信号的时钟选择器,并且
当时钟选择器被控制块控制以选择第二时钟信号时,通过输出端子列中部分输出端子顺序地将在算术逻辑块中处理的结果发送到行进式主存储器作为一组信息以便能在行进式主存储器中存储所述一组信息,并且在阵列中以组织行进方式向输入端子列同步传送所述一组信息。
5.根据权利要求1-3任一项所述的计算机系统,其中,所述存储器块被二维地布置在芯片上。
6.根据权利要求5所述的计算机系统,其中,多个芯片垂直地堆叠,以将散热板层夹在所述多个芯片之间,从而实现三维存储器块阵列。
7.根据权利要求1-3任一项所述的计算机系统,其中,所述处理器还包括多个算术流水线,所述算术流水线用于通过在输出端子列中部分所述输出端子与所述时钟信号同步地从所述行进式主存储器接收信息块的流动。
8.一种计算机系统,包括:
处理器,所述处理器包括:
控制块,具有用于生成时钟信号的时钟发生器,及
算术逻辑块,用于与所述时钟信号同步地执行算术和逻辑运算;
行进式主存储器,所述行进式主存储器包括存储器块阵列,其中多个存储器块沿列方向排列,每个存储器块包括沿列方向排列的单元阵列,每个单元存储信息,以便每个存储器块能存储沿列方向排列的信息块,并且还沿行方向设置多个沿列方向排列的存储器块的一维布置,
行进式高速缓存存储器,所述行进式高速缓存存储器具有第一行进式高速缓存阵列,其中多个第一高速缓存存储器块沿列方向排列并且被连接到沿列方向排列的至少部分存储器块的位置,每个第一高速缓存存储器块存储沿列方向排列的信息块,并且还沿行方向设置多个沿列方向排列的第一高速缓存存储器块的一维布置,
其中,行进式主存储器还包括沿列方向排列的输入端子列和输出端子列,分别向沿列方向排列的单元的行位置分配输入端子列和输出端子列,
行进式高速缓存存储器还包括被配置为从行进式主存储器接收存储的信息块的第一行进式高速缓存阵列的高速缓存输入端子列,所述高速缓存输入端子列和输出端子列连接,并且所述行进式高速缓存存储器包括高速缓存输出端子列,所述高速缓存输出端子列和算术逻辑块连接,
通过输入端子列向在行进式主存储器中沿列方向排列的每个存储器块中的单元阵列输送信息块,
在阵列中以组织行进的方式,与所述时钟信号同步向输出端子列传送在每个存储器块中存储的信息块,并且通过输出端子列和高速缓存输入端子列并行地提供存储的信息到行进式高速缓存存储器,
在沿列方向排列的每个第一高速缓存存储器块中存储信息块,并且以组织行进的方式,与所述时钟信号同步向高速缓存输出端子列传送存储的信息块,并且通过高速缓存输出端子列并行地提供存储的信息块到处理器,
所述算术逻辑块能够与所述时钟信号同步地,利用通过高速缓存输出端子列顺序地输送的信息执行算术和逻辑操作。
9.根据权利要求8所述的计算机系统,其中,算术逻辑块包括多个算术流水线,所述多个算术流水线包括多个向量处理块。
10.一种计算机系统,包括:
处理器,所述处理器包括:
控制块,具有用于生成时钟信号的时钟发生器,及
算术逻辑块,用于与所述时钟信号同步地执行算术和逻辑运算;
行进式主存储器,所述行进式主存储器包括存储器块阵列,其中多个存储器块沿列方向排列,每个存储器块包括沿列方向排列的单元阵列,每个单元存储信息,以便每个存储器块能存储沿列方向排列的信息块,并且还沿行方向设置多个沿列方向排列的存储器块的一维布置,
行进式高速缓存存储器,所述行进式高速缓存存储器包括行进式高速缓存阵列,其中多个高速缓存存储器块沿列方向排列并且被连接到沿列方向排列的至少部分存储器块的位置,每个高速缓存存储器块存储沿列方向排列的信息块,并且还沿行方向设置多个沿列方向排列的高速缓存存储器块的一维布置;以及
行进式向量寄存器阵列包括多个行进式向量寄存器块,排列所述多个行进式向量寄存器块并且将所述多个行进式向量寄存器块连接到沿列方向排列的高速缓存存储器块的布置的位置,并且还沿行方向设置多个沿列方向排列的行进式向量寄存器块的布置,
其中,行进式主存储器还包括沿列方向排列的输入端子列和输出端子列,分别向沿列方向排列的单元的行位置分配输入端子列和输出端子列,
行进式高速缓存存储器还包括被配置为从行进式主存储器接收存储的信息块的行进式高速缓存阵列的高速缓存输入端子列,所述高速缓存输入端子列和输出端子列连接,并且所述行进式高速缓存存储器还包括高速缓存输出端子列,
行进式向量寄存器阵列还包括行进式向量寄存器阵列的向量寄存器输入端子,所述向量寄存器输入端子和高速缓存输出端子列连接,以及还包括行进式向量寄存器阵列的向量寄存器输出端子,所述向量寄存器输出端子和算术逻辑块连接,
通过输入端子列向在行进式主存储器中沿列方向排列的每个存储器块中的单元阵列输送信息块,
在阵列中以组织行进的方式,与所述时钟信号同步向输出端子列传送在每个存储器块中存储的信息块,并且通过输出端子列和高速缓存输入端子列并行地提供存储的信息到行进式高速缓存存储器,
在沿列方向排列的每个高速缓存存储器块中存储信息块,并且以组织行进的方式,与所述时钟信号同步向高速缓存输出端子列传送存储的信息块,并且通过高速缓存输出端子列并行地提供存储的信息块到行进式向量寄存器阵列,
行进式向量寄存器阵列从所述行进式主存储器接收所存储的向量信息,将信息存储在每个向量寄存器块中,并且与所述时钟信号同步,逐步地传送在每个行进式向量寄存器块中存储的向量信息,以便将向量数据活动且顺序地提供给算术逻辑块,从而所述算术逻辑块能够执行所述向量数据。
11.根据权利要求10所述的计算机系统,还包括:
行进式标量寄存器阵列,所述行进式标量寄存器阵列沿行方向设置多个行进式标量寄存器块的布置,每个沿列方向的行进式标量寄存器块的布置具有行进式标量寄存器块阵列,该行进式标量寄存器块位于与沿列方向排列的每个信息块对应的位置处,以及
行进式标量寄存器的阵列的标量寄存器输入端子,其中行进式标量寄存器通过标量寄存器输入端子从所述行进式主存储器接收所存储的标量信息,将标量信息存储在每个行进式标量寄存器块中,并且与所述时钟信号同步,逐步地传送在每个行进式标量寄存器块中存储的标量信息,以便将标量数据活动且顺序地提供给算术逻辑块,从而所述算术逻辑块能够执行所述标量数据。
12.根据权利要求11所述的计算机系统,其中,所述控制块还具有现场可编程门阵列,所述现场可编程门阵列用于对所述行进式主存储器、所述行进式高速缓存存储器、所述行进式向量寄存器和所述行进式标量寄存器的操作进行切换控制。
13.根据权利要求12所述的计算机系统,其中,所述行进式主存储器和所述行进式高速缓存存储器被并入到相同的芯片上。
14.根据权利要求12所述的计算机系统,其中,其中所述算术逻辑块包括多个向量处理块,并且所述向量处理块中的至少一个和所述行进式向量寄存器中的至少一个被并入到相同的芯片上。
15.根据权利要求14所述的计算机系统,其中,并入了所述向量处理块和所述行进式向量寄存器的第一芯片、并入了所述行进式高速缓存存储器的第二芯片以及并入了所述行进式主存储器的第三芯片垂直堆叠,从而将散热板层夹在所述第一芯片、第二芯片和第三芯片之间。
16.根据权利要求8所述的计算机系统,其中,所述算术逻辑块包括多个处理器内核。
17.根据权利要求8所述的计算机系统,其中,通过多个处理器内核实现所述处理器。
18.根据权利要求17所述的计算机系统,其中行进式高速缓存存储器还包括第二行进式高速缓存阵列,所述第二行进式高速缓存阵列插入于处理器和第一行进式高速缓存阵列之间,所述第二行进式高速缓存阵列具有:
第二高速缓存存储器块的第二阵列,其中多个第二高速缓存存储器块沿列方向排列并且被连接到沿列方向排列的至少部分存储器块的位置,并且还沿行方向设置多个沿列方向排列的第二高速缓存存储器块的一维布置,
第二阵列的第二高速缓存输入端子列,所述第二高速缓存输入端子列被配置为通过第一行进式高速缓存阵列从所述行进式主存储器接收所存储的信息,及
第二阵列的第二高速缓存输出端子列,
其中所述第二行进式高速缓存存储器将信息存储在每个第二高速缓存存储器块中,并且从与所述第二高速缓存输入端子列相邻的第一高速缓存存储器块的布置到与所述第二高速缓存输出端子列相邻的第二高速缓存存储器块的布置,与所述时钟信号同步,连续地逐步将每个第二高速缓存存储器块的布置中存储的信息传送到相邻的第二高速缓存存储器块的布置,以便通过所述第二高速缓存输出端子列,将所存储的信息活动且顺序地提供给所述处理器,从而所述处理器内核能够利用所存储的信息进行操作。
19.根据权利要求17所述的计算机系统,还包括行进式寄存器文件,行进式寄存器文件具有寄存器文件单元阵列、寄存器文件单元阵列的寄存器文件输入端子和寄存器文件单元阵列的寄存器文件输出端子,所述阵列的寄存器文件输入端子用于从所述行进式高速缓存存储器接收所存储的信息,
其中所述行进式寄存器文件将信息存储在每个寄存器文件单元中,并且从与所述寄存器文件输入端子相邻的寄存器文件单元到与所述寄存器文件输出端子相邻的寄存器文件单元,与所述时钟信号同步,连续地逐步将每个寄存器文件单元中存储的信息传送到相邻的寄存器文件单元,以便通过所述寄存器文件输出端子,将所存储的信息活动且顺序地提供给所述算术逻辑块。
20.根据权利要求19所述的计算机系统,其中,所述控制块还具有现场可编程门阵列,所述现场可编程门阵列用于对所述行进式主存储器、所述行进式高速缓存存储器以及所述行进式寄存器文件的操作进行切换控制。
21.根据权利要求8所述的计算机系统,其中,所述行进式主存储器和所述行进式高速缓存存储器被并入到相同的芯片上。
22.根据权利要求19所述的计算机系统,其中,所述行进式寄存器文件和至少一个处理器内核被并入到相同的芯片上。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22732509P | 2009-07-21 | 2009-07-21 | |
US61/227,325 | 2009-07-21 | ||
PCT/JP2010/004642 WO2011010445A1 (en) | 2009-07-21 | 2010-07-20 | A lower energy comsumption and high speed computer without the memory bottleneck |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102483697A CN102483697A (zh) | 2012-05-30 |
CN102483697B true CN102483697B (zh) | 2015-06-10 |
Family
ID=43498927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080033094.2A Active CN102483697B (zh) | 2009-07-21 | 2010-07-20 | 无存储器瓶颈的低能耗高速计算机 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8949650B2 (zh) |
EP (2) | EP2457155B1 (zh) |
JP (1) | JP5417674B2 (zh) |
KR (1) | KR101424020B1 (zh) |
CN (1) | CN102483697B (zh) |
WO (1) | WO2011010445A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020119511A1 (zh) * | 2018-12-10 | 2020-06-18 | 杭州海存信息技术有限公司 | 分离的三维处理器 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5417674B2 (ja) * | 2009-07-21 | 2014-02-19 | 維男 中村 | 計算機システム及び主記憶装置 |
TWI607454B (zh) * | 2012-02-13 | 2017-12-01 | 中村維男 | 無記憶體瓶頸的行進記憶體,雙向行進記憶體,複雜行進記憶體,及計算機系統 |
KR20130010915A (ko) * | 2012-10-23 | 2013-01-29 | 김성동 | 챕터 데이터가 저장될 수 있는 캐쉬 메모리 어레이를 구비하는 3차원 반도체 장치 및 그 동작 방법 |
TWI557749B (zh) | 2013-06-13 | 2016-11-11 | 中村維男 | 直接轉移跨步記憶體及使用該記憶體之電腦系統 |
JP6319420B2 (ja) * | 2014-02-24 | 2018-05-09 | 株式会社ニコン | 情報処理装置、デジタルカメラおよびプロセッサ |
US9513921B2 (en) * | 2014-06-23 | 2016-12-06 | Mill Computing, Inc. | Computer processor employing temporal addressing for storage of transient operands |
CN104777936B (zh) * | 2015-04-16 | 2016-08-24 | 京东方科技集团股份有限公司 | 触控驱动单元和电路、显示面板及显示装置 |
CN108352837A (zh) * | 2015-11-13 | 2018-07-31 | 株式会社半导体能源研究所 | 半导体装置、电子构件及电子设备 |
CN111651206B (zh) * | 2016-04-26 | 2024-05-07 | 中科寒武纪科技股份有限公司 | 一种用于执行向量外积运算的装置和方法 |
US10909037B2 (en) * | 2017-04-21 | 2021-02-02 | Intel Corpor Ation | Optimizing memory address compression |
CN109426518B (zh) * | 2017-08-29 | 2021-02-19 | 杭州旗捷科技有限公司 | 单核处理器设备的并行写码方法、电子设备、存储介质 |
KR102460281B1 (ko) | 2017-11-24 | 2022-10-31 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 다중 입력 파이프 라인을 가진 데이터 버스 |
FR3074931B1 (fr) * | 2017-12-13 | 2020-01-03 | Vsora | Architectures de processeur |
KR102294108B1 (ko) | 2018-01-23 | 2021-08-26 | 다다오 나카무라 | 마칭 메모리 및 컴퓨터 시스템 |
US10996885B2 (en) | 2018-03-12 | 2021-05-04 | Samsung Electronics Co., Ltd. | High bandwidth memory device and system device having the same |
KR102543177B1 (ko) | 2018-03-12 | 2023-06-14 | 삼성전자주식회사 | 고 대역폭 메모리 장치 및 이 장치를 포함하는 시스템 장치 |
US11853758B2 (en) * | 2019-09-27 | 2023-12-26 | Intel Corporation | Techniques for decoupled access-execute near-memory processing |
US11442890B1 (en) | 2020-11-06 | 2022-09-13 | Amazon Technologies, Inc. | On-circuit data activity monitoring for a systolic array |
US11520731B1 (en) | 2020-11-06 | 2022-12-06 | Amazon Technologies, Inc. | Arbitrating throttling recommendations for a systolic array |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100485638C (zh) * | 2003-09-03 | 2009-05-06 | 先进微装置公司 | 在处理器中用于减少功耗的微变换检测缓冲器及微标记符 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3975712A (en) * | 1975-02-18 | 1976-08-17 | Motorola, Inc. | Asynchronous communication interface adaptor |
JPS61165137A (ja) * | 1985-01-17 | 1986-07-25 | Nec Corp | デ−タフロ−処理装置 |
US4833655A (en) * | 1985-06-28 | 1989-05-23 | Wang Laboratories, Inc. | FIFO memory with decreased fall-through delay |
JPH0761017B2 (ja) * | 1985-09-25 | 1995-06-28 | 株式会社日立製作所 | A/d変換器 |
US4805133A (en) * | 1985-12-20 | 1989-02-14 | Greenfield S Edmund | Processor memory element and a new computer architecture |
US5475631A (en) * | 1989-03-09 | 1995-12-12 | Micron Technology, Inc. | Multiport RAM based multiprocessor |
US5418933A (en) * | 1990-02-20 | 1995-05-23 | Sharp Kabushiki Kaisha | Bidirectional tri-state data bus buffer control circuit for delaying direction switching at I/O pins of semiconductor integrated circuit |
EP0463721A3 (en) | 1990-04-30 | 1993-06-16 | Gennum Corporation | Digital signal processing device |
EP0489952B1 (de) * | 1990-12-11 | 1998-08-19 | Siemens Aktiengesellschaft | Schaltungsanordnung zur digitalen Bit-seriellen Signalverarbeitung |
JPH04293151A (ja) * | 1991-03-20 | 1992-10-16 | Fujitsu Ltd | 並列データ処理方式 |
JPH05128898A (ja) * | 1991-11-05 | 1993-05-25 | Oki Electric Ind Co Ltd | 半導体記憶装置 |
JP3243920B2 (ja) * | 1994-03-07 | 2002-01-07 | 株式会社日立製作所 | 半導体装置 |
US5790879A (en) * | 1994-06-15 | 1998-08-04 | Wu; Chen-Mie | Pipelined-systolic single-instruction stream multiple-data stream (SIMD) array processing with broadcasting control, and method of operating same |
US6496926B1 (en) * | 1997-05-06 | 2002-12-17 | Microsoft Corporation | Computer-implemented paramaterless language with exception handler |
FR2777370B1 (fr) * | 1998-04-09 | 2000-06-23 | Sgs Thomson Microelectronics | Architecture de dsp optimisee pour les acces memoire |
US20020184381A1 (en) * | 2001-05-30 | 2002-12-05 | Celox Networks, Inc. | Method and apparatus for dynamically controlling data flow on a bi-directional data bus |
US7062636B2 (en) * | 2002-09-19 | 2006-06-13 | Intel Corporation | Ordering scheme with architectural operation decomposed into result producing speculative micro-operation and exception producing architectural micro-operation |
US7617356B2 (en) * | 2002-12-31 | 2009-11-10 | Intel Corporation | Refresh port for a dynamic memory |
KR100585227B1 (ko) * | 2004-03-12 | 2006-06-01 | 삼성전자주식회사 | 열 방출 특성이 개선된 반도체 적층 패키지 및 이를이용한 메모리 모듈 |
JP4654389B2 (ja) | 2006-01-16 | 2011-03-16 | 株式会社ムサシノエンジニアリング | ダイヤモンドヒートスプレッダの常温接合方法,及び半導体デバイスの放熱部 |
KR101414774B1 (ko) * | 2007-08-29 | 2014-08-07 | 삼성전자주식회사 | 멀티포트 반도체 메모리 장치 |
WO2009034653A1 (ja) * | 2007-09-14 | 2009-03-19 | Fujitsu Limited | 回路、その制御方法、処理装置及び処理装置の制御方法 |
JP5194302B2 (ja) * | 2008-02-20 | 2013-05-08 | ルネサスエレクトロニクス株式会社 | 半導体信号処理装置 |
JP5417674B2 (ja) * | 2009-07-21 | 2014-02-19 | 維男 中村 | 計算機システム及び主記憶装置 |
-
2010
- 2010-07-20 JP JP2012503797A patent/JP5417674B2/ja active Active
- 2010-07-20 KR KR1020127002982A patent/KR101424020B1/ko active IP Right Grant
- 2010-07-20 WO PCT/JP2010/004642 patent/WO2011010445A1/en active Application Filing
- 2010-07-20 US US13/384,774 patent/US8949650B2/en active Active
- 2010-07-20 EP EP10802066.0A patent/EP2457155B1/en active Active
- 2010-07-20 EP EP17180711.8A patent/EP3255555B1/en active Active
- 2010-07-20 CN CN201080033094.2A patent/CN102483697B/zh active Active
-
2014
- 2014-11-25 US US14/552,572 patent/US9361957B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100485638C (zh) * | 2003-09-03 | 2009-05-06 | 先进微装置公司 | 在处理器中用于减少功耗的微变换检测缓冲器及微标记符 |
Non-Patent Citations (1)
Title |
---|
The outline of the SX system;Akihiro IWAYA et al.;《NEC Technical Journal》;19861231;第39卷(第1期);10-16 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020119511A1 (zh) * | 2018-12-10 | 2020-06-18 | 杭州海存信息技术有限公司 | 分离的三维处理器 |
Also Published As
Publication number | Publication date |
---|---|
WO2011010445A1 (en) | 2011-01-27 |
KR20120048596A (ko) | 2012-05-15 |
US20150149718A1 (en) | 2015-05-28 |
EP2457155B1 (en) | 2017-10-11 |
KR101424020B1 (ko) | 2014-07-28 |
EP3255555A1 (en) | 2017-12-13 |
US8949650B2 (en) | 2015-02-03 |
US9361957B2 (en) | 2016-06-07 |
EP3255555B1 (en) | 2020-01-29 |
EP2457155A4 (en) | 2014-07-23 |
JP2012533784A (ja) | 2012-12-27 |
EP2457155A1 (en) | 2012-05-30 |
CN102483697A (zh) | 2012-05-30 |
JP5417674B2 (ja) | 2014-02-19 |
US20120117412A1 (en) | 2012-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102483697B (zh) | 无存储器瓶颈的低能耗高速计算机 | |
Xie et al. | Three-dimensional integrated circuit design | |
CN104571949B (zh) | 基于忆阻器实现计算与存储融合的处理器及其操作方法 | |
US20200233803A1 (en) | Efficient hardware architecture for accelerating grouped convolutions | |
CN104040635B (zh) | 没有存储器瓶颈的推进存储器、双向推进存储器、复合推进存储器和计算机系统 | |
CN108780432A (zh) | 用于高速缓存无效的设备及方法 | |
EP3742485B1 (en) | Layered super-reticle computing: architectures and methods | |
CN102541809B (zh) | 一种动态可重构处理器 | |
US10564929B2 (en) | Communication between dataflow processing units and memories | |
CN103810111A (zh) | 有源存储器件中的地址生成的方法及其处理元件 | |
JP2018073452A (ja) | Dram基盤のプロセシングユニット | |
CN103744644A (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
Chang et al. | DASM: Data-streaming-based computing in nonvolatile memory architecture for embedded system | |
Ofori-Attah et al. | Architectural techniques for improving the power consumption of noc-based cmps: A case study of cache and network layer | |
Jagasivamani et al. | Memory-systems challenges in realizing monolithic computers | |
Xue et al. | 3D floorplanning of low-power and area-efficient Network-on-Chip architecture | |
CN114116167B (zh) | 一种面向高性能计算的区域自治异构众核处理器 | |
Elliott | Computational RAM: a memory-SIMD hybrid. | |
Gao | Scalable Near-Data Processing Systems for Data-Intensive Applications | |
Crafton et al. | Statistical Array Allocation and Partitioning for Compute In-Memory Fabrics | |
Thorolfsson et al. | A low power 3D integrated FFT engine using hypercube memory division | |
Satpathy | High Performance and Low Power On-Die Interconnect Fabrics |
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 |