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 PDFInfo
- 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
Links
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/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling 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(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)
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)
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)
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 |
-
2002
- 2002-12-23 KR KR10-2002-0082895A patent/KR100452325B1/en not_active IP Right Cessation
Cited By (1)
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 |