KR100518576B1 - 버스 중재기 및 버스 중재방법 - Google Patents

버스 중재기 및 버스 중재방법 Download PDF

Info

Publication number
KR100518576B1
KR100518576B1 KR10-2003-0033247A KR20030033247A KR100518576B1 KR 100518576 B1 KR100518576 B1 KR 100518576B1 KR 20030033247 A KR20030033247 A KR 20030033247A KR 100518576 B1 KR100518576 B1 KR 100518576B1
Authority
KR
South Korea
Prior art keywords
bus
page
index
bank
register file
Prior art date
Application number
KR10-2003-0033247A
Other languages
English (en)
Other versions
KR20040100775A (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 KR10-2003-0033247A priority Critical patent/KR100518576B1/ko
Priority to US10/752,963 priority patent/US7099976B2/en
Priority to CNB2004100458533A priority patent/CN100354844C/zh
Publication of KR20040100775A publication Critical patent/KR20040100775A/ko
Application granted granted Critical
Publication of KR100518576B1 publication Critical patent/KR100518576B1/ko

Links

Classifications

    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Abstract

버스 중재기 및 버스 중재방법이 제공된다. 상기 버스 중재기는 다수개의 버스 마스터들로부터 각각 출력되는 버스 요구 신호들 중에서 페이지 히트를 유발하는 버스 마스터에게 우선적으로 버스 허가신호를 주기 위하여 버스 요구 레지스터 파일, 뱅크 레지스터 파일 및 비교회로를 구비한다. 버스 요구 레지스터 파일은 다수개의 버스 마스터들로부터 발생되는 메모리 억세스 어드레스를 저장하고, 뱅크 레지스터 파일은 감지 증폭기에 저장된 오픈 페이지 인덱스를 저장하고, 비교회로는 상기 메모리 억세스 어드레스에 저장된 페이지 인덱스와 오픈 페이지 인덱스를 비교하고, 그 비교결과로서 페이지 히트/페이지 미스를 버스 요구 레지스터 파일로 출력한다. 따라서 버스 중재기는 버스 요구 신호들 중에서 페이지 히트를 유발하는 버스 마스터에게 우선적으로 버스 허가신호를 부여한다.

Description

버스 중재기 및 버스 중재방법{Bus arbiter and bus arbitrating method}
본 발명은 버스 중재기 및 버스 중재 방법에 관한 것으로, 보다 상세하게는 페이지 히트를 유발하는 버스 요구 신호를 발생한 버스 마스터에게 우선적으로 버스 허가신호를 주는 버스 중재기 및 버스 중재방법에 관한 것이다.
일반적으로, 버스 중재기(bus arbiter)는 버스에 접속된 다수개의 버스 마스터들(bus masters)사이에서 버스중재(bus arbitration)를 수행한다. 각 버스 마스터는 버스 요구신호(bus request signal)를 상기 버스중재기로 출력한다. 상기 버스 요구신호는 상기 버스의 사용을 요구하는 정보를 담고 있다.
상기 버스 중재기는 각 버스 마스터로부터 발생된 버스 요구신호들을 수신하고, 소정의 순서에 따라 각 버스마스터로 버스 허가신호(bus grant signal)를 출력한다. 버스 허가신호는 버스의 사용을 허가하는 정보를 담고 있다.
종래의 버스 중재기는 고정 우선순위(fixed priority)방식과 라운드 로빈(round-robin)방식을 포함하는 페어니스(fairness)방식을 사용하여 버스중재를 한다. 상기 고정 우선순위(fixed priority)방식은 버스 중재기가 다수개의 버스 마스터들 각각에게 서로 다른 우선순위를 미리 할당하는 방법으로, 버스 중재기는 우선 순위가 가장 높은 버스 마스터에게 버스 허가신호를 출력한다. 다수개의 버스 마스터들 각각에게 할당된 우선순위는 일정한 하나의 값으로 고정된다.
라운드 로빈(round-robin)방식은 하나의 그룹 내에 있는 모든 요소들을 합리적인 순서(rational order)로 공평하게 선택하는 방법으로서, 일반적으로 하나의 리스트의 맨 위로부터 맨 아래로 가며 하나씩 선택하고, 다시 리스트의 맨 위로 되돌아가서 계속 진행하는 방법이다. 즉, 라운드 로빈방식은 기회를 차례대로 받기 (taking turns)로 이해할 수 있다.
따라서 라운드 로빈(round-robin)방식을 사용하는 버스 중재기에서는, 각 버스 마스터가 합리적인 순서로 공평하게 버스를 사용하므로, 소정의 버스 마스터가 우선적으로 버스를 사용해야 할 필요가 있는 경우라도, 상기 소정의 버스 마스터는 우선적으로 버스를 사용하지 못하는 문제점이 있다.
또한, 고정 우선순위(fixed priority)방식을 사용하는 버스 중재기에서는, 우선 순위가 낮은 버스 미스터는 버스를 사용할 수 없는 경우도 발생하는 문제점이 있다. 즉, 종래의 버스 중재기의 하드웨어의 변경은 자유롭지 못했다.
따라서 상기 고정 우선순위방식과 라운드 로빈방식을 포함하는 페어니스방식을 사용하는 버스 중재기는 메모리 억세스 레이턴시(memory access latency)를 개선하기 어렵다. 상기 메모리 억세스 레이턴시는 SOC(system on chip)의 성능에 큰 영향을 미친다.
따라서 상기 메모리 억세스 레이턴시가 감소되지 않는 경우, SOC의 성능이 저하되는 문제점이 있다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 상기 메모리 억세스 레이턴시를 감소시키기 위하여 페이지 히트를 유발하는 버스 요구신호를 발생한 버스 마스터에게 버스 사용의 우선순위를 부여하는 버스 중재기 및 버스 중재방법을 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 버스에 접속된 M개의 버스 마스터들 각각으로부터 출력되는 버스 리퀘스트 신호들과 메모리 억세스 어드레스들에 기초하여 상기 버스를 획득한 버스 마스터에게 버스 허가신호를 출력하는 버스 중재기는 대응되는 상기 버스 마스터로부터 출력되는 상기 메모리 억세스 어드레스를 각각 저장하는 M개의 레지스터들을 구비하는 버스 요구 레지스터 파일; 대응되는 외부 메모리 장치의 메모리 뱅크의 감지증폭기에 저장된 페이지 인덱스를 각각 저장하는 N개의 레지스터들을 구비하는 뱅크 레지스터 파일; 및 대응되는 메모리 억세스 어드레스에 의하여 선택된 뱅크 레지스터 파일의 레지스터에 저장된 페이지 인덱스 및 상기 버스 요구 레지스터 파일의 각 레지스터에 저장된 페이지 인덱스를 각각 비교하고, 그 비교결과에 따른 페이지 히트/페이지 미스를 상기 버스 요구 레지스터 파일의 각 레지스터로 각각 출력하는 M개의 비교기들을 구비하는 비교회로를 구비하며, 상기 버스 중재기는 상기 페이지 히트가 발생되는 버스 마스터에게 상기 버스 허가신호를 우선적으로 부여한다.
상기 버스 중재기는 상기 페이지 미스가 발생되는 버스 마스터에게 페어니스(fairness)방식으로 상기 버스 허가신호를 부여한다.
상기 기술적 과제를 달성하기 위한 버스에 접속된 M개의 버스 마스터들 각각으로부터 출력되는 버스 리퀘스트 신호들과 메모리 억세스 어드레스들에 기초하여 상기 버스를 획득한 버스 마스터에게 버스 허가신호를 출력하는 버스 중재기는 M개의 레지스터들을 구비하는 요구 레지스터 파일; N개의 레지스터들을 구비하는 뱅크 레지스터 파일; 및 M개의 비교기들을 구비하는 비교회로를 구비하며, 상기 M개의 레지스터들 각각은 대응되는 상기 버스 마스터로부터 출력되는 페이지 인덱스 및 뱅크 인덱스를 각각 저장하는 페이지 인덱스 필드 및 뱅크 인덱스 필드를 구비하고, 상기 N개의 레지스터들 각각은 외부 메모리 장치의 메모리 뱅크의 감지증폭기에 저장된 페이지 인덱스를 저장하는 오픈 페이지 인덱스 필드를 구비하고, 상기 M개의 비교기들 각각은 상기 뱅크 인덱스에 의하여 선택된 상기 뱅크 레지스터 파일의 레지스터의 오픈 페이지 인덱스 필드에 저장된 페이지 인덱스를 비교하고, 그 비교결과에 따른 페이지 히트/페이지 미스를 상기 M개의 레지스터들 각각의 페이지 히트/페이지 미스 필드로 출력하고, 상기 버스 중재기는 상기 페이지 히트가 발생되는 버스 마스터에게 상기 버스 허가신호를 우선적으로 부여한다.
상기 버스 중재기는 상기 페이지 미스가 발생되는 버스 마스터에게 페어니스방식으로 상기 버스 허가신호를 부여한다.
상기 기술적 과제를 달성하기 위한 버스에 접속된 다수개의 버스 마스터들 각각으로부터 출력되는 버스 리퀘스트 신호들과 메모리 억세스 어드레스들에 기초하여 상기 버스를 획득한 버스 마스터에게 버스 허가신호를 출력하는 버스 중재방법은 상기 메모리 억세스 어드레스들 각각에 포함된 페이지 인덱스 및 뱅크 인덱스를 대응되는 버스 요구 레지스터 파일의 레지스터에 저장하는 단계; 대응되는 오픈 페이지 인덱스를 저장하며, 상기 뱅크 인덱스에 대응되는 레지스터를 서치하는 단계; 상기 페이지 인덱스와 상기 오픈 페이지 인덱스를 비교하고, 그 비교결과에 따른 페이지 히트/페이지 미스를 대응되는 상기 버스 요구 레지스터 파일의 레지스터에 저장하는 단계; 및 상기 페이지 히트가 발생되는 버스 마스터에게 상기 버스 허가신호를 우선적으로 부여하는 단계를 구비한다.
상기 버스 중재방법은 상기 페이지 미스가 발생되는 버스 마스터에게 페어니스방식으로 상기 버스 허가신호를 부여하는 단계를 더 구비한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 일반적인 메모리 컨트롤러의 페이지 모드를 나타낸다. 도 1을 참조하면, 메모리 컨트롤러의 페이지 모드(page mode)는 메모리 장치를 구성하는 메모리 셀들을 프리차지하는 시점에 따라 오픈 페이지 모드(open page mode) 또는 클로즈드 페이지 모드(closed page mode)로 구분된다.
오픈 페이지 모드는 대응되는 메모리 뱅크의 감지 증폭기에 버스 마스터가 요구하는 유효한 페이지(valid page)가 저장되어 있는 경우를 의미하며, 클로즈드 페이지 모드는 대응되는 메모리 뱅크의 감지 증폭기에 버스 마스터가 요구하는 유효한 페이지가 저장되어 있지 않은 경우를 의미한다.
오픈 페이지 모드에서 페이지 미스(page MISS)가 발생할 때만 프리차지(precharge)와 로우 억세스(row access)가 수행되고, 페이지 히트(page HIT)가 발생되는 경우 액티브 로우(active row)에 대한 컬럼 억세스(column access)가 수행된다. 오픈 페이지 모드에서 페이지 히트일 경우 메모리 억세스 레이턴시는 감소한다.
여기서, 페이지 히트(page HIT)는 버스 마스터가 요구하는 페이지가 감지 증폭기에 저장되어 있는 경우를 의미하고, 페이지 미스(page MISS)는 버스 마스터가 요구하는 페이지가 상기 감지 증폭기에 저장되어 있지 않은 경우를 의미한다. 클로즈드 페이지 모드에서 로우 억세스와 컬럼 억세스가 수행된다.
도 2는 종래의 버스 중재방법을 사용하는 시스템을 나타낸다. 도 2를 참조하면, 시스템(200)은 SOC(system on chip)로서 반도체 칩으로 구현되는 칩(210), 메모리 장치(230) 및 외부 버스(219)를 구비한다.
칩(210)은 버스(211), 세 개의 버스 마스터들(213-1, 213-2, 213-3), 버스 중재기(215) 및 메모리 컨트롤러(217)를 구비한다. 버스 마스터들(213-1, 213-2, 213-3)각각은 버스 중재기(215)와 및 메모리 컨트롤러(217)의 제어하에 독립적으로 메모리 장치(230)를 억세스(access)한다.
여기서 메모리 컨트롤러(217)는 버스 마스터들(213-1, 213-2, 213-3)각각이 메모리 장치(230)로/로부터 소정의 데이터를 기입하기 위한 데이터 기입동작/소정의 데이터를 독출하기 위한 데이터 독출 동작을 제어한다.
메모리 장치(230)로서 DRAM(Dynamic Random Access Memory), SDRAM (Synchronous DRAM), SDRAM-DDR(SDRAM Double Data Rate) 또는 RAMBUS DRAM이 사용될 수 있다. 메모리 장치(230)의 기본적인 억세스 단계는 도 1에서 설명한 오픈 페이지 모드 또는 클로즈드 페이지 모드를 포함한다.
메모리 장치(230)는 집적도를 높이고, 메모리 억세스 시간을 감소시키기 위하여 여러 개의 내부 뱅크들을 갖는다. 도 2에서는 설명의 편의를 위하여 세 개의 버스 마스터들(213-1, 213-2, 213-3)과 두 개의 메모리 뱅크들(231, 2373)만을 도시한다.
메모리 뱅크(231)는 다수개의 페이지들(231-1, 231-2, ..., 231-3) 및 감지 증폭기(이를 '버퍼'라고도 한다; 235)를 구비하며, 메모리 뱅크(237)는 다수개의 페이지들(237-1, 237-2, ..., 237-3) 및 감지 증폭기(또는 버퍼; 239)를 구비한다. 각 감지 증폭기(235, 239)는 하나의 페이지씩 저장한다.
도 3은 도 2에 도시된 시스템의 동작 타이밍 다이어그램을 나타낸다. 도 2 및 도 3을 참조하면. 모든 신호들은 클락(CLK)의 상승 에지에 동작하고, 하이 액티브(high active)이다.
REQ[1]은 버스 마스터#1(213-1)의 버스 요구신호)이고, 이때 버스 마스터#1(213-1)이 요구하는 페이지 인덱스는 X이다. REQ[2]는 버스 마스터#2(213-2)의 버스 요구신호이고, 버스 마스터#2(213-2)가 요구하는 페이지 인덱스는 Y이다. REQ[3]은 버스 마스터#3(213-3)의 버스 요구신호이고, 버스 마스터#1(213-1)이 요구하는 페이지 인덱스는 X이다.
GNT[1], GNT[2] 및 GNT[3]각각은 버스 중재기(215)로부터 대응되는 버스 마스터(213-1, 213-2, 213-3)로 출력되는 버스 허가신호를 나타낸다.
그리고, 버스 마스터#1(213-1)의 우선순위는 버스 마스터#2(213-2)의 우선순위보다 높고, 버스 마스터#2(213-2)의 우선순위는 버스 마스터#3(213-3)의 우선순위보다 높다고 가정한다.
각 버스 마스터(213-1, 213-2, 213-3)는 동일한 메모리 뱅크i(231)를 억세스하고, 0번 클락(CLK)에서 감지 증폭기(235)에 저장되어 있는 오픈 페이지 인덱스는 Y이다.
또한, 페이지 미스(MISS)인 경우 메모리 억세스 레이턴시는 두 클럭(CLK) 싸이클로 가정하고, 페이지 히트(HIT)인 경우 메모리 억세스 레이턴시는 한 클럭(CLK)싸이클로 가정한다.
1번 클럭(CLK)에서, 버스 마스터#1(213-1)의 우선순위는 버스 마스터#2(213-2)의 우선순위보다 높고, 버스 마스터#1(213-1)이 요구하는 페이지 인덱스는 X이고 감지 증폭기(235)에 저장되어 있는 페이지 인덱스는 Y이므로, 버스 중재기(215)는 페이지 미스(MISS)에 상응하는 버스 허가 신호(GNT[1])를 버스 마스터#1(213-1)로 출력한다.
그리고 버스 마스터#1(213-1)이 요구하는 페이지 인덱스(X)에 응답하여, 감지 증폭기(235)에 저장되어 있는 페이지 인덱스는 Y에서 X로 변한다.
2번 클럭(CLK)에서, 버스 마스터#2(213-2)가 요구하는 페이지 인덱스는 Y이고, 감지 증폭기(235)에 현재 저장되어 있는 페이지 인덱스는 X이므로, 버스 중재기(215)는 페이지 미스(MISS)에 해당되는 버스 허가 신호(GNT[2])를 버스 마스터#2(213-2)로 출력한다.
그리고 버스 마스터#2(213-2)가 요구하는 페이지 인덱스(Y)에 응답하여, 감지 증폭기(235)에 저장되어 있는 페이지 인덱스는 X에서 Y로 변한다.
4 번 및 5번 클락(CLK5)에서, 버스 마스터#3(213-3)이 요구하는 페이지 인덱스는 X이고, 감지 증폭기(235)에 현재 저장되어 있는 페이지 인덱스는 Y이므로, 버스 중재기(215)는 페이지 미스(MISS)에 해당되는 버스 허가 신호(GNT[3])를 버스 마스터#3(213-3)으로 출력한다.
그리고 버스 마스터#3(213-3)이 요구하는 페이지 인덱스(Y)에 응답하여, 감지 증폭기(235)에 저장되어 있는 페이지 인덱스는 Y에서 X로 변한다.
도 2 및 도 3을 참조하면, 각 버스 요구신호(REQ[1], REQ[2], 및 REQ[3])에 응답하여 버스 중재기(215)는 페이지 미스(MISS)에 해당되는 각 버스 허가 신호(GNT[1], GNT[2], 및 GNT[3])를 각 버스 마스터(213-1, 213-2, 213-3)로 출력한다. 따라서 메모리 억세스 레이턴시는 증가한다.
도 4는 본 발명의 실시예에 따른 버스중재기를 구비하는 시스템을 나타낸다. 도 5는 도 4에 도시된 각 버스 마스터로부터 발생된 메모리 억세스 어드레스를 나타낸다.
도 4의 시스템(400)은 SOC로서 반도체 칩으로 구현되는 칩(410), 메모리 장치(430) 및 외부 버스(419)를 구비한다.
칩(410)은 버스(411), 다수개의 버스 마스터들(413-1, 413-2, ..., 213-M), 버스 중재기(415) 및 메모리 컨트롤러(417)를 구비한다. 다수개의 버스 마스터들(413-1, 413-2, ..., 213-M)각각은 버스 중재기(415)와 및 메모리 컨트롤러(417)의 제어하에 독립적으로 메모리 장치(430)를 억세스 한다.
다수개의 버스 마스터들(413-1, 413-2, ..., 213-M)각각은 버스 요구신호들(REQ[1], REQ[2], ..., REQ[M])을 생성하는 동시에 도 5에 도시된 바와 같은 메모리 억세스 어드레스들(memory access address; MAA[1], MAA[2],..., MAA[M])을 생성한다.
메모리 억세스 어드레스들(MAA[1], MAA[2],..., MAA[M])각각은 도 5에 도시된 바와 같이 3개의 필드들(PI, BI, p)을 구비한다. PI필드(field)는 페이지 인덱스 필드를 나타내고, BI필드는 뱅크 인덱스 필드를 나타내고, p는 페이지 오프셋 필드를 나타낸다. PI필드(field)는 페이지 인덱스를 저장하고, BI필드는 뱅크 인덱스를 저장한다.
여기서 메모리 컨트롤러(417)는 버스 마스터들(413-1, 413-2,..., 413-M)각각이 메모리 장치(430)로 소정의 데이터를 기입하기 위한 데이터 기입동작 및 메모리 장치(430)로부터 소정의 데이터를 독출하기 위한 데이터 독출 동작을 제어한다.
메모리 장치(430)는 도 6에 도시된 바와 같이 N개의 메모리 뱅크들(431-1, 431-2, ..., 431-N)을 구비하며, N개의 메모리 뱅크들(431-1, 431-2, ..., 431-N)각각은 R개의 페이지들 및 하나의 감지 증폭기(4312, 4314, ..., 4316)를 구비한다. 도 6에 도시된 어드레스 맵은 뱅크 인터리빙(bank interleaving)의 어드레스 맵이다.
도 7은 본 발명의 실시예에 따른 버스 중재기를 나타낸다. 도 7을 참조하면, 본 발명에 따른 버스 중재기(415)는 버스 요구 레지스터 파일(4150), 뱅크 레지스터 파일(4170) 및 비교회로(4190)를 구비한다.
도 4 및 도 7을 참조하면, 버스 요구 레지스터 파일(4150)은 버스 마스터들의 개수만큼 필요하므로, 버스 요구 레지스터 파일(4150)은 M개의 레지스터들(4150-1. 4150-2.,,,, 4150M)을 구비한다. M개의 레지스터들(4150-1. 4150-2.,,,, 4150M)각각은 페이지 인덱스 필드(page index field; PI), 뱅크 인덱스 필드(bank index field; BI), 요구 유효 필드(request validity field: RV) 및 페이지 히트/미스 필드(page hit/miss field; HIT/MISS)를 구비한다.
페이지 인덱스 필드(PI)는 대응되는 버스 마스터가 요구하는 페이지 인덱스를 저장하고, 뱅크 인덱스 필드(BI)는 대응되는 상기 버스 마스터가 요구하는 뱅크 인덱스를 저장한다.
요구 유효 필드(RV)에는 요구 유효성에 대한 정보가 저장된다. 유효한 버스 요구는 대응되는 버스 마스터로부터 버스 요구신호가 존재하고 상기 버스 마스터가 메모리 장치를 억세스 하는 경우를 말한다. 페이지 히트/미스 필드(HIT/MISS)는 비교기의 비교결과가 저장된다.
M개의 레지스터들(4150-1. 4150-2.,,,, 4150M)각각은 대응되는 메모리 억세스 어드레스(MAA[1], MAA[2],..., MAA[M])의 페이지 인덱스(PI)와 뱅크 인덱스(BI)를 저장한다.
뱅크 레지스터 파일(4170)은 메모리 뱅크마다 필요하므로, 뱅크 레지스터 파일(4170)은 N개의 레지스터들(4170-1, 4170-2,..., 4170-N)을 구비하며, N개의 레지스터들(4170-1, 4170-2,..., 4170-N)각각은 오픈 페이지 인덱스 필드(RPI) 및 페이지 오픈/페이지 클로즈드 필드(OPEN/CLOSED)를 구비한다.
페이지 인덱스 필드(RPI)에는 메모리 장치(430)의 각 감지증폭기(4312, 4314, ..., 4316)에 저장된 페이지 인덱스가 저장된다. 페이지 오픈/페이지 클로즈드 필드(OPEN/CLOSED)는 현재 각 감지 증폭기에 유효한 페이지가 저장되어 있는가의 상태를 나타낸다.
비교회로(4190)는 M개의 비교기들(4190-1, 4190-2, ..., 4190-M)을 구비한다. M개의 비교기들(4190-1, 4190-2, ..., 4190-M)각각은 M개의 레지스터들(4150-1. 4150-2.,,,, 4150M)각각의 페이지 인덱스 필드(PI)에 저장된 페이지 인덱스와 M개의 레지스터들(4150-1. 4150-2.,,,, 4150M)각각의 뱅크 인덱스 필드(BI)에 저장된 뱅크 인덱스에 의하여 선택된 뱅크 레지스터 파일(4170)의 레지스터에 저장된 오픈 페이지 인덱스를 비교하고, 그 비교결과를 대응되는 레지스터들(4150-1. 4150-2.,,,, 4150M)각각의 페이지 히트/미스 필드(HIT/MISS)로 출력한다.
도 8은 도 7에 도시된 버스 중재기 및 3개의 버스 마스터들을 구비하는 시스템을 나타낸다. 도 8을 참조하면, 시스템(800)은 칩(810), 외부 버스(419) 및 메모리 장치(430)를 구비한다.
칩(810)은 버스(811), 세 개의 버스 마스터들(813-1, 813-2, 813-3), 버스 중재기(415) 및 메모리 컨트롤러(417)를 구비한다.
버스 마스터#1(813-1)은 REQ[1] 및 MAA[1]을 동시에 버스 중재기(415)로 출력하고, 버스 마스터#2(813-2)는 REQ[2] 및 MAA[2]를 동시에 버스 중재기(415)로 출력하고, 버스 마스터#3(813-3)은 REQ[3] 및 MAA[3]을 동시에 버스 중재기(415)로 출력한다.
도 5 및 도 8을 참조하면, MAA[1]의 페이지 인덱스 필드(PI)의 페이지 인덱스는 X이고, 뱅크 인덱스 필드(BI)의 뱅크 인덱스는 i이며, MAA[2]의 페이지 인덱스 필드(PI)의 페이지 인덱스는 Y이고, 뱅크 인덱스 필드(BI)의 뱅크 인덱스는 i 이며, MAA[3]의 페이지 인덱스 필드(PI)의 페이지 인덱스는 X이고, 뱅크 인덱스 필드(BI)의 뱅크 인덱스는 i이다. 여기서 i는 뱅크 i(431-1)를 나타내는 인덱스이다.
버스 마스터#1(813-1)의 우선순위는 버스 마스터#2(813-2)의 우선순위보다 높고, 버스 마스터#2(813-2)의 우선순위는 버스 마스터#3(813-3)의 우선순위보다 높다고 가정한다.
도 9는 도 8에 도시된 시스템의 동작 타이밍 다이어그램을 나타낸다. 도 7 내지 도 8을 참조하여 본 발명에 따른 버스 중재기(415)를 구비하는 시스템의 동작을 설명하면 다음과 같다. 여기서 M은 3이다.
0번 클락(CLK)에서 메모리 뱅크(431-1)의 감지 증폭기(4312)에 저장되어 있는 오픈 페이지는 Y이다. 따라서 뱅크 레지스터 파일(4170)의 i번째 레지스터의 페이지 인덱스 필드에는 오픈 페이지 인덱스 Y가 저장되어 있다.
레지스터(4150-1)의 페이지 인덱스 필드(PI) 및 뱅크 인덱스 필드(BI)는 X 및 i를 각각 저장하고, 레지스터(4150-2)의 페이지 인덱스 필드 및 뱅크 인덱스 필드는 Y 및 i를 각각 저장하고, 레지스터(4150-M)의 페이지 인덱스 필드 및 뱅크 인덱스 필드는 X 및 i를 각각 저장한다.
1번 클락(CLK)에서, 레지스터(4150-2)의 페이지 인덱스 필드(PI)에 저장된 페이지 인덱스는 Y이고 뱅크 레지스터 파일(4170)의 i번째 레지스터의 페이지 인덱스에 저장되어 있는 오픈 페이지 인덱스는 Y이므로, 비교기(4190-2)는 그 비교결과로서 페이지 히트(HIT)를 판정하고, 페이지 히트(HIT)를 레지스터(4150-2)의 페이지 히트/미스 필드(HIT/MISS)에 추가한다.
2번 클락(CLK)에서, 레지스터(4150-1)의 페이지 인덱스 필드(PI)에 저장된 페이지 인덱스는 X이고 뱅크 레지스터 파일(4170)의 i번째 레지스터의 오픈 페이지 인덱스에 저장되어 있는 페이지 인덱스는 Y이므로, 비교기(4190-1)는 그 비교결과로서 페이지 미스(MISS)를 판정하고, 페이지 미스(MISS)를 레지스터(4150-1)의 페이지 히트/미스 필드(HIT/MISS)에 추가한다. 그리고 뱅크 레지스터 파일(4170)의 i번째 레지스터의 페이지 인덱스 필드(RPI)에는 페이지 인덱스 X가 저장된다.
3번 및 4번 클락(CLK)에서, 레지스터(4150-3)의 페이지 인덱스 필드(PI)에 저장된 페이지 인덱스는 X이고 뱅크 레지스터 파일(4170)의 i번째 레지스터의 페이지 인덱스에 저장되어 있는 오픈 페이지 인덱스는 X이므로, 비교기(4190-3)는 rm 비교 결과로서 페이지 히트(HIT)를 판정하고, 페이지 히트(HIT)를 레지스터(4150-3)의 페이지 히트/미스 필드(HIT/MISS)에 추가한다.
따라서 버스 중재기(415)는 설정된 우선순위에 따르지 않고 페이지 히트(HIT)를 유발하는 버스 마스터#2(813-2)에게 우선적으로 버스 허가 신호(GNT[2])를 부여한다.
따라서 버스 중재기(415)는 버스 허가 신호(GNT[2])를 버스 허가신호(GNT[1])보다 우선적으로 부여한다. 즉 버스 허가 순서가 바뀌게 된다.
따라서 버스 마스터#2(813-2)와 버스 마스터(#3)의 버스 요구신호 각각은 페이지 히트(HIT)를 발생하므로, 메모리 억세스 레이턴시는 감소한다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 버스 중재기 및 버스 중재방법은 버스 요구 신호들 중에서 페이지 히트를 유발하는 버스 마스터에게 우선적으로 버스 허가신호를 주므로, 메모리 억세스 레이턴시는 감소한다.
또한 상기 버스 중재기를 구비하는 시스템의 성능이 개선되는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 일반적인 메모리 컨트롤러의 페이지 모드를 나타낸다.
도 2는 종래의 버스 중재방법을 사용하는 시스템을 나타낸다.
도 3은 도 2에 도시된 시스템의 동작 타이밍 다이어그램을 나타낸다.
도 4는 본 발명의 실시예에 따른 버스 중재기를 구비하는 시스템을 나타낸다.
도 5는 도 4에 도시된 각 버스 마스터로부터 발생된 메모리 억세스 어드레스를 나타낸다.
도 6은 도 4에 도시된 메모리 장치의 어드레스 맵을 나타낸다.
도 7은 본 발명의 실시예에 따른 버스 중재기를 나타낸다.
도 8은 도 7에 도시된 버스 중재기 및 3개의 버스 마스터들을 구비하는 시스템을 나타낸다.
도 9는 도 8에 도시된 시스템의 동작 타이밍 다이어그램을 나타낸다.

Claims (8)

  1. 버스에 접속된 M개의 버스 마스터들 각각으로부터 출력되는 버스 리퀘스트 신호들과 메모리 억세스 어드레스들에 기초하여 상기 버스를 획득한 버스 마스터에게 버스 허가신호를 출력하는 버스 중재기에 있어서,
    대응되는 상기 버스 마스터로부터 출력되는 상기 메모리 억세스 어드레스를 각각 저장하는 M개의 레지스터들을 구비하는 버스 요구 레지스터 파일;
    대응되는 외부 메모리 장치의 메모리 뱅크의 감지증폭기에 저장된 페이지 인덱스를 각각 저장하는 N개의 레지스터들을 구비하는 뱅크 레지스터 파일; 및
    대응되는 메모리 억세스 어드레스에 의하여 선택된 뱅크 레지스터 파일의 레지스터에 저장된 페이지 인덱스 및 상기 버스 요구 레지스터 파일의 각 레지스터에 저장된 페이지 인덱스를 각각 비교하고, 그 비교결과에 따른 페이지 히트/페이지 미스를 상기 버스 요구 레지스터 파일의 각 레지스터로 각각 출력하는 M개의 비교기들을 구비하는 비교회로를 구비하며,
    상기 버스 중재기는 상기 페이지 히트가 발생되는 버스 마스터에게 상기 버스 허가신호를 우선적으로 부여하는 것을 특징으로 하는 버스 중재기.
  2. 제1항에 있어서,
    상기 버스 중재기는 상기 페이지 미스가 발생되는 버스 마스터에게 페어니스(fairness)방식으로 상기 버스 허가신호를 부여하는 것을 특징으로 하는 버스 중재기.
  3. 제1항에 있어서,
    상기 메모리 억세스 어드레스는 페이지 인덱스를 저장하는 페이지 인덱스 필드 및 뱅크 인덱스를 저장하는 뱅크 인덱스 필드를 구비하는 것을 특징으로 하는 버스 중재기.
  4. 제1항에 있어서,
    상기 M개의 레지스터들 각각은 페이지 인덱스를 저장하는 페이지 인덱스 필드, 뱅크 인덱스를 저장하는 뱅크 인덱스 필드 및 상기 페이지 히트/페이지 미스에 대한 정보를 저장하는 페이지 히트/페이지 미스 필드를 구비하는 것을 특징으로 하는 버스 중재기.
  5. 버스에 접속된 M개의 버스 마스터들 각각으로부터 출력되는 버스 리퀘스트 신호들과 메모리 억세스 어드레스들에 기초하여 상기 버스를 획득한 버스 마스터에게 버스 허가신호를 출력하는 버스 중재기에 있어서,
    M개의 레지스터들을 구비하는 요구 레지스터 파일;
    N개의 레지스터들을 구비하는 뱅크 레지스터 파일; 및
    M개의 비교기들을 구비하는 비교회로를 구비하며,
    상기 M개의 레지스터들 각각은 대응되는 상기 버스 마스터로부터 출력되는 페이지 인덱스 및 뱅크 인덱스를 각각 저장하는 페이지 인덱스 필드 및 뱅크 인덱스 필드를 구비하고,
    상기 N개의 레지스터들 각각은 외부 메모리 장치의 메모리 뱅크의 감지증폭기에 저장된 페이지 인덱스를 저장하는 오픈 페이지 인덱스 필드를 구비하고,
    상기 M개의 비교기들 각각은 상기 뱅크 인덱스에 의하여 선택된 상기 뱅크 레지스터 파일의 레지스터의 오픈 페이지 인덱스 필드에 저장된 페이지 인덱스를 비교하고, 그 비교결과에 따른 페이지 히트/페이지 미스를 상기 M개의 레지스터들 각각의 페이지 히트/페이지 미스 필드로 출력하고,
    상기 버스 중재기는 상기 페이지 히트가 발생되는 버스 마스터에게 상기 버스 허가신호를 우선적으로 부여하는 것을 특징으로 하는 버스 중재기.
  6. 제5항에 있어서,
    상기 버스 중재기는 상기 페이지 미스가 발생되는 버스 마스터에게 페어니스(fairness)방식으로 상기 버스 허가신호를 부여하는 것을 특징으로 하는 버스 중재기.
  7. 버스에 접속된 다수개의 버스 마스터들 각각으로부터 출력되는 버스 리퀘스트 신호들과 메모리 억세스 어드레스들에 기초하여 상기 버스를 획득한 버스 마스터에게 버스 허가신호를 출력하는 버스 중재방법에 있어서,
    상기 메모리 억세스 어드레스들 각각에 포함된 페이지 인덱스 및 뱅크 인덱스를 대응되는 버스 요구 레지스터 파일의 레지스터에 저장하는 단계;
    대응되는 오픈 페이지 인덱스를 저장하며, 상기 뱅크 인덱스에 대응되는 레지스터를 서치하는 단계;
    상기 페이지 인덱스와 상기 오픈 페이지 인덱스를 비교하고, 그 비교결과에 따른 페이지 히트/페이지 미스를 대응되는 상기 버스 요구 레지스터 파일의 레지스터에 저장하는 단계; 및
    상기 페이지 히트가 발생되는 버스 마스터에게 상기 버스 허가신호를 우선적으로 부여하는 단계를 구비하는 것을 특징으로 하는 버스 중재방법.
  8. 제7항에 있어서, 상기 버스 중재방법은,
    상기 페이지 미스가 발생되는 버스 마스터에게 페어니스(fairness)방식으로 상기 버스 허가신호를 부여하는 단계를 더 구비하는 것을 특징으로 하는 버스 중재방법.
KR10-2003-0033247A 2003-05-24 2003-05-24 버스 중재기 및 버스 중재방법 KR100518576B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR10-2003-0033247A KR100518576B1 (ko) 2003-05-24 2003-05-24 버스 중재기 및 버스 중재방법
US10/752,963 US7099976B2 (en) 2003-05-24 2004-01-07 Bus arbiter and bus arbitrating method
CNB2004100458533A CN100354844C (zh) 2003-05-24 2004-05-20 总线仲裁器和总线仲裁方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0033247A KR100518576B1 (ko) 2003-05-24 2003-05-24 버스 중재기 및 버스 중재방법

Publications (2)

Publication Number Publication Date
KR20040100775A KR20040100775A (ko) 2004-12-02
KR100518576B1 true KR100518576B1 (ko) 2005-10-04

Family

ID=33448242

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0033247A KR100518576B1 (ko) 2003-05-24 2003-05-24 버스 중재기 및 버스 중재방법

Country Status (3)

Country Link
US (1) US7099976B2 (ko)
KR (1) KR100518576B1 (ko)
CN (1) CN100354844C (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7107425B2 (en) * 2003-09-06 2006-09-12 Match Lab, Inc. SDRAM controller that improves performance for imaging applications
US7366811B2 (en) * 2004-12-23 2008-04-29 International Business Machines Corporation Bus arbitration system
KR100726101B1 (ko) * 2005-04-29 2007-06-12 (주)씨앤에스 테크놀로지 메모리 제어 시스템
KR100813256B1 (ko) * 2006-06-23 2008-03-13 삼성전자주식회사 버스 중재 장치 및 방법
US7743191B1 (en) * 2007-12-20 2010-06-22 Pmc-Sierra, Inc. On-chip shared memory based device architecture
JP5217786B2 (ja) * 2008-08-27 2013-06-19 セイコーエプソン株式会社 リクエスト調停装置及びリクエスト調停方法
US8539129B2 (en) * 2010-04-14 2013-09-17 Qualcomm Incorporated Bus arbitration techniques to reduce access latency
US9842068B2 (en) 2010-04-14 2017-12-12 Qualcomm Incorporated Methods of bus arbitration for low power memory access
KR20160061704A (ko) 2014-11-24 2016-06-01 삼성전자주식회사 페이지 상태 알림 기능이 있는 메모리 장치
US9583182B1 (en) * 2016-03-22 2017-02-28 Intel Corporation Multi-level memory management
CN107329810B (zh) * 2016-04-28 2023-09-08 恩智浦美国有限公司 用于多核处理器的信号机
JP2021022061A (ja) * 2019-07-25 2021-02-18 キオクシア株式会社 ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
CA2028085A1 (en) * 1989-11-03 1991-05-04 Dale J. Mayer Paged memory controller
US5440713A (en) * 1992-05-29 1995-08-08 Industrial Technology Research Institute M-way N-port paged-interleaved memory system
JPH10143428A (ja) * 1996-11-07 1998-05-29 Nec Niigata Ltd 省電力用のメモリ制御システムおよびメモリ制御回路
US5652847A (en) * 1995-12-15 1997-07-29 Padwekar; Kiran A. Circuit and system for multiplexing data and a portion of an address on a bus
US5815675A (en) * 1996-06-13 1998-09-29 Vlsi Technology, Inc. Method and apparatus for direct access to main memory by an I/O bus
US5913231A (en) * 1997-03-31 1999-06-15 International Business Machines Corporation Method and system for high speed memory address forwarding mechanism
US6202137B1 (en) * 1997-09-18 2001-03-13 Intel Corporation Method and apparatus of arbitrating requests to a multi-banked memory using bank selects
JPH11316744A (ja) * 1998-05-01 1999-11-16 Sony Corp 並列プロセッサおよび演算処理方法
US6249847B1 (en) * 1998-08-14 2001-06-19 Compaq Computer Corporation Computer system with synchronous memory arbiter that permits asynchronous memory requests
US6330646B1 (en) * 1999-01-08 2001-12-11 Intel Corporation Arbitration mechanism for a computer system having a unified memory architecture
WO2001075620A1 (en) * 2000-04-03 2001-10-11 Advanced Micro Devices, Inc. Bus bridge including a memory controller having an improved memory request arbitration mechanism
US6792516B2 (en) * 2001-12-28 2004-09-14 Intel Corporation Memory arbiter with intelligent page gathering logic
US20040006665A1 (en) * 2002-07-02 2004-01-08 Moss Robert W. Methods and structure for hiding DRAM bank precharge and activate latency by issuing apriori bank state transition information
US20040078544A1 (en) * 2002-10-18 2004-04-22 Silicon Integrated Systems Corporation Memory address remapping method

Also Published As

Publication number Publication date
US20040236889A1 (en) 2004-11-25
CN1573722A (zh) 2005-02-02
US7099976B2 (en) 2006-08-29
KR20040100775A (ko) 2004-12-02
CN100354844C (zh) 2007-12-12

Similar Documents

Publication Publication Date Title
US7519774B2 (en) Data processor having a memory control unit with cache memory
US6671761B2 (en) Bus system
US6173356B1 (en) Multi-port DRAM with integrated SRAM and systems and methods using the same
US7650453B2 (en) Information processing apparatus having multiple processing units sharing multiple resources
JP2518989B2 (ja) メモリ・システム
KR101554294B1 (ko) 추론적 프리챠지의 검출
KR100518576B1 (ko) 버스 중재기 및 버스 중재방법
US20070156946A1 (en) Memory controller with bank sorting and scheduling
US7370161B2 (en) Bank arbiter system which grants access based on the count of access requests
CN117083588A (zh) 仲裁期间写入存储体组掩码
US8458411B2 (en) Distributed shared memory multiprocessor and data processing method
JP2001356961A (ja) 調停装置
US7543105B2 (en) Memory access control based on hit prediction
EP1262988A2 (en) Embedded memory access method and system for application specific integrated circuits
Ragab et al. DDR2 memory controller for multi-core systems with AMBA AXI interface
US20040034748A1 (en) Memory device containing arbiter performing arbitration for bus access right
JPH0330175B2 (ko)
US20240112722A1 (en) Directed refresh management for dram
WO2020066934A1 (ja) コマンド制御システム、車両、コマンド制御方法及びプログラム
Zheng et al. Design of a dynamic memory access scheduler
JP2001167049A (ja) バス調停装置
JPS63271561A (ja) Dma制御回路
JP2637319B2 (ja) 直接メモリアクセス回路
JP2005157929A (ja) 半導体装置
JP2003203009A (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: 20120831

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130902

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150831

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180831

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190830

Year of fee payment: 15