US20040193869A1 - Data processing system for performing software intialization - Google Patents
Data processing system for performing software intialization Download PDFInfo
- Publication number
- US20040193869A1 US20040193869A1 US10/820,019 US82001904A US2004193869A1 US 20040193869 A1 US20040193869 A1 US 20040193869A1 US 82001904 A US82001904 A US 82001904A US 2004193869 A1 US2004193869 A1 US 2004193869A1
- Authority
- US
- United States
- Prior art keywords
- initialization
- reset signal
- memory
- address
- data processing
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
Definitions
- the present invention relates to data processing systems, particularly to data processing systems provided with processors having a function of generating a start address of a program for initialization in response to a reset signal, and executing commands fetched in accordance with the start address, to set the internal state of the device proper.
- the microprocessor When a device provided with a microprocessor is powered on, the microprocessor performs a reset operation for initializing the internal state of the processor, in response to a reset signal externally given.
- initialization in hardware is first performed in which the stored data of each memory element provided in the processor is initialized, and then initialization in software is performed in which a program for initialization is read out from an external memory, and the program is executed to set various application programs in their executable states.
- the hardware initialization starts when the reset signal is asserted.
- the software initialization starts.
- the software initialization is performed with fetching commands of the initialization program from the address designated by a reset vector.
- the initialization program is stored in a read-only memory (hereinafter referred to as ROM) externally connected to the processor through a bus.
- the processor gives the ROM a read request address via the bus.
- a sequence of commands of the initialization program is then read out in order and supplied to the processor via the bus.
- the processor having received the commands sets proper values to meet the system, in various setting registers provided in the processor, in accordance with the respective supplied commands.
- the processor thereby sets up an environment in which each application program is executable.
- a multiprocessor system which includes processors connected to a common bus.
- the processors are made up from one master processor and the remaining slave processors, and each of the processors performs such a reset operation as described above. To reset the whole of this multiprocessor system, every processor must perform its reset operation.
- a reset signal is asserted to all the processors, and thereby every processor performs its hardware initialization. After the reset signal is asserted for a time necessary and sufficient for initializing the stored data of the memory elements in every processor, the reset signal is negated to all the processors.
- the clock supply is restarted to start the processor.
- the processor being started performs its hardware initialization in response to an assertion of a reset signal, and then its software initialization in response to a negation of the reset signal.
- the processor accesses a ROM via a bus, and reads out a sequence of commands of a necessary initialization program.
- a ROM which stores the initialization programs for the respective processors, is connected to the common bus.
- bus arbitration is made so that the processors may access the low speed ROM in order.
- a data processing system in which initialization in software is performed with a necessary initialization program read out from a memory after initialization in hardware has been performed in response to a reset signal, comprises an address selecting section for selecting the start address of the initialization program stored in a local memory or an external memory connected through a bus, on the basis of an address selection signal.
- a data processing system in which initialization in software is performed with a necessary initialization program read out from a memory after initialization in hardware has been performed in response to a reset signal, comprises an access inhibiting section for inhibiting any access request to the memory storing the initialization program, on the basis of a start inhibiting signal.
- the initialization program stored in an external memory connected through an external bus can be transferred to a local memory while inhibiting any access request to the local memory.
- the initialization program for the starting operation can be read out from the high-speed local memory, without necessity of accessing the external memory.
- processors connected to the external bus start to access the external memory at once. Therefore, arbitration on the common bus becomes unnecessary, and accordingly a rapid starting operation can be performed.
- FIG. 1 is a block diagram showing the construction of a processor in a data processing system according to the first embodiment of the present invention
- FIG. 2 is a representation showing a memory map of the whole system including a RAM, a ROM, and registers;
- FIG. 3 is a block diagram showing the construction of the command fetch control section shown in FIG. 1;
- FIG. 4 is a block diagram showing the construction of a portion of the bus control section shown in FIG. 1 including an area designation register, wherein flows of addresses and data are also shown;
- FIG. 5 is a block diagram showing the construction of a portion of the bus command control section shown in FIG. 4 which performs address judgement;
- FIG. 6 is a block diagram showing the construction of a portion of the bus control section including a reset register, wherein flows in data write to the reset register are also shown;
- FIG. 7 is a block diagram showing the construction of the clock control section shown in FIG. 1;
- FIG. 8 is a block diagram showing the construction of a multiprocessor system including a processor as a slave processor according to the second embodiment of the present invention.
- FIG. 9 is a block diagram showing the construction of the slave processor according to the second embodiment.
- FIG. 10 is a block diagram showing the construction of a command fetch control section according to the second embodiment
- FIG. 11 is a block diagram showing the construction of an external bus control section according to the second embodiment.
- FIG. 12 is a block diagram showing the construction of another example of command fetch control section according to the present invention.
- FIG. 1 is a block diagram showing the construction of a processor in a data processing system according to the first embodiment of the present invention.
- the processor 10 comprises a command fetch control section 1 for controlling the operation of reading out commands of a program from a memory and fetching them, a command executing section 2 for interpreting the fetched commands and executing them, a cache memory with its control section (hereinafter referred to as cache unit) 3 for holding a duplicate of stored data of a memory to assist in a high speed memory access, a bus control section 4 for controlling a random access memory (RAM) 6 as a local memory, and external buses such as an address bus 7 and a data bus 8 , and a clock control section 5 for generating internal clocks bck and cck based on a clock CLOCK externally given, and distributing them.
- a command fetch control section 1 for controlling the operation of reading out commands of a program from a memory and fetching them
- a command executing section 2 for interpreting the fetched commands and executing them
- cache unit 3 for holding a duplicate of stored data of a memory to assist in a high speed memory access
- a ROM 9 as an external memory is connected to the external buses 7 and 8 .
- the ROM 9 stores an initialization program necessary for the software initialization of the processor 10 .
- the RAM 6 is generally used as a work memory of the processor 10 . When necessary, the initialization program is transferred from the ROM 9 via the external buses 7 and 8 , and stored in the RAM 6 .
- the cache memory in the cache unit 3 is a buffer memory which can operate at a high speed but has a small capacity, for holding a duplicate of stored data of an external memory connected to the processor 10 .
- the cache memory holds the duplicate of the stored data of the external memory, the command executing section is supplied with the data from the cache memory. Since the cache memory is not essential to the present invention, its detailed description will be omitted. In this embodiment, a store-through type cache memory is used.
- the command fetch control section 1 generates the address in the memory at which a command of the initialization program to be executed by the processor 10 , and issues it as a request command address ia to the cache unit 3 , together with a command fetch request iaval. At this time, the command fetch control section 1 selects one of start addresses of the RAM 6 as a local memory and the ROM 9 as an external memory on the basis of an address selection signal MS externally given, to make the request command address ia. That is, this command fetch control section 1 includes an address selection section according to the present invention.
- the cache unit 3 having received the command fetch request iaval from the command fetch control section 1 , uses the request command address ia attendant upon the command fetch request iaval, to check as to whether an effective entry is present in the cache memory or not. When there is a cache hit, the cache unit 3 reads out the corresponding data from the cache memory, and supplies it as command data id to the command executing section 2 . When no effective entry is present in the cache memory and so the check results in cache miss, the cache unit 3 supplies the command fetch request and a request address add to the bus control section 4 .
- the bus control section 4 selectively requests data read to one of the RAM 6 and the ROM 9 , in accordance with the received request address add. More specifically, the bus control section 4 includes an area designation register 4 a for holding information for designating an address area of the RAM 6 .
- the area designation register 4 a holds information on the top address ASR and the area size AMR of an area. In accordance with whether or not the address area of the RAM 6 defined by a combination of the top address ASR and the area size AMR contains the request address add received from the cache unit 3 , the bus control section 4 requests data read to the RAM 6 or the ROM 9 .
- FIG. 2 is a representation showing a memory map of the whole system including various registers in the processor 10 in addition to the RAM 6 and the ROM 9 .
- the address numbers “0 ⁇ 0000 — 0000” to “0 ⁇ 01FF_FFFF” are assigned to the RAM 6
- the address numbers “0 ⁇ FE00 — 0000” to “0 ⁇ FF00 — 0000” are assigned to various registers provided in the components (the command fetch control section 1 , the command executing section 2 , the cache unit 3 , the bus control section 4 , and the clock control section 5 ) in the processors 10
- the address numbers “0 ⁇ FF00 — 0000” to “0 ⁇ FFFF_FFFF” are assigned to the ROM 9 .
- the address numbers “0 ⁇ 01FF_FFFF” to “0 ⁇ FE00 — 0000” are unused.
- the area designation register 4 a holds the address number “0 ⁇ 0000 — 0000” as information on the top address ASR, and the area size “01FF_FFFF” as information on the area size AMR.
- the bus control section 4 requests data read to the RAM 6 with sending the request address add via an address line ram_add when the request address add received from the cache unit 3 is within the range of “0 ⁇ 0000 — 0000” to “0 ⁇ 0FF_FFFF”.
- the bus control section 4 requests data read to the ROM 9 with sending the request address add via the address bus 7 .
- the requested data in the RAM 6 or ROM 9 is read out from the corresponding memory, and sent to the bus control section 4 via a data line ram_data or the data bus 8 .
- the bus control section 4 having received the data supplies the data as read data rdd to the cache unit 3 .
- the cache unit 3 having received the read data rdd supplies the data as command data id to the command executing section 2 .
- the cache unit 3 registers the command data in the cache memory.
- the command executing section 2 thus supplied with the command data id interprets and executes the command. If it is necessary in executing the command to refer to data stored in the RAM 6 , the ROM 9 , or a register in the processor 10 , the command executing section 2 issues a data fetch request with a request data address oa to the cache unit 3 .
- the command executing section 2 issues a data write request with a request data address oa and write data wd to the cache unit 3 .
- the cache memory writes the write data wd in the cache memory, and issues a data write request and write data wrd with a request address add to the bus control section 4 .
- the bus control section 4 having received the data write request requests data write to the RAM 6 with sending the request address add via the address line ram_add and the write data wrd via the data line ram_data when the request address add received is within the address area in the RAM 6 defined by the combination of the top address ASR and the area size AMR in the area designation register 4 a.
- the bus control section 4 writes the write data wrd in the corresponding register to the request address add.
- the bus control section 4 requests data write to the ROM 9 with sending the request address add via the address bus 7 and the write data wrd via the data bus 8 .
- the processor 10 of this embodiment is driven with the clock CLOCK externally given.
- the clock control section 5 generates the first and second internal clocks bck and cck based on the external clock CLOCK.
- the first internal clock bck is supplied to the bus control section 4
- the second internal clock cck is supplied to the remaining command fetch control section 1 , command executing section 2 , and cache unit 3 .
- a clock stop signal stop instructing the clock control section 5 to stop supplying the internal clock bck or cck is given to the clock control section 5 as occasion arises. That is, this processor 10 can stop the supply of its internal clock bck or cck by itself by its command executing section 2 executing a command for stopping the clock.
- this processor 10 can stop the supply of its internal clock bck or cck by itself by its command executing section 2 executing a command for stopping the clock.
- two clock stop modes comprising the first mode of stopping both the internal clocks bck and cck, and the second mode of stopping only the second internal clock cck.
- the above initial start reset signal PRST and restart reset signal HRST can be given to each component in the processor 10 (the command fetch control section 1 , the command executing section 2 , the cache unit 3 , the bus control section 4 , and the clock control section 5 ).
- a program reset signal SRST (a third reset signal according to the present invention) for performing an reset operation independently of stop and restart of supply of the internal clock bck or cck.
- This program reset signal SRST is used in, e.g., debugging, and supplied only to the command fetch control section 1 and the command executing section 2 .
- FIG. 3 is a block diagram showing the construction of the command fetch control section 1 .
- a request command address ia is held in a command address register 11 , and supplied to the cache unit 3 .
- an adder 12 adds the value “16” to the address held in the command address register 11 at each time.
- the resultant address value is held in the command address register 11 when it is selected by selectors 13 and 14 .
- the increment value “16” corresponds to the bus width of the command data bus of the processor 10 .
- the command executing section 2 When the processor 10 has executed a branch command, the command executing section 2 asserts a signal b indicating that a branch was made. In this case, as the next request command address ia, the selector 13 selects a branch destination address bad sent from the command executing section 2 . The branch destination address bad is thereby sent through the selector 14 to the command address register 11 , and held in the register 11 .
- each of these four signals will be generically and simply called reset signal
- reset signal either address (0 ⁇ 0000 — 0000 or 0 ⁇ FF00 — 0000) selected by a selector 15 in accordance with an address selection signal MS externally given, is further selected by the selector 14 in accordance with the above reset signal, and then held in the command address register 11 .
- the address selection signal MS is set at “1”, and one fixed value “0>FF00 — 0000” indicating the top address of the address area of the ROM 9 is selected and held in the command address register 11 .
- the restart reset signal HRST is input, i.e., the supply of the internal clock bck or cck is restarted in the state that the clock has been stopped, the address selection signal MS is set at “0”, and the other fixed value “0 ⁇ 0000 — 0000” indicating the top address of the address area of the RAM 6 is selected and held in the command address register 11 .
- the request command address in fetching the first command of an initialization program when a reset signal is negated is either of the top address “0 ⁇ FF00 — 0000” of the ROM 9 and the top address “0 ⁇ 0000 — 0000” of the RAM 6 .
- the selectors 14 and 15 which perform selecting operations in accordance with the address selection signal MS, comprises an address selecting section according to the present invention.
- a command fetch control logic circuit 16 determines as to whether a command fetch request iaval should be issued or not, in accordance with the state of the processor 10 executing commands, the state of the control section of the cache unit 3 , etc.
- the request command address ia held in the command address register 11 is never renewed unless a command fetch request iaval is asserted to the cache unit 3 , and the cache unit 3 accepts the assertion.
- FIG. 4 is a block diagram showing the construction of a portion of the bus control section 4 including the area designation register 4 a.
- FIG. 4 also shows flows of addresses and data.
- the bus control section 4 comprises a bus I/F 21 , a memory control section 22 , and an external bus control section 23 .
- the bus I/F 21 comprises a bus command control section 24 including the above area designation register 4 a, a read data path 25 , and a write data path 26 .
- the memory control section 22 comprises a memory-bus I/F (MBI) 27 , a memory I/F (Ml) 28 , and a memory-external bus I/F (MEI) 29 .
- the external bus control section 23 comprises an external bus-bus I/F (EBI) 30 , an external bus-memory I/F (EMI) 31 , and an external bus I/F 32 .
- bus control section 4 In fetching a command will be described below.
- the bus command control section 24 compares the request address add attendant upon the command fetch request, with the top address ASR and the value of the area size AMR registered in the area designation register 4 a to judge as to whether or not the request address add is within the address area of the RAM 6 .
- the bus command control section 24 issues a command fetch request to the memory control section 22 .
- the memory control section 22 having received the command fetch request through the memory-bus I/F 27 , accesses the RAM 6 connected through the memory I/F 28 , and reads out the command data corresponding to the request address add.
- the read-out command data is sent through the memory-bus I/F 27 and the read data path 25 to the cache unit 3 , and finally to the command executing section 2 .
- the bus command control section 24 issues a command fetch request to the external bus control section 23 .
- the external bus control section 23 having received the command fetch request through the external bus-bus I/F 30 , makes bus arbitration, and issues memory transaction onto the external buses 7 and 8 , and waits for a response to it.
- FIG. 5 is a block diagram showing the construction of a portion of the bus command control section 24 shown in FIG. 4 which performs address judgement.
- the bus command control section 24 comprises the above-described area designation register 4 a, two comparators 41 and 42 , two buffers 43 and 45 , and a NAND gate 44 .
- One comparator 41 compares the request address add given by the cache unit 3 , with the address areas of the registers in the memory map shown in FIG. 2. When the comparison result indicates that the request address add is within the address areas of the registers (when a signal match 1 is asserted), the bus command control section 24 issues a command fetch request to the corresponding one of the registers through the buffer 43 .
- the other comparator 42 compares the request address add given by the cache unit 3 , with the address area of the RAM 6 defined by the combination of the top address ASR and the area size AMR in the area designation register 4 a. When the comparison result indicates that the request address add is within the address area of the RAM 6 (when a signal match 2 is asserted), the bus command control section 24 issues a command fetch request to the RAM 6 through the buffer 45 .
- the bus command control section 24 issues a command fetch request onto the external buses 7 and 8 through the NAND gate 44 .
- FIG. 6 is a block diagram showing the construction of a portion of the bus control section 4 including the reset register 4 b.
- FIG. 6 also shows flows in data write to the reset register 4 b.
- the reset register 4 b comprises five register components respectively corresponding to five bits PD, HD, SD, HS, and SS.
- the PD, HD, and SD bits are for indicating reset causes just before.
- the PD bit indicates initial start reset when powered on
- the HD bit indicates restart reset when restarting clock supply
- the SD bit indicates program restart reset when debugging or the like.
- the remaining HS and SS bits are for generating reset signals (HRST′ and SRST′) corresponding to the restart reset signal HRST and the program reset signal SRST, in the bus control section 4 by the manner that a not-shown bus master writes data in the HS and SS bits, respectively.
- the register components corresponding to these two bits comprise a reset internally-generating section according to the present invention.
- the outputs of the HS and SS bits are supplied together with the restart reset signal HRST and the program reset signal SRST to OR gates 51 and 52 , respectively. Effective one of them is then supplied to the subsequent stage.
- the PD bit is set at “1”.
- the HD bit is set at “1”.
- the external program reset signal SRST is asserted, or the internal program reset signal SRST′ is asserted by writing data in the SS bit, the SD bit is set at “1”.
- FIG. 7 is a block diagram showing the construction of the clock control section 5 shown in FIG. 1.
- the clock control section 5 generates two internal clocks bck and cck based on a clock CLOCK externally given, and supplies them in the processor 10 .
- the bus control section 4 and the other components are supplied with their internal clocks through separate lines bck and cck, as shown in FIG. 1.
- a clock supply in the processor 10 can be temporarily stopped according to instructions from the command executing section 2 .
- the command executing section 2 asserts a clock stop signal stop to the clock control section 5 .
- selectable is either of the first mode of stopping both the internal clocks bck and cck for the whole of the processor 10 including the bus control section 4 , and the second mode of stopping only the second internal clock cck for the components other than the bus control section 4 in the processor 10 .
- the command executing section 2 asserts a clock stop signal stopbc or stopc.
- the clock stop signal stopbc for stopping the whole of the processor 10 is supplied to two OR gates 61 and 65 .
- the clock stop signal stopbc having passed through one OR gate 61 is held in a C register 62 , and then supplied to the negative logic terminal of an AND gate 64 .
- the AND gate 64 performs AND operation between the clock stop signal stopbc and the external clock CLOCK supplied through its positive logic terminal, and outputs the internal clock cck in accordance with the operation result.
- the clock stop signal stopbc having passed through the other OR gate 65 is held in a B register 66 , and then supplied to the negative logic terminal of an AND gate 68 .
- the AND gate 68 performs AND operation between the clock stop signal stopbc and the external clock CLOCK supplied through its positive logic terminal, and outputs the internal clock bck in accordance with the operation result.
- the clock stop signal stopc for stopping the components other than the bus control section 4 in the processor 10 is supplied only to the OR gate 61 .
- the clock stop signal stopc having passed through the OR gate 61 is held in the C register 62 , and then supplied to the negative logic terminal of the AND gate 64 .
- the AND gate 64 performs AND operation between the clock stop signal stopc and the external clock CLOCK supplied through its positive logic terminal, and outputs the internal clock cck in accordance with the operation result.
- the above OR gates 61 and 65 are also supplied with outputs of AND gates 63 and 67 , respectively.
- the AND gate 63 receives the output of the C register 62 through its positive logic terminal, and the start signal wup through its negative logic terminal, and performs AND operation between them to supply the resultant signal to the OR gate 61 .
- the AND gate 67 receives the output of the B register 66 through its positive logic terminal, and the start signal wup through its negative logic terminal, and performs AND operation between them to supply the resultant signal to the OR gate 65 .
- each of the C and B registers 62 and 66 is renewed by asserting the initial start reset signal PRST, the restart reset signal HRST, or the internal restart reset signal HRST′ generated by an external bus master or the like writing data in the reset register 4 b (HS bit shown in FIG. 6).
- the supply of the internal clock cck to the components other than the bus control section 4 can be restarted by asserting the internal restart reset signal HRST′.
- the supplies of the internal clocks bck and cck can be restarted by asserting the initial start reset signal PRST or the restart reset signal HRST.
- the initial start reset signal PRST is asserted to perform the hardware initialization.
- the values of all registers in the processor 10 including the area designation register 4 a and the reset register 4 b in the bus control section 4 are initialized to, e.g., “0”.
- the initial start reset signal PRST is negated.
- initialization programs for the subsequent software initialization are read out from addresses designated by a reset vector.
- the command fetch control section 1 issues a command fetch request for the initial address “0 ⁇ FF00 — 0000”.
- the bus control section 4 judges as to whether or not the given request address add of “0 ⁇ FF00 — 0000” is within the address area of the RAM 6 defined by the top address ASR and the area size AMR in the area designation register 4 a. In accordance with the judgement result, the bus control section 4 can access either of the RAM 6 and the ROM 9 . At this time, however, since the address area of the RAM 6 has been initialized into “ ⁇ ” and the given request address add is directed to the address area of the ROM 9 , the bus control section 4 accesses the ROM 9 connected to the external buses 7 and 8 .
- the initialization program stored in the ROM 9 is so made that its first sequence gives instructions to refer to the reset register 4 b.
- the processor 10 recognizes that the PD bit in the reset register 4 b has been set at “1”, and the processor 10 executes a routine including processes which will become necessary when the initial start reset signal PRST is negated.
- address data necessary for accessing the RAM 6 (the top address ASR and the area size AMR) is set in the area designation register 4 a.
- the necessary data is set in the area designation register 4 a, the value of the address selection signal MS is changed into “0”, and programs for restart operations are loaded in the RAM 6 from the ROM 9 or other devices connected to the external buses 7 and 8 .
- the processor 10 may comprise various registers for storing data necessary for memory access, other than the area designation register 4 a for storing the top address ASR and the area size AMR.
- Such registers may include a control register for setting the minimum cycle number of the operation of the DRAM which varies in accordance with the kind of DRAM; an access mode control register for setting an access mode to the DRAM; mode set registers for setting data to be written in the DRAM when the mode of the DRAM is set; configuration registers for setting data such as type, bus width, and connection manner, i.e., direct connection or connection using DIMM, of the DRAM; address number registers for setting the number of bits of RAS address, the number of bits of CAS address, and the number of bits of bank address of the DRAM; a status register for indicating a state of the controller of the DRAM; a refresh control register for setting auto refresh or self refresh of the DRAM; and a refresh timer register for setting a refresh interval in auto refresh. Any of these registers is initialized by the initial start reset signal PRST, but not initialized by the restart reset signal HRST or the program reset signal SRST.
- a starting operation based on the ROM 9 connected to the external buses 7 and 8 and a starting operation based on the RAM 6 connected as a local memory to the processor 10 can be selected in accordance with instructions with the address selection signal MS and one of the initial start reset signal PRST, the restart reset signal HRST, and the program reset signal SRST.
- the processor 10 can be restarted by reading out an initialization program for restarting, from the high-speed RAM 6 . Therefore, the restarting process can be performed rapidly. Besides, even in case of accessing the ROM 9 when restarting, by reading the value of the reset register 4 b, the initialization program stored in the ROM 9 can be branched so as selectively to execute only processing in accordance with the reset cause. As a result, even in a system in which clock supply in the processor 10 is frequently stopped and restarted for reducing power consumption, the vain time for waiting for the start of the system can be shortened considerably.
- the top address of the memory storing the initialization program which each processor is to execute is selected by the address selection signal MS. Therefore, means for judging as to which of the programs stored in the ROM 9 each processor is to execute, becomes unnecessary. As a result, the system construction can be simplified.
- FIG. 8 is a block diagram showing the construction of a multiprocessor system including a processor as a slave processor according to the second embodiment.
- the system comprises a master processor 71 and a slave processor 72 .
- RAMs 73 and 74 are connected to the master and slave processors 71 and 72 as their local memories, respectively.
- ROM 9 read-only memory
- common memory 75 a common memory 75
- DMAC Direct Memory Access Controller
- ASIC Application Specific Integrated Circuit
- the master processor 71 always operates after the system is powered on. Any usual processor can be used as the master processor 71 . Contrastingly, after the system is powered on, the slave processor 72 can be stopped and restarted for the purpose of reducing power consumption, by stopping and restarting its internal clock supply. As the slave processor 72 , used is a specific processor according to this embodiment.
- FIG. 9 is a block diagram showing the construction of the slave processor 72 according to this embodiment.
- the slave processor 72 has almost the same construction as the processor 10 shown in FIG. 1. But, a command fetch control section 81 and a bus control section 84 of the slave processor 72 differ in construction from the corresponding ones in FIG. 1, respectively. Besides, to the command fetch control section 81 , a start inhibiting signal WAIT is input as well as a program reset signal SRST and an address selection signal MS.
- FIG. 10 is a block diagram showing the construction of the command fetch control section 81 .
- an inverter 85 for inverting the logic of the start inhibiting signal WAIT and an AND gate 86 for performing AND operation between the output of the inverter 85 and the output of the command fetch control logic circuit 16 , are added to the construction of the command fetch control section 1 shown in FIG. 3.
- the command fetch control logic circuit 16 is in the state that it can issue a command fetch request iaval, as a result of judgement of conditions of command execution by the processor 72 , conditions of the cache control section, etc., the command fetch request iaval is not issued to the cache unit 3 unless an external start inhibiting signal WAIT is negated.
- the inverter 85 and the AND gate 86 comprise a start inhibiting section according to the present invention.
- the bus control section 84 has almost the same construction as the bus control section 4 shown in FIG. 4. But, when a transaction generated on the external buses 7 and 8 in accordance with a defined protocol, is a request from another device to the external bus control section 23 of this embodiment, the external bus control section 23 takes the command in and starts the corresponding process.
- the external bus control section 23 always monitors transactions generated on the external buses 7 and 8 . When there is an effective transaction, the external bus control section 23 takes the address data in and compares it with the address data which has been assigned to the components in the processor. When the comparison result indicates that the transaction is a request to a component in the processor, the external bus control section 23 takes in the command of the transaction and starts to access the component designated by the address data.
- FIG. 11 is a block diagram showing the construction of the external bus control section 23 .
- the external bus control section 23 of this embodiment comprises a four-stage cache command buffer 91 for holding commands and write data from the cache unit 3 , a response data buffer 92 for sending out response data received from the external buses 7 and 8 , to the cache unit 3 , a four-stage bus command buffer 93 for holding commands and write data from the external buses 7 and 8 , and a read data buffer 94 for receiving read-out data from the RAM 74 as a local memory.
- the external bus control section 23 further comprises a selector 95 for selecting one of the data units stored in the four-stage cache command buffer 91 , a selector 96 for selecting one of the data units stored in the four-stage cache command buffer 93 , a command arbitrating section 97 for arbitrating on the address bus 7 , a command arbitrating section 98 for arbitrating on the data bus 8 , and registers 99 developed on a memory map.
- the registers 99 correspond to the area designation register 4 a and the reset register 4 b shown in FIG. 9. More specifically, the registers 99 are to hold data of the top address ASR and the area size AMR of the RAM 74 , reset cause specifying data PD, HD, and SD, and internal reset write data HS and SS.
- the registers 99 can be accessed by either of a command from the cache unit 3 and a command from the external buses 7 and 8 .
- the area designation register 4 a for storing the top address ASR and the area size AMR is provided in the bus I/F 21 (see FIG. 4).
- the registers 99 for storing the corresponding data are provided in the external bus control section 23 .
- the bus I/F 21 receives the data set in the registers 99 , from the external bus control section 23 .
- the initial start reset signal PRST is asserted to the master processor 71
- the initial start reset signal PRST and the start inhibiting signal WAIT are asserted to the slave processor 72 .
- the initial start reset signal PRST is asserted, hardware initialization is performed in either of the master and slave processors 71 and 72 .
- the values of the registers in the processors 71 and 72 including the data of the top address ASR and the area size AMR, are thereby initialized to, e.g., “0”.
- the initial start reset signal PRST is negated.
- the master processor 71 reads out initialization programs for the subsequent software initialization from the ROM 9 connected to the external buses 7 and 8 , in accordance with addresses designated by a reset vector.
- the slave processor 72 issues no command fetch request iaval and reads out no initialization program.
- the master processor 71 sets the data in the slave processor 72 (such as the data of the top address ASR and the area size AMR) at proper values through the external buses 7 and 8 . More specifically, the master processor 71 writes data in the registers 99 through a data arbitrating section 98 shown in FIG. 11, to set a proper address area of the RAM 74 connected to the slave processor 71 . The master processor 71 then starts the DMAC 76 to transfer the initialization programs which will be required by the slave processor 72 , from, e.g., the ROM 9 to the RAM 74 .
- the external bus control section 23 transfers the data of each initialization program sent from the ROM 9 via the data bus 8 , to the memory control section 22 .
- Each initialization program is then stored in the corresponding address area of the RAM 74 .
- the DMAC 76 informs the master processor 71 of completion of transference processing, by an interception signal. After this, the master processor 71 which had received the interception signal, accesses the ASIC 77 when necessary, to negate the start inhibiting signal WAIT. In response to the negation of the start inhibiting signal WAIT, the command fetch control section 81 of the slave processor 72 issues a command fetch request iaval from the initial address “0 ⁇ 0000 — 0000” selected in accordance with the address selection signal MS to which “0” has been set, to the bus control section 84 through the cache unit 3 .
- the bus command control section 24 in the bus control section 84 compares a request address add attendant upon the command fetch request iaval, with the values of the top address ASR and the area size AMR received from the registers 99 in the external bus control section 23 . In accordance with the comparison result, the bus command control section 24 judges as to whether or not the request address add is within the address area of the RAM 74 .
- the bus command control section 24 judges that the command fetch request iaval is directed to the RAM 74 , and the bus command control section 24 issues a command fetch request to the memory control section 22 .
- the memory control section 22 having received the command fetch request, accesses the RAM 74 connected through the memory I/F 28 , to read out the command data corresponding to the request address add.
- the read-out command data is supplied to the command executing section 2 , and executed.
- the command executing section 2 of the slave processor 72 gives the clock control section 5 a clock stop signal stopc.
- the supply of the internal clock cck which has been supplied to the components other than the bus control section 84 in the slave processor 72 is thereby stopped.
- the master processor 71 makes the slave processor 72 start the supply of the internal clock cck, by writing data in the HS bit of the registers 99 of the slave processor 72 .
- the hardware and software initializations are thereby performed in the slave processor 72 .
- the sequence of start processing for initialization programs necessary for the software initialization is the same as that described in the first embodiment. Executed is a high-speed restart operation from the RAM 74 .
- initialization programs are transferred to the RAM 74 while the slave processor 72 is inhibited from issuing any command fetch request iaval, by the assertion of the start inhibiting signal WAIT. After this, the start inhibiting signal WAIT is negated so that the slave processor 72 can issue command fetch requests iaval to the RAM 74 .
- the slave processor 72 may not access the ROM 9 through the common buses.
- the slave processor 72 can be started by reading out the initialization programs from the high-speed RAM 74 .
- processors connected to a common bus start to access the ROM 9 at once.
- arbitration on the common bus becomes unnecessary, and so start processing can be performed rapidly.
- the initialization programs which the slave processor 72 is to execute are stored in the RAM 74 .
- the initialization programs can be read out in order from the top address of the RAM 74 selected by the address selection signal MS. Therefore, means for judging as to which of the programs each processor is to execute, becomes unnecessary. As a result, the system construction can be simplified.
- the start address of the initialization program is selected on the basis of the address selection signal MS which is externally given. But, the selection of the start address may be performed internally.
- a command fetch control section can be constructed as shown in FIG. 12.
- the selection of a restart address is performed in accordance with the value set in a register in the LSI.
- FIG. 12 the same components as those in FIG. 10 are denoted by the same references as those in FIG. 10, respectively.
- An AND gate 104 performs AND operation among the logically inverted signal of the signal set_btdir, the logically inverted signal of the initial start reset signal PRST, and the output signal of the register 106 , and outputs the resultant signal to the OR gate 105 .
- the OR gate 105 performs OR operation among the outputs of the AND gates 102 to 104 , and outputs the resultant signal to the register 106 .
- the register 106 takes in the value of the address selection signal MS from an external terminal.
- the register 106 takes the signal btdir in. In the other cases, the register 106 keeps its stored value. In this example, either of the signals btdir and set_btdir is asserted by the command executing section 2 executing a write command to the register 106 .
- the selector 15 selects either address of “0 ⁇ 0000 — 0000” and “0 ⁇ FF00 — 0000” in accordance with the value held by the register 106 . For example, when the register 106 holds the value “1”, the selector 15 selects the address “0 ⁇ FF00 — 0000”. When the register 106 holds the value “0”, the selector 15 selects the address “0 ⁇ 0000 — 0000”.
- FIG. 1 shown is a combination of the external terminal of the address selection signal MS and register setting. But, a construction only by register setting can also be made. Besides, by providing the register 106 in another unit and developing the register 106 on a memory map, the master processor can write data in the register 106 when the slave processor is started. This makes it possible to control the selection of the start address of the initialization program by the master processor.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
A command fetch control section 1 has an address selection function of selecting the start address of an initialization program stored in a local memory (RAM 6) or an external memory (ROM 9) connected through external buses 7 and 8, based on an address selection signal MS externally given. When a processor 10 in which one or both of the supplies of its internal clocks bck and cck have been stopped after the system wad powered on, is to be restarted, the processor 10 can read out the initialization program necessary for its restarting operation from the high-speed RAM 6. Thus the restarting operation can be performed rapidly.
Description
- This application is a continuation application of U.S. application Ser. No. 09/666,593 filed on Sep. 20, 2000, now allowed. This application also claims the benefit of Japanese Patent Application No. 2000-6823, filed Jan. 14, 2000, the disclosure of which is incorporated herein by reference.
- 1. Field of the Invention
- The present invention relates to data processing systems, particularly to data processing systems provided with processors having a function of generating a start address of a program for initialization in response to a reset signal, and executing commands fetched in accordance with the start address, to set the internal state of the device proper.
- 2. Description of the Related Art
- When a device provided with a microprocessor is powered on, the microprocessor performs a reset operation for initializing the internal state of the processor, in response to a reset signal externally given. In the reset operation, initialization in hardware is first performed in which the stored data of each memory element provided in the processor is initialized, and then initialization in software is performed in which a program for initialization is read out from an external memory, and the program is executed to set various application programs in their executable states.
- The hardware initialization starts when the reset signal is asserted. When the reset signal is negated, the software initialization starts. The software initialization is performed with fetching commands of the initialization program from the address designated by a reset vector. In general, the initialization program is stored in a read-only memory (hereinafter referred to as ROM) externally connected to the processor through a bus.
- In the software initialization, the processor gives the ROM a read request address via the bus. A sequence of commands of the initialization program is then read out in order and supplied to the processor via the bus. The processor having received the commands sets proper values to meet the system, in various setting registers provided in the processor, in accordance with the respective supplied commands. The processor thereby sets up an environment in which each application program is executable.
- A multiprocessor system is known which includes processors connected to a common bus. The processors are made up from one master processor and the remaining slave processors, and each of the processors performs such a reset operation as described above. To reset the whole of this multiprocessor system, every processor must perform its reset operation.
- For this purpose, a reset signal is asserted to all the processors, and thereby every processor performs its hardware initialization. After the reset signal is asserted for a time necessary and sufficient for initializing the stored data of the memory elements in every processor, the reset signal is negated to all the processors.
- When the reset signal is negated, all the processors try to access a ROM at once, in accordance with the address designated by a reset vector, in order to perform their software initializations. The ROM connected to the common bus, however, can not simultaneously receive the accesses of the processors. Thus the processors access the ROM in order through arbitration on the common bus (bus arbitration), to read out a sequence of commands of a program necessary for software initialization.
- In a system including a processor which performs such a reset operation, it is also proposed that the clock supply is stopped in the processor to reduce the power consumption of the system when the processor is out of operation even after the system is powered on. For example, in such a multiprocessor system as described above, there is the state that the master processor is in operation and the slave processors are out of operation. In this state, the clock supply in each slave processor is stopped to reduce the power consumption.
- When a processor in which the clock supply is stopped is required to operate, the clock supply is restarted to start the processor. In this case, the processor being started performs its hardware initialization in response to an assertion of a reset signal, and then its software initialization in response to a negation of the reset signal. In the software initialization, the processor accesses a ROM via a bus, and reads out a sequence of commands of a necessary initialization program.
- In such a conventional system as described above, however, the software initialization, which is performed subsequently to the hardware initialization, requires an access to the ROM, which is a low-speed memory device, via the bus to obtain the program necessary for the initialization. As a result, the reset operation takes a long time.
- Particularly in a system in which the clock supply in a processor is temporarily stopped to reduce power consumption, if the processor is frequently stopped and started, an access to a low speed ROM must be made in every start operation. This brings about an increase in vain time for waiting for the start of the system.
- Besides, in a multiprocessor system as described above wherein processors are connected to a common bus, a ROM which stores the initialization programs for the respective processors, is connected to the common bus. When accesses from the processors to the ROM concur, bus arbitration is made so that the processors may access the low speed ROM in order. Thus the time for initializing all the processors increases considerably.
- Besides, in such a multiprocessor system, the respective processors are assigned different roles in general. The manners of their software initializations differ accordingly. The processors, therefore, use different programs for their software initializations. In this system, required is means for judging as to which of the different programs stored in the ROM each processor uses. As a result, the system construction becomes complicated.
- It is an object of the present invention to provide data processing systems wherein the software initialization of a processor can be performed more rapidly.
- It is another object of the present invention to provide data processing systems wherein the software initialization of a processor can be performed with a simpler construction.
- According to an aspect of the present invention, a data processing system in which initialization in software is performed with a necessary initialization program read out from a memory after initialization in hardware has been performed in response to a reset signal, comprises an address selecting section for selecting the start address of the initialization program stored in a local memory or an external memory connected through a bus, on the basis of an address selection signal.
- In this feature, when a processor in which the supply of its internal clock has been stopped after the system was powered on, is to be restarted, the processor can read out an initialization program necessary for its restarting operation, from the high-speed local memory. Thus the restarting operation can be performed rapidly. Thereby realized is a rapid restart from a state of stopping the clock for reducing the power consumption of the system.
- According to another aspect of the present invention, a data processing system in which initialization in software is performed with a necessary initialization program read out from a memory after initialization in hardware has been performed in response to a reset signal, comprises an access inhibiting section for inhibiting any access request to the memory storing the initialization program, on the basis of a start inhibiting signal.
- In this feature, the initialization program stored in an external memory connected through an external bus, can be transferred to a local memory while inhibiting any access request to the local memory. By this manner, in the start processing sequence when the system is powered on, the initialization program for the starting operation can be read out from the high-speed local memory, without necessity of accessing the external memory. Besides, there is no case that processors connected to the external bus start to access the external memory at once. Therefore, arbitration on the common bus becomes unnecessary, and accordingly a rapid starting operation can be performed.
- Besides, in case of a multiprocessor system, means for judging as to which program each processor is to execute, becomes unnecessary. Therefore, the system construction can be simplified.
- FIG. 1 is a block diagram showing the construction of a processor in a data processing system according to the first embodiment of the present invention;
- FIG. 2 is a representation showing a memory map of the whole system including a RAM, a ROM, and registers;
- FIG. 3 is a block diagram showing the construction of the command fetch control section shown in FIG. 1;
- FIG. 4 is a block diagram showing the construction of a portion of the bus control section shown in FIG. 1 including an area designation register, wherein flows of addresses and data are also shown;
- FIG. 5 is a block diagram showing the construction of a portion of the bus command control section shown in FIG. 4 which performs address judgement;
- FIG. 6 is a block diagram showing the construction of a portion of the bus control section including a reset register, wherein flows in data write to the reset register are also shown;
- FIG. 7 is a block diagram showing the construction of the clock control section shown in FIG. 1;
- FIG. 8 is a block diagram showing the construction of a multiprocessor system including a processor as a slave processor according to the second embodiment of the present invention;
- FIG. 9 is a block diagram showing the construction of the slave processor according to the second embodiment;
- FIG. 10 is a block diagram showing the construction of a command fetch control section according to the second embodiment;
- FIG. 11 is a block diagram showing the construction of an external bus control section according to the second embodiment; and
- FIG. 12 is a block diagram showing the construction of another example of command fetch control section according to the present invention.
- Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.
- FIG. 1 is a block diagram showing the construction of a processor in a data processing system according to the first embodiment of the present invention.
- The
processor 10 according to this embodiment comprises a command fetchcontrol section 1 for controlling the operation of reading out commands of a program from a memory and fetching them, acommand executing section 2 for interpreting the fetched commands and executing them, a cache memory with its control section (hereinafter referred to as cache unit) 3 for holding a duplicate of stored data of a memory to assist in a high speed memory access, abus control section 4 for controlling a random access memory (RAM) 6 as a local memory, and external buses such as an address bus 7 and a data bus 8, and aclock control section 5 for generating internal clocks bck and cck based on a clock CLOCK externally given, and distributing them. - A ROM9 as an external memory is connected to the external buses 7 and 8. The ROM 9 stores an initialization program necessary for the software initialization of the
processor 10. Although the ROM 9 is provided as an external memory in this example, the present invention is not limited to this feature. TheRAM 6 is generally used as a work memory of theprocessor 10. When necessary, the initialization program is transferred from the ROM 9 via the external buses 7 and 8, and stored in theRAM 6. - The cache memory in the
cache unit 3 is a buffer memory which can operate at a high speed but has a small capacity, for holding a duplicate of stored data of an external memory connected to theprocessor 10. When the cache memory holds the duplicate of the stored data of the external memory, the command executing section is supplied with the data from the cache memory. Since the cache memory is not essential to the present invention, its detailed description will be omitted. In this embodiment, a store-through type cache memory is used. - The command fetch
control section 1 generates the address in the memory at which a command of the initialization program to be executed by theprocessor 10, and issues it as a request command address ia to thecache unit 3, together with a command fetch request iaval. At this time, the command fetchcontrol section 1 selects one of start addresses of theRAM 6 as a local memory and the ROM 9 as an external memory on the basis of an address selection signal MS externally given, to make the request command address ia. That is, this command fetchcontrol section 1 includes an address selection section according to the present invention. - The
cache unit 3 having received the command fetch request iaval from the command fetchcontrol section 1, uses the request command address ia attendant upon the command fetch request iaval, to check as to whether an effective entry is present in the cache memory or not. When there is a cache hit, thecache unit 3 reads out the corresponding data from the cache memory, and supplies it as command data id to thecommand executing section 2. When no effective entry is present in the cache memory and so the check results in cache miss, thecache unit 3 supplies the command fetch request and a request address add to thebus control section 4. - The
bus control section 4 selectively requests data read to one of theRAM 6 and the ROM 9, in accordance with the received request address add. More specifically, thebus control section 4 includes an area designation register 4 a for holding information for designating an address area of theRAM 6. The area designation register 4 a holds information on the top address ASR and the area size AMR of an area. In accordance with whether or not the address area of theRAM 6 defined by a combination of the top address ASR and the area size AMR contains the request address add received from thecache unit 3, thebus control section 4 requests data read to theRAM 6 or the ROM 9. - FIG. 2 is a representation showing a memory map of the whole system including various registers in the
processor 10 in addition to theRAM 6 and the ROM 9. In the example of FIG. 2, the address numbers “0×0000—0000” to “0×01FF_FFFF” are assigned to theRAM 6, the address numbers “0×FE00—0000” to “0×FF00—0000” are assigned to various registers provided in the components (the command fetchcontrol section 1, thecommand executing section 2, thecache unit 3, thebus control section 4, and the clock control section 5) in theprocessors 10, and the address numbers “0×FF00—0000” to “0×FFFF_FFFF” are assigned to the ROM 9. The address numbers “0×01FF_FFFF” to “0×FE00—0000” are unused. - In case of the example of FIG. 2, the area designation register4 a holds the address number “0×0000—0000” as information on the top address ASR, and the area size “01FF_FFFF” as information on the area size AMR. Thus the
bus control section 4 requests data read to theRAM 6 with sending the request address add via an address line ram_add when the request address add received from thecache unit 3 is within the range of “0×0000—0000” to “0×0FF_FFFF”. - When the request address add received is not within the range of “0×0000—0000” to “0×01FF_FFFF” defined by the combination of the top address ASR and the area size AMR in the area designation register 4 a, and not within the range of “0×FE00—0000” to “0×FF00—0000” assigned to the registers in the
processor 10, thebus control section 4 requests data read to the ROM 9 with sending the request address add via the address bus 7. - The requested data in the
RAM 6 or ROM 9 is read out from the corresponding memory, and sent to thebus control section 4 via a data line ram_data or the data bus 8. Thebus control section 4 having received the data supplies the data as read data rdd to thecache unit 3. Thecache unit 3 having received the read data rdd supplies the data as command data id to thecommand executing section 2. When necessary, thecache unit 3 registers the command data in the cache memory. - The
command executing section 2 thus supplied with the command data id interprets and executes the command. If it is necessary in executing the command to refer to data stored in theRAM 6, the ROM 9, or a register in theprocessor 10, thecommand executing section 2 issues a data fetch request with a request data address oa to thecache unit 3. - The operation for the data fetch after this is substantially the same as that for the command fetch. But, if the request address add is within the range of “0×FE00—0000” to “0×FF00—0000” assigned to the registers in the
processor 10, thebus control section 4 reads out the value of the corresponding register (the area designation register 4 a, areset register RSTR 4 b as described later, or the like), and returns the read-out value as read data rdd to thecache unit 3. The data sent from theRAM 6, the ROM 9, or the register through thebus control unit 4 is finally supplied to thecommand executing section 2 as read data rd. - If it is necessary in executing the command to update the stored data of a memory such as the
RAM 6 or a register, thecommand executing section 2 issues a data write request with a request data address oa and write data wd to thecache unit 3. When there is a cache hit, the cache memory writes the write data wd in the cache memory, and issues a data write request and write data wrd with a request address add to thebus control section 4. - The
bus control section 4 having received the data write request requests data write to theRAM 6 with sending the request address add via the address line ram_add and the write data wrd via the data line ram_data when the request address add received is within the address area in theRAM 6 defined by the combination of the top address ASR and the area size AMR in the area designation register 4 a. When the request address add received is within the address area of a register in theprocessor 10 such as the area designation register 4 a or thereset register 4 b, thebus control section 4 writes the write data wrd in the corresponding register to the request address add. - When the request address add received is not within the address area in the
RAM 6 defined by the combination of the top address ASR and the area size AMR in the area designation register 4 a, and not within the address area of any register in theprocessor 10, thebus control section 4 requests data write to the ROM 9 with sending the request address add via the address bus 7 and the write data wrd via the data bus 8. - The
processor 10 of this embodiment is driven with the clock CLOCK externally given. Theclock control section 5 generates the first and second internal clocks bck and cck based on the external clock CLOCK. The first internal clock bck is supplied to thebus control section 4, and the second internal clock cck is supplied to the remaining command fetchcontrol section 1,command executing section 2, andcache unit 3. - A clock stop signal stop instructing the
clock control section 5 to stop supplying the internal clock bck or cck is given to theclock control section 5 as occasion arises. That is, thisprocessor 10 can stop the supply of its internal clock bck or cck by itself by itscommand executing section 2 executing a command for stopping the clock. Provided are two clock stop modes comprising the first mode of stopping both the internal clocks bck and cck, and the second mode of stopping only the second internal clock cck. - To restart the clock supply which has been stopped, the following two methods can be used. In the first method, either of an initial start reset signal PRST (a first reset signal according to the present invention) and a restart reset signal HRST (a second reset signal according to the present invention) is asserted. In the second method, a not-shown external bus master writes data in the
reset register 4 b provided in thebus control section 4, and a reset signal (start signal wup) corresponding to the above restart reset signal HRST or a program reset signal SRST, which will be described next, is generated in thebus control section 4 to assert. In case of the second method, since thebus control section 4 must be kept supplied with the first internal clock bck, the above second mode is adopted. - Although the detail is not shown in FIG. 1, the above initial start reset signal PRST and restart reset signal HRST can be given to each component in the processor10 (the command fetch
control section 1, thecommand executing section 2, thecache unit 3, thebus control section 4, and the clock control section 5). In this embodiment, as well as these reset signals, provided is a program reset signal SRST (a third reset signal according to the present invention) for performing an reset operation independently of stop and restart of supply of the internal clock bck or cck. This program reset signal SRST is used in, e.g., debugging, and supplied only to the command fetchcontrol section 1 and thecommand executing section 2. - FIG. 3 is a block diagram showing the construction of the command fetch
control section 1. Referring to FIG. 3, a request command address ia is held in acommand address register 11, and supplied to thecache unit 3. When theprocessor 10 executes commands in order, anadder 12 adds the value “16” to the address held in thecommand address register 11 at each time. The resultant address value is held in thecommand address register 11 when it is selected byselectors processor 10. - When the
processor 10 has executed a branch command, thecommand executing section 2 asserts a signal b indicating that a branch was made. In this case, as the next request command address ia, theselector 13 selects a branch destination address bad sent from thecommand executing section 2. The branch destination address bad is thereby sent through theselector 14 to thecommand address register 11, and held in theregister 11. - When the
processor 10 is being initialized with the initial start reset signal PRST, the restart reset signal HRST, the program reset signal SRST, or the start signal wup from thereset register 4 b (hereinafter, each of these four signals will be generically and simply called reset signal), either address (0×0000—0000 or 0×FF00—0000) selected by aselector 15 in accordance with an address selection signal MS externally given, is further selected by theselector 14 in accordance with the above reset signal, and then held in thecommand address register 11. - For example, when the initial start reset signal PRST is input, i.e., the system is powered on, the address selection signal MS is set at “1”, and one fixed value “0>FF00—0000” indicating the top address of the address area of the ROM 9 is selected and held in the
command address register 11. Contrastingly, when the restart reset signal HRST is input, i.e., the supply of the internal clock bck or cck is restarted in the state that the clock has been stopped, the address selection signal MS is set at “0”, and the other fixed value “0×0000—0000” indicating the top address of the address area of theRAM 6 is selected and held in thecommand address register 11. - When the program reset signal SRST or the start signal wup is input, the operation is the same as that in case of the restart reset signal HRST.
- In this manner, the request command address in fetching the first command of an initialization program when a reset signal is negated, is either of the top address “0×FF00—0000” of the ROM 9 and the top address “0×0000—0000” of the
RAM 6. Thus theselectors - In response to a reset signal given, a command fetch
control logic circuit 16 determines as to whether a command fetch request iaval should be issued or not, in accordance with the state of theprocessor 10 executing commands, the state of the control section of thecache unit 3, etc. The request command address ia held in thecommand address register 11 is never renewed unless a command fetch request iaval is asserted to thecache unit 3, and thecache unit 3 accepts the assertion. - FIG. 4 is a block diagram showing the construction of a portion of the
bus control section 4 including the area designation register 4 a. FIG. 4 also shows flows of addresses and data. Referring to FIG. 4, thebus control section 4 comprises a bus I/F 21, amemory control section 22, and an externalbus control section 23. The bus I/F 21 comprises a buscommand control section 24 including the above area designation register 4 a, aread data path 25, and awrite data path 26. - The
memory control section 22 comprises a memory-bus I/F (MBI) 27, a memory I/F (Ml) 28, and a memory-external bus I/F (MEI) 29. The externalbus control section 23 comprises an external bus-bus I/F (EBI) 30, an external bus-memory I/F (EMI) 31, and an external bus I/F 32. - The operation of the
bus control section 4 in fetching a command will be described below. When thebus control section 4 receives a command fetch request from thecache unit 3, the buscommand control section 24 compares the request address add attendant upon the command fetch request, with the top address ASR and the value of the area size AMR registered in the area designation register 4 a to judge as to whether or not the request address add is within the address area of theRAM 6. - When the comparison result indicates that the command fetch request is directed to the
RAM 6, the buscommand control section 24 issues a command fetch request to thememory control section 22. Thememory control section 22 having received the command fetch request through the memory-bus I/F 27, accesses theRAM 6 connected through the memory I/F 28, and reads out the command data corresponding to the request address add. The read-out command data is sent through the memory-bus I/F 27 and the readdata path 25 to thecache unit 3, and finally to thecommand executing section 2. - When the above comparison result indicates that the command fetch request is directed to the ROM9 connected to the external buses 7 and 8, the bus
command control section 24 issues a command fetch request to the externalbus control section 23. The externalbus control section 23 having received the command fetch request through the external bus-bus I/F 30, makes bus arbitration, and issues memory transaction onto the external buses 7 and 8, and waits for a response to it. - When command data read out from the ROM9 connected to the external buses 7 and 8, is output onto the external buses 7 and 8, the external
bus control section 23 takes the command data in through the external bus I/F 32. The thus taken-in command data is sent through the external bus-bus I/F 30 and the readdata path 25 to thecache unit 3, and finally to thecommand executing section 2. - FIG. 5 is a block diagram showing the construction of a portion of the bus
command control section 24 shown in FIG. 4 which performs address judgement. Referring to FIG. 5, the buscommand control section 24 comprises the above-described area designation register 4 a, twocomparators buffers NAND gate 44. - One
comparator 41 compares the request address add given by thecache unit 3, with the address areas of the registers in the memory map shown in FIG. 2. When the comparison result indicates that the request address add is within the address areas of the registers (when a signal match1 is asserted), the buscommand control section 24 issues a command fetch request to the corresponding one of the registers through thebuffer 43. - The
other comparator 42 compares the request address add given by thecache unit 3, with the address area of theRAM 6 defined by the combination of the top address ASR and the area size AMR in the area designation register 4 a. When the comparison result indicates that the request address add is within the address area of the RAM 6 (when a signal match2 is asserted), the buscommand control section 24 issues a command fetch request to theRAM 6 through thebuffer 45. - When the comparison results of the
comparators command control section 24 issues a command fetch request onto the external buses 7 and 8 through theNAND gate 44. - FIG. 6 is a block diagram showing the construction of a portion of the
bus control section 4 including thereset register 4 b. FIG. 6 also shows flows in data write to thereset register 4 b. Referring to FIG. 6, thereset register 4 b comprises five register components respectively corresponding to five bits PD, HD, SD, HS, and SS. - The PD, HD, and SD bits are for indicating reset causes just before. The PD bit indicates initial start reset when powered on, the HD bit indicates restart reset when restarting clock supply, and the SD bit indicates program restart reset when debugging or the like. These three bits correspond to an information holding section according to the present invention for holding information for distinguishing among the respective reset causes.
- The remaining HS and SS bits are for generating reset signals (HRST′ and SRST′) corresponding to the restart reset signal HRST and the program reset signal SRST, in the
bus control section 4 by the manner that a not-shown bus master writes data in the HS and SS bits, respectively. The register components corresponding to these two bits comprise a reset internally-generating section according to the present invention. The outputs of the HS and SS bits are supplied together with the restart reset signal HRST and the program reset signal SRST to ORgates -
Several logic gates 51 to 57 are properly disposed between the group of the bits PD, HD, and SD in thereset register 4 b, and the group of the initial start reset signal PRST, the restart reset signal HRST, and the program reset signal SRST, such that only one of the bits PD, HD, and SD is set at “1”. - More specifically, when the initial start reset signal PRST is asserted, the PD bit is set at “1”. When the external restart reset signal HRST is asserted, or the internal restart reset signal HRST′ is asserted by writing data in the HS bit, the HD bit is set at “1”. When the external program reset signal SRST is asserted, or the internal program reset signal SRST′ is asserted by writing data in the SS bit, the SD bit is set at “1”.
- The proper arrangement of the
logic gates 51 to 57 gives the priority of PRST>HRST>SRST to the above three reset operations. The reset causes just before are respectively kept in the PD, HD, and SD bits unless a new reset cause arises. - FIG. 7 is a block diagram showing the construction of the
clock control section 5 shown in FIG. 1. Theclock control section 5 generates two internal clocks bck and cck based on a clock CLOCK externally given, and supplies them in theprocessor 10. In this embodiment, thebus control section 4 and the other components are supplied with their internal clocks through separate lines bck and cck, as shown in FIG. 1. - Besides, in this embodiment, a clock supply in the
processor 10 can be temporarily stopped according to instructions from thecommand executing section 2. For example, in order to reduce the power consumption of the system, when an idle state of theprocessor 10 continues for a certain time, thecommand executing section 2 asserts a clock stop signal stop to theclock control section 5. - In this case, selectable is either of the first mode of stopping both the internal clocks bck and cck for the whole of the
processor 10 including thebus control section 4, and the second mode of stopping only the second internal clock cck for the components other than thebus control section 4 in theprocessor 10. In accordance with the selected mode, thecommand executing section 2 asserts a clock stop signal stopbc or stopc. - The clock stop signal stopbc for stopping the whole of the
processor 10 is supplied to two ORgates gate 61 is held in aC register 62, and then supplied to the negative logic terminal of an ANDgate 64. The ANDgate 64 performs AND operation between the clock stop signal stopbc and the external clock CLOCK supplied through its positive logic terminal, and outputs the internal clock cck in accordance with the operation result. - The clock stop signal stopbc having passed through the other OR
gate 65 is held in aB register 66, and then supplied to the negative logic terminal of an ANDgate 68. The ANDgate 68 performs AND operation between the clock stop signal stopbc and the external clock CLOCK supplied through its positive logic terminal, and outputs the internal clock bck in accordance with the operation result. - In this arrangement, when the clock stop signal stopbc is asserted, either of the AND
gates - Contrastingly, the clock stop signal stopc for stopping the components other than the
bus control section 4 in theprocessor 10, is supplied only to theOR gate 61. The clock stop signal stopc having passed through theOR gate 61 is held in theC register 62, and then supplied to the negative logic terminal of the ANDgate 64. The ANDgate 64 performs AND operation between the clock stop signal stopc and the external clock CLOCK supplied through its positive logic terminal, and outputs the internal clock cck in accordance with the operation result. - In this arrangement, when the clock stop signal stopc is asserted, the AND
gate 64 receives a signal “1” through its negative logic terminal. As a result, the internal clock cck is stopped. But, since the clock stop signal stopc is not supplied to theOR gate 65, the ANDgate 68 does not receive any signal “1” through its negative logic terminal even when the clock stop signal stopc is asserted. Thus the internal clock bck is not stopped. - The above OR
gates gates gate 63 receives the output of theC register 62 through its positive logic terminal, and the start signal wup through its negative logic terminal, and performs AND operation between them to supply the resultant signal to theOR gate 61. The ANDgate 67 receives the output of theB register 66 through its positive logic terminal, and the start signal wup through its negative logic terminal, and performs AND operation between them to supply the resultant signal to theOR gate 65. - The stored data of each of the C and B registers62 and 66 is renewed by asserting the initial start reset signal PRST, the restart reset signal HRST, or the internal restart reset signal HRST′ generated by an external bus master or the like writing data in the
reset register 4 b (HS bit shown in FIG. 6). - For example, in the state that only the
bus control section 4 is supplied with the internal clock bck, the supply of the internal clock cck to the components other than thebus control section 4 can be restarted by asserting the internal restart reset signal HRST′. In the state that the whole of theprocessor 10 is not supplied with the internal clocks bck and cck, the supplies of the internal clocks bck and cck can be restarted by asserting the initial start reset signal PRST or the restart reset signal HRST. - Next, sequences of start processing in case of solely using the
processor 10 according to this embodiment will be described. - A sequence of start processing with the initial start reset signal PRST when the system is powered on, will be described first.
- When the system is powered on, the initial start reset signal PRST is asserted to perform the hardware initialization. By this initialization, the values of all registers in the
processor 10 including the area designation register 4 a and thereset register 4 b in thebus control section 4, are initialized to, e.g., “0”. - After the initial start reset signal PRST is asserted for a time necessary and sufficient for the hardware initialization, and the power supply becomes stable, the initial start reset signal PRST is negated. When the initial start reset signal PRST is negated, initialization programs for the subsequent software initialization are read out from addresses designated by a reset vector.
- Since the
RAM 6 does not store the data of effective initialization programs immediately after the system is powered on, the value of the address selection signal MS is set at “1”. Thus the command fetchcontrol section 1 issues a command fetch request for the initial address “0×FF00—0000”. - In response to this, the
bus control section 4 judges as to whether or not the given request address add of “0×FF00—0000” is within the address area of theRAM 6 defined by the top address ASR and the area size AMR in the area designation register 4 a. In accordance with the judgement result, thebus control section 4 can access either of theRAM 6 and the ROM 9. At this time, however, since the address area of theRAM 6 has been initialized into “φ” and the given request address add is directed to the address area of the ROM 9, thebus control section 4 accesses the ROM 9 connected to the external buses 7 and 8. - The initialization program stored in the ROM9 is so made that its first sequence gives instructions to refer to the
reset register 4 b. Immediately after the system is powered on, theprocessor 10 recognizes that the PD bit in thereset register 4 b has been set at “1”, and theprocessor 10 executes a routine including processes which will become necessary when the initial start reset signal PRST is negated. - After the
processor 10 is started thus, address data necessary for accessing the RAM 6 (the top address ASR and the area size AMR) is set in the area designation register 4 a. In the example of FIG. 2, “0×0000—0000” and “0×01FF_FFFF” are respectively set as the top address ASR and the area size AMR, so that the address area of 32 megabytes is prepared in theRAM 6. After the necessary data is set in the area designation register 4 a, the value of the address selection signal MS is changed into “0”, and programs for restart operations are loaded in theRAM 6 from the ROM 9 or other devices connected to the external buses 7 and 8. - Next, a sequence of start processing with the restart reset signal HRST when the supplies of the internal clocks are restarted, will be described.
- As an example, here will be described the case that the supplies of the internal clocks bck and cck for the whole of the
processor 10 are stopped because a necessary process has not been performed for a certain time after-theprocessor 10 is started, and a sequence of restart processing for restarting theprocessor 10 is executed with the external restart reset signal HRST when theprocessor 10 is required to operate. - When the external restart reset signal HRST is asserted, the registers in the
clock control section 5 which cause the stop of the supplies of the internal clocks bck and cck (C and B registers 62 and 66 shown in FIG. 7) are reset, and thereby the supplies of the internal clocks bck and cck are restarted. The hardware initialization is then performed except processing in relation to information necessary for memory access (e.g., the top address ASR and the area size AMR in the area designation register 4 a). - In case of using an SDRAM as a local memory connected to the
processor 10, theprocessor 10 may comprise various registers for storing data necessary for memory access, other than the area designation register 4 a for storing the top address ASR and the area size AMR. Such registers may include a control register for setting the minimum cycle number of the operation of the DRAM which varies in accordance with the kind of DRAM; an access mode control register for setting an access mode to the DRAM; mode set registers for setting data to be written in the DRAM when the mode of the DRAM is set; configuration registers for setting data such as type, bus width, and connection manner, i.e., direct connection or connection using DIMM, of the DRAM; address number registers for setting the number of bits of RAS address, the number of bits of CAS address, and the number of bits of bank address of the DRAM; a status register for indicating a state of the controller of the DRAM; a refresh control register for setting auto refresh or self refresh of the DRAM; and a refresh timer register for setting a refresh interval in auto refresh. Any of these registers is initialized by the initial start reset signal PRST, but not initialized by the restart reset signal HRST or the program reset signal SRST. - When the restart reset signal HRST is negated after the above hardware initialization, command fetch is started from the address “0×0000—0000” selected by the address selection signal MS (=“0”). Since the top address ASR and the area size AMR in the area designation register 4 a are not initialized by assertion of the restart reset signal HRST, the command fetch requests of this time are issued to the
RAM 6. As a result, since access to the low-speed ROM 9 is not required, restart processing for theprocessor 10 can be performed rapidly. - In this restart operation, it is also possible to instruct the
processor 10 to issue command fetch requests to the ROM 9 by setting the address selection signal MS at “1”. In case that command fetch from the ROM 9 is executed when theprocessor 10 is restarted, in the first sequence of the initialization program stored in the ROM 9, thereset register 4 b is referred to, and it is recognized that the HD bit in thereset register 4 b has been set. This makes it possible to omit processing for newly setting data in the area designation register 4 a which was already set when the system was powered on. Accordingly, restart processing for theprocessor 10 can be performed more rapidly. - The same operation as the above is performed in the restart sequence in case of restarting the
processor 10 with the external restart reset signal HRST after stopping the supply of only the internal clock cck, or in case of restarting theprocessor 10 with the internally-generated restart reset signal HRST′after stopping the supplies of both the internal clocks bck and cck, or the supply of only the internal clock cck. - Next, a sequence of start processing with the program reset signal SRST will be described.
- When the external program reset signal SRST is asserted, the program which is being executed by the
command executing section 2, is forcibly interrupted, and the hardware initialization of the command fetchsection 1 is performed. - After this, when the program reset signal SRST is negated, command fetch is started from the address “0×0000—0000” selected by the address selection signal MS (=“0”). Since the top address ASR and the area size AMR in the area designation register 4 a are not initialized by assertion of the program reset signal SRST, the command fetch requests of this time are issued to the
RAM 6. As a result, since access to the low-speed ROM 9 is not required, restart processing for theprocessor 10 can be performed rapidly. - In this restart operation, it is also possible to instruct the
processor 10 to issue command fetch requests to the ROM 9 by setting the address selection signal MS at “1”. In case that command fetch from the ROM 9 is executed in this program reset operation, in the first sequence of the initialization program stored in the ROM 9, thereset register 4 b is referred to, and it is recognized that the SD bit in thereset register 4 b has been set. This makes it possible to perform processing for newly setting data only in the registers of the command fetchcontrol section 1, and omit the other processes unnecessary. Accordingly, restart processing for theprocessor 10 can be performed more rapidly. - As described above in detail, in the
processor 10 according to this embodiment, when the software initialization is performed, a starting operation based on the ROM 9 connected to the external buses 7 and 8, and a starting operation based on theRAM 6 connected as a local memory to theprocessor 10 can be selected in accordance with instructions with the address selection signal MS and one of the initial start reset signal PRST, the restart reset signal HRST, and the program reset signal SRST. - By this manner, in the state that the supplies of the internal clocks bck and cck or the supply of the internal clock cck is stopped after the system is powered on, the
processor 10 can be restarted by reading out an initialization program for restarting, from the high-speed RAM 6. Therefore, the restarting process can be performed rapidly. Besides, even in case of accessing the ROM 9 when restarting, by reading the value of thereset register 4 b, the initialization program stored in the ROM 9 can be branched so as selectively to execute only processing in accordance with the reset cause. As a result, even in a system in which clock supply in theprocessor 10 is frequently stopped and restarted for reducing power consumption, the vain time for waiting for the start of the system can be shortened considerably. - Besides, in case of a multiprocessor system in which the same processors as the
above processor 10 are connected to a common bus, when, e.g., a slave processor in which the supplies of its internal clocks bck and cck or the supply of one internal clock cck has been temporarily stopped, is to be restarted, the slave processor can read out an initialization program for restarting, from the high-speed RAM 6, and so the restarting process can be performed rapidly. Besides, since each slave processor never issues any command fetch request onto the external buses 7 and 8, there is no case that accesses from processors to the ROM 9 concur. Thus processing for bus arbitration becomes unnecessary. - Further, in such a multiprocessor system as described above, the top address of the memory storing the initialization program which each processor is to execute, is selected by the address selection signal MS. Therefore, means for judging as to which of the programs stored in the ROM9 each processor is to execute, becomes unnecessary. As a result, the system construction can be simplified.
- Next, a data processing system according to the second embodiment of the present invention will be described.
- FIG. 8 is a block diagram showing the construction of a multiprocessor system including a processor as a slave processor according to the second embodiment.
- Referring to FIG. 8, the system comprises a
master processor 71 and aslave processor 72. RAMs 73 and 74 are connected to the master andslave processors slave processors common memory 75, a DMAC (Direct Memory Access Controller) 76 for direct data transference between memories, and an ASIC (Application Specific Integrated Circuit) 77 for generating control signals for theslave processor 72. - The
master processor 71 always operates after the system is powered on. Any usual processor can be used as themaster processor 71. Contrastingly, after the system is powered on, theslave processor 72 can be stopped and restarted for the purpose of reducing power consumption, by stopping and restarting its internal clock supply. As theslave processor 72, used is a specific processor according to this embodiment. - FIG. 9 is a block diagram showing the construction of the
slave processor 72 according to this embodiment. - The
slave processor 72 according to this embodiment has almost the same construction as theprocessor 10 shown in FIG. 1. But, a command fetchcontrol section 81 and abus control section 84 of theslave processor 72 differ in construction from the corresponding ones in FIG. 1, respectively. Besides, to the command fetchcontrol section 81, a start inhibiting signal WAIT is input as well as a program reset signal SRST and an address selection signal MS. - FIG. 10 is a block diagram showing the construction of the command fetch
control section 81. Referring to FIG. 10, in the command fetchcontrol section 81 of this embodiment, aninverter 85 for inverting the logic of the start inhibiting signal WAIT, and an ANDgate 86 for performing AND operation between the output of theinverter 85 and the output of the command fetchcontrol logic circuit 16, are added to the construction of the command fetchcontrol section 1 shown in FIG. 3. - By this construction, even when the command fetch
control logic circuit 16 is in the state that it can issue a command fetch request iaval, as a result of judgement of conditions of command execution by theprocessor 72, conditions of the cache control section, etc., the command fetch request iaval is not issued to thecache unit 3 unless an external start inhibiting signal WAIT is negated. Theinverter 85 and the ANDgate 86 comprise a start inhibiting section according to the present invention. - The
bus control section 84 has almost the same construction as thebus control section 4 shown in FIG. 4. But, when a transaction generated on the external buses 7 and 8 in accordance with a defined protocol, is a request from another device to the externalbus control section 23 of this embodiment, the externalbus control section 23 takes the command in and starts the corresponding process. - More specifically, the external
bus control section 23 always monitors transactions generated on the external buses 7 and 8. When there is an effective transaction, the externalbus control section 23 takes the address data in and compares it with the address data which has been assigned to the components in the processor. When the comparison result indicates that the transaction is a request to a component in the processor, the externalbus control section 23 takes in the command of the transaction and starts to access the component designated by the address data. - FIG. 11 is a block diagram showing the construction of the external
bus control section 23. Referring to FIG. 11, the externalbus control section 23 of this embodiment comprises a four-stagecache command buffer 91 for holding commands and write data from thecache unit 3, aresponse data buffer 92 for sending out response data received from the external buses 7 and 8, to thecache unit 3, a four-stagebus command buffer 93 for holding commands and write data from the external buses 7 and 8, and aread data buffer 94 for receiving read-out data from theRAM 74 as a local memory. - The external
bus control section 23 further comprises aselector 95 for selecting one of the data units stored in the four-stagecache command buffer 91, aselector 96 for selecting one of the data units stored in the four-stagecache command buffer 93, acommand arbitrating section 97 for arbitrating on the address bus 7, acommand arbitrating section 98 for arbitrating on the data bus 8, and registers 99 developed on a memory map. - The
registers 99 correspond to the area designation register 4 a and thereset register 4 b shown in FIG. 9. More specifically, theregisters 99 are to hold data of the top address ASR and the area size AMR of theRAM 74, reset cause specifying data PD, HD, and SD, and internal reset write data HS and SS. Theregisters 99 can be accessed by either of a command from thecache unit 3 and a command from the external buses 7 and 8. - In the first embodiment described before, the area designation register4 a for storing the top address ASR and the area size AMR is provided in the bus I/F 21 (see FIG. 4). Contrastingly in this second embodiment, the
registers 99 for storing the corresponding data are provided in the externalbus control section 23. In this second embodiment, the bus I/F 21 receives the data set in theregisters 99, from the externalbus control section 23. - Next, sequences of start processing in the multiprocessor system in which the
processor 72 according to this embodiment is used as a slave processor, will be described. - A sequence of start processing with the initial start reset signal PRST when the system is powered on, will be described first.
- When the system is powered on, the initial start reset signal PRST is asserted to the
master processor 71, and the initial start reset signal PRST and the start inhibiting signal WAIT are asserted to theslave processor 72. When the initial start reset signal PRST is asserted, hardware initialization is performed in either of the master andslave processors processors - After the hardware initialization is completed and the power supply becomes stable, the initial start reset signal PRST is negated. When the initial start reset signal PRST is negated, the
master processor 71 reads out initialization programs for the subsequent software initialization from the ROM 9 connected to the external buses 7 and 8, in accordance with addresses designated by a reset vector. At this time, since the start inhibiting signal WAIT is kept asserted, theslave processor 72 issues no command fetch request iaval and reads out no initialization program. - When the software initialization is completed in the
master processor 71, themaster processor 71 sets the data in the slave processor 72 (such as the data of the top address ASR and the area size AMR) at proper values through the external buses 7 and 8. More specifically, themaster processor 71 writes data in theregisters 99 through adata arbitrating section 98 shown in FIG. 11, to set a proper address area of theRAM 74 connected to theslave processor 71. Themaster processor 71 then starts theDMAC 76 to transfer the initialization programs which will be required by theslave processor 72, from, e.g., the ROM 9 to theRAM 74. - At this time, the external
bus control section 23 provided in theslave processor 72 shown in FIG. 11, judges as to whether or not the address given through the address bus 7 by theDMAC 76 for data direct transference between memories, is within the address area of theRAM 74 defined by the combination of the top address ASR and the area size AMR set in theregisters 99. - In this case, since the data of the top address ASR and the area size AMR in the
registers 99 has been set to define the address area of theRAM 74, the externalbus control section 23 transfers the data of each initialization program sent from the ROM 9 via the data bus 8, to thememory control section 22. Each initialization program is then stored in the corresponding address area of theRAM 74. - In this embodiment, since the data of the top address ASR and the area size AMR is held not in the bus I/
F 21 but in the externalbus control section 23, transference of initialization programs can be performed only by thememory control section 22 and the externalbus control section 23 without using the bus I/F 21. Besides, since theDMAC 76 can perform transference processing independently of themaster processor 71, transference processing for necessary software to theRAM 74 for theslave processor 72, can be performed without using the processing part of themaster processor 71. - The
DMAC 76 informs themaster processor 71 of completion of transference processing, by an interception signal. After this, themaster processor 71 which had received the interception signal, accesses theASIC 77 when necessary, to negate the start inhibiting signal WAIT. In response to the negation of the start inhibiting signal WAIT, the command fetchcontrol section 81 of theslave processor 72 issues a command fetch request iaval from the initial address “0×0000—0000” selected in accordance with the address selection signal MS to which “0” has been set, to thebus control section 84 through thecache unit 3. - The bus
command control section 24 in thebus control section 84 compares a request address add attendant upon the command fetch request iaval, with the values of the top address ASR and the area size AMR received from theregisters 99 in the externalbus control section 23. In accordance with the comparison result, the buscommand control section 24 judges as to whether or not the request address add is within the address area of theRAM 74. - At this time, since the data of the top address ASR and the area size AMR has been set to define the address area of the
RAM 74, the buscommand control section 24 judges that the command fetch request iaval is directed to theRAM 74, and the buscommand control section 24 issues a command fetch request to thememory control section 22. Thememory control section 22 having received the command fetch request, accesses theRAM 74 connected through the memory I/F 28, to read out the command data corresponding to the request address add. The read-out command data is supplied to thecommand executing section 2, and executed. - After this, if a necessary process is not performed in the
slave processor 72 for a certain time, in response to this, thecommand executing section 2 of theslave processor 72 gives the clock control section 5 a clock stop signal stopc. The supply of the internal clock cck which has been supplied to the components other than thebus control section 84 in theslave processor 72, is thereby stopped. - When necessary, the
master processor 71 makes theslave processor 72 start the supply of the internal clock cck, by writing data in the HS bit of theregisters 99 of theslave processor 72. The hardware and software initializations are thereby performed in theslave processor 72. In this case, the sequence of start processing for initialization programs necessary for the software initialization is the same as that described in the first embodiment. Executed is a high-speed restart operation from theRAM 74. - As described above, according to this second embodiment, in the sequence of start processing with the initial start reset signal PRST when the system is powered on, initialization programs are transferred to the
RAM 74 while theslave processor 72 is inhibited from issuing any command fetch request iaval, by the assertion of the start inhibiting signal WAIT. After this, the start inhibiting signal WAIT is negated so that theslave processor 72 can issue command fetch requests iaval to theRAM 74. - Therefore, in the sequence of start processing when the system is powered on, the
slave processor 72 may not access the ROM 9 through the common buses. Theslave processor 72 can be started by reading out the initialization programs from the high-speed RAM 74. Besides, there is no case that processors connected to a common bus start to access the ROM 9 at once. Thus arbitration on the common bus becomes unnecessary, and so start processing can be performed rapidly. - Besides, the initialization programs which the
slave processor 72 is to execute, are stored in theRAM 74. In initialization of theslave processors 72, the initialization programs can be read out in order from the top address of theRAM 74 selected by the address selection signal MS. Therefore, means for judging as to which of the programs each processor is to execute, becomes unnecessary. As a result, the system construction can be simplified. - The above-described embodiments are only for illustrating the present invention. The technical scope of the present invention should not limitedly be interpreted by the embodiments. The present invention can be embodied in various forms without departing from its spirit and features.
- For example, in the above-described embodiments, the start address of the initialization program is selected on the basis of the address selection signal MS which is externally given. But, the selection of the start address may be performed internally. In this case, a command fetch control section can be constructed as shown in FIG. 12. In this example, the selection of a restart address is performed in accordance with the value set in a register in the LSI. In FIG. 12, the same components as those in FIG. 10 are denoted by the same references as those in FIG. 10, respectively.
- In the command fetch
control section 101 shown in FIG. 12, several logic gates 102 to 105 and aregister 106 are added to the command fetchcontrol section 81 shown in FIG. 10. An AND gate 102 performs AND operation between the address selection signal MS and the initial start reset signal PRST, and outputs the resultant signal to anOR gate 105. An ANDgate 103 performs AND operation among a signal btdir, a signal set_btdir, and the logically inverted signal of the initial start reset signal PRST, and outputs the resultant signal to theOR gate 105. An ANDgate 104 performs AND operation among the logically inverted signal of the signal set_btdir, the logically inverted signal of the initial start reset signal PRST, and the output signal of theregister 106, and outputs the resultant signal to theOR gate 105. - The OR
gate 105 performs OR operation among the outputs of the AND gates 102 to 104, and outputs the resultant signal to theregister 106. By this arrangement, when the initial start reset signal PRST is asserted, theregister 106 takes in the value of the address selection signal MS from an external terminal. When the initial start reset signal PRST is negated and the signal set_btdir is asserted, theregister 106 takes the signal btdir in. In the other cases, theregister 106 keeps its stored value. In this example, either of the signals btdir and set_btdir is asserted by thecommand executing section 2 executing a write command to theregister 106. - The
selector 15 selects either address of “0×0000—0000” and “0×FF00—0000” in accordance with the value held by theregister 106. For example, when theregister 106 holds the value “1”, theselector 15 selects the address “0×FF00—0000”. When theregister 106 holds the value “0”, theselector 15 selects the address “0×0000—0000”. - In this construction, when the system is powered on, the initial start reset signal PRST is asserted, and the value of the address selection signal MS is taken in from the external terminal, to select a start address of an initialization program. Besides, by setting the value of the
register 106 at “0” by thecommand executing section 2 executing a write command to theregister 106 before stopping clock supply, when restarting with the restart reset signal HRST after stopping clock supply, by referring to the value “0” in theregister 106, “0×0000—0000” (the top address of the RAM) can be selected as the start address of an initialization program. - In this example, shown is a combination of the external terminal of the address selection signal MS and register setting. But, a construction only by register setting can also be made. Besides, by providing the
register 106 in another unit and developing theregister 106 on a memory map, the master processor can write data in theregister 106 when the slave processor is started. This makes it possible to control the selection of the start address of the initialization program by the master processor.
Claims (25)
1. A data processing system performing a software initialization using an initialization program after performing an initialization in response to a reset signal, the system comprising:
an address selecting section selecting a start address of the initialization program stored in a memory based on an address selection signal; and
an area design register to designate an address area of the memory.
2. The data processing system according to claim 1 , wherein the initialization is a hardware initialization.
3. A data processing system performing software initialization using an initialization program after an initialization in response to a reset signal, the system comprising:
an access inhibiting section inhibiting any access request to a memory storing the initialization program based on a start inhibit signal, wherein the initialization program is transferred from an external memory to the memory while the start inhibiting signal is applied.
4. A data processing system comprising data processors connected to a common bus, each of the processors performing software initialization using an initialization program after performing initialization in response to a reset signal, and at least one of the processors comprising:
an address inhibiting section inhibiting any access requests to an external memory storing the initialization program, based on a start inhibiting signal,
wherein the initialization program is transferred from the external memory to a local memory while the access inhibiting section inhibits any access requests to the local memory.
5. A data processing system performing software initialization using an initialization program after performing initialization in response to a reset signal, the system comprising:
a data transferring control section transferring the initialization program from an external memory to a local memory of another processor while the processor is inhibited to access requests to the local memory.
6. A data processing system comprising data processors connected to a common bus, each of the processors performing software initialization using an initialization program after performing initialization in response to a reset signal, and at least one of the processors comprising:
a data transferring control section transferring the initialization program from an external memory to a local memory of one other processor while the other processor is inhibited to access requests to the local memory.
7. A data processing system performing a second initialization using an initialization program after a first initialization, the system comprising:
a reset register storing a reset signal,
wherein the initialization program executes processing selectively based on the reset signal.
8. The data processing system according to claim 7 , wherein a memory storing a start address of the initialization program stored is selected based on the reset signal.
9. The data processing system according to claim 8 , wherein the memory is a local memory or an external memory.
10. The data processing system according to claim 7 , wherein the initial reset signal is one of a plurality of reset signals.
11. A data processing system performing software initialization using an initialization program in response to a reset signal, the system comprising:
an address designation section to designate an address area of a memory that stores a start address of the initialization program based on the reset signal.
12. The data processing system according to claim 11 , wherein the initial reset signal is one of a plurality of reset signals.
13. The data processing system according to claim 11 , further comprising:
a reset register storing the reset signal.
14. A data processing method performing software initialization using an initialization program in response to a reset signal, the method comprising:
receiving the reset signal; and
executing processing selectively based on the reset signal.
15. The data processing method according to claim 14 , wherein a memory storing a start address of the initialization program stored is selected based on the reset signal.
16. The data processing method according to claim 15 , wherein the memory is a local memory or an external memory.
17. The data processing method according to claim 14 , wherein the initial reset signal is one of a plurality of reset signals.
18. A data processing method performing software initialization using an initialization program in response to a reset signal, the method comprising:
receiving the reset signal; and
designating an address area of a memory that stores a start address of the initialization program based on the reset signal.
19. A data processing method performing software initialization using an initialization program after performing initialization in response to a reset signal, the method comprising:
performing the initialization;
setting the reset signal in a reset register;
checking the reset signal in the reset register; and
performing the software initialization selectively based on the reset signal.
20. The data processing method according to claim 19 , wherein the software initialization program starts to execute at a start address stored in one of a local memory and an external memory.
21. The data processing method according to claim 20 , wherein the local memory is a high-speed memory and the external memory is a low-speed memory.
22. A data processing method performing software initialization using an initialization program in response to a reset signal, the method comprising:
storing a reset signal to a reset register;
selecting an address of the initialization program in a memory;
reading the reset signal in the reset register;
branching the initialization program to execute the initialization program selectively.
23. The data processing method according to claim 22 , wherein the memory is one of a local memory and an external memory.
24. An initialization method initializing a processor in response to a reset signal, the method comprising:
performing a first initialization for the processor;
releasing the processor from the first initialization;
designating an address of a second initialization in a memory based on the reset signal; and
performing the second initialization.
25. The initialization method according to claim 24 , further comprising:
setting the reset signal in a reset register; and
checking the reset signal in the reset register for the second initialization.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/820,019 US20040193869A1 (en) | 2000-01-14 | 2004-04-08 | Data processing system for performing software intialization |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000006823A JP4144990B2 (en) | 2000-01-14 | 2000-01-14 | Data processing system and initialization method |
JP2000-006823 | 2000-01-14 | ||
US09/666,593 US6748527B1 (en) | 2000-01-14 | 2000-09-20 | Data processing system for performing software initialization |
US10/820,019 US20040193869A1 (en) | 2000-01-14 | 2004-04-08 | Data processing system for performing software intialization |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/666,593 Continuation US6748527B1 (en) | 2000-01-14 | 2000-09-20 | Data processing system for performing software initialization |
Publications (1)
Publication Number | Publication Date |
---|---|
US20040193869A1 true US20040193869A1 (en) | 2004-09-30 |
Family
ID=18535297
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/666,593 Expired - Lifetime US6748527B1 (en) | 2000-01-14 | 2000-09-20 | Data processing system for performing software initialization |
US10/820,019 Abandoned US20040193869A1 (en) | 2000-01-14 | 2004-04-08 | Data processing system for performing software intialization |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/666,593 Expired - Lifetime US6748527B1 (en) | 2000-01-14 | 2000-09-20 | Data processing system for performing software initialization |
Country Status (2)
Country | Link |
---|---|
US (2) | US6748527B1 (en) |
JP (1) | JP4144990B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050190728A1 (en) * | 2004-02-14 | 2005-09-01 | Samsung Electronics Co., Ltd. | Apparatus and method for transmitting control information in a mobile communication system |
US20080126775A1 (en) * | 2006-11-27 | 2008-05-29 | Canon Kabushiki Kaisha | Electronic apparatus incorporating a plurality of microprocessor units |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4144990B2 (en) * | 2000-01-14 | 2008-09-03 | 富士通株式会社 | Data processing system and initialization method |
US7373491B2 (en) * | 2002-02-27 | 2008-05-13 | Rockwell Automation Technologies, Inc. | Processor with versatile external memory interface |
US6941435B2 (en) * | 2003-01-21 | 2005-09-06 | International Business Machines Corporation | Integrated circuit having register configuration sets |
US7149890B2 (en) * | 2003-11-21 | 2006-12-12 | Intel Corporation | Initializing system memory |
US8176302B2 (en) * | 2005-10-25 | 2012-05-08 | Nxp B.V. | Data processing arrangement comprising a reset facility |
US7624225B2 (en) * | 2007-03-22 | 2009-11-24 | International Business Machines Corporation | System and method for providing synchronous dynamic random access memory (SDRAM) mode register shadowing in a memory system |
KR20140100008A (en) * | 2013-02-05 | 2014-08-14 | 삼성전자주식회사 | Method of operating a volatile memory device and method of testing a volatile memory device |
JP2015191606A (en) * | 2014-03-28 | 2015-11-02 | 富士通株式会社 | Information processing apparatus, information processing apparatus control method, and information processing apparatus control program |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5018062A (en) * | 1987-10-23 | 1991-05-21 | A.I. Architects, Inc. | Method and apparatus for overriding a ROM routine in response to a reset |
US5361365A (en) * | 1989-11-06 | 1994-11-01 | Sharp Kabushiki Kaisha | Microprocessor for selectively performing cold and warm starts |
US5448716A (en) * | 1992-10-30 | 1995-09-05 | International Business Machines Corporation | Apparatus and method for booting a multiple processor system having a global/local memory architecture |
US5642506A (en) * | 1994-12-14 | 1997-06-24 | International Business Machines Corporation | Method and apparatus for initializing a multiprocessor system |
US5802003A (en) * | 1995-12-20 | 1998-09-01 | International Business Machines Corporation | System for implementing write, initialization, and reset in a memory array using a single cell write port |
US5893923A (en) * | 1997-05-12 | 1999-04-13 | Lexmark International, Inc. | Microcontroller utilizing a circuit to select during reset process an internal or external memory as base memory |
US5949997A (en) * | 1997-01-03 | 1999-09-07 | Ncr Corporation | Method and apparatus for programming a microprocessor using an address decode circuit |
US6058474A (en) * | 1997-01-24 | 2000-05-02 | Texas Instruments Incorporated | Method and apparatus for DMA boot loading a microprocessor without an internal ROM |
US6192469B1 (en) * | 1996-09-17 | 2001-02-20 | Standard Microsystems Corporation | Relocatable code storage in an integrated circuit with an embedded microprocessor |
US6401197B1 (en) * | 1996-10-31 | 2002-06-04 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor and multiprocessor system |
US6473853B1 (en) * | 1999-06-21 | 2002-10-29 | Intel Corporation | Method and apparatus for initializing a computer system that includes disabling the masking of a maskable address line |
US20020160109A1 (en) * | 2000-12-13 | 2002-10-31 | Yoon Yeo | Microencapsulation of drugs by solvent exchange |
US20030031784A1 (en) * | 2000-01-07 | 2003-02-13 | Michel Perrut | Method for collecting and encapsulating fine particles |
US6748527B1 (en) * | 2000-01-14 | 2004-06-08 | Fujitsu Limited | Data processing system for performing software initialization |
-
2000
- 2000-01-14 JP JP2000006823A patent/JP4144990B2/en not_active Expired - Lifetime
- 2000-09-20 US US09/666,593 patent/US6748527B1/en not_active Expired - Lifetime
-
2004
- 2004-04-08 US US10/820,019 patent/US20040193869A1/en not_active Abandoned
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5018062A (en) * | 1987-10-23 | 1991-05-21 | A.I. Architects, Inc. | Method and apparatus for overriding a ROM routine in response to a reset |
US5361365A (en) * | 1989-11-06 | 1994-11-01 | Sharp Kabushiki Kaisha | Microprocessor for selectively performing cold and warm starts |
US5448716A (en) * | 1992-10-30 | 1995-09-05 | International Business Machines Corporation | Apparatus and method for booting a multiple processor system having a global/local memory architecture |
US5642506A (en) * | 1994-12-14 | 1997-06-24 | International Business Machines Corporation | Method and apparatus for initializing a multiprocessor system |
US5802003A (en) * | 1995-12-20 | 1998-09-01 | International Business Machines Corporation | System for implementing write, initialization, and reset in a memory array using a single cell write port |
US6192469B1 (en) * | 1996-09-17 | 2001-02-20 | Standard Microsystems Corporation | Relocatable code storage in an integrated circuit with an embedded microprocessor |
US6401197B1 (en) * | 1996-10-31 | 2002-06-04 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor and multiprocessor system |
US5949997A (en) * | 1997-01-03 | 1999-09-07 | Ncr Corporation | Method and apparatus for programming a microprocessor using an address decode circuit |
US6058474A (en) * | 1997-01-24 | 2000-05-02 | Texas Instruments Incorporated | Method and apparatus for DMA boot loading a microprocessor without an internal ROM |
US5893923A (en) * | 1997-05-12 | 1999-04-13 | Lexmark International, Inc. | Microcontroller utilizing a circuit to select during reset process an internal or external memory as base memory |
US6473853B1 (en) * | 1999-06-21 | 2002-10-29 | Intel Corporation | Method and apparatus for initializing a computer system that includes disabling the masking of a maskable address line |
US20030031784A1 (en) * | 2000-01-07 | 2003-02-13 | Michel Perrut | Method for collecting and encapsulating fine particles |
US6748527B1 (en) * | 2000-01-14 | 2004-06-08 | Fujitsu Limited | Data processing system for performing software initialization |
US20020160109A1 (en) * | 2000-12-13 | 2002-10-31 | Yoon Yeo | Microencapsulation of drugs by solvent exchange |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050190728A1 (en) * | 2004-02-14 | 2005-09-01 | Samsung Electronics Co., Ltd. | Apparatus and method for transmitting control information in a mobile communication system |
US7733917B2 (en) * | 2004-02-14 | 2010-06-08 | Samsung Electronics Co., Ltd. | Apparatus and method for transmitting control information in a mobile communication system |
US20080126775A1 (en) * | 2006-11-27 | 2008-05-29 | Canon Kabushiki Kaisha | Electronic apparatus incorporating a plurality of microprocessor units |
US7987350B2 (en) * | 2006-11-27 | 2011-07-26 | Canon Kabushiki Kaisha | Electronic apparatus incorporating a plurality of microprocessor units for use in initializing data |
Also Published As
Publication number | Publication date |
---|---|
JP2001195242A (en) | 2001-07-19 |
US6748527B1 (en) | 2004-06-08 |
JP4144990B2 (en) | 2008-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6321296B1 (en) | SDRAM L3 cache using speculative loads with command aborts to lower latency | |
US6122712A (en) | Cache coherency controller of cache memory for maintaining data anti-dependence when threads are executed in parallel | |
US6895475B2 (en) | Prefetch buffer method and apparatus | |
US6735661B2 (en) | Integrated circuit with flash memory including dedicated flash bus and flash bridge | |
JPH07319767A (en) | Computer system | |
JPH0272453A (en) | Multiprocessor computer system having shared memory and private cash memory | |
JPH10207771A (en) | Method for shortening memory operation | |
CN107257964B (en) | DRAM circuit, computer system and method for accessing DRAM circuit | |
US6748527B1 (en) | Data processing system for performing software initialization | |
JPH10187642A (en) | Microprocessor and multiprocessor system | |
US5615167A (en) | Method for increasing system bandwidth through an on-chip address lock register | |
EP1030243B1 (en) | Optimized hardware cleaning function for virtual index virtual tag data cache | |
JPH06318178A (en) | Cache tag controller for cache tag memory and control method therefor | |
KR19990063248A (en) | Cache memory system and method of access to cache memory to ensure normal operation for concurrent access to cache memory | |
US20080016296A1 (en) | Data processing system | |
JPH11134077A (en) | Processor and system for data processing | |
US5699553A (en) | Memory accessing device for a pipeline information processing system | |
KR100246864B1 (en) | A cache flush mechanism for a secondary cache memory | |
US20200097294A1 (en) | Method for managing the supply of information, such as instructions, to a microprocessor, and a corresponding system | |
JP2001034533A (en) | Cache coherency controller, secondary cache memory, central processor, multiprocessing system, processor node, and cache coherency control method | |
US7877533B2 (en) | Bus system, bus slave and bus control method | |
JP2005293609A (en) | Initialization method | |
JPH07129456A (en) | Computer system | |
JPH11184752A (en) | Data processor and system therefor | |
EP0318702A2 (en) | Data processor with direct data transfer between coprocessor and memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |