KR101549538B1 - 공유 메모리 장치 - Google Patents

공유 메모리 장치 Download PDF

Info

Publication number
KR101549538B1
KR101549538B1 KR1020070094568A KR20070094568A KR101549538B1 KR 101549538 B1 KR101549538 B1 KR 101549538B1 KR 1020070094568 A KR1020070094568 A KR 1020070094568A KR 20070094568 A KR20070094568 A KR 20070094568A KR 101549538 B1 KR101549538 B1 KR 101549538B1
Authority
KR
South Korea
Prior art keywords
memory
memory modules
processor elements
access
modules
Prior art date
Application number
KR1020070094568A
Other languages
English (en)
Other versions
KR20080026050A (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 KR20080026050A publication Critical patent/KR20080026050A/ko
Application granted granted Critical
Publication of KR101549538B1 publication Critical patent/KR101549538B1/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/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

복수의 프로세서 엘리먼트와, 그 복수의 프로세서 엘리먼트에 의해 액세스 가능한 복수의 메모리 모듈과, 복수의 프로세서 엘리먼트 중 특정한 프로세서 엘리먼트가 복수의 메모리 모듈 중 특정한 메모리 모듈에 액세스 가능한 접속장치를 갖고, 상기 복수의 프로세서 엘리먼트가, 그 접속장치를 거쳐서 적어도 하나의 메모리 모듈로 각각 구성된 복수의 메모리 시스템을 액세스 가능하고, 다른 프로세서 엘리먼트에 의해 액세스 가능한 상기 복수의 메모리 시스템 각각이, 복수의 메모리 모듈로 하여금 다른 프로세서 엘리먼트에 의해 부분적으로 공유되어 액세스되게 하는, 공유 메모리장치가 개시되어 있다.
Figure R1020070094568
공유 메모리장치, 프로세서 엘리먼트, 메모리 모듈, 접속장치.

Description

공유 메모리 장치{Shared memory device}
(관련 출원에 대한 참고)
본 발명은, 2006년 9월 19일에 일본특허청에 출원한 일본특허출원 JP 2006-252390에 관련된 내용을 포함하고, 그 전체 내용은 여기서 참고로 포함된다.
본 발명은, 복수의 메모리 시스템에서의 일부의 메모리들을 공유하는 프로세서 엘리먼트(PE)등의 처리장치와 함께, 각각 메모리들로 이루어진 복수의 메모리 시스템을 포함한 공유 메모리 장치에 관한 것이다.
복수의 메모리 시스템을 구비한 시스템에 있어서, 병렬처리를 중시하는 예를 들면 도 1에 나타나 있는 바와 같은 아키텍처를 채용하여도 된다.
도 1의 구성에 있어서는, PE(프로세서 엘리먼트) 1-1∼1-4와 메모리 2-1∼2-4는 병렬처리를 우선하기 위해서, 1대1로 접속된다.
이 구성에 있어서, 각 PE 1은 병렬처리를 촉진하는 방식으로 대응한 메모리(2)에 접속된다. 목적지에 이르기 위해서 인접하고 있는 PE의 데이터를 참조하 는 경우, 호스트 장치를 통한 경로를 통과할 필요가 있다.
호스트 장치에 의한 우회는, 도 2에 나타나 있는 바와 같이, 크로스바(X-bar) 3을 구비한 구성을 채용함으로써 설명적으로 회피된다. 전형적인 크로스바 구성이 미국특허 5,471,592에 기재되어 있다.
전술한 복수의 PE 시스템에 있어서, 수반된 메모리 사이에서 데이터의 공유를 행해 효율적으로 스케일러블 방식에 메모리 대 프로세서 접속이 증가되어도 된다. 이 경우에, 도 3에 나타나 있는 바와 같이, 접속이 선형으로 증가되지 않고 증가하는 PE의 수에 관해 가파르게 증가된다.
메모리의 공유 시스템은, 미국특허 5,471,592, "Multi-Processor with crossbar link of processors and memories" 이전에는, 대표적으로 SIMD(single instruction multiple data stream) 또는 MIMD(multiple instruction multiple data stream) 방식하에서 작동하는데 사용되었다. 그때부터, 복잡한 어플리케이션 실현을 위해 그 양쪽의 기능을 포함한 메모리 시스템이 필요하였다. 이러한 구현을 지원하는 기본적 기술이 많이 제안되고 있다.
이 경우, 데이터를 전송하는 것이 아니고, PE와 메모리의 접속처를 변경함으로써 효율적인 멀티 PE처리를 실현하고 있다. 일반적으로, 다음 3개의 형태의 접속, 즉
- 메모리 전체를 액세스할 수 있는 글로벌 접속,
- 특정의 PE에 접속 가능한 로컬 접속,
- PE의 실행 명령을 전송하는 명령 전송 경로를 갖는다.
크로스바 스위치 구성은, 설치된 메모리들의 각각에 각각 접속된 수직 접속을 우선적으로 하기 위한 기구를 갖는다. 이 접속은, 라운드 로빈 방식으로 결정한다.
이러한 방법은, 그렇지만, 대단히 많은 구성된 PE를 대단히 많은 크로스바 접속했을 경우를 고려하지 않고 있다. 이러한 문제점을 처리하기 위해서 대응책을 제안하지 않았다.
도 4a, 4b에 나타나 있는 바와 같이, PE의 수를 증가시키는 이들 경로의 증가를 최소화하기 위해서 데이터 전송로의 계층적 구조를 제안하였다. 이러한 대책은, 상기 계층적 구조를 지원하는 접속 포트 설치 등의, 데이터 전송에 관련되지 않은 불필요한 특징들을 추가할 필요가 있다.
본 발명은, 상기의 경우를 감안하여, 복수의 프로세서를 메모리들을 거쳐서 효율적 스케일러블 방식에 접속 확장하는 것이 가능한 공유 메모리 장치를 제공한다.
본 발명을 실행할 때, 본 발명의 일 실시예에 따른 공유 메모리 장치는, 복수의 프로세서 엘리먼트와, 상기 복수의 프로세서 엘리먼트에 의해 액세스 가능한 복수의 메모리 모듈과, 상기 복수의 프로세서 엘리먼트 중 특정한 프로세서 엘리먼트만이 상기 복수의 메모리 모듈 중 특정한 메모리 모듈에 액세스 가능한 접속장치를 구비하고, 상기 복수의 프로세서 엘리먼트가, 상기 접속장치를 거쳐서 적어도 하나의 메모리 모듈로 각각 구성된 복수의 메모리 시스템을 액세스 가능하고, 다른 프로세서 엘리먼트에 의해 액세스 가능한 상기 복수의 메모리 시스템은, 다른 프로세서 엘리먼트에 의해 액세스되는 메모리 모듈을 일부 공유한다.
바람직하게는, 상기 복수의 메모리 시스템은, 서로 가깝게 위치된 프로세서 엘리먼트들이 상기 공유 메모리 모듈에 액세스 가능하도록 구성된다.
바람직하게는, 본 발명에 따른 상기 공유 메모리 장치는, 어느 하나의 메모리 모듈에 동시에 복수의 프로세서 엘리먼트로부터 액세스 요구의 우선순위를 결정하고, 그 우선순위로 상기 요구하는 프로세서 엘리먼트들이 당해의 메모리 모듈을 액세스하게 하는 조정 회로를 더 구비한다.
바람직하게는, 본 발명의 공유 메모리 장치는, 외부 엔터티와 통신하고, 상기 복수의 메모리 모듈로의 액세스를 제어하는 콘트롤러를 더 구비하고, 상기 콘트롤러는, 상기 접속장치를 거쳐서 모든 메모리 모듈에 액세스가능하다.
본 발명의 다른 실시예에 따른 공유 메모리 장치는, 복수의 프로세서 엘리먼트와, 복수의 메모리 모듈과, 그 복수의 프로세서 엘리먼트 중 특정한 프로세서 엘리먼트가 복수의 메모리 모듈 중 특정한 메모리 모듈에 액세스 가능한 접속장치와, 외부 엔터티와 통신하고, 상기 복수의 메모리 모듈로의 액세스를 제어하는 콘트롤러를 각각 구비한 복수의 공유 메모리 디바이스를 갖고, 상기 복수의 프로세서 엘리먼트는, 상기 접속장치를 거쳐서 적어도 하나의 메모리 모듈로 각각 구성된 복수 의 메모리 시스템을 액세스 가능하고, 상기 다른 프로세서 엘리먼트에 의해 액세스가능한 상기 복수의 메모리 시스템 각각은, 상기 복수의 메모리 모듈이 다른 프로세서 엘리먼트에 의해 부분적으로 공유되어 액세스되게 하고, 상기 복수의 공유 메모리 디바이스의 콘트롤러는 버스 구성에 의해 접속되어 있다.
본 발명의 또 다른 실시예에 따른 공유 메모리 장치는, 복수의 프로세서 엘리먼트와, 상기 복수의 프로세서 엘리먼트에 의해 액세스 가능한 적어도 하나의 메모리 모듈로 각각 이루어진 복수의 메모리 시스템과, 그 복수의 프로세서 엘리먼트와 상기 복수의 메모리 모듈에 접속된 복수의 인터페이스를 구비하고, 상기 복수의 프로세서 엘리먼트는, 적어도 하나의 메모리 모듈로 각각 구성된 상기 복수의 메모리 시스템을 액세스 가능하고, 다른 프로세서 엘리먼트에 의해 액세스가능한 상기 복수의 메모리 시스템 각각은, 상기 복수의 메모리 모듈이 상기 다른 프로세서 엘리먼트에 의해 부분적으로 공유되어 액세스되게 하고, 상기 버스 배선은 상기 복수의 메모리 시스템 위에 매핑되어 있다.
바람직하게는, 상기 복수의 메모리 인터페이스는, 상기 복수의 메모리 시스템을 가로질러 상기 복수의 프로세서 엘리먼트에 대향하게 배치되고, 상기 복수의 메모리 시스템을 구성하는 상기 복수의 메모리 모듈은, 상기 복수의 메모리 인터페이스가 상기 복수의 프로세서 엘리먼트에 대향 배치된 제1방향에 대략 직교한 제 2 방향으로 병렬로 배치되고, 상기 프로세서 엘리먼트와, 상기 복수의 메모리 인터페이스 및 상기 복수의 메모리 모듈은, 상기 복수의 메모리 시스템 위에 제1방향 및 제2방향으로 매트릭스 모양으로 배치된 접속 배선에 의해 접속되어도 된다.
바람직하게는, 본 발명의 공유 메모리 장치는, 상기 제2방향으로 배선된 공통 버스를 더 구비하여도 된다.
상술한 본 발명에 의하면, 복수의 프로세서 엘리먼트는, 메모리 시스템을 구성하는 메모리 모듈에 접속장치에 의해 액세스한다. 이 때, 다른 프로세서 엘리먼트에 의해 액세스가능한 메모리 시스템 각각은, 다른 프로세서 엘리먼트에서 부분적으로 공유되어 액세스될 수 있다.
본 발명의 메모리 장치는, 복수의 프로세서 엘리먼트를 메모리를 거쳐서 효율적으로 스케일러블 방식으로 접속하도록 구성된다.
이하, 본 발명의 바람직한 실시예를 첨부도면을 참조하여 설명한다.
도 5는, 본 발명을 구현하는 공유 메모리 장치의 시스템 구성도다.
도 5의 공유 메모리 장치(10)는, 다이렉트 메모리 액세스(DMA) 콘트롤러(11)와, 복수(도 5에서는 16)의 PE코어(12-0∼12-15)와, 일부 겹친 멀티포트장치(이하, 오버랩 멀티포트장치라고 한다)(13)와, 복수(예를 들면, 64개)의 메모리 모듈로서의 메모리 뱅크(예를 들면, SRAM뱅크) (14-0∼14-63), 및 조정 회로(15)를 가진다.
도 5의 공유 메모리 장치(10)에 있어서, 메모리 뱅크 14-0∼14-63은 인접하는 8뱅크에 의해 각각 형성되는 복수의 메모리 시스템 M0∼M15로 구분되어 있다. 예를 들면, 메모리 시스템M0은 8개의 메모리 뱅크 14-0∼14-7에 의해 형성되어 있다. 메모리 시스템M0에 인접하는 메모리 시스템M1은, 메모리 시스템M0의 4개의 메모리 뱅크 14-4∼14-7을 공유해서 8개의 메모리 뱅크 14-4∼14-11에 의해 형성되어 있다. 마찬가지로, 메모리 시스템M1에 인접하는 메모리 시스템M2은, 메모리 시스템M1의 4개의 메모리 뱅크14-8∼14-11을 공유해서 8개의 메모리 뱅크14-8∼14-15에 의해 형성되어 있다.
이러한 구성에서, 메모리 시스템M3∼M15는, 인접하는 메모리 시스템의 4개의 메모리 뱅크를 공유하는 형태로 8개의 메모리 뱅크로 각각 형성된다.
메모리 시스템M15만 4개의 메모리 뱅크로 형성되어 있다.
도 5의 공유 메모리 장치(10)에 있어서, 각 PE코어 12-0∼12-15는, 예를 들면 8뱅크(16kByte)씩 액세스 가능해진다. 그 PE코어12-0∼12-15의 액세스 가능한 각 메모리 뱅크는, 서로 인접한 것등 복수의 PE간에 8kByte가 공유되어 있다. 이것은 완전 크로스바 접속 설정이 아니다. 메모리 뱅크의 일부가 접속되어 있지 않으면, 임의의 주어진 SRAM뱅크를 액세스하려고 하는 경합은 조정에 의해 해결된다.
직접 액세스 가능한 메모리 뱅크들을 초과해서의 SRAM뱅크에 동시 액세스하려고 하는 어떤 하나의 PE코어가 효율이 저하할 수 있지만, 그러한 그 공유 메모리 뱅크의 수는, 상기 예측못하는 경우가 드물게 일어나도록 확립되어도 된다. 이것에 의해, 이 시점에서 어떠한 데이터 전송 효율도 전체의 시스템 효율의 저하의 원인이 되는 것을 막을 수 있다.
도 6은, 본 발명을 구현하는 공유 메모리 장치의 신호 경로의 일반적인 접속을 도시한 개략도이다.
도 6에 있어서는, 단순화 및 설명을 위해, 각 메모리 시스템이 4개의 메모리뱅크로 구성하고 있다.
메모리 시스템M0은 메모리 뱅크14-0∼14-3에 의해 형성되고, 메모리시스템M1은 메모리 뱅크14-2∼14-5에 의해 형성되고, 메모리 시스템M2은 메모리 뱅크14-4∼14-7에 의해 형성되고, 메모리 시스템M3은 메모리 뱅크14-6∼14-9에 의해 형성되어 있다.
도 6의 공유 메모리 장치(10A)는, 각 PE코어(12-0∼12-3)이 4개의 메모리 뱅크에 액세스하는 경로가 존재한다. 임의의 주어진 쌍의 각 PE코어가 2개의 메모리 뱅크를 공유하는 경우, PE코어(12-n)는 메모리 뱅크MEM(2×n), MEM(2×n+1), MEM(2×n+2), MEM(2×n+3)에 액세스하고, PE코어12-n과 12-n+1는, 이 사이에 MEM(2×n+2) 및 MEM(2×n+3)을 공유한다.
도 6의 공유 메모리 장치(10A)에 있어서, DMA콘트롤러(11)는, 오버랩된 멀티포트 디바이스(13)를 통해서 모든 메모리 뱅크14-0∼14-9에 대하여 액세스한다.
PE코어12-0은, 메모리 뱅크14-0∼14-3에 대하여 액세스가능하다.
PE코어12-1은, 메모리 뱅크14-2∼14-5에 대하여 액세스가능하다.
PE코어12-2는, 메모리 뱅크14-4∼14-7에 대하여 액세스가능하다.
PE코어12-3은, 메모리 뱅크14-6∼14-9에 대하여 액세스가능하다.
본 발명의 상기 실시예에 있어서, PE코어가 최초에 처리하는 외부로부터의 데이터 전송은, DMA콘트롤러(11)에 의해 실현된다. 이하, DMA 콘트롤러(11)를 사용한 데이터 전송방법을 실행하기 위한 전형적인 방법을 설명한다.
외부로부터의 데이터를 특정한 메모리 뱅크에 전송하거나 또는 특정한 메모리 뱅크의 데이터를 외부로 출력하는 경우, DMA콘트롤러(11)에 PE코어12-0∼12-3 중 하나가 데이터 전송 요구를 보낸다. 다음에, DMA콘트롤러(11)는, 지정된 어드레스에의 데이터 전송 요구를 조정 회로(15)에 전달하고, 전송 허가를 기다린다.
그 전송 허가가 조정 회로(15)로부터 내리면, DMA콘트롤러(11)는, 외부 데이터 버스와 특정한 메모리 뱅크를 접속한다. DMA콘트롤러(11)는, 외부 데이터버스와 메모리 뱅크간의 데이터 송신을 하도록 상기 지정된 어드레스를 순차적으로 출력하면서 데이터의 전송을 제어하도록 진행한다.
PE간에 어떻게 데이터 공유와 전송하는지를 설명한다. 도 6에 있어서, PE코어12-0의 입력 데이터는, 메모리 뱅크14-0에 놓인다. PE코어12-0은 메모리 뱅크14-0의 내용을 읽어서 처리를 행한다. 메모리 뱅크14-2와 14-3에 그 처리 결과를 출력한다.
유효한 데이터를 메모리 뱅크14-2 또는 메모리 뱅크14-3에 출력한 후, PE코어12-0은 메모리 뱅크14-2의 특정 어드레스A-1의 유효 확인 비트를 온으로 한다.
PE코어12-1은, 자신의 처리가 완료한 후, PE코어12-0이 어드레스A-1을 온으로 하고 있는 것인가 아닌가를 판단하기 위해 검사한다. 어드레스 A-1이 온이 면, 메모리 뱅크14-2 또는 14-3으로부터의 데이터를 판독하기 시작하여 연산을 한다.
PE코어12-1은, 메모리 뱅크14-2와 14-3에 두어진 데이터를 입력하여 처리하고, 그 처리 결과를 메모리 뱅크14-4에 출력한다. PE코어12-2는, 자신의 처리가 완료한 후, DMA콘트롤러(11)에 대하여 외부에의 데이터 전송 요구를 행한다. 다음에, DMA콘트롤러(11)는 메모리 뱅크14-4의 유효 데이터를 외부 버스를 경유해서 외부로 출력한다.
PE코어12-0∼12-3는, 다음과 같이 메모리 뱅크들에 또 메모리 뱅크들로부터 데이터를 전송한다: 즉, 각 PE코어가 조정 회로(15)에 데이터 전송 요구 어드레스를 전달한다. 다음에, 조정 회로(15)는, 다른 PE코어와 DMA콘트롤러의 우선순위를 라운드 로빈(round-robin) 방식으로 결정하고, 그 요구하는 PE코어에 대하여 전송 허가를 발행한다.
도 7은, PE(n)과 PE(n+1)에 있어서의 메모리 뱅크 MEM(2n)에의 액세스 조정의 처리를 구성하는 단계들의 흐름도다. 이하, 액세스 조정 처리방법을 설명한다. 또한, 여기에서는 참조문자 "PE"는 PE코어를 나타낸다.
칩의 리셋트 직후 그 처리를 시작한다. 스텝ST1에서는, PE(n)의 MEM(2n)에 대한 액세스 요구를 확인한다. 요구가 없는 경우에는 스텝ST6로 진행하여 PE(n+1)의 MEM(2n)에의 액세스 요구를 확인한다.
스텝ST1에서는 PE(n)의 MEM(2n)에 대한 액세스 요구가 있던 경우에는, 스텝ST2로 진행한다. 스텝ST2에서는, PE(n)에 MEM(2n)에 대한 액세스 허가를 주고, PE(n+1)에는 MEM(2n)에 대한 액세스 거부를 행한다.
스텝ST3에서는, 소정의 시간을 카운트하는 타이머를 초기화한다. 그 초기화 후, 타이머는 카운트다운을 시작한다. 스텝ST4에서는, 다시 PE(n)의 MEM(2n)에 대한 액세스 요구가 있었는지를 확인한다. 스텝ST5에서 타이머의 카운트로부터 타임아웃이 검출되지 않는 경우에는, PE(n)의 MEM(2n)에 대한 액세스 요구 확인을 반복한다. 스텝ST5에서 타임아웃이 검출된 경우에는 스텝ST6로 이행한다.
스텝ST6와 그 이후의 스텝들도 상술한 스텝과 같다. 스텝ST6에서는, PE(n+1)의 MEM(2n)에 대한 액세스 요구를 확인한다. 요구가 없는 경우에는, 다시 스텝ST1로 진행하여 PE(n)의 MEM(2n)에의 액세스 요구를 확인한다.
스텝ST6에서 PE(n+1)의 MEM(2n)에 대한 액세스 요구가 있었던 경우에는, 스텝ST7로 진행한다. 스텝ST7에서는, PE(n+1)에 MEM(2n)에 대한 액세스 허가를 주고, PE(n)에는 MEM(2n)에 대한 액세스 거부를 행한다.
스텝ST8에서는, 소정의 시간을 카운트하는 타이머를 초기화한다. 그 초기화 후, 타이머는 카운트다운을 시작한다. 스텝ST9에서는, 다시 PE(n+1)의 MEM(2n)에 대한 액세스 요구를 확인한다. 스텝ST10에서 타이머의 카운트로부터 타임아웃이 검출되지 않는 경우에는, PE(n+1)의 MEM(2n)에 대한 액세스 요구 확인을 반복한다. 스텝ST10에서 타임아웃이 검출된 경우에, 시작 상태로 복귀한다.
도 8은, 하나의 메모리 뱅크에 3개 이상의 PE코어가 액세스 가능한 경우의 공유 메모리장치를 도시한 개략도이다.
다음에 하나의 메모리 뱅크에 3개 이상의 PE코어가 액세스 가능한 경우를 설명한다.
도 8의 공유 메모리 장치(10B)는, 메모리 시스템M0이 6개의 메모리 뱅크 14-0∼14-5로 이루어져 있다.
메모리 유닛(즉, 메모리 뱅크)측에서 본 각 메모리 유닛에 액세스 가능한 PE코어 등의 연산 유닛의 수는 일정할 필요는 없다.
이 도 8의 셋업에서는, PE코어 12-0은 메모리 뱅크 14-0∼14-5에 액세스 가능하기도 하다.
메모리 뱅크 14-1은 3개의 PE코어 12-0,12-1,12-2에 의해 액세스가능하다.
메모리 뱅크 14-6은, PE코어 12-2, 12-3에 의해 액세스가능하다.
상기 셋업은, 단순한 오버랩 양식을 특징으로 하지 않는다. 처리 유닛(즉, PE코어) 4개이고 메모리 유닛(메모리 뱅크)이 10개의 경우를 나타냈지만, 이들의 수는 본 발명을 제한하는 것이 아니고, 설명 목적을 위해 특정하게 주어진다.
도 9는, 부분 공유 멀티포트 PE 기구의 계층적 확장 방법을 설명하기 위한 개략도이다.
다음에 DMA전송의 보틀넥(bottleneck)이 되었을 경우의 계층적 확장 방법을 설명한다.
PE코어들간에 대량의 데이터 전송시의 충돌로 인한 어떠한 성능 저하도 대폭 완화될 수 있다. 그렇지만, 외부와 메모리 뱅크들 사이에서의 데이터전송은 PE코어가 복수의 기능을 동시에 처리하고 있는 경우에는 충돌할 확률이 증대할 수 있다.
그러한 경우는, 도 8에 나타나 있는 바와 같이PE어레이를 계층적 구조로 놓음으로써 설명적으로 처리된다.
도 5의 기본구성과 마찬가지로, PE어레이를 16개의 PE와 1개의 DMA콘트롤러로 각각 구성된 층들로 이루어진다. 이 층들은, AXI(Advanced Extensible Interface)버스(20)로 상호연결되어 메모리장치(100)를 구성한다.
이러한 구성에서 중요한 것은, AXI 접속된 PE 층들의 수를 최소화하는데 있다. 본 발명은, 상기 층 수를 최소화하는 것에 기여하는 장치를 제안한다.
도 10은, 메모리 뱅크들이 물리적으로 버스 배선을 매핑하는(버스 매핑 메모리) 구성을 도시한 도면이다.
도 11 및 도 12는, 일반적인 버스 매핑 메모리에 있어서의 배선 구성을 나타낸 것이다. 도 11은 상기 버스 매핑 메모리의 판독 블록이 어떻게 일반적으로 배선되는지를 개략적으로 나타낸 것이다. 도 12는 상기 버스 매핑 메모리의 기록 블록이 어떻게 일반적으로 배선되는지를 개략적으로 나타낸 것이다.
다음에 버스 매핑 메모리의 구성과 액세스가능한 범위에 대해서, 도 10을 참조하여 설명한다.
하나 이상의 메모리 뱅크로 각각 구성된 메모리 시스템M00∼M15(도시됨)을 메모리를 구성하는 유닛들이다. 이 버스 구조는 메모리 시스템 상에 배치된다. 버스들은, 미사용된 메모리 뱅크들 상의 배선층들로 구성된다.
이 메모리 시스템M00∼M15를 메모리 인터페이스 IF00∼IF07의 양측에 대칭으로 배치한다. PE코어는 이 메모리 시스템M00∼M15의 외측의 양측에 배치한다. 2 개의 PE, 2개의 메모리 시스템(메모리 뱅크) 및 1개의 메모리인터페이스가 최소 시스템 구성이 된다.
이 시스템은 완전 스케일러블이고, 가로방향으로 무한히 확장할 수 있다. 도 10은 최소구성을 8개 열거하여 구성한 16-PE(PE00∼PE15)의 시스템 셋업을 나타낸 것이다.
메모리 시스템M00,M02,M04,M06,M08,M10,M12,M14은 도 10에 설정한 직교좌표계의 X방향(제2방향)으로 병렬로 배치되어 있다.
마찬가지로, 메모리 시스템M01,M03,M05,M07,M09,M11,M13,M15은 도 10에 설정한 직교좌표계의 X방향(제2방향)으로 병렬로 배치되어 있다.
그리고, 도 10에 설정한 직교좌표계의 Y방향(제1방향)으로, 메모리인터페이스 IF00에 대해서 메모리 시스템M00과 M01이 대칭으로 배치된다. 메모리 시스템M00의 Y방향에 인접하게 PE00이 배치되고, 메모리 시스템M01의 Y방향에 인접하게 PE01이 배치되어 있다. 또한, 메모리 인터페이스 IF00은 메모리 시스템M00과 M01로 공용하도록 배치하는 것이 가능하다.
직교좌표계의 Y방향(제1방향)에, 메모리 인터페이스IF01에 대해 메모리 시스템M02와 M03이 대칭적으로 배치된다. 메모리 시스템M02의 Y방향에 인접해서 PE02가 배치되고, 메모리 시스템M03의 Y방향에 인접해서 PE03이 배치되어 있다. 또한, 메모리 인터페이스 IF01은 메모리 시스템M02와 M03로 공용하도록 구성하는 것이 가능하다.
직교좌표계의 Y방향(제1방향)에, 메모리 인터페이스IF02에 대해서 메모리 시스템M04와 M05이 대칭으로 배치된다. 메모리 시스템M04의 Y방향에 인접해서 PE04가 배치되고, 메모리 시스템M05의 Y방향에 인접해서 PE05가 배치되어 있다. 또한, 메모리 인터페이스IF02는 메모리 시스템M04와 M05로 공용하도록 구성하는 것이 가능하다.
직교좌표계의 Y방향(제1방향)에, 메모리 인터페이스IF03에 대해서 메모리 시스템M06과 M07이 대칭으로 배치된다. 메모리 시스템M06의 Y방향에 인접해서 PE06이 배치되고, 메모리 시스템M07의 Y방향에 인접해서 PE07이 배치되어 있다. 또한, 메모리 인터페이스 IF03은 메모리 시스템M06과 M07로 공용하도록 구성하는 것이 가능하다.
직교좌표계의 Y방향(제1방향)에, 메모리 인터페이스IF04에 대해서 메모리 시스템M08과 M09이 대칭으로 배치된다. 메모리 시스템M08의 Y방향에 인접해서 PE08이 배치되고, 메모리 시스템M09의 Y방향에 인접해서 PE09가 배치되어 있다. 또한, 메모리 인터페이스 IF04는 메모리 시스템M08과 M09로 공용하도록 구성하는 것이 가능하다.
직교좌표계의 Y방향(제1방향)에, 메모리 인터페이스IF05에 대해서 메모리 시스템M10과 M11이 대칭으로 배치된다. 메모리 시스템M10의 Y방향에 인접해서 PE10이 배치되고, 메모리 시스템M11의 Y방향에 인접해서 PE11이 배치되어 있다. 또한, 메모리 인터페이스 IF05는 메모리 시스템M10과 M11로 공용하도록 구성하는 것이 가능하다.
직교좌표계의 Y방향(제1방향)에, 메모리 인터페이스IF06에 대해서 메모리 시스템M12와 M13이 대칭으로 배치된다. 메모리 시스템M12의 Y방향에 인접해서 PE12이 배치되고, 메모리 시스템M13의 Y방향에 인접해서 PE13이 배치되어 있다. 또한, 메모리 인터페이스 IF06은 메모리 시스템M12와 M13로 공용하도록 구성하는 것이 가능하다.
직교좌표계의 Y방향(제1방향)에, 메모리 인터페이스IF07에 대해서 메모리 시스템M14와 M15이 대칭으로 배치된다. 메모리 시스템M14의 Y방향에 인접해서 PE14이 배치되고, 메모리 시스템M15의 Y방향에 인접해서 PE15이 배치되어 있다. 또한, 메모리 인터페이스IF07은 메모리 시스템M14와 M15로 공용하도록 구성하는 것이 가능하다.
다음에, 버스 매핑 메모리의 액세스 범위에 대해서 도 10을 참조하여 설명한다. 각 PE는 종방향(Y방향, 또는 제1방향)의 2개의 메모리 뱅크와 이들 2개의 메모리 뱅크에 횡방향으로 인접한 메모리 뱅크에 액세스가능하다. 즉, 직접 액세스가능한 메모리 뱅크는 메모리 뱅크 어레이의 횡방향(X방향, 또는 제2방향)의 양단의 PE00,PE01,PE14,PE15에서는 4개, 그 이외PE02∼PE13은 6이 된다.
이외의 메모리 시스템의 메모리 뱅크는 공통의 횡 버스CBSL을 사용한 각 EP에 의해 액세스 한다. 공통의 횡 버스CBSL에의 액세스는 DMA콘트롤러를 사용해도 된다. 이 공통의 횡 버스CBSL을 사용하는 것에 의해, 각 EP가 간접적으로 모든 메모리 뱅크에 대하여 액세스 가능하다.
공통의 횡 버스CBSL을 사용하는 경우에는, 전 PE00∼PE15로부터 액세스가 집중하는 것으로 버스 구조의 주파수 대역이 한정될 수 있다.
그렇지만, 다수의 PE로 구성되는 멀티 프로세서 환경에서는, 각 PE가 모두의 메모리 영역을 액세스하는 것은 드문 경우이다. 대부분의 경우에, 각 PE는, 한정된 메모리 영역에만 액세스하여 할당된 태스크를 처리한다.
이러한 의미에서, 본 구성은 멀티프로세서 환경의 특징을 살리고, 스케일라빌리티를 확실하게 하고 배선 자원의 사용을 감소하는 시스템을 구성한다.
이하, 버스 매핑 메모리가 일반적으로 어떻게 배선되었는가를 도 11 및 도 12를 참조하여 설명한다.
상기한 바와 같이, 메모리 시스템(메모리 뱅크) 위에 버스들을 배치한다. 이와 같이 배선된 메모리 시스템들(뱅크들)은 "짝수" 및 "홀수" 뱅크의 2종류로 분류된다.
하층의 메모리 시스템 전체에 대해 공통이고, 상층의 버스 부분은 그 메모리 시스템을 상기 "짝수" 및 "홀수" 뱅크로 나뉜다. 그 2종류의 메모리 뱅크는, 횡으로 교대로 배치된다.
상기 "짝수"와 "홀수"의 차이는, 횡방향의 배선이 배치되는 곳에 존재한다. 상기한 바와 같이, 본 시스템에서는, 각 PE가 횡방향(X방향)에의 인접 메모리 뱅크에의 액세스가 가능하다. 일 메모리 뱅크로부터 다른 메모리 뱅크로 횡방향으로 데이터를 이동시키는 버스 세그먼트들은, 2개의 인접 뱅크들 상에 동일한 위치에 배치하면 물리적으로 충돌한다. 그 버스 구성이 "짝수"와 "홀수" 세그먼트로 이루어지는 경우, 그들은 인접 메모리 뱅크들 사이에서 충돌하지 않는다.
상기 설명은, 본 발명에 따른 전형적인 메모리 장치의 기본 구성에 대한 것 이었다. 버스의 배선 방법에 의해 여러 가지 다른 변형이어도 된다.
그러한 일 변형은, 메모리 인터페이스의 반대측에 액세스하기 위해 버스를 공유한 시스템이다. 이 경우, 배선에 필요한 영역은 감소된다.
도 11 및 도 12에 나타나 있는 바와 같이, 또 다른 변형은, 복수의 판독 및 기록 블록을 포함하는 시스템을 구현하는 것을 포함한다. 이러한 설정은 버스 성능을 향상시키는데 도움이 된다.
도 11에 있어서, 도면부호 30은 셀렉터를 나타내고, 40은 판독 포트, 50은 기록 포트, 60은 데이터 흐름을 나타낸다. 상기 변형 중 어떤 하나는, 본 시스템을 구현하는 허용 가능한 비용 및 사용자가 요구한 성능에 따라 채용되어도 된다.
이상에서 설명한 바와 같이, 본 발명의 일 실시예의 공유 메모리장치는, 복수의 프로세서 엘리먼트 12-0∼12-15와, 그 복수의 프로세서 엘리먼트에 의해 액세스가능한 복수의 메모리 모듈 14-0∼14-63과, 복수의 프로세서 엘리먼트 중에서 특정한 프로세서 엘리먼트가 복수의 메모리 모듈 중에서 특정한 메모리 모듈에 액세스 가능한 접속장치(13)를 가지고, 상기 복수의 프로세서 엘리먼트는, 접속장치를 거쳐서 적어도 하나의 메모리 모듈로 각각 구성된 복수의 메모리 시스템M0∼M15을 액세스 가능하고, 다른 프로세서 엘리먼트에 의해 액세스 가능한 복수의 메모리 시스템 각각은, 다른 프로세서 엘리먼트에서 그 복수의 메모리 모듈이 부분적으로 공유 및 액세스될 수 있다. 바람직하게는, 상기 공유 메모리 장치는, 임의의 하나의 메모리 모듈을 액세스하기 위해 복수의 프로세서 엘리먼트로부터의 동시 요구들의 우선 순위를 결정하고, 그 우선 순위가 결정된 순서로 당해의 메모리 모듈을 상기 요구하는 프로세서 엘리먼트가 액세스하게 하는 조정회로를 더 구비하기도 한다. 이들 구성은, 다음의 주요 효과를 제공한다:
각 PE가 이용하는 임의의 작업용 메모리 모듈을 PE간의 데이터전송에 이용하면, 통신을 위한 메모리 모듈들은 삭감되어도 된다. 해야할 모든 것은, 메모리에의 액세스 방향을 변경하는데 있다. 통신을 위해 필요한 시간은 제로에 가깝다.
PE들의 수가 증가하는 경우, PE들과 메모리들간의 접속 자원의 양은 PE의 수에 관해 선형으로 증가한다. 이것에 의해, 필요한 만큼의 많은 PE를 스케일러블하게 설치 가능하다.
모두의 PE가 모든 메모리 모듈에 액세스 가능하게 하는 경우는, 자원을 사용한 실질적인 양에도 불구하고 불균형하게 거의 효과들이 나타나지 않기도 한다. 그렇지만, 상술한 실시예는, PE들에 의해 메모리들로의 제한된 액세스 시도의 조정을 포함한다. 이것에 의해, PE들에 의해 임의의 하나의 메모리에의 액세스 경합 조정이 손쉬워진다.
또한, 버스 매핑 메모리에 본 발명을 적용해도, 효과는 마찬가지로 유효하다.
즉, 상기 시스템 구성은, 완전하게 스케일러블하다.
PE들의 수가 증가하는 것에 따라서 크게 증대하는 배선량 및 소비 전력의 2가지 요소를 감소시킬 수 있다.
PE수가 증가해도 주파수 대역이 저하하지 않는다.
당업자는, 첨부된 청구범위 또는 그의 동등한 것 내에 있는 한, 여러 가지 변형, 조합, 부조합 및 변경이 설계 요구사항 및 다른 요인에 따라 일어나기도 한다는 것을 알아야 한다.
도 1은 멀티프로세서의 일반적인 아키텍처를 도시한 개략도,
도 2는 크로스바를 사용한 멀티프로세서 셋업의 일반적인 아키텍처를 도시한 개략도,
도 3은 프로세서 엘리먼트(PE) 확장의 과제를 설명하기 위한 개략도,
도 4a 및 4b는 PE를 확장시의 데이터 전송로의 증대를 최소화하기 위해서 포트 구성을 사용한 일반적인 구성을 나타낸 개략도,
도 5는 본 발명을 구현하는 공유 메모리 장치의 시스템 구성을 나타낸 개략도,
도 6은 본 발명을 구현하는 공유 메모리 장치의 신호 경로의 일반적인 접속을 도시한 개략도,
도 7은 PE(n)과 PE(n+1)에 있어서의 메모리 뱅크 MEM(2n)에의 액세스를 조정하는 액세스 조정처리를 구성한 단계들의 흐름도,
도 8은 하나의 메모리 뱅크에 3개 이상의 PE코어가 액세스가능한 공유 메모리 장치를 도시한 개략도,
도 9는 부분 공유 멀티포트 PE 기구가 계층적으로 확장되는 방법을 설명하기 위한 도면,
도 10은 메모리 뱅크가 물리적으로 버스 배선에 의해 매핑하는 방법(버스 매핑 메모리)을 도시한 개략도,
도 11은 버스 매핑 메모리의 판독 블록들을 일반적으로 배선하는 방법을 도시한 개략도,
도 12는 버스 매핑 메모리의 기록 블록들을 일반적으로 배선하는 방법을 도시한 개략도이다.

Claims (12)

  1. 복수의 프로세서 엘리먼트와,
    개재하는 홀수 및 짝수 메모리모듈을 포함하고, 상기 복수의 프로세서 엘리먼트에 의해 액세스가능하도록 구성된 복수의 메모리 모듈과,
    상기 복수의 메모리 모듈중 특정한 메모리 모듈 및 다른 메모리 모듈을 일부 공유하고 액세스하도록, 상기 복수의 프로세서 엘리먼트중 특정한 프로세서 엘리먼트가 상기 복수의 메모리 모듈중 상기 특정한 메모리 모듈에 액세스하도록 하게 하고, 상기 복수의 프로세서 엘리먼트로부터 상기 특정한 프로세서 엘리먼트 이외의 프로세서 엘리먼트가 상기 복수의 메모리 모듈 중 다른 메모리 모듈에 액세스가능하도록 구성된 일부 겹친 멀티포트장치와,
    라운드 로빈 방식에 근거하여 상기 복수의 메모리 모듈 중 어느 하나에 액세스하도록 상기 복수의 프로세서 엘리먼트와 콘트롤러로부터의 동시 요구를 우선순위를 결정하여 승인하도록 구성된 조정 회로, 및
    외부 엔터티와 통신하고, 상기 복수의 메모리 모듈로의 액세스를 제어하도록 구성된 콘트롤러를 포함하고,
    상기 복수의 프로세서 엘리먼트는 각 메모리 시스템이 상기 복수의 메모리 모듈로부터의 적어도 하나의 공유 메모리 모듈에 의해 구성되도록 상기 일부 겹친 멀티포트장치를 통해 복수의 메모리 시스템에 액세스하게 되고,
    상기 복수의 메모리 모듈로부터의 상기 공유 메모리 모듈 각각은 상기 복수의 메모리 시스템의 다중 메모리 시스템에 의해 부분적으로 사용되도록 구성되고,
    각 메모리 시스템은 상기 공유 메모리 모듈이 적어도 하나의 짝수 메모리 모듈과 적어도 하나의 홀수 메모리 모듈을 포함하도록 구성되고,
    상기 콘트롤러는 상기 일부 겹친 멀티포트장치를 통해 상기 복수의 메모리 모듈로부터 모든 메모리 모듈을 액세스하며,
    상기 콘트롤러는 상기 조정 회로에 데이터를 전송하기 위한 요구를 송신하고, 상기 조정 회로로부터 데이터를 전송하기 위한 승인을 수신하도록 대기하며, 상기 조정 회로로부터 데이터를 전송하기 위한 승인을 수신한 후 데이터 전송을 실행하도록 상기 외부 엔터티와 통신함으로써 상기 복수의 메모리 모듈로의 액세스를 제어하는 것을 특징으로 하는 공유 메모리 장치.
  2. 제 1 항에 있어서,
    상기 복수의 메모리 시스템은, 서로 인접하여 배치된, 상기 복수의 프로세서 엘리먼트로부터, 상기 특정한 프로세서 엘리먼트 이외의 상기 프로세서 엘리먼트가 상기 공유 메모리 모듈을 액세스할 수 있는 방식으로 구성되는 것을 특징으로 하는 공유 메모리 장치.
  3. 제 1 항에 있어서,
    상기 일부 겹친 멀티포트장치는 계층적으로 확장하도록 구성되는 것을 특징으로 하는 공유 메모리 장치.
  4. 복수의 공유 메모리 장치를 포함하고, 각 공유 메모리 장치는
    복수의 프로세서 엘리먼트와,
    개재하는 홀수 및 짝수 메모리 모듈을 포함하고, 상기 복수의 프로세서 엘리먼트에 의해 액세스가능하도록 구성되는 복수의 메모리 모듈과,
    상기 복수의 메모리 모듈중 특정한 메모리 모듈 및 다른 메모리 모듈을 일부 공유하고 액세스하도록, 상기 복수의 프로세서 엘리먼트중 특정한 프로세서 엘리먼트가 상기 복수의 메모리 모듈중 상기 특정한 메모리 모듈에 액세스하도록 하게 하고, 상기 복수의 프로세서 엘리먼트로부터 상기 특정한 프로세서 엘리먼트 이외의 프로세서 엘리먼트가 상기 복수의 메모리 모듈 중 다른 메모리 모듈에 액세스가능하도록 구성된 일부 겹친 멀티포트장치와,
    외부 엔터티와 통신하고, 상기 복수의 메모리 모듈로의 액세스를 제어하도록 구성된 콘트롤러, 및
    라운드 로빈 방식에 근거하여 상기 복수의 메모리 모듈 중 어느 하나에 액세스하도록 상기 복수의 프로세서 엘리먼트와 상기 콘트롤러로부터의 동시 요구를 우선순위를 결정하여 승인하도록 구성된 조정 회로를 포함하고,
    상기 복수의 프로세서 엘리먼트는 각 메모리 시스템이 상기 복수의 메모리 모듈로부터의 적어도 하나의 공유 메모리 모듈에 의해 구성되도록 상기 일부 겹친 멀티포트장치를 통해 복수의 메모리 시스템에 액세스하게 되고,
    상기 복수의 공유 메모리 장치의 콘트롤러들은 버스 배치에 의해 접속되고,
    상기 복수의 메모리 모듈로부터의 상기 공유 메모리 모듈 각각은 상기 복수의 메모리 시스템의 다중 메모리 시스템에 의해 부분적으로 사용되도록 구성되고,
    각 메모리 시스템은 상기 공유 메모리 모듈이 적어도 하나의 짝수 메모리 모듈과 적어도 하나의 홀수 메모리 모듈을 포함하도록 구성되고,
    상기 외부 엔터티와 통신하도록 구성된 상기 콘트롤러는 상기 일부 겹친 멀티포트장치를 통해 상기 복수의 메모리 모듈로부터 모든 메모리 모듈을 액세스할 수 있고,
    상기 콘트롤러는 상기 조정 회로에 데이터를 전송하기 위한 요구를 송신하고, 상기 조정 회로로부터 데이터를 전송하기 위한 승인을 수신하도록 대기하며, 상기 조정 회로로부터 데이터를 전송하기 위한 승인을 수신한 후 데이터 전송을 실행하도록 상기 외부 엔터티와 통신함으로써 상기 복수의 메모리 모듈로의 액세스를 제어하는 것을 포함하는 공유 메모리 장치.
  5. 제 4 항에 있어서,
    상기 복수의 메모리 시스템은, 서로 인접하여 배치된, 상기 복수의 프로세서 엘리먼트로부터, 상기 특정한 프로세서 엘리먼트 이외의 상기 프로세서 엘리먼트가 상기 공유 메모리 모듈을 엑세스할 수 있는 방식으로 구성되는 것을 특징으로 하는 공유 메모리 장치.
  6. 제 4 항에 있어서,
    상기 일부 겹친 멀티포트장치는 계층적으로 확장하도록 구성되는 것을 특징으로 하는 공유 메모리 장치.
  7. 복수의 프로세서 엘리먼트와,
    상기 복수의 프로세서 엘리먼트에 의해 액세스가능하고 개재하는 홀수 및 짝수 메모리 모듈을 포함하는 복수의 메모리 모듈로 구성된 복수의 메모리 시스템과,
    상기 복수의 프로세서 엘리먼트와 상기 복수의 메모리 모듈에 접속된 복수의 메모리 인터페이스와,
    상기 복수의 메모리 모듈중 특정한 메모리 모듈 및 다른 메모리 모듈을 일부 공유하고 액세스하도록, 상기 복수의 프로세서 엘리먼트중 특정한 프로세서 엘리먼트가 상기 복수의 메모리 모듈중 상기 특정한 메모리 모듈에 액세스하도록 하게 하고, 상기 복수의 프로세서 엘리먼트로부터 상기 특정한 프로세서 엘리먼트 이외의 프로세서 엘리먼트가 상기 복수의 메모리 모듈 중 다른 메모리 모듈에 액세스가능하도록 구성된 일부 겹친 멀티포트장치와,
    라운드 로빈 방식에 근거하여 상기 복수의 메모리 모듈 중 어느 하나에 액세스하도록 상기 복수의 프로세서 엘리먼트와 콘트롤러로부터의 동시 요구를 우선 순위를 결정하여 승인하도록 구성된 조정 회로, 및
    외부 엔터티와 통신하고, 상기 복수의 메모리 모듈로의 액세스를 제어하도록 구성되는 콘트롤러를 포함하고,
    상기 복수의 프로세서 엘리먼트는 각 메모리 시스템이 적어도 하나의 공유 메모리 모듈에 의해 형성되도록 상기 복수의 메모리 시스템에 액세스하도록 구성되고,
    버스 배선은 상기 복수의 메모리 시스템과 겹쳐지고, 상기 복수의 메모리 모듈로부터의 상기 공유 메모리 모듈 각각은 상기 복수의 메모리 시스템의 다중 메모리 시스템에 의해 부분적으로 사용되고,
    각 메모리 시스템은 상기 공유 메모리 모듈이 적어도 하나의 짝수 메모리 모듈과 적어도 하나의 홀수 메모리 모듈을 포함하도록 구성되고,
    상기 콘트롤러는 상기 일부 겹친 멀티포트장치를 통해 상기 복수의 메모리 모듈로부터 모든 메모리 모듈을 액세스하며,
    상기 콘트롤러는 상기 조정 회로에 데이터를 전송하기 위한 요구를 송신하고, 상기 조정 회로로부터 데이터를 전송하기 위한 승인을 수신하도록 대기하며, 상기 조정 회로로부터 데이터를 전송하기 위한 승인을 수신한 후 데이터 전송을 실행하도록 상기 외부 엔터티와 통신함으로써 상기 복수의 메모리 모듈로의 액세스를 제어하는 것을 특징으로 하는 공유 메모리 장치.
  8. 제 7 항에 있어서,
    상기 복수의 메모리 인터페이스는, 상기 복수의 메모리 시스템을 가로질러 상기 복수의 프로세서 엘리먼트에 대향하게 배치되고,
    상기 복수의 메모리 시스템을 구성하는 상기 복수의 메모리 모듈은, 상기 복수의 메모리 인터페이스가 상기 복수의 프로세서 엘리먼트에 대향 배치된 제1방향에 직교한 제2방향으로 병렬로 배치되고,
    상기 복수의 프로세서 엘리먼트와, 상기 복수의 메모리 인터페이스 및 상기 복수의 메모리 모듈은, 상기 복수의 메모리 시스템 위에 상기 제1방향 및 상기 제2방향으로 매트릭스 모양으로 배치된 접속 배선에 의해 접속된 것을 특징으로 하는 공유 메모리 장치.
  9. 제 8 항에 있어서,
    상기 제2방향으로 배선된 공통 버스를 더 구비한 것을 특징으로 하는 공유 메모리 장치.
  10. 제7항에 있어서,
    상기 일부 겹친 멀티포트장치는 계층적으로 확장하도록 구성되는 것을 특징으로 하는 공유 메모리 장치.
  11. 삭제
  12. 삭제
KR1020070094568A 2006-09-19 2007-09-18 공유 메모리 장치 KR101549538B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006252390A JP5076418B2 (ja) 2006-09-19 2006-09-19 共有メモリ装置
JPJP-P-2006-00252390 2006-09-19

Publications (2)

Publication Number Publication Date
KR20080026050A KR20080026050A (ko) 2008-03-24
KR101549538B1 true KR101549538B1 (ko) 2015-09-02

Family

ID=39190041

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070094568A KR101549538B1 (ko) 2006-09-19 2007-09-18 공유 메모리 장치

Country Status (4)

Country Link
US (1) US8539167B2 (ko)
JP (1) JP5076418B2 (ko)
KR (1) KR101549538B1 (ko)
CN (1) CN100592282C (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359462B1 (en) 2007-11-21 2013-01-22 Marvell International Ltd. Method and apparatus for programmable coupling between CPU and co-processor
US8478945B2 (en) * 2010-02-01 2013-07-02 International Business Machines Corporation Dynamic management of destage tasks in a storage controller
CN102541803A (zh) * 2011-12-31 2012-07-04 曙光信息产业股份有限公司 数据发送方法和计算机
JP6030951B2 (ja) * 2012-12-28 2016-11-24 ルネサスエレクトロニクス株式会社 半導体装置及び電子装置
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US11379389B1 (en) * 2018-04-03 2022-07-05 Xilinx, Inc. Communicating between data processing engines using shared memory
US11635967B2 (en) * 2020-09-25 2023-04-25 Advanced Micro Devices, Inc. Vertical and horizontal broadcast of shared operands

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68928980T2 (de) 1989-11-17 1999-08-19 Texas Instruments Inc Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern
JPH03177958A (ja) * 1989-12-06 1991-08-01 Nec Corp 情報処理システム
JPH08272672A (ja) * 1995-03-29 1996-10-18 Hitachi Ltd メモリ制御方式
US6122714A (en) * 1997-10-24 2000-09-19 Compaq Computer Corp. Order supporting mechanisms for use in a switch-based multi-processor system
US6055605A (en) * 1997-10-24 2000-04-25 Compaq Computer Corporation Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
JPH11195766A (ja) * 1997-10-31 1999-07-21 Mitsubishi Electric Corp 半導体集積回路装置
JP2001338492A (ja) * 2000-05-26 2001-12-07 Matsushita Electric Ind Co Ltd 半導体装置と制御方法
JP2001344222A (ja) * 2000-05-31 2001-12-14 Oki Electric Ind Co Ltd コンピュータ・システム
US6925643B2 (en) * 2002-10-11 2005-08-02 Sandbridge Technologies, Inc. Method and apparatus for thread-based memory access in a multithreaded processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Basant Kumar Dwivedi, ‘Synthesizing application specific multiprocessor architectures for process networks’, Ph. D. Thesis, Indian Institute of Technology Delhi, 2005.*

Also Published As

Publication number Publication date
KR20080026050A (ko) 2008-03-24
CN100592282C (zh) 2010-02-24
US8539167B2 (en) 2013-09-17
JP2008077152A (ja) 2008-04-03
JP5076418B2 (ja) 2012-11-21
US20080071996A1 (en) 2008-03-20
CN101149727A (zh) 2008-03-26

Similar Documents

Publication Publication Date Title
KR101549538B1 (ko) 공유 메모리 장치
US10282338B1 (en) Configuring routing in mesh networks
US8050256B1 (en) Configuring routing in mesh networks
US7136958B2 (en) Multiple processor system and method including multiple memory hub modules
US8151088B1 (en) Configuring routing in mesh networks
US7587545B2 (en) Shared memory device
US5832291A (en) Data processor with dynamic and selectable interconnections between processor array, external memory and I/O ports
US6757761B1 (en) Multi-processor architecture for parallel signal and image processing
US20070162645A1 (en) Communication system for data transfer between on-chip circuits
KR100951856B1 (ko) 멀티미디어 시스템용 SoC 시스템
WO2002071239A2 (en) Data processing apparatus and system and method for controlling memory access
US20020095550A1 (en) Broadcast system in disk array controller
US20050177674A1 (en) Configurable embedded processor
US9400762B2 (en) Integrated device with memory systems accessible via basic and bypass routes
JP4811212B2 (ja) 共有メモリ装置
JP3086261B2 (ja) マルチプロセッサ・システム用バス構造
US20060248247A1 (en) Apparatus and method for controlling access to a memory
JP5017971B2 (ja) 集積装置
JP5626753B2 (ja) Lsiチップ積層システム
KR102572143B1 (ko) 메모리 클라우드를 위한 메모리 자원 공유 방법 및 이를 이용한 메모리 자원 공유 시스템
Stollon et al. Configurable Bus Arbitration for Communication Between Multiple Concurrent IP Blocks
JPH0660045A (ja) マルチプロセッサ形電子計算機
JPH05250315A (ja) Cpuモジュールおよびマルチプロセッサシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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