KR19990068048A - 메모리 액세스 제어기 - Google Patents

메모리 액세스 제어기 Download PDF

Info

Publication number
KR19990068048A
KR19990068048A KR1019990001777A KR19990001777A KR19990068048A KR 19990068048 A KR19990068048 A KR 19990068048A KR 1019990001777 A KR1019990001777 A KR 1019990001777A KR 19990001777 A KR19990001777 A KR 19990001777A KR 19990068048 A KR19990068048 A KR 19990068048A
Authority
KR
South Korea
Prior art keywords
priority
need
memory access
command
memory
Prior art date
Application number
KR1019990001777A
Other languages
English (en)
Other versions
KR100327953B1 (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 KR19990068048A publication Critical patent/KR19990068048A/ko
Application granted granted Critical
Publication of KR100327953B1 publication Critical patent/KR100327953B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Abstract

메모리 액세스 제어기는 메모리 액세스 요청으로부터 메모리 액세스 명령을 발생한다. 액세스 요청의 시퀸스가 입력되고 니드-마커에 분배된다. 각각의 니드-마커는 각각의 메모리 액세스 요청에 의해 필요한 메모리 액세스 명령을 결정한다. 이들 니드가 우선순위기에 통과하여 이 우선순위기에 의해 우선순위로 된다. 바람직한 메모리 액세스 명령은 메모리 요건에 따라 우선순위 니드로부터 선택된다. 이것은 한 세트의 메모리 룰에 대해 각각의 우선순위 니드를 점검함으로써 수행된다. 필요한 메모리 룰을 통과하는 우선순위 니드는 가장 적절한 하나를 선택하여 바람직한 액세스 명령을 야기하는 명령 출력 선택기에 통과한다.

Description

메모리 액세스 제어기{MEMORY ACCESS CONTROLLER}
본 발명은 멀티미디어 프로세서에 적합한 메모리 액세스 인터페이스의 수행에 관한 것이다.
많은 컴퓨터와 멀티미디어 시스템은 메모리에 그리고 이 메모리로부터 데이터는 물론 필요할 수 있는 부가적인 제어기능을 전송하게 하는 메모리 액세스 인터페이스를 필요로 한다. 이러한 메모리를 이용하여 임시변수, 제어정보, 화상기억장치의 프레임 메모리 및 시스템의 기타여건을 저장한다. 이러한 메모리의 제어기능은 초기화, 리프래쉬 및 핀퐁(ping-pong)으로 알려진 메모리 뱅크 오버랩핑을 포함할 수 있다. 이러한 스템에서, 데이터 전송 속도 및 데이터 전송 효율은 일반적으로 우선순위가 높다. 소비자 멀티미디어 시스템 및 컴퓨터 시스템은 메모리에 대한 성능액세스가 높은 것을 요구한다. 이러한 시스템의 코스트를 최소로 하기 위해, 이들 메모리는 최적대역폭에 매우 가깝게 작동한다. 다시 말해, 저가의 메모리는 일반적으로 성능이 낮아서 이러한 시스템 코스트를 절감하기 위해, 개발자는 저가의 메모리를 이용하고 이들 메모리를 최상 성능 제한에 가깝게 작동하려고 시도한다.
이러한 상한 성능에 접근하기 위해서는 일반적으로 복잡한 메모리 인터페이스를 이용한다. 예를 들어, 이 로우에 대한 연속 콜롬 어드레스를 설정하여 데이터 전송을 개시하기 전에 DRAM 반도체 메모리 액세스는 RAS 사이클을 필요로 한다. DRAM의 두개 이상의 뱅크를 사용함으로써, 하나의 뱅크는 RAS 사이클을 수행할 수 있는 반면 나머지 뱅크는 데이터 전송을 수행한다. 이러한 뱅크 핑퐁용으로 의도된 SDRAM의 이용에 의해 이러한 개념이 일반화한다(예를 들어, 16Mbit SDRAM의 NEC uPD4516161G5-A127JF명세서 참조). 메모리 액세스 인터페이스를 실행하는 복잡성과 코스트를 감소하기 위해, 가장 용이한 방법은 내부 처리 타이밍을 외부 메모리형 또는 구성에 정합하는 것이다. 예를 들어, SDRAM을 이용한 프레임 기억으로 MPEG-2("IS 13818-Generic Coding of Moving Pictures and Associated Audio" by International Organization for Standardization, ISO MPEG Document, ISO-IEC/JTC1/SC2/WGI11 1994)비디오 디코더 조합 회로에 있어서는 SDRAM으로부터 동보상 매크로 블록 화소 정보를 판독하는 동보상 처리는 SDRAM이 필요한 타이밍과 유사한 타이밍으로 로우와 콜롬 어드레스를 발생할 수 있다. 따라서, 뱅크의 핑퐁은 이 동보상 처리에 의해 성취될 수 있다. 외부 메모리형에 대한 외부 프로세스의 정합은 내부 아퀴택쳐를 이용되는 외부 메모리의 형태 또는 구성을 결합한다. 따라서, 각 외부 프로세스에 의한 어드레스의 내부 발생은 특히, 특정 메모리형태 또는 구성에 대해 설계되어 있다. 이는 본 발명이 해결해야 하는 여러 문제를 안고 있다. 본 발명의 목적은 메모리 액세스의 성능을 최대로하기위해 메모리 액세스를 순차적으로 가능한 가깝게 하는 것에 관한 것이다. 어느 메모리 시스템은 메모리 액세스의 데이터 전송이 발생할 수 있기에 앞서 발생하기 위해 어느 종류의 프로세싱을 필요로 한다. 예를 들어, DRAM 반도체 메모리는 메모리 액세스를 초기화하기 위해 RAS 및 CAS 사이클을 필요로 한다. 다중 DRAM을 지닌 시스템의 경우에는 기타의 DRAM의 CAS 사이클과 적시에 RAS 사이클을 오버랩할 수 있다. 또다른 예는, 뱅크 프로세싱과 나머지 뱅크 데이터 전송과의 오버랩을 허락하는 다중 뱅크를 포함하는 SDRAM이 있다. 이 오버랩에 대한 타이밍의 제어 및 최적화에 의해 메모리에 대한 액세스를 필요로 하는 프로세스의 복잡한 인터페이스를 지닌 메모리 액세스 제어기가 복잡해질 수 있다. 본 발명의 목적은 메모리에 대한 고성능 액세스를 필요로 하는 프로세스에 대한 간단한 인터페이스를 지닌 메모리 액세스 제어기를 제공하는 것이다. 본 발명의 목적은 메모리 액세스를 필요로 하는 처리를 자체의 메모리 제어와 차단하는 것이다.
본 발명의 목적은 새로운 또는 다른 메모리 형태 또는 구성에 대해 메모리 액세스 제어기의 이동을 용이하게 하는 것에 관한 것이다. 코스트와 성능을 고려하여 메모리를 필요로 하는 전자부품은 메모리의 형태 또는 구성간을 마이그레이트(migrate)한다. 마찬가지로, 메모리를 이용하는 애플리케이션은 이러한 변화에 대응하기 위해 급속히 또한 변해야한다. 또한, 본 발명의 목적은 메모리 형태가 대안적인 메모리 형태가 개정되어 대안적인 메모리 형태를 지원하기 위해 메모리 액세스 제어기의 수행을 허락하는 것에 관한 것이다. 본 발명의 또다른 목적은 상이한 메모리형태 또는 구성을 이용하여 시스템 사이에 메모리 액세스 제어기를 이식하는 것에 관한 것이다.
본 발명의 목적은 상이한 메모리 액세스 요건을 사용하여 상이한 애플리케이션에 이용하기 위해 메모리 액세스 제어기를 용이하게 이식하는 것에 관한 것이다. 새로운 애플리케이션은 전의 애플리케이션과 다른 메모리를 이용하지만 많은 목적대신에 많은 변경을 필요로 하지 않는 메모리 액세스 제어기 설계를 이용하는 경우에, 메모리 액세스를 재설게하는 것은 비용 면에서 효과적이지 않다. 본 발명의 목적은 한 조의 메모리 액세스 요건과 기능성을 용이하게 개정하여 대안적인 메모리 액세스 요건과 기능성을 지원하기 위해 메모리 액세스 제어기를 실행하는 것에 관한 것이다. 본 발명의 목적은 메모리에 대한 상이한 액세스를 요구하는 상이한 시스템간에 메모리 액세스 제어기를 이식하는 것에 관한 것이다.
본 발명의 목적은 성능을 감소하지 않으면서 메모리 액세스 제어기의 크기를 소형화하는 것에 관한 것이다. 예를 들어, 고성능 및 저 코스트는 소비 전자제품의 요건이기 때문이다.
상술한 문제를 해결하기 위해, 여기서 설명한 메모리 액세스 제어기는 독창적이다. 상기 메모리 액세스 제어기는 메모리 액세스 요청을 메모리 액세스 명령으로 변환하는데 이용된다. 상기 메모리 액세스 요청의 시퀸스는 요청 입력을 개재하여 입력된다. 입력 로직은 상기 요청 입력으로부터 상기 메모리 액세스 요청을 받아들이고 상기 메모리 액세스 요청을 하나 이상의 요청으로 디멀티플렉스하고 상기 하나 이상의 요청은 대응하는 니드-마커(need-makers)를 통과한다. 상기 니드-마커는 니드를 결정하는데 이용되고, 상기 니드는 어떠한 메모리 액세스 명령이 각각의 상기 요청에 필요한지를 나타낸다. 상기 니드는 우선순위기에 의해 우선순위가 부여되어 우선순위 니드를 야기한다. 니드선택기는 상기 위선순위니드로부터 상기 메모리 액세스 명령을 선택한다. 상기 니드 선택기는 각각의 상기 우선순위 니드를 룰(rule)과 점검하고 이러한 룰이 허여되는 경우에는 대응하는 우선순위명령을 발생하는 룰-점검기를 구성하고 있다. 상기 룰-점검기내에는 우선순위 룰-점검기를 이용하여 룰 로직에 의해 발생된 룰에 대해 상기 우선순위 니드를 점검한다. 명령 출력 선택기는 상기 우선순위 명령으로부터 상기 메모리 액세스 명령을 선택한다. 상기 메모리 액세스 명령의 시퀸스는 명령 출력을 개재하여 출력된다.
순차적인 메모리 액세스 요청은 메모리 형태 또는 구성과 관계없이 메모리에 대한 액세스를 요구하는 프로세스간에 인터페이스를 간단하게 한다. 다중 니드-마커, 우선순위기 및 룰-점검기를 이용하여 메모리 액세스 프리 프로세스를 기타의 프리 프로세스 또는 데이터 전송과 오버랩하게 한다. 우선순위 룰-점검기로 인한 우선순위 명령은 메모리 액세스에 대해 제어신호를 발생하는 한 세트의 가능한 명령이다. 우선순위 명령을 메모리에 발생할 수 있을 때, 제1기회 모멘트(first opportune moment)까지 입력에서 명령 출력 선택기에 효과적으로 대기한다. 이렇게 순차적으로 대기함으로써 메모리 액세스 명령의 출력이 최적의 순차로 되어 메모리 액세스의 최대성능을 성취하게 한다. 메모리 액세스 요청을 발생하는 프로세스는 메모리 엑세스 제어 명령의 오버랩에 관련되지 않아서 이러한 프로세스는 메모리 액세스 자체의 많은 설계의 세부내용과 차단된다. 이러한 프로세스는 순차적인 메모리 액세스 요청을 독창적인 메모리 액세스 제어기에 의해 메모리 액세스 명령을 최적으로 조직된 독창적인 메모리 액세스 제어기에 전달한다. 차단이란 의미는 메모리 테이프 또는 구성로의 변경이 메모리 액세스 요청을 발생하는 프로세스로의 중요한 변경을 필요로 하지 않는다는 것을 의미한다. 메모리 액세스를 필요로 하는 내부 프로세스로의 변경을 필요로 하지 않으면서 상이한 메모리 구성을 지원하기 위해 니드-마커, 룰 로직 및 룰-점검기를 개정할 수 있다. 마찬가지로, 프로세스가 변경되면, 예를 들면 새로운 프로세스가 부가되면, 프로세스는 범용이기 때문에 메모리 액세스 제어기로의 많은 변경을 필요로 하지 않는다. 예를 들면, SDRAM 액세스로 설계될 때, 연속하는 메모리 액세스 명령간의 오버헤드를 최소화하는 개념이 최대 성능을 필요로 하는 모든 애플리케이션에 적절하기 때문에, 동일한 설계가 SDRAM 액세스를 필요로 하는 많은 애플리케이션에 적합하다. 본 발명의 아퀴택쳐는 적은 로직으로 용이하게 수행할 수 있어서 저 비용 및 최적 메모리 액세스 명령 출력으로도 고성능을 야기한다.
도 1은 본 발명의 일실시예를 설명하는 블록도.
도 2는 본 발명의 일실시예를 설명하는 블록도.
도 3은 본 발명의 일실시예를 설명하는 블록도.
도 4는 본 발명의 일실시예를 설명하는 블록도.
도 5는 도 4에 도시된 실시예를 설명하는 타이밍도.
도 1은 본 발명의 실시예를 도시한 것이다. 요청 입력(100)은 메모리 액세스 요청(110)을 입력 로직(120)에 통과하게 한다. 입력 로직은 요청(130) 니드-마커(140)에 전달하여 이 니드-마커는 니드(150)를 발생한다. 우선순위기(160)는 우선순위로 니드(150)를 배열하고 이들을 우선순위로 배열된 니드(170)를 니드 선택기(180)에 전달한다. 니드 선택기(180)는 우선순위 니드(170)로부터 어느 메모리 액세스 명령(190)을 선택해야 하는지를 결정하여 명령 출력(199)을 개재하여 출력한다.
도 1의 작동을 설명한다. 입력 로직(120)은 요청 입력(100)으로부터 메모리 액세스 요청(110)을 받아들이고 이들을 니드-마커를 순차적으로 디멀티플렉스 한다. 각각의 니드-마커(140)는 각각의 메모리 액세스 요청에 요구되는 메모리 엑세스 제어신호를 발생한다. 우선순위기(160)는 우선순위 니드(170)의 높은 우선순위가 초기 메모리 액세스 요청에 대응하도록 니드-마커(140)로부터 나오는 니드(150)를 기록한다. 이러한 방식에서, 최고 우선순위가 부여된 니드(170)는 다음에 발생하는 메모리 액세스 요청에 대응한다. 니드선택기(180)는 우선순위 니드(170)로부터 합성 메모리 액세스 명령(190)을 선택한다. 일반적으로, 우선순위 니드(170)는 메모리 자체에 발생할 명령을 표시할 수 있다. 니드 선택기(180)에 의해 우선순위 니드(170)를 선택하는 것은 최고 우선권, 우선순위 니드(170)를 선택하거나 부가적인 룰을 적용하는 것과 같이 간단히 할 수 있다. 예를 들어, 우선순위 니드(170)의 어느 조합이 발생할 때, 니드 선택기(180)는 낮은 우선순위 니드(170)를 선택할 수 있다. 예를 들어, 최저 우선순위 니드(170)는 최종 메모리 데이터 전송을 위해 메모리를 설정하는 명령을 미리 처리할 수 있다. 니드 선택기(180)는 이러한 예비 처리 명령을 출력할 수 있어서 우선순위 데이터 전송이 발생하는 동일한 시간에 이를 처리할 수 있어서 프리 프로세싱과 데이터 전송을 오버랩한다.
도 1의 실시예는 니드-마커(140), 니드(150) 및 우선순위 니드(170)의 수를 제한하지 않는다. 또한, 니드-마커(140)에 대해 메모리 액세스 요청(110)을 순차적으로 디멀티플렉스 하는 것이 본 발명의 요건은 아니다. 멀티플렉싱의 또다른 적절한 명령을 이용할 수 있다.
도 1에 의해 설명된 효과는 메모리 액세스 요청의 순차적인 간단한 입력이 최적으로 오버랩된 메모리 액세스 명령으로 변환하는 것이다. 메모리 아퀴택쳐와 메모리 액세스를 필요로 하는 프로세스를 차단하는 메모리 액세스 제어기에 의해 메모리 명령 발생이 수행된다.
도 2는 본 발명의 또다른 실시예를 도시한다. 요청입력(200)은 메모리 액세스 요청(210)을 입력 로직(220)에 통과시킨다. 입력 로직은 요청(230)을 니드(250)를 발생하는 니드-마커(240)에 분배한다. 우선순위기(260)는 우선순위로 니드(250)를 배열하고 이 니드를 우선순위 니드(270)로 니드 선택기(280)에 통과시킨다. 각각의 우선순위 니드(270)는 각각의 우선순위 니드(270)에 대응하는 우선순위 명령(285)을 결정하는 룰 점검기(281)를 통과한다. 명령 출력 선택기(289)는 명령 출력(299)을 경유해 출력되는 메모리 액세스 명령(290)으로 선택되어야 하는 우선순위 명령(285)으로부터 결정한다.
도 2의 실시예의 작동을 설명한다. 이 실시예는 니드 선택기(280)의 상세한 내용을 도시한다. 니드가 메모리 액세스 명령(290)을 받아들일 수 있는 경우에, 본 실시예의 니드 선택기(280)는 우선순위 니드(270)를 점검하는 다중 룰-점검기(281)를 지닌다. 우선순위 니드가 메모리 액세스 명령(280)을 받아들이는 경우, 이 우선순위 니드는 출력을 위해 적절한 메모리 엑세스 명령(290)을 선택하는 명령 출력 선택기(289)에 우선순위 명령(285)으로 통과된다. 도 1의 실시예에서 설명한 바와 같이, 상대 우선순위는 물론 각 우선순위 명령(285)과 같은 부가적인 규정에 의거하여 우선순위 명령(285)을 선택한다.
도 1의 실시예와 마찬가지로, 도 2의 실시예는 니드-마커(240), 니드(250), 우선순위 니드(270) 및 우선순위 명령(285)의 수를 제한하지 않는다.
도 3은 본 발명의 또다른 실시예를 예시한다. 요청 입력(300)은 메모리 액세스 요청(310)을 입력 로직(320)에 통과시킨다. 입력 로직(320)은 이들 요청을 니드-마커0(340) 및 니드-마커1(341)에 대해 입력되는 요청0(330) 및 요청1(331)에 분배한다. 니드-마커0(340) 및 니드-마커1(341)은 니드0(350) 및 니드1(351) 각각을 발생한다. 우선순위기(360)는 니드0(350)과 니드1(351)을 우선순위로 배열하고 이들을 우선순위 니드0(370)과 우선순위 니드1(371)을 니드 선택기(380)에 통과시킨다. 우선순위 결정기(365)는 니드0(350)과 니드1(351)을 결정하고 우선순위 선택기0(361) 및 우선순위 선택기1(362)에 이 결과를 prio0(363) 및 prio1(364) 개재하여 알린다. 우선순위 선택기0(361)은 prio0(363)을 기반으로 우선순위 니드0(370)될 니드0(350) 및 니드1(351)중 하나를 선택한다. 우선순위 선택기1(362)은 prior(364)을 기반으로 니드1(371)에 우선순위된 니드0(350) 또는 니드1(351)중 하나를 선택한다. 우선순위 니드0(370)은 우선순위 명령0(385)을 결정하는 우선순위 룰-점검기0(382)에 통과된다. 우선순위 니드1(371)은 우선순위 명령(386)을 결정하는 우선순위 룰-점검기1(383)에 통과된다. 룰 로직(387)에 의해 발생된 룰(384)은 우선순위 룰-점검기0(382) 및 우선순위 룰-점검기(383)에 통과된다. 명령 출력 선택기(389)는 명령 출력(399)을 개재하여 입력하는 메모리 액세스 명령(390)으로 어느 것을 선택해야 하는지를 우선순위 명령0(385)과 우선순위 명령1(386)로부터 결정한다.
도 3의 작동을 설명한다. 이 실시예는 우선순위기(360)의 매우 상세한 내용을 도시한다. 본 실시예의 우선순위기(360)는 우선순위 니드(370)될 니드0(350) 또는 니드1(351)중 하나를 선택하는 우선순위 선택기0(361)과 우선순위 니드1(371)이 될 니드0(350) 또는 니드(351)중 하나를 선택하는 우선순위 선택기1(362)을 지닌다. 선택에 필요한 결정은 우선순위 선택기0(361)에 대한 선택 결정 prio0(363)과 우선순위 선택기1(362)에 대한 선택 결정 prio1(364)을 출력하는 우선순위 결정기(365)에 의해 결정된다. 본 실시예의 룰-점검기(381)는 우선순위 니드0(370)을 점검하는 우선순위 룰-점검기0(382)과 우선순위 니드1(371)을 점검하는 우선순위 룰-점검기1(383)을 지닌다. 만일 이들이 룰 로직(387)에 의해 발생된 룰(384)을 이용하여 결정된 것으로 ok이면, 이들은 출력하기 위해 니드로부터 적절한 메모리 액세스 명령(390)을 선택하는 명령 출력 선택기(389)에 우선순위 명령0(385)과 우선 순위 명령1(386)로 전달된다.
도 3의 실시예가 두 개의 요청(330) 및 (331), 두 개의 니드-마커(340) 및 (341), 두 개의 우선순위 선택기(361) 및 (383) 및 두 개의 우선순위 명령(370) 및 (371)을 설명할지라도, 본 발명은 단지 두 개의 각각의 상술한 사항만으로 제한되지 않는다. 이들 항목은 1이상일 수 있다. prios(363) 및 (364)의 수는 1이상으로 할 수 있다. 예를 들어, 동일한 신호를 어느 또는 모든 우선순위 선택기(361) 및 (362)에 대하여 이용할 수 있다. 마찬가지로, 동일 또는 상이한 룰(384)을 우선 룰-점검기(382) 및 (383)에 의해 이용할 수 있다.
도 4는 본 발명의 또다른 실시예를 예시한다. 요청 입력(400)은 요청(430) 및 (431)을 디멀티플렉스하기위해 입력 로직(420)으로부터의 enip0(423) 및 enip1(424)을 이용하여 메모리 액세스 요청(410)을 요청0(430) 및 요청1(431)을 개재하여 니드-마커0(440) 및 니드-마커1(441)에 통과시킨다. 본 실시예에서는 입력 로직(420)은 예를 들어, 입력 FIFO로부터 메모리 액세스 요청(410)을 판독하고 요청(430) 및 (431)을 니드-마커(440) 및 (441)에 전달하는 FIFO 인터페이스로 작용한다. 엠티(421)신호는 입력 FIFO가 유효 메모리 액세스 요청(410)을 포함할 때를 나타내는데 이용된다. 니드-마커0(440) 및 니드-마커1(441)은 니드0(450)과 니드1(451)을 각각 배열한다. 우선순위기(460)는 우선순위로 니드0(450)과 니드1(451)을 배열하고 이들을 니드 선택기(480)에 우선순위 니드0(470)과 우선순위1(471)로 통과시킨다. 우선순위 결정기(468)는 니드0(450)과 니드1(451)의 우선순위를 결정하고 우선순위 선택기0(451)과 우선순위 선택기1(462)에게 이 결과를 prosel(467)을 개재하여 알린다. 우선순위 선택기0(461)은 prosel(476)을 기반으로 우선순위 니드0(470)이 될 니드0(463) 또는 니드1(464)중 하나를 선택한다. 우선순위 선택기(462)는 priose1(467)을 기반으로 우선순위 니드1(471)이 될 니드0(465) 또는 니드1(466)중 하나를 선택한다. 우선순위 니드0(470)은 우선순위 명령0(485)을 결정하는 우선순위 룰-점검기0(482)에 통과된다. 우선순위 니드(471)는 우선순위 명령1(486)을 결정하는 우선순위 룰-점검기1(483)에 통과된다. 룰 로직(487)에 의해 발생된 룰(484)은 우선순위 룰-점검기0(482) 및 우선순위 룰-점검기1(483)에 통과한다. 명령 출력 선택기(489)는 우선순위 명령0(485)과 우선순위 명령1(486)로부터 명령 출력(499)을 개재하여 입력하는 메모리 액세스 명령(490)으로 어느 것이 선택되어야 하는지를 결정한다.
도 4의 실시에의 작동을 설명한다.
이 실시예는 순차적인 메모리 액세스 요청(410)을 공급하기 위해 FIFO을 이용할 수 있는 방법을 도시한다. 입력 로직(420)은 판독 FIFO의 타이밍을 제어하고 enip0(423) 및 enip1(424)을 이용하여 요청(430)과 (431)을 니드-마커0(440)과 니드-마커1(441)에 입력해야 하는 것을 나타낸다. 본 실시예에서, 입력 로직은 대안적으로 이들을 간단히 선택한다. 제1메모리 액세스 요청(410)은 니드-마커0(440)으로 진행한 다음 둘째로 니드-마커1(441)에 진행하고 세 번째로 니드-마커0(440)에 진행한다.
본 실시예에 있어서, 니드-마커(440)와 (441)은 SDRAM이 두개의 메모리 뱅크를 지니는 SDRAM 액세스에 대한 명령을 발생한다. 각각의 요청(430) 및 (431)은 일련의 SDRAM 명령을 야기한다. 두개의 시리즈, 즉 활성에 의해 추종되고 판독명령에의해 추종되는 프리차지 또는 판독명령이 가능하다. 본 실시예에서는 메모리 액세스 요청에 대응하는 일련의 명령의 완료가 명령 출력 선택기(489)로부터 발생한 donereq(425, 469, 494)을 이용함으로써 표시된다. 입력 로직(420)에 대한 donereq 입력(425)은 요청0(430) 및 요청1(431)을 개재하여 요청의 입력에 대한 니드-마커(440, 441)의 선택을 토글하는데 이용된다. 우선순위 결정기(468)에 대한 donereq(469) 입력은 우선순위 선택기(461, 462)의 priosel(467) 입력을 토글하는데 이용된다. 이 실시예에서, 시리즈내의 각각의 명령의 완료는 명령 출력 선택기(489)로부터 또한 발생하는 억셉트0(442) 및 (491)과 억셉트1(443) 및 (492)신호에 의해 표시된다. 니드-마커0(440)에 대한 억셉트0(442)은 이로부터 발생하는 명령의 시퀸스의 명령이 받아진다는 것을 나타내는데 이용되고 이 시퀸스의 다음 명령이 발생할 수 있다. 마찬가지로, 니드-마커(441)에 대한 억셉트(443) 입력은 이로부터 발생하는 명령의 시퀸스의 명령이 받아들여지고 이 시퀸스의 다음 명령이 발생할 수 있다는 것을 나타내는데 이용된다.
본 실시예에서는 룰 로직(487)은 전에 선택된 메모리 액세스 명령 출력(490)을 기반으로 한 세트의 룰을 발생한다. cmd(493)는 메모리 액세스 명령이 출력된 것을 나타낸다. 이 실시예의 경우, 룰 로직(487)은 SDRAM을 토대로 룰을 발생한다. 예를 들어, 할성타이밍에 대한 프리차지 및 판독 타이밍에 대한 활성과 같은 연속명령간의 타이밍을 특정한다. 이 실시예에서, 룰 로직으로 부터의 출력은 SDRAM 명령이 가능한 것을 표시하는 한 세트의 룰(484)이다. 예를 들어, 뱅크0 프리차지가 가능하면, 룰(484)은 이를 표시한다. 뱅크1 판독이 가능하면, 룰(484)은 이를 표시한다. 우선순위 룰-점검기(482) 및 (483)은 룰의 세트(484)의 세트에 대한 우선순위 니드(470) 및 (471)을 점검하고 수용 가능한 명령은 우선순위 명령(485, 486)으로 출력된다. 예를 들면, 우선순위 니드0(470)은 뱅크(0)에 대한 프리차지 명령이 필요하다는 것을 나타내고 룰(484)이 프리차지 명령을 받아들일 수 있다고 표시하면, 우선순위 명령(485)은 프리차지 뱅크0이 요구된다는 것을 나타낸다. 한편, 룰(484)은 SDRAM이 프리차지 명령을 받아들일 수 없다고 나타내면, 우선순위 명령0(485)은 프리차지 명령이 필요하다는 것을 나타내지 않는다.
이 실시예에서, SDRAM/명령의 시퀸스의 최종 명령이 발생할 때마다 명령 출력 선택기(489)는 donereq(494)을 발생한다. 이 실시예의 경우에, 최종령령은 Read이다. 판독 명령이 출력될 때, 명령 출력 선택기(489)는 donereq(494) 출력을 설정한다.
도 5는 SDRAM 메모리 액세스 제어기에 대해 이용할 수 있는 것처럼 도 4의 실시예에 대응하는 타이밍 도를 도시한다. 이 타이밍도의 경우에 쇼트 핸드 노테이션(short hand notation)은 요청(410)입력, 분류된 니드 및 명령(450, 451, 470, 471, 485, 486) 및 (490) 및 룰(484)에 이용된다.
메모리 액세스 요청(410)에 대한 쇼트 핸드 노테이션:
[bank=0/I][read=R][new row flag=N/-]
예1: ORN은 "bank0 read with new row"을 의미한다.
(프리차지 및 활성은 판독을 진행하는데 필요하다).
예2 : 1R은 "bank1 read with same row(no new row)"을 의미한다.
(프리차지 및 활성이 요구되지 않는다).
니드 및 명령(450, 451, 470, 471, 485, 486) 및 (490):
[bank=0/1][command=P/A/R]
예1: OP는 "bank0 Precharge"을 의미한다.
예2: 1A는 "bank1 Activate"를 의미한다.
예3: 1R은 "bank1 Read"을 의미한다.
예4: 널(요청이나 명령이 없음)을 의미한다.
룰(484)에 대한 쇼트 핸드:
8진법[OP][OA][OR][1P][1A][1R]
예1: 77은 "bank0 and 1Precharge, Activate, Read가 ok"이라는 것을 의미한다.
예2: 07은 "bank1 Precharge, Activate and Read가 ok"이라는 것을 의미한다.
예3: 00은 "no command가 ok"라는 것을 의미한다.
예4: 20이 "only bank0 Activate가 ok"라는 것을 의미한다.
클럭신호는 SDRAM에 대해서는 물론 본 실시예의 클럭신호 모두로 이용된다.
간단한 예의 경우, 룰 로직(487)은 다음 법칙을 얻는다.
From To 클럭의 최소 개수
프리차지뱅크0/1 활성뱅크0/1 3
활성뱅크0/1 판독뱅크0/1 3
활성뱅크0/1 활성뱅크1/0 3
클럭0 동안, 앰티신호는 유효 메모리 액세스 요청(410)의 존재를 나타내는 로우로 진행한다. 판독신호는 이 요청을 판독하기 위해 하위로 진행하고 enip0은 요청을 니드-마커0(440)에 지향시킨다. 제1요청은 프리차지 및 활성명령을 선행하는데 필요한 뱅크0의 판독을 표시하는 ORN이다. 클럭0 동안, 니드-마커0(440)은 프리차지가 필요하고 클럭1 동안 OP로 니드0(450)을 출력하는 것을 결정한다. 룰(484)이 어느 명령이 ok라는 의미하는 77을 나타내기 때문에, OP는 명령 출력에 전파된다. 엑셉트0(491) 및 (442)은 마커0(440)이 허여되는 것을 나타내는 하위로 진행하여 니드-마커0(440)은 클럭(2)에 나타난 바와 같이, 니드0(450)을 이용하여 뱅크0의 OA활성에 대해 니드를 니드-마커0(440)이 출력하게 한다. 이는 룰(484)이 뱅크0에 대한 어떠한 명령도 받아들일 수 없다는 것을 나타내는 07을 나타내기 때문에, 이를 받아들일 수 없다. 마찬가지로, 뱅크(1)에 대한 프리차지에 대한 니드1(451)의 요청을 받아들인다. 이러한 프로세스는 클럭0: ORN, 1: 1RN, 7: 1R-동안, OP, 1P, OA, OR, 1A, 1R, 1R의 최적의 SDRAM 명령으로 변환하는 이러한 방식으로 지속함과 동시에 필요한 SDRAM 명령 타이밍이 만족한다.
도 4 및 도 5에 의해 설명된 실시예는 메모리 액세스 요청의 간단한 시퀸스를 메모리 액세스 명령의 시퀸스로 최적으로 오버랩핑 하게 하는 효과를 지닌다. 설명된 간단한 FIFO는 메모리 액세스 요청을 하게 하는 프로세스에 대한 간단한 인터페이스의 일례이다. 본 실시예는 간단한 로직으로 구성되어 있기 때문에, 메모리 액세스 명령의 성능 시퀸스가 높아진다. 출력 명령의 타이밍은 입력 요청의 타이밍과 차단되어 프로세스를 발생하는 메모리 액세스 요청에 대한 큰 변경 없이 용이하게 메모리의 형태나 구성을 변경할 수 있다.
도 4의 실시예가 두개의 요청(430) 및 (431), 두개의 니드-마커(440) 및 (441), 두개의 우선순위 선택기(461) 및 (462), 두개의 우선순위 니드(470) 및 (471), 두개의 우선순위 룰-점검기(482) 및 (483) 및 두개의 우선순위 명령(485) 및 (486)을 설명할지라도, 본 발명은 두개만의 각각의 상술한 항목으로 제한되지 않는다. 이들 항목을 2개 이상으로 할 수 있다. 본 실시예가 2 뱅크 SDRAM을 지원하는 예로 도시되어 있지만, 단지 2개의 뱅크 SDRAM으로 제한되지 않는다. 예를 들어, 하나 이상의 RAMS 또는 메모리의 기타의 형태 또는 구성을 지원하는 유사한 실시예를 설명할 수 있다. 또한, 이러한 실시예는 메모리 액세스 제어기에 대한 필요한 명령의 작은 서브세트를 지원할 수 있다. 예를 들어, 리프래쉬 및 기록 명령과 같은 기타의 명령에 대한 메모리 액세스 요청이 가능하다. 본 발명은 본 실시예에서 설명된 메모리 액세스 요청의 형태로 제한되지 않는다. 마찬가지로, 이러한 간단한 실시예는 룰 로직(487)에서의 룰의 작은 서브세트를 포함했다. 본 발명은 이 세트로 이러한 룰을 제한하지 않는다. 기타의 룰은 필요한 경우 더해지거나 삭제될 수 있다.
본 발명의 하나의 효과는 가능한 함께 근접하게 순차적으로 메모리 액세스가 발생하여 메모리 액세스의 성능을 최소로 하는 것이다. 오버랩핑을 발생하게 할 수 있는 명령 출력 선택기에서 허용 가능한 메모리 액세스 명령을 대기하게 하기 때문에, 프로세스는 최대 메모리 액세스 성능을 최대로하기위해 데이터 전송과 자동적으로 오버랩할 수 있다. 다중 니드-마커는 메모리 액세스에 대한 명령을 발생하고 이 효과는 출력 명령에 관한 다중선택을 할 수 있어서, 메모리 액세스 성능을 최적화하기위해 최적 명령 출력을 선택할 수 있다.
본 발명의 효과는 예를 들어, 이들 요청을 순차적으로 수신할 수 있는 간단한 메모리 액세스 요청 인터페이스로 인해 메모리 제어로부터 메모리 액세스를 필요로 하여 새로운 또는 상이한 메모리 형태 또는 구성에 대한 프로세스의 용이한 천이 및 프로세스 메모리 요건간의 메모리 액세스 제어기의 천이를 하게 하는 프로세스의 상대적인 천이이다.

Claims (7)

  1. 메모리 액세스 요청의 시퀸스를 입력하는 요청 입력과;
    상기 메모리 액세스 명령의 시퀸스를 출력하는 명령 출력과;
    상기 요청 입력으로부터 상기 메모리 액세스 요청을 허용하고 상기 메모리 액세스 요청을 하나 이상의 요청으로 디멀티프렉스하는 입력 로직과;
    니드는 메모리 액세스 명령이 각각의 상기 요청에 필요한 것이 무엇인지를 나타내며,
    상기 니드를 결정하는데 이용되는 하나 이상의 니드-마커와;
    우선순위 니드는 우선순위된 상기 니드이며, 상기 우선순위 니드를 하게 하는 우선순위기와;
    상기 우선순위 니드로부터 메모리 액세스 명령을 선택하여 이를 얻는 니드 선택기를 구비한 것을 특징으로 하는 메모리 액세스 요청을 메모리 액세스 명령으로 변환하는 메모리 액세스 제어기의 회로장치.
  2. 제1항에 있어서, 상기 우선순위 니드가 한 세트의 룰에 대해 점검함으로써 결정될 때 수용 가능하면 그리고 수용가능만하면, 상기 우선순위 니드로부터 전달되고,
    각 상기 우선순위 니드에 대응하는 우선순위 명령을 발생하는 룰-점검기와;
    상기 우선순위 명령으로부터 상기 메모리 액세스 명령을 선택하는 명령 출력 선택기를 포함하는 것을 특징으로 하는 메모리 액세스 제어기용 회로장치.
  3. 제2항에 있어서, 상기 룰-점검기는;
    상기 우선순위 니드가 한 세트의 룰에 대하여 점검함으로써 결정되었을 때 수용 가능하면 상기 우선순위 니드로부터 얻어지며, 각각의 상기 우선순위 니드에 대응하는 우선순위 명령을 발생하는 하나 이상의 우선순위 룰-점검기와;
    상기 세트의 룰이 메모리 액세스 명령이 수용 가능한 것을 결정하는데 이용되며, 상기 한 세트의 룰을 발생하는 룰 로직을 구비한 것을 특징으로 하는 메모리 액세스 요청을 메모리 액세스 요청으로 변환하는 메모리 액세스 제어기용 회로장치.
  4. 제3항에 있어서, 상기 룰 로직은;
    메모리 룰식이 SDRAM 액세스의 룰을 기반으로 하며, 메모리 액세스 명령이 수용가능하다는것을 결정하는 메모리 룰식을 포함하는 것을 특징으로 하는 메모리 액세스 요청을 메모리 액세스 명령으로 변환하는 메모리 액세스 제어기용 회로장치.
  5. 제1항에 있어서, FIFO로부터 상기 메모리 액세스 요청을 판독하기 위한 FIFO인터페이스와;
    상기 메모리 액세스 요청을 하나 이상의 상기 요청으로 디멀티플렉스 하는데 이용되는 요청 멀티플렉서를 포함하는 것을 특징으로 하는 메모리 액세스 요청을 메모리 액세스 명령으로 변환하는 메모리 액세스 제어기용 회로장치.
  6. 제1항에 있어서, 상기 니드-마커는 SDRA M 액세스에 필요한 순차를 기반으로 니드를 발생하는 상태 기기를 포함하는 것을 특징으로 하는 메모리 액세스 요청을 메모리 액세스 명령으로 변환하는 메모리 액세스 제어기용 회로장치.
  7. 제1항에 있어서, 상기 멀티플렉서는 상기 니드로부터 우선순위 니드를 선택하며, 각 상기 우선순위 니드에 대응하는 하나 이상의 멀티플렉서와;
    어느 상기 니드가 상기 각각의 상기 멀티플렉서의 상기 우선순위 니드로 선택되어져야 하는지를 결정하는 우선순위 결정기를 포함하는 것을 특징으로 하는 메모리 액세스 요청을 메모리 액세스 명령으로 변환하는 메모리 액세스 제어기용 회로 장치.
KR1019990001777A 1998-01-22 1999-01-21 메모리 액세스 제어기 KR100327953B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP01024298A JP4153579B2 (ja) 1998-01-22 1998-01-22 メモリアクセス制御装置
JP98-10242 1998-01-22

Publications (2)

Publication Number Publication Date
KR19990068048A true KR19990068048A (ko) 1999-08-25
KR100327953B1 KR100327953B1 (ko) 2002-03-16

Family

ID=11744848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990001777A KR100327953B1 (ko) 1998-01-22 1999-01-21 메모리 액세스 제어기

Country Status (5)

Country Link
US (1) US6295588B1 (ko)
EP (1) EP0932105B1 (ko)
JP (1) JP4153579B2 (ko)
KR (1) KR100327953B1 (ko)
DE (1) DE69921519T2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100815649B1 (ko) * 2002-10-10 2008-03-20 인텔 코오퍼레이션 메모리 액세스 패턴에 따라 데이터 액세스를 수행하기 위한장치 및 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918019B2 (en) 2001-10-01 2005-07-12 Britestream Networks, Inc. Network and networking system for small discontiguous accesses to high-density memory devices
US20030135552A1 (en) * 2002-01-14 2003-07-17 Blackstock Michael A. Method for discovering and discriminating devices on local collaborative networks to facilitate collaboration among users
US7613772B2 (en) * 2002-07-25 2009-11-03 Colligo Networks, Inc. Method for context based discovery and filtering of portable collaborative networks
US7782954B2 (en) * 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US20090222537A1 (en) * 2003-12-04 2009-09-03 Colligo Newworks, Inc., A Canadian Corporation System And Method For Interactive Instant Networking
KR20070105761A (ko) * 2006-04-27 2007-10-31 엠텍비젼 주식회사 데이터 처리 기능을 구비한 메모리 장치 및 그 데이터 처리방법
US20100312981A1 (en) * 2008-01-29 2010-12-09 Panasonic Corporation Memory access timing adjustment device and memory access timing adjustment method
US7613850B1 (en) 2008-12-23 2009-11-03 International Business Machines Corporation System and method utilizing programmable ordering relation for direct memory access
US8867303B2 (en) * 2011-09-16 2014-10-21 Altera Corporation Memory arbitration circuitry

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0212541A (ja) * 1988-04-29 1990-01-17 Internatl Business Mach Corp <Ibm> コンピユーテイング・システム及びその動作方法
JPH0492936A (ja) * 1990-08-06 1992-03-25 Nec Corp メモリアクセス制御装置
JPH064401A (ja) * 1992-06-19 1994-01-14 Fujitsu Ltd メモリアクセス回路
US5339442A (en) * 1992-09-30 1994-08-16 Intel Corporation Improved system of resolving conflicting data processing memory access requests
JP3443689B2 (ja) * 1993-06-28 2003-09-08 日本テキサス・インスツルメンツ株式会社 アービタ回路
JPH07175714A (ja) * 1993-12-17 1995-07-14 Toshiba Corp メモリアクセス調停装置及び方法
JPH08249266A (ja) * 1995-03-10 1996-09-27 Sharp Corp データ転送回路
US6047361A (en) * 1996-08-21 2000-04-04 International Business Machines Corporation Memory control device, with a common synchronous interface coupled thereto, for accessing asynchronous memory devices and different synchronous devices
US5990913A (en) * 1997-07-30 1999-11-23 Intel Corporation Method and apparatus for implementing a flush command for an accelerated graphics port device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100815649B1 (ko) * 2002-10-10 2008-03-20 인텔 코오퍼레이션 메모리 액세스 패턴에 따라 데이터 액세스를 수행하기 위한장치 및 방법

Also Published As

Publication number Publication date
EP0932105A2 (en) 1999-07-28
JP4153579B2 (ja) 2008-09-24
DE69921519T2 (de) 2005-10-27
EP0932105A3 (en) 2002-05-29
EP0932105B1 (en) 2004-11-03
DE69921519D1 (de) 2004-12-09
KR100327953B1 (ko) 2002-03-16
US6295588B1 (en) 2001-09-25
JPH11213662A (ja) 1999-08-06

Similar Documents

Publication Publication Date Title
US6253297B1 (en) Memory control using memory state information for reducing access latency
US5179372A (en) Video Random Access Memory serial port access
EP0649100B1 (en) Data processing system
US5537601A (en) Programmable digital signal processor for performing a plurality of signal processings
US6219724B1 (en) Direct memory access controller
US20110035559A1 (en) Memory controller, memory system, semiconductor integrated circuit, and memory control method
KR100327953B1 (ko) 메모리 액세스 제어기
KR100573256B1 (ko) 복수어드레스유지기억장치
US6342895B1 (en) Apparatus and method for memory allocation
KR101086417B1 (ko) 다이내믹 랜덤 액세스 메모리의 부분 액세스 장치 및 방법
US6008823A (en) Method and apparatus for enhancing access to a shared memory
US20110010472A1 (en) Graphic accelerator and graphic accelerating method
KR20010050236A (ko) 데이터 처리 장치 및 방법과 컴퓨터 프로그램 제품
JPH11345165A (ja) アクセス待ち時間を減少するため優先度とバースト制御を使用するトラフィック・コントローラ
JP4313456B2 (ja) メモリ制御装置
US5748920A (en) Transaction queue in a graphics controller chip
US6715024B1 (en) Multi-bank memory device having a 1:1 state machine-to-memory bank ratio
JP3610029B2 (ja) データ処理システム
US5327539A (en) Access processing system in information processor
US6785795B1 (en) Data processing device for use in cooperation with a memory
US20070033319A1 (en) Information processing system and memory controller for controlling operation of memories
JPH07311730A (ja) メモリ制御方法及び装置
US7124263B2 (en) Memory controller, semiconductor integrated circuit, and method for controlling a memory
GB2333202A (en) MPEG-decoder with two memory controllers
KR0167169B1 (ko) 데이타 송수신장치

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

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee