KR101226389B1 - SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC - Google Patents
SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System 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
도 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
최근 서로 다른 기능을 하는 수많은 복수의 칩(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
여기서, 상기 도 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
슬레이브들(110, 111, 112, 113)은 예컨대, 반도체 장치가 될 수 도 있으며, 상기 마스터들의 요청에 응답하는 장치가 될 수도 있다. 상기 슬레이브들은 메모리와 상기 메모리를 제어할 메모리 제어기를 구비하고 있다.The
그리고 인터커넥트(120)의 설명에 앞서 AMBA 2.0의 표준에 상세히 나와있는 아비터와 디코더를 먼저 설명하기로 하겠다. Prior to the description of the
아비터(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
상술한 바와 같은 아비터와 디코더의 기능을 수행하는 것이 인터커넥트(120)이며, 다수의 마스터들과 슬레이브들 간의 상호 데이터 전송을 위한 주소(Address)와 데이터(Data) 및 제어(Control) 정보를 전달한다.The
즉, 인터커넥트(120)는 상기 버스 마스터들로부터 상기 슬레이브들 중 적어도 하나를 데이터 접근하기 위해 버스 소유권(Bus Ownership)을 갖는 버스 마스터로부터 어드레스 정보와 제어 정보(예를 들어, 쓰기/읽기 명령, 버스트 동작, 데이 터 크기 등)를 포함하는 구동 정보를 받아서 중재를 통해 하나의 버스 마스터를 선택하고, 해당 슬레이브로 데이터 처리 준비 요구를 보내어 해당 데이터를 처리한다.That is, the
상술한 바와 같은 시스템 구성을 갖는 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
상기 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
206단계에서 슬레이브1(110)은 상기 마스터의 독점 읽기가 성공하였다면, 208단계로 진행하여 독점 접근 성공(EXOKAY)신호를 상기 마스터1(100)으로 전송한다. 그렇지 않고, 독점 읽기가 실패했다면, 210단계로 진행하여 슬레이브1(110)은 상기 마스터1(100)으로 독점 접근 실패(OK)신호를 전송한다. In
상기 도 2의 210단계에서와 같은 독점 접근 실패는, 상기 독점 접근을 요청한 마스터, 즉 마스터1(100)이 독점 접근 쓰기/읽기 동작을 수행하는 도중 다른 마스터(마스터2 또는 마스터 3)가 상기 마스터 1이 독점 접근을 수행하고 있는 동일한 슬레이브의 동일한 메모리의 데이터를 읽을 때 발생하게 된다.The exclusive access failure as in
즉, 상술한 바와 같이 일반적인 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
도 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
상기 도 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
그리고, 상기 도 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)와 연결되는 포트를 나타낸다.
상기 인터커넥트(320)에는 또한, 마스터들과 슬레이브들간의 읽기/쓰기 동작을 위한 버스가 2개 존재한다. 상기 도 3에 도시된 것과 같이 인터커넥트(320)내에 구비된 버스는 주소 버스(Address Bus)(360), 데이터 버스(Data Bus)(370)로 구성된다.The
주소 버스(360)는 마스터들(300, 301)이 데이터를 읽기/쓰기 위한 슬레이브들(310, 311)의 주소를 디코딩하는 역할을 수행하여, 데이터 버스(370)는 상기 디코딩된 주소에 해당되는 슬레이브의 메모리 주소로 상기 마스터들(300, 301)이 읽거나 쓸 데이터들을 전송한다. 이러한 주소 버스(360)와 데이터 버스(370)는 SoC와 같은 모든 버스 시스템에 구비된다.The
그리고, 제어 신호(380)는 상기 마스터들(300, 301)이 슬레이브들(310, 311)에 대해 독점 접근을 수행하기 위해 본 발명에서 새로 추가된 레지스터 파일(350) 의 정보들을 검사하기 위한 신호이다.In addition, the
레지스터 파일(Register File)(350)은 본 발명의 실시 예에 따라 독점 접근을 수행할 마스터들(300, 301) 간의 충돌을 방지하기 위한 소정 정보가 저장되어 있으며, 그 내용은 하기의 <표 1>과 같다.The
(Flag == 1 일 때 독점 접근 발생)Flags for Exclusive Access
(Exclusive access occurs when Flag == 1)
상기 <표 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
상기 <표 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
400단계에서 마스터 B(301)가 독점 접근을 수행한다면, 402단계로 진행하여, 상기 레지스터 파일(350) 내의 지시 플래그(Indicator Flag)를 제어 신호(Control Signal)(380)를 통해 검사한다.If the
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
상기 도 4의 410단계에서는 현재 독점 접근을 수행하는 마스터 개수(Counter)만을 증가시키는 것으로 기재되어 있으나, 실제로는 현재 독점 접근을 수행하고 있는 정보들이 상기 레지스터 파일(350) 내에 등록된다. In
반면, 상기 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
412단계에서 마스터 B(301)는 슬레이브의 메모리에 데이터 읽기/쓰기 동작을 수행하고, 414단계에서 상기 마스터 B(301)가 독점 접근한 슬레이브로부터 독점 성공 신호(EXOKAY)를 수신하면, 416단계로 진행하여 현재 독점 접근을 수행하는 마스터 개수를 "1" 감소시킨다. 반면, 상기 414단계에서 상기 슬레이브로부터 독점 접근 성공신호를 수신하지 못하면, 독점 접근이 실패했다는 의미이므로 상기 400단계로 진행하여 독점 접근 동작을 다시 시작하게 된다.In
상기 416단계에서 독점 접근을 수행하는 마스터 개수를 감소시킨 마스터 B(301)는 418단계에서 현재 독점 접근을 수행하는 마스터 개수가 "0"인지를 검사한다. 만일, "0"이라면, 현재 독점 접근을 수행하는 마스터가 없다는 의미이므로, 420단계로 진행하여 레지스터 파일(350)내의 지시 플래그를 "0"으로 설정한다.In
상술한 바와 같이 본 발명을 적용하면, 마스터들이 동일한 슬레이브의 동일한 메모리에 접근하지 않음으로써, 독점 접근이 발생할 시 실패를 줄일 수 있다.또한, 종전과 같이 하나의 마스터의 버스 점유가 끝날 때까지 다른 마스터들이 슬레이브로 읽기/동작을 수행하지 못하고 있는 대기 시간(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)
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)
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)
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 |
-
2005
- 2005-11-10 KR KR1020050107514A patent/KR101226389B1/en not_active IP Right Cessation
Patent Citations (2)
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 |