KR100452325B1 - AMBA-based Multiprocessor system for processor identification number allocation and sequential booting - Google Patents

AMBA-based Multiprocessor system for processor identification number allocation and sequential booting Download PDF

Info

Publication number
KR100452325B1
KR100452325B1 KR10-2002-0082895A KR20020082895A KR100452325B1 KR 100452325 B1 KR100452325 B1 KR 100452325B1 KR 20020082895 A KR20020082895 A KR 20020082895A KR 100452325 B1 KR100452325 B1 KR 100452325B1
Authority
KR
South Korea
Prior art keywords
bus
processor
multiprocessor
master
arbiter
Prior art date
Application number
KR10-2002-0082895A
Other languages
Korean (ko)
Other versions
KR20040056293A (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 KR10-2002-0082895A priority Critical patent/KR100452325B1/en
Publication of KR20040056293A publication Critical patent/KR20040056293A/en
Application granted granted Critical
Publication of KR100452325B1 publication Critical patent/KR100452325B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration

Abstract

본 발명은 AMBA(Advanced Micro-controller Bus Architecture) 버스를 연결 매체로 하여 프로세서 코어를 두개 이상 사용하는 시스템온칩(System On-Chip: SoC)에서 각 프로세서에게 고유번호를 할당하고, 복수개의 프로세서간에 순차적인 부팅을 지원할 수 있는 멀티프로세서 시스템에 관한 것이다. 이러한 본 발명은 다수의 마스터들; 상기 마스터들과 다른 자원들이 연결되는 어드레스 및 제어신호선과, 읽기 데이터 신호선, 및 쓰기 데이터 신호선을 제공하는 버스; 상기 마스터로부터 버스 요구신호를 입력받아 버스 활성화 신호에 따라 내부 버스 요구신호를 발생하고, 이에 따라 각 버스 마스터의 버스 사용권 허가 여부를 제어하며, 버스 사용이 허락된 마스터의 버스사용자 번호를 출력하는 버스 중재기; 및 상기 버스 중재기에 버스 활성화 신호를 제공하고, 상기 버스 중재기로부터 버스 사용자 번호를 입력받아 저장하는 멀티프로세서 지원 슬레이브로 구성된다.The present invention assigns a unique number to each processor in a System On-Chip (SoC) using two or more processor cores using an Advanced Micro-controller Bus Architecture (AMBA) bus as a connection medium, and sequentially among a plurality of processors. A multiprocessor system capable of supporting in-boot is provided. This invention comprises a plurality of masters; A bus providing an address and control signal line to which the masters and other resources are connected, a read data signal line, and a write data signal line; A bus for receiving a bus request signal from the master to generate an internal bus request signal according to a bus activation signal, controlling whether a bus license is granted to each bus master, and outputting a bus user number of the master allowed to use the bus. Arbiter; And a multiprocessor supporting slave configured to provide a bus activation signal to the bus arbiter and to receive and store a bus user number from the bus arbiter.

따라서 본 발명은 AMBA버스를 연결매체로 하여 복수개의 ARM코어를 이용한 공유버스 기반형 멀티프로세서 시스템 구현을 용이하게 하며, 추후 멀티프로세서용 운영체제 탑재를 가능하게 하는 효과가 있다.Therefore, the present invention facilitates the implementation of a shared bus-based multiprocessor system using a plurality of ARM cores using the AMBA bus as a connection medium, and enables the operating system for a multiprocessor to be installed later.

Description

프로세서 번호 할당 및 순차적 부팅이 가능한 에이엠비에이 버스 기반 멀티프로세서 시스템{ AMBA-based Multiprocessor system for processor identification number allocation and sequential booting }AMBA-based Multiprocessor system for processor identification number allocation and sequential booting}

본 발명은 AMBA(Advanced Micro-controller Bus Architecture) 버스를 연결 매체로 하여 프로세서 코어를 두개 이상 사용하는 시스템온칩(System On-Chip: SoC)에서의 멀티프로세서 시스템에 관한 것으로, 상세하게는 멀티프로세서 기능 구현을 위하여 각 프로세서에게 고유번호를 할당하고, 복수개의 프로세서간에 순차적인 부팅을 지원할 수 있는 에이엠비에이(AMBA) 버스 기반 멀티프로세서 시스템에 관한 것이다.The present invention relates to a multiprocessor system in a System On-Chip (SoC) using two or more processor cores using an Advanced Micro-controller Bus Architecture (AMBA) bus as a connection medium. The present invention relates to an AMBA bus-based multiprocessor system capable of assigning a unique number to each processor for implementation and supporting sequential booting among a plurality of processors.

일반적으로, 복수개의 프로세서를 이용한 멀티프로세서 시스템을 구성하기 위해서는 각 프로세서는 시스템에서 고유번호를 할당받아야 한다. 각 프로세서의 고유번호는 멀티프로세서 시스템에서 부하 분배 및 프로세서간 통신에 있어서 필수적이다. 또한 복수개의 프로세서가 하나의 시스템 버스를 공유하는 공유버스 기반형 멀티프로세서 시스템에서는 일반적으로 시스템 부팅 및 초기화를 위하여 부팅 프로세서(BSP: Bootstrap processor)가 부팅 및 시스템 초기화를 수행한 후에 다른 프로세서들을 부팅시키는 순차적 부팅을 통하여 시스템을 부팅한다.In general, in order to construct a multiprocessor system using a plurality of processors, each processor must be assigned a unique number in the system. The unique number of each processor is essential for load balancing and interprocessor communication in a multiprocessor system. In addition, in a shared bus-based multiprocessor system, in which multiple processors share a system bus, a boot processor (BSP) may boot another processor after booting and initializing the system. Boot the system through sequential boot.

