KR20070050214A - 버스 시스템에서 마스터들의 중재를 위한 시스템 및 방법 - Google Patents

버스 시스템에서 마스터들의 중재를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20070050214A
KR20070050214A KR1020050107514A KR20050107514A KR20070050214A KR 20070050214 A KR20070050214 A KR 20070050214A KR 1020050107514 A KR1020050107514 A KR 1020050107514A KR 20050107514 A KR20050107514 A KR 20050107514A KR 20070050214 A KR20070050214 A KR 20070050214A
Authority
KR
South Korea
Prior art keywords
master
exclusive access
masters
register file
slave
Prior art date
Application number
KR1020050107514A
Other languages
English (en)
Other versions
KR101226389B1 (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 KR1020050107514A priority Critical patent/KR101226389B1/ko
Publication of KR20070050214A publication Critical patent/KR20070050214A/ko
Application granted granted Critical
Publication of KR101226389B1 publication Critical patent/KR101226389B1/ko

Links

Images

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/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Abstract

본 발명은 시스템 온 칩(SoC)의 버스 시스템 및 방법에 관한 것으로, 특히 복수의 마스터(Master)들을 개방형 코어 프로토콜을 기반으로 하는 온 칩 버스 시스템에서 다수의 마스터들을 효과적으로 중재하기 위한 버스 시스템 및 방법에 관한 것이다.
본 발명은 AMBA AXI 프로토콜에서 마스터가 슬레이브를 독점 접근할 때, 실패를 피할 수 있는 방법 및 시스템을 제공하기 위해, 인터커넥트(320)내에 상기 독점 접근에 관한 레지스터 파일(350) 영역을 구비한다. 즉, 마스터가 독점 접근을 수행하기 전에 상기 레지스터 파일(350)을 먼저 확인하여, 다른 마스터가 독점 접근을 수행하고 있는지 여부를 검사하고, 다른 마스터가 이미 독점 접근을 수행하고 있다면, 상기 레지스터 파일(350)을 참조하여 동일한 슬레이브의 동일한 메모리 영역에 접근하지 않음으로써, 마스터의 독점 접근 실패를 방지한다.
AMBA 3.0, AXI, ARM, 버스 시스템, SoC

Description

버스 시스템에서 마스터들의 중재를 위한 시스템 및 방법{SYSTEM AND METHOD FOR ARBITRATING MASTERS IN BUS SYSTEM}
도 1은 일반적인 AMBA 3.0 표준의 AXI 프로토콜 구조 버스 시스템에 대한 블록 구성도,
도 2는 일반적인 AMBA 3.0 표준에 따른 독점 접근(Exclusive Access) 방법을 도시한 흐름도,
도 3은 본 발명이 실시 예에 따른 AMBA 3.0의 AXI 프로코톨 구조 버스 시스템의 블록 구성도,
도 4는 본 발명의 실시 예에 따라 다수의 마스터들이 독점 접근을 수행하기 위한 동작 흐름도.
본 발명은 시스템 온 칩(System On Chip : SoC)의 버스 시스템 및 방법에 관한 것으로, 특히 복수의 마스터(Master)들을 개방형 코어 프로토콜(Open Core Protocol)을 기반으로 하는 온 칩 버스 시스템(On-Chip Bus System)에서 다수의 마 스터들을 효과적으로 중재하기 위한 버스 시스템 및 방법에 관한 것이다.
최근 서로 다른 기능을 하는 수많은 복수의 칩(Chip)들을 하나의 칩상에 집적하는 시스템 온 칩의 사용이 보편화되고 있다. 그리고 시스템 온 칩의 설계에 있어서, 급변하는 시장의 요구에 대응하기 위해 개발에 소요되는 시간을 줄이는 것은 필수적이다. 이를 위해 기존에 설계되어 사용되고 있는 칩 블록 즉, 아이피 코어(IP Core : Intellectual Property Core)의 재활용이 점차 확대되고 있다. 이러한 아이피 코어의 재활용은 제품 개발에 소요되는 시간을 단축시킬 뿐만 아니라, 새로이 개발된 시스템 온 칩의 신뢰성을 향상시키는 데에도 효과적이다.
한편, 시스템 온 칩의 효과적인 설계를 위해서는 하나의 칩상에 집적된 복수의 아이피 코어간의 상호 통신을 위한 버스 시스템의 선택이 무엇보다 중요하다. 현재 사용되고 있는 가장 대표적인 버스 시스템은 ARM(Advanced RISC Machine)사의 암바(AMBA : Advanced Microcontroller Bus Architecture) 버스이다. AMBA 버스 2.0은 시스템 버스인 AHB(Advanced High-Performance Bus)와 주변 장치를 연결하는 APB(Advanced Peripheral Bus)로 구성되어 있다. AHB의 특징으로는 파이프 라인 동작(Pipelined Operation), 멀티플 버스 마스터(Multiple Bus Master), 버스트 트랜스퍼(Burst Transfer), 스플릿 트랜잭션(Split Transaction) 등이 있다. 그러나 AHB를 통해 하나의 마스터(Master)가 슬레이브(Slave)를 접근(Access)할 때, 버스를 점유하고 있을 때는 다른 마스터는 슬레이브를 액세스할 수 없기 때문에 동시에 여러 마스터가 있는 시스템에서는 버스 대기시간(Latency)이 많아지는 단점을 갖고 있다.
이러한 단점을 보완하고, 버스 구조를 효율적으로 사용할 수 있게 AMBA 3.0 표준에서는 기존의 2.0에서 정의한 AHB 대신에 시스템 버스로써 AXI 프로토콜을 정의하고 있다. 종래의 AXI 프로토콜 구조에 대한 블록 구성은 도 1에 도시되어 있다.
도 1은 일반적인 AMBA 3.0 표준에 따른 버스 시스템 구조의 블록 구성을 도시한 것이다.
상기 도 1에 도시된 AMBA 3.0 표준에 따른 3개의 마스터들(100, 101, 102)과 4개의 슬레이브들(110, 111, 112, 113), 상기 다수의 마스터들과 상기 다수의 슬레이브들을 연결시켜주는 인터커넥트(Interconnect)(120), 상기 마스터들(100, 101, 102)과 상기 인터커넥트(120)를 연결시켜주는 제1 인터페이스(130), 상기 슬레이브들(110, 111, 112, 113)과 상기 인터커넥트(120)를 연결시켜주는 제2 인터페이스(131)로 구성되어 있다. 상기 도 1에서 인터커넥트(120)는 AMBA 2.0의 아비터(Arbiter)와 디코더(Decoder)의 역할을 수행하며, 멀티-레이어(Multi-layer) 버스를 지원한다.
여기서, 상기 도 1에 도시된 각 구성 요소들은 AMBA 3.0 표준에 상세히 나와있지만, 이해의 편의를 위해 간략히 설명하기로 하겠다.
먼저, 마스터들(100, 101, 102)은 일반적으로 중앙 처리장치, 마이크로 컨트롤러 및 마이크로 프로세서 등으로 구비되며, 각각의 마스터들(100, 101, 102)은 인터커넥트(120)를 통해 슬레이브들(110, 111, 112, 113)에 접근하기 위한 요청 신호를 출력한다. 그리고, 상기 인터커넥트(120)로부터 승인(Grant) 신호가 수신되 면, 마스터들(100, 101, 102)은 버스 소유권(Bus Ownership)을 가진 것으로 판단하여 상기 슬레이브들(110, 111, 112, 113)에 접근하기 위한 정보 즉, 주소 정보, 제어 정보 등을 상기 인터커넥트(120)로 전송한다. 상기 버스 소유권을 갖은 마스터는 선택한 슬레이브로 읽기 또는 쓰기 동작을 수행하게 된다.
슬레이브들(110, 111, 112, 113)은 예컨대, 반도체 장치가 될 수 도 있으며, 상기 마스터들의 요청에 응답하는 장치가 될 수도 있다. 상기 슬레이브들은 메모리와 상기 메모리를 제어할 메모리 제어기를 구비하고 있다.
그리고 인터커넥트(120)의 설명에 앞서 AMBA 2.0의 표준에 상세히 나와있는 아비터와 디코더를 먼저 설명하기로 하겠다.
아비터(Arbiter)는 한번에 하나의 마스터만이 버스를 사용하도록 권한을 부여하는 것으로, 마스터들(100, 101, 102)과 슬레이브(110, 111, 112, 113)들 간의 버스 사용을 위해 고정 우선권(Fixed Priority)방식 또는 라운드 로빈(Round-Robin) 방식을 이용하여 마스터들(100, 101, 102)간의 버스 사용을 중재한다. 디코더는 마스터가 전송하고자 하는 슬레이브의 주소를 디코딩한다.
상술한 바와 같은 아비터와 디코더의 기능을 수행하는 것이 인터커넥트(120)이며, 다수의 마스터들과 슬레이브들 간의 상호 데이터 전송을 위한 주소(Address)와 데이터(Data) 및 제어(Control) 정보를 전달한다.
즉, 인터커넥트(120)는 상기 버스 마스터들로부터 상기 슬레이브들 중 적어도 하나를 데이터 접근하기 위해 버스 소유권(Bus Ownership)을 갖는 버스 마스터로부터 어드레스 정보와 제어 정보(예를 들어, 쓰기/읽기 명령, 버스트 동작, 데이 터 크기 등)를 포함하는 구동 정보를 받아서 중재를 통해 하나의 버스 마스터를 선택하고, 해당 슬레이브로 데이터 처리 준비 요구를 보내어 해당 데이터를 처리한다.
상술한 바와 같은 시스템 구성을 갖는 AMBA 시스템의 AXI 프로토콜에서 마스터들에게 지원하는 접근(Access) 방식으로는 일반 접근(Normal Access), 독점 접근(Exclusive Access), 잠금 접근(Locked Access) 의 3가지 방식이 있다.
일반 접근과 잠금 접근은 AMBA 2.0인 AHB에서도 지원이 되었던 방식이고, AMBA 3.0에서 새롭게 추가된 접근 방식이 독점 접근 방식이다.
일반 접근은 기존의 AMBA 2.0 버스에서 사용되는 기본적인 동작으로 하나의 마스터가 슬레이브를 접근하기 위해서 버스를 점유하고 있을 때, 다른 마스터들은 버스를 점유하지 못하고 기존에 버스를 점유하고 있는 마스터의 버스 점유가 해제되는 것을 기다렸다가 순차적으로 마스터들이 버스를 점유하면서 슬레이브를 접근하는 방법이다. 이 경우에는 마스터가 버스를 오래 점유하고 있으면 early termination을 발생할 수 있다. 그러나 잠금 접근에서는 early termination을 할 수 없다.
잠금 접근은 마스터 1(100)이 슬레이브 1(110)에게 잠금 접근을 요청하면 버스트 전송이 종료될 때까지 버스는 마스터 1(100)과 슬레이브 1(110)사이의 연결(Connection)만 존재하게 된다. 이 경우 다른 마스터들은 버스 점유를 하지못하게 되기 때문에 다른 슬레이브들에 대한 접근을 하지 못하고, 마스터 1(100)의 접근이 종료될 때까지 대기하여야 한다. 이 경우 다른 마스터들(101,102)의 대기 시간 (Latency)이 증가하는 단점이 존재한다. 그래서 이 단점을 해결하기 위해 AMBA 3.0에서는 상기의 독점 접근(Exclusive Access)을 지원하도록 정의하였다.
상기 AMBA 3.0의 표준에 따라 마스터가 독점 접근을 수행하는 방식은 하기의 도 2와 같다.
도 2는 일반적인 AMBA 3.0 표준에 따른 독점 접근(Exclusive Access) 방법을 도시한 흐름도로써, 상기 도 1을 참조하여 설명하기로 한다.
먼저, 200단계에서 마스터1(100)이 슬레이브1(110)의 특정 메모리 주소 영역의 데이터를 독점(Exclusive)하여 읽는다. 202단계에서 마스터1(100)은 상기 읽은 데이터를 이용하여 해당되는 프로세싱을 수행한 후, 204단계에서 마스터1(100)은 상기 슬레이브1(110)의 동일한 메모리 주소 영역에 상기 프로세싱한 데이터를 기록(Write)한다.
206단계에서 슬레이브1(110)은 상기 마스터의 독점 읽기가 성공하였다면, 208단계로 진행하여 독점 접근 성공(EXOKAY)신호를 상기 마스터1(100)으로 전송한다. 그렇지 않고, 독점 읽기가 실패했다면, 210단계로 진행하여 슬레이브1(110)은 상기 마스터1(100)으로 독점 접근 실패(OK)신호를 전송한다.
상기 도 2의 210단계에서와 같이 독점 접근이 실패하는 경우는 상기 독점 접근을 요청한 마스터 즉 마스터1(100)이 독점 접근 쓰기/읽기 동작을 수행하는 도중 다른 마스터(마스터2 또는 마스터 3)에 의해 상기 마스터 1이 독점 접근을 수행하고 있는 동일한 슬레이브의 동일한 메모리의 데이터를 읽을 때 발생하게 된다.
즉, 상술한 바와 같이 일반적인 AMBA 3.0 표준에 따라 다수의 마스터들이 독 점 접근을 요구하는 경우, 동일한 슬레이브의 동일한 영역에 접근함에 따라 발생하는 실패를 방지할 수 없는 문제가 있었다.
본 발명은 시스템 버스에서 다수의 마스터들과 다수의 슬레이브들간의 중재를 위한 시스템 및 방법을 제공한다.
본 발명은 시스템 버스에서 다수의 마스터들의 버스 시스템을 효율적으로 점유하기 위한 시스템 및 방법을 제공함에 있다.
본 발명에 따른 적어도 하나의 마스터와 상기 마스터가 접근할 수 있는 적어도 하나의 슬레이브를 구비하는 고속 버스 시스템의 중재 방법에 있어서, 상기 마스터가 현재 다른 마스터들에 의해 독점 접근(Exclusive Access)이 수행되고 있는지 인터커넥트(Interconnect)내의 레지스터 파일(Register File)을 검사하는 과정과, 상기 독점 접근이 행해지고 있다면, 상기 마스터가 상기 독점 접근을 수행하는 마스터와의 충돌을 회피하기 위해 상기 독점 접근이 수행하기 위한 구동 정보를 상기 레지스터 파일로부터 읽는 과정과, 상기 마스터가 슬레이브로 독점 접근을 요청하고, 상기 레지스터 파일내의 소정 값들을 변경하는 과정과, 상기 마스터가 상기 독점 접근할 슬레이브의 메모리에 읽기/쓰기 동작을 수행하는 과정과, 상기 독점 접근이 정상적으로 종료되면, 상기 슬레이브가 상기 마스터로 성공 신호를 전송하는 과정을 포함한다.
본 발명에 따른 적어도 하나의 마스터들과 상기 마스터들이 독점 접근할 수 있는 적어도 하나의 슬레이브들을 구비하는 고속 버스 시스템의 중재 시스템에 있어서, 상기 적어도 하나의 마스터들의 독점 접근 요청에 의해 데이터 읽기/쓰기 동작이 수행되고, 상기 적어도 하나의 마스터들의 독점 요청을 수신할 경우 상기 인터커넥트 내의 상기 레지시터 파일의 정보를 설정하는 상기 적어도 하나의 슬레이들과, 상기 마스터들과 상기 슬레이브들 간의 상기 독점 접근을 위한 정보들이 저장된 레지스터 파일을 구비하고, 상기 마스터들과 상기 슬레이브들을 연결하고, 상기 마스터들이 상기 슬레이브로 독점 접근하기 위한 버스들을 포함하는 상기 인터커넥트와, 상기 레지스터 파일을 참고하여 상기 버스 시스템 내에 현재 독점 접근을 수행하는 다른 마스터가 있는지 검사하고, 상기 독점 접근을 처음으로 요청할 경우, 상기 레지스터 파일의 소정 정보를 기록한 후, 상기 독점 접근을 요청한 슬레이브로 데이터 읽기/쓰기 동작을 하고, 이미 독점 접근을 수행 중인 마스터가 존재할 경우, 상기 레지스터 파일을 참고하여 상기 독점 접근을 수행할 구동 정보를 근거로 상기 독점 접근을 수행 중인 마스터가 접근하는 동일한 슬레이브의 동일한 메모리 이외의 주소로 독점 접근을 요청하는 상기 적어도 하나의 마스터들을 포함한다.
이하 본 발명의 실시 예를 첨부한 도면을 참조하여 상세히 설명하기로 하겠다. 도면들 중 동일한 구성들은 가능한 한 어느 곳에서든지 동일한 부호들을 나타내고 있음을 유의해야 한다. 하기에서 구체적인 특정사항들이 나타나고 있는데, 이 는 본 발명의 보다 전반적인 이해를 돕기 위해 제공된 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
먼저 본 발명의 설명에 앞서, 본 발명의 기본 개념을 설명하면 다음과 같다. 본 발명은 AMBA AXI 프로토콜에서 마스터가 슬레이브를 독점 접근할 때, 실패를 피할 수 있는 방법 및 시스템을 제공하기 위해, 인터커넥트(320)내에 상기 독점 접근에 관한 레지스터 파일(350) 영역을 구비한다. 즉, 마스터가 독점 접근을 수행하기 전에 상기 레지스터 파일(350)을 먼저 확인하여, 다른 마스터가 독점 접근을 수행하고 있는지 여부를 검사하고, 다른 마스터가 이미 독점 접근을 수행하고 있다면, 상기 레지스터 파일(350)을 참조하여 동일한 슬레이브의 동일한 메모리 영역에 접근하지 않음으로써, 마스터의 독점 접근 실패를 방지한다.
도 3은 본 발명이 실시 예에 따른 AMBA 3.0의 AXI 프로코톨 구조 버스 시스템의 블록 구성도이다.
본 발명의 실시 예에서는 설명의 편의를 위해 마스터와 슬레이브가 각각 두 개라고 가정하겠으며, 마스터 A(300)가 현재 슬레이브 A(310)에 대해 독점 접근을 수행 중이며, 마스터 B(301)가 독점 접근을 요청한 상태라고 가정하기로 하겠다.
상기 도 3을 살펴보면, 두 개의 마스터들(300, 301)과 두 개의 슬레이브들(310, 311), 상기 마스터들(300, 301)을 연결시켜주는 인터커넥트(320)로 크게 구성되어 있다. 그리고 상기 마스터들(300, 301)과 인터커넥트(320)를 연결하는 인터페이스들(340, 341), 상기 슬레이브들(310, 311)과 인터커넥트(320)를 연결하는 인 터페이스들(342, 343)로 구성된다.
그리고, 상기 도 3의 구성에 대한 설명 중 상기 도 1과 동일한 부분에 대해서는 생략하기로 하겠다.
참조번호 330은 마스터 A(300)가 인터페이스(340)를 통해 인터커넥트(320)와 연결되는 포트(Port)이며, 참조번호 331은 마스터 B(301)이 인터페이스(341)를 통해 인터커넥트(320)와 연결되는 포트이다. 참조번호 332는 슬레이브 A(310)가 인터페이스(342)를 통해 인터커넥트(320)와 연결되는 포트이며, 참조번호 333은 슬레이브 B(311)가 인터페이스(343)를 통해 인터커넥트(320)와 연결되는 포트를 나타낸다.
상기 인터커넥트(320)에는 또한, 마스터들과 슬레이브들간의 읽기/쓰기 동작을 위한 버스가 2개 존재한다. 상기 도 3에 도시된 것과 같이 인터커넥트(320)내에 구비된 버스는 주소 버스(Address Bus)(360), 데이터 버스(Data Bus)(370)로 구성된다.
주소 버스(360)는 마스터들(300, 301)이 데이터를 읽기/쓰기 위한 슬레이브들(310, 311)의 주소를 디코딩하는 역할을 수행하여, 데이터 버스(370)는 상기 디코딩된 주소에 해당되는 슬레이브의 메모리 주소로 상기 마스터들(300, 301)들이 읽거나 쓸 데이터 들을 전송한다. 이러한 주소 버스(360)와 데이터 버스(370)은 SoC와 같은 모든 버스 시스템에 구비된다.
그리고, 제어 신호(380)는 상기 마스터들(300, 301)이 슬레이브들(310, 311)에 대해 독점 접근을 수행하기 위해 본 발명에서 새로 추가된 레지스터 파일(350) 의 정보들을 검사하기 위한 신호이다.
레지스터 파일(Register File)(350)은 본 발명의 실시 예에 따라 독점 접근을 수행할 마스터(300, 301)들 간의 충돌을 방지하기 위한 소정 정보가 저장되어 있으며, 그 내용은 하기의 <표 1>과 같다.
Register 할당된 Bit 설명
Indicator Flag 1 Bit 독점 접근(Exclusive Access)에 대한 플래그 (Flag == 1 일 때 독점 접근 발생)
Counter 4 Bit 독점 접근을 하는 마스터 개수
Reserved bit 3 Bit 예약된 비트
Master ID 4 Bit 마스터를 구분하기 위한 ID
Master Port ID 4 Bit 마스터 포트를 구분하기 위한 ID
Slave Port ID 8 Bit 슬레이브의 포트 ID, 즉 목적지(Destination) ID
Start Address 32 Bit 슬레이브의 메모리를 접근할 시작 번지
Data Length 32 Bit 데이터 길이
상기 <표 1>에서 지시 플래그(indicator Flag)는 현재 버스 시스템에서 독점 접근을 수행하고 있는 마스터의 유무를 나타내는 정보로서 1비트로 표현되며, 지시 플래그가 "1"이라면, 현재 독점 접근을 수행하고 있는 마스터가 존재함을 나타낸다.
카운터(Counter)는 현재 독점 접근을 수행하는 마스터 개수를 나타내는 플래그이며, 만일 현재 버스 시스템에서 독점 접근을 수행하고 있는 마스터 개수가 1개라면, 상기 카운터는 "1"로 설정된다.
예약 비트(Reserved bit)는 추후 사용을 위해 예약된 비트이며, 마스터 ID(Master ID)는 인터커넥트(320)에서 마스터를 구분하기 위한 ID를 나타내기 위한 비트, 마스터 포트 ID(Master Port ID)는 마스터 포트를 구분하기 위한 ID를 나타내기 위한 비트로서 4비트로 나타낸다. 그리고, 슬레이브 포트 ID(Slave Port ID)는 슬레이브 포트, 즉 마스터가 읽기/쓰기 동작을 수행할 목적지의 ID를 나타내기 위한 비트로 8비트로 나타낸다. 시작지 주소(Start Address)는 마스터가 읽기/쓰기 동작을 수행하기 위한 슬레이브의 메모리의 시작 번지를 나태내는 비트로 32비트로 나타내며, 데이터 길이(Data Length)는 마스터가 읽기/쓰기 동작을 하기 위한 데이터의 크기를 나타내는 비트로서, 32비트로 나타낸다. 이와 같이 본 발명의 실시 예에 따른 레지스터 파일(350)은 예약 비트 3비트를 포함하여 총 85비트로 구성되어있다.
상기 <표 1>에서 지시 플래그, 카운터, 마스터 ID, 마스터 포트 ID는 독점 접근을 수행하는 마스터가 설정하며, 시작지 주소, 데이터 길이는 독점 접근 요청을 수신한 슬레이브가 설정한다. 그리고 상기 <표 1>에서 카운터, 마스터 ID, 마스터 포트 ID, 슬레이브 포트 ID, 시작지 주소, 데이터 길이는 마스터가 독점 접근을 수행하기 위해 필요한 정보로서, 이하에서는 구동 정보라 통칭하기로 한다.
도 4는 본 발명의 실시 예에 따라 다수의 마스터들이 독점 접근을 수행하기 위한 동작 흐름도이다.
먼저, 상기 도 4도 상기 도 3에서와 마찬가지로, 마스터 A(300)가 현재 슬레이브 A(310)에 대해 독점 접근을 수행 중이고, 마스터 B(301)가 독점 접근을 수행하기 위한 과정을 예로 들어 설명한다. 현재 마스터 A(300)만이 독점 접근을 수행 중이라면, 마스터 A(300)는 상기 레지스터 파일(350)내의 지시 플래그와 카운터 마스터 포트 ID, 마스터 ID를 제어신호(380)를 통해 설정한다. 그리고, 상기 마스터 A(300)가 독점 접근을 요청할 슬레이브 A(310)은 상기 제어신호(380)를 통해 상기 레지스터 파일(350)내의 슬레이브 포트 ID와 시작지 주소, 데이터 길이를 설정한다.
400단계에서 마스터 B(301)가 독점 접근을 수행한다면, 402단계로 진행하여, 상기 인터커넥트(320)내의 레지스터 파일(350)내의 지시 플래그(Indicator Flag)를 제어 신호(Control Signal)(380)를 통해 검사한다.
404단계에서 상기 지시 플래그가 "1"이라면, 마스터 B(301)는 406단계로 진행하여 상기 레지스터 파일(350)내의 구동 정보를 읽는다. 여기서, 상기 구동 정보라 함은, 마스터 ID, 마스터 포트 ID, 슬레이브 포트 ID, 시작지 주소, 데이터 길이를 의미한다. 상기 406단계에서 마스터 B(301)는 상기 구동 정보를 근거로 현재 마스터 A(300)가 어떤 슬레이브의 어떤 메모리 영역에 접근하고 있는지를 파악할 수 있으며, 따라서 마스터 B(301)은 상기 마스터 A(300)가 접근하고 있는 동일한 슬레이브의 동일한 메모리 영역을 제외한 다른 영역에 대해 독점 접근을 수행할 수 있다. 그리고 408단계에서 마스터 B(301)는 상기 구동 정보를 근거로 독점 접근할 슬레이브로 독점 접근을 요청하게 되며, 410단계에서 마스터 B(301)는 상기 레지스터 파일(350)내의 구동 정보를 설정하는데, 대표적으로 상기 구동 정보들 중 현재 독점 접근을 수행하는 마스터 개수인 카운터(Counter)를 "1" 증가 시킨다.
상기 도 4의 410단계에서는 현재 독점 접근을 수행하는 마스터 개수(Counter)만을 증가시키는 것으로 기재되어 있으나, 실제로는 상기 레지스터 파일(350)내의 구동 정보들이 현재 독점 접근을 수행하고 있는 정보들로 변경되게 된다.
반면, 상기 404단계에서 지시 플래그가 "1"이 아니라면, 현재 버스 시스템에서 독점 접근을 수행 중인 마스터가 없다는 의미이므로, 마스터 B(301)는 바로 408단계로 진행하여 독점 접근할 슬레이브로 독점 접근을 요청한다.
412단계에서 마스터 B(301)는 슬레이브의 메모리에 데이터 읽기/쓰기 동작을 수행하고, 414단계에서 상기 마스터 B(301)가 독점 접근한 슬레이브로부터 독점 성공 신호(EXOKAY)를 수신하면, 416단계로 진행하여 현재 독점 접근을 수행하는 마스터 개수를 "1" 감소시킨다. 반면, 상기 414단계에서 상기 슬레이브로부터 독점 접근 성공신호를 수신하지 못하면, 독점 접근이 실패했다는 의미이므로 상기 400단계로 진행하여 독점 접근 동작을 다시 시작하게 된다.
상기 416단계에서 독점 접근을 수행하는 마스터 개수를 감소시킨 마스터 B(301)는 418단계에서 현재 독점 접근을 수행하는 마스터 개수가 "0"인지를 검사한다. 만일, "0"이라면, 현재 독점 접근을 수행하는 마스터가 없다는 의미이므로, 420단계로 진행하여 레지스터 파일(350)내의 지시 플래그를 "0"으로 설정한다.
상술한 바와 같이 본 발명을 적용하면, 마스터들이 동일한 슬레이브의 동일한 메모리에 접근하지 않음으로써, 독점 접근이 발생할 시 실패를 줄일 수 있다.
또한, 종전과 같이 하나의 마스터의 버스 점유가 끝날 때 까지 다른 마스터들의 슬레이브로 읽기/동작을 수행하지 못하고 있던 대기 시간(Latency)이 줄어드는 장점이 있다.

Claims (11)

  1. 적어도 하나의 마스터와 상기 마스터가 접근할 수 있는 적어도 하나의 슬레이브를 구비하는 고속 버스 시스템의 중재 방법에 있어서,
    상기 마스터가 현재 다른 마스터들에 의해 독점 접근(Exclusive Access)이 수행되고 있는지 인터커넥트(Interconnect)내의 레지스터 파일(Register File)을 검사하는 과정과,
    상기 독점 접근이 행해지고 있다면, 상기 마스터가 상기 독점 접근을 수행하는 마스터와의 충돌을 회피하기 위해 상기 독점 접근을 수행하기 위한 구동 정보를 상기 레지스터 파일로부터 읽는 과정과,
    상기 마스터가 슬레이브로 독점 접근을 요청하고, 상기 레지스터 파일내의 소정 값들을 변경하는 과정과,
    상기 마스터가 상기 독점 접근할 슬레이브의 메모리에 읽기/쓰기 동작을 수행하는 과정과,
    상기 독점 접근이 정상적으로 종료되면, 상기 슬레이브가 상기 마스터로 성공 신호를 전송하는 과정을 포함함을 특징으로 하는 버스 시스템에서 마스터들의 중재를 위한 방법.
  2. 제1 항에 있어서,
    상기 마스터가 현재 다른 마스터들에 의해 독점 접근(Exclusive Access)이 수행되고 있는지 인터커넥터내의 레지스터 파일을 검사하는 과정은,
    상기 레지스터 파일내의 지시 플래그(Indicator flag)가 "1"로 설정되었는지를 검사하는 과정을 포함함을 특징으로 하는 버스 시스템에서 마스터들의 중재를 위한 방법.
  3. 제2 항에 있어서,
    상기 성공 신호를 수신한 상기 마스터가 상기 레지스터 파일내의 소정 값을 감소시키는 과정과,
    만일, 상기 감소시킨 소정 값이 "0"이라면, 상기 마스터가 지시 플래그를 "0"으로 설정하는 과정을 더 포함함을 특징으로 하는 버스 시스템에서 마스터들의 중재를 위한 방법.
  4. 제1 항에 있어서,
    상기 마스터가 상기 레지스터 파일로부터 읽는 상기 구동 정보는,
    마스터 ID, 카운터(Counter), 마스터 ID, 마스터 포트 ID, 슬레이브 포트 ID, 시작지 주소(Start Address), 데이터 길이를 포함함을 특징으로 하는 버스 시스템에서 마스터들의 중재를 위한 방법.
  5. 제3 항에 있어서,
    상기 성공 신호를 수신한 상기 마스터가 상기 레지스터 파일내의 소정 값을 감소시키는 과정은,
    상기 레지스터 파일 내의 카운터(Counter)를 "1" 감소시키는 과정을 포함함을 특징으로 하는 버스 시스템에서 마스터들의 중재를 위한 방법.
  6. 적어도 하나의 마스터들과 상기 마스터들이 독점 접근할 수 있는 적어도 하나의 슬레이브들을 구비하는 고속 버스 시스템의 중재 시스템에 있어서,
    상기 적어도 하나의 마스터들의 독점 접근 요청에 의해 데이터 읽기/쓰기 동작이 수행되고, 상기 적어도 하나의 마스터들의 독점 요청을 수신할 경우 상기 인터커넥트 내의 상기 레지시터 파일의 정보를 설정하는 상기 적어도 하나의 슬레이들과,
    상기 마스터들과 상기 슬레이브들 간의 상기 독점 접근을 위한 정보들이 저장된 레지스터 파일을 구비하고, 상기 마스터들과 상기 슬레이브들을 연결하고, 상기 마스터들이 상기 슬레이브로 독점 접근하기 위한 버스들을 포함하는 상기 인터커넥트와,
    상기 레지스터 파일을 참고하여 상기 버스 시스템 내에 현재 독점 접근을 수행하는 다른 마스터가 있는지 검사하고, 상기 독점 접근을 처음으로 요청할 경우, 상기 레지스터 파일의 소정 정보를 기록한 후, 상기 독점 접근을 요청한 슬레이브로 데이터 읽기/쓰기 동작을 하고, 이미 독점 접근을 수행 중인 마스터가 존재할 경우, 상기 레지스터 파일을 참고하여 상기 독점 접근을 수행할 구동 정보를 근거로 상기 독점 접근을 수행 중인 마스터가 접근하는 동일한 슬레이브의 동일한 메모리 이외의 주소로 독점 접근을 요청하는 상기 적어도 하나의 마스터들을 포함함을 특징으로 하는 버스 시스템에서 마스터들의 중재를 위한 시스템.
  7. 제6 항에 있어서,
    상기 마스터들이 상기 버스 시스템에서 처음 독점 접근을 수행 할 경우, 상기 레지스터 파일 내 지시 플래그를 "1"로 설정함을 특징으로 하는 버스 시스템에서 마스터들의 중재를 위한 시스템.
  8. 제6 항에 있어서, 상기 마스터들이 상기 독점 접근을 수행하기 위해 필요한 구동 정보는 마스터 ID, 마스터 포트 ID, 카운터, 슬레이브 포트 ID, 시작지 주소, 데이터 길이를 포함함을 특징으로 하는 버스 시스템에서 마스터들의 중재를 위한 시스템.
  9. 제6 항에 있어서, 상기 마스터들이 상기 레지스터 파일내의 지시 플래그가 "1"로 설정되어있는지를 검사하여 상기 버스 시스템 내에 현재 독점 접근을 수행하는 다른 마스터가 있는지 여부를 확인함을 특징으로 하는 버스 시스템에서 마스터들의 중재를 위한 시스템.
  10. 제6 항에 있어서,
    상기 마스터들은 상기 독점 접근을 상기 슬레이브로 요청한 뒤, 상기 레지스터 파일내의 소정 값을 증가시킴을 특징으로 하는 버스 시스템에서 마스터들의 중재를 위한 시스템.
  11. 제10 항에 있어서,
    상기 소정 값은 상기 버스 시스템에서 현재 독점 접근을 수행하는 마스터 개수를 나타내는 카운터임을 특징으로 하는 버스 시스템에서 마스터들의 중재를 위한 시스템.
KR1020050107514A 2005-11-10 2005-11-10 시스템 온 칩에서의 독점 접근 제어 방법 및 시스템 KR101226389B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050107514A KR101226389B1 (ko) 2005-11-10 2005-11-10 시스템 온 칩에서의 독점 접근 제어 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050107514A KR101226389B1 (ko) 2005-11-10 2005-11-10 시스템 온 칩에서의 독점 접근 제어 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20070050214A true KR20070050214A (ko) 2007-05-15
KR101226389B1 KR101226389B1 (ko) 2013-01-24

Family

ID=38273877

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050107514A KR101226389B1 (ko) 2005-11-10 2005-11-10 시스템 온 칩에서의 독점 접근 제어 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101226389B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819310B2 (en) 2010-10-19 2014-08-26 Samsung Electronics Co., Ltd. System-on-chip and data arbitration method thereof
US9003092B2 (en) 2011-02-25 2015-04-07 Samsung Electronics Co., Ltd. System on chip bus system and a method of operating the bus system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6857029B2 (en) * 2002-04-30 2005-02-15 International Business Machines Corporation Scalable on-chip bus performance monitoring synchronization mechanism and method of use
KR100452325B1 (ko) * 2002-12-23 2004-10-12 한국전자통신연구원 프로세서 번호 할당 및 순차적 부팅이 가능한에이엠비에이 버스 기반 멀티프로세서 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819310B2 (en) 2010-10-19 2014-08-26 Samsung Electronics Co., Ltd. System-on-chip and data arbitration method thereof
US9003092B2 (en) 2011-02-25 2015-04-07 Samsung Electronics Co., Ltd. System on chip bus system and a method of operating the bus system

Also Published As

Publication number Publication date
KR101226389B1 (ko) 2013-01-24

Similar Documents

Publication Publication Date Title
KR970000842B1 (ko) 정보 처리 시스템 및 컴퓨터 시스템
US8886861B2 (en) Memory interleaving device to re-order messages from slave IPS and a method of using a reorder buffer to re-order messages from slave IPS
US6502167B1 (en) Duplicated shared memory controller for disk array
AU651747B2 (en) Arbitration control logic for computer system having dual bus architecture
US5469435A (en) Bus deadlock avoidance during master split-transactions
US6553439B1 (en) Remote configuration access for integrated circuit devices
JPH01205366A (ja) データを転送するための方法およびそのためのデータ転送制御器
US9122802B2 (en) Interconnect, bus system with interconnect and bus system operating method
KR20050082834A (ko) 복수의 마스터들을 포함하는 서브 시스템을 개방형 코어프로토콜을 기반으로 하는 버스에 연결하기 위한 버스시스템
KR20120038282A (ko) 아이디 컨버터를 포함하는 버스 시스템 및 그것의 변환 방법
US7581049B2 (en) Bus controller
JPH0246974B2 (ko)
US6567881B1 (en) Method and apparatus for bridging a digital signal processor to a PCI bus
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
US7096290B2 (en) On-chip high speed data interface
US8359419B2 (en) System LSI having plural buses
JPH1055331A (ja) プログラム可能な読み出し/書き込みアクセス信号とその方法
US7062588B2 (en) Data processing device accessing a memory in response to a request made by an external bus master
KR101226389B1 (ko) 시스템 온 칩에서의 독점 접근 제어 방법 및 시스템
US5906659A (en) Computer system buffers for providing concurrency between CPU accesses, local bus accesses, and memory accesses
CN1165004C (zh) 温备用双工设备及其操作方法
US20120102250A1 (en) Bus system
CN100419722C (zh) 用于生成伪授予信号的仲裁器、系统和方法
JPH0689257A (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: 20151229

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee