KR101226389B1 - SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC - Google Patents

SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC Download PDF

Info

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

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)에서의 접근 제어 방법 및 시스템에 관한 것으로, 특히 개방형 코어 프로토콜을 기반으로 하는 온 칩 버스 시스템에서 다수의 마스터들을 효과적으로 중재하여 독점 접근 실패를 방지하는 방법 및 시스템에 관한 것이다. The present invention relates to a method and system for access control in an on-chip system (SoC), and more particularly to a method and system for effectively arbitrating a plurality of masters in an on-chip bus system based on an open core protocol to prevent exclusive access failure. It is about.

본 발명은 AMBA AXI 프로토콜에서 마스터가 슬레이브에 독점 접근할 때, 실패를 피할 수 있는 방법 및 시스템을 제공하기 위해, 인터커넥트 내에 상기 독점 접근에 관한 레지스터 파일 영역을 구비한다. 즉, 마스터가 독점 접근을 수행하기 전에 상기 레지스터 파일을 먼저 확인하여, 다른 마스터가 독점 접근을 수행하고 있는지 여부를 검사하고, 다른 마스터가 이미 독점 접근을 수행하고 있다면, 상기 레지스터 파일을 참조하여 동일한 슬레이브의 동일한 메모리 영역에 접근하지 않음으로써, 마스터의 독점 접근 실패를 방지한다.The present invention includes a register file area for such an exclusive access in the interconnect to provide a method and system that can avoid failure when the master accesses the slave exclusively in the AMBA AXI protocol. That is, the master first checks the register file before performing exclusive access, checking whether another master is performing exclusive access, and if another master is already performing exclusive access, referring to the register file By not accessing the same memory area of the slave, it prevents the master from accessing exclusively.

AMBA 3.0, AXI, ARM, 버스 시스템, SoC AMBA 3.0, AXI, ARM, Bus System, SoC

Description

시스템 온 칩에서의 독점 접근 제어 방법 및 시스템{SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC}Proprietary access control method and system in system on chip {SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC}

도 1은 일반적인 AMBA 3.0 표준의 AXI 프로토콜 구조 버스 시스템에 대한 블록 구성도,1 is a block diagram of an AXI protocol structure bus system of the general AMBA 3.0 standard;

도 2는 일반적인 AMBA 3.0 표준에 따른 독점 접근(Exclusive Access) 방법을 도시한 흐름도,2 is a flowchart illustrating an exclusive access method according to a general AMBA 3.0 standard;

도 3은 본 발명의 실시 예에 따른 AMBA 3.0의 AXI 프로토콜 구조 버스 시스템의 블록 구성도,3 is a block diagram of an AXI protocol structure bus system of AMBA 3.0 according to an embodiment of the present invention;

도 4는 본 발명의 실시 예에 따라 다수의 마스터들이 독점 접근을 수행하기 위한 동작 흐름도.4 is an operational flow diagram for a plurality of masters to perform an exclusive access according to an embodiment of the present invention.

본 발명은 시스템 온 칩(System On Chip : SoC)에서의 접근 제어 방법 및 시스템에 관한 것으로, 특히 개방형 코어 프로토콜(Open Core Protocol)을 기반으로 하는 온 칩 버스 시스템(On-Chip Bus System)에서 다수의 마스터들을 효과적으로 중재하여 독점 접근 실패를 방지하는 방법 및 시스템에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method and system for access control in a system on chip (SoC), and more particularly, to an on-chip bus system based on an open core protocol. It is directed to a method and system for effectively mediating the masters of an exclusive access to prevent failure.

최근 서로 다른 기능을 하는 수많은 복수의 칩(Chip)들을 하나의 칩상에 집적하는 시스템 온 칩의 사용이 보편화되고 있다. 그리고 시스템 온 칩의 설계에 있어서, 급변하는 시장의 요구에 부응하기 위해 개발에 소요되는 시간을 줄이는 것은 필수적이다. 이를 위해 기존에 설계되어 사용되고 있는 칩 블록 즉, 아이피 코어(IP Core : Intellectual Property Core)의 재활용이 점차 확대되고 있다. 이러한 아이피 코어의 재활용은 제품 개발에 소요되는 시간을 단축시킬 뿐만 아니라, 새로이 개발된 시스템 온 칩의 신뢰성을 향상시키는 데에도 효과적이다.Recently, the use of a system on chip that integrates a plurality of chips (Chips) with different functions on a single chip has become common. And in the design of system-on-chip, it is essential to reduce development time to meet rapidly changing market demands. To this end, the recycling of existing chip blocks, that is, IP Cores (Intellectual Property Core), is gradually expanding. The recycling of IP Cores not only shortens the time required for product development, but also improves the reliability of newly developed system on chips.

한편, 시스템 온 칩의 효과적인 설계를 위해서는 하나의 칩상에 집적된 복수의 아이피 코어간의 상호 통신을 위한 버스 시스템의 선택이 무엇보다 중요하다. 현재 사용되고 있는 가장 대표적인 버스 시스템은 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)이 많아지는 단점을 갖고 있다.Meanwhile, in order to effectively design a system on a chip, the selection of a bus system for communication between a plurality of IP cores integrated on one chip is important. The most representative bus system in use today is the Advanced Microcontroller Bus Architecture (AMBA) bus from Advanced RISC Machine (ARM). AMBA bus 2.0 consists of the system bus Advanced High-Performance Bus (AHB) and the Advanced Peripheral Bus (APB) that connects the peripherals. AHB features include pipelined operations, multiple bus masters, burst transfers, and split transactions. However, when one master occupies a bus to access a slave through AHB, the other master cannot access the slave, so in a system with multiple masters at the same time, the bus latency ) Has the disadvantage of increasing.

이러한 단점을 보완하고, 버스 구조를 효율적으로 사용할 수 있게 AMBA 3.0 표준에서는 기존의 2.0에서 정의한 AHB 대신에 시스템 버스로써 AXI 프로토콜을 정의하고 있다. 종래의 AXI 프로토콜 구조에 대한 블록 구성은 도 1에 도시되어 있다.To address these shortcomings and make efficient use of the bus structure, the AMBA 3.0 standard defines the AXI protocol as a system bus instead of the AHB defined in 2.0. The block configuration for a conventional AXI protocol structure is shown in FIG.

