KR101366967B1 - 메모리 공유 회로 - Google Patents

메모리 공유 회로 Download PDF

Info

Publication number
KR101366967B1
KR101366967B1 KR1020120062451A KR20120062451A KR101366967B1 KR 101366967 B1 KR101366967 B1 KR 101366967B1 KR 1020120062451 A KR1020120062451 A KR 1020120062451A KR 20120062451 A KR20120062451 A KR 20120062451A KR 101366967 B1 KR101366967 B1 KR 101366967B1
Authority
KR
South Korea
Prior art keywords
memory
processor
buffer
signal
req
Prior art date
Application number
KR1020120062451A
Other languages
English (en)
Other versions
KR20130138925A (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 엘에스산전 주식회사
Priority to KR1020120062451A priority Critical patent/KR101366967B1/ko
Priority to US13/912,064 priority patent/US9218306B2/en
Priority to EP13171403.2A priority patent/EP2674870B1/en
Priority to ES13171403.2T priority patent/ES2658938T3/es
Priority to CN201310233692.XA priority patent/CN103488574B/zh
Publication of KR20130138925A publication Critical patent/KR20130138925A/ko
Application granted granted Critical
Publication of KR101366967B1 publication Critical patent/KR101366967B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Static Random-Access Memory (AREA)
  • Multi Processors (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 일 실시예에 따라 메모리를 공유하기 위한 회로가 개시되며, 상기 회로는 상기 메모리에 연결되는 복수의 단위 프로세서부를 포함하고, 상기 단위 프로세서부는: 상기 메모리와 버퍼링 어드레스 및 데이터 버스를 통해 연결되도록 구성된 버퍼; 및 상기 버퍼에 연결되어 상기 버퍼를 통해 상기 메모리에 액세스하도록 구성된 프로세서를 포함하고, 상기 복수의 단위 프로세서부는 상기 프로세서들의 상기 메모리에 대한 액세스를 위해 어드레스 및 데이터 버스 충돌을 방지하여, 상기 프로세서들이 상기 메모리를 공유하도록 할 수 있다.

Description

메모리 공유 회로{A CIRCUIT FOR MEMORY SHARING}
본 발명은 전력계통의 보호/제어용 제어기로 사용되는 IED(Intelligent Electronics Device)의 전자회로부의 프로세서간 데이터를 고속으로 주고 받기 위하여 사용되는 메모리 공유 회로에 관한 것이다.
전력계통의 보호/제어용 제어기로 사용되는 IED의 경우 계통의 사고를 판단하기 위하여 대부분 전용 수치 연산 프로세서를 내장하고 있거나, IEC61850과 같은 고속 통신을 위한 전용 프로세서를 2개 이상 내장하고 있다. 각 프로세서는 연산, 제어, 주처리등의 역할을 각각 수행하고 있다.
IED는 계통 사고 또는 제어로 인한 동작시 사고 이력, 계통의 파형 저장 및 생성 등의 대용량 데이터의 생산 및 처리를 1msec 이내 혹은 그와 유사한 빠른 속도로 수행하여야 하며 이러한 데이터는 각 프로세서 간에 서로 공유되어야 한다.
이를 위해, 종래에는 메모리 제조 업체에서 제공하는 듀얼 포트 메모리(Dual Port Memory)를 사용해 볼 수 있겠으나, 이러한 듀얼 포트 메모리를 IED 시스템에 적용하는 것엔 몇 가지 문제점이 있다.
이러한 전문 메모리 업체에서 제공하는 듀얼 포트 메모리의 경우 그 용량이 일반적으로 수백 Kbyte로 제한적이다. 전력계통에 사용되는 IED의 경우 사고 파형 정보 등의 데이터를 통신, 연산, 주처리 등의 여러 프로세서로 공유하여야 하므로 많은 메모리 용량이 필요하나 제품화되어 있는 듀얼 포트 메모리는 그러한 용도에 용량 제한으로 인하여 사용이 불가능하다.
또한, 통상적으로 판매되는 듀얼 포트 메모리의 경우 배터리 백업용의 저전력용 메모리가 아니어서 배터리 또는 슈퍼 캐패시터를 통한 데이터 백업(Backup)이 필요한 IED에는 적합하지 않다.
아울러, 판매되는 듀얼 포트 메모리의 경우 일반 SRAM에 비하여 가격이 2배 이상 정도의 매우 고가의 IC이다.
따라서, 일반적인 메모리를 이용한 메모리 공유 방식에 대한 개발이 필요한 실정이다.
본 발명은 일반적인 메모리를 이용하여 저렴한 비용으로 수 Mbyte의 용량의 데이터를 공유할 수 있는 메모리 공유 방식에 대하여 제안하고자 한다.
본 발명의 일 실시예에 따라 메모리를 공유하기 위한 회로가 개시되면, 상기 회로는 상기 메모리에 연결되는 복수의 단위 프로세서부를 포함하고, 상기 단위 프로세서부는: 상기 메모리와 버퍼링 어드레스 및 데이터 버스를 통해 연결되도록 구성된 버퍼; 및 상기 버퍼에 연결되어 상기 버퍼를 통해 상기 메모리에 액세스하도록 구성된 프로세서를 포함하고, 상기 복수의 단위 프로세서부는 상기 프로세서들의 상기 메모리에 대한 액세스를 위해 어드레스 및 데이터 버스 충돌을 방지하여, 상기 프로세서들이 상기 메모리를 공유하도록 할 수 있다.
상기 프로세서는 상기 메모리에 대한 액세스 요청(REQ)을 상기 버퍼로 출력하도록 구성될 수 있다.
상기 버퍼는 상기 프로세서에 의한 상기 액세스 요청(REQ)을 입력받고 이를 버퍼링하여 출력하도록 구성될 수 있다.
상기 버퍼로부터 버퍼링되어 출력되는 신호가 상기 프로세서의 승인신호(GNT)의 로직 값과 상기 버퍼의 인에이블 신호(EN)의 로직 값을 결정하도록 구성된 로직회로부를 더 포함하고, 상기 승인신호(GNT)는 상기 프로세서의 상기 메모리에 대한 액세스를 허용하기 위한 것이며, 상기 인에이블신호(EN)는 상기 버퍼의 출력을 활성화하기 위한 것일 수 있다.
상기 로직회로부는 모든 프로세서의 승인신호(GNT)의 로직 값과 상기 버퍼의 인에이블 신호(EN)의 로직 값을 결정하여, 상기 복수의 단위 프로세서부 중 하나의 단위 프로세서부의 프로세서만이 상기 메모리에 액세스할 수 있도록 구성될 수 있다.
상기 프로세서에 의한 상기 액세스 요청(REQ)을 입력받고 이를 버퍼링하여 출력하는 상기 버퍼의 단자에는 풀업(pull-up) 저항 또는 풀다운(pull-down) 저항이 구비될 수 있다.
본 발명은 기존의 듀얼 포트 메모리의 용량 한계로 인하여 전력 계통의 IED에서 파형 등과 같이 대용량 메모리의 사용에 대한 제한을 해소할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 공유 회로의 블록도를 도시한다.
도 2는 본 발명의 일 실시예에 따른 메모리 공유 회로의 블록도를 도시한다.
도 3은 본 발명의 일 실시예에 따른 메모리 공유 회로의 블록도를 도시한다.
도 4는 본 발명의 일 실시예에 따른 메모리 공유 회로의 동작 순서도를 도시한다.
본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 포괄하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 메모리 공유 회로의 블록도를 도시한다. 상기 메모리 공유 회로는 공유하여 사용하기 위한 메모리(10)와 단위 프로세서부(20, 30)를 포함하여 구성될 수 있다. 도 1에는 단위 프로세서부가 두 개로 도시되었으나, 상기 단위 프로세서부는 복수(N) 개(N=2, 3, 4, ....) 구비하는 것이 가능하다.
상기 단위 프로세서부(20, 30)는 상기 메모리와 버퍼링 어드레스 및 데이터 버스를 통해 연결되도록 구성된 버퍼(21, 31); 및 상기 버퍼에 연결되어 상기 버퍼를 통해 상기 메모리에 액세스하도록 구성된 프로세서(22, 32)를 포함할 수 있다.
각 프로세서와 각 버퍼는 쌍을 이루어 구성되며, 이들은 서로 어드레스 버스와 데이터 버스로 연결되며, 그 중에서 하나의 특정 버스는 도 1에 도시된 것처럼 메모리에 대한 액세스 요청(REQ) 신호를 위해 사용하도록 구성될 수 있다.
각 버퍼는 메모리(10)와 버퍼링된 어드레스 및 데이터 버스로 연결될 수 있다. 또한, 각 버퍼의 하나의 특정 버스는 상기 REQ 신호를 위한 입력신호를 버퍼링하여 로직회로부(41)로 출력하기 위해 사용될 수 있다.
상기 버퍼로부터 상기 로직회로부로 출력되는 신호(이하, "버퍼링된 REQ 신호"라 함)는 상기 로직회로부를 통해 각 버퍼의 인에이블 신호(EN)와 각 프로세서의 승인 신호(GNT)의 로직 값을 결정하도록 이용될 수 있다.
도 1에 도시된 블록도는 다음의 표 1 및 표 2에 따라 메모리에 대한 액세스 승인 또는 미승인이 결정되도록 구성되었다.
프로세서 1/프로세서 2 액세스 요청 액세스 요청 없음
액세스 요청 액세스 미승인 액세스 승인
액세스 요청 없음 액세스 미승인 액세스 미승인
[표 1: 프로세서 1(22)의 메모리에 대한 액세스 여부 결정]
프로세서 1/프로세서 2 액세스 요청 액세스 요청 없음
액세스 요청 액세스 승인 액세스 미승인
액세스 요청 없음 액세스 승인 액세스 미승인
[표 2: 프로세서 2(32)의 메모리에 대한 액세스 여부 결정]
표 1과 표 2를 살펴보면, 기본적으로 각 프로세서는 메모리에 대한 액세스 요청을 하면 액세스 승인이 결정되나, 두 프로세서가 동시에 메모리 액세스 요청을 하면 메모리 액세스를 위한 버스 충돌을 방지하기 위해 프로세서 2에 대하여만 액세스 요청이 승인되도록 구성되어 있다. 즉, 프로세서 2에 우선권이 할당되어 있다. 이러한 표에 따라 도 1의 상기 로직회로부(41)의 구성이 결정될 수 있다. 한편, 표 1과 표 2는 일 예시일 뿐 본 발명의 일 실시예가 구현되는 구체적인 예에 따라서 이러한 로직 관계는 변형가능함을 알려둔다.
좀더 상세하게, 도 1의 프로세서부(20, 30)와 로직회로부(41)의 연결관계를 설명하도록 한다.
도 1에 도시된 메모리 공유 회로(10, 20, 30, 41)는 기본적으로 액티브 로우(active low)로 동작하도록 설계되어 있다. 또한, 각 버퍼(21, 31)도 액티브 로우이다.
제 1 버퍼(21)에 의해 버퍼링된 REQ 신호는 제 1 OR 게이트(OR_1)의 제 1 입력으로 연결될 수 있다. 또한, 제 2 버퍼(31)에 의해 버퍼링된 REQ 신호는 제 2 인버터(INV_2)를 거쳐 상기 제 1 OR 게이트의 제 2 입력으로 연결되며, 또한 제 1 인버터(INV_1)를 통해 상기 제 1 버퍼의 EN 단자(EN_1)에 연결되며, 그리고 제 2 프로세서(32)의 GNT 단자(GNT_2)로 연결될 수 있다.
상기 제 1 OR 게이트의 출력은 제 1 프로세서(22)의 GNT 단자(GNT_1)에 연결되며, 또한 제 3 인버터(INV_3)를 거쳐 상기 제 2 버퍼의 EN 단자(EN_2)에 연결될 수 있다.
또한, 각각의 버퍼의 버퍼링된 REQ 신호의 출력 단자에는 풀업(pull-up) 저항이 연결되어 있고, 이 풀업 저항은 각각의 버퍼의 EN 단자(EN_1, EN_2)에 하이 신호가 입력되는 경우, 상기 버퍼로부터 출력되는 신호가 플로팅(floating)될 수 있으므로 이로 인한 상기 로직회로부의 로직 상태 변화를 방지하기 위해 디폴트로 상기 버퍼로부터 상기 로직회로부로 출력되는 신호가 하이를 유지하도록 하기 위한 것이다.
이하, 도 1에 도시된 메모리 공유 회로의 동작을 설명하도록 한다. 앞서 언급한 것처럼, 상기 회로는 액티브 로우로 설정되어 있고, 각 버퍼는 입력된 신호를 버퍼링하여 출력하기 위해서 EN 단자에 로우가 입력되어야 한다. 즉, 상기 버퍼의 EN 단자는 버퍼의 출력을 인에이블하기 위한 신호를 입력받는 단자이다.
설명의 간편함을 위해, 제 1 프로세서(22)에서 출력되는 메모리 액세스를 위한 REQ 신호를 "1_REQ," 제 2 프로세서(32)에서 출력되는 메모리 액세스를 위한 REQ 신호를 "2_REQ"로 지칭하고, 제 1 버퍼에서 상기 로직회로부로 출력되는 신호를 "1_BREQ"로 그리고 제 2 버퍼에서 상기 로직회로부로 출력되는 신호를 "2_BREQ"로 지칭하도록 한다. 한편, 도 1의 메모리 공유 회로의 동작은 현재 EN 단자가 로우가 입력되는 상태라 가정하여, 1_REQ 신호와 2_REQ 신호가 모두 버퍼(21, 31)를 통해 버퍼링되어 출력될 수 있음을 미리 알려둔다.
1) 1_REQ: 하이(HIGH), 2_REQ: 로우(LOW)인 경우
각 버퍼(21, 31)의 EN 단자에 로우가 입력되고 있는 상태이므로, 1_BREQ 신호와 2_BREQ 신호는 각각 하이와 로우가 된다. 1_BREQ 신호는 제 1 OR 게이트(OR_1)로 입력되므로, 제 1 프로세서(22)의 1 GNT 단자(GNT_1)엔 하이가 입력될 수 있다. 또한, 이 신호는 제 3 인버터(INV_3)를 통해 반전되어 제 2 EN 단자(EN_2)에 로우가 입력될 수 있다.
또한, 2_BREQ 신호는 제 1 인버터(INV_1)를 통과하여 제 1 EN 단자(EN_1)로 입력되며, 즉 제 1 EN 단자(EN_1)에 하이가 입력되며, 또한 2_BREQ 신호는 제 2 프로세서(32)의 GNT 단자(GNT_2)에 입력될 수 있다. (즉, GNT_2에 로우가 입력됨)
위의 각 단자에 입력되는 신호의 로직 상태를 표로 표시하면 다음의 표 3과 같이 표현될 수 있다.
1_REQ H 2_REQ L
GNT_1 H GNT_2 L
EN_1 H EN_2 L
이를 요약하면, 상기 메모리 공유 회로는 액티브 로우이므로, 1_REQ가 하이, 그리고 2_REQ가 로우인 경우, 각 프로세서의 GNT 단자와 각 버퍼의 EN 단자에 입력되는 신호가 위의 표 3과 같이 결정되므로 제 2 프로세서(32)의 메모리에 대한 액세스가 허용된다.
이를 다시 말하면, 제 2 프로세서만 메모리에 대한 액세스 요청(1_REQ=H, 2_REQ=L)하고 있으므로, 제 2 프로세서에 대해서만 메모리에 대한 액세스를 승인 또는 허용한다(GNT_2=L, EN_2=L).
2) 1_REQ: 로우(LOW), 2_REQ: 로우(LOW)인 경우
각 버퍼(21, 31)의 EN 단자에 로우가 입력되고 있는 상태이므로, 1_BREQ 신호와 2_BREQ 신호는 모두 로우가 된다. 2_BREQ 신호는 제 2 인버터(INV_2)를 통과하여 제 1 OR 게이트(OR_1)로 입력되므로, 제 1 프로세서(22)의 1 GNT 단자(GNT_1)엔 하이가 입력될 수 있다. 또한, 이 신호는 제 3 인버터(INV_3)를 통해 반전되어 제 2 EN 단자(EN_2)에 로우가 입력될 수 있다.
또한, 2_BREQ 신호는 제 1 인버터(INV_1)를 통과하여 제 1 EN 단자(EN_1)로 입력되며, 즉 제 1 EN 단자(EN_1)에 하이가 입력되며, 또한 2_BREQ 신호는 제 2 프로세서(32)의 GNT 단자(GNT_2)에 입력될 수 있다. (즉, GNT_2에 로우가 입력됨)
위의 각 단자에 입력되는 신호의 로직 상태를 표로 표시하면 다음의 표4와 같이 표현될 수 있다.
1_REQ L 2_REQ L
GNT_1 H GNT_2 L
EN_1 H EN_2 L
이를 요약하면, 상기 메모리 공유 회로는 액티브 로우이므로, 1_REQ와 2_REQ신호가 모두 로우인 경우, 각 프로세서의 GNT 단자와 각 버퍼의 EN 단자에 입력되는 신호가 위의 표 4와 같이 결정되므로 제 2 프로세서(32)의 메모리에 대한 액세스가 허용된다. 이를 다시 말하면, 각 프로세서(22, 32)의 메모리 액세스 요청이 입력되어도(1_REQ와 2_REQ신호가 모두 로우), 제 2 프로세서(32)에만 메모리 액세스가 허용되고 있다.
3) 1_REQ: 로우(LOW), 2_REQ: 하이(HIGH)인 경우
각 버퍼(21, 31)의 EN 단자에 로우가 입력되고 있는 상태이므로, 1_BREQ 신호는 로우, 그리고 2_BREQ 신호는 하이가 된다.
또한, 2_BREQ 신호는 제 1 인버터(INV_1)를 통과하여 제 1 EN 단자(EN_1)로 입력되며, 즉 제 1 EN 단자(EN_1)에 로우가 입력되며, 또한 2_BREQ 신호는 제 2 프로세서(32)의 GNT 단자(GNT_2)에 입력될 수 있다. (즉, GNT_2에 하이가 입력됨)
1_BREQ 신호는 바로 제 1 OR 게이트(OR_1)의 제 1 단자로 입력되고, 2_BREQ 신호는 제 2 인버터(INV_2)를 통과하여 제 1 OR 게이트(OR_1)의 제 2 단자로 입력되므로 제 1 프로세서(22)의 1 GNT 단자(GNT_1)엔 로우가 입력될 수 있다. 또한, 이 신호는 제 3 인버터(INV_3)를 통해 반전되어 제 2 EN 단자(EN_2)에 하이가 입력될 수 있다.
위의 각 단자에 입력되는 신호의 로직 상태를 표로 표시하면 다음의 표 5와 같이 표현될 수 있다.
1_REQ L 2_REQ H
GNT_1 L GNT_2 H
EN_1 L EN_2 H
이를 요약하면, 상기 메모리 공유 회로는 액티브 로우이므로, 1_REQ 신호가 로우, 2_REQ신호가 하이인 경우, 각 프로세서의 GNT 단자와 각 버퍼의 EN 단자에 입력되는 신호가 위의 표 5와 같이 결정되므로 제 1 프로세서(22)의 메모리에 대한 액세스가 허용된다.
4) 1_REQ: 하이(HIGH), 2_REQ: 하이(HIGH)인 경우
각 버퍼(21, 31)의 EN 단자에 로우가 입력되고 있는 상태이므로, 1_BREQ 신호와 2_BREQ 신호는 하이가 된다. 1_BREQ 신호는 제 1 OR 게이트(OR_1)로 입력되므로, 제 1 프로세서(22)의 1 GNT 단자(GNT_1)엔 하이가 입력될 수 있다. 또한, 이 신호는 제 3 인버터(INV_3)를 통해 반전되어 제 2 EN 단자(EN_2)에 로우가 입력될 수 있다.
또한, 2_BREQ 신호는 제 1 인버터(INV_1)를 통과하여 제 1 EN 단자(EN_1)로 입력되며, 즉 제 1 EN 단자(EN_1)에 로우가 입력되며, 또한 2_BREQ 신호는 제 2 프로세서(32)의 GNT 단자(GNT_2)에 입력될 수 있다. (즉, GNT_2에 하이가 입력됨)
위의 각 단자에 입력되는 신호의 로직 상태를 표로 표시하면 다음의 표 6과 같이 표현될 수 있다.
1_REQ H 2_REQ H
GNT_1 H GNT_2 H
EN_1 L EN_2 L
이를 요약하면, 두 프로세서의 메모리에 대한 요청이 없으므로(1_REQ=H, 2_REQ=H), 각 프로세서의 메모리에 대한 요청은 모두 승인 또는 허용되지 않는다(GNT_1=H, GNT_2=H).
도 2는 본 발명의 일 실시예에 따른 메모리 공유 회로의 블록도를 도시한다. 도 2에 도시된 메모리 공유 회로는 메모리 액세스를 위한 버스 충돌을 방지하기 위해, 제 1 및 제 2 프로세서(220, 320)가 모두 메모리 액세스를 요청하는 경우(1_REQ & 2_REQ=L), 그 어느 누구에게도 메모리 액세스를 허용 또는 승인하지 않는 회로를 예시한다.
좀더 상세하게, 도 1의 프로세서부(200, 300)와 로직회로부(410)의 연결관계를 설명하도록 한다.
도 1에 도시된 메모리 공유 회로(100, 200, 300, 410)는 기본적으로 액티브 로우(active low)로 동작하도록 설계되어 있다. 또한, 각 버퍼(210, 310)도 액티브 로우이다.
제 1 버퍼(210)에 의해 버퍼링된 REQ 신호는 OR 게이트(OR_12)의 제 1 입력으로 연결될 수 있고, 또한 이 신호는 인버터(INV_11)를 통과해 OR 게이트(OR_11)의 제 2 입력에 연결될 수 있다.
또한, 제 2 버퍼(310)에 의해 버퍼링된 REQ 신호는 인버터(INV_13)를 거쳐 OR 게이트(OR_12)의 제 2 입력으로 연결되며, 또한 OR 게이트(OR_11)의 제 1 입력에 연결될 수 있다.
OR 게이트(OR_11)의 출력은 인버터(INV_12)를 통과하여 제 1 버퍼(210)의 EN 단자(EN_1)에 인가되며, 또한 제 2 프로세서(320)의 GNT 단자(GNT_2)에 입력될 수 있다.
OR 게이트(OR_12)의 출력은 제 1 프로세서(220)의 GNT 단자(GNT_1)에 입력되며, 또한 인버터(INV_14)를 거쳐 제 2 버퍼(310)의 EN 단자에 입력될 수 있다.
또한, 각각의 버퍼의 버퍼링된 REQ 신호의 출력 단자에는 풀업(pull-up) 저항이 연결되어 있고, 이 풀업 저항은 각각의 버퍼의 EN 단자(EN_1, EN_2)에 하이 신호가 입력되는 경우, 상기 버퍼로부터 출력되는 신호가 플로팅(floating)될 수 있으므로 이로 인한 상기 로직회로부의 로직 상태 변화를 방지하기 위해 디폴트로 상기 버퍼로부터 상기 로직회로부로 출력되는 신호가 하이를 유지하도록 하기 위한 것이다.
이하, 도 2에 도시된 메모리 공유 회로의 동작을 설명하도록 한다. 앞서 언급한 것처럼, 상기 회로는 액티브 로우로 설정되어 있고, 각 버퍼는 입력된 신호를 버퍼링하여 출력하기 위해서 EN 단자에 로우가 입력되어야 한다. 즉, 상기 버퍼의 EN 단자는 버퍼의 출력을 인에이블하기 위한 신호를 입력받는 단자이다.
1_REQ 신호와 2_REQ 신호는 각각 하이 또는 로우 값을 가질 수 있으므로, 총 4개의 경우의 수가 발생한다. 그러나, 도 2에 도시된 메모리 공유 회로의 동작에 따른 1_REQ 신호 및 2_REQ 신호와, GNT_1, GNT_2, EN_1, EN_2 신호의 로직 상태는 도 1의 로직 상태와 부분적으로 동일하다. 좀더 상세하게는, (1_REQ, 2_REQ)가 (L, H), (H, L) 그리고 (H, H)인 경우는 도 1의 그것과 동일하다. 물론, 각 신호의 로직 상태가 부분적으로 동일하다는 것이지, 회로의 동작이나 구성이 동일하다는 것은 아니다. 따라서, (1_REQ, 2_REQ)가 (L, L)인 경우만 상기 메모리 공유 회로의 동작을 살펴보도록 한다.
2_REQ 신호가 로우이므로, 2_BREQ 신호는 인버터(INV_13)를 거쳐 OR 게이트(OR_12)의 제 2 입력에 인가되어, 제 1 프로세서(220)의 GNT 단자(GNT_1)에는 하이가 입력될 수 있다. 또한, 이 신호는 인버터(INV_14)를 거쳐 제 1 버퍼(310)의 EN 단자에 인가될 수 있다.
또한, 1_BREQ 신호가 인버터(INV_11)을 거쳐 OR 게이트(OR_11)의 제 2 단자에 인가되고 2_BREQ 신호가 OR 게이트(OR_11)의 제 1 단자에 인가되며, 상기 OR 게이트(OR_11)의 출력은 제 2 프로세서(320)의 GNT 단자(GNT_2)에 인가되며, 또한 인버터(INV_12)를 거쳐 제 1 버퍼(210)의 EN 단자로 입력될 수 있다. 즉, GNT_2엔 하이가 EN_1엔 로우가 입력될 수 있다. 이를 표로 정리하면 다음의 표 7과 같다.
1_REQ L 2_REQ L
GNT_1 H GNT_2 H
EN_1 L EN_2 L
이를 정리하면, 모든 프로세서(220, 320)가 공유 메모리에 대한 액세스를 요청하더라도(1_REQ=L, 2_REQ=L), 상기 메모리 액세스에 대한 버스 충돌을 방지하기 위해 모든 액세스 요청을 승인 또는 허용하지 않도록 설계된다(GNT_1=H, GNT_2=H).
도 3은 본 발명의 일 실시예에 따른 메모리 공유 회로의 블록도를 도시한다. 도 3에 도시된 메모리 공유 회로는 액티브 하이인 경우의 예를 도시한다. 즉, 각 프로세서사 메모리 액세스를 요청하고자 하는 경우, REQ 신호를 하이로 인가하고 그에 따른 액세스 승인 또는 허용을 GNT 신호를 하이로 출력하도록 설계될 수 있다. 물론 이 경우에도, 각 버퍼(2100, 3100)는 액티브 로우로 동작한다.
또한, 도 3에 도시된 메모리 공유 회로는 각 버퍼(2100, 3100)로부터 로직회로부(4100)로 출력되는 신호의 단자에 풀다운(pull-down) 저항을 연결하여, 이는 각각의 버퍼의 출력의 플로팅을 방지하며 디폴트 상태로 상기 출력을 로우로 유지하기 위함이다.
도 3에 도시된 메모리 공유 회로의 회로 구성을 설명하면, 1_BREQ 신호는 AND 게이트(AND_21)의 제 1 입력에 연결되고, 2_BREQ 신호는 인버터(INV_21)를 거쳐 AND 게이트(AND_21)의 제 2 입력에 연결될 수 있다. 상기 AND 게이트(AND_21)의 출력은 제 1 프로세서(2200)의 GNT 단자(GNT_1)에 입력되며, 또한 이 출력은 제 2 버퍼(3100)의 EN 단자(EN_2)에 입력될 수 있다.
또한, 상기 2_BREQ 신호는 제 1 버퍼(2100)의 EN 단자(EN_1)로 입력되며, 또한 제 2 프로세서(3200)의 GNT 단자로 입력될 수 있다.
따라서, 1_REQ 신호와 2_REQ 신호의 로직 상태에 따른 본 회로의 로직 상태는 다음의 표 8과 같다.
1_REQ H 2_REQ H
GNT_1 L GNT_2 H
EN_1 H EN_2 L
1_REQ H 2_REQ L
GNT_1 H GNT_2 L
EN_1 L EN_2 H
1_REQ L 2_REQ H
GNT_1 L GNT_2 H
EN_1 H EN_2 L
2_REQ L 1_REQ L
GNT_1 L GNT_1 L
EN_1 L EN_1 L
(1_REQ, 2_REQ)가 (H, L)과 (L, H)인 경우에는 둘 중 하나의 프로세서만 메모리 액세스 요청을 하므로, 메모리 액세스 요청을 한 프로세서 및 그에 연결된 버퍼의 (GNT 신호, EN 신호)가 (H, L)가 되어 메모리 액세스가 승인 또는 허용될 수 있다(액티브 하이).
또한, (1_REQ, 2_REQ)가 (H, H)인 경우, 모든 프로세서가 메모리 액세스 요청을 하므로, 미리 설계에 의해 제 2 프로세서(3200)에 우선권이 있으므로, 제 2 프로세서와 그에 연결된 버퍼의 (GNT 신호, EN 신호)가 (H, L)가 되어 제 2 프로세서에 대하여 메모리 액세스가 승인 또는 허용될 수 있다.
한편, (1_REQ, 2_REQ)가 (L, L)인 경우, 모든 프로세서가 메모리 액세스에 대한 요청을 하지 않으므로, 모든 프로세서와 그에 연결된 버퍼의 (GNT 신호, EN 신호)가 (L, L)가 되어 메모리 액세스 요청에 대한 승인 또는 허용을 하지 않는다.
도 4는 본 발명의 일 실시예에 따른 메모리 공유 회로의 동작 순서도를 도시한다. 이러한 동작은 각 프로세서가 수행할 수 있는 동작으로서, 그 주체는 프로세서가 될 수 있다.
상기 메모리 공유 회로의 동작은 REQ 신호를 활성화하는 단계(S410), GNT 신호를 대기하는 단계(S420), GNT 신호가 활성화되었는지 판단하는 단계(S430), 메모리에 액세스 하는 단계(S440), 및 REQ 신호를 비활성화하는 단계(S450)를 포함할 수 있다.
단계 S410은 각 프로세서에 의해 출력되는 REQ 신호(1_REQ 또는 2_REQ 등)를 활성화하는 동작에 해당한다. 각 메모리 공유 회로의 설계 환경에 따라, 다시 말해서 액티브 로우 또는 액티브 하이에 따라 상기 REQ 신호를 활성화(로우 또는 하이)하도록 할 수 있다.
단계 S420는 상기 REQ 신호의 활성화에 따른 GNT 신호의 입력을 대기하는 단계이다. GNT 신호는 상기 메모리에 대한 액세스 승인 또는 허용을 알리는 신호로서, 활성화 신호(액티브 로우 또는 액티브 하이)에 따라 각 프로세서에 대하여 메모리 액세스를 승인 또는 허용함을 알리는 수단으로 이용될 수 있다.
단계 S430은 상기 GNT 신호가 활성화 신호인지 여부를 판단하는 동작에 해당한다. 상기 GNT 신호가 활성화 신호이면 이를 확인한 각 프로세서는 상기 메모리에 대한 액세스를 시도하며(S440), 상기 GNT 신호가 활성화 신호가 아니면 다시 GNT 신호를 대기하는 과정(S420)으로 돌아갈 수 있다.
각 프로세서는 메모리 액세스를 완료한 뒤에, 상기 REQ 신호를 비활성화하도록 하는 과정(S450)을 수행할 수 있다. 본 발명의 일 실시예는 하나의 메모리에 대한 다수의 프로세서의 액세스를 충돌없이 승인 또는 허용하기 위한 것이므로, 승인 또는 허용된 메모리 액세스가 완료되면 반드시 REQ 신호를 비활성화하여 다른 메모리의 액세스를 승인 또는 허용할 준비를 해야한다.
본 명세서에 첨부된 도면과 그에 따른 설명을 통해, 본 발명의 일 실시예에 따른 메모리 공유 회로 및 그의 동작을 예시하여 설명하였다. 상기의 회로 구성 및 그 동작을 통해, 복수의 프로세서가 일반적인 메모리를 서로 충돌없이 공유할 수 있도록 하며, 또한 고용량의 일반적인 메모리를 사용함으로써 기존에 발생했던 저장공간의 부족함을 해소할 수 있다.
위에서 본 발명의 실시예들이 설명되었으며, 당해 기술 분야에 속한 통상의 지식을 가진 자는 이러한 실시예들은 발명을 한정하기 위한 것이 아니라 단지 예시적인 것임을 인식할 수 있고, 본 발명의 범위 또는 사상을 벗어나지 않고 변형, 수정 등이 가능함을 인식할 것이다.
10, 100, 1000: 공유용 메모리 20, 200, 2000: 제 1 프로세서부
30, 300, 3000: 제 2 프로세서부 41, 410, 4100: 로직회로부
21, 210, 2100: 제 1 버퍼 22, 220, 2200: 제 1 프로세서
31, 310, 3100: 제 2 버퍼 32, 320, 3200: 제 2 프로세서

Claims (6)

  1. 메모리를 공유하기 위한 메모리 공유회로에 있어서,
    상기 메모리에 연결되는 복수의 단위 프로세서부와 로직 회로부를 포함하고,
    상기 단위 프로세서부는:
    상기 메모리와 버퍼링 어드레스 및 데이터 버스를 통해 연결되도록 구성된 버퍼; 및
    상기 버퍼에 연결되어 상기 버퍼를 통해 상기 메모리에 액세스하도록 구성된 프로세서를 포함하고,
    상기 프로세서는 상기 메모리에 대한 액세스 요청(REQ)을 상기 버퍼로 출력하고, 상기 버퍼는 상기 프로세서에 의한 상기 액세스 요청(REQ)을 입력받고 이를 버퍼링하여 출력하며,
    상기 로직 회로부는 상기 버퍼로부터 버퍼링되어 출력되는 신호가 상기 프로세서의 상기 메모리에 대한 액세스를 허용하기 위한 승인신호(GNT)의 로직값과, 상기버퍼의 출력을 활성화하기 위한 인에이블 신호(EN)의 로직값을 결정하는 메모리 공유 회로.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서, 상기 로직회로부는 모든 프로세서의 승인신호(GNT)의 로직 값과 상기 버퍼의 인에이블 신호(EN)의 로직 값을 결정하여, 상기 복수의 단위 프로세서부 중 하나의 단위 프로세서부의 프로세서만이 상기 메모리에 액세스할 수 있도록 구성되는, 메모리 공유 회로.
  6. 제1항에 있어서, 상기 프로세서에 의한 상기 액세스 요청(REQ)을 입력받고 이를 버퍼링하여 출력하는 상기 버퍼의 단자에는 풀업(pull-up) 저항 또는 풀다운(pull-down) 저항이 구비된, 메모리 공유 회로.
KR1020120062451A 2012-06-12 2012-06-12 메모리 공유 회로 KR101366967B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020120062451A KR101366967B1 (ko) 2012-06-12 2012-06-12 메모리 공유 회로
US13/912,064 US9218306B2 (en) 2012-06-12 2013-06-06 Memory sharing circuit employing a buffered address and data bus and preventing bus collision
EP13171403.2A EP2674870B1 (en) 2012-06-12 2013-06-11 A circuit for memory sharing
ES13171403.2T ES2658938T3 (es) 2012-06-12 2013-06-11 Un circuito para compartir memoria
CN201310233692.XA CN103488574B (zh) 2012-06-12 2013-06-13 用于存储器共享的电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120062451A KR101366967B1 (ko) 2012-06-12 2012-06-12 메모리 공유 회로

Publications (2)

Publication Number Publication Date
KR20130138925A KR20130138925A (ko) 2013-12-20
KR101366967B1 true KR101366967B1 (ko) 2014-02-25

Family

ID=48625827

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120062451A KR101366967B1 (ko) 2012-06-12 2012-06-12 메모리 공유 회로

Country Status (5)

Country Link
US (1) US9218306B2 (ko)
EP (1) EP2674870B1 (ko)
KR (1) KR101366967B1 (ko)
CN (1) CN103488574B (ko)
ES (1) ES2658938T3 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104199790B (zh) * 2014-08-21 2017-10-24 北京奇艺世纪科技有限公司 数据处理方法及装置
CN107636673B (zh) * 2015-07-24 2020-07-14 慧与发展有限责任合伙企业 用于节流数据访问的系统、方法及可读存储介质
CN106250661B (zh) * 2016-09-06 2019-05-21 京微齐力(北京)科技有限公司 一种实现存储器扩展的逻辑电路设计方法
CN106528464A (zh) * 2016-11-08 2017-03-22 英业达科技有限公司 内存访问冲突控制的计算机系统
KR20180078864A (ko) * 2016-12-30 2018-07-10 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
CN110990318B (zh) * 2019-11-11 2021-05-07 福州瑞芯微电子股份有限公司 一种PCIe总线地址扩展方法、装置、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100227740B1 (ko) * 1997-02-15 1999-11-01 윤종용 공유메모리를 이용한 데이터 액세스 제어장치
KR100243964B1 (ko) * 1990-11-09 2000-02-01 가나이 쓰도무 여러개의 뱅크로 분할된공유메모리를 갖는 멀티프로세서시스템

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2692698A1 (fr) 1992-06-19 1993-12-24 Sgs Thomson Microelectronics Procédé pour partager une mémoire à accès direct entre deux processeurs asynchrones et circuit électronique pour la mise en Óoeuvre de ce procédé.
US6212607B1 (en) * 1997-01-17 2001-04-03 Integrated Device Technology, Inc. Multi-ported memory architecture using single-ported RAM
US6038651A (en) 1998-03-23 2000-03-14 International Business Machines Corporation SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum
US6513094B1 (en) * 1999-08-23 2003-01-28 Advanced Micro Devices, Inc. ROM/DRAM data bus sharing with write buffer and read prefetch activity
KR100745369B1 (ko) * 2005-12-22 2007-08-02 삼성전자주식회사 포트상태 시그날링 기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치
US8938589B2 (en) * 2010-01-28 2015-01-20 Hewlett-Packard Development Company, L. P. Interface methods and apparatus for memory devices using arbitration
EP2529312A4 (en) 2010-01-28 2013-07-03 Hewlett Packard Development Co INTERFACE METHOD AND DEVICE FOR MEMORY DEVICES

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100243964B1 (ko) * 1990-11-09 2000-02-01 가나이 쓰도무 여러개의 뱅크로 분할된공유메모리를 갖는 멀티프로세서시스템
KR100227740B1 (ko) * 1997-02-15 1999-11-01 윤종용 공유메모리를 이용한 데이터 액세스 제어장치

Also Published As

Publication number Publication date
ES2658938T3 (es) 2018-03-13
KR20130138925A (ko) 2013-12-20
US9218306B2 (en) 2015-12-22
CN103488574B (zh) 2017-09-08
US20130332679A1 (en) 2013-12-12
EP2674870A1 (en) 2013-12-18
CN103488574A (zh) 2014-01-01
EP2674870B1 (en) 2018-01-03

Similar Documents

Publication Publication Date Title
KR101366967B1 (ko) 메모리 공유 회로
EP2568389B1 (en) Coherence switch for i/o traffic
EP0428330A2 (en) Computer interface circuit
US5418920A (en) Refresh control method and system including request and refresh counters and priority arbitration circuitry
US10324870B2 (en) Memory circuit with integrated processor
US8140797B2 (en) Integrated circuit and method of securing access to an on-chip memory
KR100480605B1 (ko) 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
US6141736A (en) Arrangement with master and slave units
US5559753A (en) Apparatus and method for preventing bus contention during power-up in a computer system with two or more DRAM banks
US6070212A (en) Bus arbiter operable as a DRAM controller
EP0818008B1 (en) Dynamic ram in a microprocessor system
JPH09311812A (ja) マイクロコンピュータ
US6700402B2 (en) Output control circuit and output control method
KR960003650B1 (ko) 컴퓨터 시스템의 성능향상을 위한 입출력 프로세서
KR100210404B1 (ko) 공유 메모리 억세스 제어장치
JPS6224347A (ja) バス制御装置
KR19990058860A (ko) 인터럽트를 이용한 1:엔 프로세서간의 시분할 디피램통신 방법
JPH04330549A (ja) 制御装置
JPH04245363A (ja) バス調停方式
JPH0683694A (ja) マルチポートアクセス制御回路
JPS6149266A (ja) メモリ制御装置
JPH0981511A (ja) バスシステムの構成方法、データ処理装置
JPH05250333A (ja) マイクロプロセッサ
JPH0287255A (ja) バス制御方式

Legal Events

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

Payment date: 20180201

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190121

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 7