KR20090047942A - Apparatus and method for performance mobile platform on-chip bus - Google Patents

Apparatus and method for performance mobile platform on-chip bus Download PDF

Info

Publication number
KR20090047942A
KR20090047942A KR1020070114070A KR20070114070A KR20090047942A KR 20090047942 A KR20090047942 A KR 20090047942A KR 1020070114070 A KR1020070114070 A KR 1020070114070A KR 20070114070 A KR20070114070 A KR 20070114070A KR 20090047942 A KR20090047942 A KR 20090047942A
Authority
KR
South Korea
Prior art keywords
slave
data
master
address
scheduler
Prior art date
Application number
KR1020070114070A
Other languages
Korean (ko)
Other versions
KR101423675B1 (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 KR1020070114070A priority Critical patent/KR101423675B1/en
Publication of KR20090047942A publication Critical patent/KR20090047942A/en
Application granted granted Critical
Publication of KR101423675B1 publication Critical patent/KR101423675B1/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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 온 칩 버스(On-Chip BUS)에 관한 것으로 버스 구조를 사용하는 시스템에 있어서 직접 저장을 지시하는 시그널을 출력하는 마스터와 상기 직접 저장을 지시하는 시그널을 수신하여 제 1 슬레이브가 출력하는 데이터를 직접 상기 제 2 슬레이브로 포워딩하도록 스케줄링하는 제 1 스케줄러를 포함하는 것으로 CPU, DMAC와 같은 마스터가 데이터 전송에 관여하는 시간을 줄임으로서, 해당 마스터가 다른 작업을 미리 수행할 수 있다. 따라서 전체적인 시스템 성능 향상이 가능한 이점이 있다.The present invention relates to an on-chip bus, and in a system using a bus structure, a master outputting a signal indicating direct storage and a first slave receiving the signal indicating the direct storage to output the first slave. It includes a first scheduler that schedules data to be directly forwarded to the second slave to reduce the time the master, such as CPU, DMAC involved in data transmission, so that the master can perform other tasks in advance. Therefore, there is an advantage that can improve the overall system performance.

On-Chip BUS, RDATA, WDATA, D-WAR. On-Chip BUS, RDATA, WDATA, D-WAR.

Description

모바일 플랫폼을 위한 온 칩 버스 장치 및 방법{APPARATUS AND METHOD FOR PERFORMANCE MOBILE PLATFORM ON-CHIP BUS}On-chip bus device and method for mobile platform {APPARATUS AND METHOD FOR PERFORMANCE MOBILE PLATFORM ON-CHIP BUS}

본 발명은 고성능 모바일 플랫폼에서 사용되는 온-칩 버스의 성능 향상을 위한 장치 및 방법에 관한 것으로, 더욱 상세하게는 시스템 온 칩(System-on-Chip) 플랫폼에서 널리 사용되는 마스터-슬레이브(Master-Slave) 버스 구조에서, 슬레이브 사이의 데이터 전송(Data Transfer)을 마스터의 중계 없이 직접적인 슬레이브에서 슬레이브로의 트랜잭션(Direct Slave-to-Slave Transaction)을 가능하게 함으로서, 마스터가 데이터 전송을 위해 소비하는 시간(Workload) 및 소비 전력을 감소시키고, 더불어 데이터 전송에 소요되는 시간을 줄임으로써 고속의 데이터 전송을 가능하게 하는 새로운 고성능 버스 프로토콜(Bus Protocol) 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to an apparatus and method for improving the performance of an on-chip bus used in a high-performance mobile platform, and more particularly, a master-slave (Master-slave) widely used in a system-on-chip platform. Slave) In the bus structure, the time spent by the master for data transfer by enabling a direct slave-to-slave transaction from the slave to the data transfer between the slaves without relaying the master. The present invention relates to a new high-performance bus protocol method and apparatus for enabling high-speed data transmission by reducing workload and power consumption, and also reducing time required for data transmission.

종래 대부분의 모바일 플랫폼에서 사용되는 버스 구조는 ARM사에서 개발한 AMBA(Advanced Microprocessor 버스 Architecture) 프로토콜에 기반하고 있다.이 AMBA 버스에서 가장 최신 버전인 AMBA 3.0 - AXI(Advanced Extensible Interface) 프로토콜은 고성능 임베디드(Embedded) 플랫폼을 위하여 설계되었고, 고성능 모바일 플랫폼에 점차 적용되고 있으며, 이를 이용한 상용제품이 하나 둘 씩 출시되고 있는 실정이다.The bus structure used in most conventional mobile platforms is based on the Advanced Microprocessor Bus Architecture (AMBA) protocol developed by ARM, which is the latest version of the AMBA 3.0-Advanced Extensible Interface (AXI) protocol. It is designed for (Embedded) platform and is gradually applied to high performance mobile platform, and commercial products using this are being released one by one.

AMBA 버스와 같은 종래의 모든 임베디드 버스 구조는 마스터 버스와 슬레이브 버스로 구분되어 있다. 읽기 또는 쓰기 트랜잭션을 초기화하는 주체를 마스터라고 하며, 마스터의 트랜잭션에 응대하는 객체를 슬레이브라고 한다. All conventional embedded bus structures, such as AMBA buses, are divided into master buses and slave buses. The subject that initiates the read or write transaction is called the master, and the object that responds to the master's transaction is called the slave.

따라서, 모든 버스 트랜잭션은 마스터와 슬레이브 사이에서 이루어진다. 즉, 마스터가 읽기 또는 쓰기 트랜잭션을 초기화하고, 슬레이브 의 해당 주소에서 데이터를 읽기 하여 마스터에게 전달하거나 또는 슬레이브의 해당 주소에 해당 데이터를 쓰기 하는 동작을 한다.Thus, all bus transactions occur between master and slave. That is, the master initiates a read or write transaction, reads data from the slave's address, and transfers it to the master or writes the data to the slave's address.

도 1은 기존의 버스 구조를 도시한 도면이다.1 is a diagram illustrating a conventional bus structure.

상기 도 1을 참조하면, 상기 도 1은 AXI 프로토콜을 구현한 버스 구조를 나타낸 것이다. AXI 버스는 하기와 같은 5개의 채널을 제공한다. (1) 읽기주소 (AR 채널), (2) 읽기 데이터 (RD 채널), (3) 쓰기 주소 (AW 채널), (4) 쓰기 데이터 (WD채널), (5) 쓰기 응답(B 채널).Referring to FIG. 1, FIG. 1 illustrates a bus structure implementing the AXI protocol. The AXI bus provides five channels: (1) Read address (AR channel), (2) Read data (RD channel), (3) Write address (AW channel), (4) Write data (WD channel), (5) Write response (B channel).

읽기 트랜잭션의 경우, 마스터는 AR 채널을 통해 읽기 주소를 슬레이브에게 전달하고, RD 채널을 통해 슬레이브로부터 읽기 데이터를 수신한다. 쓰기 트랜잭션의 경우, 마스터는 AW채널을 통해 쓰기 주소를, WD채널을 통해 쓰기 데이터를 슬 레이브에게 전달하면, 슬레이브는 해당 쓰기 동작을 마친후, B 채널을 통해 쓰기 동작이 성공적으로 완료되었음을 마스터에게 보고한다.In the case of a read transaction, the master sends a read address to the slave through the AR channel and receives read data from the slave through the RD channel. In the case of a write transaction, the master sends the write address through the AW channel and the write data through the WD channel to the slave. After the slave completes the write operation, it informs the master that the write operation was successfully completed through the B channel. report.

상기의 각각의 채널들은 시간과 공간 모두 독립적으로 수행이 가능하다. 따라서 버스 구조 내에서 각 채널은 완벽하게 분리가 되어 있다. Each of the channels can be performed independently of both time and space. Therefore, each channel is completely separated within the bus structure.

기존의 버스 구조에서의 모든 트랜잭션은 마스터에서 슬레이브로의 읽기 또는 쓰기 트랜잭션으로 간주할 수 있다. 고성능 모바일 플랫폼상에서 주로 요구되는 버스 트랜잭션의 패턴이면서 성능상의 병목현상의 원인이 되는 패턴은 메모리 슬레이브(DRAM, SRAM 등)의 어느 주소 영역에서 같은 메모리의 다른 주소 영역으로 데이터를 옮기거나, 메모리 슬레이브 상의 특정 데이터 묶음을 다른 슬레이브(USB, PCMCIA 등)로 이동하는 것이다.All transactions in the existing bus structure can be thought of as read or write transactions from master to slave. The pattern of bus transactions that is often required on high-performance mobile platforms and the cause of performance bottlenecks is the movement of data from one address area of a memory slave (DRAM, SRAM, etc.) to another address area of the same memory, or on a memory slave. To move a specific set of data to another slave (USB, PCMCIA, etc.).

이와 같은, 슬레이브에서 슬레이브로의 데이터 이동이 매우 빈번하게 발생하는데, 이를 위하여 마스터의 역할이 필요하다. 즉, 마스터가 소스 슬레이브로부터 해당 데이터를 읽고, 이를 받아서 데스터네이션 슬레이브로 다시 쓰는 역할이다. 이를 위해서, 마스터는 연속된 일련의 읽기 및 쓰기 트랜잭션을 초기화한다.As such, data movement from slave to slave occurs very frequently, and for this purpose, the role of the master is required. In other words, the master reads the data from the source slave, receives it, and writes it back to the destination slave. To do this, the master initiates a series of read and write transactions.

이러한 버스(110)상의 동작을 채널별로 살펴 보면, 마스터(100)가 슬레이브1(140)의 데이터를 슬레이브2(150)로 이동하는 상황에서. 우선 AR채널을 통해서 상기 마스터(100)가 상기 슬레이브1(140)에게 읽기 주소를 전달한다.Looking at the operation on the bus 110 for each channel, in the situation where the master 100 moves the data of the slave 1 (140) to the slave 2 (150). First, the master 100 transmits a read address to the slave 1 140 through an AR channel.

이후, 상기 마스터는(100)는 상기 슬레이브1(140)로부터 읽기 데이터를 전달받아서, 내부 레지시스터에 저장한다. 그리고 상기 마스터(100)는 저장되어 있던 데이터를 슬레이브2(150)에게 쓰기 위한 동작을 시작한다.Thereafter, the master 100 receives read data from the slave 1 140 and stores the read data in the internal register. The master 100 starts an operation for writing the stored data to the slave 2 150.

이때, 상기 마스터(100)는 AW채널을 통해 쓰기 주소를 전달하고, WD채널을 통해 쓰기 데이터를 전달한다. 이 두 채널은 동시에 동작이 가능하다. 상기 슬레이브2(150)는 내부 쓰기 동작을 수행하고 완료가 되면, B채널을 통해 상기 마스터(100)에게 쓰기의 완료를 알린다. In this case, the master 100 transmits a write address through the AW channel and write data through the WD channel. Both channels can operate simultaneously. The slave 2 150 performs an internal write operation and, when completed, notifies the master 100 of completion of writing through the B channel.

기존의 버스 시스템에서는 이와 같은 순서로 5개의 채널을 각각 사용하여 상기 마스터(100)가 상기 슬레이브1(140)의 데이터를 상기 슬레이브2(150)에게 전달하게 된다. 이를 상기 마스터(100) 및 상기 슬레이브(140, 150)별로 시간 순으로 정리하면 도 2와 같이 나타낼 수 있다.In the existing bus system, the master 100 transmits the data of the slave 1 140 to the slave 2 150 using each of the five channels in this order. If this is arranged in chronological order for each of the master 100 and the slaves 140 and 150, it may be represented as shown in FIG. 2.

상기 도 1에서는 멀티플렉서(118, 134)가 스케줄러(116, 132)의 제어에 의해 슬레이브(140, 150)중 하나를 선택하고, 선택된 슬레이브로부터 데이터를 입력받는다. 그리고, 디멀티플렉서(114, 126, 130)는 스케줄러(112, 124, 128)의 제어에 의해 슬레이브(140, 150) 중 하나를 선택하여 선택된 스케줄러로 데이터를 출력한다.In FIG. 1, the multiplexers 118 and 134 select one of the slaves 140 and 150 under the control of the schedulers 116 and 132, and receive data from the selected slave. The demultiplexers 114, 126, and 130 select one of the slaves 140 and 150 under the control of the schedulers 112, 124, and 128, and output data to the selected scheduler.

상기 도 1에서의 굵은 선은 현재 동작 중인 과정을 나타내는 것으로, 상기 마스터(100)가 출력한 데이터가 상기 슬레이브(140, 150)중 하나에 출력되는 것을 나타낸다.The thick line in FIG. 1 represents a process currently in operation, and indicates that data output from the master 100 is output to one of the slaves 140 and 150.

도 2는 기존의 버스 동작 과정을 도시한 도면이다.2 is a diagram illustrating a conventional bus operation process.

상기 도 2를 참조하면, 마스터(210)가 초기화한 슬레이브1(220)으로부터 읽기 과정의 결과로, 상기 마스터(210)의 레지스터에 읽은 데이터가 저장되고, 이후, 상기 마스터(210)가 초기화한 슬레이브2(230)으로의 쓰기 과정의 결과로 상기 마스 터(210)의 레지스터에 저장된 데이터가 상기 슬레이브2(230)에 저장된다.Referring to FIG. 2, as a result of a read process from the slave 1 220 initialized by the master 210, data read in the register of the master 210 is stored, and then initialized by the master 210. As a result of the writing process to the slave 2 230, the data stored in the register of the master 210 is stored in the slave 2 230.

상기의 모바일 플랫폼 버스 시스템의 경우, 임베디드 시스템에서 빈번하게 발생되는 슬레이브에서 슬레이브로의 단순한 데이터 전송 동작을 수행하기 위하여 마스터-CPU 또는 DMAC(Direct Memory Access Controller)의 독립적이고 연속된 읽기 트랜잭션과 쓰기 트랜잭션을 사용하고 있다. In the case of the mobile platform bus system, independent and continuous read and write transactions of a master-CPU or a direct memory access controller (DMAC) to perform a simple data transfer operation from a slave to a slave frequently occur in an embedded system. I'm using.

이는 동일한 슬레이브(Memory)내에서의 데이터 이동의 경우에도 마찬가지로 운용된다. 이와 같은 종래의 기술은 다음과 같은 문제점이 있다.This also works in the case of data movement in the same slave (Memory). This conventional technique has the following problems.

첫 번째로, 슬레이브 사이의 전송을 수행하는데 있어서, 마스터가 매번 2회의 읽기/쓰기 트랜잭션을 수행한다. 따라서 마스터의 업무 로드가 증가하며, 버스의 사용 회수도 증가한다. CPU의 업무 로드를 감소하기 위해서 DMAC를 사용하는데, DMAC 역시 CPU와 같은 방식으로 읽기 및 쓰기 트랜잭션을 수행하므로, 전송 자체의 성능향상은 없으나 비용증가를 야기하는 문제점이 있다.First, in performing transfers between slaves, the master performs two read / write transactions each time. This increases the workload on the master and increases the frequency of bus use. DMAC is used to reduce the work load of the CPU. Since the DMAC performs read and write transactions in the same manner as the CPU, there is no performance improvement of the transmission itself, but there is a problem that increases the cost.

두 번째로, 데이터의 흐름이 소스 슬레이브에서 마스터로 전달되었다가, 다시 데스터네이션 슬레이브로 전달된다. 즉, 데이터의 이동 경로가 불필요하게 마스터를 경유하도록 되어 있다. 이로 인하여 불필요한 지연시간(Latency)와 전력이 낭비되는 문제점이 있다. Secondly, the flow of data is transferred from the source slave to the master and then back to the destination slave. In other words, the data movement path is unnecessarily via the master. As a result, unnecessary latency and power are wasted.

상기의 두 가지 문제점을 해결하기 위하여, 데스터네이션 슬레이브 내부에 내장(Built-In) DMAC를 내장하는 해결 방법이 존재하지만, 이는 슬레이브 내부에 추가적인 DMAC기능을 위한 로직/버퍼의 증설과 버스 시스템에 추가적인 마스터 인 터페이스가 필요하다. 따라서, 이로 인한 소비 전력과 비용(면적)을 필요로 하고. 또한 슬레이브의 경우, 미리 설계된 IP(Intellectual Property)를 구매하는 경우가 대부분인데, 이러한 특별한 내장 DMAC 기능을 내장한 슬레이브를 별도로 수급해야하는 문제점이 있다.In order to solve the above two problems, there is a solution for embedding a built-in DMAC inside the destination slave, but this has been applied to the bus system and the expansion of logic / buffer for additional DMAC functions in the slave. An additional master interface is required. Therefore, it requires power consumption and cost (area). In addition, in the case of a slave, a pre-designed IP (Intellectual Property) is often purchased, and there is a problem in that a slave having a special built-in DMAC function must be separately supplied.

본 발명의 목적은 모바일 플랫폼을 위한 온 칩 버스 장치 및 방법을 제공함에 있다.An object of the present invention is to provide an on-chip bus apparatus and method for a mobile platform.

본 발명의 다른 목적은 기존 버스 시스템에서 서로 다른 슬레이브 간 또는 동일 슬레이브 내에서 데이터 전송을 위하여, 불필요한 마스터의 읽기 및 쓰기 트랜잭션을 간략화시켜서, 마스터의 업무 로드 및 전송 지연시간을 감소시키고, 고성능 모바일 플랫폼 내에서의 고속 데이터 전송과 전력 및 면적 비용을 줄이기 위한 장치 및 방법을 제공함에 있다.Another object of the present invention is to simplify read and write transactions of an unnecessary master for data transmission between different slaves or within the same slave in an existing bus system, thereby reducing the workload and transmission latency of the master, and a high performance mobile platform. An apparatus and method for reducing data and power and area costs are provided.

본 발명의 목적을 달성하기 위한 제 1 견지에 따르면, 버스 구조를 사용하는 시스템에 있어서 직접 저장을 지시하는 시그널을 출력하는 마스터와 상기 직접 저장을 지시하는 시그널을 수신하여 제 1 슬레이브가 출력하는 데이터를 직접 상기 제 2 슬레이브로 포워딩하도록 스케줄링하는 제 1 스케줄러를 포함하는 것을 특징 으로 한다.According to a first aspect of the present invention, in a system using a bus structure, a master outputting a signal indicating direct storage and a data received by the first slave receiving the signal indicating the direct storage are output. And a first scheduler for scheduling to forward the data directly to the second slave.

본 발명의 목적을 달성하기 위한 제 2 견지에 따르면, 버스 구조를 사용하는 시스템의 데이터 직접 저장 방법에 있어서 마스터가 직접 저장을 지시하는 시그널을 출력하는 제 1 과정과 상기 제 1 과정 이후에, 상기 마스터가 제 2 슬레이브에 저장할 주소를 나타내는 쓰기 주소를 상기 제 2 슬레이브로 출력하는 제 2 과정과 상기 제 2과정 이후 상기 직접 저장을 지시하는 시그널을 수신한 스케줄러가 상기 제 1 슬레이브가 출력하는 데이터를 직접 제 2 슬레이브로 포워딩하도록 스케줄링하는 제 3 과정과 상기 제 2 슬레이브는 포워딩한 데이터를 저장하는 제 4 과정과 상기 제 4 과정을 완료한 경우, 상기 제 2 슬레이브가 상기 마스터에게 응답 신호를 출력하는 제 5 과정을 포함하는 것을 특징으로 한다.According to a second aspect for achieving the object of the present invention, in the method of directly storing data in a system using a bus structure, after the first step and the first step of outputting a signal indicating direct storage by the master, A second process of outputting a write address indicating an address to be stored by the master to the second slave to the second slave and a scheduler receiving a signal indicating the direct storage after the second process may output data output by the first slave. When the third process of scheduling to forward to the second slave directly and the fourth process of storing the forwarded data and the fourth process, the second slave outputs a response signal to the master. And a fifth process.

본 발명의 D-WAR 트랜잭션을 사용함으로써 슬레이브 사이의 단순한 데이터 전송를 빠르게 수행할 수 있다. 따라서 고성능 모바일 플랫폼에서 데이터 전송 시간을 단축시킬 수 있다. 더불어 마스터의 내부 레지스터를 거치지 않으므로, 소비 전력 감소가 가능한 이점이 있다.By using the D-WAR transaction of the present invention, simple data transfer between slaves can be performed quickly. As a result, data transfer time can be reduced on high-performance mobile platforms. In addition, it does not go through the internal resistor of the master, there is an advantage that can reduce the power consumption.

또한, 본 발명은 CPU, DMAC와 같은 마스터가 데이터 전송에 관여하는 시간을 줄임으로서, 해당 마스터가 다른 작업을 미리 수행할 수 있다. 따라서 전체적인 시스템 성능 향상이 가능한 이점이 있다.In addition, the present invention reduces the time that the master such as the CPU, DMAC involved in the data transfer, the master can perform other tasks in advance. Therefore, there is an advantage that can improve the overall system performance.

또한, 본 발명은 동일 슬레이브 내에서의 데이터 이동을 할 경우에도 적용이 가능한 이점이 있다.In addition, the present invention has the advantage that it can be applied even when moving data in the same slave.

이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, when it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

이하, 본 발명은 모바일 플랫폼을 위한 온 칩 버스 장치 및 방법에 대해 설명할 것이다. Hereinafter, the present invention will be described on-chip bus apparatus and method for a mobile platform.

본 발명은 슬레이브와 슬레이브간에 직접적인 데이터 전송를 가능하게 하는 트랜잭션 프로토콜 및 이를 위한 장치 구성을 제안한다.The present invention proposes a transaction protocol and an apparatus configuration therefor that enable direct data transfer between slaves.

기존 마스터가 초기화하던 연속적이고 별도로 수행되던 읽기 트랜잭션과 쓰기 트랜잭션을 하나의 새로운 읽기 후의 직접 쓰기(D-WAR, Direct Write After Read)트랜잭션으로 통합한다. 즉, 소스 슬레이브에서 데스터네이션 슬레이브로의 직접적인 데이터 전송을 마스터의 개입 없이 가능하게 한다. Consolidate the continuous and separately executed read and write transactions initiated by the existing master into a new Direct Write After Read (D-WAR) transaction. That is, direct data transfer from the source slave to the destination slave is possible without the master's intervention.

도 3은 본 발명의 실시 예에 따른 버스의 구조를 도시한 것이다.3 illustrates a structure of a bus according to an exemplary embodiment of the present invention.

상기 도 3을 참조하면, 본 발명의 버스(300) 구조는 기존의 버스 구조에서 D-WAR 신호가 추가된다. 즉, 마스터 인터페이스에 1-비트 'D-WAR' 신호가 추가된다(점선으로 표시). 그리고 소스 슬레이브의 RD채널의 신호가 데스터네이션 슬레이 브의 WD채널로 멀티플렉싱되는 경로가 추가된다(점선으로 표시).Referring to FIG. 3, in the bus 300 structure of the present invention, a D-WAR signal is added to the existing bus structure. That is, a 1-bit 'D-WAR' signal is added to the master interface (indicated by the dashed line). A path is added (indicated by the dashed line) in which the signal of the RD channel of the source slave is multiplexed to the WD channel of the destination slave.

상기 D-WAR 신호는 스케줄러(320)로 출력되고, 상기 스케줄러(320)는 상기 D-WAR신호를 수신할 경우, 슬레이브1(340)가 출력한 데이터를 멀티플렉서(322)가 멀티플렉싱하여 디멀티플렉서(326)를 통해 슬레이브2(350)로 출력하고, 상기 슬레이브2(350)는 입력받은 데이터를 저장한다. The D-WAR signal is output to the scheduler 320. When the scheduler 320 receives the D-WAR signal, the multiplexer 322 multiplexes data output from the slave1 340 to demultiplexer 326. The slave 2 350 outputs the data to slave 2 350, and the slave 2 350 stores the received data.

상기 과정에서 상기 슬레이브2(350)는 상기 마스터(300)가 출력한 쓰기 주소를 AW 채널을 통해 입력받고, 상기 쓰기 주소에 데이터를 저장하고, 저장과정을 완료하면, 응답 신호를 B 채널을 통해 상기 마스터(300)로 출력한다.In the process, the slave 2 350 receives a write address output from the master 300 through an AW channel, stores data in the write address, and when the storing process is completed, a response signal is transmitted through the B channel. Output to the master (300).

스케줄러(312, 316, 324, 328, 332)의 기능과, 멀티플렉서(318, 334) 및 디멀티플렉서(314, 326, 330)의 기능은 기존과 동일하다. 단, 상기 슬레이브1(340)의 출력 데이터가 상기 슬레이브2(350)에 저장되는 과정에서 스케줄러(324)는 상기 마스터(300)로부터 슬레이브2(350)를 선택할 것을 지시받고, 디멀티플렉서(326)는 스케줄러(324)의 제어에 의해 멀티플렉서(322)로부터 출력된 데이터를 상기 슬레이브2(350)로 디멀티플렉싱한다. 상기의 모든 스케줄러는 마스터(300)의 제어에 의해 동작한다.The functions of the schedulers 312, 316, 324, 328, 332 and the functions of the multiplexers 318, 334 and the demultiplexers 314, 326, 330 are the same as before. However, while the output data of the slave 1 340 is stored in the slave 2 350, the scheduler 324 is instructed to select the slave 2 350 from the master 300, and the demultiplexer 326 The data output from the multiplexer 322 is demultiplexed to the slave 2 350 under the control of the scheduler 324. All the schedulers operate under the control of the master 300.

도 4는 본 발명의 실시 예에 따른 버스 동작 과정을 도시한 도면이다.4 is a diagram illustrating a bus operation process according to an exemplary embodiment of the present invention.

상기 도 4를 참조하면, 마스터(410)는 슬레이브 2(430)로 이동할 데이터가 저장된 슬레이브 1(420)의 주소를 나타내는 읽기 주소를 상기 슬레이브 1(410)로 출력한다. 이 경우, AR 채널을 이용한다.Referring to FIG. 4, the master 410 outputs a read address indicating the address of the slave 1 420 in which data to be moved to the slave 2 430 is stored, to the slave 1 410. In this case, the AR channel is used.

이후, 상기 슬레이브 1(420)이 상기 읽기 주소에 대해 읽기 동작을 수행하고, 상기 슬레이브 1(420)이 읽은 데이터를 상기 마스터(410)로 출력한다, 이 경우, RD 채널을 이용한다.Thereafter, the slave 1 420 performs a read operation on the read address, and outputs the data read by the slave 1 420 to the master 410, in this case, using an RD channel.

상기의 과정과 동시에, 상기 마스터(410)는 D-WAR 시그널을 출력한다.상기 마스터(410)는 상기 슬레이브 2(430)에 저장할 주소를 나타내는 쓰기 주소를 상기 슬레이브 2(430)로 출력한다. 이 경우 AW 채널을 이용한다Simultaneously with the above process, the master 410 outputs a D-WAR signal. The master 410 outputs a write address indicating an address to be stored in the slave 2 430 to the slave 2 430. In this case, use the AW channel.

이후, 상기 슬레이브 1(420)이 상기 마스터(410)로 출력한 데이터가 직접 슬레이브 2(430)로 포워딩된다. 상기 포워딩 과정은 상기 마스터(410)의 상기 도 3의 스케줄러(328, 324)의 제어하에서, 멀티플렉서(322) 및 디멀티플렉서(326)에 의해 수행된다. 이 경우 WD 채널을 이용한다. Thereafter, the data output from the slave 1 420 to the master 410 is directly forwarded to the slave 2 430. The forwarding process is performed by the multiplexer 322 and the demultiplexer 326 under the control of the scheduler 328, 324 of FIG. 3 of the master 410. In this case, use the WD channel.

상기 슬레이브 2(430)는 포워딩한 데이터에 대해 쓰기 동작을 수행하여 저장한다. 상기 쓰기 동작을 완료하면, 상기 슬레이브 2(430)는 상기 마스터(410)로 응답 신호를 출력한다. 이 경우, B 채널을 이용한다.The slave 2 430 performs a write operation on the forwarded data and stores the data. When the write operation is completed, the slave 2 430 outputs a response signal to the master 410. In this case, the B channel is used.

도 5는 본 발명의 실시 예에 따른 버스 동작 과정을 도시한 흐름도이다.5 is a flowchart illustrating a bus operation process according to an exemplary embodiment of the present invention.

상기 도 5를 참조하면, 마스터는 슬레이브 2로 이동할 데이터가 저장된 슬레이브 1의 주소를 나타내는 읽기 주소를 상기 슬레이브 1로 출력한다(510 단계). 이 경우, AR채널을 이용한다.Referring to FIG. 5, the master outputs a read address indicating the address of slave 1 in which data to be moved to slave 2 is stored (step 510). In this case, an AR channel is used.

이후, 상기 슬레이브 1이 상기 읽기 주소에 대해 읽기 동작을 수행하고(520 단계), 상기 슬레이브 1이 읽은 데이터를 상기 마스터로 출력한다(530 단계), 이 경우, RD 채널을 이용한다.Thereafter, the slave 1 performs a read operation on the read address (step 520), and outputs the data read by the slave 1 to the master (step 530). In this case, the RD channel is used.

상기의 과정과 동시에, 상기 마스터는 D-WAR 시그널을 출력하고(515 단계), 슬레이브 2에 저장할 주소를 나타내는 쓰기 주소를 상기 슬레이브 2로 출력한다. 이 경우 AW채널을 이용한다(525 단계).Simultaneously with the above process, the master outputs a D-WAR signal (step 515), and outputs a write address indicating an address to be stored in the slave 2 to the slave 2. In this case, the AW channel is used (step 525).

여기서, 상기 530단계의 과정이 끝나기 전에, 상기 515 및 525 단계의 과정이 먼저 끝나는 것이 바람직하다.Here, before the process of step 530 is finished, it is preferable that the process of steps 515 and 525 ends first.

이후, 상기 슬레이브 1이 상기 마스터로 출력한 데이터를 직접 슬레이브 2로 포워딩한다(535 단계). 이 경우 WD 채널을 이용한다.Thereafter, the slave 1 directly forwards the data output to the master to the slave 2 (step 535). In this case, use the WD channel.

상기 슬레이브 2는 포워딩한 데이터에 대해 쓰기 동작을 수행하여 저장한다(540 단계). The slave 2 performs a write operation on the forwarded data and stores it in operation 540.

상기 쓰기 동작을 완료하면, 상기 슬레이브 2는 상기 마스터에게 응답 신호를 출력한다(545 단계). 이 경우, B 채널을 이용한다.When the write operation is completed, the slave 2 outputs a response signal to the master (step 545). In this case, the B channel is used.

상기의 과정에서 슬레이브 1이 출력한 데이터를 상기 마스터가 선택적으로 레지스터에 저장하는 것도 가능하다.It is also possible for the master to selectively store data output by the slave 1 in the above process in a register.

본 발명의 구조는 슬레이브의 수가 2개 뿐만이 아니라, 3개 이상일 경우에도 적용가능한다. 즉, 소스 슬레이브 장치의 출력을 데스터네이션 슬레이브 장치의 입력으로 연결할 수 있으면 가능하다.The structure of the present invention is applicable not only to the number of slaves but also to three or more. That is, if the output of the source slave device can be connected to the input of the destination slave device.

한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이 다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described. However, various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the scope of the following claims, but also by the equivalents of the claims.

도 1은 기존의 버스 구조를 도시한 도면,1 is a view showing a conventional bus structure,

도 2는 기존의 버스 동작 과정을 도시한 도면,2 is a view illustrating a conventional bus operation process;

도 3은 본 발명의 실시 예에 따른 버스의 구조를 도시한 도면,3 is a view showing the structure of a bus according to an embodiment of the present invention;

도 4는 본 발명의 실시 예에 따른 버스 동작 과정을 도시한 도면, 및,4 is a diagram illustrating a bus operation process according to an embodiment of the present invention;

도 5는 본 발명의 실시 예에 따른 버스 동작 과정을 도시한 흐름도.5 is a flowchart illustrating a bus operation process according to an exemplary embodiment of the present invention.

Claims (11)

버스 구조를 사용하는 시스템에 있어서,In a system using a bus structure, 직접 저장을 지시하는 시그널을 출력하는 마스터와,A master that outputs a signal indicating direct storage, 상기 직접 저장을 지시하는 시그널을 수신하여 제 1 슬레이브가 출력하는 데이터를 직접 상기 제 2 슬레이브로 포워딩하도록 스케줄링하는 제 1 스케줄러를 포함하는 것을 특징으로 하는 장치.And a first scheduler configured to receive the signal indicative of the direct storage and schedule to directly forward data output from the first slave to the second slave. 제 1항에 있어서,The method of claim 1, 상기 마스터는 상기 제 2 슬레이브로 이동할 데이터가 저장된 상기 제 1 슬레이브의 주소를 나타내는 읽기 주소를 상기 제 1 슬레이브로 출력하고, 상기 제 2 슬레이브에 저장할 주소를 나타내는 쓰기 주소를 상기 제 2 슬레이브로 출력하는 것을 특징으로 하는 장치.The master outputs a read address indicating an address of the first slave, in which data to be moved to the second slave, to the first slave, and a write address indicating an address to be stored in the second slave, to the second slave. Device characterized in that. 제 2항에 있어서,The method of claim 2, 상기 제 1 슬레이브는 상기 읽기 주소에 대해 저장된 데이터를 상기 마스터로 출력하는 것을 특징으로 하는 장치.And the first slave outputs data stored for the read address to the master. 제 2항에 있어서,The method of claim 2, 상기 제 2 슬레이브는 포워딩한 데이터를 상기 쓰기 주소에 저장하고, 저장을 완료한 경우, 상기 마스터에게 응답 신호를 출력하는 것을 특징으로 하는 장치.And the second slave stores the forwarded data at the write address, and outputs a response signal to the master when the storage is completed. 제 1항에 있어서,The method of claim 1, 상기 직접 저장을 지시하는 시그널은 D-WAR(Direct-Write After Read) 시그널인 것을 특징으로 하는 장치.And the signal indicating the direct storage is a direct write after read (D-WAR) signal. 제 1항에 있어서,The method of claim 1, 상기 제 1 스케줄러는 멀티플렉서를 제어하여 상기 제 1 슬레이브로부터의 데이터를 멀티플렉싱하게 하는 것을 특징으로 하는 장치.The first scheduler controls a multiplexer to multiplex data from the first slave. 제 1항에 있어서,The method of claim 1, 상기 제 1 스케줄러가 멀티플렉싱하게 한 데이터를, 디멀터플렉서를 제어하여 디멀티플렉싱하게 하고 상기 제 2 슬레이브로 포워딩하는 제 2 스케줄러를 더 포함하는 것을 특징으로 하는 장치.And a second scheduler for controlling the demultiplexer to demultiplex and forward the data that the first scheduler has multiplexed to the second slave. 버스 구조를 사용하는 시스템의 데이터 직접 저장 방법에 있어서,In a method of directly storing data in a system using a bus structure, 마스터가 직접 저장을 지시하는 시그널을 출력하는 제 1 과정과,A first process of outputting a signal directly instructed by the master to store; 상기 제 1 과정 이후에, 상기 마스터가 제 2 슬레이브에 저장할 주소를 나타내는 쓰기 주소를 상기 제 2 슬레이브로 출력하는 제 2 과정과,A second process of outputting, to the second slave, a write address indicating an address to be stored in the second slave after the first process; 상기 제 2과정 이후, 상기 직접 저장을 지시하는 시그널을 수신한 스케줄러가 상기 제 1 슬레이브가 출력하는 데이터를 직접 제 2 슬레이브로 포워딩하도록 스케줄링하는 제 3 과정과, A third step of scheduling after receiving the signal indicating the direct storage, the scheduler receiving the first slave data to forward data output from the first slave to a second slave; 상기 제 2 슬레이브는 포워딩한 데이터를 저장하는 제 4 과정과,The second slave stores a forwarded data; 상기 제 4 과정을 완료한 경우, 상기 제 2 슬레이브가 상기 마스터에게 응답 신호를 출력하는 제 5 과정을 포함하는 것을 특징으로 하는 방법.And when the fourth process is completed, the second slave outputs a response signal to the master. 제 8항에 있어서,The method of claim 8, 상기 제 1 과정 전에,Before the first process, 상기 마스터가 상기 제 2 슬레이브로 이동할 데이터가 저장된 상기 제 1 슬레이브의 주소를 나타내는 읽기 주소를 상기 제 1 슬레이브로 출력하는 제 6과정과, A sixth process of outputting, to the first slave, a read address indicating an address of the first slave in which data to be moved by the master to the second slave is stored; 상기 제 6 출력 과정 후, 상기 제 1 슬레이브가 상기 읽기 주소에 대해 저장 된 데이터를 상기 마스터로 출력하는 제 7 과정을 더 포함하는 것을 특징으로 하는 방법. And a seventh process of outputting, by the first slave, data stored for the read address to the master after the sixth output process. 제 8항에 있어서,The method of claim 8, 상기 직접 저장을 지시하는 시그널은 D-WAR(Direct-Write After Read) 시그널인 것을 특징으로 하는 방법.The signal indicating the direct storage is a direct write after read (D-WAR) signal. 제 8항에 있어서,The method of claim 8, 상기 제 3 과정은 The third process is 상기 스케줄러가 멀티플렉서를 제어하여 상기 제1 슬레이브로부터의 데이터를 멀티플렉싱하는 과정과,Multiplexing the data from the first slave by the scheduler by controlling the multiplexer; 상기 멀티플렉싱한 데이터를 다른 스케줄러가 디멀티플렉서를 제어하여 디멀티플렉싱하여 상기 제 2 슬레이브로 포워딩하는 과정을 포함하는 것을 특징으로 하는 방법.And demultiplexing the multiplexed data by another scheduler to control the demultiplexer and forwarding the demultiplexed data to the second slave.
KR1020070114070A 2007-11-09 2007-11-09 Apparatus and method for performance mobile platform on-chip bus KR101423675B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070114070A KR101423675B1 (en) 2007-11-09 2007-11-09 Apparatus and method for performance mobile platform on-chip bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070114070A KR101423675B1 (en) 2007-11-09 2007-11-09 Apparatus and method for performance mobile platform on-chip bus

Publications (2)

Publication Number Publication Date
KR20090047942A true KR20090047942A (en) 2009-05-13
KR101423675B1 KR101423675B1 (en) 2014-07-25

Family

ID=40857202

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070114070A KR101423675B1 (en) 2007-11-09 2007-11-09 Apparatus and method for performance mobile platform on-chip bus

Country Status (1)

Country Link
KR (1) KR101423675B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089344B1 (en) * 2000-06-09 2006-08-08 Motorola, Inc. Integrated processor platform supporting wireless handheld multi-media devices
JP4458873B2 (en) * 2004-02-16 2010-04-28 株式会社リコー Serial data transfer method and apparatus

Also Published As

Publication number Publication date
KR101423675B1 (en) 2014-07-25

Similar Documents

Publication Publication Date Title
US7506089B2 (en) Bus system and method thereof
JP4845522B2 (en) System bus control device, integrated circuit and data processing system
JP4182801B2 (en) Multi-processor system
JP2004171209A (en) Shared memory data transfer device
US7962670B2 (en) Pin multiplexing
WO2015194133A1 (en) Arithmetic device, arithmetic device control method, and storage medium in which arithmetic device control program is recorded
JP2006293927A (en) Direct memory access controller and system lsi including direct memory access controller
US20070156937A1 (en) Data transfer in multiprocessor system
JP2001117858A (en) Data processor
JP4902640B2 (en) Integrated circuit and integrated circuit system
US7203781B2 (en) Bus architecture with primary bus and secondary or slave bus wherein transfer via DMA is in single transfer phase engagement of primary bus
US20120110535A1 (en) Integrated circuit manufacturing method and semiconductor integrated circuit
KR20090047942A (en) Apparatus and method for performance mobile platform on-chip bus
JP2008140065A (en) Access arbitration device, access arbitration method and information processor
JP2005216147A (en) Information processing apparatus
KR20060064146A (en) Low power micro controller
JP5613517B2 (en) Information processing device
US7716392B2 (en) Computer system having an I/O module directly connected to a main storage for DMA transfer
JP4633334B2 (en) Information processing apparatus and memory access arbitration method
EP3198455B1 (en) Managing memory in a multiprocessor system
US8677033B2 (en) Method for initializing registers of peripherals in a microcontroller
KR100973851B1 (en) Embedded system and method for preventing internal BUS conflict thereof
JP2003122704A (en) Data processor
JP2005293435A (en) Data transfer device and its setting method
JP2008165463A (en) Bus controller

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 5