인텔(Intel)사의 기술문서인 "멀티 프로세서 규격(Multiprocessor Specification)"을 통하여 공유버스 기반형 멀티프로세서 시스템에서 프로세서 고유번호 할당 및 순차적 부팅 기능을 인텔(Intel) 프로세서(X86 구조)를 예를 들어 설명하면 다음과 같다.Intel's technical document, “Multiprocessor Specification,” describes processor unique number assignment and sequential booting as an example of an Intel processor (X86 architecture) in a shared bus-based multiprocessor system. Is as follows.

인텔(Intel) 프로세서들은 프로세서 내부에 인터럽트 제어기(APIC: Advanced Programmable Interrupt Controller)라는 장치를 내장하고 있으며, 이 장치를 통하여 인터럽트 버스를 공유하고 있다. 인터럽트 제어기(APIC)는 인터럽트 버스상에서 자신의 위치 정보를 찾아서 내부 레지스터에 저장하게 되며, 프로세서는 동 레지스터에 대해서 읽기 동작을 수행하여 인터럽트 버스상에서의 고유번호를 알 수 있게 된다. 각 프로세서가 인터럽트 제어기(APIC)를 통하여 확보한 고유번호는 추후에 운영체제 탑재후 프로세서 고유번호로 사용되며, 이를 이용하여 멀티프로세서 운영체제는 프로세서간 통신(IPC), 부하분산과 같은 기능을 구현하게 된다.Intel processors have a device inside the processor called an Advanced Programmable Interrupt Controller (APIC) that shares an interrupt bus. The interrupt controller (APIC) finds its location information on the interrupt bus and stores it in an internal register, and the processor performs a read operation on the register so that the unique number on the interrupt bus can be known. The unique number obtained by each processor through the interrupt controller (APIC) is used later as the unique number of the processor after the operating system is loaded. With this, the multiprocessor operating system implements functions such as IPC and load balancing. .

인터럽트 제어기(APIC)는 프로세서 고유번호 할당외에 시스템 부팅에 있어서 프로세서들의 순차적 부팅을 가능하게 한다. 우선, 가장 큰 값을 고유번호로 사용하는 프로세서는 부팅 프로세서(BSP)로 지정되어 시스템 부팅 및 초기화를 수행하며, 부팅 프로세서(BSP)에 의해서 나머지 프로세서들은 순차적으로 부팅된다.An interrupt controller (APIC) enables sequential booting of processors in system boot in addition to processor unique number assignment. First, a processor using the largest value as a unique number is designated as a boot processor (BSP) to perform system boot and initialization, and the other processors are sequentially booted by the boot processor (BSP).

시스템 온칩(System On-Chip)의 내부버스로 많이 사용되는 AMBA 버스와 AMBA버스 기반형 ARM 프로세서 코어의 경우에는 상기에서 설명한 프로세서 고유번호 할당 기능 및 순차적 부팅 기능 하드웨어를 지원하지 않으며, 이로 인하여 AMBA 버스 기반형 멀티프로세서 시스템 구현이 용이하지 않는 문제점이 있다.The AMBA bus and AMBA bus-based ARM processor cores, which are frequently used as internal buses of the System On-Chip, do not support the processor-specific number assignment function and the sequential boot function hardware described above. There is a problem that the implementation of the base multiprocessor system is not easy.

도 1은 AMBA버스인 종래의 AHB 버스의 구성을 도시한 개략도이다.1 is a schematic diagram showing the configuration of a conventional AHB bus which is an AMBA bus.

ARM사에서 개발하여 공개한 시스템온칩의 버스구조인 AMBA(Advanced Micro-controller Bus Architecture)버스는 AHB(Advanced High-performance Bus)버스와, ASB(Advanced System Bus)버스, APB(Advanced Peripheral Bus)버스로 이루어진다. AHB버스는 고속의 클럭으로 동작하는 고성능 시스템의 백본 버스로서, 이에 기반한 멀티프로세서 연결은 도 1에 도시된 바와 같이, ARM 코어 프로세서 또는 DMA 장치와 같이 버스를 통하여 읽기 및 쓰기 요청을 발생하는 버스 마스터(10-1~10-3)와 메모리 콘트롤러와 같이 버스를 통하여 읽기 및 쓰기 동작에 대한 응답을 수행하는 슬레이브(11-1~11-3)들은 어드레스 및 제어신호 먹스(13), 쓰기 데이터 신호 먹스(14), 읽기 데이터 신호 먹스(15)를 통하여 상호 연결되어 통신하게 된다. 이때 각 마스터들(10-1~10-3)은 버스 사용권 획득을 위하여 버스 중재기(12)에 버스 사용 요청을 하고, 요청이 수락되면 버스를 통하여 쓰기 또는 읽기 동작을 수행한다.The Advanced Micro-controller Bus Architecture (AMBA) bus, a system-on-chip bus structure developed and released by ARM, is an Advanced High-performance Bus (AHB) bus, an Advanced System Bus (ASB) bus, and an Advanced Peripheral Bus (APB) bus. Is done. The AHB bus is a backbone bus of a high performance system operating at a high speed clock, and the multiprocessor connection based thereon is a bus master that generates read and write requests over the bus, such as an ARM core processor or DMA device, as shown in FIG. The slaves 11-1 to 11-3 that perform the response to the read and write operations through the bus, such as the 10-1 to 10-3 and the memory controller, are the address and control signal mux 13 and the write data signal. The mux 14 and the read data signal mux 15 are connected to each other to communicate. At this time, each of the masters 10-1 through 10-3 makes a bus use request to the bus arbiter 12 to obtain a bus right, and if the request is accepted, performs a write or read operation through the bus.

중재기(12)는 버스 사용 요청을 마스터(10-1~10-3)로부터 수신하여 특정 마스터에게 버스 사용 허가를 주고, 어드레스 및 제어 신호 먹스(13)와 쓰기 데이터 신호 먹스(14)의 경로 설정을 위하여 제어 신호를 발생한다. 버스를 통하여 읽기 또는 쓰기 요청을 수신한 슬레이브(11-1~11-3)는 해당 동작을 수행한 후에, 읽기동작일 경우에는 읽기 데이터를 읽기 데이터 먹스(15)를 통하여 마스터(10-1~10-3)에게 전달하며, 읽기 데이터 먹스(15)는 어드레스 및 제어신호 먹스(13)의 출력중에서 어드레스 신호를 사용하여 슬레이브(11-1~11-3)중에 하나를 선택하는 디코더(16)에 의해서 제어된다.The arbiter 12 receives a bus use request from the masters 10-1 to 10-3 to give a bus use permission to a specific master, and the path of the address and control signal mux 13 and the write data signal mux 14 Generate control signal for setting. After receiving the read or write request through the bus, the slaves 11-1 to 11-3 perform the corresponding operation, and in the case of the read operation, the slaves 11-1 to 11-3 read the read data through the read data mux 15. 10-3), the read data mux 15 selects one of the slaves 11-1 to 11-3 using the address signal from the output of the address and control signal mux 13; Controlled by

그런데, 도 1과 같은 연결도에서 보면 버스 사용자인 마스터(10-1~10-3)들은 버스를 구성하는 하드웨어로부터 고유번호를 할당 받을 수 있는 자원이 존재하지 않으므로 각 마스터(10-1~10-3)가 고유번호를 유지할 수 없으며, 또한 각 마스터가 프로세서일 경우에는 부팅시에 상호 경쟁하게 되어 시스템 부팅 및 초기화에 대한 권한 설정이 불가능하다. 따라서 멀티프로세서 시스템 구현에 있어서 가장 기본적인 프로세서 고유번호 할당 및 순차적 부팅이 불가능한 문제점이 있다.However, in the connection diagram as shown in FIG. 1, the masters 10-1 to 10-3, which are bus users, do not have resources to be assigned a unique number from the hardware constituting the bus. -3) cannot maintain unique number, and if each master is a processor, it can compete with each other at boot, so it is impossible to set permissions for system boot and initialization. Therefore, in the implementation of a multiprocessor system, the most basic processor unique number assignment and sequential booting are not possible.

본 발명은 상기한 문제점을 해결하기 위하여 제안된 것으로, 복수개의 ARM 프로세서를 이용하여 AMBA버스 기반으로 멀티프로세서 시스템을 구성할 경우에 프로세서 고유번호를 할당하고 순차적인 부팅을 가능하게 하여 공유버스 기반형 멀티프로세서 시스템 구현을 용이하게 하며, 추후 멀티프로세서용 운영체제 탑재를 가능하게 하는 AMBA 버스 기반 멀티프로세서 시스템을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems, when configuring a multi-processor system based on the AMBA bus using a plurality of ARM processors to assign a processor unique number and to enable the sequential boot shared bus-based type It is an object of the present invention to provide an AMBA bus-based multiprocessor system that facilitates the implementation of a multiprocessor system and enables the operation of a multiprocessor system later.

상기와 같은 목적을 달성하기 위하여 본 발명의 프로세서 번호 할당 및 순차적 부팅이 가능한 에이엠비에이 버스 기반 멀티프로세서 시스템은, 다수의 마스터들; 상기 마스터들과 다른 자원들이 연결되는 어드레스 및 제어신호선과, 읽기 데이터 신호선, 및 쓰기 데이터 신호선을 제공하는 버스; 상기 마스터로부터 버스 요구신호를 입력받아 버스 활성화 신호에 따라 내부 버스 요구신호를 발생하고, 이에 따라 각 버스 마스터의 버스 사용권 허가 여부를 제어하며, 버스 사용이 허락된 마스터의 버스사용자 번호를 출력하는 버스 중재기; 및 상기 버스 중재기에 버스 활성화 신호를 제공하고, 상기 버스 중재기로부터 버스 사용자 번호를 입력받아 저장하는 멀티프로세서 지원 슬레이브를 포함하는 것을 특징으로 한다.In order to achieve the above object, the AMB bus-based multiprocessor system capable of assigning a processor number and sequentially booting the system comprises: a plurality of masters; A bus providing an address and control signal line to which the masters and other resources are connected, a read data signal line, and a write data signal line; A bus for receiving a bus request signal from the master to generate an internal bus request signal according to a bus activation signal, controlling whether a bus license is granted to each bus master, and outputting a bus user number of the master allowed to use the bus. Arbiter; And a multiprocessor supporting slave configured to provide a bus activation signal to the bus arbiter, and receive and store a bus user number from the bus arbiter.

그리고 상기 버스 중재기는 상기 마스터들로부터 입력되는 버스 요구신호와 상기 멀티프로세서 지원 슬레이브로부터 입력되는 버스 활성화신호를 논리곱 연산하여 내부 버스 요구신호를 발생하는 다수의 엔드게이트와, 상기 엔드게이트의 출력에 따라 버스 사용을 중재하여 해당 마스터에게 버스 사용 허락신호를 출력하고 버스 사용권을 획득한 마스터의 버스 사용자 번호를 제공하는 중재로직으로 구성되고, 상기 멀티프로세서 지원 슬레이브는, 상기 버스와 인터페이스하기 위한 버스 인터페이스부; 상기 버스 인터페이스부를 통해 입력된 주소를 해독하여 레지스터를 제어하기 위한 제어신호를 발생하는 주소 해독 및 레지스터 제어기; 상기 버스 활성화 신호를 제공하기 위한 버스 활성화 레지스터; 상기 버스 중재기로부터 버스 사용자 번호를 입력받아 저장하기 위한 버스 사용자 번호 레지스터; 및 마스터들이 레지스터 읽기를 요구하면, 상기 주소 해독 및 레지스터 제어기의 제어에 따라 해당 데이터를 상기 버스 인터페이스부를 통해 제공하기 위한 읽기 데이터용 먹스로 구성된다.The bus arbiter may be configured to perform an AND operation on a bus request signal input from the masters and a bus activation signal input from the multiprocessor support slave, and generate a plurality of end gates to generate an internal bus request signal. And arbitration logic to arbitrate bus usage, output a bus permission signal to the corresponding master, and provide a bus user number of the bus licensed master, wherein the multiprocessor capable slave is a bus interface for interfacing with the bus. part; An address translation and register controller for generating a control signal for controlling a register by decoding an address input through the bus interface; A bus enable register for providing the bus enable signal; A bus user number register for receiving and storing a bus user number from the bus arbiter; And a master for read data for providing the corresponding data through the bus interface unit according to the address translation and the control of the register controller when the master requests the register read.

도 1은 종래의 AHB 기반형 버스 연결도,1 is a conventional AHB-based bus connection diagram,

도 2는 본 발명에 따른 중재기와 멀티프로세서 기능 지원 하드웨어를 사용하는 AHB 기반 멀티프로세서 시스템 구성도,2 is an AHB based multiprocessor system configuration using an arbiter and multiprocessor functional support hardware according to the present invention;

도 3은 본 발명에 따라 순차적 부팅을 지원하는 중재기를 도시한 구성 블럭도,3 is a block diagram illustrating an arbiter supporting sequential booting according to the present invention;

도 4는 본 발명에 따른 멀티프로세서 기능 지원 하드웨어 구성도,4 is a block diagram of a hardware supporting multiprocessor functions according to the present invention;

도 5는 본 발명이 적용되는 AHB 기반형 버스의 기본 사이클을 도시한 타이밍도,5 is a timing diagram showing a basic cycle of an AHB-based bus to which the present invention is applied;

도 6은 본 발명이 적용되는 AHB 기반형 버스의 중재 사이클을 도시한 타이밍도.6 is a timing diagram illustrating an arbitration cycle of an AHB based bus to which the present invention is applied.

* 도면의 주요부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

210-1~210-3;프로세서 220-1,220-2;슬레이브210-1 ~ 210-3; Processor 220-1,220-2; Slave

230;중재기 240;어드레스 및 제어 먹스230; Arbitrator 240; Address and control mux

250;쓰기 데이터 먹스 260;읽기 데이터 먹스250; write data mux 260; read data mux

270;디코더 280;멀티프로세서 지원 슬레이브270; Decoder 280; Multiprocessor Slave

231~233;엔드게이트 235;중재로직231--233; Endgate 235; Arbitration Logic

281;AHB버스 슬레이브 인터페이스 282;주소해독 및 레지스터제어기281; AHB bus slave interface 282; address resolution and register controller

283;버스 사용자번호 레지스터 284;버스활성화 레지스터283 Bus Bus Register 284 Bus Enable Register

285;읽기 데이터용 먹스285; mux for read data

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 자세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명에 따른 중재기와 멀티프로세서 기능 지원 하드웨어를 사용하는 AHB 기반 멀티프로세서 시스템 구성도이다.2 is an AHB-based multiprocessor system configuration using an arbiter and multiprocessor functional support hardware according to the present invention.

도 2를 참조하면, 본 발명이 적용된 AHB 기반 멀티프로세서 시스템은 버스 마스터(210-1~210-3)와, 슬레이브(220-1,220-2), 개선된 중재기(230), 어드레스 및 제어신호 먹스(240), 쓰기 데이터 신호 먹스(250), 읽기 데이터 신호 먹스(260), 디코더(270), 및 멀티프로세서 지원 슬레이브(280)로 이루어진다.Referring to FIG. 2, the AHB-based multiprocessor system to which the present invention is applied may include bus masters 210-1 to 210-3, slaves 220-1 and 220-2, improved arbiter 230, addresses and control signals. The mux 240, the write data signal mux 250, the read data signal mux 260, the decoder 270, and the multiprocessor support slave 280.

여기서, 각 마스터들(210-1~210-3)은 멀티프로세서를 구현하기 위한 CPU 코어들이고, 멀티프로세서 지원 슬레이브(280: MP Supporting slave)는 본 발명에 따라 멀티 프로세서 부팅을 지원하는 기능이 탑재된 개선된 슬레이브이며, 개선된 중재기(230)와 버스사용자번호(Bus_ID), 버스 활성화신호(Bus_enable)로 서로 연결된 것을 알 수 있다.Here, each of the masters 210-1 to 210-3 is CPU cores for implementing a multiprocessor, and the multiprocessor supporting slave 280 is equipped with a function for supporting multiprocessor booting according to the present invention. It can be seen that the improved slave is connected to each other by the improved arbiter 230, the bus user number Bus_ID, and the bus activation signal Bus_enable.

즉, 본 발명은 종래의 AHB기반 구조에서 프로세서 고유번호 할당 및 순차적 부팅 기능 지원을 위하여 본 발명에서는 중재기 기능을 개선한 개선된 중재기(230)와, 중재 기능 제한을 위한 제어 레지스터의 읽기 및 쓰기 기능을 지원하는 멀티프로세서 기능 지원 하드웨어(280)를 사용한다.That is, the present invention provides an improved arbiter 230 that improves the arbiter function in order to support processor unique number allocation and sequential boot function in the conventional AHB infrastructure, and reads and reads the control register for limiting the arbitration function. The multiprocessor capable hardware 280 supporting the write function is used.

도 3은 본 발명에 따른 순차적 부팅을 지원하는 중재기를 도시한 구성 블럭도이다.3 is a block diagram illustrating an arbiter supporting sequential booting according to the present invention.

