KR101050019B1 - 다수의 프로세서 및 하나의 메모리 시스템을 갖는 시스템용메모리 인터페이스 - Google Patents

다수의 프로세서 및 하나의 메모리 시스템을 갖는 시스템용메모리 인터페이스 Download PDF

Info

Publication number
KR101050019B1
KR101050019B1 KR1020067006802A KR20067006802A KR101050019B1 KR 101050019 B1 KR101050019 B1 KR 101050019B1 KR 1020067006802 A KR1020067006802 A KR 1020067006802A KR 20067006802 A KR20067006802 A KR 20067006802A KR 101050019 B1 KR101050019 B1 KR 101050019B1
Authority
KR
South Korea
Prior art keywords
memory
external memory
access
control processor
time slot
Prior art date
Application number
KR1020067006802A
Other languages
English (en)
Other versions
KR20060134923A (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 KR20060134923A publication Critical patent/KR20060134923A/ko
Application granted granted Critical
Publication of KR101050019B1 publication Critical patent/KR101050019B1/ko

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

다수의 CPU 시스템용 메모리 인터페이스는 각각의 CPU가 외부 메모리를 액세스할 수 있는 미리 한정된 시간 슬롯을 제공한다. 각각의 CPU에 할당된 시간 슬롯은 CPU의 요구되는 메모리 요건에 따라 규정될 수 있다. 이런 방법으로, 각각의 CPU가 일정량의 지정된 대역폭을 외부 메모리에 갖는 것이 보장된다. 미리 한정된 시간 슬롯은 또한 실-시간 지향 애플리케이션에 유용한 공지될 시스템의 지연을 허용한다. 게다가, 외부 메모리를 제어하기 위해서 CPU에 할당된 시간 동안, 각각의 CPU는 자신의 클럭을 사용할 수 있으므로, 시스템 내에 다양한 클럭 도메인을 수용한다. 메모리 재생 및 데이터 보호 기능이 또한 제공된다. 이런 요약은 검사자 또는 판독자가 기술적인 개시의 주요 문제점을 신속히 확인하도록 하는 요약을 요청하는 방법에 따라 제공된다. 이런 요약은 본 명세서의 범위 및 의미를 해석하거나 제한하도록 사용되지 않을 것을 이해함으로써 제안된다.
CPU, 메모리 제어기, 아비터, 멀티플렉서, 외부 메모리

Description

다수의 프로세서 및 하나의 메모리 시스템을 갖는 시스템용 메모리 인터페이스{MEMORY INTERFACE FOR SYSTEMS WITH MULTIPLE PROCESSORS AND ONE MEMORY SYSTEM}
관련 출원과의 교차 참조
본 출원은 명칭이 "High Performance and Reliability Memory Interface for Systems with Multiple CPUs and One Memory"인 2003년 10월 8일자로 출원된 미국 가출원 번호 60/509,503; 2003년 10월 9일자로 출원된 미국 가출원 번호 60/510,074; 및 2003년 12월 19일자로 출원된 미국 가출원 번호 60/530,960으로부터 우선권을 주장하며, 이들 출원은 본원에 참조 되어 있다.
본 발명은 메모리 시스템에 관한 것이며, 특히, 다수의 프로세서가 액세스 가능한 메모리 시스템용 인터페이스에 관한 것이다.
제어 프로세서(CPU)는 동작을 위해 메모리를 필요로 한다. 메모리는 동일한 집적 회로 또는 디지털 주문형 반도체(ASIC)의 경우와 같이, CPU를 갖는 "칩"에 있거나 외부에 위치될 수 있다. 온-칩 메모리는 외부 메모리보다 더 빠르다는 장점이 있지만 고가이고, 매우 스케일러블(scalable)하지 않다. 그러므로 최상의 디지털 ASIC에서 온-칩 메모리의 용량은 비교적 적다. 반면에, 외부 메모리는 저가이고 스케일러블하다. 그러므로, 임의의 온-칩 메모리 외에도 비교적 대용량의 외부 메모리가 통상 제공될 수가 있다. 통신 버스는 CPU와 외부 메모리 사이에서 데이터의 전송을 용이하게 한다. 통신 버스는 통신 버스로의 액세스를 통제하는 외부 메모리 인터페이스에 의해 전형적으로 제어된다.
일부 시스템에 있어서, 하나 이상의 CPU가 존재할 수 있고, 각각의 CPU는 메모리로의 액세스를 필요로 한다. 이와 같은 시스템에 대한 총 시스템 가격을 낮게 유지하기 위해서, CPU들은 동일한 외부 메모리를 공유할 필요가 있을 수 있다. 예를 들어, 어떤 시스템에서, 제어 프로세서 및 직접적인 메모리 액세스 제어기는 동일한 외부 메모리를 액세스한다. 단지 하나의 CPU가 한번에 외부 메모리를 제어할 수 있기 때문에, 메모리 인터페이스의 설계에 대해 많은 노력이 행해진다. 특히, 메모리 인터페이스는 외부 메모리에 대해 어떤 최소로 요구된 대역폭을 각각의 CPU에 제공할 수 있어야 한다. 메모리 인터페이스는 또한 외부 메모리로의 동시 액세스를 처리할 수 있어야 한다. 다른 과제는 메모리를 재생하는 것(즉, 어떤 CPU가 재생을 수행), 하나의 CPU가 다른 CPU의 데이터를 수정하는 것을 방지하는 것, 각각의 CPU에 대한 대기 시간 또는 지연 등을 결정하는 것, 등을 포함한다.
기존 메모리 인터페이스는 다수의 CPU를 처리하기 위해 비동기 요청-및-승인 시스템(request-and-grant system)을 사용한다. 전형적으로, 하나의 CPU가 외부 메모리에 액세스할 필요가 있을 때, CPU는 메모리 액세스 요청 신호를 메모리 인터페이스로 전송한다. 메모리 인터페이스는 요청이 수신되었다는 것을 확인하는 응답 신호를 CPU로 다시 전송한다. 그 후에, 메모리 인터페이스는 요청이 어떤 소정의 방식에 기초하여 승인될 수 있는지를 결정한다. 상기 방식은, 예컨대, 선-입-선-출 방식, 우선순위-기반 방식, 랜덤 액세스 방식 등일 수 있다. 그 후에, 메모리 인터페이스는 승인 신호를 CPU로 전송하고, CPU는 승인 확인 신호를 메모리 인터페이스로 다시 전송함으로써 응답할 수 있다. 그 후에, 외부 메모리로의 액세스를 행할 수 있다.
메모리 인터페이스는 각각의 다수의 CPU가 외부 메모리에 액세스할 수 있는 미리 한정된 시간 슬롯을 제공한다. 각각의 CPU에 할당된 시간 슬롯은 CPU의 예상된 메모리 요건에 따라 규정될 수 있다. 각각의 CPU는 일정량의 전용 대역폭을 외부 메모리에 갖도록 보장한다. 미리 한정된 시간 슬롯은 시스템의 지연이 공지되도록 하는데, 이는 실-시간 지향 애플리케이션에 유용하다. 게다가, 각각의 CPU는 외부 메모리를 제어하기 위해서 자신에 할당된 시간 슬롯 동안, 자신의 클럭을 사용할 수 있으므로, 시스템에서 다양한 클럭 도메인을 수용한다. 메모리 재생 및 데이터 보호 기능이 또한 제공된다.
일반적으로, 한 관점에 있어서, 본 발명은 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법에 관한 것이다. 상기 방법은 제 1 시간 슬롯 및 제 2 시간 슬롯을 규정하는 단계, 제 1 미리 한정된 시간 슬롯 동안 제 1 제어 프로세서로부터 외부 메모리로의 액세스를 승인하는 단계, 및 제 2 미리 한정된 시간 슬롯 동안 제 2 제어 프로세서로부터 외부 메모리로의 액세스를 승인하는 단계를 포함한다.
일반적으로, 한 관점 있어서, 본 발명은 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스에 관한 것이다. 메모리 인터페이스는 제 1 제어 프로세서, 제 2 제어 프로세서, 및 상기 제 1 및 제 2 프로세서 중 하나와 상호-작동 가능하게 접속 및 동기화된 아비터(arbiter)를 포함한다. 상기 아비터는 제 1 미리 한정된 시간 슬롯 동안 외부 메모리로의 액세스를 제 1 제어 프로세서에 승인하고, 제 2 미리 한정된 시간 슬롯 동안 외부 메모리로의 액세스를 제 2 제어 프로세서에 승인하도록 구성된다.
본 명세서에서 사용될 때, "포함하다/포함하는"이란 용어는 서술된 특징, 정수, 단계 또는 구성 요소의 존재를 규정하기 위한 것이지만, 하나 이상의 다른 특징, 정수, 단계, 구성 요소 또는 이들의 그룹의 존재 또는 부가를 제외하지는 않는다는 것이 강조되어야만 한다.
본 발명의 상기 장점 및 다른 장점은 다음의 상세한 설명으로부터 그리고 도면을 참조하여 명백해질 것이다.
도 1은 각 CPU에 대해 별도의 메모리 제어기를 갖는 예시적인 메모리 인터페이스의 블록도; 및
도 2는 모든 CPU에 대해 단일 메모리 제어기를 갖는 예시적인 메모리 인터페이스의 블록도.
도면을 참조하여 본 발명의 실시예의 상세한 설명이 이어지는데, 동일한 참조 번호는 동일하거나 유사한 요소에 사용된다. 여기서 사용된 바와 같이, "액세스"란 용어는 "외부 메모리"에 관해 사용될 때, 읽기 동작, 쓰기 동작 및 재생 동작을 포함하는 임의의 메모리 동작을 의미하며, 이러한 동작에 관한 것이지만 이에 국한되지는 않는다.
비동기화 요청-및 승인 시스템이 상당히 잘 동작할지라도, 일부 영역이 개선되는 것이 바람직하다. 예를 들어, CPU 및 메모리 인터페이스 사이에 발생하는 다양한 핸드쉐이크(handshake)는 유용한 대역폭을 낭비할 수 있다. 게다가, 일단 승인되면, CPU가 종료될 때까지 메모리 액세스는 대게 인터럽트되지 않기 때문에, 소정의 CPU에 대한 시스템의 지연을 정확히 예측하는 것이 어렵다. 이런 공지되지 않은 잠재적으로 긴 대기 시간은 특히, 실-시간-지향 애플리케이션에서, 다른 CPU에 대한 문제를 야기할 수 있다.
그러므로, 메모리 인터페이스는 외부 메모리 액세스를 CPU로 승인하기 위해서 미리 한정된 시간 슬롯을 사용할 수 있다. 각각의 CPU에 할당된 시간 슬롯은 CPU의 예상된 메모리 요구에 따라 규정될 수 있다. 이런 방법으로, 각각의 CPU가 최소량의 전용 대역폭을 외부 메모리에 갖는 것을 보장한다. 미리 한정된 시간 슬롯을 가지면 또한 시스템의 지연이 공지되도록 하는데, 이는 실-시간-지향 애플리케이션에 유용하다.
이제, 도 1을 참조하면, 메모리 인터페이스(100)를 도시하는 블록도가 도시된다. 메모리 인터페이스(100)는 제 1 CPU(CPU1) 및 제 2 CPU(CPU2)를 단일 외부 메모리(102)에 접속한다. CPU1 및 CPU2 둘 다는 많은 디지털 ASIC의 경우에서와 같이 단일 칩에 존재할 수 있거나, CPU1 및 CPU2는 별도의 칩에 존재할 수 있다. CPU1 및 CPU2가 단일 칩에 존재하면, 메모리 인터페이스(100)는 CPU와 동일한 칩에 위치될 수 있거나, 메모리 인터페이스(100)는 별도의 칩에 위치될 수 있다. CPU1 및 CPU2는 동일한 기능을 수행할 수 있거나, 각각의 CPU가 상이한 기능(예컨대, 메모리 액세스 대 애플리케이션)을 수행할 수 있다. 후자의 경우에, CPU1 및 CPU2는 외부 메모리(102)에 대한 상이한 대역폭 요건뿐만 아니라 상이한 클럭 주파수를 가질 수 있다.
메모리 인터페이스(100)는 CPU1 및 CPU2 각각에 대한 별도의 메모리 제어기를 포함한다. 그러므로 도 1의 예에서, CPU1가 하나의 메모리 제어기(104)에 접속되는 반면, CPU2는 다른 메모리 제어기(106)에 접속된다. 메모리 제어기(104,106)는 쓰기-가능하고, 읽기-가능하며, 메모리 주소, 데이터 등을 포함하는 적당한 제어 신호를 외부 메모리(102)에 제공 가능한 임의의 적합한 메모리 제어기일 수 있다. 각각의 메모리 제어기(104,106)는 멀티플렉서(108)를 통해 외부 메모리(102)에 접속되는데, 상기 멀티플렉스는 예컨대, 결합 멀티플렉서일 수 있다.
아비터(110)는 멀티플렉서(108)에 접속된다. 아비터(110)는 어떤 적합한 논리 장치일 수 있고, 하나의 메모리 제어기(104,106)가 어떤 소정의 시간에 외부 메모리(102)에 멀티플렉싱되는 것을 제어하도록 구성된다. 외부 메모리(102)로의 액세스는 시간 슬롯에 기초하여 승인되는데, 여기서 메모리 제어기(104,106)는 특정 양의 시간 동안에 동작된다. 타임 슬롯의 길이는 예를 들어, CPU의 외부-메모리 요건, CPU의 클럭 주파수 또는 일부 다른 요소에 따라, 미리 규정될 수 있다. 그러므로 각각의 CPU는 외부 메모리(102)에 대한 어떤 최소의 대역폭 및 어떤 최대 지연 을 갖는다. 아비터(110)는 또한 타임 슬롯의 길이가 필요로 되는 바와 같이 종종 조절될 수 있도록 프로그래밍될 수 있다.
동작에서, 각각의 메모리 제어기(104,106)는 CPU1 또는 CPU2와 동기화된다. 다시 말하면, 메모리 제어기(104)는 CPU1와 동기화되고, 메모리 제어기(106)는 CPU2와 동기화되어, 각각의 메모리 제어기는 자신의 각각의 CPU 클럭 주파수에 따라 동작한다. 그러므로 외부 메모리(102)에 액세스가 승인될 때, CPU(예컨대, CPU1 또는 CPU2)는 CPU로부터 외부 메모리(102)로의 동기화 경로 또는 그 반대의 경로가 존재한다. 유사한 방법으로, 아비터(110)는 또한 CPU 중 하나(예컨대, CPU1)와 동기화된다. 통상, 아비터(110)는 최상의 타임 슬롯 해상도를 성취하기 위해 가장 빠른 클럭을 갖는 CPU와 동기화된다. 아비터(110)는 또한 상기 CPU에 대한 메모리 제어기(예컨대, 메모리 제어기(104))와 동기화되지만, 다른 CPU에 대한 메모리 제어기와는 동기화될 필요가 없다.
CPU1이나 CPU2가 외부 메모리(102)와의 액세스를 필요로 할 때, 액세스하는 CPU는 간단히 각각의 메모리 제어기(즉, 메모리 제어기(104,106))에 소망의 어드레스를 제공한다. 쓰기 동작이 포함된다면, 액세스하는 CPU는 또한 외부 메모리(102)에 쓰일 데이터를 제공한다. 어떤 경우라도, 각각의 메모리 제어기가 액세스하는 CPU 전용이기 때문에, 액세스하는 CPU 및 각각의 메모리 제어기 사이에 어떠한 요청-및-승인 핸드쉐이크도 필요가 없다. 액세스하는 CPU의 시간 슬롯이 시작될 때, 아비터(110)는 활성 신호를 각각의 메모리 제어기에 전송하고, 멀티플렉서(108)가 상기 메모리 제어기로부터 외부 메모리(102)로 제어 신호를 멀티플렉싱하도록 한다. 통상, "읽기" 또는 "이용 가능한 데이터" 또는 "지연" 신호는 현재 데이터 전송(쓰여진 데이터 또는 읽혀진 데이터)이 완료되는지를 나타내기 위해서 사용된다. 이것은 정확한 지연 시간을 알 필요없이, CPU가 데이터를 액세스할 수 있다. 그 후에, 메모리 동작은 시간 슬롯이 끝날 때까지 정상적으로 계속 진행하고, 이러한 프로세스는 다음 CPU의 타임 슬롯에서 반복된다.
본 발명의 일부 실시예에서, 각각의 CPU1 및 CPU2에 대한 데이터가 보호되는 것을 보장하기 위해서, 아비터(11)는 각각의 CPU1 및 CPU2에 대한 메모리 파라미터를 포함하는 레지스터(확실히 도시되지 않음)를 포함할 수 있다. 레지스터는 예컨대, 외부 메모리(102)의 어떤 영역이 어떤 CPU에 의해 액세스 가능한지, 그리고 외부 메모리(102)의 영역이 CPU 둘 다에 의해 액세스 가능한지를 규정할 수 있다. 메모리 제어기가 CPU로부터 소망의 어드레스(들)를 수신할 때, 메모리 제어기는 수신된 어드레스 정보를 아비터(11)로 전송한다. 아비터(110)는 그 후에 아비터(11)의 레지스터 내에 저장된 정보에 대한 어드레스 정보를 확인하고, CPU가 외부 메모리(102)의 영역을 액세스하는 권한을 갖는지를 결정한다. 권한이 있다면, 아비터(110)는 메모리의 동작을 정상적으로 진행하도록 한다. 권한이 없다면, 아비터(110)는 메모리 제어기를 비활성하여 에러 상태를 CPU에 보고한다.
본 발명의 일부 실시예에서, 아비터(110)는 또한 외부 메모리(102)에 대한 재생 기능을 포함할 수 있다. 이와 같은 메모리 재생 기능은 당업자에게 널리 공지되어 더 자세히 설명되지 않을 것이다. 다른 기능으로서, 재생 기능은 CPU 중 하나 예컨대, 아비터(110)에 접속된 CPU에 존재할 수 있고, CPU의 메모리-액세스 시간 슬롯 동안에 수행된다.
두 개의 CPU만이 도 1에 도시되었을지라도, 당업자는 CPU가 필요에 따라 부가될 수 있다는 것을 이해할 것이다. 더욱이, 별도의 메모리 제어기가 각각의 CPU에 대해 도시되었지만, 당업자는 단일 메모리 제어기가 이하 설명된 바와 같이, 또한 사용될 수 있다는 것을 인지할 것이다.
이제, 도 2를 참조하면, 단일 메모리 제어기와 함께 사용하기 위한 메모리 인터페이스(200)가 도시된다. 메모리 인터페이스(200)는 제 1 CPU(CPU1) 및 제 2 CPU(CPU2)를 단일 외부 메모리(202)에 접속하는 도 1의 메모리 인터페이스와 유사하다. 그러나, 각각의 CPU1 및 CPU2에 대한 별도의 메모리 제어기 대신에, 메모리 인터페이스(200)는 CPU1 및 CPU2 둘 다에 대한 단일 메모리 제어기(204)를 포함한다. 멀티플렉서(206)는 CPU에 대한 클럭 신호와 함께 각각의 CPU를 메모리 제어기(204)에 멀티플렉싱한다. 이전 설명과 마찬가지로, 메모리 제어기는 멀티플렉서(206)에 의해 실질적으로 단일 CPU 전용이기 때문에, 어떠한 요청-및-승인 핸드쉐이크도 CPU 및 메모리 제어기(204) 사이에 필요치 않다. 아비터(208)는 CPU 중 하나가 시간 슬롯에 기초하여 멀티플렉서(206)에 의해 메모리 제어기(204)로 멀티플렉싱되는 것을 제어한다.
상이한 클럭 도메인(및 잠재적으로 감소되는 대역폭)의 문제를 극복하기 위해서, 메모리 제어기(204)에 의해 사용되는 클럭은 액세스하는 CPU로부터 선택된다. 그러므로, CPU1과 CPU2가 서로 비동기적으로 관련되어 실행되어도, 메모리 제어기(204) 내의 논리는 액세스하는 CPU와 동기화적으로 실행될 것이다.
도 2 및 도 1 사이의 다른 차이점은, 도 2에서는, CUP당 하나의 메모리 제어기가 사용하는 면적을 줄일 수 있다는 것이다. 또한, 오직 하나의 메모리 제어기만이 존재할 때, 메모리 자체의 제어 기능(예컨대, 블랭크 선택 등)이 더 단순할 수 있다. 반면에, 도 1에서와 같이, 다수의 메모리 제어기의 사용은 다른 CPU가 소정의 액세스시에 메모리 제어기의 상태를 유지한다는 장점을 가질 수 있다.
본 발명의 일부 실시예에서, 다양한 CPU의 요청에 따라, CPU는 평소보다 더 긴 시간 슬롯을 부여할 수 있다. 예를 들어, 하나의 CPU가 실-시간 작업을 수행하는 경우에, CPU는 메모리 인터페이스 및 메모리 트랜잭션의 할당을 보장해야 하지만, 다른 CPU의 할당은 더 유연하게 진행된다. 그러나, 실-시간 CPU가 거의 활동적이지 않은 기간을 경험할 수 있고, 이런 기간은 빈번한 메모리 액세스를 필요로 하는 다른 CPU에 스위칭하는 프로그램에 부합하고, 다른 CPU는 외부 메모리 액세스의 일반적인 공유보다 더 많이 승인될 수 있다. 그러므로 저조한 활동이 실-시간 CPU에 탐지될 때, 아비터는 시간적인 근거로 다른 CPU로 할당된 시간 슬롯을 늘리도록 설계될 수 있다. 다른 기능으로서, 시간 슬롯 대신에, 아비터는 다른 CPU가 메모리 트랜잭션의 부가적인 수를 승인하도록 설계될 수 있다. 일단, 일시적인 할당이 끝나면, 아비터는 예컨대, 고정된 할당으로 되돌아간다.
그들의 메모리 액세스 제어 기능 외에도, 상기 상술된 아비터는 또한 게이트 키퍼(gatekeeper) 기능을 서비스할 수 있다. 예를 들어, 일부 실시예에서, 아비터는 CPU 중 하나, 예컨대 CPU의 클럭이 아비터에 동기화되지 않은 CPU2에 실행 중인 애플리케이션이 외부 메모리를 액세스할 수 있는 제어 방법에 사용될 수 있다. 특히, 이런 애플리케이션이 외부 메모리에 저장된 데이터 또는 프로그램 코드를 액세스하기를 필요로 할 때, 아비터는 데이터 또는 프로그램 코드가 저장되어온 메모리 영역에 애플리케이션 액세스를 승인하기 전에 애플리케이션을 외부 메모리에 저장되는 (CPU2를 통한) 제 1 인증 데이터 또는 프로그램 코드에 요청할 수 있다. 인증은 예컨대, 당업자에게 공지된 임의의 적합한 기술을 사용하여, 수행된다. 이런 방법에서, 외부 메모리에 저장되는 데이터 또는 프로그램이 유효하다면(즉, 이것이 애플리케이션에 의해 인증될 수 있다면), 아비터는 애플리케이션에 사용 가능한 데이터 또는 프로그램 코드를 만들 것이다. 그러나 유효하지 않은 데이터 또는 프로그램 코드(즉, 데이터 또는 프로그램이 인증될 수 없음)는 유효하지 않은 데이터 또는 프로그램 코드가 임의의 손실 또는 시스템에 손상을 입는 것을 방지하도록 애플리케이션에 사용 가능하지 않을 것이다.
본 발명이 하나 이상의 특정 실시예를 참조하여 설명되는 반면, 당업자는 본 발명의 정신과 범위를 벗어나지 않고 거기에 많은 변화가 행해질 수 있다는 것이 인식될 것이다. 각각의 이런 실시예 및 이의 명백한 변화는 청구된 본 발명의 범위 내에 있는 바와 같이 고려되는데, 이는 다음의 청구항에 설명된다.

Claims (26)

  1. 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법으로서, 각각의 제어 프로세서는 할당된 시간 슬롯 동안 상기 단일 외부 메모리에 대한 액세스를 승인하는, 상기 방법에 있어서,
    제 1 미리 한정된 시간 슬롯 동안 제 1 메모리 제어기를 통해 제 1 제어 프로세서에 상기 외부 메모리로의 액세스를 승인하는 단계, 및
    제 2 미리 한정된 시간 슬롯 동안 제 2 메모리 제어기를 통해 제 2 제어 프로세서에 상기 외부 메모리로의 액세스를 승인하는 단계를 포함하고,
    상기 제 1 및 제 2 메모리 제어기는 제 1 클럭 및 제 2 클럭을 각각 포함하고, 상기 제 1 및 제 2 메모리 제어기의 제 1 및 제 2 클럭은 상기 제 1 및 제 2 제어 프로세서의 제 1 클럭 및 제 2 클럭과 각각 동기화되고,
    상기 액세스 승인 단계들은 상기 제 1 및 제 2 시간 슬롯 동안 상기 제 1 및 제 2 메모리 제어기를 상기 외부 메모리로 멀티플렉싱하는 단계를 포함하는 것을 특징으로 하는, 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법.
  2. 삭제
  3. 제 1항에 있어서,
    각각의 제 1 및 제 2 제어 프로세서에 의해 액세스 가능한 상기 외부 메모리 내의 영역을 한정하는 단계를 더 포함하는, 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법.
  4. 제 3항에 있어서,
    상기 제 1 제어 프로세서가 상기 제 2 제어 프로세서에 의해 액세스 가능한 영역을 액세스하는 것을 방지하는 단계, 및
    상기 제 2 제어 프로세서가 상기 제 1 제어 프로세서에 의해 액세스 가능한 영역을 액세스하는 것을 방지하는 단계를 더 포함하는, 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법.
  5. 제 1항에 있어서,
    단일 집적 회로 상의 상기 제 1 및 제 2 제어 프로세서를 실행하는 단계를 더 포함하는, 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법.
  6. 제 1항에 있어서,
    상이한 클럭 주파수를 갖는 제 1 및 제 2 제어 프로세서를 제공하는 단계를 더 포함하는, 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법.
  7. 제 1항에 있어서,
    상기 제 1 또는 제 2 제어 프로세서의 메모리 액세스 활성에 기초하여 각각, 제 1 시간 슬롯 또는 제 2 시간 슬롯의 길이를 조절하는 단계를 더 포함하는, 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법.
  8. 제 1항에 있어서,
    상기 외부 메모리는 메모리 제어기가 상기 외부 메모리로의 액세스를 승인한 클럭과 동기화되는 클럭을 갖는, 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법.
  9. 제 1항에 있어서,
    상기 외부 메모리로의 액세스를 상기 제 2 제어 프로세서에 승인하기 전에, 상기 외부 메모리로의 액세스가 요구되는 데이터 및 프로그램 코드를 인증하도록 상기 제 2 제어 프로세서에 요청하는 단계를 더 포함하는, 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법.
  10. 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법으로서, 각각의 제어 프로세서는 할당된 시간 슬롯 동안 상기 단일 외부 메모리로의 액세스를 승인하는, 상기 방법에 있어서,
    제 1 시간 슬롯 및 제 2 시간 슬롯 동안 단일 메모리 제어기에 의해 제 1 제어 프로세서 및 제 2 제어 프로세서를 외부 메모리에 멀티플렉싱하는 단계를 포함하고, 상기 제 1 제어 프로세서의 제 1 클럭과 상기 제 2 제어 프로세서의 제 1 클럭은 상기 제 1 및 제 2 시간 슬롯 동안 상기 외부 메모리에 각각 멀티플렉싱되는 것을 특징으로 하는, 다수의 제어 프로세서로부터 단일 외부 메모리로의 액세스를 승인하는 방법.
  11. 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스로서, 각각의 제어 프로세서는 할당된 시간 슬롯 동안 상기 단일 외부 메모리로의 액세스를 승인하는, 상기 메모리 인터페이스에 있어서,
    제 1 제어 프로세서에 대한 제 1 프로세서 클럭,
    제 2 제어 프로세서에 대한 제 2 프로세서 클럭,
    제 1 제어기 클럭을 갖는 제 1 메모리 제어기,
    제 2 제어기 클럭을 갖는 제 2 메모리 제어기,
    상기 제 1 및 제 2 프로세서 중 하나와 상호-작동 가능하게 접속 및 동기화하는 아비터(arbiter)로서,
    제 1 미리 한정된 시간 슬롯 동안 상기 제 1 메모리 제어기를 통해 상기 외부 메모리로의 액세스를 상기 제 1 제어 프로세서에 승인하고,
    제 2 미리 한정된 시간 슬롯 동안 상기 제 2 메모리 제어기를 통해 상기 외부 메모리로의 액세스를 상기 제 2 제어 프로세서에 승인하도록 구성된, 상기 아비터를 포함하고,
    상기 제 1 및 제 2 메모리 제어기의 제 1 및 제 2 제어기 클럭은 상기 제 1 및 제 2 제어 프로세서의 제 1 및 제 2 프로세서 클럭과 각각 동기화되고,
    상기 제 1 및 제 2 시간 슬롯 동안 상기 제 1 및 제 2 메모리 제어기를 상기 외부 메모리에 각각 멀티플렉싱하도록 구성된 멀티플렉서를 더 포함하는 것을 특징으로 하는, 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스.
  12. 삭제
  13. 제 11항에 있어서,
    상기 아비터는 각각의 제어 프로세서에 의해 액세스 가능한 외부 메모리 내의 영역을 규정하도록 더 구성된, 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스.
  14. 제 11항에 있어서,
    상기 아비터는 상기 제 1 제어 프로세서가 상기 제 2 제어 프로세서에 의해서 액세스 가능한 영역을 액세스하는 것과 그 반대로 액세스하는 것을 방지하도록 더 구성된, 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스.
  15. 제 11항에 있어서,
    상기 제 1 및 제 2 제어 프로세서는 단일 집적 회로에 존재하는, 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스.
  16. 제 11항에 있어서,
    상기 제 1 및 제 2 제어 프로세서는 상이한 클럭 주파수를 갖는, 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스.
  17. 제 11항에 있어서,
    상기 아비터는 상기 제 1 또는 제 2 제어 프로세서의 메모리 액세스 활성에 기초하여 제 1 시간 슬롯 또는 제 2 시간 슬롯의 길이를 각각 조절하도록 구성된, 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스.
  18. 제 11항에 있어서,
    상기 외부 메모리는 상기 메모리 제어기가 상기 외부 메모리로의 액세스를 승인하는 클럭과 동기화되는 클럭을 갖는, 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스.
  19. 제 11항에 있어서,
    상기 제 2 제어 프로세서가 상기 외부 메모리로의 액세스를 승인하기 전에, 상기 외부 메모리로의 액세스가 요구되는 데이터 또는 프로그램 코드를 인증하도록 상기 제 2 제어 프로세서에 요청하기 위한 수단을 더 포함하는, 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스.
  20. 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스로서, 제 1 제어 프로세서 및 제 2 제어 프로세서는 할당된 시간 슬롯 동안 단일 메모리 제어기에 의해 상기 단일 외부 메모리로의 액세스를 승인하는, 상기 메모리 인터페이스에 있어서,
    상기 제 1 및 제 2 제어 프로세서와 상호-작동 가능하게 접속 및 동기화되는 아비터로서,
    제 1 미리 한정된 시간 슬롯 동안 제 1 메모리 제어기를 통해 제 1 제어 프로세서에 상기 외부 메모리로의 액세스를 승인하고,
    제 2 미리 한정된 시간 슬롯 동안 제 2 메모리 제어기를 통해 제 2 제어 프로세서에 상기 외부 메모리로의 액세스를 승인하도록 구성된, 상기 아비터, 및
    상기 제 1 및 제 2 시간 슬롯 동안 상기 제 1 및 제 2 프로세서의 제 1 클럭 및 제 2 클럭을 상기 외부 메모리에 각각 멀티플렉싱하도록 구성된 멀티플렉서를 포함하는 것을 특징으로 하는, 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스.
  21. 제 20항에 있어서,
    상기 제 1 및 제 2 시간 슬롯 동안 상기 제 1 및 제 2 제어 프로세서를 상기 외부 메모리에 각각 멀티플렉싱하도록 구성된 제 2 멀티플렉서를 더 포함하는, 다수의 제어 프로세서가 단일 외부 메모리를 액세스하도록 하기 위한 메모리 인터페이스.
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
KR1020067006802A 2003-10-08 2004-10-06 다수의 프로세서 및 하나의 메모리 시스템을 갖는 시스템용메모리 인터페이스 KR101050019B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US50950303P 2003-10-08 2003-10-08
US60/509,503 2003-10-08
US51007403P 2003-10-09 2003-10-09
US60/510,074 2003-10-09
US53096003P 2003-12-19 2003-12-19
US60/530,960 2003-12-19
US10/857,319 US20050080999A1 (en) 2003-10-08 2004-05-27 Memory interface for systems with multiple processors and one memory system
US10/857,319 2004-05-27
PCT/EP2004/011163 WO2005041042A2 (en) 2003-10-08 2004-10-06 Memory interface for systems with multiple processors and one memory system

Publications (2)

Publication Number Publication Date
KR20060134923A KR20060134923A (ko) 2006-12-28
KR101050019B1 true KR101050019B1 (ko) 2011-07-19

Family

ID=34427064

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067006802A KR101050019B1 (ko) 2003-10-08 2004-10-06 다수의 프로세서 및 하나의 메모리 시스템을 갖는 시스템용메모리 인터페이스

Country Status (8)

Country Link
US (1) US20050080999A1 (ko)
EP (1) EP1685484B1 (ko)
JP (1) JP2007508607A (ko)
KR (1) KR101050019B1 (ko)
CN (1) CN1864140B (ko)
AT (1) ATE388439T1 (ko)
DE (1) DE602004012310T2 (ko)
WO (1) WO2005041042A2 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409572B1 (en) * 2003-12-05 2008-08-05 Lsi Corporation Low power memory controller with leaded double data rate DRAM package arranged on a two layer printed circuit board
JP2007525114A (ja) * 2004-01-29 2007-08-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ プログラマブルで一時停止可能なクロック発生ユニット
DE102005038567A1 (de) * 2005-08-12 2007-02-15 Micronas Gmbh Multi-Prozessor-Architektur und Verfahren zum Steuern von Speicherzugriff bei einer Multi-Prozess-Architektur
US7647476B2 (en) * 2006-03-14 2010-01-12 Intel Corporation Common analog interface for multiple processor cores
US7752373B2 (en) * 2007-02-09 2010-07-06 Sigmatel, Inc. System and method for controlling memory operations
US8694737B2 (en) 2010-06-09 2014-04-08 Micron Technology, Inc. Persistent memory for processor main memory
US9448938B2 (en) 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
US8799685B2 (en) * 2010-08-25 2014-08-05 Advanced Micro Devices, Inc. Circuits and methods for providing adjustable power consumption
US8613074B2 (en) 2010-09-30 2013-12-17 Micron Technology, Inc. Security protection for memory content of processor main memory
US8561078B2 (en) * 2011-09-27 2013-10-15 Throughputer, Inc. Task switching and inter-task communications for multi-core processors
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
WO2012125149A1 (en) 2011-03-14 2012-09-20 Hewlett-Packard Development Company, L.P. Memory interface
WO2012131884A1 (ja) * 2011-03-28 2012-10-04 富士通株式会社 マルチコアプロセッサシステム
US8683100B1 (en) * 2011-06-21 2014-03-25 Netlogic Microsystems, Inc. Method and apparatus for handling data flow in a multi-chip environment using an interchip interface
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US10691344B2 (en) 2013-05-30 2020-06-23 Hewlett Packard Enterprise Development Lp Separate memory controllers to access data in memory
US20160239211A1 (en) * 2013-09-30 2016-08-18 Hewlett Packard Enterprise Development Lp Programming memory controllers to allow performance of active memory operations
US20220113879A1 (en) * 2020-10-14 2022-04-14 Microchip Technology Incorporated System with Increasing Protected Storage Area and Erase Protection

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1132818A2 (en) * 1999-12-21 2001-09-12 Visteon Global Technologies, Inc. Multiple processor interface, synchronization, and arbitration scheme using time multiplexed shared memory for real time systems
US20020166017A1 (en) * 2001-05-02 2002-11-07 Kim Jason Seung-Min Cross bar multipath resource controller system and method
US20050010476A1 (en) * 2003-07-07 2005-01-13 Nubella, Inc. Consumer specific marketing tool method and apparatus

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US857320A (en) * 1906-03-19 1907-06-18 George Ulett Household-tool.
US857522A (en) * 1906-10-04 1907-06-18 Dell Harding Stovepipe-thimble and flue-stopper.
JPS5434640A (en) * 1977-08-23 1979-03-14 Hitachi Ltd Memory unit
US4164787A (en) * 1977-11-09 1979-08-14 Bell Telephone Laboratories, Incorporated Multiple microprocessor intercommunication arrangement
JPS5953959A (ja) * 1982-09-20 1984-03-28 Nec Corp 共有メモリ装置
JPS62297963A (ja) * 1986-06-18 1987-12-25 Fujitsu Ltd タイムスロツト割り当て回路
US5010476A (en) * 1986-06-20 1991-04-23 International Business Machines Corporation Time multiplexed system for tightly coupling pipelined processors to separate shared instruction and data storage units
US5978831A (en) * 1991-03-07 1999-11-02 Lucent Technologies Inc. Synchronous multiprocessor using tasks directly proportional in size to the individual processors rates
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é.
US5471588A (en) * 1992-11-25 1995-11-28 Zilog, Inc. Technique and circuit for providing two or more processors with time multiplexed access to a shared system resource
JP3579461B2 (ja) * 1993-10-15 2004-10-20 株式会社ルネサステクノロジ データ処理システム及びデータ処理装置
JP3661235B2 (ja) * 1995-08-28 2005-06-15 株式会社日立製作所 共有メモリシステム、並列型処理装置並びにメモリlsi
US6256745B1 (en) * 1998-06-05 2001-07-03 Intel Corporation Processor having execution core sections operating at different clock rates
US6891819B1 (en) * 1997-09-05 2005-05-10 Kabushiki Kaisha Toshiba Mobile IP communications scheme incorporating individual user authentication
US6266751B1 (en) * 1997-11-14 2001-07-24 Agere Systems Guardin Corp. Continuously sliding window method and apparatus for sharing single-ported memory banks between two agents
JP2000267928A (ja) * 1999-03-15 2000-09-29 Matsushita Electric Ind Co Ltd メモリ制御装置
JP2003114825A (ja) * 2001-10-04 2003-04-18 Hitachi Ltd メモリ制御方法、その制御方法を用いたメモリ制御回路、及びそのメモリ制御回路を搭載する集積回路
US6978389B2 (en) * 2001-12-20 2005-12-20 Texas Instruments Incorporated Variable clocking in an embedded symmetric multiprocessor system
CA2417581C (en) * 2002-01-28 2008-04-01 Research In Motion Limited Multiple-processor wireless mobile communication device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1132818A2 (en) * 1999-12-21 2001-09-12 Visteon Global Technologies, Inc. Multiple processor interface, synchronization, and arbitration scheme using time multiplexed shared memory for real time systems
US20020166017A1 (en) * 2001-05-02 2002-11-07 Kim Jason Seung-Min Cross bar multipath resource controller system and method
US20050010476A1 (en) * 2003-07-07 2005-01-13 Nubella, Inc. Consumer specific marketing tool method and apparatus

Also Published As

Publication number Publication date
EP1685484A2 (en) 2006-08-02
CN1864140A (zh) 2006-11-15
US20050080999A1 (en) 2005-04-14
WO2005041042A2 (en) 2005-05-06
CN1864140B (zh) 2013-03-20
JP2007508607A (ja) 2007-04-05
EP1685484B1 (en) 2008-03-05
WO2005041042A3 (en) 2005-11-24
KR20060134923A (ko) 2006-12-28
DE602004012310D1 (de) 2008-04-17
DE602004012310T2 (de) 2009-03-19
ATE388439T1 (de) 2008-03-15

Similar Documents

Publication Publication Date Title
KR101050019B1 (ko) 다수의 프로세서 및 하나의 메모리 시스템을 갖는 시스템용메모리 인터페이스
US7472213B2 (en) Resource management device
US6006303A (en) Priority encoding and decoding for memory architecture
US6986005B2 (en) Low latency lock for multiprocessor computer system
US7434264B2 (en) Data processing system with peripheral access protection and method therefor
KR100644596B1 (ko) 버스 시스템 및 그 버스 중재방법
US7054970B2 (en) Bus arbiter for integrated circuit systems
US4604685A (en) Two stage selection based on time of arrival and predetermined priority in a bus priority resolver
US20080235419A1 (en) Integrated Circuit and Method of Securing Access to an On-Chip Memory
US6279066B1 (en) System for negotiating access to a shared resource by arbitration logic in a shared resource negotiator
US7062588B2 (en) Data processing device accessing a memory in response to a request made by an external bus master
JPH1040215A (ja) Pciバス・システム
JP4322116B2 (ja) バーストモードをサポートする外部メモリとプロセッサとのインタフェース方法
JPS594733B2 (ja) キヨウツウバスセイギヨカイロ
JPH09153009A (ja) 階層構成バスのアービトレーション方法
JP3353368B2 (ja) バス中継装置
EP0284094B1 (en) Tandem priority resolver
JPH07114496A (ja) 共有メモリ制御回路
EP1380960B1 (en) Memory access from different clock domains
KR20050067324A (ko) 마스터/슬레이브 디바이스간의 인터페이스 장치 및 그 방법
KR100604569B1 (ko) 멀티 프로세서간 데이터 통신장치와 그 장치를 포함하는이동 통신 단말기
JPH04545A (ja) 通信制御回路
JPS6217263B2 (ko)
JPS6341973A (ja) マルチプロセツサシステム
JPH09259030A (ja) マルチcpu装置

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: 20140626

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150624

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee