KR20120048596A - 메모리 병목이 없는 저소비전력 및 고속 컴퓨터 - Google Patents

메모리 병목이 없는 저소비전력 및 고속 컴퓨터 Download PDF

Info

Publication number
KR20120048596A
KR20120048596A KR1020127002982A KR20127002982A KR20120048596A KR 20120048596 A KR20120048596 A KR 20120048596A KR 1020127002982 A KR1020127002982 A KR 1020127002982A KR 20127002982 A KR20127002982 A KR 20127002982A KR 20120048596 A KR20120048596 A KR 20120048596A
Authority
KR
South Korea
Prior art keywords
marching
memory
information
data
main memory
Prior art date
Application number
KR1020127002982A
Other languages
English (en)
Other versions
KR101424020B1 (ko
Inventor
다다오 나카무라
마이클 제이. 플린
Original Assignee
마이클 제이. 플린
다다오 나카무라
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이클 제이. 플린, 다다오 나카무라 filed Critical 마이클 제이. 플린
Publication of KR20120048596A publication Critical patent/KR20120048596A/ko
Application granted granted Critical
Publication of KR101424020B1 publication Critical patent/KR101424020B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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/08Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • G11C19/18Digital stores in which the information is moved stepwise, e.g. shift registers using capacitors as main elements of the stages
    • G11C19/182Digital 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/184Digital 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/57Arithmetic 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Abstract

컴퓨터 시스템은 프로세서(11)와 마칭 메인 메모리(31)를 포함하며, 프로세서는 제어 유닛(111)과 ALU(112)를 포함하고, ALU는 클록 신호와 동기하여 산술 및 논리 연산을 실행하도록 구성되며, 마칭 메인 메모리는 메모리 유닛의 어레이를 포함하고 각각의 메모리 유닛에 정보를 기억시키고 클록 신호와 동기하여 전송하도록 구성되며, 기억된 정보를 프로세서(11)에 능동적이며 순차적으로 제공하여, ALU(112)가 기억된 정보를 사용하여 산술 및 논리 연산을 실행할 수 있다. ALU(112)에서의 처리 결과는 마칭 메인 메모리(31)에 발송되지만, 마칭 메인 메모리(31)로부터 프로세서로의 명령어 흐름은 단일 방향만 가능하도록 되어 있다.

Description

메모리 병목이 없는 저소비전력 및 고속 컴퓨터{A LOWER ENERGY CONSUMPTION AND HIGH SPEED COMPUTER WITHOUT THE MEMORY BOTTLENECK}
본 발명은 저소비전력 및 고속으로 동작하는 컴퓨터 시스템에 관한 것이다.
60년 전에 개발된 폰노이만 컴퓨터는 프로그램을 기억하는 전자 컴퓨터이기 때문에, 기본적인 메모리 액세스 원리는 변경되지 않았다. 컴퓨터의 처리 속도는 넓은 범위의 고성능 컴퓨팅(HPC) 애플리케이션의 경우, 수년 동안 크게 발전했지만, 메모리 액세스를 피하는 장치 기술 또는 방법(캐시를 이용하는 등)에 의해 달성되어 왔다. 그러나, 메모리 액세스 시간은 컴퓨터 성능의 제한 요소가 된다. 현재의 컴퓨터 시스템은 도 1에 나타낸 것과 같이 많은 프로세서(11)와 대규모 메인 메모리(331)를 사용한다.
도 1에 나타낸 컴퓨터 시스템은 프로세서(11), 캐시 메모리(321a, 321b), 및 메인 메모리(331)를 포함한다. 프로세서(11)는 클록 신호를 생성하는 클록 생성기(113)를 갖는 제어 유닛(111), 클록 신호와 동기되어 산술 및 논리 연산을 수행하는 산술 논리 유닛(ALU)(112), 제어 유닛(111)에 연결된 명령어 레지스터 파일(RF)(322a), 및 ALU(112)에 연결된 데이터 레지스터 파일(RF)(322b)을 구비한다. 캐시 메모리(321a, 321b)는 명령어 캐시 메모리(321a)와 데이터 캐시 메모리(321b)를 포함한다. 메인 메모리(331)의 일부와 명령어 캐시 메모리(321a)는 메모리 액세스 시간을 제한하는[또는 폰노이만 병목(Von Neumann bottleneck)](351) 와이어 및/또는 버스에 의해 전기적으로 연결된다. 메인 메모리(331)의 나머지 부분과 데이터 캐시 메모리(321b)는 유사한 메모리 액세스(351)를 위해 전기적으로 연결된다. 또한, 메모리 액세스(352)를 구현하는 와이어 및/또는 버스는 데이터 캐시 메모리(321b)와 명령어 캐시 메모리(321a) 사이, 및 명령어 레지스터 파일(322a)과 데이터 레지스터 파일(322b) 사이를 전기적으로 연결한다.
HPC 시스템은 고속 및 저소비전력에서 동작할 것으로 예상되지만, 메모리 액세스 병목(351, 352)에 의한 속도 제한이 있다. 이러한 병목(351, 352)은 프로세서(11)와 메인 메모리(331) 사이의 배선(wiring)에 기인한다. 즉, 배선 길이는 컴퓨터에 대한 액세스를 지연시키고, 배선 사이에 존재하는 부유 커패시턴스에 의해 추가로 지연이 생긴다. 이러한 커패시턴스는 프로세서(11) 내의 프로세서 클록 주파수에 비례하여 더 많은 소비전력을 필요로 한다.
현재, 일부의 HPC 프로세서는 몇 개의 벡터 산술 파이프라인을 사용하여 구현된다. 이러한 벡터 프로세서에 의해, 메모리 대역폭을 더 효과적으로 이용할 수 있고 벡터 표기법(vector notation)으로 표현될 수 있는 HPC 애플리케이션을 위한 더 성능이 좋은 기계 장치가 된다. 소스 프로그램 내의 루프로부터 벡터 명령어가 만들어지며, 이들 벡터 명령어의 각각이 벡터 프로세서 내의 산술 파이프라인 또는 병렬 프로세서 내의 대응하는 유닛에서 실행된다. 이러한 처리 방법의 결과는 동일한 결과를 산출한다.
그러나, 벡터 프로세서에 기반을 둔 시스템이라도 유닛들 사이에 메모리 병목(351, 352)이 있다. 대용량 메모리 및 대규모 대역폭을 가진 단일의 시스템이라도, 동일한 병목(351, 352)이 나타나며, 시스템이 병렬 프로세스 내에 많은 동일한 유닛으로 구성된다면, 병목(351, 352)은 피할 수 없다.
종래의 컴퓨터 시스템에는 2가지의 피할 수 없는 메모리 액세스 문제가 존재한다. 첫 번째 문제는 메모리 칩과 캐시 사이 또는 단일 칩 상의 2개의 유닛 사이뿐만 아니라 메모리 시스템 내부에도 배선이 있다는 것이다. 칩들 사이 또는 2개의 칩/유닛 사이의 배선은 커패시턴스에 기인한 동적 전력 소비 및 배선 신호 시간 지연이 생긴다. 이것은 라인 및 나머지 판독/기록 라인에의 액세스와 관련된 메모리 칩 내의 내부 배선 문제로까지 확장된다. 따라서, 메모리 칩의 내부 및 외부 배선에서, 이들 배선에 의한 커패시턴스에 기인한 에너지 소비가 존재한다.
두 번째 문제는 프로세서 칩, 캐시 및 메모리 칩 사이에서의 메모리 병목(351, 352)이다. ALU는 캐시 또는 메모리의 어떠한 부분도 액세스할 수 있기 때문에, 액세스 경로(351, 352)는 길이가 긴 전역 와이어(global wire)로 이루어진다. 이들 경로는 이용가능한 와이어의 수가 제한된다. 이러한 병목은 버스와 같은 하드웨어에 의한 것으로 보인다. 특히, 고속 CPU와 대용량 메모리가 존재하는 경우에, 기본적으로 이들 사이에서 뚜렷한 병목이 있다.
병목을 제거하기 위한 요건은 CPU와 동일한 메모리 클록 사이클을 갖는 것이다. 먼저, 메모리 액세스를 향상시키기 위해 어드레싱 과정을 작성하여야 한다. 다음으로, 길이가 긴 와이어에 의한 시간 지연이 메모리 내부 및 메모리 외부에서 모두 크게 감소되어야 한다.
이들 두 가지 문제를 해결함으로써, 메모리와 CPU 사이의 신속한 결합이 이루어지고, 메모리 병목이 없는 컴퓨터를 가능하게 한다.
프로세서는 이들 문제에 의해 전체 에너지 중 70%를 사용하는데, 그 중 42%를 명령어를 제공하는 데에 사용하고 28%를 데이터를 위해 사용한다. 이를 도 32에 나타낸다. 배선 문제는 전력 소비와 신호의 시간 지연을 발생시킨다. 배선 문제를 극복하는 것은 데이터/명령어의 흐름을 제한하는 병목(351, 352)의 제거를 의미한다. 내부 칩 또는 외부 칩의 배선을 제거할 수 있다면, 소비전력, 시간 지연 및 메모리 병목(351, 352)의 문제를 해결할 수 있을 것이다.
본 발명의 하나의 관점은, (a)프로세서 및 (b)마칭 메인 메모리(marching main memory)를 포함하는 컴퓨터 시스템을 제공하는 것이다. (a)프로세서는, 클록 신호를 생성하도록 구성된 클록 생성기(clock generator)를 갖는 제어 유닛(control unit); 및 클록 신호와 동기하여 산술 및 논리 연산을 실행하도록 구성된 산술 논리 유닛(arithmetic logic unit)을 포함하며, 마칭 메인 메모리는, 정보 유닛을 각각 갖는 메모리 유닛의 어레이, 어레이의 입력 단자 및 어레이의 출력 단자를 구비하며, 정보를 메모리 유닛의 각각에 기억하고 기억된 정보를 클록 신호에 동기하여 출력 단자로 순차적으로 전송하도록 구성되고, 기억된 정보를 프로세서에 능동적이며 순차적으로 제공함으로써, 산술 논리 유닛이 기억된 정보를 사용하여 산술 및 논리 연산을 실행할 수 있게 되며, 산술 논리 유닛에서의 처리 결과를, 명령어 이동의 경우를 제외하고, 마칭 메인 메모리로 발송하며, 마칭 메인 메모리로부터 프로세서로의 하나의 방향의 명령어 흐름만이 가능하도록 되어 있다.
도 1은 종래의 컴퓨터 시스템의 구성을 개략적으로 나타내는 블록도이다.
도 2는 본 발명의 제1 실시예에 관한 컴퓨터 시스템의 기본적인 구성을 개략적으로 나타내는 블록도이다.
도 3은 본 발명의 제1 실시예에 관한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리를 구현하는 메모리 유닛의 어레이와 마칭 메인 메모리에서의 정보의 전송을 나타낸다.
도 4는 본 발명의 제1 실시예에 관한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리의 셀 레벨 표현을 나타낸다.
도 5는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리에 적용되도록 구성된 클록 신호의 파형의 예를 나타낸다.
도 6은 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리의 셀 레벨의 표현에서의 각각의 셀의 AND 게이트의 회로 구성의 예를 나타낸다.
도 7은 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 역방향 마칭 메인 메모리를 구현하는 메모리 유닛의 어레이와 역방향 마칭 메인 메모리에서의 정보의 역방향 전송을 나타낸다.
도 8의 (a)는 도 7에 나타낸 역방향 마칭 메인 메모리의 셀 레벨 표현 중의 i번째 행을 구현하는 어레이에서의 각각의 셀의 AND 게이트의 회로 구성의 예를 나타내며, 도 8의 (b)는 도 7에 나타낸 역방향 마칭 메인 메모리에 적용되도록 구성된 클록 신호의 파형의 예를 나타낸다.
도 9는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 프로세서(CPU) 내의 클록 사이클 및 마칭 메인 메모리 내의 메모리 유닛 스트리밍 시간 사이의 시간-도메인 관계를 나타낸다.
도 10은 본 발명의 제1 실시예에 의한 컴퓨터 시스템의 구성을 개략적으로 나타내며, 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서, 마칭 메인 메모리를 포함하는 마칭 메모리 구조와 프로세서(CPU) 사이에서 메모리 병목이 없어진 예를 나타낸다.
도 11의 (a)는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 마칭 메인 메모리를 포함하는 마칭 메모리 구조로부터 프로세서(CPU)로 흐르는 정방향 데이터 스트림과, 프로세서(CPU)로부터 마칭 메모리 구조로의 역방향 데이터 흐름을 나타낸다. 도 11의 (b)는 마칭 메모리 구조의 메모리 유닛 스트리밍 시간이 프로세서(CPU)의 클록 사이클과 동일한 이상적인 조건 하에서 마칭 메모리 구조와 프로세서(CPU) 사이에 설정된 대역폭을 나타낸다.
도 12의 (a)는 정보가 1차원 마칭 메인 메모리에서 우측 방향을 향해 마칭(시프트)하는 정보의 마칭 행동(정방향 마칭 행동)의 구체적인 이미지를 나타낸다. 도 12의 (b)는 1차원 마칭 메인 메모리의 스트레이(stray) 상태를 나타낸다. 도 12의 (c)는 정보가 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 1차원 마칭 메인 메모리의 좌측 방향을 향해 마칭(시프트)하는, 정보의 역방향 마칭 행동(역방향 마칭 행동)의 구체적인 이미지를 나타낸다.
도 13은 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 명령어 또는 스칼라 데이터를 기억 및 양방향으로 전송하도록 구성된, 도 12의 (a)-(c)에 나타낸 양방향 전송 행동을 달성할 수 있는, 1차원 마칭 메인 메모리의 회로 구성의 예를 나타낸다.
도 14의 (a)는 프로세서에 이웃하는 1차원 마칭 메인 메모리에서의 명령어의 양방향 전송 모드로서, 명령어가 프로세서로 이동하고, 좌측에 정렬된 다음 메모리로부터 또한 다음 메모리로 이동하는 것을 나타낸다. 도 14의 (b)는 ALU에 이웃하는 1차원 마칭 메인 메모리에서의 스칼라 데이터의 양방향 전송 모드로서, 스칼라 데이터가 ALU로 이동하고 다음 메모리로부터 또한 다음 메모리로 이동하는 것을 나타낸다. 도 14의 (c)는 파이프라인에 이웃하는 1차원 마칭 메인 메모리에서의 벡터/스트리밍 데이터의 단방향 전송 모드로서, 벡터/스트리밍 데이터가 파이프라인을 향해 이동하고 다음 메모리로부터 이동하는 것을 나타낸다.
도 15의 (a)는 각각의 메모리 유닛에 어드레스가 붙은 기존의 메모리의 내부 구성을 나타낸다. 도 15의 (b)는 벡터/스트리밍 데이터에서의 연속하는 메모리 유닛 세트의 시작 지점과 종료 지점을 식별하기 위해 개별 메모리 유닛의 위치 설정이 필요한, 1차원 마칭 메인 메모리의 내부 구성을 나타낸다.
도 16의 (a)는 벡터 명령어에서의 연속하는 메모리 유닛 세트의 시작 지점과 종료 지점을 식별하기 위해 개별의 메모리 유닛의 위치 설정이 필요한, 1차원 마칭 메인 메모리의 내부 구성을 나타낸다. 도 16의 (b)는 스칼라 데이터에 대한 1차원 마칭 메인 메모리의 내부 구성을 나타낸다. 도 16의 (c)는 벡터/스트리밍 데이터 내의 연속하는 메모리 유닛 세트의 시작 지점과 종료 지점을 식별하기 위해 위치 색인을 필요로 하는, 1차원 마칭 메인 메모리의 내부 구성을 나타낸다.
도 17의 (a)는 벡터/스트리밍 데이터의 경우에 다수의 페이지에 의해 구현되는 마칭 메인 메모리의 전체 구성의 예를 개략적으로 나타낸다. 도 17의 (b)는 벡터/스트리밍 데이터의 경우에 다수의 파일에 의해 각각 구현되는 페이지 중의 하나의 구성의 예를 개략적으로 나타낸다. 도 17의 (c)는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 벡터/스트리밍 데이터 경우에 다수의 메모리 유닛에 의해 구현되는 파일 중의 하나의 구성의 예를 개략적으로 나타낸다.
도 18의 (a)는 프로그램/스칼라 데이터의 경우에 자기 자신의 위치 색인을 어드레스로서 가지는 다수의 페이지에 의해 구현되는 마칭 메인 메모리의 전체 구성의 예를 개략적으로 나타낸다. 도 18의 (b)는 프로그램/스칼라 데이터의 경우에 자기 자신의 색인을 어드레스로서 가지는 페이지의 구동 위치와 페이지 중의 하나의 구성의 예를 개략적으로 나타낸다. 도 18의 (c)는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 이진 시스템 내의 숫자를 이용하여 프로그램/스칼라 데이터의 경우에 자기 자신의 위치 색인을 어드레스로서 가지는 다수의 메모리 유닛에 의해 각각 구현되는 파일의 구동 위치와 파일 중의 하나의 구성의 예를 개략적으로 나타낸다.
도 19의 (a)는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리의 속도/처리용량을 기존의 메모리의 속도/처리용량과 비교한 것을 개략적으로 나타낸다. 도 19의 (b)는 도 19의 (a)에 나타낸 기존의 메모리의 속도/처리용량과 비교한 마칭 메인 메모리의 속도/처리용량을 개략적으로 나타낸다.
도 20의 (a)는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리의 속도/처리용량과 스칼라 명령어를 위한 기존의 메모리의 최악의 경우의 속도/처리용량의 비교를 개략적으로 나타낸다. 도 20의 (b)는 도 20의 (a)에 나타낸 기존의 메모리의 최악의 경우의 속도/처리용량과 비교한 마칭 메인 메모리의 속도/처리용량을 개략적으로 나타낸다.
도 21의 (a)는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용된 마칭 메인 메모리의 속도/처리용량과 스칼라 명령어를 위한 기존의 메모리의 중간 경우의 속도/처리용량의 비교를 개략적으로 나타낸다. 도 21의 (b)는 도 21의 (a)에 나타낸 기존의 메모리의 중간의 경우의 속도/처리용량과 비교한 마칭 메인 메모리의 속도/처리용량을 개략적으로 나타낸다.
도 22의 (a)는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용된 마칭 메인 메모리의 속도/처리용량과 스칼라 데이터의 경우의 기존의 메모리의 중간 경우의 속도/처리용량의 비교를 개략적으로 나타낸다. 도 22의 (b)는 도 22의 (a)에 나타낸 기존의 메모리의 속도/처리용량과 비교한 마칭 메인 메모리의 속도/처리용량을 개략적으로 나타낸다.
도 23의 (a)는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용된 마칭 메인 메모리의 속도/처리용량과 비교한 스트리밍 데이터 및 데이터 병렬의 경우의 기존의 메모리의 최상의 경우의 속도/처리용량을 개략적으로 나타낸다. 도 23의 (b)는 도 23의 (a)에 나타낸 기존의 메모리의 최상의 경우의 속도/처리용량과 비교한 마칭 메인 메모리의 속도/처리용량을 개략적으로 나타낸다.
도 24는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리를 구현하는, 데이터 또는 명령어를 기억 및 전송하는 2차원 메모리 유닛의 어레이의 예를 나타낸다.
도 25는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리를 구현하는, 데이터 또는 명령어를 기억 및 전송하는 2차원 메모리 유닛의 어레이의 다른 예를 나타낸다.
도 26은 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리를 구현하는, 데이터 또는 명령어를 기억 및 전송하는 2차원 메모리 유닛의 어레이의 또 다른 예를 나타낸다.
도 27은 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리를 구현하는, 데이터 또는 명령어를 기억 및 전송하는 2차원 메모리 유닛의 어레이의 또 다른 예를 나타낸다.
도 28은 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리를 구현하는, 데이터 또는 명령어를 기억 및 전송하는 2차원 메모리 유닛의 어레이의 또 다른 예를 나타낸다.
도 29는 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리를 구현하는, 데이터 또는 명령어를 기억 및 전송하는 2차원 메모리 유닛의 어레이의 또 다른 예를 나타낸다.
도 30은 본 발명의 제1 실시예에 의한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리를 구현하는, 데이터 또는 명령어를 기억 및 전송하는 2차원 메모리 유닛의 어레이의 또 다른 예를 나타낸다.
도 31의 (a)는 마이크로 프로세서에서의 디바이스 레벨 에너지 소비를 정적 및 동적 에너지 소비로 분해한 것을 나타낸다. 도 31의 (b)는 도 31의 (a)에 나타낸 동적 에너지 소비에서의 순수 파워 소비 및 오버헤드 파워 소비를 나타낸다. 도 31의 (c)는 마이크로프로세서에서의 순수 에너지 소비를 나타낸다.
도 32는 Dally에 의해 추정된, 종래의 구조에서의 레지스터 및 캐시를 포함하는 프로세서에서의 실제 에너지 소비 분포를 나타낸다.
도 33의 (a)는 캐시 메모리 내의 에너지 소비를 정적 및 동적 에너지 소비로 분해한, 종래의 캐시에 기반을 둔 구조에서의 에너지 소비를 나타낸다. 도 33의 (b)는 마칭 캐시 메모리에서의 에너지 소비를 정적 및 동적 에너지 소비로 분해한, 본 발명의 제3 실시예에 의한 컴퓨터 시스템에서의 에너지 소비를 나타낸다.
도 34는 본 발명의 제2 실시예에 의한 컴퓨터 시스템의 구성을 개략적으로 나타내는 블록도이다.
도 35는 본 발명의 제3 실시예에 의한 컴퓨터 시스템의 구성을 개략적으로 나타내는 블록도이다.
도 36의 (a)는 본 발명의 제3 실시예에 의한 컴퓨터 시스템 내의 산술 파이프라인과 마칭 레지스터 유닛의 조합을 나타낸다. 도 36의 (b)는 본 발명의 제3 실시예에 의한 컴퓨터 시스템 내의 마칭 캐시 유닛의 어레이를 나타낸다.
도 37은 본 발명의 제3 실시예에 의한 단일 프로세서 코어, 마칭 캐시 메모리 및 마칭 레지스터 파일의 조합에 의해 구현되는 컴퓨터 시스템의 구성을 개략적인 블록도로 나타낸다.
도 38은 본 발명의 제3 실시예의 다른 변형 예에 의한, 단일 산술 파이프라인, 마칭 캐시 메모리 및 마칭 벡터 레지스터 파일의 조합에 의해 구현되는 컴퓨터 시스템의 구성을 개략적인 블록도로 나타낸다.
도 39는 본 발명의 제3 실시예의 다른 변형 예에 의한, 다수의 프로세서 코어, 마칭 캐시 메모리 및 마칭 레지스터 파일의 조합에 의해 구현되는 컴퓨터 시스템의 구성을 개략적인 블록도로 나타낸다.
도 40은 본 발명의 제3 실시예의 다른 변형 예에 의한, 다수의 산술 파이프라인, 마칭 캐시 메모리 및 마칭 벡터 레지스터 파일의 조합에 의해 구현되는 컴퓨터 시스템의 구성을 개략적인 블록도로 나타낸다.
도 41의 (a)는 병목이 종래의 캐시 메모리와 종래의 메인 메모리 사이에 설정된, 다수의 산술 파이프라인, 다수의 종래의 캐시 메모리, 다수의 종래의 벡터 레지스터 파일(RF) 및 종래의 메인 메모리의 조합에 의해 구현되는 종래의 컴퓨터 시스템의 구성을 개략적인 블록도로 나타낸다. 도 41의 (b)는 본 발명의 제3 실시예의 또 다른 변형 예에 따라, 병목이 설정되지 않은, 다수의 산술 파이프라인, 다수의 마칭 캐시 메모리, 다수의 마칭 벡터 레지스터 파일 및 마칭 메인 메모리의 조합에 의해 구현되는 종래의 컴퓨터 시스템의 구성을 개략적인 블록도로 나타낸다.
도 42는 본 발명의 제4 실시예에 관한 고성능 컴퓨팅(HPC) 시스템의 구성을 개략적으로 나타내는 블록도이다.
도 43은 본 발명의 제5 실시예에 의한 컴퓨터 시스템의 구성을 개략적으로 나타내는 블록도이다.
도 44의 (a)는 본 발명의 제5 실시예에 의한 컴퓨터 시스템에서 사용되는 3차원 마칭 메인 메모리의 단면도를 나타낸다. 도 44의 (b)는 본 발명의 제5 실시예에 의한 컴퓨터 시스템에서 사용되는 3차원 마칭 캐시의 단면도를 나타낸다. 도 44의 (c)는 본 발명의 제5 실시예에 의한 컴퓨터 시스템에서 사용되는 3차원 마칭 레지스터 파일의 단면도를 나타낸다.
도 45는 본 발명의 제5 실시예에 의한 컴퓨터 시스템에서 사용되는 3차원 구성의 사시도를 나타낸다.
도 46은 본 발명의 제5 실시예에 의한 컴퓨터 시스템에서 사용되는 다른 3차원 구성의 사시도를 나타낸다.
도 47은 도 46에 나타낸 3차원 구성의 단면도를 나타낸다.
도 48은 본 발명의 제5 실시예에 의한 컴퓨터 시스템에서 사용되는 다른 3차원 구성의 단면도를 나타낸다.
도 49는 본 발명의 제5 실시예에 의한 컴퓨터 시스템 내의 제어 경로를 나타냄으로써, 제어 처리를 실행하기 위한 컴퓨터 시스템의 기본적인 핵심 구성의 3차원 구성의 개략적인 단면도를 나타낸다.
도 50은 본 발명의 제5 실시예에 의한 컴퓨터 시스템 내의 스칼라 데이터용의 데이터 경로를 나타냄으로써, 스칼라 데이터 처리를 실행하기 위한 컴퓨터 시스템의 기본적인 핵심 구성의 3차원 구성의 개략적인 단면도를 나타낸다.
도 51은 본 발명의 제5 실시예에 의한 컴퓨터 시스템 내의 벡터/스트리밍 데이터를 위한 데이터 경로를 나타냄으로써, 벡터/스트리밍 데이터 처리를 실행하기 위한 컴퓨터 시스템의 기본적인 핵심 구성의 3차원 구성의 개략적인 단면도를 나타낸다.
도 52는 본 발명의 제5 실시예에 의한 컴퓨터 시스템에 대한 스칼라 데이터 경로 및 제어 경로의 조합을 나타냄으로써, 다수의 처리 유닛(CPU)이 스칼라 데이터뿐만 아니라 벡터/스트림 데이터도 처리하고, 파이프라인 ALU가 처리 유닛에 포함된, 컴퓨터 시스템의 스칼라 데이터 부분을 실행하도록 구성된, 컴퓨터 시스템의 기본적인 핵심 구성의 3차원 구성의 단면을 개략적으로 나타낸다.
도 53은 MISD 구조에서의 스칼라/벡터 데이터의 비트 레벨 병렬 처리를 나타낸다.
도 54는 SIMD 구조에서의 벡터 데이터의 병렬 처리를 나타낸다.
도 55는 벡터 처리에서의 통상적인 체이닝을 나타낸다.
도 56은 MISD 구조에서의 스칼라/벡터 데이터의 병렬 처리를 나타낸다.
도 57은 MISD 구조에서의 스칼라/벡터 데이터의 병렬 처리를 나타낸다.
첨부 도면을 참조하여 본 발명의 여러 실시예에 대하여 설명한다. 동일 또는 유사한 참조 부호는 도면 전체를 통해 동일 또는 유사한 요소를 의미하며, 동일 또는 유사한 요소에 대한 설명은 생략하거나 간단히 할 수 있다. 반도체 장치의 표현과 관련해서 일반적으로, 다양한 도면은 실측으로 되어 있지 않으며, 층의 두께는 도면의 판독을 용이하게 하기 위해 임의로 작성된 것이라는 것을 알 수 있을 것이다. 이하의 설명에서, 특정의 재료, 공정 및 장치와 같은 구체적인 설명은 본 발명의 이해를 돕기 위한 것이다. 당업자라면, 이러한 구체적인 설명이 없어도 본 발명을 실시할 수 있을 것이다. 또한, 주지의 제조에 사용되는 재료, 공정 및 장치는 본 발명을 불필요하게 불명료하게 하지 않도록, 구체적으로 설명하고 있지 않다. "위에", "상에", "아래에", "밑에" 등의 용어는 기판이 실제로 갖는 방향에 관계없이, 기판의 평면에 대해 정의된 것이다. 어떤 층은 층들 사이에 있는 경우에도 다른 층의 위에 있을 수 있다.
제1 실시예
[컴퓨터 시스템의 기본적인 구성]
도 2에 나타낸 바와 같이, 본 발명의 제1 실시예에 관한 컴퓨터 시스템은 프로세서(11)와 마칭 메인 메모리(marching main memory)(31)를 포함한다. 프로세서(11)는 클록 신호를 생성하는 클록 생성기(113)를 갖는 제어 유닛(111)과, 클록 신호와 동기되어 산술 및 논리 연산을 실행하는 산술 논리 유닛(ALU)(112)을 포함한다. 도 3에 나타낸 바와 같이, 마칭 메인 메모리(31)는 메모리 유닛의 어레이(U1, U2, U3,..., Un -1, Un)를 포함한다. 각각의 메모리 유닛(U1, U2, U3,..., Un -1, Un)은 워드 사이즈의 데이터 또는 명령어를 포함하는 정보 유닛을 갖는다. 마칭 메인 메모리는 또한 어레이의 입력 단자와 어레이의 출력 단자를 포함한다. 도 3에 나타낸 바와 같이, 마칭 메인 메모리(31)는 각각의 메모리 유닛(U1, U2, U3,..., Un -1, Un) 내의 정보를 기억하며, 클록 신호와 동기하여 단계적으로 출력 단자로 정보를 전송한다. 이에 의해, 기억된 정보를 프로세서(11)에 능동적이고 순차적으로 제공하여, ALU(112)는 기억된 정보에 의해 산술 및 논리 연산을 실행할 수 있다.
도 2에 나타낸 바와 같이, 마칭 메인 메모리(31)와 프로세서(11)는 다수의 연결 부재(joint member)(54)에 의해 전기적으로 연결된다. 예를 들어, 연결 부재(54)는 마칭 메인 메모리(31)에 설치된 제1 단자 핀, 프로세서(11)에 설치된 제2 단자 핀, 및 제1 단자 핀과 제2 단자 핀 사이에 위치한 전기 전도성 범프(electrical conductive bump)에 의해 이루어질 수 있다. 전기 전도성 범프의 재료로는, 솔더 볼, 금(Au) 범프, 은(Ag) 범프, 구리(Cu) 범프, 니켈-금(Ni-Au) 합금 범프 또는 니켈-금-인듐(Ni-Au-In) 합금 범프 등이 가능하다. ALU(112)에서의 처리 결과로서의 데이터는 연결 부재(54)를 거쳐 마칭 메인 메모리(31)에 제공된다. 따라서, 양방향 화살표(Φ12)로 나타낸 바와 같이, 데이터는 마칭 메인 메모리(31)와 프로세서(11) 사이에서 연결 부재(54)를 통해 양방향으로 전달된다. 한편, 단방향 화살표(η11)로 나타낸 바와 같이, 명령어 전달에 대해서, 명령어 흐름은 마칭 메인 메모리(31)로부터 프로세서(11)까지 단일 방향이다.
도 2에 나타낸 바와 같이, 본 발명의 제1 실시예에 관한 컴퓨터 시스템의 구성은 디스크 등의 외부 2차 메모리(41), 입력 유닛(61), 출력 유닛(62), 및 입출력(I/O) 인터페이스 회로(63)를 더 포함한다. 종래의 폰 노이만 컴퓨터와 유사하게, 입력 유닛(61)에 의해 신호 또는 데이터가 수신되고, 출력 유닛(62)에 의해 신호 또는 데이터가 송신된다. 예를 들어, 주지의 키보드 및 마우스를 입력 유닛(61)으로 할 수 있으며, 주지의 모니터 및 프린터를 출력 유닛(62)으로 할 수 있다. 컴퓨터 간의 통신을 위한, 모뎀이나 네트워크 카드와 같은 주지의 장치는, 입력 유닛(61)과 출력 유닛(62) 모두에 작용하는 것이 일반적이다. 입력 유닛(61) 및 출력 유닛(62)으로서의 장치의 설계는 관점에 따라 달라진다. 입력 유닛(61)은 인간 사용자가 제공하여 제1 실시예에 관한 컴퓨터 시스템이 이해할 수 있는 신호로 변환하는 물리적 이동을 입력으로서 갖는다. 예를 들어, 입력 유닛(61)은 입력되는 데이터 및 명령어를 제1 실시예에 관한 컴퓨터 시스템이 이해할 수 있는 이진 코드의 전기적 신호의 패턴으로 변환하고, 입력 유닛(61)으로부터의 출력이 I/O 인터페이스 회로(63)를 통해 마칭 메인 메모리(31)에 제공된다. 출력 유닛(62)은 마칭 메인 메모리(31)가 I/O 인터페이스 회로(63)를 통해 제공하는 신호를 입력으로서 갖는다. 출력 유닛(62)은 이들 신호를, 인간 사용자가 보거나 읽을 수 있는 표현으로 변환하는데, 입력 유닛(61)의 반대 과정이며, 디지털화한 신호를 사용자가 인지할 수 있는 형태로 변환한다. I/O 인터페이스 회로(63)는 프로세서(11)가 입력 유닛(61)과 출력 유닛(62)을 구동시킬 때마다 필요하다. 프로세서(11)는 I/O 인터페이스 회로(63)를 통해 입력 유닛(61) 및 출력 유닛(62)과 통신을 행할 수 있다. 포맷된 여러 데이터가 교환되는 경우에, I/O 인터페이스 회로(63)는 직렬 데이터를 병렬 데이터로 또는 병렬 데이터를 직렬 데이터로 변환한다. 필요에 따라, 프로세서(11)에 의한 추가의 처리를 위해 인터럽트를 생성하고 대응하는 타입의 부재가 제공될 수 있다.
2차 메모리(41)는 마칭 메인 메모리(31)보다 장기적으로 데이터 및 정보를 기억한다. 마칭 메인 메모리(31)는 주로 현재 실행되는 프로그램과 현재 사용되는 데이터를 기억하는 것에 관련된 것이며, 2차 메모리(41)는 컴퓨터의 전원이 오프된 경우 또는 현재 실행되고 있는 프로그램이 없는 경우에도 유지될 필요가 있는 것을 기억하는 것이 일반적이다. 2차 메모리(41)의 예는 주지의 하드 디스크(또는 하드 드라이브)와 주지의 외부 매체 드라이드(예를 들어, CD-ROM 드라이브)가 있다. 이들 기억 장치의 방법은 주로 컴퓨터의 운영 체제, 사용자의 소프트웨어 수집 및 사용자가 원하는 임의의 다른 데이터를 기억하는 데에 사용된다. 하드 드라이브는 데이터와 소프트웨어를 반영구적으로 기억하는 데에 사용되고 외부 매체 드라이브는 다른 데이터를 유지하는 데에 사용되지만, 이러한 설정은 이용가능한 기억장치의 여러 형태와 각각의 사용 편의에 따라 크게 달라질 수 있다. 양방향 화살표(Φ1)로 나타낸 바와 같이, 데이터는 2차 메모리(41), 마칭 메인 메모리(31) 및 프로세서(11) 사이에서 기존의 와이어 접속(53)을 통해 양방향으로 전달된다.
도면에는 도시되어 있지 않지만, 도 2에 나타낸 제1 실시예의 컴퓨터 시스템에서, 프로세서(11)는 마칭 메인 메모리(31)로부터 출력 단자를 통해 기억된 정보를 수신하도록 구성된 다수의 산술 파이프라인을 포함할 수 있으며, 양방향 화살표(Φ12)로 나타낸 바와 같이, 데이터는 마칭 메인 메모리(31)와 다수의 산술 파이프라인 사이에서 연결 부재(54)를 통해 양방향으로 전달된다.
도 2에 나타낸 제1 실시예의 컴퓨터 시스템에서는, 데이터 버스와 어드레스 버스로 이루어진 버스가 없는데, 이는 전체 컴퓨터 시스템이 프로세서(11)와 마칭 메인 메모리(31) 사이에서 데이터를 교환하는 경우에도 전역적인 와이어(global wire)가 없기 때문이며, 와이어 또는 버스는 종래의 컴퓨터 시스템에서의 병목을 구현한다. 마칭 메인 메모리(31) 내에는 짧은 로컬 와이어만 존재하거나 대응하는 ALU(112)를 가진 마칭 메인 메모리(31)의 대응하는 부분만이 존재한다. 와이어 사이에서의 부유 커패시턴스 및 시간 지연을 생기게 하는 전역적인 와이어가 없기 때문에, 제1 실시예의 컴퓨터 시스템은 더 빠른 처리 속도와 더 낮은 소비전력을 달성할 수 있다.
(마칭 메인 메모리의 셀 레벨의 표현)
대부분의 종래의 컴퓨터에서, 어드레스 분해능의 단위는 문자(예를 들어, 바이트) 또는 워드이다. 단위가 워드이면, 소정 사이즈의 어드레스를 사용하여 더 대량의 메모리가 액세스될 수 있다. 한편, 단위가 바이트이면, 개별의 문자가 어드레스될 수 있다(즉, 메모리 동작 동안 선택될 수 있다). 기계 명령어는 정상적으로는 구조의 워드 사이즈의 부분 또는 배수이다. 이것은 명령어와 데이터가 동일한 메모리 서브시스템을 일반적으로 공유하기 때문에 자연적인 선택이다.
도 4는 도 3에 나타낸 마칭 메인 메모리(31)의 셀 레벨의 표현에 대응한다. 도 4에서, m*n 행렬의 제1 열은 셀(M11, M21, M31,...,Mm -1,1, Mm1)의 수직 방향의 어레이로 구현되며, 도 3에 나타낸 제1 메모리 유닛(U1)을 나타낸다. "m"은 워드 사이즈에 의해 결정된 정수이다. 워드 사이즈의 선택이 중요하지만, 컴퓨터 구조가 설계될 때에, 워드 사이즈는 당연히 8비트의 정수, 즉 16, 32, 64비트가 일반적으로 사용된다. 마찬가지로, m*n 행렬의 제2 열은 셀(M12, M22, M32,...,Mm -1,2, Mm2)의 수직 방향의 어레이로 구현되며, 제2 메모리 유닛(U2)을 나타낸다. m*n 행렬의 제3 열은 셀(M13, M23, M33,...,Mm-1,3, Mm3)의 수직 방향의 어레이로 구현되며, 제3 메모리 유닛(U3)을 나타낸다. m*n 행렬의 제(n-1) 번째 열은 셀(M1 ,n-1, M2 ,n-1, M3 ,n-1,...,Mm -1,n-1, Mm ,n-1)의 수직 방향의 어레이로 구현되며, 제(n-1) 번째 메모리 유닛(Un -1)을 나타낸다. m*n 행렬의 제n 번째 열은 셀(M1 ,n, M2 ,n, M3 ,n,...,Mm -1,n, Mm ,n)의 수직 방향의 어레이로 구현되며, 제n 번째 메모리 유닛(Un)을 나타낸다.
도 4에 나타낸 마칭 메인 메모리(31)의 셀 레벨의 표현에서, 제1 행의 가장 좌측에 할당되고 입력 단자(I1)에 연결된 제1 셀(M11)은 정보를 기억하도록 구성된 커패시터(C11), 논리곱(AND) 게이트(G11)를 포함한다. 논리곱(AND) 게이트(G11)는 커패시터(C11)에 연결된 입력, 클록 신호가 제공되는 다른 입력, 및 제1 행의 이웃하는 제2 셀(M21)에 할당된 다음 AND 게이트(G21)의 입력에 연결된 출력을 갖는다. 클록 신호의 파형의 예는 도 5에 나타낸다. 클록 신호의 논리 값 "1"은 AND 게이트(G11)의 다른 입력에 제공되고, 커패시터(C11)에 기억된 정보는 이웃하는 제2 셀(M12)에 할당된 커패시터(C12)에 전달되며, 커패시터(C12)는 정보를 기억한다. 즉, 마칭 메인 메모리(31)의 셀 레벨의 표현 중의 제1 행의 제2 셀(M12)은 커패시터(C12)와 AND 게이트(G12)를 포함하며, AND 게이트(G12)는 커패시터(C12)에 연결된 입력, 클록 신호가 제공되는 다른 입력, 및 제1 행에서 이웃하는 제3 셀(M13)에 할당된 다음 AND 게이트(G13)의 입력에 연결된 출력을 갖는다. 마찬가지로, 마칭 메인 메모리(31)의 셀 레벨의 표현 중의 제1 행의 제3 셀(M13)은 정보를 기억하도록 구성된 커패시터(C13)와 AND 게이트(G13)를 포함하며, AND 게이트(G13)는 커패시터(C13)에 연결된 입력, 클록 신호가 제공되는 다른 입력, 및 이웃하는 제4 셀(도면에서는 생략)에 할당된 다음 AND 게이트의 입력에 연결된 출력을 갖는다. 따라서, 논리 값 "1"이 AND 게이트(G12)의 다른 입력에 제공되면, 커패시터(C12)에 기억된 정보는 제3 셀(M13)에 할당된 커패시터(C13)에 전달되고, 커패시터(C13)는 정보를 기억한다. 논리 값 "1"이 AND 게이트(G13)의 다른 입력에 제공되면, 커패시터(C13)에 기억된 정보는 제4 셀에 할당된 커패시터에 전달된다. 또한, 마칭 메인 메모리(31)의 셀 레벨의 표현 중의 제1 행의 (n-1)번째 셀(M1 ,n-1)은 정보를 기억하는 커패시터(C1 ,n-1)와 AND 게이트(G1 ,n-1)를 포함한다. AND 게이트(G1 ,n-1)는 커패시터(C1 ,n-1)에 연결된 입력, 클록 신호가 제공되는 다른 입력, 및 제1 행의 가장 우측에 할당되고 출력 단자(O1)에 연결된 이웃하는 n번째 셀(M1n)에 할당된 다음 AND 게이트(G1n)의 입력에 연결된 출력을 갖는다. 따라서, 셀(M11, M12, M13,...,M1 ,n-1, M1n)의 각각은 정보를 저장하고, 클록 신호와 동기하여 차례대로 출력 단자(O1)에 정보를 전달한다. 이에 의해, 기억된 정보를 프로세서(11)에 능동적이고 순차적으로 제공하여, ALU(112)가 기억된 정보를 가지고 산순 논리 연산을 실행할 수 있다.
마찬가지로, 도 4에 나타낸 마칭 메인 메모리(31)의 셀 레벨의 표현에서, 제2 행의 가장 좌측에 할당되고 입력 단자(I2)에 연결된 제1 셀(M21)은 커패시터(C21)와 AND 게이트(G21)를 포함한다. AND 게이트(G21)는 커패시터(C21)에 연결된 입력, 클록 신호가 제공되는 다른 입력, 및 제2 행의 이웃하는 제2 셀(M21)에 할당된 다음 AND 게이트(G21)의 입력에 연결된 출력을 갖는다. 마칭 메인 메모리(31)의 셀 레벨의 표현 중에서의 제2 행의 제2 셀(M22)은 커패시터(C22)와 AND 게이트(G22)를 포함한다. AND 게이트(G22)는 커패시터(C22)에 연결된 입력, 클록 신호가 제공되는 다른 입력, 및 제2 행의 이웃하는 제3 셀(M23)에 할당된 다음 AND 게이트(G23)의 입력에 연결된 출력을 갖는다. 마찬가지로, 마칭 메인 메모리(31)의 셀 레벨의 표현 중에서의 제2 행의 제3 셀(M23)은 커패시터(C23)와 AND 게이트(G23)를 포함한다. AND 게이트(G23)는 커패시터(C23)에 연결된 입력, 클록 신호가 제공되는 다른 입력, 및 이웃하는 제4 셀에 할당된 다음 AND 게이트의 입력에 연결된 출력을 갖는다. 또한, 마칭 메인 메모리(31)의 셀 레벨의 표현 중에서의 제2 행의 제(n-1) 셀(M2 ,n-1)은 커패시터(C2 ,n-1)와 AND 게이트(G2 ,n-1)를 포함한다. AND 게이트(G2 ,n-1)는 커패시터(C2 ,n-1)에 연결된 입력, 클록 신호가 제공되는 다른 입력, 및 이웃하는 n번째 셀(M1n)에 할당된 다음 AND 게이트(G1n)의 입력에 연결된 출력을 갖는다. n번째 셀(M1n)은 제2 행의 가장 우측에 할당되고 출력 단자(O1)에 연결된다. 따라서, 제2 행의 셀(M21, M22, M23,...,M2 ,n-1, M2n)의 각각은 정보를 저장하고, 클록 신호와 동기하여 차례대로 출력 단자(O2)에 정보를 전달한다. 이에 의해, 기억된 정보를 프로세서(11)에 능동적이고 순차적으로 제공함으로써, ALU(112)는 기억된 정보를 가지고 산순 논리 연산을 실행할 수 있다.
제3 행에는, 가장 좌측에 할당되고 입력 단자(I3)에 연결된 제1 셀(M31), 제1 셀(M31)에 이웃하는 제2 셀(M32), 제2 셀(M32)에 이웃하는 제3 셀(M33),..., 및 제3 행의 가장 우측에 할당되고 출력 단자(O3)에 연결된 제(n-1) 셀(M3 ,n-1)이 할당된다. 제3 행의 셀(M31, M32, M33,...,M3 ,n-1, M3n)의 각각은 정보를 저장하고, 클록 신호와 동기하여 차례대로 출력 단자(O3)에 정보를 전달한다. 이에 의해, 기억된 정보를 프로세서(11)에 능동적이고 순차적으로 제공함으로써, ALU(112)는 기억된 정보를 가지고 산순 논리 연산을 실행할 수 있다.
제(m-1) 번째 행에는, 가장 좌측에 할당되고 입력 단자(Im -1)에 연결된 제1 셀(Mm -1,1), 제1 셀(Mm -1,1)에 이웃하는 제2 셀(M(m-1),2), 제2 셀(M(m-1),2)에 이웃하는 제3 셀(M(m-1),3),..., 제(n-1) 번째 셀(M(m-1),n-1), 및 제(m-1) 번째 행의 가장 우측에 할당되고 출력 단자(Om -1)에 연결된 제(m-1) 번째 셀(M(m-1),n)이 할당된다. 제(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)에 능동적이고 순차적으로 제공함으로써, ALU(112)는 기억된 정보를 가지고 산순 논리 연산을 실행할 수 있다.
제m 번째 행에는, 가장 좌측에 할당되고 입력 단자(Im -1)에 연결된 제1 셀(Mm1), 제1 셀(Mm1)에 이웃하는 제2 셀(Mm2), 제2 셀(Mm2)에 이웃하는 제3 셀(Mm3),..., 제(n-1) 번째 셀(Mm (n-1)), 및 제m 번째 행의 가장 우측에 할당되고 출력 단자(Om)에 연결된 제n 번째 셀(Mmn)이 할당된다. 제m 번째 행의 셀(Mm1, Mm2, Mm3,...,Mm (n-1), Mmn)의 각각은 정보를 저장하고, 클록 신호와 동기하여 차례대로 출력 단자(Om)에 정보를 전달한다. 이에 의해, 기억된 정보를 프로세서(11)에 능동적이고 순차적으로 제공함으로써, ALU(112)는 기억된 정보를 가지고 산순 논리 연산을 실행할 수 있다.
본 발명의 AND 게이트를 구현하기 위한 다양한 회로 구성이 있지만, 제1 실시예의 마칭 메인 메모리(31)의 셀 레벨의 표현에서 i번째 행의 j번째 셀(Mij), i번째 행의 (j+1)번째 셀(Mij +1), (i+1)번째 행의 j번째 셀(Mi +1,j+1), (i+1)번째 행의 (j+1)번째 셀(Mi +1,j+1)에 사용될 수 있는 AND 게이트(Gij, Gij +1, Gi +1,j, Gi +1,j+1)의 회로 구성의 일례가 도 6에 도시되어 있다. i번째 행의 j번째 셀(Mij)은 정보를 기억하는 j번째 커패시터(Cij)와 j번째 AND 게이트(Gij)를 포함한다. AND 게이트(Gij)는 j번째 커패시터(Cij)에 연결된 하나의 입력, 클록 신호가 제공되는 다른 입력, 및 i번째 행의 이웃하는 (j+1)번째 셀(Mi ,j+1)에 할당된 다음 (j+1)번째 AND 게이트(Gi ,j+1)의 입력에 연결된 출력을 갖는다. j번째 AND 게이트(Gij)는 제1 pMOS 트랜지스터(Qij1), 제2 pMOS 트랜지스터(Qij2), 제1 nMOS 트랜지스터(Qij3), 제2 nMOS 트랜지스터(Qij4), 제3 pMOS 트랜지스터(Qij5), 및 제3 nMOS 트랜지스터(Qij6)를 포함한다. 제1 PMOS 트랜지스터(Qij1)는 전원 라인(VDD)에 연결된 소스 전극 및 클록 신호 공급 라인에 연결된 게이트 전극을 갖는다. 제2 pMOS 트랜지스터(Qij2)는 제1 pMOS 트랜지스터(Qij1)와 병렬로 연결되고, 전원 라인(VDD)에 연결된 소스 전극, j번째 커패시터(Cij)의 전극 중 하나와 이전 (j-1)번째 AND 게이트(Gi,j-1)의 출력에 연결된 게이트 전극, 및 제1 pMOS 트랜지스터(Qij1)의 드레인 전극에 연결된 드레인 전극을 구비한다. 제1 nMOS 트랜지스터(Qij3)는 제1 및 제2 pMOS 트랜지스터(Qij1, Qij2)의 드레인 전극을 접속하는 공통 노드에 연결된 소스 전극과 클록 신호 공급 라인에 연결된 게이트 전극을 구비한다. 제2 nMOS 트랜지스터(Qij4)는 제1 nMOS 트랜지스터(Qij3)와 직렬로 연결되고, 제1 nMOS 트랜지스터(Qij3)의 드레인 전극에 연결된 소스 전극, 제2 pMOS 트랜지스터(Qij2)의 게이트 전극에 연결된 게이트 전극, 및 j번째 커패시터(Cij)의 전극과 이전 (j-1)번째 AND 게이트(Gi ,j-1)의 출력 중 하나, 및 접지 전위에 연결된 드레인 전극을 구비한다. 제3 pMOS 트랜지스터(Qij5)는 전원 라인(VDD)에 연결된 소스 전극과 제1 및 제2 pMOS 트랜지스터(Qij1, Qij2)의 드레인 전극을 접속하는 공통 노드에 연결된 게이트 전극을 구비한다. 제3 nMOS 트랜지스터(Qij6)는 제3 pMOS 트랜지스터(Qij5)와 직렬로 연결되고, 제3 nMOS 트랜지스터(Qij5)의 드레인 전극에 연결된 소스 전극, 제3 pMOS 트랜지스터(Qij5)의 게이트 전극과 제1 및 제2 pMOS 트랜지스터(Qij1, Qij2)의 드레인 전극을 접속하는 공통 노드에 연결된 게이트 전극, 접지 전위에 연결된 드레인 전극을 구비한다. 제1 pMOS 트랜지스터(Qij1), 제2 pMOS 트랜지스터(Qij2), 제1 nMOS 트랜지스터(Qij3), 및 제2 nMOS 트랜지스터(Qij4)는 j번째 커패시터(Cij)에 연결된 입력과 클록 신호 공급 라인에 연결된 다른 입력을 갖는 부정 논리곱(NAND) 게이트를 구현한다. 제3 pMOS 트랜지스터(Qij5)와 제3 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)의 다른 회로 구성은 6개의 MOS 트랜지스터에 의해 구현된다. AND 게이트(Gi ,j+1, Gi +1,j, Gi +1,j+1)의 회로 구성은 AND 게이트(Gij)의 구성과 실질적으로 유사하기 때문에, AND 게이트(Gi ,j+1, Gi+1,j, Gi +1,j+1)의 회로 구성에 대한 구체적인 설명은 중복되는 설명을 피하기 위해 생략한다. 하지만, AND 게이트(Gij, Gi ,j+1, Gi +1,j, Gi +1,j+1)는 AND 로직의 기능을 갖는 저항-트랜지스터 로직 등의 다른 회로 구성, 다양한 반도체 요소, 자기 요소, 초전도체 요소, 또는 단일의 양자 요소 등에 의해 구현될 수 있다.
도 6에 나타낸 바와 같이, 마칭 메인 메모리(31)의 셀 레벨의 표현은 각각의 메모리 셀이 하나의 커패시턴스와 하나의 AND 게이트로 구성된 DRAM의 셀 레벨의 구성과 같이 단순하다. AND 게이트(Gij, Gi ,j+1, Gi +1,j, Gi +1,j+1)는 도 3에 나타낸 클록에 기초하여 좌측에서 우측으로 시프트한다. 특히, AND 게이트(Gij, Gi ,j+1, Gi +1,j, Gi +1,j+1)의 시간 지연(τd)은 마칭 메인 메모리(31) 내의 모든 메모리 유닛에서 시프트 동작을 연속하여 정확하게 수행하는 것이 중요하다.
[역방향 마칭 메인 메모리]
도 3 내지 도 6에는 메모리 유닛(U1, U2, U3,..., Un -1, Un)의 정보를 기억하고 이 정보를 입력 단자로부터의 클록 신호와 동기하여 차례대로 출력 단자로 전달하는 마칭 메인 메모리를 도시하고 있지만, 도 7은 다른 마칭 메인 메모리를 도시한다.
도 7에서, 메모리 유닛(U1, U2, U3,..., Un -1, Un)은 워드 사이즈의 데이터 또는 명령어를 포함하는 정보를 기억하며, 이 정보를 클록 신호와 동기하여 출력 단자로 역방향으로 전달하여, ALU(112)에서 실행된 데이터를 프로세서(11)에 제공한다.
도 8의 (a)는 도 7에 나타낸, 셀(Mi1, Mi2, Mi3,..., Mi ,n-1, Mi ,n)에서의 비트 레벨의 정보를 기억하며, 이 정보를 클록 신호와 동기하여, 도 3 내지 도 6에 나타낸 마칭 메인 메모리와 반대 방향으로, 즉 출력 단자(OUT)로부터 입력 단자(IN)로, 순차적으로 전달하는, 다른 마칭 메인 메모리의 셀 레벨의 표현에서의 m*n 행렬("m"은 워드 사이즈로 결정된 정수)의 i번째 행의 어레이를 나타낸다.
도 8의 (a)에 나타낸 바와 같이, 역방향의 마칭 메인 메모리에서, i번째 행의 가장 우측에 할당되고 입력 단자(IN)에 연결된 n번째 셀(Mi ,n)은 정보를 기억하는 커패시터(Cin)와 AND 게이트(Gin)를 구비하며, AND 게이트(Gin)는 커패시터(Cin)에 연결된 입력, 클록 신호가 제공되는 다른 입력, 및 i번째 행에서 이웃하는 (n-1)번째 셀(Mi ,n-1)에 할당된 이전 AND 게이트(Gin -1)의 출력에 연결된 출력을 구비한다. 도 8의 (b)에 나타낸 바와 같이, 클록 신호는 논리 값 "1" 및 "0"이며, 논리 값 "1"은 시간 "t"부터 시간 "t+1"까지 유지된다. 논리 값 "1"이 AND 게이트(Gn)의 다른 입력에 제공되면, 커패시터(Cin)에 기억된 정보는 i번째 행의 이웃하는 (n-1)번째 셀(Mi ,n-1)에 할당된 커패시터(Ci,n-1)에 전달되며, 커패시터(C1 ,n-1)는 정보를 기억한다. 즉, 역방향 마칭 메인 메모리의 i번째 행의 (n-1)번째 셀(Mi ,n-1)은 커패시터(C1 ,n-1)와 AND 게이트(G1 ,n-1)를 포함한다. AND 게이트(G1 ,n-1)는 커패시터(Ci ,n-1)에 연결된 하나의 입력, 클록 신호가 제공되는 다른 입력, 및 이웃하는 제3 셀(M1 ,n-2)(도시 생략)에 할당된 이전 AND 게이트(G1 ,n-2)의 입력에 연결된 출력을 구비한다.
마찬가지로, 역방향 마칭 메인 메모리의 i번째 행의 제3 셀(Mi3)은 정보를 기억하도록 구성된 커패시터(Ci3)와 AND 게이트(Gi3)를 구비한다. AND 게이트(Gi3)는 커패시터(Ci3)에 연결된 입력, 클록 신호가 제공되는 다른 입력, 및 이웃하는 제2 셀(Mi2)에 할당된 이전 AND 게이트(Gi2)의 입력에 연결된 출력을 구비한다. 따라서, 논리 값 "1"이 AND 게이트(Gi3)에 제공되면, 커패시터(Ci3)에 기억된 정보가 제2 셀(Mi2)에 할당된 커패시터(Ci2)에 전달되고, 커패시터(Ci2)가 정보를 기억한다.
또한, 역방향 마칭 메인 메모리의 i번째 행의 제2 셀(Mi2)은 정보를 기억하도록 구성된 커패시터(Ci2)와 AND 게이트(Gi2)를 구비한다. AND 게이트(Gi2)는 커패시터(Ci2)에 연결된 입력, 클록 신호가 제공되는 다른 입력, 및 i번째 행에서 가장 좌측에 할당되고 출력 단자(OUT)에 연결된, 이웃하는 제1 셀(Mi1)에 할당된 이전 AND 게이트(Gi1)의 입력에 연결된 출력을 구비한다.
도 7, 도 8의 (a), 및 도 8의 (b)에 나타낸 제1 실시예의 역방향의 단방향 마칭 메인 메모리(31)에 의하면, 메모리 유닛(U1, U2, U3,..., Un -1, Un)은 리프레시가 필요하지 않은데, 이는 모든 메모리 유닛(U1, U2, U3,..., Un -1, Un)이 정보 이동 기법(정보 마칭 기법)에 의해 자동으로 리프레시되기 때문이다. 각각의 메모리 유닛(U1, U2, U3,..., Un -1, Un)에 대한 어드레싱은 없어지고, 요구된 정보는 메모리의 에지에 연결된 목적지 유닛으로 향한다. 제1 실시예의 역방향의 단방향 마칭 메인 메모리(31)를 액세스하는 메커니즘은 정보를 판독/기록하기 위해 어드레싱 모드부터 시작하는 기존의 메모리 기법과 대체가능하다. 따라서, 제1 실시예의 역방향의 단방향 마칭 메인 메모리(31)에 의하면, 어드레스 모드가 없는 메모리 액세싱이 기존의 메모리 기본에 비해 매우 단순하게 된다.
본 발명의 제1 실시예에 관한 컴퓨터 시스템에 사용되는 마칭 메인 메모리(31)의 개념을 도 9에 나타내며, 이것은 기존의 컴퓨터 메모리와 다른데, 마칭 메인 메모리(31)가 마칭 메인 메모리(31) 내의 메모리 유닛(U1, U2, U3,..., Un -1, Un) 모두를 통해 정보/데이터의 기억 및 전달의 기능을 갖도록 의도적으로 설계되기 때문이다. 마칭 메모리는 정보/데이터를 프로세서(11)의 동일 속도로 프로세서(CPU)(11)에 제공한다. 도 9의 시간-도메인 관계에 나타낸 바와 같이, 마칭 메인 메모리(31) 내의 하나의 메모리 유닛(U1, U2, U3,..., Un -1, Un)을 통해 정보/데이터를 전달하기 위해 필요한 메모리 유닛 스트리밍 시간(Tmus)은 프로세서(11) 내의 클록 사이클(Tcc)과 동일하다. 마칭 메인 메모리(31)는 메모리 유닛(U1, U2, U3,..., Un -1, Un)의 각각에 정보/데이터를 기억하고, 클록 신호와 동기하여 출력 단자로 전달한다. 이에 의해, 기억된 정보/데이터를 프로세서(11)에 제공함으로써, 산술 논리 유닛(112)이 기억된 정보/데이터를 사용하여 산술 및 논리 연산을 실행할 수 있다.
따라서, 도 10에 나타낸 바와 같이, 마칭 메인 메모리(3)는 본 발명의 제1 실시예의 마칭 메인 메모리(31)를 포함한다. "마칭 메모리 구조(3)"라는 용어는 본 발명의 제1 실시예에 관한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리(31)에 추가로, ALU(112)에 연결된 마칭 명령어 레지스터 파일(RF)(22a) 및 마칭 데이터 레지스터 파일(RF)(22b)(이에 대해서는 제2 실시예를 설명하면서 설명함), 마칭 명령어 캐시 메모리(21a) 및 마칭 데이터 캐시 메모리(21b)(이에 대해서는 제3 실시예를 설명하면서 설명함)을 포함하는 메모리 구조의 일반적인 개념을 의미한다.
도 11의 (a)는 마칭 메모리 구조(3)로부터 프로세서(11)로 향하는 정방향(forward) 데이터-스트림(Sf)과 프로세서(11)로부터 마칭 메모리 구조(3)로 향하는 역방향(backward) 데이터-스트림(역방향 데이터-스트림)(Sb)을 나타내며, 도 11의 (a)는 마칭 메모리 구조(3)에서의 메모리 유닛 스트리밍 시간(Tmus)이 프로세서(11)의 클록 사이클(Tcc)과 동일하다는 전제하에, 마칭 메모리 구조(3)와 프로세서(11) 사이에 설정되는 대역폭을 나타낸다.
[양방향 마칭 메인 메모리]
도 12의 (a)-(c)에 나타낸 바와 같이, 본 발명의 제1 실시예의 마칭 메인 메모리(31)는 정보/데이터의 양방향 전송을 달성할 수 있다. 즉, 도 12의 (a)는 데이터/정보가 일차원의 마칭 메인 메모리(31)에서 우측 방향(정방향)으로 이동하는 정보/데이터의 정방향 마칭 동작을 나타낸다. 도 12의 (b)는 일차원 마칭 메인 메모리(31)의 부유 상태를 나타내며, 도 12의 (c)는 정보/데이터가 일차원의 마칭 메인 메모리(31)에서 좌측 방향(역방향)으로 이동하는 정보/데이터의 역방향-마칭 동작을 나타낸다.
도 13은 도 12의 (a)-(c)에 나타낸 양방향 동작을 달성할 수 있는, 양방향 마칭 메인 메모리(31)의 셀 레벨의 표현에서 m*n 행렬("m"은 워드 사이즈로 결정된 정수)의 i번째 행의 어레이를 나타낸다.
도 13에 나타낸 바와 같이, 정보/데이터의 양방향 전송을 구축하기 위해, i번째 행의 셀(Mi1, Mi2, Mi3, ..., Mi ,(n-1), Mi ,n)의 각각에 2가지 종류의 AND 게이트가 할당된다. 양방향 마칭 메인 메모리(31)는 비트 레벨의 정보/데이터를 셀(Mi1, Mi2, Mi3, ..., Mi ,(n-1), Mi ,n)의 각각에 기억하고, 이 정보/데이터를 클록 신호와 동기하여 제1 I/O 선택기(512)와 제2 I/O 선택기(513) 사이에서 정방향 및/또는 역방향으로 차례대로 양방향으로 전송한다.
도 13에 나타낸 마칭 메인 메모리(31)의 셀 레벨의 표현에서, i번째 행의 가장 좌측에 할당되고 제1 I/O 선택기(512)에 연결된 제1 셀(Mi1)은, 정보/데이터를 기억하도록 구성된 커패시터(Ci1), 정방향 AND 게이트(Gi1f), 및 역방향 AND 게이트(Gi1b)를 구비한다. 정방향 AND 게이트(Gi1f)는 커패시터(Ci1)에 연결된 입력, i번째 행의 이웃하는 제2 셀(M(i+1)l)에 할당된 다음 정방향 AND 게이트(G(i+1)lf)의 입력에 연결된 출력을 구비한다. 역방향 AND 게이트(Gi1b)는 커패시터(Cil)에 연결된 입력, 제2 클록 신호(CL2)가 제공되는 다른 입력, 및 제1 I/O 선택기(512)에 연결된 출력을 구비한다.
정방향 데이터-스트림을 구동시키도록 구성된 제1 클록 신호(CL1), 역방향 데이터-스트림을 구동시키도록 구성된 제2 클록 신호(CL2)는 클록 선택기(511)에 의해 각각 선택되며, 제1 클록 신호(CL1) 및 제2 클록 신호(CL2)는 논리 값 "1" 및 "0"을 가지며, 논리 값 "1"은 시간 "t"에서 시간 "t+1"까지 유지된다. 제1 클록 신호(CL1)의 논리 값 "1"이 정방향 AND 게이트(Gil)의 다른 입력에 제공되면, 커패시터(Cil) 내에 기억된 정보/데이터는 이웃하는 제2 셀(Mi2)에 할당된 커패시터(Ci2)로 전송되고, 커패시터(Ci2)는 정보/데이터를 기억한다.
양방향 마칭 메인 메모리(31)의 i번째 행의 제2 셀(Mi2)은 정보/데이터를 기억하도록 구성된 커패시터(Ci2), 정방향 AND 게이트(Gi2f) 및 역방향 AND 게이트(Gi2b)를 구비한다. 정방향 AND 게이트(Gi2f)는 커패시터(Ci2)에 연결된 입력, 제1 클록 신호(CL1)가 제공되는 다른 입력, i번째 행의 이웃하는 제3 셀(Mi3)에 할당된 다음 정방향 AND 게이트(G13)의 입력에 연결된 출력을 구비한다. 역방향 AND 게이트(Gi2b)는 커패시터(Ci2)에 연결된 입력, 제2 클록 신호(CL2)가 제공되는 다른 입력, 이전 역방향 AND 게이트(Gil)의 입력에 연결된 출력을 구비한다.
마찬가지로, i번째 행의 제3 셀(Mi3)은 정보/데이터를 기억하도록 구성된 커패시터(Ci3), 정방향 AND 게이트(Gi3f), 및 역방향 AND 게이트(Gi3b)를 구비한다. 정방향 AND 게이트(Gi3f)는 커패시터(Ci3)에 연결된 입력, 제1 클록 신호(CL1)가 제공되는 다른 입력, 및 이웃하는 제4 셀에 할당된 다음 정방향 AND 게이트의 입력에 연결된 출력을 구비한다. 역방향 AND 게이트(Gi3b)는 커패시터(Ci3)에 연결된 입력, 제2 클록 신호(CL2)가 제공되는 다른 입력, 및 이웃하는 제2 셀(Mi2)에 할당된 이전 역방향 AND 게이트(Gi2b)의 입력에 연결된 출력을 구비한다. 따라서, 제1 클록 신호(CL1)의 논리 값 "1"이 정방향 AND 게이트(Gi2f)의 다른 입력에 제공되면, 커패시터(Ci2)에 기억된 정보/데이터는 제3 셀(Mi3)에 할당된 커패시터(Ci3)에 전송되고, 커패시터(Ci3)는 정보/데이터를 기억한다. 제1 클록 신호(CL1)의 논리 값 "1"이 정방향 AND 게이트(Gi3f)의 다른 입력에 제공되면, 커패시터(Ci3)에 기억된 정보/데이터는 제4 셀에 할당된 커패시터에 전송된다.
또한, i번째 행의 (n-1)번째 셀(Mi ,(n-1))은 정보/데이터를 기억하도록 구성된 커패시터(Ci ,(n-1)), 정방향 AND 게이트(Gi ,(n-1)), 및 역방향 AND 게이트(Gi ,(n-1)b)를 구비한다. 정방향 AND 게이트(Gi ,(n-1))는 커패시터(Ci ,(n-1))에 연결된 입력, 제1 클록 신호(CL1)가 제공되는 다른 입력, i번째 행의 가장 우측에 할당되고 제2 I/O 선택기(513)에 연결된, 이웃하는 n번째 셀(Mi ,n)에 할당된 다음 정방향 AND 게이트(Gi , nf)의 입력에 연결된 출력을 구비한다. 역방향 AND 게이트(Gi ,(n-1)b)는 커패시터(Ci ,(n-1))에 연결된 입력, 제2 클록 신호(CL2)가 제공되는 다른 입력, 및 이웃하는 제3 셀(Mi ,(n-2)b)(도시 생략)에 할당된 이전 역방향 AND 게이트(Gi ,(n-2)b)의 입력에 연결된 출력을 구비한다.
마지막으로, i번째 행의 가장 우측에 할당되고 제2 I/O 선택기(513)에 연결된 n번째 셀(Mi ,n)은 정보/데이터를 기억하도록 구성된 커패시터(Ci ,n), 역방향 AND 게이트(Ginb) 및 정방향 AND 게이트(Gi , nf)를 구비한다. 역방향 AND 게이트(Ginb)는 커패시터(Cin)에 연결된 입력, 제2 클록 신호(CL2)가 제공되는 다른 입력, 및 i번째 행의 이웃하는 (n-1)번째 셀(Mi ,n-1)에 할당된 이전 역방향 AND 게이트(Gi (n-1)b)의 입력에 연결된 출력을 구비한다. 정방향 AND 게이트(Gi , nf)는 커패시터(Ci ,n)에 연결된 입력, 제1 클록 신호(CL1)가 제공되는 다른 입력, 및 제2 I/O 선택기(513)에 연결된 출력을 구비한다.
제2 클록 신호(CL2)의 논리 값 "1"이 역방향 AND 게이트(Ginb)에 제공되면, 커패시터(Cin)에 기억된 정보/데이터는 i번째 행의 이웃하는 (n-1)번째 셀(Mi ,(n-1))에 할당된 커패시터(Ci ,(n-1))에 전달된다. 이어서, 제2 클록 신호(CL2)의 논리 값 "1"이 역방향 AND 게이트(Gi3b)의 다른 입력에 제공되면, 커패시터(Ci3)에 기억된 정보/데이터는 제2 셀(Mi2)에 할당된 커패시터(Ci2)에 전송되고, 커패시터(Ci3)는 정보/데이터를 기억한다. 또한, 제2 클록 신호(CL2)의 논리 값 "1"이 역방향 AND 게이트(Gi2b)의 다른 입력에 제공되면, 커패시터(Ci2)에 기억된 정보/데이터는 제2 셀(Mi1)에 할당된, 커패시터(Ci1)에 전송되고, 커패시터(Ci1)는 정보/데이터를 기억한다. 제2 클록 신호(CL2)의 논리 값 "1"이 역방향 AND 게이트(Gi1b)의 다른 입력에 제공되면, 커패시터(Ci1)에 기억된 정보/데이터는 제1 I/O 선택기(512)에 전송된다.
따라서, 양방향 마칭 메인 메모리의 i번째 행의 셀(Mi1, Mi2, Mi3, ..., Mi ,(n-1), Mi,n)은 정보/데이터를 기억하고, 정보/데이터를 제1 클록 신호(CL1) 및 제2 클록 신호(CL2)와 동기하여 차례대로 양방향으로 전송한다. 이에 의해, 기억된 정보/데이터를 프로세서(11)에 능동적이며 순차적으로 제공할 수 있으며, ALU(112)는 기억된 정보/데이터를 가지고 산술 및 논리 연산을 실행할 수 있다.
[위치 포인팅 전략]
도 14의 (a)는 프로세서에 이웃하는 일차원의 마칭 메인 메모리 내의 명령어의 양방향 전송 모드를 나타낸다. 명령어는 프로세서로 이동하며, 다음 메모리와 주고 받는다. 도 14의 (b)는 ALU(112)에 이웃하는 일차원의 마칭 메인 메모리 내의 스칼라 데이터의 양방향 전송 모드를 나타낸다. 스칼라 데이터는 ALU로 이동하며, 다음 메모리와 주고 받는다. 도 14의 (c)는 파이프라인(117)에 이웃하는 일차원의 마칭 메인 메모리 내의 벡터/스트리밍 데이터의 단일 방향 전송 모드를 나타낸다. 이에 대해서는 제3 실시예와 관련해서 설명할 것이며, 벡터/스트리밍 데이터는 파이프라인(117)으로 이동하고, 다음 메모리와 주고 받는다.
제1 실시예와 관련된 컴퓨터 시스템에서 사용되는 마칭 메인 메모리(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",... 내의 연속하는 메모리 유닛 세트의 시작 지점과 종료 지점을 식별하는 데에는 필요하다.
본 발명의 제1 실시예에 관한 컴퓨터 시스템에서 사용되는 마칭 메인 메모리(31)에 추가로, ALU(112)에 연결된 마칭 명령어 레지스터 파일(22a) 및 마칭 데이터 레지스터 파일(22b)(이에 대해서는 제2 실시예를 설명하는 부분에서 설명함), 마칭 명령어 캐시 메모리(21a) 및 마칭 데이터 캐시 메모리(21b)(이에 대해서는 제3 실시예를 설명하면서 설명함)을 포함하는 마칭 메모리 계열에서, 메인 메모리, 레지스터 파일 및 캐시 메모리 사이의 관계는 참조 국부성의 특성에 기초하여 자기 자신의 위치 포인팅 전략을 갖는다.
도 17의 (a)는 벡터/스트리밍 데이터의 경우에 대한 다수의 페이지(Pi -1,j-1, Pi,j-1, Pi +1,j-1, Pi +2,j-1, Pi -1,j, Pi +1,j, Pi +2j)에 의해 구현되는 마칭 메인 메모리의 전체 구성의 예를 개략적으로 나타낸다. 도 17의 (b)는 벡터/스트리밍 데이터의 경우에 대한 다수의 파일(F1, F2, F3, F4)에 의해 구현되는 해칭된 페이지(Pi ,j)의 구성의 예를 개략적으로 나타내며, 페이지(Pi -1,j-1, Pi ,j-1, Pi +1,j-1, Pi +2,j-1, Pi -1,j, Pi ,j, Pi +1,j, Pi +2j)는 제3 실시예에서 마칭 캐시 메모리(21a, 21b)에 사용될 수 있다. 도 17의 (c)는 해칭된 파일(F3)을 개략적으로 나타내며, 파일(F1, F2, F3, F4)은 벡터/스트리밍 데이터 케이스에 대해 다수의 메모리 유닛(U1, U2, U3,..., Un -1, Un)에 의해 구현되며, 각각의 파일(F1, F2, F3, F4)은 제2 실시예의 마칭 레지스터 파일(22a, 22b)에 사용될 수 있다.
마찬가지로, 프로그램/스칼라 데이터의 경우에, 다수의 페이지(Pr -1,s-1, Pr ,s-1, Pr+1,s-1, Pr +2,s-1, Pr ,s, Pr -1,s, Pr +1,s, Pr +2s)에 의해 구현되는 마칭 메인 메모리의 전체 구성의 예를 개략적으로 나타내며, 각각의 페이지는 어드레스로서 자기 자신의 위치 색인을 갖는다. 도 18의 (b)는 이진 시스템에서의 숫자를 사용하여, 해칭된 페이지(Pr -1,s)의 구성과 페이지(Pr -1,s)의 구동 위치의 예를 개략적으로 나타내며, 페이지(Pr -1,s-1, Pr,s-1, Pr +1,s-1, Pr +2,s-1, Pr ,s, Pr -1,s, Pr +1,s, Pr +2s)는 프로그램/스칼라 데이터의 경우에 다수의 파일(F1, F2, F3, F4)에 의해 구현된다. 페이지(Pr -1,s-1, Pr ,s-1, Pr +1,s-1, Pr+2,s-1, Pr,s, Pr -1,s, Pr +1,s, Pr +2s)는 제3 실시예에서 마칭 캐시 메모리(21a, 21b)에 사용될 수 있으며, 각각의 파일(F1, F2, F3, F4)은 자기 자신의 위치 색인을 어드레스로서 갖는다. 도 18의 (c)는 이진 시스템에서의 숫자 0, 1, 2, 3을 사용하여, 해칭된 파일(F3)의 구성과 파일(F3)의 구동 위치의 예를 개략적으로 나타내며, 프로그램/스칼라 데이터의 경우에, 각각의 파일(F1, F2, F3, F4)은 다수의 메모리 유닛(U1, U2, U3,..., Un, Un +1, Un +2, Un +3, Un+4, Un +5)에 의해 구현된다. 각각의 파일(F1, F2, F3, F4)제2 실시예에서 마칭 레지스터 파일(22a, 22b)에 대해 사용될 수 있으며, 각각의 메모리 유닛(U1, U2, U3,..., Un, Un+1, Un +2, Un +3, Un +4, Un +5)은 어드레스로서 자기 자신의 위치 색인 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)을 식별하는 2개의 숫자에 의해 표현되는, 마칭 캐시 메모리의 사이즈에 대응하는 동일한 사이즈를 갖는다. 하나의 마칭 메인 메모리의 구조는 도 18의 (a)에 나타낸 것과 같은 마칭 메인 메모리 내의 8개의 페이지(Pr -1,s-1, Pr,s-1, Pr +1,s-1, Pr +2,s-1, Pr ,s, Pr -1,s, Pr +1,s, Pr +2s)를 식별하는 3개의 숫자로 나타낸다.
[속도/처리용량]
종래의 컴퓨터 시스템에서의 메모리 액세스 시간과 CPU 사이클 시간 사이의 속도 갭은, 예를 들어 1:100이다. 그러나, 마칭 메모리 액세스 시간의 속도는 제1 실시예의 컴퓨터 시스템에서의 CPU 사이클 시간이 된다. 도 19는 본 발명의 제1 실시예에 관한 컴퓨터 시스템에서 사용되도록 구성된, 마칭 메인 메모리(31)의 속도/처리용량을 캐시가 없는 종래의 컴퓨터 시스템의 속도/처리용량과 비교한다. 즉, 도 19의 (b)는 100개의 메모리 유닛(U1, U2, U3,..., U100)에 의해 구현되는, 마칭 메인 메모리(31)의 속도/처리용량을 개략적으로 나타내며, 도 19의 (a)에 나타낸 기존의 메모리의 속도/처리용량과 비교한다. 마칭 메모리 메모리(31)로부터 데이터를 이용하기 위해 필요한 처리 유닛을 갖는 것을 조건으로, 마칭 메인 메모리(31)의 99개의 추가의 동시 메모리 유닛을 지원할 수 있다. 따라서, 종래의 컴퓨터 시스템에서의 하나의 메모리 유닛 시간(Tmue)은 본 발명의 제1 실시예에 관한 마칭 메인 메모리(31)의 100개의 메모리 유닛 스트리밍 시간(Tmus)과 동일하다고 평가된다.
도 20은 스칼라 데이터 또는 프로그램 명령어에 대한 기존의 메모리의 최악의 경우의 속도/처리용량을, 본 발명의 제1 실시예에 관한 컴퓨터 시스템에서 사용되는 것으로 구성된 마칭 메인 메모리(31)의 속도/처리용량과 비교한다. 즉, 도 20의 (b)의 해칭된 부분은 100개의 메모리 유닛(U1, U2, U3,..., U100)에 의해 구현되는 마칭 메인 메모리(31)의 속도/처리용량을 개략적으로 나타내며, 도 20의 (a)에 나타낸 기존의 메모리의 최악의 경우의 속도/처리용량과 비교한다. 최악의 경우에, 마칭 메인 메모리(31) 중에서 99개의 메모리를 판독할 수 있지만, 스칼라 프로그램의 요건에 의해 이용할 수는 없다.
또한, 도 21은 스칼라 데이터 또는 프로그램 명령어에 대해 기존의 메모리의 중간의 경우의 속도/처리용량을, 본 발명의 제1 실시예에 관한 컴퓨터 시스템에서 사용되는 것으로 구성된 마칭 메인 메모리(31)의 속도/처리용량과 비교한다. 즉, 도 21의 (b)는 100개의 메모리 유닛(U1, U2, U3,..., U100)에 의해 구현되는 마칭 메인 메모리(31)의 속도/처리용량을 개략적으로 나타내며, 도 21의 (a)에 나타낸 기존의 메모리의 최악의 경우의 속도/처리용량과 비교한다. 중간의 경우에, 99개의 메모리 유닛을 판독할 수 있지만, 기존의 메모리의 해칭된 메모리 유닛으로 나타낸 것과 같이, 스칼라 프로그램에서의 추측에 의한 데이터 준비(speculative data preparation)에 의해, 몇 개의 메모리 유닛만 이용할 수 있다.
도 22는 스칼라 데이터의 경우에 대한 기존의 메모리의 중간 경우의 속도/처리용량을 본 발명의 제1 실시예에 관한 컴퓨터 시스템에서 사용되도록 구성된 마칭 메인 메모리(31)의 속도/처리용량과 비교한다. 즉, 도 22의 (b)는 100개의 메모리 유닛(U1, U2, U3,..., U100)에 의해 구현되는 마칭 메인 메모리(31)의 속도/처리용량을 개략적으로 나타내며, 도 22의 (a)에 나타낸 기존의 메모리의 속도/처리용량과 비교한다. 도 21의 (a)-(b)와 유사하게, 중간의 경우에, 99개의 메모리 유닛을 판독할 수 있지만, 기존의 메모리의 해칭된 메모리 유닛으로 나타낸 것과 같이, 멀티쓰레드 병렬 처리에서의 스칼라 데이터 또는 프로그램 명령어에서의 추측에 의한 데이터 준비에 의해, 몇 개의 메모리 유닛만 이용할 수 있다.
도 23은 스트리밍 데이터에 대한 기존의 메모리의 최선의 경우의 속도/처리용량을 본 발명의 제1 실시예에 관한 컴퓨터 시스템에서 사용되도록 구성된 마칭 메인 메모리(31)의 속도/처리용량과 비교한다. 즉, 도 23의 (b)는 100개의 메모리 유닛(U1, U2, U3,..., U100)에 의해 구현되는 마칭 메인 메모리(31)의 속도/처리용량을 개략적으로 나타내며, 도 23의 (a)에 나타낸 기존의 메모리의 최선의 경우의 속도/처리용량과 비교한다. 최선의 경우에, 마칭 메인 메모리(31) 중에서 스트리밍 데이터 및 데이터 병렬에, 100개의 메모리를 사용할 수 있다는 것을 알 수 있을 것이다.
[2차원 마칭 메인 메모리]
메모리 유닛은 도 24 내지 도 30에 나타낸 바와 같이 칩 상에 2차원적으로 배치되어, 스위치/네트워크 없이도 다양한 모드의 동작을 달성할 수 있다. 도 24 내지 도 30에 나타낸 제1 실시예의 2차원 마칭 메인 메모리(31)에 따라, 메모리 유닛(U11, U12, U13,..., U1 ,v-1, U1v; U22, U22, U23,..., U2 ,v-2, U2v; ...; Uu1, Uu2, Uu3,..., Uu ,v-1, Uuv)은 리프레시가 필요하지 않다. 왜냐하면, 모든 메모리 유닛(U11, U12, U13,..., U1 ,v-1, U1v; U22, U22, U23,..., U2 ,v-2, U2v; ...; Uu1, Uu2, Uu3,..., Uu,v-1, Uuv)은 정보-이동 기법(정보-마칭 기법)에 의해 자동으로 리프레시되기 때문이다. 이어서, 메모리 유닛(U11, U12, U13,..., U1 ,v-1, U1v; U22, U22, U23,..., U2 ,v-2, U2v; ...; Uu1, Uu2, Uu3,..., Uu ,v-1, Uuv)의 각각에 대한 어드레싱은 없어지고, 필요한 정보는 메모리의 에지에 연결된 목적지 유닛을 향한다. 제1 실시예의 2차원 마칭 메인 메모리(31)를 액세스하는 메커니즘은 종래의 컴퓨터 시스템에서 정보를 판독/기록하기 위한 어드레싱 모드로부터 시작하는 기존의 메모리 기법에 대한 대안이다. 따라서, 제1 실시예의 2차원 마칭 메인 메모리에 의하면, 제1 실시예의 컴퓨터 시스템에서의 어드레싱 모드가 없는 메모리 액세싱 프로세스는 종래의 컴퓨터 시스템의 기존의 메모리 기법에 비해 훨씬 단순하게 된다.
[에너지 소비]
본 발명의 제1 실시예에 관한 컴퓨터 시스템의 구조, 설계, 및 구현의 향상을 명확히 하기 위해, 에너지 소비에서의 개선에 대하여 설명한다. 도 31의 (a)는 마이크로프로세서에서의 에너지 소비가 정적 파워 소비 및 동적 파워 소비로 분해될 수 있는 것을 나타낸다. 도 31의 (a)에 나타낸 동적 파워 소비에서, 파워 소비의 순 에너지 소비와 오버헤드 에너지 소비가 도 31의 (b)에 도시되어 있다. 도 31의 (c)에 도시된 바와 같이, 순수 에너지 부분이 컴퓨터 시스템에서의 소정의 작업을 동작시키기에 실질적으로 필요하기 때문에, 이들 순수 에너지 부분은 컴퓨터 시스템을 수행하기 위한 최소한의 에너지 소비를 행하게 된다. 이것은 도 31의 (c)에 나타낸 순수 에너지 소비에 의해 가장 짧은 처리 시간이 달성되는 것을 의미한다.
일부 노력이 프로세서의 구조화, 설계 및 구현하는 데에 도입되었지만, 도 1에 나타낸 것과 같이 종래의 구조에는 병목이 존재한다. 종래의 구조에서, 폰 노이만 컴퓨터에 다양한 문제가 존재한다.
(1) 프로그램은 메모리 내에 데이터처럼 기억된다.
(2) 모든 처리는 기본적으로 단일 프로세서 내에서 순차적이다.
(3) 프로그램의 동작은 순차적인 명령어의 실행이다.
(4) 벡터 데이터는 벡터 명령어로 CPU에 의해 순차적으로 처리된다.
(5) 스트리밍 데이터는 쓰레드에 의해 순차적으로 처리된다.
(6) 프로그램 쓰레드는 순차적으로 정렬된다.
(7) 데이터 병렬은 벡터로서 데이터의 정렬로 이루어진다.
(8) 스트리밍 데이터는 데이터의 흐름이다.
종래의 컴퓨터의 속성으로부터, 프로그램 및 데이터의 기억은 기본적으로 순차적으로 정렬된 것의 형태를 갖는다. 이것은 프로그램 및 대응하는 데이터 내에 명령어가 규칙적으로 정렬된 것을 의미한다.
도 2에 나타낸 본 발명의 제1 실시예에 관한 컴퓨터 시스템에서, 마칭 메인 메모리(31) 내의 명령어의 액세스는 필수적이지 않은데, 이는 명령어가 프로세서(11)에 대하여 자기 자신에 의해 능동적으로 액세스되기 때문이다. 마찬가지로, 마칭 메인 메모리(31) 내의 데이터의 액세스는 필수적이지 않은데, 이는 데이터가 프로세서(11)에 대하여 자기 자신에 의해 능동적으로 액세스되기 때문이다.
도 32는 William J. Dally 등에 의한, Computer, Vol. 41, no. 7, 2008, pp.27-32의 "Efficient Embedded Computing"에서 평가된, 종래의 구조에서의 레지스터 및 캐시를 포함하는 프로세서에 대한 실제의 에너지 소비 분포를 나타낸다. 도 32에서는, 칩 간의 와이어를 제외한 전체 칩 상에서의 에너지 소비 분포의 평가가 표시되어 있다. 상기 문헌에 의하면, 명령어 제공 파워 소비는 42%인 것으로 되어 있으며, 데이터 제공 파워 소비는 28%인 것으로 되어 있으며, 클록 및 제어 로직 파워 소비는 24%인 것으로 되어 있고, 산술 파워 소비는 6%인 것으로 되어 있다. 따라서, 명령어 제공 및 데이터 제공 파워 소비가 클록/제어 로직 파워 소비 및 산술 파워 소비보다 상대적으로 크다는 것을 알 수 있으며, 이는 많은 와이어에 의한 캐시/레지스터 액세싱의 비효율과 메모리, 캐시 및 레지스터의 리프레시가 없는 것에 추가로 이들 캐시와 레지스터의 액세스 방식에 기인한 일부 소프트웨어의 비효율에 기인한다.
데이터 제공 파워 소비에 대한 명령어 제공 파워 소비의 비율은 3:2이고, 산술 파워 소비에 대한 클록 및 제어 로직 파워 소비의 비율은 4:1이기 때문에, 도 2에 나타낸 본 발명의 제1 실시예에 관한 컴퓨터 시스템에 의하면, 적어도 부분적으로 마칭 메인 메모리(31)를 사용함으로써 데이터 제공 파워 소비를 20%까지 쉽게 절감할 수 있으며, 이에 따라 명령어 제공 파워 소비는 30%가 된다. 산술 파워 소비를 10%로 증가시키면, 클록 및 제어 로직 파워 소비는 40%가 되며, 이것은 명령어 제공 파워 소비와 데이터 제공 파워 소비의 합이 50%가 될 수 있다는 것을 의미하며, 클록 및 제어 로직 파워 소비와 산술 파워 소비의 합이 50%가 될 수 있다는 것을 의미한다.
데이터 제공 파워 소비를 10%로 감소시키면, 명령어 제공 파워 소비는 15%가 될 수 있으며, 산술 파워 소비를 15%로 증가시키면, 클록 및 제어 로직 파워 소비는 60%로 될 것이다. 이것은 명령어 제공 파워 소비와 데이터 제공 파워 소비의 합이 35%가 될 수 있으며, 클록 및 제어 로직 파워 소비와 산술 파워 소비가 75%가 될 수 있다는 것을 의미한다.
종래의 컴퓨터 시스템은 와이어 지연 시간에 의해 수반되는 어드레싱 및 판독/기록 메모리 유닛에 대한 상대적인 대규모 평균 능동 시간을 가진, 도 33의 (a)에 나타낸 것과 같이 에너지를 소비하며, 본 발명의 컴퓨터 시스템은 도 33의 (b)에 나타낸 것과 같이 더 작은 에너지를 소비한다. 이는 본 발명의 컴퓨터 시스템이 마칭 메모리를 통해 더 짧은 평균 능동 평활 시간을 가지며, 종래의 컴퓨터 시스템에 비해 동일 데이터를 더 적은 에너지로 더 빨리 처리할 수 있다.
제2 실시예
도 34에 나타낸 바와 같이, 본 발명의 제2 실시예에 관한 컴퓨터 시스템은 프로세서(11) 및 마칭 메인 메모리(31)를 포함한다. 프로세서(11)는 클록 신호를 생성하는 클록 생성기(113)를 갖는 제어 유닛(111), 클록 신호와 동기하여 산술 및 논리 연산을 실행하는 산술 논리 유닛(ALU)(112), 제어 유닛(111)에 연결된 마칭 명령어 레지스터 파일(RF)(22a), 및 ALU(112)에 연결된 마칭 데이터 레지스터 파일(RF)(22b)을 포함한다.
도시하지는 않았지만, 도 3 내지 도 7, 도 8의 (a), 도 8의 (b), 도 24 내지 도 30에 나타낸 마칭 메인 메모리(31)와 매우 유사하게, 마칭 명령어 레지스터 파일(22a)은 명령어 레지스터 유닛, 제3 어레이의 명령어-레지스터 입력 단자, 및 제3 어레이의 명령어-레지스터 출력 단자의 어레이를 갖는다. 명령어-레지스터 입력 단자는 마칭 메인 메모리(31)로부터 기억된 명령어를 수신하도록 구성되어 있다. 명령어-레지스터 출력 단자는, 명령어 레지스터 유닛의 각각에 명령어를 기억시키며, 명령어-레지스터 입력 단자에 이웃하는 명령어 레지스터 유닛로부터 명령어-레지스터 출력 단자에 이웃하는 명령어 레지스터 유닛에, 클록 신호와 동기하여 명령어 레지스터 유닛의 각각에 기억된 명령어를 이웃하는 명령어-레지스터 유닛에 연속적이며 주기적으로 전송하도록 되어 있다. 이에 의하면, 명령어-레지스터 출력 단자를 통해 제어 유닛(111)에 기억된 명령어에 의해 구현된 명령어를 능동적이며 순차적으로 제공할 수 있음, 제어 유닛(11)은 명령어를 가지고 동작을 실행할 수 있다.
도 3-7, 도 8의 (a) 및 (b), 및 도 24 내지 도 30에 나타낸 마칭 메인 메모리(31)와 유사하게, 마칭 데이터 레지스터 파일(22b)은 데이터 레지스터 유닛, 데이터 레지스터 입력 단자 및 데이터 레지스터 출력 단자의 어레이를 포함한다. 제4 어레이의 데이터 레지스터 입력 단자는 마칭 메인 메모리(31)로부터 기억된 데이터를 수신하도록 구성되어 있으며, 제4 어레이의 데이터 레지스터 출력 단자는 데이터 레지스터 유닛의 각각에 데이터를 기억시키며, 데이터 레지스터 입력 단자에 이웃하는 데이터 레지스터 유닛으로부터 데이터 레지스터 출력 단자에 이웃하는 데이터 레지스터 유닛으로 데이터 레지스터 유닛의 각각에 기억된 데이터를 클록 신호에 동기하여 이웃하는 데이터 레지스터 유닛에 연속적이며 주기적으로 전송하도록 되어 있다. 이에 의해, 데이터 레지스터 출력 단자를 통해 데이터를 ALU(112)에 능동적이며 순차적으로 제공함으로써, 마칭 데이터 레지스터 파일(22b)의 구체적인 설명은 생략되어 있지만, ALU(112)는 데이터를 가지고 동작을 실행할 수 있다.
도 34에 나타낸 바와 같이, 마칭 메인 메모리(31)의 일부와 마칭 명령어 레지스터 파일(22a)은 다수의 결합 부재(54)에 의해 전기적으로 연결되며, 마칭 메인 메모리(31)의 남은 부분과 마칭 데이터 레지스터 파일(22b)은 다른 다수의 결합 부재(54)에 의해 전기적으로 연결된다.
ALU(112)에서의 처리 결과로서의 데이터는 마칭 데이터 레지스터 파일(22b)로 발송된다. 따라서, 양방향 화살표(Φ24)로 나타낸 바와 같이, 데이터는 마칭 데이터 레지스터 파일(22b)과 ALU(112) 사이에서 양방향으로 전송된다. 또한, 마칭 데이터 레지스터 파일(22b)에 기억된 데이터는 결합 부재(54)를 통해 마칭 메인 메모리(31)에 발송된다. 따라서, 양방향 화살표(Φ23)로 나타낸 바와 같이, 데이터는 마칭 메인 메모리와 마칭 데이터 레지스터 파일(22b) 사이에서 결합 부재(54)를 통해 양방향으로 전송된다.
이와 반대로, 단방향 화살표 (η22) 및 (η23)로 나타낸 바와 같이, 명령어의 이동에 대하여, 마칭 메인 메모리(31)로부터 마칭 명령어 레지스터 파일(22a)까지, 그리고 마칭 명령어 레지스터 파일(22a)로부터 제어 유닛(111)까지 하나의 경로만 존재한다.
도 34에 나타낸 제2 실시예의 컴퓨터 시스템에서, 데이터 버스와 어드레스 버스로 이루어진 버스가 없는데, 이는 전체 컴퓨터 시스템이 마칭 메인 메모리(31)와 마칭 명령어 레지스터 파일(22a) 사이, 마칭 메인 메모리(31)와 마칭 데이터 레지스터 파일(22b) 사이, 마칭 명령어 레지스터 파일(22a)과 제어 유닛(111) 사이, 및 마칭 데이터 레지스터 파일(22b)과 ALU(112) 사이에 어떠한 데이터 교환에서도 와이어가 없으며, 와이어 또는 버스는 종래의 컴퓨터 시스템에서 병목을 구현한다. 이들 와이어 사이에서의 시간 지연 및 부유 커패시턴스를 생기게 하는 전역적인 와이어가 없기 때문에, 제2 실시예의 컴퓨터 시스템은 훨씬 높은 처리 속도와 낮은 파워 소비를 달성할 수 있다.
제2 실시예에 관한 컴퓨터 시스템의 기능, 구성 및 동작 방법은 제1 실시예에서 이미 설명한 기능, 구성 및 동작 방법과 실질적으로 유사하기 때문에, 중복되는 설명은 생략한다.
제3 실시예
도 35에 나타낸 바와 같이, 본 발명의 제3 실시예에 관한 컴퓨터 시스템은 프로세서(11), 마칭 캐시 메모리(21a, 21b), 및 마칭 메인 메모리(31)를 포함한다. 제2 실시예와 유사하게, 프로세서(11)는 클록 신호를 생성하도록 구성된 클록 생성기(113)를 갖는 제어 유닛(111), 클록 신호에 동기하여 산술 및 논리 연산을 실행하는 산술 논리 유닛(ALU)(112), 제어 유닛(111)에 연결된 마칭 명령어 레지스터 파일(RF)(22a), 및 ALU(112)에 연결된 마칭 데이터 레지스터 파일(RF)(22b)을 포함한다.
마칭 캐시 메모리(21a, 21b)는 마칭 명령어 캐시 메모리(21a) 및 마칭 데이터 캐시 메모리(21b)를 포함한다. 도시하지는 않지만, 도 3-7, 도 8의 (a) 및 (b), 도 24-30에 나타낸 마칭 메인 메모리(31)와 매우 유사하게, 마칭 명령어 캐시 메모리(21a)와 마칭 데이터 캐시 메모리(21b)의 각각은 캐시 메모리 유닛, 캐시 입력 단자, 및 캐시 출력 단자의 어레이를 갖는다. 캐시 메모리 유닛은 정보 유닛에 대응하는 위치에 위치하며, 어레이의 캐시 입력 단자는 마칭 메인 메모리(31)로부터 기억된 정보를 수신하도록 구성되어 있으며, 어레이의 캐시 출력 단자는 캐시 메모리 유닛의 각각에 정보를 기억시키고, 클록 신호와 동기하여 이웃하는 캐시 메모리 유닛에 정보를 순차적으로 전송하도록 구성된다. 이에 의하면, 기억된 정보를 프로세서(11)에 능동적이며 순차적으로 제공할 수 있으며, ALU(112)는 기억된 정보를 가지고 산술 및 논리 연산을 실행할 수 있다.
도 35에 나타낸 바와 같이, 마칭 메인 메모리(31)의 일부와 마칭 명령어 캐시 메모리(21a)는 다수의 결합 부재(52)에 의해 전기적으로 연결되며, 마칭 메인 메모리(31)의 나머지 부분과 마칭 데이터 캐시 메모리(21b)는 다른 다수의 결합 부재(52)에 의해 전기적으로 연결된다. 또한, 마칭 명령어 캐시 메모리(21a)와 마칭 명령어 레지스터 파일(22a)은 다수의 결합 부재(51)에 의해 전기적으로 연결되며, 마칭 데이터 캐시 메모리(21b)와 마칭 데이터 레지스터 파일(22b)은 다른 다수의 결합 부재(51)에 의해 전기적으로 연결된다.
ALU(112)에서의 처리 데이터는 마칭 데이터 레지스터 파일(22b)로 발송되고, 양방향 화살표(Φ34)로 나타낸 바와 같이, 데이터는 마칭 데이터 레지스터 파일(22b)과 ALU(112) 사이에서 양방향으로 전송된다. 또한, 마칭 데이터 레지스터 파일(22b)에 기억된 데이터는 결합 부재(51)를 통해 마칭 데이터 캐시 메모리(21b)로 발송된다. 양방향 화살표(Φ33)로 나타낸 바와 같이, 데이터는 마칭 데이터 캐시 메모리(21b)와 마칭 데이터 레지스터 파일(22b) 사이에서 결합 부재(51)를 통해 양방향으로 전달된다. 또한, 마칭 데이터 캐시 메모리(21b)에 기억된 데이터는 결합 부재(52)에 의해 마칭 메인 메모리(31)에 발송되며, 양방향 화살표(Φ32)로 나타낸 바와 같이, 데이터는 마칭 메인 메모리(31)와 마칭 데이터 캐시 메모리(21b) 사이에서 결합 부재(52)에 의해 양방향으로 전송된다.
이에 대하여, 단방향 화살표(η31, η32, η33)로 나타낸 바와 같이, 명령어 전달에 대하여, 마칭 메인 메모리(31)로부터 마칭 명령어 캐시 메모리(21a)까지, 마칭 명령어 캐시 메모리(21a)로부터 마칭 명령어 레지스터 파일(22a)까지, 그리고 마칭 명령어 레지스터 파일(22a)부터 제어 유닛(111)까지의 명령어 흐름이 단일 방향만 존재한다.
도 35에 나타낸 제3 실시예의 컴퓨터 시스템에서, 데이터 버스 및 어드레스 버스를 구성하는 버스가 없는 이유는, 와이어 또는 버스가 종래의 컴퓨터 시스템에서 병목을 구현하는 경우라도, 전체 컴퓨터 시스템이 마칭 메인 메모리(31)와 마칭 명령어 캐시 메모리(21a) 사이, 마칭 명령어 캐시 메모리(21a)와 마칭 명령어 레지스터 파일(22a) 사이, 마칭 메인 메모리(31)와 마칭 데이터 캐시 메모리(21b) 사이, 마칭 데이터 캐시 메모리(21b)와 마칭 데이터 레지스터 파일(22b) 사이, 마칭 명령어 레지스터 파일(22a)과 제어 유닛(111) 사이, 및 마칭 데이터 레지스터 파일(22b)과 ALU(112) 사이에서 어떠한 데이터 교환에 있어도 전역적인 와이어가 없기 때문이다. 이들 와이어 사이에 시간 지연 및 부유 커패시턴스를 생기게 하는 전역적인 와이어가 없어도, 제3 실시예의 컴퓨터 시스템은 더 높은 처리 속도와 더 낮은 파워 소비를 달성할 수 있다.
제3 실시예에 관한 컴퓨터 시스템의 기능, 구성 및 동작 방법은 제1 및 제2 실시예에서 이미 설명한 기능, 구성 및 동작 방법과 실질적으로 유사하기 때문에, 중복되는 설명은 생략한다.
도 36의 (a)에 나타낸 바와 같이, 제3 실시예의 컴퓨터 시스템의 ALU(112)은 데이터가 산술 파이프라인(P1, P2, P3,...Pn)을 포함하며, 이 다수의 산술 파이프라인은 산술 파이프라인(P1, P2, P3,...Pn)과 병렬로 이동하는 마칭 레지스터 유닛(R11, R12, R12,..., R1n, ;R22, R22, R23,...,R2n)을 통해 기억된 정보를 수신하도록 구성된다. 벡터 데이터가 기억된 경우, 마칭 벡터 레지스터 유닛(R11, R12, R12,..., R1n, ;R22, R22, R23,...,R2n)이 사용될 수 있다.
또한, 도 36의 (b)에 도시된 바와 같이, 다수의 마칭 캐시 유닛(C11, C12, C13,..., C1n; C12, C22, C23,..., C2n; C31, C32, C33,...,C3n)은 병렬로 정렬될 수 있다.
도 37에 도시된 바와 같이, 제3 실시예의 컴퓨터 시스템 내의 ALU(112)는 단일의 프로세서 코어(116)를 포함하며, 교차 방향 화살표로 나타낸 바와 같이, 정보는 마칭 캐시 메모리(21)로부터 마칭 레지스터 파일(22)까지, 그리고 마칭 레지스터 파일(22)부터 프로세서 코어(116)까지 이동할 수 있다. 프로세서 코어(116)에서 처리되는 데이터는 마칭 레지스터 파일(22)로 발송되어, 데이터를 마칭 레지스터 파일(22)과 프로세서 코어(116) 사이에서 양방향으로 전송된다. 또한, 마칭 레지스터 파일(22) 내에 기억된 데이터는 마칭 캐시 메모리(21)로 발송됨으로써, 데이터는 마칭 캐시 메모리(21)와 마칭 레지스터 파일(22) 사이에서 방향으로 전송된다. 명령어 전달의 경우, 처리될 정보의 반대 방향에 따른 흐름은 없다.
도 38에 나타낸 바와 같이, 제3 실시예의 컴퓨터 시스템의 ALU(112)는 단일의 산순 파이프라인(117)을 포함할 수 있으며, 교차 방향 화살표로 나타낸 바와 같이, 정보는 마칭 캐시 메모리(21)로부터 마칭 벡터 레지스터 파일(22v)까지, 그리고 마칭 벡터 레지스터 파일(22v)로부터 산술 파이프라인(17)까지 이동할 수 있다. 산술 파이프라인(117)에서 처리되는 데이터는 마칭 벡터 레지스터 파일(22v)로 발송됨으로써, 데이터는 마칭 벡터 레지스터 파일(22v)과 산술 파이프라인(117) 사이에서 양방향으로 전송된다. 또한, 마칭 벡터 레지스터 파일(22v) 내에 기억된 데이터는 마칭 캐시 메모리(21)로 발송됨으로써, 데이터는 마칭 캐시 메모리(21)와 마칭 벡터 레지스터 파일(22v) 사이에서 양방향으로 전송된다. 명령어 전달의 경우, 처리될 정보의 반대 방향에 따른 흐름은 없다.
도 39에 나타낸 바와 같이, 제3 실시예의 컴퓨터 시스템 내의 ALU(112)는 다수의 프로세서 코어(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에 나타낸 바와 같이, 제3 실시예의 컴퓨터 시스템 내의 ALU(112)는 다수의 산술 파이프라인(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)에 나타낸 바와 같이, 제3 실시예의 컴퓨터 시스템의 ALU(112)는 다수의 산술 파이프라인(117-1, 117-2, 117-3, 117-4,..., 117-m)과 마칭 메인 메모리(31)에 전기적으로 연결된 다수의 마칭 캐시 메모리(21-1, 21-2, 21-3, 21-4,..., 21-m)를 포함할 수 있다. 여기서, 제1 마칭 벡터 레지스터 파일(22v-1)은 제1 마칭 캐시 메모리(21-1)에 연결되며, 제1 산술 파이프라인(117-1)은 제1 마칭 벡터 레지스터 파일(22v-1)에 연결된다. 제2 마칭 벡터 레지스터 파일(22v-2)은 제2 마칭 캐시 메모리(21-2)에 연결되며, 제2 산술 파이프라인(117-2)은 제2 마칭 벡터 레지스터 파일(22v-2)에 연결된다. 제3 마칭 벡터 레지스터 파일(22v-3)은 제3 마칭 캐시 메모리(21-3)에 연결되며, 제3 산술 파이프라인(117-3)은 제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)과 다수의 종래의 캐시 메모리(321-1, 321-2, 321-3, 321-4,..., 321-m)을 포함하는 종래의 컴퓨터 시스템의 ALU(112)는 폰 노이만 병목(325)을 구현하는 와이어 및/또는 버스를 통해 종래의 메인 메모리(331)에 전기적으로 연결된다. 이어서, 정보는 종래의 메인 메모리(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)까지, 그리고 종래의 벡터 레지스터 파일(322v-1, 322v-2, 322v-3, 322v-4,..., 322v-m)로부터 산술 파이프라인(117-1, 117-2, 117-3, 117-4,..., 117-m)까지 폰 노이만 병목(325)을 통해 병렬로 이동한다.
도 41의 (b)에 나타낸 제3 실시예의 컴퓨터 시스템에서, 데이터 버스 및 어드레스 버스를 포함하는 버스가 없는데, 이는 와이어 또는 버스가 도 41의 (a)에 나타낸 종래의 컴퓨터 시스템에서 병목을 구현하는 동안, 전체적인 시스템은 산술 파이프라인(117-1, 117-2, 117-3, 117-4,..., 117-m)과 마칭 메인 메모리(31) 사이에서 어떠한 데이터 교환이 있는 경우에도 전역적인 와이어를 갖지 않기 때문이다. 이들 와이어 사이에서 시간 지연 및 부유 커패시턴스를 생기게 하는 전역적인 와이어가 없기 때문에, 도 41의 (b)에 나타낸 컴퓨터 시스템은 더 높은 처리 속도와 낮은 파워 소비를 달성할 수 있다.
제4 실시예
도 42에 나타낸 바와 같이, 제4 실시예의 컴퓨터 시스템은 종래의 메인 메모리(32s), 종래의 메인 메모리(31s)에 연결된 마더 마칭 메인 메모리(31-0), 및 그래픽 처리 유닛(GPU)에 기반을 둔 범용 컴퓨팅을 위해 사용될 수 있는 고성능 컴퓨팅(HPC) 시스템을 구현하기 위해 마더 마칭 메인 메모리(31-0)와 통신을 수행하도록 구성된 다수의 처리 유닛(12-1, 12-2, 12-3,...)을 포함한다. 도시하지는 않았지만, 제4 실시예의 HPC 시스템은 클록 신호를 생성하도록 구성된 클록 생성기(113)를 갖는 제어 유닛(111)과 필드 프로그램가능한 게이트 어레이(FPGA)를 더 포함한다. 필드 프로그램가능한 게이트 어레이(FPGA)는 다수의 처리 유닛(12-1, 12-2, 12-3,...)의 동작을 스위치 제어하도록 구성되며, 대역폭 소비를 관리하고 구성하는데에 도움을 주도록 구성되는, 병렬 동작에 의해 대량 고속 계산의 흐름을 최적화한다. FPGA는 필수적으로 소정의 작업에 대하여 자기 자신을 재결선할 수 있는 컴퓨터 칩이다. FPGA는 VHDL 또는 Verilog 등의 하드웨어 기술 언어로 프로그램될 수 있다.
제1 처리 유닛(12-1)은 제1 브랜치-마칭 메인 메모리(31-1), 제1 브랜치 마칭 메인 메모리(31-1)에 전기적으로 연결된 다수의 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p), 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p)에 전기적으로 연결된 다수의 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p), 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p)에 전기적으로 연결된 다수의 제1 산술 파이프라인(117-11, 117-12,...,117-1p)을 포함한다.
도 3-7, 도 8의 (a) 및 (b), 도 24-30 등에 도시된 구성과 유사하게, 제1 마더 마칭 메인 메모리(31-0), 제1 브랜치-마칭 메인 메모리(31-1), 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p), 및 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p)은 메모리 유닛의 어레이, 어레이의 입력 단자 및 어레이의 출력 단자를 포함한다. 입력 단자 및 출력 단자는 메모리 유닛에 정보를 기억시키고 입력 단자 측으로부터 출력 단자로 차례대로 클록 신호에 동기하여 전송하도록 구성된다.
제1 마더 마칭 메인 메모리(31-0), 제1 브랜치-마칭 메인 메모리(31-1), 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p), 및 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p)의 동작은 FPGA에 의해 제어되기 때문에, 정보는 제1 마더 마칭 메인 메모리(31-0)로부터 제1 브랜치-마칭 메인 메모리(31-1)로, 제1 브랜치-마칭 메인 메모리(31-1)로부터 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p)로, 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p)로부터 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p)로, 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p)로부터 제1 산술 파이프라인(117-11, 117-12,...,117-1p)으로 병렬로 이동한다. 제1 산술 파이프라인(117-11, 117-12,...,117-1p)에서 처리되는 데이터는 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p)로 발송되기 때문에, 데이터는 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p)과 제1 산술 파이프라인(117-11, 117-12,...,117-1p) 사이에서 양방향으로 전송된다. 또한, 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p)에 기억된 데이터는 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p)로 발송되기 때문에, 데이터는 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p)와 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p) 사이에서 양방향으로 전송되며, 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p)에 기억된 데이터는 제1 브랜치-마칭 메인 메모리(31-1)로 발송되기 때문에, 데이터는 제1 브랜치-마칭 메인 메모리(31-1)와 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p) 사이에서 양방향으로 전송된다. 그러나, FPGA는 제1 처리 유닛(12-1) 내에서 처리되는 정보의 반대 방향에 따른 흐름이 없도록 명령어의 전달을 제어한다.
제2 처리 유닛(12-2)은 제2 브랜치-마칭 메인 메모리(31-2), 제2 브랜치 마칭 메인 메모리(31-2)에 전기적으로 연결된 다수의 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2p), 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2p)에 전기적으로 연결된 다수의 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q), 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q)에 전기적으로 연결된 다수의 제2 산술 파이프라인(117-21, 117-22,...,117-2p)을 포함한다. 제1 처리 유닛(12-1)과 유사하게, 마더 마칭 메인 메모리(31-0), 제2 브랜치-마칭 메인 메모리(31-2), 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2p), 및 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q)은 메모리 유닛의 어레이, 어레이의 입력 단자 및 어레이의 출력 단자를 포함한다. 입력 단자 및 출력 단자는 메모리 유닛에 정보를 기억시키고 입력 단자 측으로부터 출력 단자로 차례대로 클록 신호에 동기하여 전송하도록 구성된다. 마더 마칭 메인 메모리(31-0), 제2 브랜치-마칭 메인 메모리(31-2), 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2p), 및 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q)의 동작은 FPGA에 의해 제어되기 때문에, 정보는 마더 마칭 메인 메모리(31-0)로부터 제2 브랜치-마칭 메인 메모리(31-2)로, 제2 브랜치-마칭 메인 메모리(31-2)로부터 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2p)로, 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2q)로부터 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q)로, 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q)로부터 제2 산술 파이프라인(117-21, 117-22,...,117-2q)으로 병렬로 이동한다. 제2 산술 파이프라인(117-21, 117-22,...,117-2q)에서 처리되는 데이터는 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q)로 발송되기 때문에, 데이터는 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q)과 제2 산술 파이프라인(117-21, 117-22,...,117-2q) 사이에서 양방향으로 전송된다. 또한, 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q)에 기억된 데이터는 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2q)로 발송되기 때문에, 데이터는 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2q)와 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q) 사이에서 양방향으로 전송되며, 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2q)에 기억된 데이터는 제2 브랜치-마칭 메인 메모리(31-2)로 발송되기 때문에, 데이터는 제2 브랜치-마칭 메인 메모리(31-2)와 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2q) 사이에서 양방향으로 전송된다. 그러나, FPGA는 제1 처리 유닛(12-2) 내에서 처리되는 정보의 반대 방향에 따른 흐름이 없도록 명령어의 전달을 제어한다.
예를 들어, 소스 프로그램 내의 루프로부터 생성되는 벡터 명령어는 마더 마칭 메인 메모리(31-0)로부터 제1 처리 유닛(12-1), 제2 처리 유닛(12-2), 제3 처리 유닛(12-3),...으로 병렬로 전송되기 때문에, 이들 벡터 명령어의 병렬 처리는 제1 처리 유닛(12-1), 제2 처리 유닛(12-2), 제3 처리 유닛(12-3),...에서의 산술 파이프라인(117-21, 117-22,...,117-2q)에 의해 실행될 수 있다.
현재의 FPGA-제어 방식의 HPC 시스템은 병목에 기여하는 와이어들 사이에서 시간 지연 및 부유 커패시턴스를 생기게 하는 대량의 배선 리소스를 필요로 하지만, 도 42에 나타낸 제4 실시예의 HPC 시스템에서는, 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p)과 제1 산술 파이프라인(117-11, 117-12,...,117-1p) 사이, 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p)와 제1 마칭 벡터 레지스터 파일(22v-11, 22v-12,..., 22v-1p) 사이, 제1 브랜치-마칭 메인 메모리(31-1)와 제1 마칭 캐시 메모리(21-11, 21-12,..., 21-1p) 사이, 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q)과 제2 산술 파이프라인(117-21, 117-22,..., 117-2q) 사이, 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2q)와 제2 마칭 벡터 레지스터 파일(22v-21, 22v-22,..., 22v-2q) 사이, 제2 브랜치-마칭 메인 메모리(31-2)와 제2 마칭 캐시 메모리(21-21, 21-22,..., 21-2q) 사이, 마더 마칭 메인 메모리(31-0)와 제1 브랜치 마칭 메인 메모리(31-1) 사이, 마더 마칭 메인 메모리(31-0)와 제2 브랜치 마칭 메인 메모리(31-2) 사이에서 어떠한 데이터 교환을 위한 데이터 버스 및 어드레스 버스 등의 버스가 없기 때문에, 도 42에 나타낸 FPGA-제어 방식의 HPC 시스템은 현재의 FPGA-제어 방식의 HPC 시스템보다 더 높은 처리 속도와 더 낮은 파워 소비를 달성할 수 있다. 처리 유닛(12-1, 12-2, 12-3,...)의 개수를 증가시킴으로써, 제4 실시예에 관한 FPGA-제어 방식의 HPC 시스템은, 예를 들어 수천 개 이상의 쓰레드를 매우 고속으로 동시에 실행할 수 있으며, 대량의 데이터에 대해 높은 계산 처리율이 가능하게 된다.
제5 실시예
도 43에 나타낸 바와 같이, 본 발명의 제5 실시예에 관한 컴퓨터 시스템은, 프로세서(11), 프로세서(11)에 연결된 3차원 마칭 레지스터 파일을 구현하는 마칭 레지스터 파일(22-1, 22-2, 22-3,...)의 스택, 3차원의 마칭 레지스터 파일(22-1, 22-2, 22-3,...)에 연결된 3차원의 마칭 캐시 메모리를 구현하는 마칭 캐시 메모리(21-1, 21-2, 21-3,...)의 스택, 및 3차원의 마칭 캐시 메모리(21-1, 21-2, 21-3,...)에 연결된 3차원의 마칭 메인 메모리를 구현하는 마칭 메인 메모리(31-1, 31-2, 31-3,...)의 스택을 포함한다. 프로세서(11)는 클록 신호를 생성하도록 구성된 클록 생성기(113)를 갖는 제어 유닛(111), 클록 신호와 동기하여 산술 및 논리 연산을 실행하도록 구성된 산술 논리 유닛(ALU)(112)을 포함한다.
3차원의 마칭 레지스터 파일(22-1, 22-2, 22-3,...)에서, 제1 마칭 레지스터 파일(22-1)은 제어 유닛(111)에 연결된 제1 마칭 명령어 레지스터 파일(22a-1) 및 ALU(112)에 연결된 제1 마칭 데이터 레지스터 파일(22b-1)을 포함하며, 제2 마칭 레지스터 파일(22-2)은 제어 유닛(111)에 연결된 제2 마칭 명령어 레지스터 파일 및 ALU(112)에 연결된 제2 마칭 데이터 레지스터 파일을 포함하고, 제3 마칭 레지스터 파일(22-3)은 제어 유닛에 연결된 제3 마칭 명령어 레지스터 파일 및 ALU(112)에 연결된 제3 마칭 데이터 레지스터 파일을 포함하며, 이러한 관계가 계속된다. 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...)에서, 제1 마칭 캐시 메모리(21-1)는 제1 마칭 명령어 캐시 메모리(21a-1) 및 제1 마칭 데이터 캐시 메모리(21b-1)를 포함하며, 제2 마칭 캐시 메모리(21-2)는 제2 마칭 명령어 캐시 메모리 및 제2 마칭 데이터 캐시 메모리를 포함하고, 제3 마칭 캐시 메모리(21-3)는 제3 마칭 명령어 캐시 메모리 및 제3 마칭 데이터 캐시 메모리를 포함하며, 이하 이러한 관계가 계속된다.
도시하지는 않지만, 도 24-30에 나타낸 마칭 메인 메모리(31)와 매우 유사하게, 마칭 메인 메모리(21-1, 21-2, 21-3,...)는 정보 유닛을 각각 갖는 메모리 유닛의 2차원 어레이, 메인 메모리 어레이의 입력 단자, 및 메인 메모리 어레이의 출력 단자를 포함하며, 마칭 메인 메모리(21-1, 21-2, 21-3,...)는 메모리 유닛의 각각에 정보를 기억하고, 이 정보를 클록 신호와 동기하여, 메인 메모리 어레이의 출력 단자로 순차적으로 전송함으로써, 기억된 정보를 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...)에 능동적이며 순차적으로 제공할 수 있으며, 마칭 캐시 메모리(21-1, 21-2, 21-3,...)의 각각은 캐시 메모리 유닛의 2차원 어레이, 3차원 마칭 메인 메모리(31-1, 31-2, 31-3)로부터 기억된 정보를 수신하도록 구성된 마칭 캐시 어레이의 캐시 입력 단자, 및 마칭 캐시 어레이의 캐시 출력 단자를 포함하며, 마칭 캐시 메모리(21-1, 21-2, 21-3,...)의 각각은 각각의 캐시 메모리 유닛에 정보를 기억하고, 이 정보를 이웃하는 캐시 메모리 유닛에, 차례대로 클록 신호와 동기하여 전송함으로써, 기억된 정보를 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...)에 능동적이며 순차적으로 제공할 수 있고, 마칭 레지스터 파일(22-1, 22-2, 22-3,...)의 각각은, 정보 유닛을 각각 갖는 레지스터 유닛의 2차원 어레이, 3차원 마칭 캐시(21-1, 21-2, 21-3,...)로부터 기억된 정보를 수신하도록 구성된 레지스터 어레이의 입력 단자, 및 레지스터 어레이의 출력 단자를 갖는다. 마칭 레지스터 파일(22-1, 22-2, 22-3,...)의 각각은 정보를 레지스터 유닛의 각각에 기억하고, 이 정보를 클록 신호와 동기하여, 차례대로 레지스터 어레이의 출력 단자로 전송함으로써, 기억된 정보를 프로세서(11)에 능동적이며 순차적으로 제공할 수 있어서, 프로세서(11)는 기억된 정보를 가지고 산술 및 논리 연산을 실행할 수 있다.
마칭 메인 메모리(31-1, 31-2, 31-3,...)의 각각은 반도체 칩의 표면에 묘사된 메모리 유닛의 2차원 어레이에 의해 구현되며, 다수의 반도체 칩은 도 27의 (a)에 나타낸 바와 같이 수직 방향으로 적층되고, 3차원 마칭 메인 메모리(31-1, 31-2, 31-3,...)를 구현하기 위해 다수의 반도체 칩 사이의 방열 플레이트(58m-1, 58m-2, 58m-3,...)를 스위칭한다. 방열 플레이트(58m-1, 58m-2, 58m-3,...)는 다이아몬드와 같은 높은 열전도성을 갖는 재료로 구성되는 것이 바람직하다. 마찬가지로, 마칭 캐시 메모리(21-1, 21-2, 21-3,...)는 반도체 칩의 표면에 묘사된 메모리 유닛의 2차원 어레이에 의해 구현되고, 다수의 반도체 칩은 3차원 마칭 캐시(21-1, 21-2, 21-3,...)를 구현하기 위해 다수의 반도체 칩의 사이에서 방열 플레이트(58c-1, 58c-2, 58c-3,...)를 스위칭하며, 마칭 레지스터 파일(22-1, 22-2, 22-3,...)은 반도체 칩의 표면에 묘사된 메모리 유닛의 2차원 어레이에 의해 구현되며, 다수의 반도체 칩은 도 27의 (c)에 나타낸 바와 같이 수직 방향으로 적층되고, 3차원 마칭 레지스터 파일(22-2, 22-2, 22-3,...)을 구현하기 위해 다수의 반도체 칩 사이에서 방열 플레이트(58r-1, 58r-2, 58r-3,...)를 스위칭한다. 방열 플레이트(58c-1, 58c-2, 58c-3,...,58r-1, 58r-2, 58r-3,...)는 다이아몬드와 같은 높은 열 전도율을 갖는 재료로 구성되는 것이 바람직하다. 도 44의 (a)-45의 (c)에 나타낸 3차원 구성에서의 반도체 칩의 표면 내에는 상호접속이 없기 때문에, 반도체 칩 사이에, 방열 플레이트(58c-1, 58c-2, 58c-3,...,58c-1, 58c-2, 58c-3,...,58r-1, 58r-2, 58r-3,...)를 삽입하는 것이 용이하며, 도 44의 (a)-45의 (c)에 나타낸 구성은 임의의 개수의 반도체 칩을 갖는 적층 구조로 확장가능하다. 종래의 구성에서, 종래의 반도체 칩이 수직 방향으로 적층된 경우에는, 기본적으로 열적 관점에서 적층된 반도체 칩의 개수에는 제한이 있다. 제5 실시예의 컴퓨터 시스템에서, 도 44의 (a)-45의 (c)에 나타낸 샌드위치 구성은 방열 플레이트(58c-1, 58c-2, 58c-3,...,58c-1, 58c-2, 58c-3,...,58r-1, 58r-2, 58r-3,...)를 통해 능동의 컴퓨팅 반도체 칩으로부터 시스템의 외부로의 더 효과적인 열 흐름을 구축하는데에 적합하다. 따라서, 제5 실시예의 컴퓨터 시스템에서, 이들 반도체 칩은 시스템의 스케일에 비례하여 적층될 수 있으며, 도 44의 (a)-45의 (c)에 나타낸 바와 같이, 마칭 메인 메모리(31-1, 31-2, 31-3,...), 마칭 캐시 메모리(21-1, 21-2, 21-3,...) 및 마칭 레지스터 파일(22-1, 22-2, 22-3,...)을 병합하는 다수의 반도체 칩은 3차원 구성을 구현하도록 용이하게 적층될 수 있기 때문에, 확장가능한 컴퓨터 시스템이 용이하게 구성될 수 있으며, 이에 따라 시스템 쿨러의 온도를 유지할 수 있다.
도시하지는 않지만, 3차원 마칭 메인 메모리(31-1, 31-2, 31-3,...) 및 마칭 캐시 메모리(21-1, 21-2, 21-3,...)는 다수의 결합 부재에 의해 전기적으로 연결되며, 마칭 캐시 메모리(21-1, 21-2, 21-3,...) 및 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...)은 다수의 결합 부재에 의해 전기적으로 연결되고, 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...)과 프로세서(11)는 다른 다수의 결합 부재에 의해 전기적으로 연결된다.
ALU(112)에서 처리되는 데이터는 결합 부재를 통해 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...)로 발송되기 때문에, 데이터는 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...)과 ALU(112) 사이에서 양방향으로 전송된다. 또한, 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...)에 기억된 데이터는 결합 부재를 통해 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...)로 발송됨으로써, 데이터는 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...)와 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...) 사이에서 양방향으로 전송된다. 또한, 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...)에 기억된 데이터는 결합 부재를 통해 3차원 마칭 메인 메모리(31-1, 31-2, 31-3,...)로 발송되기 때문에, 데이터는 3차원 마칭 메인 메모리(31-1, 31-2, 31-3,...)와 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...) 사이에서 양방향으로 전송된다.
이에 대하여, 3차원 마칭 메인 메모리(31-1, 31-2, 31-3,...)로부터 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...)로, 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...)로부터 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...)로, 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...)로부터 제어 유닛(111)으로의 명령어 흐름은 하나의 방향만 존재한다. 예를 들어, 소스 프로그램 내의 루프로부터 생성된 벡터 명령어는 3차원 마칭 메인 메모리(31-1, 31-2, 31-3,...)로부터 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...), 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...) 및 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...)을 통해 제어 유닛(111)으로 전송됨으로써, 이들 벡터 명령어의 각각은 제어 유닛(111) 내의 산술 파이프라인에 의해 실행될 수 있다.
도 43에 나타낸 제5 실시예의 컴퓨터 시스템에서, 3차원 마칭 메인 메모리(31-1, 31-2, 31-3,...)와 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...) 사이, 3차원 마칭 캐시 메모리(21-1, 21-2, 21-3,...)와 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...) 사이, 및 3차원 마칭 레지스터 파일(22-1, 22-2, 22-3,...)과 프로세서(11) 사이에서의 어떠한 데이터 교환에서도 데이터 버스와 어드레스 버스와 같은 버스가 없으며, 이에 대해 종래의 컴퓨터 시스템에서는 와이어 또는 버스가 병목을 구현한다. 와이어들 사이에서의 시간 지연 및 부유 커패시턴스를 생기게 하는 전역적인 와이어가 없기 때문에, 제5 실시예의 컴퓨터 시스템은 종래의 컴퓨터 시스템에 비해 더 높은 처리 속도와 더 낮은 파워 소비를 달성할 수 있으며, 반도체 칩 사이에 배치되며 다이아몬드와 같은 높은 열 전도율을 갖는 재료로 구성되는 방열 플레이트(58c-1, 58c-2, 58c-3,...,58c-1, 58c-2, 58c-3,...,58r-1, 58r-2, 58r-3,...)를 사용함으로써, "쿨 컴퓨터"(cool computer)를 구축하도록, 컴퓨터 시스템의 온도를 종래의 컴퓨터 시스템보다 더 낮게 유지할 수 있다. 제5 실시예에 관한 쿨 컴퓨터는 평균 30% 에너지 소비가 적고 10000% 크기가 작아서 100배의 더 빠른 속도를 달성하도록 구성되고 설계되는 점에서 기존의 컴퓨터와는 다르다.
제5 실시예에 관한 컴퓨터 시스템의 기능, 구성 및 동작 방법은 제1 내지 제3 실시예에서 이미 설명한 기능, 구성 및 동작 방법과 실질적으로 유사하기 때문에, 중복되는 설명은 생략한다.
[다양한 3차원 구성]
도 43, 44의 (a), 44의 (b) 및 44의 (c)에 나타낸 3차원 구성은 예에 불과하며, 확장가능한 컴퓨터 시스템의 구성을 사용할 수 있도록 3차원 구성을 구현하는 다양한 방법 및 그 조합이 있다.
예를 들어, 도 45에 나타낸 바와 같이, 다수의 산술 파이프라인(117)과 다수의 마칭 레지스터 파일(22)을 병합한 제1 칩(상부 칩)과 마칭 캐시 메모리(21)를 병합하는 제2 칩(중간 칩), 및 마칭 메인 메모리(31)를 병합하는 제3 칩(바닥 칩)이 수직 방향으로 적층될 수 있다. 각각의 산술 파이프라인(117)은 벡터 처리 유닛을 포함할 수 있으며, 마칭 레지스터 파일(22)은 마칭 벡터 레지스터를 포함할 수 있다. 제1 칩과 제2 칩 사이에, 다수의 결합 부재(55a)가 삽입되며, 제2 칩과 제3 칩 사이에, 다수의 결합 부재(55b)가 삽입된다. 예를 들어, 결합 부재(55a, 55b)는 솔더 볼, 금(Au) 범프, 은(Ag) 범프, 구리(Cu), 범프, 니겔-금(Ni-Au) 합금 범프 또는 니켈-금-인듐(Ni-Au-In) 합금 범프와 같은 전기 전도성 범프에 의해 구현될 수 있다. 도시하지는 않지만, 방열 플레이트는 제1 칩과 제2 칩 사이에 그리고 제2 칩과 제3 칩 사이에 삽입되어, 도 44의 (a)-45의 (c)에 나타낸 구성과 유사한 "쿨 칩"(cool chip)을 달성할 수 있다.
이와 달리, 도 46 및 도 47에 나타낸 바와 같이, 제1 상부 칩, 제1 중간 칩 및 제1 바닥 칩을 갖는 제1 3차원(3D) 스택, 제2 상부 칩, 제2 중간 칩 및 제2 바닥 칩을 갖는 제2 3차원(3D) 스택은 다수의 프로세서로 병렬 연산을 구현하기 위해 동일한 회로 기판 또는 동일한 기판상에 2차원적으로 배치될 수 있으며, 제1 3D 스택과 제2 3D 스택은 브리지(59a, 59b)에 의해 연결된다.
제1 3D 스택에서, 다수의 제1 산술 파이프라인(117-1)과 다수의 제1 마칭 레지스터 파일(22-1)을 병합하는 제1 상부 칩, 제1 마칭 캐시 메모리(21-1)를 병합하는 제1 중간 칩, 제1 마칭 메인 메모리(31-1)를 병합하는 제1 바닥 칩이 수직 방향으로 3D 적층되어 있다. 제1 산출 파이프라인(117-1)은 벡터 처리 유닛을 포함할 수 있다. 제1 마칭 캐시 파일(22-1)은 마칭 벡터 레지스터를 포함할 수 있다. 제1 상부 칩과 제1 중간 칩 사이에, 다수의 결합 부재(55a-1)가 삽입되며, 제1 중간 칩과 제1 바닥 칩 사이에, 다수의 결합 부재(55b-1)가 삽입된다. 예를 들어, 결합 부재(55a-1, 55b-1)는 솔더 볼, 금(Au) 범프, 은(Ag) 범프, 구리(Cu), 범프, 니겔-금(Ni-Au) 합금 범프 또는 니켈-금-인듐(Ni-Au-In) 합금 범프와 같은 전기 전도성 범프에 의해 구현될 수 있다. 마찬가지로, 제2 3D 스택에서, 다수의 제2 산술 파이프라인(117-2)과 다수의 제2 마칭 레지스터 파일(22-2)을 병합하는 제2 상부 칩, 제2 마칭 캐시 메모리(21-2)를 병합하는 제2 중간 칩, 제2 마칭 메인 메모리(31-2)를 병합하는 제2 바닥 칩이 수직 방향으로 3D 적층되어 있다. 제2 산출 파이프라인(117-2)은 벡터 처리 유닛을 포함할 수 있다. 제2 마칭 캐시 파일(22-2)은 마칭 벡터 레지스터를 포함할 수 있다. 제2 상부 칩과 제2 중간 칩 사이에, 다수의 결합 부재(55a-2)가 삽입되며, 제2 중간 칩과 제2 바닥 칩 사이에, 다수의 결합 부재(55b-2)가 삽입된다. 예를 들어, 결합 부재(55a-2, 55b-2)는 솔더 볼, 금(Au) 범프, 은(Ag) 범프, 구리(Cu), 범프, 니겔-금(Ni-Au) 합금 범프 또는 니켈-금-인듐(Ni-Au-In) 합금 범프와 같은 전기 전도성 범프에 의해 구현될 수 있다. 도시하지는 않지만, 방열 플레이트는 제1 상부 칩과 제1 중간 칩 사이, 제1 중간 칩과 제1 바닥 칩 사이, 제2 상부 칩과 제2 중간 칩 사이, 및 제2 중간 칩과 제2 바닥 칩 사이에 삽입되어, 도 44의 (a)-45의 (c)에 나타낸 구성과 유사한 "쿨 칩"(cool chip)을 달성할 수 있다.
제4 실시예의 컴퓨터 시스템과 유사하게, 필드 프로그램가능 게이트 어레이(FPGA)는 GPU 기반의 범용 컴퓨팅을 위해 사용될 수 있는 HPC 시스템을 구현하는, 제1 산술 파이프라인(117-1) 및 제2 산술 파이프라인(117-2)에서의 벡터 처리의 쓰레드 또는 체인을 이동시킴으로써, 제1 및 제2 3D 스택의 동작을 스위치 제어할 수 있다.
대안으로서, 도 48에 나타낸 바와 같이, 다수의 산술 파이프라인(117)을 병합하는 제1 칩(상부 칩), 다수의 마칭 레지스터 파일(22)을 병합하는 제2 칩, 마칭 캐시 메모리(21)를 병합하는 제3 칩, 제1 마칭 메인 메모리(31-1)를 병합하는 제4 칩, 마칭 메인 메모리(31-2)를 병합하는 제5 칩, 및 제3 마칭 메인 메모리(31-3)를 병합하는 제6 칩(바닥 칩)이 수직 방향으로 적층될 수 있다. 각각의 산술 파이프라인(117)은 벡터 처리 유닛을 포함하며, 각각의 마칭 레지스터 파일(22)은 마칭 벡터 레지스터를 포함함으로써, 소스 프로그램 내의 루프로부터 생성된 벡터 명령어가 벡터 처리 유닛 내에서 실행될 수 있다. 제1 방열 플레이트(58-1)는 제1 칩과 제2 칩 사이에 삽입되며, 제2 방열 플레이트(58-2)는 제2 칩과 제3 칩 사이에 삽입되고, 제3 방열 플레이트(58-3)는 제3 칩과 제4 칩 사이에 삽입되며, 제4 방열 플레이트(58-4)는 제4 칩과 제5 칩 사이에 삽입되며, 제5 방열 플레이트(58-5)는 제5 칩과 제6 칩 사이에 삽입됨으로써, "쿨 칩"을 달성할 수 있다, 도 48에 나타낸 3차원 구성 내의 이들 쿨 칩의 표면 내에는 상호접속이 없기 때문에, 이들 6개의 칩 사이에서 다이아몬드 칩과 같은 방열 플레이트(58-1, 58-2, 58-3, 58-4, 58-5)를 교대로 삽입하는 것이 용이하다.
도 48에 나타낸 쿨 칩 구성은 6개의 칩의 경우에만 한정되는 것은 아니며, 임의의 개수의 칩을 가진 3차원 스택 구조에까지 확장이 가능한데, 이는 도 48에 나타낸 샌드위치 구조가 능동 컴퓨팅 칩으로부터 방열 플레이트(58-1, 58-2, 58-3, 58-4, 58-5)를 통해 쿨 컴퓨터 시스템의 외부로 더 효과적으로 열 흐름을 설정하는 것에 적합하기 때문이다. 따라서, 제5 실시예의 컴퓨터 시스템에서의 쿨 칩의 개수는 컴퓨터 시스템의 스케일에 비례해서 증가될 수 있다.
도 49-51은 본 발명의 제5 실시예에 따른 컴퓨터 시스템의 기본적인 핵심 사항의 일부를 구현하는, 3차원(3D) 스택의 다양한 예를 나타낸다. 3D 스택의 각각은 마칭 메모리 계열로 분류된 마칭 메모리 중의 적어도 하나가 병합되는, 반도체 칩(3a, 3b) 사이에 삽입된 다이아몬드 플레이트 등의 방열 플레이트(58)를 사용하는 냉각 기술을 포함하며, "마칭 메모리 계열"(marching memory family)이라는 용어는, 본 발명의 제1 실시예에서 설명한 마칭 메인 메모리(31)에 추가로, 제2 실시예에서 설명한, ALU(112)에 연결된 마칭 데이터 레지스터 파일(22b)과 마칭 명령어 레지스터 파일(22a), 및 제3 실시예에서 설명한 마칭 데이터 캐시 메모리(21b)와 마칭 명령어 캐시 메모리(21a)를 포함한다.
즉, 도 49에 나타낸 바와 같이, 본 발명의 제5 실시예에 관한 컴퓨터 시스템의 기본적인 핵심 구성의 일부를 구현하는 3D 스택은, 마칭 메모리 계열 내의 마칭 메모리 중의 하나 이상을 병합하는 제1 반도체 메모리 칩(3a), 제1 반도체 메모리 칩(3a)의 아래에 배치된 방열 플레이트(58), 방열 플레이트(58)의 아래에 위치하며 마칭 메모리 계열 내의 마칭 메모리 중의 하나 이상을 병합하는 제2 반도체 메모리 칩(3b), 및 방열 플레이트(58)의 한쪽에 위치한 프로세서(11)를 포함한다. 도 49에서, 프로세서(11)의 위치는 하나의 예로서 도시되어 있기 때문에, 프로세서(11)는 3D 스택의 설계적 선택에 따라 3D 스택의 구성 또는 3D 스택의 외부의 임의의 요구되는 또는 적절한 위치에 배치될 수 있다. 예를 들어, 프로세서(11)는 제1 반도체 메모리 칩(3a)의 동일 수평 레벨에 할당되거나 제2 반도체 메모리 칩(3b)의 레벨에 할당될 수 있다. 제1 반도체 메모리 칩(3a)에 병합된 마칭 메모리 및 제2 반도체 메모리 칩(3b)에 병합된 마칭 메모리는 각각 프로그램 명령어를 기억한다. 도 49에 나타낸 3D 구성에서, 제1 반도체 메모리 칩(3a), 방열 플레이트(58) 및 제2 반도체 메모리 칩(3b)이 수직 방향으로 적층되어 있고, 제1 반도체 메모리 칩(3a)과 프로세서(11)의 사이에 제1 제어 경로가 제공되고, 제2 반도체 메모리 칩(3b)과 프로세서(11) 사이에 제2 제어 경로가 제공됨으로써, 프로세서(11)에 의한 제어 처리의 실행이 용이하게 될 수 있다. 추가의 데이터 경로가 제1 반도체 메모리 칩(3a)과 제2 반도체 메모리 칩(3b) 사이에 제공되어, 제1 반도체 메모리 칩(3a)과 제2 반도체 메모리 칩(3b) 사이에서의 프로그램 명령어의 직접 통신이 용이하게 될 수 있다.
또한, 도 50에 나타낸 바와 같이, 본 발명의 제5 실시예에 관한 컴퓨터 시스템의 기본적인 핵심 구성의 일부를 구현하는 다른 3D 스택은, 마칭 메모리 계열에서 마칭 메모리 중의 하나 이상을 병합하는 제1 반도체 메모리 칩(3a), 제1 반도체 메모리 칩(3a)의 아래에 배치된 방열 플레이트(58), 방열 플레이트(58)의 아래에 위치하며, 마칭 메모리 계열 내의 하나 이상의 마칭 메모리를 병합하는 제2 반도체 메모리 칩(3b), 방열 플레이트(58)의 한쪽에 위치한 ALU(112)를 포함한다. ALU(112)의 위치는 도 50에 나타낸 위치에 한정되지 않으며, ALU(112)는 3D 스택의 설계 선택에 따라, 제2 반도체 메모리 칩(3b)의 레벨에 또는 제1 반도체 메모리 칩(3a)의 동일 수평 레벨에 할당된 위치 등의, 3D 스택의 구성 내 또는 3D 스택의 외부의 필요한 또는 적절한 위치에 배치될 수 있다. 제1 반도체 메모리 칩(3a)에 병합된 마칭 메모리 및 제2 반도체 메모리 칩(3b)에 병합된 마칭 메모리는 각각 스칼라 데이터를 판독/기록한다. 도 50에 나타낸 3D 구성에서, 제1 반도체 메모리 칩(3a), 방열 플레이트(58) 및 제2 반도체 메모리 칩(3b)이 수직 방향으로 적층되어 있고, 제1 반도체 메모리 칩(3a)과 ALU(112)의 사이에 제1 데이터 경로가 제공되고, 제2 반도체 메모리 칩(3b)과 ALU(112) 사이에 제2 데이터 경로가 제공됨으로써, ALU(112)에 의한 제어 처리의 실행이 용이하게 될 수 있다. 추가의 데이터 경로가 제1 반도체 메모리 칩(3a)과 제2 반도체 메모리 칩(3b) 사이에 제공되어, 제1 반도체 메모리 칩(3a)과 제2 반도체 메모리 칩(3b) 사이에서의 스칼라 데이터의 직접 통신이 용이하게 될 수 있다.
또한, 도 51에 나타낸 바와 같이, 본 발명의 제5 실시예에 관한 컴퓨터 시스템의 기본적인 핵심 구성의 일부를 구현하는 다른 3D 스택은, 마칭 메모리 계열에서 마칭 메모리 중의 하나 이상을 병합하는 제1 반도체 메모리 칩(3a), 제1 반도체 메모리 칩(3a)의 아래에 배치된 방열 플레이트(58), 방열 플레이트(58)의 아래에 위치하며, 마칭 메모리 계열 내의 하나 이상의 마칭 메모리를 병합하는 제2 반도체 메모리 칩(3b), 방열 플레이트(58)의 한쪽에 위치한 산술 파이프라인(117)을 포함한다. 도 49 및 도 50에 나타내는 토폴로지와 유사하게, 산술 파이프라인(117)의 위치는 도 51에 나타낸 위치에 한정되지 않으며, 산술 파이프라인(117)은 필요한 또는 적절한 위치에 배치될 수 있다. 제1 반도체 메모리 칩(3a)에 병합된 마칭 메모리 및 제2 반도체 메모리 칩(3b)에 병합된 마칭 메모리는 각각 벡터/스트리밍 데이터를 판독/기록한다. 도 51에 나타낸 3D 구성에서, 제1 반도체 메모리 칩(3a), 방열 플레이트(58) 및 제2 반도체 메모리 칩(3b)이 수직 방향으로 적층되어 있고, 제1 반도체 메모리 칩(3a)과 산술 파이프라인(117)의 사이에 제1 데이터 경로가 제공되고, 제2 반도체 메모리 칩(3b)과 산술 파이프라인(117) 사이에 제2 데이터 경로가 제공됨으로써, 산술 파이프라인(117)에 의한 제어 처리의 실행이 용이하게 될 수 있다. 추가의 데이터 경로가 제1 반도체 메모리 칩(3a)과 제2 반도체 메모리 칩(3b) 사이에 제공되어, 제1 반도체 메모리 칩(3a)과 제2 반도체 메모리 칩(3b) 사이에서의 벡터/스트리밍 데이터 처리의 실행을 용이하게 될 수 있다.
도 52에 나타낸 바와 같이, 제5 실시예에 따른 3D 하이브리드 컴퓨터 시스템에는, 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제1 좌측 칩(상단 좌측 칩)(3p-1), 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제2 좌측 칩(3p-2), 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제3 좌측 칩(3p-3), 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제4 좌측 칩(3p-4), 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제5 좌측 칩(3p-5), 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제6 좌측 칩(바닥 좌측 칩)(3p-6)이 수직 방향으로 적층되어 있다. 제1 좌측 칩(3p-1)과 제2 좌측 칩(3p-2)의 사이에는 제1 좌측 방열 플레이트(58a-1)가 삽입되며, 제2 좌측 칩(3p-2)과 제3 좌측 칩(3p-3)의 사이에는 제2 좌측 방열 플레이트(58a-2)가 삽입되며, 제3 좌측 칩(3p-3)과 제4 좌측 칩(3p-4)의 사이에는 제3 좌측 방열 플레이트(58a-3)가 삽입되며, 제4 좌측 칩(3p-4)과 제5 좌측 칩(3p-5)의 사이에는 제4 좌측 방열 플레이트(58a-4)가 삽입되며, 제5 좌측 칩(3p-5)과 제6 좌측 칩(3p-6)의 사이에는 제5 좌측 방열 플레이트(58a-5)가 삽입되어, "좌측 쿨 칩"을 달성할 수 있다.
또한, 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제1 우측 칩(상단 우측 칩)(3q-1), 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제2 우측 칩(3q-2), 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제3 우측 칩(3q-3), 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제4 우측 칩(3q-4), 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제5 우측 칩(3q-5), 마칭 메모리 계열 중의 하나 이상의 마칭 메모리를 병합하는 제6 우측 칩(바닥 좌측 칩)(3q-6)이 수직 방향으로 적층되어 있다. 제1 우측 칩(3q-1)과 제2 우측 칩(3q-2)의 사이에는 제1 우측 방열 플레이트(58b-1)가 삽입되며, 제2 우측 칩(3q-2)과 제3 우측 칩(3q-3)의 사이에는 제2 우측 방열 플레이트(58b-2)가 삽입되며, 제3 우측 칩(3q-3)과 제4 우측 칩(3q-4)의 사이에는 제3 우측 방열 플레이트(58b-3)가 삽입되며, 제4 우측 칩(3q-4)과 제5 우측 칩(3q-5)의 사이에는 제4 우측 방열 플레이트(58b-4)가 삽입되며, 제5 우측 칩(3q-5)과 제6 우측 칩(3q-6)의 사이에는 제5 우측 방열 플레이트(58b-5)가 삽입되어, "우측 쿨 칩"을 달성할 수 있다.
제1 처리 유닛(11a)은 제1 좌측 방열 플레이트(58a-1)와 제1 우측 방열 플레이트(58b-1)의 사이에 제공되며, 제2 처리 유닛(11b)은 제3 좌측 방열 플레이트(58a-3)와 제1 우측 방열 플레이트(58b-3)의 사이에 제공되며, 제3 처리 유닛(11c)은 제5 좌측 방열 플레이트(58a-5)와 제5 우측 방열 플레이트(58b-5)의 사이에 제공되며, 파이프라인화된 ALU는 처리 유닛(11a, 11b, 11c) 내에 각각 포함된다.
스칼라 데이터 경로와 제어 경로는 제1 좌측 칩(3p-1)과 제2 좌측 칩(3p-2) 사이에 설정되며, 스칼라 데이터 경로 및 제어 경로는 제2 좌측 칩(3p-2)과 제3 좌측 칩(3p-3)의 사이에 설정되고, 스칼라 데이터 경로 및 제어 경로는 제3 좌측 칩(3p-3)과 제4 좌측 칩(3p-4)의 사이에 설정되며, 스칼라 데이터 경로 및 제어 경로는 제4 좌측 칩(3p-4)과 제5 좌측 칩(3p-5)의 사이에 설정되며, 스칼라 데이터 경로 및 제어 경로는 제5 좌측 칩(3p-5)과 제6 좌측 칩(3p-6)의 사이에 설정되며, 스칼라 데이터 경로 및 제어 경로는 제1 우측 칩(3q-1)과 제2 우측 칩(3q-2)의 사이에 설정되며, 스칼라 데이터 경로 및 제어 경로는 제2 우측 칩(3q-2)과 제3 우측 칩(3q-3)의 사이에 설정되며, 스칼라 데이터 경로 및 제어 경로는 제3 우측 칩(3q-3)과 제4 우측 칩(3q-4)의 사이에 설정되며, 스칼라 데이터 경로 및 제어 경로는 제41 우측 칩(3q-4)과 제5 우측 칩(3q-5)의 사이에 설정되며, 스칼라 데이터 경로 및 제어 경로는 제5 우측 칩(3q-5)과 제6 우측 칩(3q-6)의 사이에 설정된다. 도 52에 나타낸 3D 컴퓨터 시스템은 컴퓨터 시스템용의 스칼라 데이터 경로 및 제어 경로의 조합을 통해 스칼라 데이터뿐만 아니라 벡터/스트리밍 데이터도 실행할 수 있다.
도 52에 나타낸 3D 구성에서는 이러한 쿨 칩의 표면 내에 상호접속이 없기 때문에, 이들 6개의 좌측 칩들 사이에 다이아몬드 좌측 칩 등의 방열 플레이트(58a-1, 58a-2, 58a-3, 58a-4, 58a-5)를 교대로 삽입하는 것이 용이하게 되며, 이들 6개의 우측 칩들 사이에 다이아몬드 우측 칩 등의 방열 플레이트(58a-1, 58a-2, 58a-3, 58a-4, 58a-5)를 교대로 삽입할 수 있다.
다른 실시예
당업자라면, 본 발명의 범위를 벗어남이 없이 본 명세서의 설명으로부터 다양한 변형이 가능할 것이다.
플린의 분류학("Flynn's taxonomy")으로서 알려진, 비트 레벨, 명령어 레벨, 데이터 및 작업 병렬성 등의 몇 가지 상이한 형태의 병렬 컴퓨팅이 존재하며, 프로그램 및 컴퓨터는 단일 세트 또는 다중 세트의 명령어를 사용하여 동작하였는지 여부에 따라, 그리고 이들 명령어가 단일 또는 다중 세트의 데이터를 사용하였는지 여부에 따라 분류된다.
예를 들어, 도 53에 나타낸 바와 같이, 제1 내지 제5 실시예에서 설명한 마칭 레지스터 파일, 마칭 캐시 메모리, 및 마칭 메인 메모리를 포함할 수 있는 마칭 메모리는 다중-명령어-단일-데이터(MISD) 구조 내의 스칼라/벡터 데이터의 비트 레벨 병렬 처리를 구현할 수 있으며, 이에 의해, 제1 프로세서(11-1), 제2 프로세서(11-2), 제3 프로세서(11-3), 제4 프로세서(11-4),...에 수직방향으로 제공된 많은 독립적인 명령어 스트림이 프로세서(11-1, 11-2, 11-3, 11-4)의 시스톨릭 어레이(systolic array)를 가진 시간에서 단일 수평방향의 데이터 스트림에서 병렬로 동작한다.
대안으로서, 도 54에 도시된 바와 같이, 제1 내지 제5 실시예에서 설명한 마칭 레지스터 파일, 마칭 캐시 메모리, 및 마칭 메인 메모리를 포함할 수 있는 마칭 메모리는 단일-명령어-다중-데이터(SIMD) 구조에 의해, 산술 레벨 병렬성이 설정될 수 있으며, 이에 의해, 제1 프로세서(11-1), 제2 프로세서(11-2), 제3 프로세서(11-3), 제4 프로세서(11-4)에 단일 명령어 스트림이 제공되어, 단일 명령어 스트림이 프로세서(11-1, 11-2, 11-3, 11-4)의 어레이를 가진 시간에서 다중 수직방향 스트림에서 동작할 수 있다.
대안으로서, 도 55에 나타낸 바와 같이, 제1 내지 제5 실시예에서 언급한 마칭 레지스터 파일, 마칭 캐시 메모리, 및 마칭 메인 메모리를 포함할 수 있는 마칭 메모리는 제1 명령어(I1), 제2 명령어(I2), 제3 명령어(I3), 및 제4 명령어(I4)가 제공되는 제1 프로세서(11-1), 제2 프로세서(11-2), 제3 프로세서(11-3), 제4 프로세서(11-4)에 의해 벡터 처리에서의 통상적인 체이닝(chaining)을 구현할 수 있다.
또한, 도 56에 나타낸 바와 같이, 제1 내지 제5 실시예에서 언급한 마칭 레지스터 파일, 마칭 캐시 메모리, 및 마칭 메인 메모리를 포함할 수 있는 마칭 메모리는 제1 프로세서(11-1), 제2 프로세서(11-2), 제3 프로세서(11-3), 제4 프로세서(11-4)를 가진 MISD 구조 내의 스칼라/벡터 데이터의 수평방향의 다일 스트림의 병렬 처리를 구현할 수 있다.
또한, 도 57에 나타낸 바와 같이, 제1 내지 제5 실시예에서 언급한 마칭 레지스터 파일, 마칭 캐시 메모리, 및 마칭 메인 메모리를 포함할 수 있는 마칭 메모리는 곱셈을 실행하도록 구성된 제1 프로세서(11-1), 덧셈을 실행하도록 구성된 제2 프로세서(11-2), 곱셈을 실행하도록 구성된 제3 프로세서(11-3), 덧셈을 실행하도록 구성된 제4 프로세서(11-4)를 가진 MISD 구조 내의 스칼라/벡터 데이터의 수평방향의 다일 스트림의 병렬 처리를 구현할 수 있다.
또한, 프로세스 레벨 병렬성, 단일 쓰레드 스트림 및 단일 데이터 스트림 구조, 단일 쓰레드 스트림 및 다중 데이터 스트림 구조, 다중 쓰레드 스트림 및 단일 데이터 스트림 구조, 및 다중 쓰레드 스트림 및 다중 데이터 스트림 구조는, 제1 내지 제5 실시예에서 언급한 마칭 레지스터 파일, 마칭 캐시 메모리, 및 마칭 메인 메모리를 포함할 수 있는 마칭 메모리에 의해 달성될 수 있다.
따라서, 본 발명은 앞서 언급하지 않은 다양한 변경 및 변경을 포함할 수 있다. 따라서, 본 발명의 범위의 이하의 청구범위에서 정의될 것이다.
[산업상 이용가능성]
본 발명은 컴퓨터 시스템의 산업 분야에 적용할 수 있다.

Claims (21)

  1. 컴퓨터 시스템에 있어서,
    상기 컴퓨터 시스템은 프로세서 및 마칭 메인 메모리(marching main memory)를 포함하며,
    상기 프로세서는,
    클록 신호를 생성하도록 구성된 클록 생성기(clock generator)를 갖는 제어 유닛(control unit); 및
    상기 클록 신호와 동기하여 산술 및 논리 연산을 실행하도록 구성된 산술 논리 유닛(arithmetic logic unit)을 포함하며,
    상기 마칭 메인 메모리는, 정보 유닛을 각각 갖는 메모리 유닛의 어레이, 상기 어레이의 입력 단자 및 상기 어레이의 출력 단자를 구비하며, 정보를 상기 메모리 유닛의 각각에 기억하고 기억된 정보를 클록 신호에 동기하여 상기 출력 단자로 순차적으로 전송하도록 구성되고, 상기 기억된 정보를 상기 프로세서에 능동적이며 순차적으로 제공함으로써, 상기 산술 논리 유닛이 상기 기억된 정보를 사용하여 산술 및 논리 연산을 실행할 수 있게 되며, 상기 산술 논리 유닛에서의 처리 결과를, 명령어 이동의 경우를 제외하고, 상기 마칭 메인 메모리로 발송하며, 상기 마칭 메인 메모리로부터 상기 프로세서로의 하나의 방향의 명령어 흐름만이 가능하도록 된 것을 특징으로 하는 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 메모리 유닛의 각각은 셀(cell)로 이루어진 어레이를 포함하며,
    상기 셀은,
    정보를 기억하도록 구성된 커패시터; 및
    상기 커패시터에 연결된 하나의 입력, 상기 클록 신호가 제공되도록 구성된 다른 입력, 및 출력을 갖는 논리곱(AND) 게이트를 각각 포함하며,
    상기 논리곱 게이트의 출력은 이웃하는 메모리 유닛에 할당된 다음 AND 게이트의 하나의 입력에 연결된, 컴퓨터 시스템.
  3. 제2항에 있어서,
    상기 메모리 유닛이 칩(chip) 상에 2차원으로 정렬된, 컴퓨터 시스템.
  4. 제3항에 있어서,
    상기 칩은 복수 개가 수직방향으로 적층되고, 이들 칩 사이에 방열 플레이트(heat dissipating plate)가 개재되어, 3차원 메모리 유닛 어레이를 구현하도록 된, 컴퓨터 시스템.
  5. 제4항에 있어서,
    상기 방열 플레이트는 열 전도성 플레이트로서 다이아몬드(diamond)로 이루어진, 컴퓨터 시스템.
  6. 제1항에 있어서,
    상기 프로세서는 기억된 정보를 상기 마칭 메인 메모리로부터 상기 출력 단자를 통해 수신하도록 구성된 다수의 산술 파이프라인(arithmetic pipeline)을 더 포함하는, 컴퓨터 시스템.
  7. 제6항에 있어서,
    상기 컴퓨터 시스템은, 정보 유닛의 각각에 대응하는 위치에 배치된 캐시 메모리 유닛의 어레이, 기억된 정보를 마칭 메인 메모리로부터 수신하도록 구성된 상기 어레이의 캐시 입력 단자, 상기 어레이의 캐시 출력 단자를 구비하는 마칭 캐시 메모리(marching-cache memory)를 더 포함하며, 상기 마칭 캐시 메모리는 캐시 메모리 유닛의 각각에 정보를 기억하고, 상기 정보를 이웃하는 캐시 메모리 유닛에 클록 신호와 동기하여 순차적으로 전송하도록 구성됨으로써, 상기 기억된 정보를 상기 프로세서에 능동적이며 순차적으로 제공하여, 상기 산술 논리 유닛이 상기 기억된 정보를 사용하여 산술 및 논리 연산을 실행할 수 있게 되며, 상기 산술 논리 유닛에서의 처리 결과를, 명령어 이동의 경우를 제외하고, 상기 마칭 메인 메모리로 발송하며, 반대 방향으로의 정보 흐름은 처리되지 않도록 한, 컴퓨터 시스템.
  8. 제7항에 있어서,
    상기 다수의 산술 파이프라인은 다수의 벡터 처리(vector processing) 유닛 또는 다수의 스칼라 함수(scalar function) 유닛을 포함하는, 컴퓨터 시스템.
  9. 제8항에 있어서,
    상기 컴퓨터 시스템은 다수의 마칭 스칼라/벡터 레지스터(marching scalar/vector register)를 더 포함하며, 상기 다수의 마칭 스칼라/벡터 레지스터는, 각각의 정보 유닛에 대응하는 위치에 배치된 스칼라/벡터 레지스터 유닛의 어레이 및 상기 어레이의 스칼라/벡터 레지스터 입력 단자의 어레이를 각각 가지며, 기억된 벡터 정보를 상기 마칭 캐시 메모리로부터 수신하고, 정보를 스칼라/벡터 레지스터 유닛의 각각에 기억하며, 스칼라 벡터 레지스터 유닛의 기억된 벡터 정보를 클록 신호와 동기하여 순차적으로 전송하도록 구성됨으로써, 벡터 데이터를 벡터 처리 유닛에 능동적이며 순차적으로 제공하여, 상기 벡터 처리 유닛이 벡터 데이터를 실행하도록 할 수 있으며, 상기 산술 논리 유닛에서의 처리 결과를, 명령어 이동의 경우를 제외하고, 상기 마칭 캐시 메모리로 발송하며, 반대 방향으로의 정보 흐름은 처리되지 않도록 한, 컴퓨터 시스템.
  10. 제9항에 있어서,
    상기 컴퓨터 시스템은 다수의 마칭 스칼라/벡터 레지스터를 더 포함하며, 상기 다수의 마칭 스칼라/벡터 레지스터는, 각각의 정보 유닛에 대응하는 위치에 배치된 스칼라/벡터 레지스터 유닛의 어레이 및 상기 어레이의 스칼라/벡터 레지스터 입력 단자를 각각 가지며, 기억된 스칼라 정보를 상기 마칭 캐시 메모리로부터 수신하고, 상기 스칼라/벡터 레지스터 유닛에 스칼라 정보를 기억하고, 상기 벡터 레지스터 유닛 내의 기억된 스칼라 정보를 클록 신호와 동기하여 순차적으로 전송하도록 구성됨으로써, 스칼라 데이터를 스칼라 처리 유닛에 능동적이며 순차적으로 제공하여, 스칼라 처리 유닛이 스칼라 데이터를 처리할 수 있도록 하고, 상기 산술 논리 유닛에서의 처리 결과를, 명령어 이동의 경우를 제외하고, 상기 마칭 캐시 메모리로 발송하며, 반대 방향으로의 정보 흐름은 처리되지 않도록 한, 컴퓨터 시스템.
  11. 제10항에 있어서,
    상기 제어 유닛은 상기 마칭 메인 메모리, 상기 마칭 캐시 메모리, 상기 마칭 벡터 레지스터 및 상기 마칭 스칼라 레지스터의 동작을 스위치 제어하도록 구성된 필드 프로그램가능 게이트 어레이를 더 포함하는, 컴퓨터 시스템.
  12. 제11항에 있어서,
    상기 마칭 메인 메모리와 상기 마칭 캐시 메모리는 동일 칩 상에 병합(merge)된, 컴퓨터 시스템.
  13. 제11항에 있어서,
    상기 벡터 처리 유닛 중의 하나 이상과 상기 마칭 벡터 레지스터 중의 하나 이상이 동일 칩 상에 병합된, 컴퓨터 시스템.
  14. 제3항에 있어서,
    상기 벡터 처리 유닛과 상기 마칭 벡터 레지스터를 병합하는 제1 칩, 상기 마칭 캐시 메모리를 병합하는 제2 칩, 및 상기 마칭 메인 메모리를 병합하는 제3 칩은 수직방향으로 적층되고, 이들 칩 사이에 방열 플레이트가 개재되는, 컴퓨터 시스템.
  15. 제1항에 있어서,
    상기 산술 논리 유닛은 프로세서 코어를 구현하는, 컴퓨터 시스템.
  16. 제15항에 있어서,
    상기 프로세서는 다수의 프로세서 코어를 포함하는, 컴퓨터 시스템.
  17. 제16항에 있어서,
    상기 컴퓨터 시스템은 마칭 캐시 메모리를 더 포함하며, 상기 마칭 캐시 메모리는, 캐시 메모리 유닛의 어레이, 기억된 정보를 마칭 메인 메모리로부터 수신하도록 구성된 상기 어레이의 캐시 입력 단자, 및 상기 어레이의 캐시 출력 단자를 가지며, 캐시 메모리 유닛의 각각에 정보를 기억하고, 각각의 캐시 메모리 유닛에 기억된 정보를 캐시 입력 단자에 이웃하는 캐시 메모리 유닛으로부터 캐시 출력 단자에 이웃하는 캐시 메모리 유닛으로 향하는 클록 신호에 동기하여 순차적으로 이웃하는 캐시 메모리 유닛에 전송하도록 구성됨으로써, 기억된 정보를 캐시 출력 단자를 통해 프로세서에 능동적이며 순차적으로 제공하고, 상기 프로세서 코어는 기억된 정보를 사용하여 동작할 수 있도록 된, 컴퓨터 시스템.
  18. 제17항에 있어서,
    상기 컴퓨터 시스템은 마칭 레지스터 파일을 더 포함하며,
    상기 마칭 레지스터 파일은, 레지스터 파일 셀의 어레이, 기억된 정보를 마칭 캐시 메모리로부터 수신하도록 구성된 상기 어레이의 레지스터 파일 입력 단자, 상기 어레이의 레지스터 파일 출력 단자를 가지며, 각각의 레지스터 파일 셀에 정보를 기억하고, 레지스터 파일 셀의 각각에 기억된 정보를 레지스터 파일 입력 단자에 이웃하는 레지스터 파일 셀로부터 레지스터 파일 출력 단자에 이웃하는 레지스터 파일 셀로 향하는 클록 신호와 동기하여 순차적으로 이웃하는 레지스터 파일 셀에 전송하도록 구성됨으로써, 기억된 정보를 레지스터 파일 출력 단자를 통해 프로세서 코어에 능동적이며 순차적으로 제공할 수 있도록 된, 컴퓨터 시스템.
  19. 제18항에 있어서,
    상기 제어 유닛은, 상기 마칭 메인 메모리, 상기 마칭 캐시 메모리, 및 상기 마칭 레지스터 파일의 동작을 스위치 제어하도록 구성된 필드 프로그램가능 게이트 어레이를 더 포함하는, 컴퓨터 시스템.
  20. 제19항에 있어서,
    상기 마칭 메인 메모리와 상기 마칭 캐시 메모리는 동일 칩 상에 병합된, 컴퓨터 시스템.
  21. 제19항에 있어서,
    상기 마칭 레지스터 파일과 상기 프로세서 코어 중의 하나 이상은 동일 칩 상에 병합된, 컴퓨터 시스템.
KR1020127002982A 2009-07-21 2010-07-20 메모리 병목이 없는 저소비전력 및 고속 컴퓨터 KR101424020B1 (ko)

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
KR20120048596A true KR20120048596A (ko) 2012-05-15
KR101424020B1 KR101424020B1 (ko) 2014-07-28

Family

ID=43498927

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127002982A KR101424020B1 (ko) 2009-07-21 2010-07-20 메모리 병목이 없는 저소비전력 및 고속 컴퓨터

Country Status (6)

Country Link
US (2) US8949650B2 (ko)
EP (2) EP3255555B1 (ko)
JP (1) JP5417674B2 (ko)
KR (1) KR101424020B1 (ko)
CN (1) CN102483697B (ko)
WO (1) WO2011010445A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014065524A1 (ko) * 2012-10-23 2014-05-01 Kim Sungdong 챕터 데이터가 저장될 수 있는 캐쉬 메모리 어레이를 구비하는 3차원 반도체 장치 및 그 동작 방법

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3255555B1 (en) * 2009-07-21 2020-01-29 Tadao Nakamura A lower energy comsumption and high speed computer without the memory bottleneck
TWI637396B (zh) * 2012-02-13 2018-10-01 中村維男 無記憶體瓶頸的行進記憶體,雙向行進記憶體,複雜行進記憶體,及計算機系統
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 京东方科技集团股份有限公司 触控驱动单元和电路、显示面板及显示装置
WO2017081591A1 (en) * 2015-11-13 2017-05-18 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device, electronic component, and electronic device
CN107315716B (zh) * 2016-04-26 2020-08-07 中科寒武纪科技股份有限公司 一种用于执行向量外积运算的装置和方法
US10909037B2 (en) * 2017-04-21 2021-02-02 Intel Corpor Ation Optimizing memory address compression
CN109426518B (zh) * 2017-08-29 2021-02-19 杭州旗捷科技有限公司 单核处理器设备的并行写码方法、电子设备、存储介质
WO2019101350A1 (en) 2017-11-24 2019-05-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Data bus with multi-input pipeline
CN117995249A (zh) * 2018-01-23 2024-05-07 中村维男 行进存储器和计算机***
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 삼성전자주식회사 고 대역폭 메모리 장치 및 이 장치를 포함하는 시스템 장치
CN116150085A (zh) * 2018-12-10 2023-05-23 杭州海存信息技术有限公司 分离的三维处理器
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

Family Cites Families (25)

* Cited by examiner, † Cited by third party
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
DE59010847D1 (de) * 1990-12-11 1998-09-24 Siemens Ag 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
US7117290B2 (en) * 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
KR100585227B1 (ko) * 2004-03-12 2006-06-01 삼성전자주식회사 열 방출 특성이 개선된 반도체 적층 패키지 및 이를이용한 메모리 모듈
JP4654389B2 (ja) * 2006-01-16 2011-03-16 株式会社ムサシノエンジニアリング ダイヤモンドヒートスプレッダの常温接合方法,及び半導体デバイスの放熱部
KR101414774B1 (ko) * 2007-08-29 2014-08-07 삼성전자주식회사 멀티포트 반도체 메모리 장치
JP5035349B2 (ja) * 2007-09-14 2012-09-26 富士通株式会社 回路、その制御方法
JP5194302B2 (ja) * 2008-02-20 2013-05-08 ルネサスエレクトロニクス株式会社 半導体信号処理装置
EP3255555B1 (en) * 2009-07-21 2020-01-29 Tadao Nakamura A lower energy comsumption and high speed computer without the memory bottleneck

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014065524A1 (ko) * 2012-10-23 2014-05-01 Kim Sungdong 챕터 데이터가 저장될 수 있는 캐쉬 메모리 어레이를 구비하는 3차원 반도체 장치 및 그 동작 방법

Also Published As

Publication number Publication date
EP3255555A1 (en) 2017-12-13
US9361957B2 (en) 2016-06-07
EP2457155A1 (en) 2012-05-30
US20120117412A1 (en) 2012-05-10
EP2457155B1 (en) 2017-10-11
WO2011010445A1 (en) 2011-01-27
JP2012533784A (ja) 2012-12-27
EP3255555B1 (en) 2020-01-29
US20150149718A1 (en) 2015-05-28
CN102483697B (zh) 2015-06-10
JP5417674B2 (ja) 2014-02-19
KR101424020B1 (ko) 2014-07-28
CN102483697A (zh) 2012-05-30
EP2457155A4 (en) 2014-07-23
US8949650B2 (en) 2015-02-03

Similar Documents

Publication Publication Date Title
KR101424020B1 (ko) 메모리 병목이 없는 저소비전력 및 고속 컴퓨터
US12019895B2 (en) Apparatuses and methods for data movement
TWI640003B (zh) 用於邏輯/記憶體器件之裝置及方法
Peccerillo et al. A survey on hardware accelerators: Taxonomy, trends, challenges, and perspectives
CN109147842B (zh) 同时进行数据路径中计算操作的设备及方法
US11550742B2 (en) Apparatus and methods for in data path compute operations
Khoram et al. Challenges and opportunities: From near-memory computing to in-memory computing
Talati et al. mmpu—a real processing-in-memory architecture to combat the von neumann bottleneck
KR101747619B1 (ko) 메모리 병목이 없는, 마칭 메모리, 양방향 마칭 메모리, 복합 마칭 메모리 및 컴퓨터 시스템
Talpes et al. Dojo: The microarchitecture of tesla’s exa-scale computer
Jain et al. Merge network for a non-von Neumann accumulate accelerator in a 3D chip
WO2022088171A1 (en) Neural processing unit synchronization systems and methods
Bottleneck mMPU—A Real Processing-in-Memory Architecture to Combat the von
WO2023163954A1 (en) Die-to-die dense packaging of deterministic streaming processors
Yu et al. Nonvolatile Memory Computing System

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170511

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180418

Year of fee payment: 5