본 발명에 따른 중재기(230)는 기존의 EASY(AHB Example AMBA System)에서 사용하는 중재기를 개량한 것으로, 마스터 모듈(210-1~210-3)로부터 버스 사용 요청 신호(Bus_Req0~Bus_Reqn)을 수신하고, 멀티프로세서 기능 지원 하드웨어(280)로부터 버스 활성화 신호(Bus_en0~Bus_enn)를 수신한다. 버스 요청 신호와 버스 활성화 신호는 개선된 중재기 내부의 AND 게이트 로직(231,232, 233)을 통해서 내부에서 사용되는 버스 요청 신호를 발생한다.The arbiter 230 according to the present invention is an improvement of the arbiter used in the existing ASYB (AMB Example AMBA System), and the bus use request signals Bus_Req0 to Bus_Reqn from the master modules 210-1 to 210-3. And the bus enable signals Bus_en0 to Bus_enn from the multiprocessor function support hardware 280. The bus request signal and bus enable signal generate an internally used bus request signal through the AND gate logic 231, 232, 233 inside the improved arbiter.

이때 멀티프로세서 기능 지원 하드웨어(280)로부터 수신된 버스 활성화 신호(Bus_en0~Bus_enn)가 로직'0' 인 경우에는 해당 버스요청 신호(Bus_Req0~Bus_Reqn)가 로직'1' 로 구동되더라도 중재로직(235)으로 입력되는 버스 요청신호는 로직'0'으로 구동되어 버스 요청이 무시된다.In this case, when the bus enable signals Bus_en0 to Bus_enn received from the multiprocessor capable hardware 280 are logic '0', the arbitration logic 235 is performed even if the corresponding bus request signals Bus_Req0 to Bus_Reqn are driven to logic '1'. The bus request signal, which is inputted into, is driven by logic '0' so that the bus request is ignored.

이와 같이 멀티프로세서 기능 지원 하드웨어(280)로부터 입력되는 버스 활성화 신호(Bus_en0~Bus_enn)을 사용하여 시스템의 초기 부팅 및 초기화시에 특정 버스 사용자만 버스 사용권을 허용하여 부트 프로세서(BSP)로 기능을 수행하게 하고, 부트 프로세서(BSP)의 부팅이 완료되면 멀티프로세서 기능 지원 하드웨어(280)의 버스 활성화 레지스터(도 4의 224)에 쓰기 동작을 수행하여 다른 버스 사용자들의 버스 사용을 순차적으로 활성화하여 순차적 부팅을 가능하게 한다.As such, the bus enable signals (Bus_en0 to Bus_enn) input from the multiprocessor capable hardware 280 are used to perform a function as a boot processor (BSP) by allowing only a specific bus user to use a bus license during initial boot and initialization of the system. After the booting of the boot processor (BSP) is completed, a write operation is performed to the bus enable register (224 of FIG. 4) of the multiprocessor capable hardware 280 to sequentially enable bus usage of other bus users to sequentially boot. To make it possible.

개선된 중재기(230)는 또한 매 중재시점 마다 선택된 버스의 사용자 번호(Bus_Master_ID)를 멀티프로세서 기능 지원 하드웨어(280)에 전달하는 기능을 수행하고, 멀티프로세서 기능 지원 하드웨어(280)는 개선된 중재기(230)로부터 중재 결과를 수신하여 버스 사용자 번호 레지스터(도4의 223)에 저장하게 된다.The enhanced arbiter 230 also performs the function of passing the user number (Bus_Master_ID) of the selected bus to the multiprocessor functional support hardware 280 at every arbitration point, and the multiprocessor functional support hardware 280 provides improved arbitration. The mediation result is received from the device 230 and stored in the bus user number register (223 of FIG. 4).

도 4는 본 발명에 따른 멀티프로세서 기능 지원 하드웨어 구성도이다. 도 4를 참조하면, 멀티프로세서 기능 지원 하드웨어(280)는 AHB 버스 슬레이브 인터페이스(281), 주소해독 및 레지스터 제어기(282), 읽기 데이터용 먹스(285), 버스 활성화 레지스터(284)와 버스 사용자 번호 레지스터(283)로 구성된다.4 is a block diagram of a hardware supporting multiprocessor function according to the present invention. Referring to FIG. 4, the multiprocessor functional support hardware 280 includes an AHB bus slave interface 281, an address read and register controller 282, a mux 285 for read data, a bus enable register 284 and a bus user number. It consists of a register 283.

AHB버스 슬레이브 인터페이스 로직(281)은 주소및 제어신호 (Address & Control), 쓰기 데이터 신호(Wdata), 그리고 읽기 데이터 신호(Rdata)를 사용하여 AHB 버스 프로토콜에 따라 읽기 및 쓰기 요청을 수신하고 응답하는 로직으로서 EASY의 슬레이브용 인터페이스와 동일하다. 셀렉트신호(Select)는 어드레스 맵에 따라 AMBA버스 디코더(270)로부터 수신되는 슬레이브 선택 신호이며, 현재 버스에 구동되는 주소가 멀티프로세서 기능 지원 하드웨어(280)를 지정할 경우 디코더(270)에 의해서 로직'1'로 구동된다.The AHB bus slave interface logic 281 uses address and control signals, write data signals (Wdata), and read data signals (Rdata) to receive and respond to read and write requests in accordance with the AHB bus protocol. It is the same logic as the slave interface of EASY. The select signal (Select) is a slave selection signal received from the AMBA bus decoder 270 according to the address map. When the address currently driven on the bus designates the multiprocessor function support hardware 280, Driven to 1 '.

주소해독 및 레지스터 제어기(282)는 수신된 주소 정보와 버스 제어 신호를 사용하여 내부의 버스 활성화 레지스터(284)와 버스 사용자 번호 레지스터(283)의 읽기 및 쓰기 제어 신호를 생성하고, 주소해독을 통하여 읽기 데이터용 먹스(285)를 제어한다.The address read and register controller 282 generates the read and write control signals of the bus enable register 284 and the bus user number register 283 by using the received address information and the bus control signal. The mux 285 for read data is controlled.

버스 활성화 레지스터(284)는 마스터(210-1~210-3)에 의해서 읽기 및 쓰기가 가능한 레지스터로, 각 비트는 버스 사용자별로 활성화 마스크 신호로 사용된다. 버스 활성화 레지스터(284)의 내용은 각 버스 마스터의 버스 활성화 신호(Bus_en0~Bus_enn)로 개선된 중재기(230)로 전달되어 버스 사용권의 활성화 여부를 나타내게 된다.The bus enable register 284 is a register that can be read and written by the masters 210-1 to 210-3, and each bit is used as an activation mask signal for each bus user. The contents of the bus activation register 284 are transmitted to the arbiter 230 improved by the bus activation signals Bus_en0 to Bus_enn of each bus master to indicate whether bus usage rights are activated.

버스 활성화 레지스터(284)는 리셋후 초기값은 최하위 비트만 로직'1'로 설정되고 나머지는 모두 로직'0'로 초기화되며, 따라서 버스 활성화 신호(Bus_en0~Bus_enn)중 버스 사용자 0번에게만 버스 사용권이 주어지게 된다. 따라서 버스 사용자 0번에 연결된 프로세서는 버스를 독점적으로 사용하며, 부팅 및 시스템 초기화를 수행한 후에, 쓰기 동작을 통하여 버스 활성화 레지스터(284)의 최하위 비트를 제외한 다른 상위 비트들을 순차적으로 로직'1'로 셋팅하여 다른 프로세서들에게 순차적으로 버스 사용권을 허가하여 멀티프로세서의 순차적 부팅을 가능하게 한다.After the reset, the bus enable register 284 is initialized with only the least significant bit set to logic '1' and all others are initialized to logic '0'. Therefore, the bus license is only available to bus user 0 of the bus enable signals Bus_en0 to Bus_enn. Will be given. Therefore, the processor connected to bus user 0 uses the bus exclusively, and after booting and system initialization, sequentially writes logic bits '1' to the other bits except the least significant bit of the bus enable register 284 through a write operation. This setting allows multiple processors to sequentially boot the bus by allowing the other processors to use the bus sequentially.

버스 사용자 번호 레지스터(283)는 디코더(270)로부터 수신된 셀렉트 신호(Select)가 로직'1'일 때 개선된 버스 중재기(230)로부터 수신된 버스 사용자 번호(Bus_Master_ID)를 래치하는 기능을 수행한다. 특정 버스 마스터가 읽기 동작으로 버스 사용자 번호 레지스터(283)에 대한 읽기를 수행하면, 디코더(270)는 멀티프로세서 기능 지원 하드웨어(280)로 셀렉트 신호(Select)를 로직'1'로 구동하게 되고, 멀티프로세서 기능 지원 하드웨어(280)의 AHB 슬레이브 인터페이스 로직(281)은 읽기 요청을 수신하게 된다.The bus user number register 283 performs a function of latching the bus user number Bus_Master_ID received from the improved bus arbiter 230 when the select signal Select received from the decoder 270 is logic '1'. do. When a specific bus master reads the bus number register 283 in a read operation, the decoder 270 drives the select signal Select to logic '1' with the multiprocessor capable hardware 280. The AHB slave interface logic 281 of the multiprocessor functional support hardware 280 will receive a read request.

셀렉트 신호(Select)가 로직'1'로 구동됨에 따라 버스 사용자 번호 레지스터(283)는 개선된 중재기(230)로부터 수신된 버스 사용자 번호(Bus_Master_ID)를 래치하게 되고, 래치된 내용을 읽기 데이터용 먹스(285)를 통하여 응답하게 된다. 따라서 특정 마스터는 버스 사용자 번호 레지스터(283)에 대한 읽기 동작을 수행함으로서 자연스럽게 자신의 버스 사용자 번호를 인지할 수있게 되며, 이를 프로세서 고유번호로 사용할 수 있다.As the select signal Select is driven to logic '1', the bus user number register 283 latches the bus user number Bus_Master_ID received from the improved arbiter 230 and reads the latched contents for read data. A response is made through the mux 285. Therefore, a specific master can naturally recognize its own bus user number by performing a read operation on the bus user number register 283, and can use it as a processor unique number.

도 5는 본 발명이 적용되는 AHB기반형 버스의 기본 사이클을 도시한 타이밍도이다.5 is a timing diagram showing the basic cycle of the AHB-based bus to which the present invention is applied.

도면을 참조하면, 하나의 버스 사이클은 어드레스 기간(Address phase)과 데이터 기간(Data phase)으로 이루어지고, 어드레스 기간에서 동작의 대상이 되는 어드레스(ADDR[31:0])와 제어신호(Control)가 활성화된 후 데이터 기간에서 쓰기 데이터(WDATA[31:0])나 읽기 데이터(RDATA[31:0])가 활성화되는 것을 알 수 있다. 이때 읽기 동작일 경우 데이터를 제공할 장치는 레디(READY)신호를 통해 데이터가 준비된 것을 알려준다.Referring to the drawings, one bus cycle is composed of an address period and a data phase, and an address ADDR [31: 0] and a control signal Control which are an operation target in the address period. It can be seen that the write data WDATA [31: 0] or the read data RDATA [31: 0] are activated in the data period after is activated. In this case, the device providing the data in the read operation informs that the data is ready through the ready signal.

도 6은 본 발명이 적용되는 AHB 기반형 버스에서 중재 사이클을 도시한 타이밍도이다.6 is a timing diagram illustrating an arbitration cycle in an AHB based bus to which the present invention is applied.

도면을 참조하면, 버스를 사용할 마스터(210-1~210-3)는 중재기(230)에 버스 사용을 요청하는 버스 사용 요청신호(BUSREQx)를 활성화시키고, 이에 따라 중재기(230)는 소정 알고리즘에 따라 중재한 후 해당 마스터에게 버스 사용허락신호(GRANTx)를 활성화한다. 이에 따라 해당 마스터는 버스 사용권을 획득하여 읽기 혹은 쓰기 동작을 수행하게 된다.Referring to the drawing, the masters 210-1 to 210-3 using the bus activate the bus use request signal BUSREQx requesting the arbiter 230 to use the bus. After arbitration according to the algorithm, the bus license signal (GRANTx) is activated to the master. Accordingly, the master acquires a bus license and performs a read or write operation.

이상에서 설명한 바와 같이, 본 발명에 따르면 복수개의 ARM 프로세서를 사용하는 SoC 설계에서 AMBA버스 기반형 멀티프로세서 시스템 구현을 위하여, 각 프로세서에게 고유번호를 할당하고 또한 순차적 부팅을 지원할 수 있다. 본 발명은 AMBA버스를 연결매체로 하여 복수개의 ARM코어를 이용한 공유버스 기반형 멀티프로세서 시스템 구현을 용이하게 하며, 추후 멀티프로세서용 운영체제 탑재를 가능하게 하는 효과가 있다.As described above, according to the present invention, in order to implement an AMBA bus-based multiprocessor system in an SoC design using a plurality of ARM processors, each processor may be assigned a unique number and may support sequential booting. The present invention facilitates the implementation of a shared bus-based multiprocessor system using a plurality of ARM cores using an AMBA bus as a connection medium, and enables an operating system for a multiprocessor in the future.

이상에서 설명한 것은 본 발명에 따른 프로세서 번호 할당 및 순차적 부팅이 가능한 에이엠비에이 버스 기반 멀티프로세서 시스템을 설명한 하나의 실시 예에 불과한 것으로써, 본 발명은 상기한 실시 예에 한정되지 않고, 이하의 특허 청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 사상이 미친다고 할 것이다.What has been described above is only one embodiment describing an AMB bus-based multiprocessor system capable of assigning processor numbers and sequentially booting according to the present invention, and the present invention is not limited to the above embodiments, and the following patents are provided. Without departing from the gist of the present invention claimed in the claims, anyone of ordinary skill in the art to which the present invention extends to the spirit of the present invention to the extent that various modifications can be made.

Claims (5)

다수의 마스터들;Multiple masters; 상기 마스터들과 다른 자원들이 연결되는 어드레스 및 제어신호선과, 읽기 데이터 신호선, 및 쓰기 데이터 신호선을 제공하는 버스;A bus providing an address and control signal line to which the masters and other resources are connected, a read data signal line, and a write data signal line; 상기 마스터로부터 버스 요구신호를 입력받아 버스 활성화 신호에 따라 내부 버스 요구신호를 발생하고, 이에 따라 각 버스 마스터의 버스 사용권 허가 여부를 제어하며, 버스 사용이 허락된 마스터의 버스사용자 번호를 출력하는 버스 중재기; 및A bus for receiving a bus request signal from the master to generate an internal bus request signal according to a bus activation signal, controlling whether a bus license is granted to each bus master, and outputting a bus user number of the master allowed to use the bus. Arbiter; And 상기 버스 중재기에 버스 활성화 신호를 제공하고, 상기 버스 중재기로부터 버스 사용자 번호를 입력받아 저장하는 멀티프로세서 지원 슬레이브;A multiprocessor capable slave providing a bus activation signal to the bus arbiter and receiving and storing a bus user number from the bus arbiter; 를 포함하는 것을 특징으로 하는 프로세서 번호 할당 및 순차적 부팅이 가능한 에이엠비에이 버스 기반 멀티프로세서 시스템.AMB bus-based multiprocessor system capable of assigning processor numbers and sequential boot. 제 1항에 있어서, 상기 버스 중재기는,The method of claim 1, wherein the bus arbiter, 상기 마스터들로부터 입력되는 버스 요구신호와 상기 멀티프로세서 지원 슬레이브로부터 입력되는 버스 활성화신호를 논리곱 연산하여 내부 버스 요구신호를 발생하는 다수의 엔드게이트와, 상기 엔드게이트의 출력에 따라 버스 사용을 중재하여 해당 마스터에게 버스 사용 허락신호를 출력하고 버스 사용권을 획득한 마스터의 버스 사용자 번호를 제공하는 중재로직으로 구성된 것을 특징으로 하는 프로세서 번호 할당 및 순차적 부팅이 가능한 에이엠비에이 버스 기반 멀티프로세서 시스템.Arbitrarily multiplies the bus request signals input from the masters and the bus activation signals input from the multiprocessor capable slaves and arbitrates bus usage according to the outputs of the endgates; And an arbitration logic that outputs a bus permission signal to the corresponding master and provides a bus user number of the master who has obtained the bus license. 제 1항에 있어서, 상기 멀티프로세서 지원 슬레이브는,The method of claim 1, wherein the multiprocessor support slave, 상기 버스와 인터페이스하기 위한 버스 인터페이스부;A bus interface unit for interfacing with the bus; 상기 버스 인터페이스부를 통해 입력된 주소를 해독하여 레지스터를 제어하기 위한 제어신호를 발생하는 주소 해독 및 레지스터 제어기;An address translation and register controller for generating a control signal for controlling a register by decoding an address input through the bus interface; 상기 버스 활성화 신호를 제공하기 위한 버스 활성화 레지스터;A bus enable register for providing the bus enable signal; 상기 버스 중재기로부터 버스 사용자 번호를 입력받아 저장하기 위한 버스 사용자 번호 레지스터; 및A bus user number register for receiving and storing a bus user number from the bus arbiter; And 마스터들이 레지스터 읽기를 요구하면, 상기 주소 해독 및 레지스터 제어기의 제어에 따라 해당 데이터를 상기 버스 인터페이스부를 통해 제공하기 위한 읽기 데이터용 먹스;로 구성된 것을 특징으로 하는 프로세서 번호 할당 및 순차적 부팅이 가능한 에이엠비에이 버스 기반 멀티프로세서 시스템.When masters require a register read, the read data mux for providing the corresponding data through the bus interface unit under the address translation and the control of the register controller; processor number assignment and sequentially bootable AMB A-bus based multiprocessor system. 제 3항에 있어서, 상기 버스 활성화 레스터의 내용을 리셋 초기화값으로 특정 비트만 로직'1'로 하고 나머지는 로직'0'로 하여, 특정 프로세서가 연결된 버스마스터에 대한 독점적 허가를 제공하고, 독점적 허가를 받은 프로세서가 부트 프로세서로서 부팅 및 시스템 초기화를 수행한 후에, 순차적으로 버스 활성화 레지스터의 특정 비트를 로직'1'으로 셋팅하여 다른 프로세서들에게 순차적으로 버스 사용을 허가하며, 이에 따라 각 프로세서들이 순차적으로 부팅되는 것을 특징으로 하는 프로세서 번호 할당 및 순차적 부팅이 가능한 에이엠비에이 버스 기반 멀티프로세서 시스템.4. The method of claim 3, wherein the contents of the bus activation raster are set to a reset initialization value of only a specific bit logic '1' and the rest of the logic '0' to provide exclusive permission for a bus master to which a specific processor is connected. After a licensed processor has booted and system initialized as a boot processor, it sequentially sets a specific bit in the bus enable register to logic '1' to allow other processors to use the bus sequentially. AMB bus-based multiprocessor system capable of sequentially assigning processor numbers and booting sequentially. 제 3항에서, 상기 멀티프로세서 시스템은,The system of claim 3, wherein the multiprocessor system comprises: 특정 프로세서가 상기 버스 사용자 번호 저장 레지스터에 대한 읽기 동작을 통하여 버스 사용자 번호를 취득하고, 상기 버스 사용자 번호를 프로세서 고유번호로 할당하여 프로세서간 통신 및 기타 멀티프로세서용 프로그램 개발에 사용하는 것을 특징으로 하는 프로세서 번호 할당 및 순차적 부팅이 가능한 에이엠비에이 버스 기반 멀티프로세서 시스템.A specific processor acquires a bus user number through a read operation of the bus user number storage register, and assigns the bus user number as a processor unique number to use for interprocessor communication and other multiprocessor program development. AMB bus-based multiprocessor system with processor number assignment and sequential boot.
KR10-2002-0082895A 2002-12-23 2002-12-23 AMBA-based Multiprocessor system for processor identification number allocation and sequential booting KR100452325B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0082895A KR100452325B1 (en) 2002-12-23 2002-12-23 AMBA-based Multiprocessor system for processor identification number allocation and sequential booting

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0082895A KR100452325B1 (en) 2002-12-23 2002-12-23 AMBA-based Multiprocessor system for processor identification number allocation and sequential booting