도 1은 일반적인 AMBA 3.0 표준의 AXI 프로토콜 구조 버스 시스템의 블록 구성도이다. 1 is a block diagram of an AXI protocol structure bus system of the general AMBA 3.0 standard.

상기 도 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) 버스를 지원한다.Three masters 100, 101, 102 and four slaves 110, 111, 112, and 113 according to the AMBA 3.0 standard illustrated in FIG. 1 connect the plurality of masters and the plurality of slaves. A main interconnect (120), a first interface (130) connecting the masters (100, 101, 102) and the interconnect (120), the slaves (110, 111, 112, 113) and the The second interface 131 connects the interconnect 120. In FIG. 1, the interconnect 120 serves as an arbiter and a decoder of AMBA 2.0, and supports a multi-layer bus.

여기서, 상기 도 1에 도시된 각 구성 요소들은 AMBA 3.0 표준에 상세히 나와있지만, 이해의 편의를 위해 간략히 설명하기로 하겠다.Here, each component shown in FIG. 1 is described in detail in the AMBA 3.0 standard, but will be briefly described for convenience of understanding.

먼저, 마스터들(100, 101, 102)은 일반적으로 중앙 처리장치, 마이크로 컨트롤러 및 마이크로 프로세서 등으로 구비되며, 각각의 마스터들(100, 101, 102)은 인터커넥트(120)를 통해 슬레이브들(110, 111, 112, 113)에 접근하기 위한 요청 신호를 출력한다. 그리고, 상기 인터커넥트(120)로부터 승인(Grant) 신호가 수신되 면, 마스터들(100, 101, 102)은 버스 소유권(Bus Ownership)을 가진 것으로 판단하여 상기 슬레이브들(110, 111, 112, 113)에 접근하기 위한 정보 즉, 주소 정보, 제어 정보 등을 상기 인터커넥트(120)로 전송한다. 상기 버스 소유권을 갖은 마스터는 선택한 슬레이브로 읽기 또는 쓰기 동작을 수행하게 된다.First, the masters 100, 101, 102 are generally equipped with a central processing unit, a microcontroller, a microprocessor, and the like, and each of the masters 100, 101, 102 is connected to the slaves 110 through the interconnect 120. And outputs a request signal for accessing 111, 112, and 113. In addition, when a grant signal is received from the interconnect 120, the masters 100, 101, and 102 are determined to have bus ownership, and thus, the slaves 110, 111, 112, and 113. Information, namely, address information, control information, and the like, are transmitted to the interconnect 120. The master having the bus ownership performs a read or write operation with the selected slave.

슬레이브들(110, 111, 112, 113)은 예컨대, 반도체 장치가 될 수 도 있으며, 상기 마스터들의 요청에 응답하는 장치가 될 수도 있다. 상기 슬레이브들은 메모리와 상기 메모리를 제어할 메모리 제어기를 구비하고 있다.The slaves 110, 111, 112, and 113 may be, for example, semiconductor devices, or devices that respond to requests from the masters. The slaves have a memory and a memory controller to control the memory.

그리고 인터커넥트(120)의 설명에 앞서 AMBA 2.0의 표준에 상세히 나와있는 아비터와 디코더를 먼저 설명하기로 하겠다. Prior to the description of the interconnect 120, the arbiter and decoder described in detail in the AMBA 2.0 standard will be described first.

아비터(Arbiter)는 한번에 하나의 마스터만이 버스를 사용하도록 권한을 부여하는 것으로, 마스터들(100, 101, 102)과 슬레이브(110, 111, 112, 113)들 간의 버스 사용을 위해 고정 우선권(Fixed Priority)방식 또는 라운드 로빈(Round-Robin) 방식을 이용하여 마스터들(100, 101, 102)간의 버스 사용을 중재한다. 디코더는 마스터가 전송하고자 하는 슬레이브의 주소를 디코딩한다. The Arbiter authorizes only one master to use the bus at a time, and assigns a fixed priority (bus) between the masters (100, 101, 102) and slaves (110, 111, 112, 113). Mediation of bus usage between the masters 100, 101, and 102 is performed using a fixed priority or round-robin method. The decoder decodes the address of the slave to be transmitted by the master.

상술한 바와 같은 아비터와 디코더의 기능을 수행하는 것이 인터커넥트(120)이며, 다수의 마스터들과 슬레이브들 간의 상호 데이터 전송을 위한 주소(Address)와 데이터(Data) 및 제어(Control) 정보를 전달한다.The interconnect 120 performs the functions of an arbiter and a decoder as described above, and transmits address, data, and control information for mutual data transmission between a plurality of masters and slaves. .

즉, 인터커넥트(120)는 상기 버스 마스터들로부터 상기 슬레이브들 중 적어도 하나를 데이터 접근하기 위해 버스 소유권(Bus Ownership)을 갖는 버스 마스터로부터 어드레스 정보와 제어 정보(예를 들어, 쓰기/읽기 명령, 버스트 동작, 데이 터 크기 등)를 포함하는 구동 정보를 받아서 중재를 통해 하나의 버스 마스터를 선택하고, 해당 슬레이브로 데이터 처리 준비 요구를 보내어 해당 데이터를 처리한다.That is, the interconnect 120 receives address information and control information (eg, write / read commands, bursts) from a bus master having bus ownership to access data from at least one of the slaves from the bus masters. It receives the driving information including the operation, data size, etc.) and selects one bus master through arbitration, and sends a data processing preparation request to the slave to process the data.

상술한 바와 같은 시스템 구성을 갖는 AMBA 시스템의 AXI 프로토콜에서 마스터들에게 지원하는 접근(Access) 방식으로는 일반 접근(Normal Access), 독점 접근(Exclusive Access), 잠금 접근(Locked Access) 의 3가지 방식이 있다.The access methods supported to the masters in the AXI protocol of the AMBA system having the system configuration as described above are three types of methods: normal access, exclusive access, and locked access. There is this.

일반 접근과 잠금 접근은 AMBA 2.0인 AHB에서도 지원이 되었던 방식이고, AMBA 3.0에서 새롭게 추가된 접근 방식이 독점 접근 방식이다.Normal access and lockout access were also supported in AMBA 2.0, AHB, and the new approach in AMBA 3.0 is the proprietary approach.

일반 접근은 기존의 AMBA 2.0 버스에서 사용되는 기본적인 동작으로 하나의 마스터가 슬레이브에 접근하기 위해서 버스를 점유하고 있을 때, 다른 마스터들은 버스를 점유하지 못하고 기존에 버스를 점유하고 있는 마스터의 버스 점유가 해제되는 것을 기다렸다가 순차적으로 버스를 점유하면서 슬레이브에 접근하는 방법이다. 이 경우에는 마스터가 버스를 오래 점유하고 있으면 early termination을 발생할 수 있다. 그러나 잠금 접근에서는 early termination을 할 수 없다.Normal access is the basic operation used on existing AMBA 2.0 buses. When one master occupies a bus to access a slave, the other masters do not occupy the bus and the bus occupied by the master occupying the bus. It waits for release and then accesses the slave while occupying the bus sequentially. In this case, early termination can occur if the master occupies the bus for a long time. However, lock access does not allow early termination.

잠금 접근은 마스터 1(100)이 슬레이브 1(110)에게 잠금 접근을 요청하면 버스트 전송이 종료될 때까지 버스는 마스터 1(100)과 슬레이브 1(110)사이의 연결(Connection)만 존재하게 된다. 이 경우 다른 마스터들은 버스 점유를 하지못하게 되기 때문에 다른 슬레이브들에 대한 접근을 하지 못하고, 마스터 1(100)의 접근이 종료될 때까지 대기하여야 한다. 이 경우 다른 마스터들(101,102)의 대기 시간 (Latency)이 증가하는 단점이 존재한다. 그래서 이 단점을 해결하기 위해 AMBA 3.0에서는 상기의 독점 접근(Exclusive Access)을 지원하도록 정의하였다.In lock access, when master 1 (100) requests slave 1 (110) for lock access, the bus will only have a connection between master 1 (100) and slave 1 (110) until the burst transmission ends. . In this case, the other masters cannot access the other slaves because they cannot occupy the bus and must wait until the access of the master 1 (100) is terminated. In this case, there is a disadvantage in that latency of other masters 101 and 102 is increased. So, to solve this problem, AMBA 3.0 is defined to support the above exclusive access.

상기 AMBA 3.0의 표준에 따라 마스터가 독점 접근을 수행하는 방식은 하기의 도 2와 같다.The manner in which the master performs an exclusive access according to the standard of AMBA 3.0 is shown in FIG. 2.

도 2는 일반적인 AMBA 3.0 표준에 따른 독점 접근(Exclusive Access) 방법을 도시한 흐름도로써, 상기 도 1을 참조하여 설명하기로 한다.FIG. 2 is a flowchart illustrating an exclusive access method according to a general AMBA 3.0 standard, which will be described with reference to FIG. 1.

먼저, 200단계에서 마스터1(100)이 슬레이브1(110)의 특정 메모리 주소 영역의 데이터를 독점(Exclusive)하여 읽는다. 202단계에서 마스터1(100)은 상기 읽은 데이터를 이용하여 해당되는 프로세싱을 수행한 후, 204단계에서 마스터1(100)은 상기 슬레이브1(110)의 동일한 메모리 주소 영역에 상기 프로세싱한 데이터를 기록(Write)한다.First, in operation 200, the master 1 100 exclusively reads data of a specific memory address area of the slave 1 110. In step 202, the master 1 (100) performs the corresponding processing using the read data, and in step 204, the master 1 (100) writes the processed data in the same memory address area of the slave 1 (110). (Write)

206단계에서 슬레이브1(110)은 상기 마스터의 독점 읽기가 성공하였다면, 208단계로 진행하여 독점 접근 성공(EXOKAY)신호를 상기 마스터1(100)으로 전송한다. 그렇지 않고, 독점 읽기가 실패했다면, 210단계로 진행하여 슬레이브1(110)은 상기 마스터1(100)으로 독점 접근 실패(OK)신호를 전송한다. In step 206, if the master reads successfully, the slave 1 110 proceeds to step 208 and transmits an exclusive access success signal (EXOKAY) to the master 1 (100). Otherwise, if the exclusive read has failed, the process proceeds to step 210 and the slave 1110 transmits an exclusive access failure (OK) signal to the master 1 (100).

상기 도 2의 210단계에서와 같은 독점 접근 실패는, 상기 독점 접근을 요청한 마스터, 즉 마스터1(100)이 독점 접근 쓰기/읽기 동작을 수행하는 도중 다른 마스터(마스터2 또는 마스터 3)가 상기 마스터 1이 독점 접근을 수행하고 있는 동일한 슬레이브의 동일한 메모리의 데이터를 읽을 때 발생하게 된다.The exclusive access failure as in step 210 of FIG. 2 is performed by another master (master 2 or master 3) while the master requesting the exclusive access, that is, master 1 (100) performs an exclusive access write / read operation. Occurs when 1 reads data from the same memory of the same slave performing an exclusive access.

즉, 상술한 바와 같이 일반적인 AMBA 3.0 표준에 따라 다수의 마스터들이 독점 접근을 요구하는 경우, 마스터들이 동일한 슬레이브의 동일한 메모리 영역에 접근함에 따라 발생하는 실패를 방지할 수 없는 문제가 있었다.That is, as described above, when a plurality of masters require exclusive access according to the general AMBA 3.0 standard, there is a problem in that failures occurring when masters access the same memory area of the same slave cannot be prevented.

본 발명은 시스템 버스에서 다수의 마스터들과 다수의 슬레이브들간의 중재를 통해 독점 접근 실패를 방지하는 시스템 및 방법을 제공한다.The present invention provides a system and method for preventing proprietary access failures through arbitration between multiple masters and multiple slaves on a system bus.

본 발명은 시스템 버스에서 다수의 마스터들의 버스 시스템을 효율적으로 점유하기 위한 시스템 및 방법을 제공함에 있다.The present invention provides a system and method for efficiently occupying a bus system of a plurality of masters in a system bus.

본 발명의 실시 예에 따른 방법은; 시스템 온 칩(System on Chip; SoC)에서 둘 이상의 마스터(Master)에 의한 하나의 슬레이브(Slave)로의 접근을 제어하는 방법에 있어서, 마스터가 상기 슬레이브로 접근하고자 할 경우, 인터커넥트(Interconnect)의 레지스터 파일(Resister File)을 검사하는 단계; 상기 검사 결과 상기 레지스터 파일이 타 마스터가 상기 슬레이브로의 접근을 수행하고 있음을 지시하는 정보를 포함하고 있으면, 상기 마스터가 상기 레지스터 파일로부터 구동 정보를 획득하는 단계; 및 상기 구동 정보로부터 상기 슬레이브의 메모리 영역 중 상기 타 마스터가 접근한 메모리를 제외한 나머지 영역에 대한 정보를 획득하고, 상기 마스터가 상기 나머지 영역에 대한 접근을 수행하는 단계를 포함한다.
본 발명의 실시 예에 따른 장치는;둘 이상의 마스터(Master)에 의한 하나의 슬레이브(Slave)로의 접근을 제어하는 시스템 온 칩(System on Chip; SoC)에 있어서, 어느 하나의 마스터로부터 상기 슬레이브로의 접근이 이루어지는 경우, 상기 접근에 상응하는 구동 정보가 등록 또는 갱신되는 레지스터 파일(Resister File)을 구비하는 인터커넥트(Interconnect)를 포함한다.
본 발명의 다른 실시 예에 따른 장치는; 시스템 온 칩(System on Chip; SoC)에서 둘 이상의 마스터(Master)에 의한 하나의 슬레이브(Slave)로의 접근을 제어하는 마스터에 있어서, 상기 슬레이브로 접근하고자 할 경우, 인터커넥트(Interconnect)의 레지스터 파일(Resister File)을 검사하는 제어부와, 상기 제어부의 지시에 따라 상기 검사 결과 상기 레지스터 파일이 타 마스터가 상기 슬레이브로의 접근을 수행하고 있음을 지시하는 정보를 포함하고 있으면, 상기 마스터가 상기 레지스터 파일로부터 구동 정보를 획득하고, 상기 구동 정보로부터 상기 슬레이브의 메모리 영역 중 상기 타 마스터가 접근한 메모리를 제외한 나머지 영역에 대한 정보를 획득하고, 상기 마스터가 상기 나머지 영역에 대한 접근을 수행하는 접근 수행부를 포함한다.
Method according to an embodiment of the present invention; In a method of controlling access to one slave by two or more masters from a System on Chip (SoC), when a master intends to access the slaves, interconnect registers are used. Checking a file (Resister File); Obtaining, by the master, driving information from the register file if the register file includes information indicating that another master is performing access to the slave; And acquiring information on the remaining area of the memory area of the slave except the memory accessed by the other master from the driving information, and accessing the remaining area by the master.
An apparatus according to an embodiment of the present invention is a system on chip (SoC) for controlling access to one slave (Slave) by two or more masters (Master), from one of the master to the slave When the access is made, Interconnect includes a register file that registers or updates driving information corresponding to the access.
According to another embodiment of the present invention; In a master controlling access to one slave by two or more masters from a System on Chip (SoC), when accessing the slave is performed, an interconnect register file ( A control unit for inspecting a Resister File, and if the register file includes information indicating that the other master is performing access to the slave according to the instruction of the control unit, the master reads from the register file. An access performer configured to obtain driving information, obtain information on the remaining areas of the slave memory area except the memory accessed by the other master from the driving information, and perform access to the remaining area by the master; do.

삭제delete

이하 본 발명의 실시 예를 첨부한 도면을 참조하여 상세히 설명하기로 하겠다. 도면들 중 동일한 구성들은 가능한 한 어느 곳에서든지 동일한 부호들을 나타내고 있음을 유의해야 한다. 하기에서 구체적인 특정사항들이 나타나고 있는데, 이 는 본 발명의 보다 전반적인 이해를 돕기 위해 제공된 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the same components in the figures represent the same numerals wherever possible. Specific details are set forth below, which are provided to help a more general understanding of the present invention. In describing the present invention, when it is determined that description of related known functions or configurations may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted.

먼저 본 발명의 설명에 앞서, 본 발명의 기본 개념을 설명하면 다음과 같다. 본 발명은 AMBA AXI 프로토콜에서 마스터가 슬레이브에 독점 접근할 때, 실패를 피할 수 있는 방법 및 시스템을 제공하기 위해, 인터커넥트(320)내에 상기 독점 접근에 관한 레지스터 파일(350) 영역을 구비한다. 즉, 마스터가 독점 접근을 수행하기 전에 상기 레지스터 파일(350)을 먼저 확인하여, 다른 마스터가 독점 접근을 수행하고 있는지 여부를 검사하고, 다른 마스터가 이미 독점 접근을 수행하고 있다면, 상기 레지스터 파일(350)을 참조하여 동일한 슬레이브의 동일한 메모리 영역에 접근하지 않음으로써, 마스터의 독점 접근 실패를 방지한다.First, prior to the description of the present invention, the basic concept of the present invention will be described. The present invention includes a register file 350 area for such an exclusive access in interconnect 320 to provide a method and system that can avoid failure when the master accesses the slave exclusively in the AMBA AXI protocol. That is, before the master performs exclusive access, the register file 350 is checked first to check whether another master is performing exclusive access, and if another master is already performing exclusive access, the register file ( By not accessing the same memory area of the same slave with reference to 350, the master's exclusive access failure is prevented.

도 3은 본 발명의 실시 예에 따른 AMBA 3.0의 AXI 프로토콜 구조 버스 시스템의 블록 구성도이다. 3 is a block diagram of an AXI protocol structure bus system of AMBA 3.0 according to an embodiment of the present invention.

본 발명의 실시 예에서는 설명의 편의를 위해 마스터와 슬레이브가 각각 두 개라고 가정하겠으며, 마스터 A(300)가 현재 슬레이브 A(310)에 대해 독점 접근을 수행 중이며, 마스터 B(301)가 독점 접근을 요청한 상태라고 가정하기로 하겠다.In the embodiment of the present invention, for convenience of description, it will be assumed that there are two masters and two slaves. The master A 300 is currently performing exclusive access to the slave A 310, and the master B 301 has exclusive access. Assume that you have requested.

상기 도 3을 참조하면, 본 발명의 실시 예에 따른 AMBA 3.0의 AXI 프로토콜 구조 버스 시스템은, 두 개의 마스터들(300, 301)과 두 개의 슬레이브들(310, 311), 상기 마스터들(300, 301)을 연결시켜주는 인터커넥트(320)로 크게 구성되어 있다. 그리고 상기 마스터들(300, 301)과 인터커넥트(320)를 연결하는 인터페이스들(340, 341), 상기 슬레이브들(310, 311)과 인터커넥트(320)를 연결하는 인터페이스들(342, 343)로 구성된다.Referring to FIG. 3, in the AXI protocol structure bus system of AMBA 3.0 according to an embodiment of the present invention, two masters 300 and 301, two slaves 310 and 311, and the masters 300, 301 is largely composed of an interconnect 320 that connects. And interfaces 340 and 341 for connecting the masters 300 and 301 to the interconnect 320, and interfaces 342 and 343 for connecting the slaves 310 and 311 to the interconnect 320. do.

그리고, 상기 도 3의 구성에 대한 설명 중 상기 도 1과 동일한 부분에 대해서는 생략하기로 하겠다.In the description of the configuration of FIG. 3, the same parts as in FIG. 1 will be omitted.

참조번호 330은 마스터 A(300)가 인터페이스(340)를 통해 인터커넥트(320)와 연결되는 포트(Port)이며, 참조번호 331은 마스터 B(301)가 인터페이스(341)를 통해 인터커넥트(320)와 연결되는 포트이다. 참조번호 332는 슬레이브 A(310)가 인터페이스(342)를 통해 인터커넥트(320)와 연결되는 포트이며, 참조번호 333은 슬레이브 B(311)가 인터페이스(343)를 통해 인터커넥트(320)와 연결되는 포트를 나타낸다.Reference numeral 330 denotes a port through which the master A 300 is connected to the interconnect 320 through the interface 340, and reference numeral 331 denotes a master B 301 connected to the interconnect 320 through the interface 341. The port to connect to. Reference numeral 332 denotes a port to which the slave A 310 is connected to the interconnect 320 through the interface 342, and reference numeral 333 denotes a port to which the slave B 310 is connected to the interconnect 320 through the interface 343. Indicates.

상기 인터커넥트(320)에는 또한, 마스터들과 슬레이브들간의 읽기/쓰기 동작을 위한 버스가 2개 존재한다. 상기 도 3에 도시된 것과 같이 인터커넥트(320)내에 구비된 버스는 주소 버스(Address Bus)(360), 데이터 버스(Data Bus)(370)로 구성된다.The interconnect 320 also has two buses for read / write operations between masters and slaves. As shown in FIG. 3, the bus provided in the interconnect 320 includes an address bus 360 and a data bus 370.

주소 버스(360)는 마스터들(300, 301)이 데이터를 읽기/쓰기 위한 슬레이브들(310, 311)의 주소를 디코딩하는 역할을 수행하여, 데이터 버스(370)는 상기 디코딩된 주소에 해당되는 슬레이브의 메모리 주소로 상기 마스터들(300, 301)이 읽거나 쓸 데이터들을 전송한다. 이러한 주소 버스(360)와 데이터 버스(370)는 SoC와 같은 모든 버스 시스템에 구비된다.The address bus 360 decodes the addresses of the slaves 310 and 311 for the masters 300 and 301 to read / write data, so that the data bus 370 corresponds to the decoded address. The masters 300 and 301 transmit data to be read or written to a slave memory address. The address bus 360 and data bus 370 are provided in all bus systems such as SoCs.

그리고, 제어 신호(380)는 상기 마스터들(300, 301)이 슬레이브들(310, 311)에 대해 독점 접근을 수행하기 위해 본 발명에서 새로 추가된 레지스터 파일(350) 의 정보들을 검사하기 위한 신호이다.In addition, the control signal 380 is a signal for checking the information of the register file 350 newly added in the present invention for the masters 300 and 301 to perform exclusive access to the slaves 310 and 311. to be.

레지스터 파일(Register File)(350)은 본 발명의 실시 예에 따라 독점 접근을 수행할 마스터들(300, 301) 간의 충돌을 방지하기 위한 소정 정보가 저장되어 있으며, 그 내용은 하기의 <표 1>과 같다.The register file 350 stores predetermined information for preventing a collision between masters 300 and 301 to perform exclusive access according to an embodiment of the present invention. The contents of the register file 350 are shown in Table 1 below. Same as>

Register Register 할당된 Bit Allocated Bit 설명 Explanation Indicator Flag Indicator Flag 1 Bit 1 Bit 독점 접근(Exclusive Access)에 대한 플래그
(Flag == 1 일 때 독점 접근 발생)
Flags for Exclusive Access
(Exclusive access occurs when Flag == 1)
Counter Counter 4 Bit 4 Bit 독점 접근을 하는 마스터 개수 Master access with exclusive access Reserved bit Reserved bit 3 Bit 3 Bit 예약된 비트 Reserved bits Master ID Master ID 4 Bit 4 Bit 마스터를 구분하기 위한 ID ID to identify the master Master Port ID Master Port ID 4 Bit 4 Bit 마스터 포트를 구분하기 위한 ID ID to identify the master port Slave Port ID Slave Port ID 8 Bit 8 Bit 슬레이브의 포트 ID, 즉 목적지(Destination) ID Port ID of the Slave, or Destination ID Start Address Start Address 32 Bit 32 bit 슬레이브의 메모리를 접근할 시작 번지   Start address to access memory of slave Data Length Data length 32 Bit 32 bit 데이터 길이 Data length

상기 <표 1>에서 지시 플래그(indicator Flag)는 현재 버스 시스템에서 독점 접근을 수행하고 있는 마스터의 유무를 나타내는 정보로서 1비트로 표현되며, 지시 플래그가 "1"이라면, 현재 독점 접근을 수행하고 있는 마스터가 존재함을 나타낸다.In Table 1, an indicator flag is information indicating whether a master is performing exclusive access in the current bus system and is represented by 1 bit. If the indication flag is "1", the present flag is performing exclusive access. Indicates that a master exists.

카운터(Counter)는 현재 독점 접근을 수행하는 마스터 개수를 나타내는 플래그이며, 만일 현재 버스 시스템에서 독점 접근을 수행하고 있는 마스터 개수가 1개라면, 상기 카운터는 "1"로 설정된다.Counter is a flag indicating the number of masters currently performing exclusive access, and if the number of masters currently performing exclusive access in the bus system is one, the counter is set to "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비트를 포함하여 총 88비트로 구성되어있다.The reserved bit is a reserved bit for future use, the master ID is a bit indicating an ID for identifying a master in the interconnect 320, and the master port ID is a master. A bit indicating an ID for identifying a port, indicated by 4 bits. The slave port ID is a bit for representing the ID of a slave port, that is, a destination for a master to perform a read / write operation, and is represented by 8 bits. Start Address is a bit that indicates the start address of the memory of the slave for the master to perform read / write operation. It is represented as 32 bits. Data Length is the size of data for the master to perform read / write operation. A bit indicating a, which is represented by 32 bits. As such, the register file 350 according to the embodiment of the present invention includes a total of 88 bits including 3 bits of a reserved bit.

상기 <표 1>에서 지시 플래그, 카운터, 마스터 ID, 마스터 포트 ID는 독점 접근을 수행하는 마스터가 설정하며, 슬레이브 포트 ID, 시작지 주소, 데이터 길이는 독점 접근 요청을 수신한 슬레이브가 설정한다. 그리고 상기 <표 1>에서 카운터, 마스터 ID, 마스터 포트 ID, 슬레이브 포트 ID, 시작지 주소, 데이터 길이는 마스터가 독점 접근을 수행하기 위해 필요한 정보로서, 이하에서는 구동 정보라 통칭하기로 한다.In Table 1, the indication flag, the counter, the master ID, and the master port ID are set by the master performing exclusive access, and the slave port ID, starting address, and data length are set by the slave receiving the exclusive access request. In Table 1, a counter, a master ID, a master port ID, a slave port ID, a starting address, and a data length are necessary information for the master to perform exclusive access, which will be collectively referred to as driving information.

도 4는 본 발명의 실시 예에 따라 다수의 마스터들이 독점 접근을 수행하기 위한 동작 흐름도이다.4 is a flowchart illustrating an operation for a plurality of masters to perform an exclusive access according to an embodiment of the present invention.

먼저, 상기 도 4도 상기 도 3에서와 마찬가지로, 마스터 A(300)가 현재 슬레이브 A(310)에 대해 독점 접근을 수행 중이고, 마스터 B(301)가 독점 접근을 수행하기 위한 과정을 예로 들어 설명한다. 현재 마스터 A(300)만이 독점 접근을 수행 중이라면, 마스터 A(300)는 상기 레지스터 파일(350)내의 지시 플래그, 카운터, 마스터 포트 ID, 마스터 ID를 제어신호(380)를 통해 설정한다. 그리고, 상기 마스터 A(300)가 독점 접근을 요청할 슬레이브 A(310)는 상기 제어신호(380)를 통해 상기 레지스터 파일(350) 내의 슬레이브 포트 ID, 시작지 주소, 데이터 길이를 설정한다. 4, the master A 300 is currently performing exclusive access to the slave A 310, and the master B 301 performs the exclusive access as in FIG. 3. do. If only master A 300 is currently performing exclusive access, master A 300 sets the indication flag, counter, master port ID, and master ID in register file 350 through control signal 380. The slave A 310, which the master A 300 requests for exclusive access, sets a slave port ID, a start address, and a data length in the register file 350 through the control signal 380.

400단계에서 마스터 B(301)가 독점 접근을 수행한다면, 402단계로 진행하여, 상기 레지스터 파일(350) 내의 지시 플래그(Indicator Flag)를 제어 신호(Control Signal)(380)를 통해 검사한다.If the master B 301 performs exclusive access in step 400, the process proceeds to step 402 and checks an indicator flag in the register file 350 through a 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" 증가 시킨다.If the indication flag is "1" in step 404, the master B 301 proceeds to step 406 to read the drive information in the register file 350. Herein, the driving information means a counter, a master ID, a master port ID, a slave port ID, a start address, and a data length. In step 406, the master B 301 may determine which memory area of which slave the master A 300 is currently accessing based on the driving information, and thus, the master B 301 may determine the master A 300. ) Can perform exclusive access to other areas except the same memory area of the same slave that it is accessing. In operation 408, the master B 301 requests exclusive access to a slave to be exclusively accessed based on the driving information. In operation 410, the master B 301 sets driving information in the register file 350. Typically, the counter, which is the number of masters currently performing exclusive access among the driving information, is increased by "1".

상기 도 4의 410단계에서는 현재 독점 접근을 수행하는 마스터 개수(Counter)만을 증가시키는 것으로 기재되어 있으나, 실제로는 현재 독점 접근을 수행하고 있는 정보들이 상기 레지스터 파일(350) 내에 등록된다. In step 410 of FIG. 4, only the number of masters currently performing exclusive access (Counter) is described as being increased. In reality, information currently performing exclusive access is registered in the register file 350.

반면, 상기 404단계에서 지시 플래그가 "1"이 아니라면, 현재 버스 시스템에서 독점 접근을 수행 중인 마스터가 없다는 의미이므로, 마스터 B(301)는 바로 408단계로 진행하여 독점 접근할 슬레이브로 독점 접근을 요청한다.On the other hand, if the indication flag is not "1" in step 404, it means that there is no master currently performing exclusive access in the bus system, so the master B 301 immediately proceeds to step 408 to perform exclusive access to the slave to be exclusively accessed. request.

412단계에서 마스터 B(301)는 슬레이브의 메모리에 데이터 읽기/쓰기 동작을 수행하고, 414단계에서 상기 마스터 B(301)가 독점 접근한 슬레이브로부터 독점 성공 신호(EXOKAY)를 수신하면, 416단계로 진행하여 현재 독점 접근을 수행하는 마스터 개수를 "1" 감소시킨다. 반면, 상기 414단계에서 상기 슬레이브로부터 독점 접근 성공신호를 수신하지 못하면, 독점 접근이 실패했다는 의미이므로 상기 400단계로 진행하여 독점 접근 동작을 다시 시작하게 된다.In step 412, the master B 301 performs a data read / write operation on the slave's memory, and in step 414, when the master B 301 receives the exclusive success signal EXOKAY from the slave to which the master B 301 exclusively accesses, the master B 301 proceeds to step 416. FIG. Proceed to reduce the number of masters currently performing exclusive access by "1". On the other hand, if the exclusive access success signal is not received from the slave in step 414, it means that the exclusive access has failed and the process proceeds to step 400 to start the exclusive access operation again.

상기 416단계에서 독점 접근을 수행하는 마스터 개수를 감소시킨 마스터 B(301)는 418단계에서 현재 독점 접근을 수행하는 마스터 개수가 "0"인지를 검사한다. 만일, "0"이라면, 현재 독점 접근을 수행하는 마스터가 없다는 의미이므로, 420단계로 진행하여 레지스터 파일(350)내의 지시 플래그를 "0"으로 설정한다.In step 416, the master B 301 which reduces the number of masters performing exclusive access checks whether the number of masters currently performing exclusive access is "0". If it is "0", it means that there is no master currently performing exclusive access. In step 420, the indication flag in the register file 350 is set to "0".

상술한 바와 같이 본 발명을 적용하면, 마스터들이 동일한 슬레이브의 동일한 메모리에 접근하지 않음으로써, 독점 접근이 발생할 시 실패를 줄일 수 있다.또한, 종전과 같이 하나의 마스터의 버스 점유가 끝날 때까지 다른 마스터들이 슬레이브로 읽기/동작을 수행하지 못하고 있는 대기 시간(Latency)이 줄어드는 장점이 있다.As described above, by applying the present invention, the masters do not have access to the same memory of the same slave, thereby reducing failures when an exclusive access occurs. There is an advantage that the latency that masters cannot perform read / operation to slaves is reduced.

삭제delete

Claims (12)

시스템 온 칩(System on Chip; SoC)에서 둘 이상의 마스터(Master)에 의한 하나의 슬레이브(Slave)로의 접근을 제어하는 방법에 있어서, In a method for controlling access to one slave by two or more masters in a System on Chip (SoC), 마스터가 상기 슬레이브로 접근하고자 할 경우, 인터커넥트(Interconnect)의 레지스터 파일(Resister File)을 검사하는 단계; Checking a register file of an interconnect when a master intends to access the slave; 상기 검사 결과 상기 레지스터 파일이 타 마스터가 상기 슬레이브로의 접근을 수행하고 있음을 지시하는 정보를 포함하고 있으면, 상기 마스터가 상기 레지스터 파일로부터 구동 정보를 획득하는 단계; 및Obtaining, by the master, driving information from the register file if the register file includes information indicating that another master is performing access to the slave; And 상기 구동 정보로부터 상기 슬레이브의 메모리 영역 중 상기 타 마스터가 접근한 메모리를 제외한 나머지 영역에 대한 정보를 획득하고, 상기 마스터가 상기 나머지 영역에 대한 접근을 수행하는 단계를 포함하는 접근 제어 방법.  Obtaining information on the remaining area of the memory area of the slave except the memory accessed by the other master from the driving information, and performing access to the remaining area by the master. 제 1 항에 있어서, 상기 레지스터 파일은, 슬레이브 별로 접근을 수행하는 마스터의 유무를 나타내는 지시 플래그와, 해당 슬레이브로의 접근을 수행하는 마스터의 개수를 나타내는 카운터 및 마스터 식별자를 포함하는 접근 제어 방법.The access control method of claim 1, wherein the register file comprises an indication flag indicating whether a master performs access for each slave, a counter indicating a number of masters performing access to the slave, and a master identifier. 제 2 항에 있어서, The method of claim 2, 상기 지시 플래그와 상기 카운터 및 상기 마스터 식별자는 상기 슬레이브로 접근을 요청한 상기 타 마스터에 의해서 설정됨을 특징으로 하는 접근 제어 방법.The indication flag, the counter and the master identifier is set by the other master requesting access to the slave. 삭제delete 제 1항에 있어서, The method of claim 1, 상기 레지스터 파일은,The register file, 상기 마스터가 읽기 및 쓰기 동작을 수행할 상기 슬레이브의 식별자를 나타내는 슬레이브 포트 식별자와, 상기 마스터가 읽기 및 쓰기 동작을 수행하기 위한 상기 슬레이브의 메모리 시작 번지 및 상기 마스터가 읽기 및 쓰기 동작을 수행할 데이터 크기를 나타내는 데이터 길이를 더 포함하며;A slave port identifier indicating an identifier of the slave to perform the read and write operations by the master, a memory start address of the slave to perform the read and write operations by the master, and data to perform the read and write operations by the master; Further comprising a data length indicative of the size; 상기 슬레이브 포트 식별자와, 상기 메모리 시작 번지 및 상기 데이터 길이는 상기 슬레이브가 상기 마스터로부터 접근 요청을 수신할 경우 설정됨을 특징으로 하는 접근 제어 방법.The slave port identifier, the memory start address and the data length is set when the slave receives the access request from the master. 둘 이상의 마스터(Master)에 의한 하나의 슬레이브(Slave)로의 접근을 제어하는 시스템 온 칩(System on Chip; SoC)에 있어서, In a System on Chip (SoC) that controls access to one slave by two or more masters, 어느 하나의 마스터로부터 상기 슬레이브로의 접근이 이루어지는 경우, 상기 접근에 상응하는 구동 정보가 등록 또는 갱신되는 레지스터 파일(Resister File)을 구비하는 인터커넥트(Interconnect)를 포함하는 시스템 온 칩. And an interconnect having a register file in which driving information corresponding to the access is registered or updated when an access is made from any one master. 제 6 항에 있어서, The method of claim 6, 상기 레지스터 파일을 검사하여 타 마스터에 의한 독점 접근이 수행되고 있는지 검사하고, 상기 타 마스터에 의한 독점 접근이 수행 중인 경우 상기 레지스터 파일로부터 구동 정보를 획득하여 상기 획득된 구동 정보를 기반으로 상기 슬레이브의 메모리 영역 중 상기 타 마스터에 의한 접근이 수행되지 않은 나머지 영역에 대한 접근을 요청하는 적어도 하나의 마스터를 더 포함하는 시스템 온 칩.Examine the register file to determine whether an exclusive access by another master is being performed, and when exclusive access by another master is being performed, obtain driving information from the register file, and based on the obtained drive information, And at least one master for requesting access to the remaining area of the memory area in which access by the other master is not performed. 제 7 항에 있어서, 상기 슬레이브는, The method of claim 7, wherein the slave, 상기 마스터에 의한 독점 접근 수행 시에 데이터 읽기/쓰기 동작이 수행되는 상기 메모리를 포함하는 시스템 온 칩.And a memory in which data read / write operation is performed when the exclusive access by the master is performed. 시스템 온 칩(System on Chip; SoC)에서 둘 이상의 마스터(Master)에 의한 하나의 슬레이브(Slave)로의 접근을 제어하는 마스터에 있어서, In a master for controlling access to one slave by two or more masters in a System on Chip (SoC), 상기 슬레이브로 접근하고자 할 경우, 인터커넥트(Interconnect)의 레지스터 파일(Resister File)을 검사하는 제어부와,A controller for inspecting a register file of an interconnect when accessing the slave; 상기 제어부의 지시에 따라 상기 검사 결과 상기 레지스터 파일이 타 마스터가 상기 슬레이브로의 접근을 수행하고 있음을 지시하는 정보를 포함하고 있으면, 상기 마스터가 상기 레지스터 파일로부터 구동 정보를 획득하고, 상기 구동 정보로부터 상기 슬레이브의 메모리 영역 중 상기 타 마스터가 접근한 메모리를 제외한 나머지 영역에 대한 정보를 획득하고, 상기 마스터가 상기 나머지 영역에 대한 접근을 수행하는 접근 수행부를 포함하는 마스터. If the register file includes information indicating that another master is performing access to the slave according to the instruction of the controller, the master obtains driving information from the register file, and the driving information. And an access execution unit for acquiring information on a remaining area of the slave memory area except the memory accessed by the other master, from which the master performs access to the remaining area. 제 9 항에 있어서, The method of claim 9, 상기 레지스터 파일은, 슬레이브 별로 접근을 수행하는 마스터의 유무를 나타내는 지시 플래그와, 해당 슬레이브로의 접근을 수행하는 마스터의 개수를 나타내는 카운터 및 마스터 식별자를 포함함을 특징으로 하는 마스터.The register file includes an indication flag indicating whether there is a master performing access for each slave, a counter indicating a number of masters performing access to the slave, and a master identifier. 제 10 항에 있어서, 11. The method of claim 10, 상기 지시 플래그와 상기 카운터 및 상기 마스터 식별자는 상기 슬레이브로 접근을 요청한 상기 타 마스터에 의해서 설정됨을 특징으로 하는 마스터.The indication flag, the counter and the master identifier is set by the other master requesting access to the slave. 제 11항에 있어서, 12. The method of claim 11, 상기 레지스터 파일은,The register file, 상기 마스터가 읽기 및 쓰기 동작을 수행할 상기 슬레이브의 식별자를 나타내는 슬레이브 포트 식별자와, 상기 마스터가 읽기 및 쓰기 동작을 수행하기 위한 상기 슬레이브의 메모리 시작 번지 및 상기 마스터가 읽기 및 쓰기 동작을 수행할 데이터 크기를 나타내는 데이터 길이를 더 포함하며;A slave port identifier indicating an identifier of the slave to perform the read and write operations by the master, a memory start address of the slave to perform the read and write operations by the master, and data to perform the read and write operations by the master; Further comprising a data length indicative of the size; 상기 슬레이브 포트 식별자와, 상기 메모리 시작 번지 및 상기 데이터 길이는 상기 슬레이브가 상기 마스터로부터 접근 요청을 수신할 경우 설정됨을 특징으로 하는 마스터.Wherein the slave port identifier, the memory start address and the data length are set when the slave receives an access request from the master.
KR1020050107514A 2005-11-10 2005-11-10 SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC KR101226389B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050107514A KR101226389B1 (en) 2005-11-10 2005-11-10 SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050107514A KR101226389B1 (en) 2005-11-10 2005-11-10 SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC

Publications (2)

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

Family

ID=38273877

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050107514A KR101226389B1 (en) 2005-11-10 2005-11-10 SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC

Country Status (1)

Country Link
KR (1) KR101226389B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101699781B1 (en) 2010-10-19 2017-01-26 삼성전자주식회사 System-on-chip and data arbitration method thereof
KR20120097831A (en) 2011-02-25 2012-09-05 삼성전자주식회사 System on chip bus system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030204650A1 (en) * 2002-04-30 2003-10-30 Ganasan Jaya Prakash Subramaniam Scalable on-chip bus performance monitoring synchronization mechanism and method of use
KR20040056293A (en) * 2002-12-23 2004-06-30 한국전자통신연구원 AMBA-based Multiprocessor system for processor identification number allocation and sequential booting

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030204650A1 (en) * 2002-04-30 2003-10-30 Ganasan Jaya Prakash Subramaniam Scalable on-chip bus performance monitoring synchronization mechanism and method of use
KR20040056293A (en) * 2002-12-23 2004-06-30 한국전자통신연구원 AMBA-based Multiprocessor system for processor identification number allocation and sequential booting

Also Published As

Publication number Publication date
KR20070050214A (en) 2007-05-15

Similar Documents

Publication Publication Date Title
KR970000842B1 (en) System direct memory access(dma)support logic for pci based computer system
US5682512A (en) Use of deferred bus access for address translation in a shared memory clustered computer system
US7145903B2 (en) Multi-master bus architecture for system-on-chip designs
US7475182B2 (en) System-on-a-chip mixed bus architecture
US7421529B2 (en) Method and apparatus to clear semaphore reservation for exclusive access to shared memory
JP5558982B2 (en) Method and apparatus for performing atomic semaphore operations
JP3476174B2 (en) Dual host bridge with peer-to-peer support
US5469435A (en) Bus deadlock avoidance during master split-transactions
JP2000082020A (en) Device and method for testing master logic unit in data processor
EP1012734B1 (en) Address translation in computer bus bridge devices
US6553439B1 (en) Remote configuration access for integrated circuit devices
US8713233B2 (en) Interconnect, bus system with interconnect and bus system operating method
US6915365B2 (en) Mechanism for PCI I/O-initiated configuration cycles
JP4198376B2 (en) Bus system and information processing system including bus system
US7581049B2 (en) Bus controller
US6567881B1 (en) Method and apparatus for bridging a digital signal processor to a PCI bus
JPH0246974B2 (en)
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
EP1068573B1 (en) Method and apparatus for arbitrating access to multiple buses in a data processing system
US6078742A (en) Hardware emulation
US7096290B2 (en) On-chip high speed data interface
US9003092B2 (en) System on chip bus system and a method of operating the bus system
US8359419B2 (en) System LSI having plural buses
US5870570A (en) Multiple bus agent integrated circuit device for connecting to an external bus
KR101226389B1 (en) SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC

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