CN1301473C - Multiprocessor system and method for sharing bootstrap module thereof - Google Patents

Multiprocessor system and method for sharing bootstrap module thereof Download PDF

Info

Publication number
CN1301473C
CN1301473C CNB031468810A CN03146881A CN1301473C CN 1301473 C CN1301473 C CN 1301473C CN B031468810 A CNB031468810 A CN B031468810A CN 03146881 A CN03146881 A CN 03146881A CN 1301473 C CN1301473 C CN 1301473C
Authority
CN
China
Prior art keywords
initialization
processor
cpu
pci
primary processor
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CNB031468810A
Other languages
Chinese (zh)
Other versions
CN1525353A (en
Inventor
赵凯
陈诗军
苏绣江
黄钟琪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CNB031468810A priority Critical patent/CN1301473C/en
Publication of CN1525353A publication Critical patent/CN1525353A/en
Application granted granted Critical
Publication of CN1301473C publication Critical patent/CN1301473C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

The present invention relates to a multiprocessor system and a method for the system to share a boot module, particularly to a multi-CPU system with a PCI controller, which belongs to the field of communication. The multiprocessor system comprises a plurality of processors, wherein each processor is provided with a control state register, a dynamic RAM, a static RAM, a serial port, etc. which are matched with the processor, and the processors are connected with each other by a PCI bus so as to share one PCI arbiter; a processor with the boot module serves as a main processor, and other processors serve as the auxiliary processors. When the power of the system is switched on, the main processor reads instructions from the boot module of the main processor, and the auxiliary processors obtain instructions from the RAMs; the main processor restores the auxiliary processors after initializing the auxiliary processors, and the system can normally operate at this time. The present invention has the advantages of simple method, capability of saving boot modules and Ethernet controllers, etc.

Description

Multicomputer system is shared the method for bootstrap module
Technical field
The present invention relates to a kind of multiprocessor (CPU) system and multi-CPU system and share the method for BOOT FLASH (bootstrap module), relate in particular to many CPU in the multi-CPU system of the relevant band of communication field PCI (Peripheral Component Interconnect, peripheral element extension interface) controller and this system and share the method for bootstrap module.
Background technology
At present in embedded system for the processing power that increases veneer, increase integrated level, usually cpu systems are overlapped in design more on same veneer, every cover system carries a BOOT FLASH, place at the band pci controller utilizes CPLD (Complex Programble Logic Device toward contact, complex programmable logic equipment) PCI moderator of oneself design, and from network interface or FLASH download version file.As shown in figures 1 and 3.Fig. 1 be before by the hardware principle block diagram of the multi-CPU system of art methods design, two covers or overlap cpu system self more and respectively be with a BOOT FLASH, a PCI moderator, at least one Ethernet interface in the system.Fig. 3 is the software flow pattern that powers on by each cpu system of art methods, each cpu system is separate in the system, behind the electrification reset, all CPU are instruction fetch from the BOOT FLASH of self, finish the initialization of hardware, also pass through Ethernet or FLASH load application version file, finish the startup of system.
But CPU (hereinafter to be referred as CPU) for some band pci controller, if method for designing according to this prior art, obviously increase cost, also taken valuable printing board PCB space, can seek the startup that some new bootstrap techniques are finished system for this reason.The one piece of application number that retrieves from U.S. trademark patent office is that 20020138156 patented claim document " System ofconnecting multiple processors in cascade " (serial multiprocessor connected system) has related to the startup of relevant multisystem, it utilizes bootStrap (steering tape) bus of serial to finish the transmission of start-up code of each cpu subsystem of multi-CPU system, but this method needs to design a cover bootStrap bus on hardware, and to the processing of the RAM equipment of each cpu system also more complicated.
Summary of the invention
Purpose of the present invention provides a kind of multi-CPU system scheme just in order to overcome above-mentioned shortcoming, and provides many CPU to share the method for BOOT FLASH channeling conduct.
A kind of multicomputer system among the present invention, comprise a plurality of processors, each processor all has supporting state of a control register, DRAM, SRAM, serial ports etc., a plurality of processors are associated in together by pci bus, a shared PCI moderator, a processor band bootstrap module is as primary processor, and other processors conducts are from processor; Wherein the PCI moderator is realized by complex programmable logic equipment.
Multiprocessor among the present invention is shared the method for bootstrap module, comprises the following steps: (1) initialization primary processor critical registers; (2) primary processor DRAM and SRAM, memory test; (3) in primary processor, copy to code segment and data segment in the internal memory and jump to this place's operation; (4) primary processor interrupts and the abnormality processing initialization; (5) main processor cores initialization; (6) primary processor memory management initialization; (7) main processor system clock and auxiliary clock initialization; (8) pci controller and PCI device initialize; (9) primary processor IO and file system initialization: (10) load the primary processor serial port drive and Ethernet drives; (11) load the primary processor version file: (12) operation primary processor version file: it is characterized in that: in described step (8) afterwards, step (9) before, and is further comprising the steps of;
1.1 from processor critical registers and DRAM thereof, SRAM initialization;
1.2 test is from processor memory;
1.3 code segment and data segment are copied to internal memory from processor system, and a jump instruction are set at the first address of internal memory;
1.4 reset from processor.
Resetting in the said method from processor, carry out following steps from processor:
2.1 the code segment value in the internal memory;
2.2 interrupt and the abnormality processing initialization;
2.3 kernel initialization;
2.4 memory management initialization;
2.5 system clock and auxiliary clock initialization;
2.6 pci controller and PCI device initialize;
2.7 IO and file system initialization;
2.8 loading serial port drive and/or Ethernet drives;
2.9 load application version file;
2.10 operation version file.
The present invention compared with prior art, method is simple, need on hardware, not add optional equipment, and can save BOOT FLASH, CPLD once handles on software, can not pass through Ethernet load application version file from CPU, and by pci bus from host CPU load application version file, can also save ethernet controller from cpu system.If produce in batches, the present invention will bring considerable economic.
Description of drawings
Fig. 1 is a multi-CPU system theory diagram of the prior art;
Fig. 2 is the theory diagram of an embodiment of multi-CPU system of the present invention;
Fig. 3 is by art methods designed system boot flow figure;
Fig. 4 is the method flow diagram among the present invention;
Fig. 5 is the boot flow figure from CPU of the present invention;
Fig. 6 is the cpu address among the present invention and the mapping relations figure of PCI address.
Embodiment
Host CPU has BOOT FLASH in system of the present invention, and is not with BOOT FLASH from CPU.All CPU are associated in together by pci bus, and a shared PCI moderator.When system powered on, host CPU was from the BOOT FLASH instruction fetch of self, and obtained instruction from CPU from RAM, but what at this moment obtain is illegal instruction, can't move, but host CPU was to allowing it reset once more after the CPU initialization after a while, and at this moment it can normally move.
Core of the present invention is to utilize a kind of warm reset, makes the instruction fetch and do not carry out other operation from RAM from CPU.Utilize this specific character, power on or after host CPU resets in system, host CPU is configured the PCI space from CPU, will be from the various state of a control register CSR (Controll Status Registers) of the inside of cpu system, DRAM, SRAM etc., shine upon to host CPU by pci controller, make CSR from CPU, DRAM (DRAM), SRAM (SRAM) becomes the open source of host CPU, host CPU just can carry out initialization to the CSR from CPU, particularly the DRAM control register is carried out initialization, code segment and data segment with instruction copies to from the DRAM of cpu system then, and by host CPU to after the CPU initialization, allowing it reset once more, make instruction fetch the DRAM from self, finish startup from CPU from CPU.
The present invention is described in detail below in conjunction with accompanying drawing.
1, the system architecture among the present invention
Multicomputer system functional-block diagram among the present invention is (in the present embodiment, system comprises a primary processor and one from processor, and two CPU have only drawn among the figure) as shown in Figure 2.All CPU link to each other by pci bus.Main CPU system is done by the CPU1 system, starts by the BOOT FLASH that carries.The CPU2 system is done from system, and its some resource (dram controller, SRAM controller) is come initialization by the CPU1 system.PCI moderator among the figure is realized by CPLD, finishes the control of pci bus.
2, the method among the present invention
Method among the present invention is exactly in fact the software of the main CPU system flow process that powers on, as shown in Figure 4.This method flow process is similar generally to flow process of the prior art (shown in Figure 3).After system powered on or resets, all CPU are instruction fetch from BOOT FLASH.The same with most processors, article one instruction after CPU powers on is a jump instruction, point to the start address of BOOT FLASH instruction, program at first is to close cache (buffer memory), carries out the initialization of DRAM and SRAM controller, opens cache then, and DRAM carried out full test, if mistake is found in the DRAM test, then the initialization of dram controller is incorrect, needs to adjust initialized parameter.If test successfully, just copy to the code segment among the BOOT FLASH and data segment among the DRAM and begin instruction fetch from DRAM.After the DRAM instruction fetch, successively finish the initialization of pci controller, the address assignment of PCI equipment and initialization, the initialization of operating system nucleus, and load serial port drive, Ethernet driving, by network, FLASH or disk load application version file, finish the startup of system.
The present invention and the software of the prior art flow process that powers on is compared, behind pci controller and PCI device initialize, host CPU will be given from the CSR of CPU and DRAM and distribute the address, and their configuration space carried out initialization, by pci bus, just all become the addressable resource of host CPU from CSR, the DRAM of CPU, SRAM; Afterwards, host CPU just carries out initialization to the CSR (clock controller) from CPU, and they are carried out full test, if test is not passed through, will alarm and withdraw from, require the deviser that initialized parameter is adjusted, if test is by just copying code segment among the main CPU system BOOT FLASH and data segment from the ad-hoc location of cpu system DRAM to; Putting a jump instruction from the start address of DRAM after copy is finished, this instruction will make and jump to foregoing special address from CPU and reach instruction, and this jump instruction is article one instruction that obtains behind cpu reset; After finishing above-mentioned work, host CPU just to write foregoing special reset instruction from the reseting register of CPU, just can normally move from DRAM from CPU in instruction fetch.
3, among the present invention from the software of the cpu system flow process that powers on
Among the present invention from the software flow of CPU after host CPU resets as shown in Figure 5.Receive the reset command of host CPU from the reseting register of CPU after, just from the first address instruction fetch of DRAM and jump to foregoing specific position instruction fetch.Owing to by the host CPU initialization, behind cpu reset, can not carry out initialization to them again from the dram controller of CPU, cache.In addition because the host CPU PCI address that has been each PCI devices allocation, can be from CPU again to each PCI equipment deallocation yet, but from the configuration register of each PCI equipment, read these addresses.Other operation is identical with process flow diagram shown in Figure 3, mainly finishes the initialization of kernel, the loading that serial port drive, Ethernet drive.Last load application version file is finished the startup of system.
Can finish by Ethernet, FLASH or disk from cpu system load application version file, also can obtain from main CPU system by pci bus.When main CPU system obtains version file, only need in the code of master and slave cpu system, add a PCI communication module, master-slave cpu passes through this PCI communication module interactive information, finish version file from main CPU system to transmission from cpu system.Make the ethernet controller that just can save the download version file in this way from cpu system.
4, master-slave cpu map addresses of the present invention
Fig. 6 is master and slave cpu address and PCI address mapping relation figure among the present invention (among the figure be example explanation with two CPU).
In the present invention (not marking PCI IO space the figure) carried out distributing unitedly in host CPU, PCI MEM (PCI internal memory) space and the PCI IO space of CSR, DRAM, SRAM and Ethernet from CPU in pci bus.The DRAM_BASE of host CPU (DRAM base address), SRAM_BASE (SRAM base address), CSR_BASE (CSR base address) reflect respectively body to pci bus PCI_DRAM_BASE1, PCI_SRAM_BASE1, PCI_CSR_BASE1, will be from DRAM_BASE, the SRAM_BASE of CPU, PCI_DRAM_BASE2, PCI_SRAM_BASE2, the PCI_CSR_BASE2 that CSR_BASE is mapped to pci bus respectively, they are determined with DRAM, the SRAM of reality and space size DRAM_SIZE, SRAM_SIZE, the CSR_SIZE of CSR in the size in PCI space.This mapping is to finish when host CPU carries out initialization to the PCI configuration register of each PCI equipment.On pci bus, be exactly that DRAM to main CPU system conducts interviews like this to the visit in PCI_DRAM_BASE1~PCI_DRAM_BASE2 space, PCI_CSR_BASE2~PCI_CSR_BASE2+CSR_SIZE space is conducted interviews, exactly the CSR space from CPU is conducted interviews.
In CPU, a certain section physical address space (we are called cpu address, and the address of pci bus output is called the PCI address) is used as the visit to the PCI space, to the operation of this sector address, will produce the PCI operation.Host CPU when initialization with the PCI map addresses to certain section space more than the PCI_MEM_BASE of cpu address of oneself, host CPU is operated a certain section space above the PCI_MEM_BASE of oneself like this, the PCI time sequential routine be will change into automatically, DRAM, SRAM, CSR just can be operated from cpu system.

Claims (2)

1, a kind of multicomputer system is shared the method for bootstrap module, comprises the following steps: (1) initialization primary processor critical registers; (2) carry out the initialization of dynamic ram and static RAM (SRAM) controller, primary processor dynamic ram and static RAM (SRAM) test; (3) in primary processor, code segment and data segment copied in the internal memory and jump in the internal memory and move; (4) primary processor interrupts and the abnormality processing initialization; (5) main processor cores initialization; (6) primary processor memory management initialization; (7) main processor system clock and auxiliary clock initialization; (8) pci controller and PCI device initialize; (9) primary processor I/O and file system initialization; (10) loading primary processor serial port drive and Ethernet drives; (11) load the primary processor version file; (12) operation primary processor version file; It is characterized in that: in described step (8) afterwards, step (9) is before, and is further comprising the steps of:
1.1 from processor critical registers and dynamic ram thereof, static RAM (SRAM) initialization;
1.2 test is from processor memory;
1.3 code segment and data segment copied to from the internal memory of processor system and at the first address from the internal memory of processor system from the internal memory of primary processor a jump instruction is set, this instruction will make from the address that CPU jumps under the duplicating position and reach instruction;
1.4 reset from processor.
2, the described multicomputer system of claim 1 is shared the method for bootstrap module, and it is characterized in that: described step 1.4 may further comprise the steps:
1.4.1 the code segment value in the internal memory;
1.4.2 interrupt and the abnormality processing initialization;
1.4.3 kernel initialization;
1.4.4 memory management initialization;
1.4.5 system clock and auxiliary clock initialization;
1.4.6 pci controller and PCI device initialize;
1.4.7 I/O and file system initialization;
1.4.8 loading serial port drive and/or Ethernet drives;
1.4.9 load application version file;
1.4.10 operation version file.
CNB031468810A 2003-09-17 2003-09-17 Multiprocessor system and method for sharing bootstrap module thereof Expired - Fee Related CN1301473C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB031468810A CN1301473C (en) 2003-09-17 2003-09-17 Multiprocessor system and method for sharing bootstrap module thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB031468810A CN1301473C (en) 2003-09-17 2003-09-17 Multiprocessor system and method for sharing bootstrap module thereof

Publications (2)

Publication Number Publication Date
CN1525353A CN1525353A (en) 2004-09-01
CN1301473C true CN1301473C (en) 2007-02-21

Family

ID=34286663

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031468810A Expired - Fee Related CN1301473C (en) 2003-09-17 2003-09-17 Multiprocessor system and method for sharing bootstrap module thereof

Country Status (1)

Country Link
CN (1) CN1301473C (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043648A (en) * 2009-10-23 2011-05-04 中兴通讯股份有限公司 Multi-core system and starting method thereof
CN102750256A (en) * 2012-06-12 2012-10-24 福建睿矽微电子科技有限公司 Multiprocessor shared storage implementation technique

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734741B2 (en) 2004-12-13 2010-06-08 Intel Corporation Method, system, and apparatus for dynamic reconfiguration of resources
US7738484B2 (en) 2004-12-13 2010-06-15 Intel Corporation Method, system, and apparatus for system level initialization
US7356680B2 (en) * 2005-01-22 2008-04-08 Telefonaktiebolaget L M Ericsson (Publ) Method of loading information into a slave processor in a multi-processor system using an operating-system-friendly boot loader
JP4148223B2 (en) * 2005-01-28 2008-09-10 セイコーエプソン株式会社 Processor and information processing method
US7395367B2 (en) * 2005-10-27 2008-07-01 International Business Machines Corporation Method using a master node to control I/O fabric configuration in a multi-host environment
CN100458696C (en) * 2006-05-08 2009-02-04 华为技术有限公司 System and method for realizing multiple CPU loading
CN101169774B (en) * 2007-11-22 2023-12-22 中兴通讯股份有限公司 Multiprocessor system, sharing control device and method for starting slave processor
CN101477329B (en) * 2008-01-02 2010-11-10 株洲南车时代电气股份有限公司 Vehicle-mounted information apparatus
CN101876911B (en) * 2009-11-04 2013-05-15 杭州海康威视数字技术股份有限公司 Multi-CPU (Central Processing Unit)system starting method and module based on PCI/PCIe (Peripheral Component Interconnect/Peripheral Component Interconnect Express) bus
US8938609B2 (en) * 2009-11-13 2015-01-20 Qualcomm Incorporated Methods and apparatus for priority initialization of a second processor
CN102123319A (en) * 2010-12-31 2011-07-13 广东九联科技股份有限公司 Rapid playing method and system during process of starting set top box
CN102368167A (en) * 2011-07-07 2012-03-07 曙光信息产业股份有限公司 Method for displaying SMP (Symmetric Multi-Processing) function of godson CPUs (Central Processing Units)
CN103077046A (en) * 2012-12-21 2013-05-01 太仓市同维电子有限公司 Method for replacing serial port by internet access in computer system
CN103150224B (en) * 2013-03-11 2015-11-11 杭州华三通信技术有限公司 For improving the electronic equipment and method that start reliability
KR20170140225A (en) * 2015-04-30 2017-12-20 마이크로칩 테크놀로지 인코포레이티드 Central Processing Unit with Enhanced Instruction Set
CN105959142B (en) * 2016-05-03 2020-09-04 中国铁路总公司 High-reliability and high-safety intelligent Ethernet communication board
CN108874458A (en) * 2017-05-10 2018-11-23 鸿秦(北京)科技有限公司 A kind of the firmware starting method and multicore SoC device of multicore SoC
CN109656758B (en) * 2018-11-20 2022-02-22 中科曙光信息产业成都有限公司 Debugging method and system for heterogeneous dual-processor system chip
CN109800032B (en) * 2019-01-31 2022-03-25 深圳忆联信息系统有限公司 BOOTROM multi-core loading method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081883A (en) * 1997-12-05 2000-06-27 Auspex Systems, Incorporated Processing system with dynamically allocatable buffer memory
CA2354865A1 (en) * 2000-10-10 2002-04-10 Sergey Maleyev Cardbus microprocessor unit pc card
US6523082B1 (en) * 1999-02-25 2003-02-18 Sega Enterprises, Ltd. Systems having shared memory and buses

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081883A (en) * 1997-12-05 2000-06-27 Auspex Systems, Incorporated Processing system with dynamically allocatable buffer memory
US6523082B1 (en) * 1999-02-25 2003-02-18 Sega Enterprises, Ltd. Systems having shared memory and buses
CA2354865A1 (en) * 2000-10-10 2002-04-10 Sergey Maleyev Cardbus microprocessor unit pc card

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043648A (en) * 2009-10-23 2011-05-04 中兴通讯股份有限公司 Multi-core system and starting method thereof
CN102750256A (en) * 2012-06-12 2012-10-24 福建睿矽微电子科技有限公司 Multiprocessor shared storage implementation technique
CN102750256B (en) * 2012-06-12 2016-09-14 福建睿矽微电子科技有限公司 A kind of multiprocessor is shared storage and is realized technology

Also Published As

Publication number Publication date
CN1525353A (en) 2004-09-01

Similar Documents

Publication Publication Date Title
CN1301473C (en) Multiprocessor system and method for sharing bootstrap module thereof
US5717903A (en) Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
US5765198A (en) Transparent relocation of real memory addresses in the main memory of a data processor
US9229730B2 (en) Multi-chip initialization using a parallel firmware boot process
US6341345B1 (en) Mixed-endian computer system that provides cross-endian data sharing
US10007546B2 (en) Operating-system exchanges using memory-pointer transfers
US7814495B1 (en) On-line replacement and changing of virtualization software
CN1227593C (en) Storage controller and method and system for managing virtualized physical storage in processor
US11048588B2 (en) Monitoring the operation of a processor
US20030110205A1 (en) Virtualized resources in a partitionable server
CN1235148C (en) Method and system for managing virtualized physical storage in data processor
US10725770B2 (en) Hot-swapping operating systems using inter-partition application migration
US8275949B2 (en) System support storage and computer system
CN1227594C (en) Method and system for managine virtualized physical stroage in multiple processor system
JP2006018819A (en) System and method for implementing legacy 32-bit x86 virtual machine on 64-bit x86 processor
US9372702B2 (en) Non-disruptive code update of a single processor in a multi-processor computing system
US10430221B2 (en) Post-copy virtual machine migration with assigned devices
US20210157593A1 (en) Methods and systems for fetching data for an accelerator
WO2013088818A1 (en) Virtual computer system, virtualization mechanism, and data management method
JP2004127291A (en) Method, system, and computer software for offering successive memory address
US9910801B2 (en) Processor model using a single large linear registers, with new interfacing signals supporting FIFO-base I/O ports, and interrupt-driven burst transfers eliminating DMA, bridges, and external I/O bus
Bodenstab et al. The UNIX system: UNIX operating system porting experiences
US9792042B2 (en) Systems and methods for set membership matching
US11372768B2 (en) Methods and systems for fetching data for an accelerator
FI103926B (en) Arrangement for connecting the upgrade processor to the microprocessor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070221

Termination date: 20190917

CF01 Termination of patent right due to non-payment of annual fee