Publications (2)

Publication Number Publication Date
KR20040056293A KR20040056293A (en) 2004-06-30
KR100452325B1 true KR100452325B1 (en) 2004-10-12

Family

ID=37348690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0082895A KR100452325B1 (en) 2002-12-23 2002-12-23 AMBA-based Multiprocessor system for processor identification number allocation and sequential booting

Country Status (1)

Country Link
KR (1) KR100452325B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101121641B1 (en) 2006-07-03 2012-04-16 엘지전자 주식회사 Apparatus and method for controlling operation of system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226389B1 (en) * 2005-11-10 2013-01-24 삼성전자주식회사 SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC
KR20070099834A (en) * 2006-04-05 2007-10-10 엘지전자 주식회사 Bus traffic decrease actuator and its method for amba ahb
KR101699781B1 (en) 2010-10-19 2017-01-26 삼성전자주식회사 System-on-chip and data arbitration method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101121641B1 (en) 2006-07-03 2012-04-16 엘지전자 주식회사 Apparatus and method for controlling operation of system

Also Published As

Publication number Publication date
KR20040056293A (en) 2004-06-30

Similar Documents

Publication Publication Date Title
KR0185966B1 (en) Method and apparatus for independently resetting processors and cache controllers in multiple processor system
US7958298B2 (en) System and method for providing address decode and virtual function (VF) migration support in a peripheral component interconnect express (PCIE) multi-root input/output virtualization (IOV) environment
JP5137171B2 (en) Data processing device
US6574142B2 (en) Integrated circuit with flash memory
US20040022107A1 (en) Unidirectional bus architecture for SoC applications
US6463529B1 (en) Processor based system with system wide reset and partial system reset capabilities
US6272582B1 (en) PCI-PCI bridge allowing controlling of a plurality of PCI agents including a VGA device
JPH11513150A (en) Architecture for I / O processor integrating PCI to PCI bridge
US6795901B1 (en) Shared memory interface with conventional access and synchronization support
JP2010518472A (en) Method and apparatus enabling identification of resource allocation at the instruction level in a processor system
EP0595960A4 (en) Computer workstation expansion chassis
US6601130B1 (en) Memory interface unit with programmable strobes to select different memory devices
JPH0749841A (en) Method for changing of multimaster bus into pipeline and multimaster digital computer system for it
KR20010080515A (en) A direct memory access engine for supporting multiple virtual direct memory access channels
KR950008231B1 (en) Personal computer with anticipatory memory control signalling
US5859987A (en) Method and apparatus for providing multiple configuration reset modes for an intelligent bridge
IE64126B1 (en) Self-identification of memory
JP2001043180A (en) Microprocessor and storage device therefor
JP2010055440A (en) Distributed shared memory multiprocessor and data processing method
US7006521B2 (en) External bus arbitration technique for multicore DSP device
KR100452325B1 (en) AMBA-based Multiprocessor system for processor identification number allocation and sequential booting
KR950008229B1 (en) Personal computer with local bus arbitration
JP2854474B2 (en) Bus use request arbitration device
JP4684577B2 (en) Bus system and method for arbitrating a high-speed bandwidth system bus
JPH0954748A (en) Computer system and dma controller used for the system

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081001

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee