WO2023127516A1 - 置換装置、情報処理方法および情報処理装置 - Google Patents

置換装置、情報処理方法および情報処理装置 Download PDF

Info

Publication number
WO2023127516A1
WO2023127516A1 PCT/JP2022/046150 JP2022046150W WO2023127516A1 WO 2023127516 A1 WO2023127516 A1 WO 2023127516A1 JP 2022046150 W JP2022046150 W JP 2022046150W WO 2023127516 A1 WO2023127516 A1 WO 2023127516A1
Authority
WO
WIPO (PCT)
Prior art keywords
instruction
processor
nonvolatile memory
data
identification information
Prior art date
Application number
PCT/JP2022/046150
Other languages
English (en)
French (fr)
Inventor
紘司 清田
Original Assignee
ソニーグループ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Publication of WO2023127516A1 publication Critical patent/WO2023127516A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Definitions

  • the present disclosure relates to a replacement device, an information processing method, and an information processing device.
  • the contents of the nonvolatile memory are written after the device is mounted on the substrate.
  • a NAND flash memory which is an example of a nonvolatile memory
  • write mode special operation mode
  • Patent Document 1 discloses a method using an external terminal and a method using a boot mode as a method of transitioning to a write mode for writing to a nonvolatile memory after mounting on a board. Moreover, in Patent Document 1, a program for realizing these methods is stored in a non-volatile memory.
  • non-volatile memory which loses its stored contents at high temperatures, loses its stored contents due to the heat of the soldering process when it is mounted on the board. Therefore, it is not preferable to apply such a non-volatile memory as a memory in which a program for transitioning to the write mode is written in advance, as described in Patent Document 1.
  • the cost may increase from the viewpoint of package size, substrate mounting area, and the like.
  • the present disclosure provides a replacement device, an information processing method, and an information processing device capable of realizing, at a lower cost, the transition to the first write mode for writing to the nonvolatile memory after board mounting for the first time.
  • a replacement device includes a first determination unit that determines whether or not a nonvolatile memory used as a boot device by the processor has been accessed by the processor to fetch an instruction to a predetermined address of the nonvolatile memory; , when the first determining unit determines that the instruction fetch access to the predetermined address is performed, the data acquired from the nonvolatile memory by the instruction fetch access is stored in the nonvolatile memory after the program data has already been written.
  • FIG. 1 is a block diagram schematically showing a configuration of an example of an information processing device provided with a replacement device according to the present disclosure
  • FIG. 1 is a schematic diagram showing an example configuration of a nonvolatile memory applicable to an embodiment
  • FIG. It is a block diagram which shows the structure of an example of the replacement process part which concerns on embodiment.
  • 9 is an example flowchart for explaining processing in a replacement processing unit according to the embodiment
  • FIG. 5 is a schematic diagram showing a description example in Verilog-HDL when the replacement processing unit according to the embodiment is mounted on the AHB bus
  • 6 is an example flowchart illustrating a write process to a non-volatile memory, according to an embodiment
  • FIG. 4 is a block diagram schematically showing the configuration of an example of an information processing device according to a first modified example of the embodiment
  • FIG. 11 is a block diagram schematically showing the configuration of an example of an information processing device according to a second modified example of the embodiment
  • FIG. 12 is a block diagram schematically showing an example configuration of an information processing apparatus according to a third modified example of the embodiment
  • FIG. 12 is a block diagram schematically showing the configuration of an example of an information processing device according to a fourth modified example of the embodiment
  • FIG. 11 is a schematic diagram showing an example configuration of a nonvolatile memory applicable to a fourth modified example of the embodiment
  • FIG. 12 is a block diagram showing an example configuration of each replacement processing unit according to a fourth modified example of the embodiment;
  • Embodiment 2-1 Configuration Applicable to Embodiment 2-2. Write processing according to the embodiment 3. Modification of Embodiment 3-1. First Modification of Embodiment 3-2. Second Modification of Embodiment 3-3. Third modification of embodiment 3-4. Fourth modification of the embodiment
  • non-volatile memory As a boot device, after the device is mounted on a board, data, such as program data of a boot program for booting the processor, is written into the non-volatile memory. is being done.
  • NAND type flash memory and NOR type flash memory are known as examples of nonvolatile memories used for such applications.
  • NAND-type flash memory has a low unit price per bit and a large capacity, but loses its memory contents at high temperatures.
  • Such a non-volatile memory that loses its stored contents at high temperatures loses its stored contents due to the heat generated in the soldering process when it is mounted on a printed circuit board or the like. Therefore, for example, data must be written after mounting on the board.
  • NOR flash memory does not lose its stored contents at high temperatures, but its unit price per bit is higher and its capacity is smaller than that of NAND flash memory.
  • Such a non-volatile memory that does not lose its stored contents even at high temperatures can be mounted on a board after writing data, but depending on the system application, it is desirable to write data after mounting on the board. I have a request.
  • Patent Document 1 discloses a method using an external terminal and a method using a boot mode as a method of transitioning to a write mode for writing to a nonvolatile memory after mounting on a board. Moreover, in Patent Document 1, a program for realizing these methods is stored in a non-volatile memory.
  • NAND type flash memory which loses its storage contents at high temperatures, can be used as a non-volatile memory with a low unit price per bit and a large capacity for the system. It is desirable to be able to use only non-volatile memory.
  • a non-volatile memory that loses its memory contents at high temperatures such as a NAND flash memory, loses its memory contents due to the heat of the soldering process when it is mounted on a board, as described above. Therefore, it is not preferable to apply such a non-volatile memory as a memory in which a program for transitioning to the write mode is written in advance, for example, as described in Patent Document 1.
  • the replacement device when the access to the nonvolatile memory of the processor is the access to the predetermined address where the processor first fetches the instruction after the reset is released, the value fetched from the address is stored in advance. It is determined whether or not it matches the set identification information. If the replacement device determines that the fetched value matches the identification information, the replacement device replaces the fetched value from the non-volatile memory with an instruction to change the program counter in the processor and passes it to the processor. On the other hand, if it is determined that the fetched value does not match the identification information, the value fetched from the non-volatile memory is replaced with an instruction that does not change the program counter and is passed to the processor.
  • the replacement device configured in this way, the process of reading the identification information from the nonvolatile memory can be executed by the instruction fetch operation by the processor. Therefore, there is no need to have a separate configuration for reading the identification information, and only when the identification information is stored in the nonvolatile memory, the program based on the program data stored in the nonvolatile memory is executed. and can be booted.
  • FIG. 1 is a block diagram schematically showing the configuration of an example of an information processing device provided with a replacement device according to the present disclosure.
  • FIG. 1 portions closely related to the embodiment of the information processing apparatus are extracted and shown, and portions less related to the embodiment are omitted as appropriate.
  • the information processing device 1 includes a processor 10, a replacement processing unit 20, and a nonvolatile memory 30.
  • the processor 10 is connected to the replacement processing section 20 via the bus 40 and can access the non-volatile memory 30 via the replacement processing section 20 .
  • the non-volatile memory 30 can apply, for example, a NAND type flash memory or a NOR type flash memory.
  • each unit processor 10, replacement processing unit 20, nonvolatile memory 30, and bus 40
  • processor 10 replacement processing unit 20
  • nonvolatile memory 30, and bus 40 the directions of arrows connecting each unit (processor 10, replacement processing unit 20, nonvolatile memory 30, and bus 40) indicate the relationship between initiators and targets in access.
  • each part (processor 10, replacement processing part 20, nonvolatile memory 30 and bus 40) of information processing apparatus 1 is not particularly limited, but for example, each part may be mounted on one substrate or in one package. Implemented.
  • the use of the information processing device 1 is not particularly limited, but for example, it can be applied to systems such as communication, control, and sensing in IoT (Internet of Things).
  • IoT Internet of Things
  • FIG. 2 is a schematic diagram showing an example configuration of the nonvolatile memory 30 applicable to the embodiment. Note that FIG. 2 shows an example of a state in which each data is written in the nonvolatile memory 30 .
  • identification information 300 is placed at a predetermined address ADD RV .
  • Program data 310 of a program executed by the processor 10 at boot time is stored at an address ADD prg different from the address ADD RV .
  • the identification information 300 placed at the address ADD RV is a special word for identifying whether the non-volatile memory 30 has been written.
  • the identification information 300 for example, if there is a value that the nonvolatile memory 30 can easily take as an initial value, a value that avoids that value is set. If the initial value of the nonvolatile memory 30 is randomly determined, it is conceivable that the identification information 300 also uses a randomly determined value. Further, it is preferable that the identification information 300 is information of the number of bits (16 bits, 32 bits, etc.) corresponding to the bus width of the bus 40, for example.
  • the address ADD RV is an address at which the processor 10 booted from the nonvolatile memory 30 first fetches an instruction after the reset is released, and is also called a reset vector.
  • the address ADD RV will be referred to as a reset vector as appropriate.
  • the address ADD prg where the program data 310 is placed is determined by the content of the first instruction that changes the program counter of the processor 10, which will be described later. For example, if the first instruction is a NOP (No Operation) instruction or a jump instruction to the address immediately after the reset vector, the program data 310 can be placed at the address immediately after the reset vector. When the first instruction is a jump instruction to a specific address, program data 310 can be placed at the jump destination address of the jump instruction.
  • NOP No Operation
  • FIG. 3 is a block diagram showing an example configuration of the replacement processing unit 20 according to the embodiment.
  • the replacement processing unit 20 includes an access determination unit 200, a code determination unit 201, a first selector 210, and a second selector 211.
  • the right side of the drawing is the nonvolatile memory 30 side
  • the left side of the drawing is the processor 10 side.
  • the access determination unit 200 acquires address information issued to the nonvolatile memory 30 when the processor 10 accesses the nonvolatile memory 30 .
  • the access determination unit 200 also acquires various information such as commands and statuses transmitted and received between the processor 10 and the nonvolatile memory 30 as control signals.
  • the access determination unit 200 controls the first selector 210 based on the acquired address information and various information.
  • the access determination unit 200 determines whether or not the nonvolatile memory 30 used as a boot device by the processor 10 has been accessed to fetch an instruction to a predetermined address of the nonvolatile memory 30 . It functions as a first determination unit that determines the
  • Data (read data) read from the nonvolatile memory 30 by the processor 10 is input to one input terminal of the code determination unit 201 and the first selector 210 .
  • the code determination unit 201 determines whether input read data matches predetermined identification information 300 .
  • the chord determination section 201 controls the second selector 211 according to this determination result.
  • the code determination unit 201 performs the instruction fetch access to the nonvolatile memory 30. It functions as a second determination unit that determines whether or not the acquired data matches the identification information 300 indicating that the program data 310 has been written in the nonvolatile memory 30 .
  • the second selector 211 receives the first instruction 220 at the first input terminal and the second instruction 221 at the second input terminal.
  • the second selector 211 selects either the first input terminal or the second input terminal according to the determination result of the code determination unit 201, and transfers the selected first or second instruction to the first selector 210. input to the second input terminal of
  • a first instruction 220 is an instruction to change the program counter of the processor 10 .
  • first instruction 220 increments the program counter of processor 10 .
  • a NOP (No Operation) instruction that does nothing but increments the program counter can be applied.
  • a jump instruction to an address different from the reset vector in the nonvolatile memory 30 may be applied.
  • the processor 10 executes a jump to an address different from the reset vector according to the jump instruction, and changes (eg, increments) the program counter.
  • the second instruction is an instruction that does not change the program counter of processor 10 . More specifically, as the second instruction 221, a jump instruction to the same address as the current one in the nonvolatile memory 30, that is, to the reset vector can be applied. Processor 10 executes a jump to the same address as the current address in response to the jump instruction. At this time, the processor 10 does not change the program counter.
  • the first selector 210 selects either the first input terminal or the second input terminal under the control of the access determination unit 200, and reads the read data and the first instruction 220 or the first instruction 220 selected by the second selector 211.
  • One of the two instructions 221 and is output from the replacement processing unit 20 as replacement data. That is, the first selector 210 outputs the read data read out from the nonvolatile memory 30 as it is or after replacing it with the first instruction 220 or the second instruction 221 as replacement data.
  • the first selector 210 converts the data into the first instruction 220 to change the program counter in the processor 10 and the It functions as a replacement unit that replaces the command with one of the second command 221 and outputs it to the processor 10 .
  • FIG. 4 is an example flowchart for explaining the processing in the replacement processing unit 20 according to the embodiment.
  • the processing according to the flowchart of FIG. 4 is started, for example, when the information processing device 1 in which the replacement processing unit 20 is incorporated is activated, or when the reset of the processor 10 is released. 4 shows that the series of processes ends in the process of step S53, step S54, or step S55, actually, the series of processes in the flow chart of FIG. It becomes a loop process that is executed. That is, when the replacement processing unit 20 is installed in the information processing device 1 and operates, the process returns to step S50 after the process of step S53, step S54, or step S55 is completed, and the process from step S50 is performed again. executed.
  • the replacement processing unit 20 uses the access determination unit 200 to determine whether the processor 10 accesses the non-volatile memory 30 or not.
  • the access determination unit 200 determines that there is no access (step S50, "No"), the replacement processing unit 20 returns the process to step S50.
  • step S50 determines that the processor 10 has accessed the nonvolatile memory 30 (step S50, "Yes")
  • the replacement processing unit 20 shifts the process to step S51.
  • step S51 the replacement processing unit 20 uses the access determination unit 200 to determine whether or not the access to the nonvolatile memory 30 by the processor 10 is an instruction fetch for the reset vector.
  • the access determination unit 200 acquires, for example, address information indicating the access destination issued by the processor 10 and information indicating the type of access as a control signal, and based on the acquired information, It may be determined whether the access is an instruction fetch to the reset vector.
  • step S51 determines in step S51 that the access is an instruction fetch for the reset vector (step S51, “Yes”)
  • the access determination unit 200 controls the first selector 210 to switch the second input terminal to the second input terminal.
  • the process proceeds to step S52.
  • a value is read from the reset vector of the nonvolatile memory 30, and the read value is input as read data to the code determination unit 201 and the first input terminal of the first selector 210. .
  • step S ⁇ b>52 the replacement processing unit 20 uses the code determination unit 201 to determine whether the value of the read data matches the identification information 300 . If the replacement processing unit 20 determines that they match (step S52, "Yes"), the process proceeds to step S53.
  • step S53 the replacement processing unit 20 selects the first input terminal of the second selector 211 under control according to the determination result of the code determination unit 201, and causes the second selector 211 to output the first instruction 220. Input to the second input terminal of the first selector 210 .
  • the second input end of the first selector 210 is selected according to the determination in step S51 described above. Therefore, the replacement processing unit 20 replaces the read data input to the first input terminal of the first selector 210 with the first instruction 220 input to the second input terminal, and sends the instruction 220 to the processor 10 as replacement data. hand over.
  • the fact that the data fetched from the reset vector matches the identification information 300 indicates that the program data 310 of the program to be executed by the processor 10 is written in the nonvolatile memory 30 . Therefore, the processor 10 can execute a program according to the program data 310 by advancing the program counter in the processor 10 by the first instruction 220 .
  • step S52 determines in step S52 that the value of the read data does not match the identification information 300 (step S52, "No"), the process proceeds to step S54.
  • step S54 the replacement processing unit 20 selects the second input terminal of the second selector 211 under control according to the determination result of the code determination unit 201, and outputs the second instruction 221 from the second selector 211. Input to the second input terminal of the first selector 210 .
  • the second input end of the first selector 210 is selected according to the determination in step S51 described above. Therefore, the replacement processing unit 20 replaces the read data input to the first input terminal of the first selector 210 with the second instruction 221 input to the second input terminal, and sends the instruction 221 to the processor 10 as replacement data. hand over.
  • step S51 when the access determination unit 200 determines that the access of the processor 10 to the nonvolatile memory 30 is not an instruction fetch for the reset vector (step S51, "No"), the replacement processing unit 20 performs the process. The process proceeds to step S55. Also, the replacement processing unit 20 is: The first input terminal is selected by the first selector 210 under the control of the access determination unit 200 .
  • the replacement processing unit 20 passes the read data input to the first input terminal of the first selector 210 to the processor 10 as replacement data.
  • the replacement processing unit 20 has no effect on accesses other than the instruction fetch to the reset vector to the nonvolatile memory 30 by the processor 10, and the processor 10 can execute the program using normal program data. .
  • FIG. 5 is a schematic diagram showing a description example in Verilog-HDL (Hardware Description Language) when the replacement processing unit 20 according to the embodiment is mounted on the AHB bus (AMBA High-speed Bus).
  • AHB AHB Bus
  • AHB Advanced Microcontroller Bus Architecture
  • FIG. 5 the description is shown inside the frame, and each number on the left end outside the frame indicates the line number.
  • line 110 is a register declaration related to access to the reset vector.
  • FFs flip-flop circuits
  • Line 130 describes the initial state at reset.
  • HREADY and "HTRANS” are control signals for access. If the value of 'HREADY' is 'true' and the value of 'HTRANS' is 'NONSEQ', it indicates that there has actually been access. "HADDR" indicates an address.
  • the reset vector by the processor 10 Indicates that there was access to
  • the 160th and 170th lines collectively describe the first selector 210, the second selector 211, the code determination unit 201, and the first instruction 220 and the second instruction 221.
  • the 170th line is a description regarding the first selector 210 , and in this example, it is described that the first selector 210 is controlled by the control signal from the access determination section 200 .
  • the macro "INST_NOP” indicates the first instruction 220 to advance the program counter of the processor 10. As shown in FIG. The first instruction can be defined according to the ISA (Instruction Set Architecture) of the processor 10 and the address where the program data 310 is arranged. Also, the macro “INST_JUMP_REL0” indicates a second instruction 221 that does not advance the program counter of the processor 10 . Again, this can be defined according to the ISA of processor 10 .
  • FIG. 5 shows that the replacement processing unit 20 can be realized by one FF and several combination circuits.
  • FIG. 6 is an example flowchart showing a write process to the nonvolatile memory 30 according to the embodiment.
  • the processing according to the flowchart of FIG. 6 is executed using a writing device as a predetermined hardware device, for example, according to the processing of step S54 in the flowchart of FIG. 4 described above.
  • a predetermined information processing device may control the processor 10 so that the processor 10 executes the processing according to the flowchart of FIG.
  • a debugger is connected to the processor 10 as a predetermined information processing device, and the debugger controls the processor 10 to cause the processor 10 to execute the processing according to the flowchart of FIG.
  • the processor 10 functions as a writing device that executes the processing according to the flowchart of FIG.
  • a predetermined information processing device may be used as the writing device, and the predetermined information processing device may execute the processing according to the flowchart of FIG. 6 instead of the processor 10.
  • step S100 the writing device initializes a repetition number counter.
  • step S101 the writing device executes the writing process to the address ADD prg in the nonvolatile memory 30 of the program data 310.
  • FIG. After completing the writing of the program data 310 to the nonvolatile memory 30, the writing device performs a verify process on the written program data 310 in the next step S102.
  • step S103 the writing device determines whether or not the verification process in step S102 has succeeded.
  • step S103 determines that the verify process has failed
  • step S110 the writing device determines whether the number of repetitions has reached a predetermined upper limit. If the writing device determines that the number of repetitions has not reached the upper limit (step S110, "No"), the writing device moves the process to step S111, increments the repetition number counter by 1, and returns the process to step S101. .
  • step S110 determines in step S110 that the number of repetitions has reached the upper limit (step S110, "Yes"), it is regarded as a writing error and the series of processes according to the flowchart of FIG. 6 is terminated.
  • step S103 determines that the verify process has succeeded in step S103 (step S103, "Yes")
  • step S104 proceeds to step S104.
  • the writing device initializes a repetition number counter.
  • the writing device executes the writing process to the address ADD RV (reset vector) in the nonvolatile memory 30 of the identification information 300.
  • ADD RV reset vector
  • step S107 the writing device determines whether or not the verification process at step S106 was successful. If the writing device determines that the verify process has failed (step S107, "No"), the process proceeds to step S120. In step S120, the writing device determines whether the number of repetitions has reached a predetermined upper limit. Note that the upper limit of the number of repetitions here may be the same as or different from the upper limit of the number of repetitions determined in step S110 described above. If the writing device determines that the number of repetitions has not reached the upper limit (step S120, "No"), the writing device moves the process to step S121, increments the repetition number counter by 1, and returns the process to step S105. .
  • step S120 determines in step S120 that the number of repetitions has reached the upper limit (step S120, "Yes"), it is regarded as a writing error and the series of processes according to the flowchart of FIG. 6 is terminated.
  • the write process to the nonvolatile memory 30 includes at least the write process of the program data 310, the verify process of checking whether the program data 310 is correctly written, and the write process of the identification information 300. and verify processing for confirming whether the identification information 300 is written correctly.
  • the write process of the identification information 300 after the verify process for the program data 310 is successful.
  • the correct identification information 300 is not written in a device in which the program data 310 could not be written correctly. can be prevented from being executed.
  • the processor 10 when the nonvolatile memory 30 is written, the processor 10 is caused to execute the program data 310 written in the nonvolatile memory 30, and the nonvolatile memory When the data 30 is not written, it is possible to implement the process of writing to the nonvolatile memory 30 at low cost while preventing the processor 10 from running out of control.
  • additional costly resources e.g., The determination and write control described above can be realized without an external terminal, ROM, or an additional hardware sequencer for reading the identification information from the nonvolatile memory 30 .
  • the process of the flowchart of FIG. 6 may be automatically started after waiting for a certain period of time after the reset of the processor 10 is canceled, on the premise that the process of step S54 in the flowchart of FIG. 4 is always performed. Also, there may be a case where a person needs to know that writing to the nonvolatile memory 30 has not been performed and the process has transitioned to step S54 in the flowchart of FIG. In this case, it is conceivable to start the processing according to the flowchart of FIG. be done. In either example, it is possible to initiate processing according to the flowchart of FIG. 6 without having additional costly resources.
  • FIG. 7 is a block diagram schematically showing an example configuration of an information processing apparatus 1a according to a first modification of the embodiment.
  • the information processing device 1a includes a processor 10, a replacement processing unit 20 as a replacement device, and a nonvolatile memory 30.
  • a first modification of this embodiment is an example in which the processor 10 and the replacement processing section 20 are directly connected, and the replacement processing section 20 and the nonvolatile memory 30 are connected via the bus 40 .
  • the processing in the replacement processing unit 20 and the writing processing to the nonvolatile memory 30 are the same as those in the above-described embodiment, so descriptions thereof will be omitted here.
  • FIG. 8 is a block diagram schematically showing an example configuration of an information processing apparatus 1b according to a second modification of the embodiment.
  • the information processing device 1b includes a processor 10, a replacement processing unit 20 as a replacement device, and a nonvolatile memory 30.
  • a second modification of this embodiment is an example in which the processor 10 and the replacement processing unit 20 are connected via a bus 40, and the replacement processing unit 20 and the nonvolatile memory 30 are connected via a bus 41. be.
  • the processing in the replacement processing unit 20 and the writing processing to the nonvolatile memory 30 are the same as those in the above-described embodiment, so descriptions thereof will be omitted here.
  • a semiconductor chip is obtained by cutting a semiconductor wafer on which a circuit is formed.
  • FIG. 9 is a block diagram schematically showing an example configuration of an information processing device 1c according to a third modification of the embodiment.
  • an information processing device 1c is composed of a plurality of chips 60 and 61 (also indicated as chips #A and chips #B in the figure). is an example.
  • Chip 60 includes processor 10 , replacement processing unit 20 , and memory I/F (interface) 50 .
  • Chip 61 also includes non-volatile memory 30 . Chips 60 and 61 are provided, for example, in a single package or on the same substrate.
  • Package refers to one or more semiconductor chips with terminals connected and sealed. A semiconductor product in a package state is mounted on the substrate. A semiconductor chip may be mounted directly on a substrate in some cases.
  • the processor 10 is connected via the bus 40 to the replacement processing section 20 , and the replacement processing section 20 is connected via the memory I/F 50 to the non-volatile memory 30 provided in the chip 61 .
  • the processing in the replacement processing unit 20 and the writing processing to the nonvolatile memory 30 are the same as those in the above-described embodiment, so descriptions thereof will be omitted here.
  • the technology of the present disclosure can be similarly applied to the information processing device 1c configured with a plurality of chips 60 and 61.
  • the configuration is not limited to that shown in FIG. 9, and it is arbitrary in which chip among the plurality of chips the processor 10, the replacement processing unit 20, and the nonvolatile memory 30 are arranged.
  • a fourth modification of the embodiment is an example in which the information processing device 1 includes a plurality of replacement processing units 20 .
  • FIG. 10 is a block diagram schematically showing the configuration of an example of an information processing device 1d according to the fourth modified example of the embodiment.
  • an information processing device 1d includes a processor 10, replacement processing units 20a and 20b, and a nonvolatile memory 30.
  • Processor 10 is connected to non-volatile memory 30 via replacement processing units 20 a and 20 b and bus 40 .
  • the replacement processing units 20 a and 20 b are connected in series with respect to read data read from the nonvolatile memory 30 .
  • the replacement processing units 20a and 20b are also indicated as replacement processing unit #A and replacement processing unit #B, respectively.
  • the replacement processing units 20a and 20b determine access by the processor 10 based on identification information written to different addresses in the nonvolatile memory 30, respectively.
  • FIG. 11 is a schematic diagram showing an example configuration of the nonvolatile memory 30 applicable to the fourth modified example of the embodiment. Note that FIG. 11 shows an example of a state in which each data is written in the nonvolatile memory 30 .
  • the data-written nonvolatile memory 30 stores identification information 300a (first identification information, also described as identification information #1 in the figure) with respect to a predetermined address ADD RV-a (first predetermined address). ) is placed.
  • Identification information 300b (second identification information, also indicated as identification information #2 in the figure) is placed with respect to a predetermined address ADD RV-b ( second predetermined address) different from the address ADD RV-a. be killed.
  • At address ADD prg is stored program data 310 of a program that processor 10 executes at boot time.
  • the identification information 300a and 300b placed at the addresses ADD RV-a and ADD RV-b respectively correspond to the identification information 300 described above, and are used to identify whether or not the nonvolatile memory 30 has been written. It is a special word.
  • the identification information 300a and 300b may be different words or the same word.
  • the identification information 300a and 300b for example, if there is a value that the nonvolatile memory 30 can easily take as an initial value, a value avoiding that value is set. If the initial value of the nonvolatile memory 30 is randomly determined, it is conceivable to use randomly determined values for the identification information 300a and 300b.
  • the identification information 300a and 300b are preferably information of the number of bits (16 bits, 32 bits, etc.) corresponding to the bus width of the bus 40, for example.
  • the address ADD RV-a is an address at which the processor 10 booted from the nonvolatile memory 30 first fetches instructions after the reset is released, and is also called a reset vector. Called.
  • the address ADD RV-b may be used as the reset vector. In the following description, it is assumed that the address ADD RV-a is the reset vector.
  • FIG. 11 shows that the identification information 300a and 300b are arranged at adjacent addresses on the nonvolatile memory 30, this is not limited to this example. That is, the address ADD RV-a where the identification information 300a is arranged and the address ADD RV-b where the identification information 300b is arranged may be discontinuous.
  • the address ADD prg in which the program data 310 is placed is the same as the address ADD prg in the embodiment described with reference to FIG. 2, so the description is omitted here.
  • FIG. 12 is a block diagram showing an example configuration of the replacement processing units 20a and 20b according to the fourth modification of the embodiment.
  • the replacement processing units 20a and 20b have the same configuration. That is, the replacement processing unit 20a includes an access determination unit 200a, a code determination unit 201a, a first selector 210a, and a second selector 211a. Also, the replacement processing unit 20b includes an access determination unit 200b, a code determination unit 201b, a first selector 210b, and a second selector 211b.
  • the replacement processing unit 20a may act upon instruction fetch to the reset vector (address ADD RV-a in this example). Substitution processing for an instruction fetch to the next instruction fetch address (second predetermined address, address ADD RV-b in this example) generated by the processor 10 executing the first instruction 220a of the substitution processing unit 20a Part 20b may act.
  • the access determination unit 200b acquires address information and control signals. Read data read out from the nonvolatile memory 30 is input to the first input terminal (No side) of the code determination unit 201b and the first selector 210b. The output of the second selector 211b is input to the second input terminal (Yes side) of the first selector 210b. The first selector 210b selects either the first input terminal or the second input terminal according to the determination result of the access determination unit 200b. The first input terminal of the second selector 211b receives the first instruction 220b, and the second input terminal receives the second instruction 221b. The second selector 211b selects either the first input terminal or the second input terminal according to the determination result of the chord determination section 201b.
  • the second instruction 221b may be an instruction that does not change the program counter of the processor 10. More specifically, as the second instruction 221b, a jump instruction to the same address as the current one in the nonvolatile memory 30, that is, to the identification information 300b may be applied. Processor 10 executes a jump to the same address as the current address in response to the jump instruction. At this time, the processor 10 does not change the program counter.
  • the access determination unit 200a acquires address information and control signals.
  • the output of the first selector 210b of the replacement processing section 20b is input to the chord determination section 201a and the first input terminals of the first selector 210a.
  • the output of the second selector 211a is input to the second input terminal of the first selector 210a.
  • the first selector 210a selects either the first input terminal or the second input terminal according to the determination result of the access determination unit 200a.
  • the first input terminal of the second selector 211a receives the first instruction 220a, and the second input terminal receives the second instruction 221a.
  • the second selector 211a selects either the first input terminal or the second input terminal according to the determination result of the chord determination section 201a.
  • the access determination unit 200a may determine whether or not the access according to the acquired address information is the access to the reset vector (address ADD RV-a in this example). Further, the access determination unit 200b determines that the access according to the acquired address information is the access to the next instruction fetch address (address ADD RV-b in this example) generated by the processor 10 executing the first instruction 220a. It may be determined whether or not In this case, the identification information 300a (first identification information) is written to the reset vector, and the identification information 300b (second identification information) is written to the next instruction fetch address generated by the processor 10 executing the first instruction 220a. ).
  • the identification information 300a is written in the reset vector of the nonvolatile memory 30, and the address of the next instruction fetch generated by the processor 10 executing the first instruction 220a fetched by accessing the reset vector is identified. Assume that the information 300b is written.
  • the access determination unit 200b of the replacement processing unit 20b causes the first input terminal (No side) of the first selector 210b to ) is selected.
  • the identification information 300a read out from the reset vector of the nonvolatile memory 30 is passed to the replacement processing section 20a via the first selector 210b, and the code determination section 201a and the first input terminal (No) of the first selector 210a. side).
  • the access determination unit 200a selects the second input terminal (Yes side) in the first selector 210a. Also, in the second selector 211a, the first input terminal (Yes side) is selected according to the identification information 300a input from the replacement processing unit 20b. Accordingly, a first instruction 220a is passed to the processor 10, for example a NOP instruction that does nothing but only increments the program counter.
  • the processor 10 stores the next instruction fetch address (address ADD RV-b in this example) in the nonvolatile memory 30 generated by the processor 10 executing the first instruction 220a ) to read the identification information 300b.
  • the access determination unit 200b selects the second input terminal (Yes side) in the first selector 210b. Further, the code determination unit 201b selects the first input terminal (Yes side) in the second selector 211b according to the identification information 300b as read data from the nonvolatile memory 30.
  • the first instruction 220b which is, for example, a NOP instruction, is passed to the replacement processing section 20a via the second selector 211b and the first selector 210b.
  • the access determination unit 200a selects the first input terminal (No side) in the first selector 210a. Therefore, the processor 10 receives the first instruction 220b from the replacement processor 20b.
  • the processor 10 accesses the next instruction fetch address (for example, the address ADD prg ) in the non-volatile memory 30 generated by the execution of the first instruction 220b by the processor 10, according to the passed first instruction 220b. , for example, reads program data 310 .
  • the first input terminal (No side) is selected in the first selector 210a of the replacement processing unit 20a and the first selector 210b of the replacement processing unit 20b. Thereby, the program data 310 read from the nonvolatile memory 30 is transferred to the processor 10 .
  • the address of the next instruction fetch generated by the execution of the first instruction 220a by the processor 10 is set to an address different from the address of the reset vector. Also, the address of the next instruction fetch generated by the processor 10 executing the first instruction 220b is an address different from the address ADD RV-a of the reset vector and the address ADD RV-b where the identification information 300b is placed.
  • a first determination unit that determines whether or not a non-volatile memory used by a processor as a boot device has been accessed by the processor to fetch an instruction to a predetermined address of the non-volatile memory;
  • the first determination unit determines that the instruction fetch access to the predetermined address is performed, the data acquired from the nonvolatile memory by the instruction fetch access is programmed in the nonvolatile memory.
  • a second determination unit that determines whether or not the data matches identification information indicating that the data has been written; the processor by replacing the data with either a first instruction that changes the program counter in the processor or a second instruction that does not change the program counter, according to the determination result of the second determination unit; a replacement part that outputs to comprising replacement device.
  • the replacement part is If the second determination unit determines that the data matches the identification information, replace the data with the first instruction, and if it determines that the data does not match the identification information, replacing the data with the second instruction; The replacement device according to (1) above.
  • the first instruction is a NOP (No Operation) instruction, The replacement device according to any one of (1) to (3) above.
  • the first instruction is A jump instruction for instructing a jump to an address different from the address where the identification information is placed in the nonvolatile memory, The replacement device according to any one of (1) to (3) above.
  • the second instruction is A jump instruction for instructing a jump to an address in the nonvolatile memory where the identification information is placed; The replacement device according to any one of (1) to (5) above.
  • the predetermined address is an address for the processor to access the non-volatile memory for the first instruction fetch after the reset is released.
  • the replacement device according to any one of (1) to (6) above.
  • the first writing step includes: a first write process for writing the program data to the nonvolatile memory; a first verify process for the first write process; including If the first verify process succeeds, the process is transferred to the second write step, and if the first verify process fails, the first write process is re-executed, and the first write process is performed. When the re-execution of the process is repeated up to the upper limit number of times, the second writing step is skipped, and the writing process to the non-volatile memory is terminated with an error.
  • the second writing step includes: a second write process to write the identification information to the nonvolatile memory; a second verify process for the second write process; including If the second verify process succeeds, the write process to the nonvolatile memory is normally terminated; if the second verify process fails, the second write process is re-executed; When the re-execution of the write process is repeated up to the upper limit number of times, the write process to the non-volatile memory is terminated with an error;
  • the information processing method according to (9) or (10) above.
  • a processor non-volatile memory used as a boot device by the processor; with The nonvolatile memory is writing first identification information indicating that program data to be executed by the processor has been written to the nonvolatile memory at a first predetermined address from which the processor first fetches an instruction after the reset is released; , and writing the program data to an address that does not overlap with the first predetermined address are performed after mounting the non-volatile memory.
  • Information processing equipment
  • a first determination unit that determines whether or not the nonvolatile memory is accessed by the processor to fetch an instruction to the first predetermined address of the nonvolatile memory; When the first determination unit determines that the instruction fetch access to the first predetermined address is performed, the data acquired from the nonvolatile memory by the instruction fetch access is A second determination unit that determines whether or not it matches the identification information of the processor by replacing the data with either a first instruction that changes the program counter in the processor or a second instruction that does not change the program counter, according to the determination result of the second determination unit; a first replacement unit that outputs to Further comprising a first replacement processing unit comprising The information processing device according to (12) above.
  • the first replacement part is If the second determination unit determines that the data matches the first identification information, the data is replaced with the first instruction, and if the data does not match the first identification information. if so, replacing the data with the second instruction;
  • the information processing device according to (13) above.
  • a first selection unit that selects which of the data, the first instruction, and the second instruction to output to the processor according to the determination result of the first determination unit; further comprising The information processing apparatus according to (13) or (14).
  • the first instruction is a NOP (No Operation) instruction, The information processing apparatus according to any one of (13) to (15).
  • the first instruction is A jump instruction for instructing a jump to an address different from the address where the first identification information is placed in the nonvolatile memory; The information processing apparatus according to any one of (13) to (15).
  • the second instruction is A jump instruction for instructing a jump to an address in the nonvolatile memory where the first identification information is located; The information processing apparatus according to any one of (13) to (17).
  • the processor by replacing the data with either a third instruction that changes the program counter in the processor or a fourth instruction that does not change the program counter, according to the determination result of the fourth determination unit a second replacement unit that outputs to Further comprising a second replacement processing unit including the first replacement processing unit and the second replacement processing unit respectively acquire information indicating the instruction fetch access; the output of the second replacement unit is input to the first replacement unit;
  • the information processing apparatus according to any one of (13) to (18).
  • the third instruction is a NOP (No Operation) instruction, The information processing device according to (19) above.
  • the third instruction is A jump instruction for instructing a jump to an address different from the address where the first identification information and the second identification information are placed in the nonvolatile memory;
  • the information processing device according to (19) above.
  • the fourth instruction is A jump instruction for instructing a jump to an address in the non-volatile memory where the second identification information is placed;
  • the information processing apparatus according to any one of (19) to (21).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本開示に係る置換装置は、プロセッサがブートデバイスとして用いる不揮発性メモリに対して、プロセッサによる不揮発性メモリの所定のアドレスに対する命令フェッチのアクセスの有無を判定する第1の判定部(200)と、第1の判定部により所定のアドレスに対する命令フェッチのアクセスが行われたと判定された場合に、命令フェッチのアクセスにより不揮発性メモリから取得されたデータが、不揮発性メモリにプログラムデータが書き込み済みであることを示す識別情報と一致するかを判定する第2の判定部(201)と、第2の判定部の判定結果に応じて、データを、プロセッサにおけるプログラムカウンタを変化させる第1命令と変化させない第2命令と、のうち何れかに置き換えてプロセッサに出力する置換部(211)と、を備える。

Description

置換装置、情報処理方法および情報処理装置
 本開示は、置換装置、情報処理方法および情報処理装置に関する。
 不揮発性メモリを記憶デバイスとして使用するシステムにおいては、デバイスを基板に実装した後に、不揮発性メモリの内容を書き込むことが行われている。
 例えば、不揮発性メモリの一例としてのNAND型フラッシュメモリは、高温時に記憶内容が失われる特性がある。NAND型フラッシュメモリは、この特性により、プリント基板に実装する際のハンダ付け工程の熱で記憶内容が失われるため、基板実装後に内容を書き込む必要がある。そのため、NAND型フラッシュメモリを実装するシステムにおいては、基板実装後に当該不揮発性メモリに書き込みを実行するための特別な動作モード(書き込みモード)を用意しておくことが一般的に行われている。
 例えば、特許文献1では、基板実装後の不揮発性メモリに書き込むための書き込みモードへ遷移する方法として、外部端子による方法と、ブートモードによる方法とが開示されている。また、特許文献1では、これらの方法を実現するプログラムが不揮発性メモリに格納されているとしている。
特開2003-196115号公報
 高温時に記憶内容が失われる不揮発性メモリは、上述したように、基板に実装する際のハンダ付け工程の熱で記憶内容が失われる。そのため、このような不揮発性メモリを、特許文献1の、書き込みモードに遷移させるためのプログラムを予め書き込むメモリとして適用することは、好ましくない。
 一方、システムにROM(Read Only Memory)を搭載し、このROMに書き込みモードに遷移するためのプログラムを予め書き込むことが考えられる。また、ハードウェアシーケンサをシステムに搭載し、プログラムに依らずに不揮発性メモリに書き込みを行うことも考えられる。しかしながら、これらの方法では、システムに構成を追加することになり、コストが嵩んでしまう可能性がある。
 また、不揮発性メモリに対する書き込みを行うために、外部端子を割り当てることも考えられる。しかしながら、この場合には、パッケージサイズや基板実装面積などの観点から、コストが嵩んでしまう可能性がある。
 本開示は、基板実装後の不揮発性メモリに初めて書き込みを行うための最初の書き込みモードへの遷移を、より低コストで実現可能な置換装置、情報処理方法および情報処理装置を提供する。
 本開示に係る置換装置は、プロセッサがブートデバイスとして用いる不揮発性メモリに対して、プロセッサにより不揮発性メモリの所定のアドレスに対する命令フェッチのアクセスが行われたか否かを判定する第1の判定部と、第1の判定部により所定のアドレスに対する命令フェッチのアクセスが行われたと判定された場合に、命令フェッチのアクセスにより不揮発性メモリから取得されたデータが、不揮発性メモリにプログラムデータが書き込み済みであることを示す識別情報と一致するか否かを判定する第2の判定部と、第2の判定部の判定結果に応じて、データを、プロセッサにおけるプログラムカウンタを変化させる第1命令と、プログラムカウンタを変化させない第2命令と、のうち何れかに置き換えてプロセッサに出力する置換部と、を備える。
本開示に係る置換装置を備える情報処理装置の一例の構成を概略的に示すブロック図である。 実施形態に適用可能な不揮発性メモリの一例の構成を示す模式図である。 実施形態に係る置換処理部の一例の構成を示すブロック図である。 実施形態に係る置換処理部における処理を説明するための一例のフローチャートである。 実施形態に係る置換処理部をAHBバスに実装する際のVerilog-HDLでの記述例を示す模式図である。 実施形態に係る、不揮発性メモリに対する書き込み処理を示す一例のフローチャートである。 実施形態の第1の変形例に係る情報処理装置の一例の構成を概略的に示すブロック図である。 実施形態の第2の変形例に係る情報処理装置の一例の構成を概略的に示すブロック図である。 実施形態の第3の変形例に係る情報処理装置の一例の構成を概略的に示すブロック図である。 実施形態の第4の変形例に係る情報処理装置の一例の構成を概略的に示すブロック図である。 実施形態の第4の変形例に適用可能な不揮発性メモリの一例の構成を示す模式図である。 実施形態の第4の変形例に係る各置換処理部の一例の構成を示すブロック図である。
 以下、本開示の実施形態について、図面に基づいて詳細に説明する。なお、以下の実施形態において、同一の部位には同一の符号を付することにより、重複する説明を省略する。
 以下、本開示の実施形態について、下記の順序に従って説明する。
1.本開示の背景
2.実施形態
 2-1.実施形態に適用可能な構成
 2-2.実施形態に係る書き込み処理
3.実施形態の変形例
 3-1.実施形態の第1の変形例
 3-2.実施形態の第2の変形例
 3-3.実施形態の第3の変形例
 3-4.実施形態の第4の変形例
(1.本開示の背景)
 本開示の実施形態の説明に先立って、理解を容易とするために、本開示の背景について説明する。
 従来から、不揮発性メモリを、プロセッサがブートデバイスとして使用するシステムにおいては、デバイスを基板に実装した後に、不揮発性メモリに対してデータ、例えばプロセッサの起動のための起動プログラムのプログラムデータを書き込むことが行われている。このような用途に用いる不揮発性メモリの例として、NAND型フラッシュメモリおよびNOR型フラッシュメモリが知られている。
 NAND型フラッシュメモリは、ビット単価が安価で大容量である一方で、高温時に記憶内容が失われる。このような、高温時に記憶内容が失われる不揮発性メモリは、プリント基板などに実装する際のハンダ付け工程で発生する熱で記憶内容が失われてしまう。そのため、例えばデータの書き込みは、基板に実装した後に行う必要がある。
 一方、NOR型フラッシュメモリは、高温時に記憶内容が失われることが無いが、NAND型フラッシュメモリと比較してビット単価が高価で小容量である。このような、高温時でも記憶内容が失われない不揮発性メモリは、データを書き込んだ後に基板などに実装することが可能であるが、システムの用途によっては、基板実装後にデータの書き込みを行いたい要求もある。
 これらのため、不揮発性メモリへの起動プログラムのプログラムデータの書き込みを基板への実装後に実行する、所謂オンボード書き込みを実現するための特別なモードを用意することが、従来から行われている。
 例えば、特許文献1では、基板実装後の不揮発性メモリに書き込むための書き込みモードへ遷移する方法として、外部端子による方法と、ブートモードによる方法とが開示されている。また、特許文献1では、これらの方法を実現するプログラムが不揮発性メモリに格納されているとしている。
 システムに求められるコストと記憶デバイスの容量の要求とによっては、例えばNAND型フラッシュメモリのような、高温時に記憶内容が失われる一方で、ビット単価が安価で大容量な不揮発性メモリを、システムの唯一の不揮発性メモリと使用できることが望まれる。
 NAND型フラッシュメモリのような、高温時に記憶内容が失われる不揮発性メモリは、上述したように、基板に実装する際のハンダ付け工程の熱で記憶内容が失われる。そのため、このような不揮発性メモリを、例えば特許文献1の、書き込みモードに遷移させるためのプログラムを予め書き込むメモリとして適用することは、好ましくない。
 一方、システムにROM(Read Only Memory)を搭載し、このROMに書き込みモードに遷移するためのプログラムを予め書き込むことが考えられる。また、ハードウェアシーケンサをシステムに搭載し、プログラムに依らずに不揮発性メモリに書き込みを行うことも考えられる。しかしながら、これらの方法では、システムに構成を追加することになり、コストが嵩んでしまう可能性がある。また、不揮発性メモリに対する書き込みを行うために、外部端子を割り当てることも考えられる。しかしながら、この場合には、パッケージサイズや基板実装面積などの観点から、コストが嵩んでしまう可能性がある。
 さらに、一度、不揮発性メモリに対して書き込みモードに遷移するためのプログラムを書き込むことができれば、その後は、書き込まれたプログラムよって書き込みモードへの遷移を含めた任意の動作を実現できる。そのため、上述したようなコストを要するリソースが要求されるのは、未書き込みの不揮発性メモリに対して初めてオンボード書き込みを行う最初の1回のみである。したがって、不揮発性メモリに対する書き込みモードに遷移するためのプログラムの書き込みは、より低コストで実現可能とされることが望まれる。
(2.実施形態)
 本開示の実施形態について説明する。
 本開示に係る置換装置は、プロセッサの不揮発性メモリへのアクセスが、当該プロセッサがリセット解除後に最初に命令フェッチを行う所定のアドレスへのアクセスであった場合に、当該アドレスからフェッチした値が予め設定された識別情報と一致するか否かを判定する。フェッチした値が当該識別情報と一致すると判定した場合、置換装置は、不揮発性メモリからフェッチした値をプロセッサにおけるプログラムカウンタを変化させる命令に置換して、プロセッサに渡す。一方、フェッチした値が当該識別情報と一致しないと判定した場合、不揮発性メモリからフェッチした値を、当該プログラムカウンタを変化させない命令に置換して、プロセッサに渡す。
 このように構成された本開示に係る置換装置を適用することで、不揮発性メモリから識別情報を読み出す処理を、プロセッサによる命令フェッチ動作により実行できる。そのため、当該識別情報を読み出すための構成を別途に持つ必要が無く、また、不揮発性メモリに当該識別情報が格納されている場合にのみ、当該不揮発性メモリに格納されたプログラムデータによるプログラムを実行し、ブートすることができる。
(2-1.実施形態に適用可能な構成)
 実施形態に適用可能な構成について説明する。図1は、本開示に係る置換装置を備える情報処理装置の一例の構成を概略的に示すブロック図である。なお、図1では、情報処理装置における実施形態に関わりの深い部分を抜粋して示し、実施形態に関わりの薄い部分については、適宜、省略されている。
 図1において、情報処理装置1は、プロセッサ10と、置換処理部20と、不揮発性メモリ30と、を含む。プロセッサ10は、バス40を介して置換処理部20に接続され、置換処理部20を介して不揮発性メモリ30にアクセスできる。不揮発性メモリ30は、例えばNAND型フラッシュメモリあるいはNOR型フラッシュメモリを適用することができる。
 図1において、各部(プロセッサ10、置換処理部20、不揮発性メモリ30およびバス40)を接続する矢印の向きは、アクセスにおけるイニシエータとターゲットとの関係を示している。
 情報処理装置1の各部(プロセッサ10、置換処理部20、不揮発性メモリ30およびバス40)の実装は、特に限定されないが、例えば当該各部は、1枚の基板上、あるいは、1つのパッケージ内に実装される。
 また、情報処理装置1の用途は、特に限定されないが、例えばIoT(Internet of Things)における通信、制御、センシングなどのシステムに適用可能である。
 図2は、実施形態に適用可能な不揮発性メモリ30の一例の構成を示す模式図である。なお、図2では、不揮発性メモリ30に各データが書き込まれた状態の例を示している。
 データ書き込み済みの不揮発性メモリ30は、予め定められたアドレスADDRVに対して、識別情報300が置かれる。アドレスADDRVと異なるアドレスADDprgに、プロセッサ10がブート時に実行するプログラムのプログラムデータ310が格納される。
 アドレスADDRVに置かれる識別情報300は、不揮発性メモリ30が書き込み済みであるか否かを識別するための特別な語である。識別情報300としては、例えば不揮発性メモリ30が初期値として取り易い値がある場合、その値を避けた値が設定される。不揮発性メモリ30の初期値がランダムに決まる場合は、識別情報300も、ランダムに決定した値を用いることが考えられる。また、識別情報300は、例えばバス40のバス幅に応じたビット数(16ビット、32ビットなど)の情報とすることが好ましい。
 アドレスADDRVは、当該不揮発性メモリ30からブートするプロセッサ10が、リセット解除後に最初に命令フェッチを行うアドレスであって、リセットベクタとも呼ばれる。以降、適宜、アドレスADDRVを、リセットベクタと呼ぶ。
 プログラムデータ310が置かれるアドレスADDprgは、後述する、プロセッサ10のプログラムカウンタを変化させる第1の命令の内容によって定まる。例えば、当該第1の命令がNOP(No Operation)命令であったり、リセットベクタの直後のアドレスへのジャンプ命令であるときは、リセットベクタの直後のアドレスにプログラムデータ310を置くことができる。第1の命令が、特定のアドレスへのジャンプ命令であるときは、プログラムデータ310は、そのジャンプ命令のジャンプ先のアドレスに置くことができる。
 図3は、実施形態に係る置換処理部20の一例の構成を示すブロック図である。図3において、置換処理部20は、アクセス判定部200と、コード判定部201と、第1セレクタ210と、第2セレクタ211と、を含む。なお、図3において、図の右側が不揮発性メモリ30側であり、図の左側がプロセッサ10側となる。
 アクセス判定部200は、プロセッサ10が不揮発性メモリ30にアクセスする際に不揮発性メモリ30に対して発行するアドレス情報を取得する。また、アクセス判定部200は、制御信号として、プロセッサ10と不揮発性メモリ30との間で送受信される命令やステータスといった各種の情報を取得する。アクセス判定部200は、取得したアドレス情報や各種情報に基づき、第1セレクタ210を制御する。
 このように、アクセス判定部200は、プロセッサ10により、当該プロセッサ10がブートデバイスとして用いる不揮発性メモリ30に対して、当該不揮発性メモリ30の所定のアドレスに対する命令フェッチのアクセスが行われたか否かを判定する第1の判定部として機能する。
 プロセッサ10により不揮発性メモリ30から読み出されたデータ(リードデータ)が、コード判定部201と、第1セレクタ210の一方の入力端に入力される。コード判定部201は、入力されたリードデータが予め定められた識別情報300と一致するか否かを判定する。コード判定部201は、この判定結果に応じて、第2セレクタ211を制御する。
 このように、コード判定部201は、第1の判定部(アクセス判定部200)により所定のアドレスに対する命令フェッチのアクセスが行われたと判定された場合に、命令フェッチのアクセスにより不揮発性メモリ30から取得されたデータが、不揮発性メモリ30にプログラムデータ310が書き込み済みであることを示す識別情報300と一致するか否かを判定する第2の判定部として機能する。
 第2セレクタ211は、第1の入力端に第1命令220が入力され、第2の入力端に第2命令221が入力される。第2セレクタ211は、コード判定部201による判定結果に応じて第1の入力端および第2の入力端の何れかを選択し、選択された第1命令または第2命令を、第1セレクタ210の第2の入力端に入力する。
 第1命令220は、プロセッサ10のプログラムカウンタを変化させる命令である。例えば、第1命令220は、プロセッサ10のプログラムカウンタをインクリメントする。第1命令220としては、何もせずにプログラムカウンタをインクリメントさせる動作のみを実行するNOP(No Operation)命令を適用することができる。これに限らず、第1命令220として、不揮発性メモリ30の、リセットベクタとは異なるアドレスへのジャンプ命令を適用してもよい。プロセッサ10は、当該ジャンプ命令に応じてリセットベクトとは異なるアドレスへのジャンプを実行し、プログラムカウンタを変化(例えばインクリメント)させる。
 第2命令は、プロセッサ10のプログラムカウンタを変化させない命令である。より具体的には、第2命令221として、不揮発性メモリ30の現在と同じアドレス、すなわちリセットベクタへのジャンプ命令を適用することができる。プロセッサ10は、当該ジャンプ命令に応じて現在と同じアドレスへのジャンプを実行する。このとき、プロセッサ10は、プログラムカウンタを変化させない。
 第1セレクタ210は、アクセス判定部200の制御に従い、第1の入力端および第2の入力端の何れかを選択し、リードデータと、第2セレクタ211で選択された第1命令220または第2命令221と、のうち一方を、置換処理部20から置換データとして出力する。すなわち、第1セレクタ210は、不揮発性メモリ30から読み出されたリードデータをそのまま、あるいは、第1命令220あるいは第2命令221と置換して、置換データとして出力する。
 このように、第1セレクタ210は、第2の判定部(コード判定部201)の判定結果に応じて、データを、プロセッサ10におけるプログラムカウンタを変化させる第1命令220と、プログラムカウンタを変化させない第2命令221と、のうち何れかに置き換えてプロセッサ10に出力する置換部として機能する。
 図4は、実施形態に係る置換処理部20における処理を説明するための一例のフローチャートである。
 図4のフローチャートによる処理は、例えば、当該置換処理部20が組み込まれる情報処理装置1の起動、あるいは、プロセッサ10のリセット解除により開始される。また、図4では、ステップS53、ステップS54またはステップS55の処理で一連の処理が終了するように示しているが、実際には、図4のフローチャートによる一連の処理は、置換処理部20により繰り返し実行されるループ処理となる。すなわち、置換処理部20が情報処理装置1に組み込まれて動作する場合には、ステップS53、ステップS54またはステップS55の処理が終了すると、処理がステップS50に戻され、ステップS50からの処理が再び実行される。
 図4において、ステップS50で、置換処理部20は、アクセス判定部200により、プロセッサ10から不揮発性メモリ30に対するアクセスの有無を判定する。置換処理部20は、アクセス判定部200によりアクセスが無いと判定した場合(ステップS50、「No」)、処理をステップS50に戻す。
 一方、置換処理部20は、アクセス判定部200によりプロセッサ10から不揮発性メモリ30に対するアクセスがあったと判定した場合(ステップS50、「Yes」)、処理をステップS51に移行させる。
 ステップS51で、置換処理部20は、アクセス判定部200により、プロセッサ10の不揮発性メモリ30に対するアクセスがリセットベクタに対する命令フェッチであるか否かを判定する。置換処理部20において、アクセス判定部200は、例えば、プロセッサ10により発行されたアクセス先を示すアドレス情報と、制御信号としてアクセスの種類を示す情報とを取得し、取得したこれらの情報に基づき、当該アクセスがリセットベクタに対する命令フェッチであるか否かを判定してよい。
 置換処理部20は、ステップS51で当該アクセスがリセットベクタに対する命令フェッチであると判定した場合(ステップS51、「Yes」)、アクセス判定部200の制御により第1セレクタ210において第2の入力端を選択すると共に、処理をステップS52に移行させる。また、当該アクセスに従い、不揮発性メモリ30のリセットベクタから値が読み出され、読み出された値がリードデータとしてコード判定部201と、第1セレクタ210の第1の入力端とに入力される。
 ステップS52で、置換処理部20は、コード判定部201により、リードデータの値が識別情報300と一致するか否かを判定する。置換処理部20は、一致すると判定した場合(ステップS52、「Yes」)、処理をステップS53に移行させる。
 ステップS53で、置換処理部20は、コード判定部201の判定結果に従った制御により、第2セレクタ211の第1の入力端を選択し、第1命令220を第2セレクタ211から出力させて第1セレクタ210の第2の入力端に入力させる。第1セレクタ210は、上述のステップS51の判定に応じて第2の入力端が選択されている。そのため、置換処理部20は、第1セレクタ210の第1の入力端に入力されたリードデータを、第2の入力端に入力された第1命令220に置換して、置換データとしてプロセッサ10に渡す。
 リセットベクタからフェッチしたデータが識別情報300に一致するということは、不揮発性メモリ30にプロセッサ10が実行すべきプログラムのプログラムデータ310が書かれているということを示している。そのため、第1命令220によりプロセッサ10においてプログラムカウンタを進めることで、プロセッサ10は、プログラムデータ310によるプログラムを実行することができる。
 一方、置換処理部20は、ステップS52で、リードデータの値が識別情報300と一致しないと判定した場合(ステップS52、「No」)、処理をステップS54に移行させる。
 ステップS54で、置換処理部20は、コード判定部201の判定結果に従った制御により、第2セレクタ211の第2の入力端を選択し、第2命令221を第2セレクタ211から出力させて第1セレクタ210の第2の入力端に入力させる。第1セレクタ210は、上述のステップS51の判定に応じて第2の入力端が選択されている。そのため、置換処理部20は、第1セレクタ210の第1の入力端に入力されたリードデータを、第2の入力端に入力された第2命令221に置換して、置換データとしてプロセッサ10に渡す。
 リセットベクタからフェッチしたデータが識別情報300に一致しないということは、不揮発性メモリ30にプロセッサ10が実行すべきプログラムのプログラムデータが書かれていないということを示している。そのため、第2命令221によりプロセッサ10においてプログラムカウンタを進めないことにより、未書き込みのプログラムデータを実行しようとすることによるプロセッサ10の暴走を防ぐことができる。換言すれば、第2命令221によりプロセッサ10においてプログラムカウンタを進めないことにより、プロセッサ10が不揮発性メモリ30の初期値に応じて予期しない動作をすることを防ぐことができる。
 上述したステップS51において、置換処理部20は、アクセス判定部200により、プロセッサ10の不揮発性メモリ30に対するアクセスがリセットベクタに対する命令フェッチではないと判定した場合(ステップS51、「No」)、処理をステップS55に移行させる。また、置換処理部20は。アクセス判定部200の制御により第1セレクタ210において第1の入力端を選択する。
 ステップS55で、置換処理部20は、第1セレクタ210の第1の入力端に入力されたリードデータを、置換データとしてプロセッサ10に渡す。
 プロセッサ10の不揮発性メモリ30に対するアクセスがリセットベクタに対する命令フェッチではないということは、上述のステップS53において第1命令220によりプログラムカウンタがリセットベクタから進められた状態であることを示している。また、この場合には、上述したように、不揮発性メモリ30にはプログラムデータ310が書き込まれている。したがって、不揮発性メモリ30から読み出されたリードデータは、プログラムデータ310となる。そのため、置換処理部20は、不揮発性メモリ30から読み出したリードデータを、そのままプロセッサ10に渡す。
 これにより、プロセッサ10による不揮発性メモリ30への、リセットベクタに対する命令フェッチ以外のアクセスに対しては、置換処理部20は何も作用せず、プロセッサ10は、通常のプログラムデータによりプログラムを実行できる。
 図5は、実施形態に係る置換処理部20をAHBバス(AMBA High-speed Bus)に実装する際のVerilog-HDL(Hardware Description Language)での記述例を示す模式図である。なお、「AMBA」は、Advanced Microcontroller Bus Architectureの略であり、オンチップバスの規格の一つである。また、図5において、枠内が当該記述であり、枠外左端の各数字は行番号を示している。
 図5において、第110行は、リセットベクタへのアクセスに係るレジスタ宣言である。第120行~第150行において、アクセス判定部200を構成するFF(フリップフロップ回路)が記述される。第130行は、リセット時の初期状態を記述する。第140行において、「HREADY」および「HTRANS」は、それぞれアクセスに係る制御信号である。「HREADY」の値が「真」、且つ、「HTRANS」の値が「NONSEQ」である場合に、実際にアクセスがあったことを示す。「HADDR」はアドレスを示している。「HREADY」の値が「真」、且つ、「HTRANS」の値が「NONSEQ」であり、且つ、「HADDR」の値がリセットベクタを示すマクロ「RESET_VECTOR」である場合に、プロセッサ10によるリセットベクタへのアクセスがあったことを示す。
 第160行、第170行は、第1セレクタ210、第2セレクタ211およびコード判定部201と、第1命令220および第2命令221とを纏めて記述している。第170行は、第1セレクタ210に関する記述であり、この例では、第1セレクタ210がアクセス判定部200からの制御信号により制御される旨が記述されている。
 第170行は、「HRDATAin==`IDENTIFYING_CODE」がコード判定部201を示す。マクロ「INST_NOP」がプロセッサ10のプログラムカウンタを進める第1命令220を示す。第1命令は、プロセッサ10のISA(Instruction Set Architecture)と、プログラムデータ310を配置するアドレスに応じて定義することができる。また、マクロ「INST_JUMP_REL0」がプロセッサ10のプログラムカウンタを進めない第2命令221を示している。これについても、プロセッサ10のISAに応じて定義することができる。
 第170行において、「HRDATAin」が識別情報(図ではマクロ「IDENTIFYING_CODE」として記述)と一致するか否かに応じて、マクロ「INST_NOP」および同一アドレスへのジャンプ命令(マクロ「INST_JUMP_REL0」)のうち何れかを選択する旨が記述されている。
 図5の例では、置換処理部20が1つのFFと、幾つかの組み合わせ回路により実現可能であることが示されている。
(2-2.実施形態に係る書き込み処理)
 次に、実施形態に係る不揮発性メモリ30に対する書き込み処理について説明する。図6は、実施形態に係る、不揮発性メモリ30に対する書き込み処理を示す一例のフローチャートである。この図6のフローチャートによる処理は、例えば、上述した図4のフローチャートにおけるステップS54の処理に応じて、所定のハードウェア装置としての書き込み装置を用いて実行される。
 例えば、所定の情報処理装置がプロセッサ10を制御して、プロセッサ10により図6のフローチャートによる処理を実行してよい。一例として、プロセッサ10に所定の情報処理装置としてデバッガを接続し、このデバッガによりプロセッサ10を制御して、プロセッサ10により図6のフローチャートによる処理を実行させる。この場合には、プロセッサ10が、図6のフローチャートによる処理を実行する書き込み装置として機能する。
 これに限らず、所定の情報処理装置を当該書き込み装置として用い、当該所定の情報処理装置がプロセッサ10の代わりに図6のフローチャートによる処理を実行するようにもできる。
 図6において、ステップS100で、書き込み装置は、繰り返し回数カウンタを初期化する。次のステップS101で、書き込み装置は、プログラムデータ310の不揮発性メモリ30におけるアドレスADDprgに対する書き込み処理を実行する。書き込み装置は、プログラムデータ310の不揮発性メモリ30に対する書き込みが終了すると、次のステップS102で、書き込んだプログラムデータ310に対するベリファイ処理を実行する。
 次のステップS103で、書き込み装置は、ステップS102によるベリファイ処理が成功したか否かを判定する。書き込み装置は、ベリファイ処理に失敗したと判定した場合(ステップS103、「No」)、処理をステップS110に移行させる。ステップS110で、書き込み装置は、繰り返し回数が予め定められた上限に達したか否かを判定する。書き込み装置は、繰り返し回数が上限に達していないと判定した場合(ステップS110、「No」)、処理をステップS111に移行させて、繰り返し回数カウンタを1だけインクリメントして、処理をステップS101に戻す。
 一方、書き込み装置は、ステップS110で繰り返し回数が上限に達したと判定した場合(ステップS110、「Yes」)、書き込みエラーとして、図6のフローチャートによる一連の処理を終了させる。
 書き込み装置は、上述のステップS103でベリファイ処理に成功したと判定した場合(ステップS103、「Yes」)、処理をステップS104に移行させる。
 ステップS104で、書き込み装置は、繰り返し回数カウンタを初期化する。次のステップS105で、書き込み装置は、識別情報300の不揮発性メモリ30におけるアドレスADDRV(リセットベクタ)に対する書き込み処理を実行する。書き込み装置は、識別情報300の不揮発性メモリ30に対する書き込みが終了すると、次のステップS106で、書き込んだ識別情報300に対するベリファイ処理を実行する。
 次のステップS107で、書き込み装置は、ステップS106によるベリファイ処理が成功したか否かを判定する。書き込み装置は、ベリファイ処理に失敗したと判定した場合(ステップS107、「No」)、処理をステップS120に移行させる。ステップS120で、書き込み装置は、繰り返し回数が予め定められた上限に達したか否かを判定する。なお、ここでの繰り返し回数の上限は、上述したステップS110において判定される繰り返し回数の上限と同一でもよいし、異なっていてもよい。書き込み装置は、繰り返し回数が上限に達していないと判定した場合(ステップS120、「No」)、処理をステップS121に移行させて、繰り返し回数カウンタを1だけインクリメントして、処理をステップS105に戻す。
 一方、書き込み装置は、ステップS120で繰り返し回数が上限に達したと判定した場合(ステップS120、「Yes」)、書き込みエラーとして、図6のフローチャートによる一連の処理を終了させる。
 このように、実施形態に係る不揮発性メモリ30への書き込み処理は、少なくとも、プログラムデータ310の書き込み処理と、プログラムデータ310が正しく書き込まれているかを確認するベリファイ処理と、識別情報300の書き込み処理と、識別情報300が正しく書き込まれているかを確認するベリファイ処理と、を含む。
 ここで、実施形態に係る書き込み処理では、図6のフローチャートに示すように、プログラムデータ310に対するベリファイ処理が成功した後に、識別情報300書き込み処理を行うことが好適である。このような順番で不揮発性メモリ30に対する書き込みを行うことで、プログラムデータ310が正しく書き込めなかったデバイスでは、正しい識別情報300が書き込まれないので、正しく書き込まれていないプログラムデータ310によるプログラムがプロセッサ10に実行されることを防止できる。
 以上説明したように、本開示の実施形態によれば、不揮発性メモリ30が書き込まれている場合に、当該不揮発性メモリ30に書き込まれているプログラムデータ310をプロセッサ10に実行させ、不揮発性メモリ30が書き込まれていない場合には、プロセッサ10の暴走を防ぎつつ、不揮発性メモリ30への書き込みを実行する処理を、低コストで実現できる。
 すなわち、実施形態では、不揮発性メモリ30の基板への実装後に、システムの動作モードを不揮発性メモリ30にプログラムデータ310を格納するための特別なモードに切り替えるための追加の高コストなリソース、例えば外部端子やROM、識別情報を不揮発性メモリ30から読み出すための追加のハードウェアシーケンサを持つことなく、上述の判定および書き込み制御を実現できる。
 なお、例えば量産工程においては、不揮発性メモリ30は、基板への実装直後には書き込みが行われていない。そのため、図6のフローチャートによる処理は、図4のフローチャートにおけるステップS54の処理に必ず遷移する前提で、例えばプロセッサ10のリセット解除後から一定時間を待機した後に、自動的に開始させてよい。また、不揮発性メモリ30への書き込みが行われておらず、図4のフローチャートのステップS54の処理に遷移したことを人が知る必要がある場合も有り得る。この場合には、「プロセッサ10が不揮発性メモリ30に格納されるプログラムデータ310によるプログラムを実行した場合に期待される挙動を示さないこと」を以て、図6のフローチャートによる処理を開始させることが考えられる。何れの例においても、追加の高コストのリソースを持つこと無く、図6のフローチャートによる処理を開始させることが可能となる。
(3.実施形態の変形例)
 次に、実施形態の変形例について説明する。
(3-1.実施形態の第1の変形例)
 先ず、実施形態の第1の変形例について説明する。図7は、実施形態の第1の変形例に係る情報処理装置1aの一例の構成を概略的に示すブロック図である。
 図7において、情報処理装置1aは、プロセッサ10と、置換装置としての置換処理部20と、不揮発性メモリ30とを含む。この実施形態の第1の変形例は、プロセッサ10と置換処理部20とが直接的に接続され、置換処理部20と不揮発性メモリ30とがバス40を介して接続されている例である。置換処理部20における処理、および、不揮発性メモリ30に対する書き込み処理は、上述した実施形態と同様であるので、ここでの説明を省略する。
(3-2.実施形態の第2の変形例)
 次に、実施形態の第2の変形例について説明する。図8は、実施形態の第2の変形例に係る情報処理装置1bの一例の構成を概略的に示すブロック図である。
 図8において、情報処理装置1bは、プロセッサ10と、置換装置としての置換処理部20と、不揮発性メモリ30とを含む。この実施形態の第2の変形例は、プロセッサ10と置換処理部20とがバス40を介して接続され、置換処理部20と不揮発性メモリ30とがバス41を介して接続されている例である。置換処理部20における処理、および、不揮発性メモリ30に対する書き込み処理は、上述した実施形態と同様であるので、ここでの説明を省略する。
 なお、図1、図7および図8に示した構成は、それぞれ、プロセッサ10と、置換処理部20と、不揮発性メモリ30とが同一の半導体チップ上に構成されていることを想定している。なお、半導体チップは、回路を構成した半導体ウェハをカットしたものである。
(3-3.実施形態の第3の変形例)
 次に、実施形態の第3の変形例について説明する。図9は、実施形態の第3の変形例に係る情報処理装置1cの一例の構成を概略的に示すブロック図である。
 この実施形態の第3の変形例は、図9に示されるように、情報処理装置1cが複数のチップ60および61(図ではそれぞれチップ#A、チップ#Bとしても示している)により構成される例である。チップ60は、プロセッサ10と、置換処理部20と、メモリI/F(インタフェース)50と、を含む。また、チップ61は、不揮発性メモリ30を含む。チップ60および61は、例えば単一のパッケージ内、あるいは、同一の基板上に設けられる。
 なお、パッケージは、1以上の半導体チップに端子を接続して封止したものをいう。また、基板は、パッケージの状態の半導体製品が実装される。基板に対して半導体チップが直接的に実装される場合もある。
 チップ60において、プロセッサ10がバス40を介して置換処理部20と接続され、置換処理部20は、メモリI/F50を介して、チップ61に設けられる不揮発性メモリ30に接続される。置換処理部20における処理、および、不揮発性メモリ30に対する書き込み処理は、上述した実施形態と同様であるので、ここでの説明を省略する。
 このように、複数のチップ60および61により構成される情報処理装置1cに対しても、本開示の技術を同様に適用することができる。また、図9に示す構成に限らず、プロセッサ10、置換処理部20および不揮発性メモリ30が複数のチップのうちどのチップに配されるかは、任意である。
(3-4.実施形態の第4の変形例)
 次に、実施形態の第4の変形例について説明する。実施形態の第4の変形例は、情報処理装置1が複数の置換処理部20を含む例である。
 図10は、実施形態の第4の変形例に係る情報処理装置1dの一例の構成を概略的に示すブロック図である。図10において、情報処理装置1dは、プロセッサ10と、置換処理部20aおよび20bと、不揮発性メモリ30とを含む。プロセッサ10は、置換処理部20aおよび20bと、バス40とを介して不揮発性メモリ30に接続される。また、置換処理部20aおよび20bは、不揮発性メモリ30から読み出されるリードデータに関して直列に接続されている。なお、図では、置換処理部20aおよび20bは、それぞれ置換処理部#Aおよび置換処理部#Bとしても示されている。
 図10の構成において、置換処理部20aおよび20bは、それぞれ不揮発性メモリ30の異なるアドレスに書き込まれる識別情報に基づき、プロセッサ10によるアクセスに対する判定を行う。
 図11は、実施形態の第4の変形例に適用可能な不揮発性メモリ30の一例の構成を示す模式図である。なお、図11では、不揮発性メモリ30に各データが書き込まれた状態の例を示している。
 データ書き込み済みの不揮発性メモリ30は、予め定められたアドレスADDRV-a(第1の所定のアドレス)に対して、識別情報300a(第1の識別情報、図では識別情報#1としても記載)が置かれる。アドレスADDRV-aと異なる予め定められたアドレスADDRV-b(第2の所定のアドレス)に対して、識別情報300b(第2の識別情報、図では識別情報#2としても記載)が置かれる。アドレスADDprgに、プロセッサ10がブート時に実行するプログラムのプログラムデータ310が格納される。
 アドレスADDRV-aおよびADDRV-bに置かれる各識別情報300aおよび300bは、それぞれ上述した識別情報300に対応するもので、不揮発性メモリ30が書き込み済みであるか否かを識別するための特別な語である。識別情報300aおよび300bは、互いに異なる語でもよいし、同一の語であってもよい。
 上述の識別情報300と同様に、識別情報300aおよび300bとしては、例えば不揮発性メモリ30が初期値として取り易い値がある場合、それぞれその値を避けた値が設定される。不揮発性メモリ30の初期値がランダムに決まる場合は、識別情報300aおよび300bも、それぞれランダムに決定した値を用いることが考えられる。また、識別情報300aおよび300bは、それぞれ例えばバス40のバス幅に応じたビット数(16ビット、32ビットなど)の情報とすることが好ましい。
 アドレスADDRV-aおよびADDRV-bのうち、例えばアドレスADDRV-aは、当該不揮発性メモリ30からブートするプロセッサ10が、リセット解除後に最初に命令フェッチを行うアドレスであって、リセットベクタとも呼ばれる。これに限らず、アドレスADDRV-bをリセットベクタとしてもよい。以下では、アドレスADDRV-aがリセットベクタであるものとして説明を行う。
 なお、図11では、識別情報300aおよび300bが不揮発性メモリ30上の隣接したアドレスに配置されるように示されているが、これはこの例に限定されない。すなわち、識別情報300aが配置されるアドレスADDRV-aと、識別情報300bが配置されるアドレスADDRV-bとが不連続であってもよい。
 プログラムデータ310が置かれるアドレスADDprgは、図2を用いて説明した実施形態におけるアドレスADDprgと同様であるので、ここでの説明を省略する。
 図12は、実施形態の第4の変形例に係る置換処理部20aおよび20bの一例の構成を示すブロック図である。置換処理部20aおよび20bは、同等の構成を有する。すなわち、置換処理部20aは、アクセス判定部200aと、コード判定部201aと、第1セレクタ210aと、第2セレクタ211aと、を含む。また、置換処理部20bは、アクセス判定部200bと、コード判定部201bと、第1セレクタ210bと、第2セレクタ211bと、を含む。
 図12において、例えば、置換処理部20aがリセットベクタ(この例ではアドレスADDRV-a)への命令フェッチの際に作用するものとしてよい。置換処理部20aの第1命令220aをプロセッサ10が実行することによって生じる次の命令フェッチのアドレス(第2の所定のアドレス、この例ではアドレスADDRV-b)への命令フェッチに対して置換処理部20bが作用するものとしてよい。
 置換処理部20aおよび20bの動作について、より具体的に説明する。
 アクセス判定部200bは、アドレス情報と制御信号とを取得する。不揮発性メモリ30から読み出されたリードデータが、コード判定部201bと第1セレクタ210bの第1入力端(No側)に入力される。第1セレクタ210bの第2入力端(Yes側)に、第2セレクタ211bの出力が入力される。第1セレクタ210bは、アクセス判定部200bの判定結果に応じて第1の入力端および第2入力端の何れかが選択される。第2セレクタ211bの第1入力端に第1命令220bが入力され、第2入力端に第2命令221bが入力される。第2セレクタ211bは、コード判定部201bの判定結果に応じて第1の入力端および第2入力端の何れかが選択される。
 第2命令221bは、プロセッサ10のプログラムカウンタを変化させない命令としてよい。より具体的には、第2命令221bとして、不揮発性メモリ30の現在と同じアドレス、すなわち識別情報300bへのジャンプ命令を適用してよい。プロセッサ10は、当該ジャンプ命令に応じて現在と同じアドレスへのジャンプを実行する。このとき、プロセッサ10は、プログラムカウンタを変化させない。
 アクセス判定部200aは、アドレス情報と制御信号とを取得する。置換処理部20bの第1セレクタ210bの出力が、コード判定部201aと第1セレクタ210aの第1入力端に入力される。第1セレクタ210aの第2入力端に、第2セレクタ211aの出力が入力される。第1セレクタ210aは、アクセス判定部200aの判定結果に応じて第1の入力端および第2入力端の何れかが選択される。第2セレクタ211aの第1入力端に第1命令220aが入力され、第2入力端に第2命令221aが入力される。第2セレクタ211aは、コード判定部201aの判定結果に応じて第1の入力端および第2入力端の何れかが選択される。
 例えば、アクセス判定部200aは、取得したアドレス情報に応じたアクセスがリセットベクタ(この例ではアドレスADDRV-a)に対するアクセスであるか否かを判定するものとしてよい。また、アクセス判定部200bは、取得したアドレス情報に応じたアクセスが第1命令220aをプロセッサ10が実行することによって生じる次の命令フェッチのアドレス(この例ではアドレスADDRV-b)に対するアクセスであるか否かを判定するものとしてよい。この場合において、リセットベクタに識別情報300a(第1の識別情報)を書き込み、第1命令220aをプロセッサ10が実行することによって生じる次の命令フェッチのアドレスに、識別情報300b(第2の識別情報)を書き込む。
 このような構成において、不揮発性メモリ30のリセットベクタに識別情報300aが書き込まれ、リセットベクタに対するアクセスでフェッチされた第1命令220aをプロセッサ10が実行することによって生じる次の命令フェッチのアドレスに識別情報300bが書き込まれているものとする。
 この場合において、プロセッサ10によるリセットベクタ(この例ではアドレスADDRV-a)へのアクセスに対して、置換処理部20bでは、アクセス判定部200bにより、第1セレクタ210bにおいて第1入力端(No側)が選択される。これにより、不揮発性メモリ30のリセットベクタから読み出された識別情報300aが第1セレクタ210bを介して置換処理部20aに渡され、コード判定部201aと第1セレクタ210aの第1入力端(No側)とに入力される。
 一方、置換処理部20aでは、アクセス判定部200aにより第1セレクタ210aにおいて第2入力端(Yes側)が選択される。また、第2セレクタ211aにおいて、置換処理部20bから入力された識別情報300aに応じて第1入力端(Yes側)が選択される。したがって、プロセッサ10に対して、例えば何もせずにプログラムカウンタのインクリメントさせる動作のみを実行するNOP命令である第1命令220aが渡される。
 プロセッサ10は、渡された第1命令220aに応じて、不揮発性メモリ30の、当該第1命令220aをプロセッサ10が実行することによって生じる次の命令フェッチのアドレス(この例ではアドレスADDRV-b)にアクセスし、識別情報300bを読み出す。
 プロセッサ10による識別情報300bのアドレスADDRV-bへのアクセスに対して、置換処理部20bでは、アクセス判定部200bにより、第1セレクタ210bにおいて第2入力端(Yes側)が選択される。また、コード判定部201bは、不揮発性メモリ30からのリードデータとしての識別情報300bに応じて、第2セレクタ211bにおいて第1入力端(Yes側)が選択される。これにより、例えばNOP命令である第1命令220bが、第2セレクタ211bおよび第1セレクタ210bを介して置換処理部20aに渡される。
 置換処理部20aでは、アクセス判定部200aにより第1セレクタ210aにおいて第1入力端(No側)が選択される。したがって、プロセッサ10に対して、置換処理部20bから渡された第1命令220bが渡される。
 プロセッサ10は、渡された第1命令220bに応じて、不揮発性メモリ30の、当該第1命令220bをプロセッサ10が実行することによって生じる次の命令フェッチのアドレス(例えばアドレスADDprg)にアクセスし、例えばプログラムデータ310を読み出す。
 プロセッサ10によるプログラムデータ310へのアクセスに対して、置換処理部20aの第1セレクタ210aと、置換処理部20bの第1セレクタ210bと、においてそれぞれ第1入力端(No側)が選択される。これにより、不揮発性メモリ30から読み出されたプログラムデータ310がプロセッサ10に渡される。
 なお、第1命令220aをプロセッサ10が実行することによって生じる次の命令フェッチのアドレスは、リセットベクタのアドレスと異なるアドレスとされる。また、第1命令220bをプロセッサ10が実行することによって生じる次の命令フェッチのアドレスは、リセットベクタのアドレスADDRV-aおよび識別情報300bが置かれるアドレスADDRV-bと異なるアドレスとされる。
 このように、実施形態の第4の変形例では、リセットベクタをフェッチしたときに作用する置換処理部20aに加えて、この置換処理部20aが返す第1命令220aを実行した結果に応じてフェッチするアドレスに対して作用する別の置換処理部20bを追加する。これにより、識別情報300を複数持つ(識別情報300aおよび300b)ことが可能となり、未書き込みの不揮発性メモリ30の初期値が識別情報300と偶然に一致する確率を減らすことができる。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
 なお、本技術は以下のような構成も取ることができる。
(1)
 プロセッサがブートデバイスとして用いる不揮発性メモリに対して、前記プロセッサにより前記不揮発性メモリの所定のアドレスに対する命令フェッチのアクセスが行われたか否かを判定する第1の判定部と、
 前記第1の判定部により前記所定のアドレスに対する前記命令フェッチのアクセスが行われたと判定された場合に、前記命令フェッチのアクセスにより前記不揮発性メモリから取得されたデータが、前記不揮発性メモリにプログラムデータが書き込み済みであることを示す識別情報と一致するか否かを判定する第2の判定部と、
 前記第2の判定部の判定結果に応じて、前記データを、前記プロセッサにおけるプログラムカウンタを変化させる第1命令と、前記プログラムカウンタを変化させない第2命令と、のうち何れかに置き換えて前記プロセッサに出力する置換部と、
を備える、
置換装置。
(2)
 前記置換部は、
 前記第2の判定部により、前記データが前記識別情報と一致すると判定された場合に、前記データを前記第1命令に置換し、前記データが前記識別情報と一致しないと判定された場合に、前記データを前記第2命令に置換する、
前記(1)に記載の置換装置。
(3)
 前記第1の判定部の判定結果に応じて、前記データと、前記第1命令または前記第2命令と、のうち何れを前記プロセッサに出力するかを選択する選択部、
をさらに備える、
前記(1)または(2)に記載の置換装置。
(4)
 前記第1命令は、NOP(No Operation)命令である、
前記(1)乃至(3)の何れかに記載の置換装置。
(5)
 前記第1命令は、
 前記不揮発性メモリにおける前記識別情報が置かれたアドレスと異なるアドレスへのジャンプを命令するジャンプ命令である、
前記(1)乃至(3)の何れかに記載の置換装置。
(6)
 前記第2命令は、
 前記不揮発性メモリにおける前記識別情報が置かれたアドレスへのジャンプを命令するジャンプ命令である、
前記(1)乃至(5)の何れかに記載の置換装置。
(7)
 前記所定のアドレスは、前記プロセッサがリセット解除後に最初に命令フェッチを行うために前記不揮発性メモリにアクセスするためのアドレスである、
前記(1)乃至(6)の何れかに記載の置換装置。
(8)
 プロセッサにより、前記プロセッサがブートデバイスとして用いる不揮発性メモリに対して、前記不揮発性メモリの所定のアドレスに対する命令フェッチのアクセスが行われたか否かを判定する第1の判定ステップと、
 前記第1の判定ステップにより前記所定のアドレスに対する前記命令フェッチのアクセスが行われたと判定された場合に、前記命令フェッチのアクセスにより前記不揮発性メモリから取得されたデータが、前記不揮発性メモリにプログラムデータが書き込み済みであることを示す識別情報と一致するか否かを判定する第2の判定ステップと、
 前記第2の判定ステップの判定結果に応じて、前記データを、前記プロセッサにおけるプログラムカウンタを変化させる第1命令と、前記プログラムカウンタを変化させない第2命令と、のうち何れかに置き換えて前記プロセッサに出力する置換ステップと、
を有する、
情報処理方法。
(9)
 ハードウェア装置により実行される、
 不揮発性メモリに対して、前記不揮発性メモリをブートデバイスとして用いるプロセッサがリセット解除後に最初に命令フェッチを行うために前記不揮発性メモリにアクセスするための所定のアドレスと重複しないアドレスにプログラムデータを書き込む第1の書き込みステップと、
 前記第1の書き込みステップによる前記プログラムデータの書き込み後に、前記不揮発性メモリの前記所定のアドレスに、当該不揮発性メモリに前記プログラムデータが書き込み済みであることを示す識別情報を書き込む第2の書き込みステップと、
を有する、
情報処理方法。
(10)
 前記第1の書き込みステップは、
 前記不揮発性メモリに対して前記プログラムデータを書き込む第1の書き込み処理と、
 前記第1の書き込み処理に対する第1のベリファイ処理と、
を含み、
 前記第1のベリファイ処理が成功した場合に処理が前記第2の書き込みステップに移行され、前記第1のベリファイ処理が失敗した場合に前記第1の書き込み処理を再実行し、前記第1の書き込み処理の再実行が上限回数まで繰り返されると前記第2の書き込みステップをスキップし、前記不揮発性メモリへの書き込み処理をエラー終了させる、
前記(9)に記載の情報処理方法。
(11)
 前記第2の書き込みステップは、
 前記不揮発性メモリに対する前記識別情報を書き込む第2の書き込み処理と、
 前記第2の書き込み処理に対する第2のベリファイ処理と、
を含み、
 前記第2のベリファイ処理が成功した場合に前記不揮発性メモリへの書き込み処理を正常終了させ、前記第2のベリファイ処理が失敗した場合に前記第2の書き込み処理を再実行し、前記第2の書き込み処理の再実行が上限回数まで繰り返されると前記不揮発性メモリへの書き込み処理をエラー終了させる、
前記(9)または(10)に記載の情報処理方法。
(12)
 プロセッサと、
 前記プロセッサによりブートデバイスとして用いられる不揮発性メモリと、
を備え、
 前記不揮発性メモリは、
 前記プロセッサがリセット解除後に最初に命令フェッチを行う第1の所定のアドレスに対して当該不揮発性メモリに前記プロセッサにより実行されるプログラムデータが書き込み済みであることを示す第1の識別情報の書き込みと、前記第1の所定のアドレスと重複しないアドレスに対する前記プログラムデータの書き込みと、が当該不揮発性メモリの実装後に実行される、
情報処理装置。
(13)
 前記プロセッサにより、前記不揮発性メモリに対して、前記不揮発性メモリの前記第1の所定のアドレスに対する命令フェッチのアクセスが行われたか否かを判定する第1の判定部と、
 前記第1の判定部により前記第1の所定のアドレスに対する前記命令フェッチのアクセスが行われたと判定された場合に、前記命令フェッチのアクセスにより前記不揮発性メモリから取得されたデータが、前記第1の識別情報と一致するか否かを判定する第2の判定部と、
 前記第2の判定部の判定結果に応じて、前記データを、前記プロセッサにおけるプログラムカウンタを変化させる第1命令と、前記プログラムカウンタを変化させない第2命令と、のうち何れかに置き換えて前記プロセッサに出力する第1の置換部と、
を含む第1の置換処理部をさらに備える、
前記(12)に記載の情報処理装置。
(14)
 前記第1の置換部は、
 前記第2の判定部により、前記データが前記第1の識別情報と一致すると判定された場合に、前記データを前記第1命令に置換し、前記データが前記第1の識別情報と一致しないと判定された場合に、前記データを前記第2命令に置換する、
前記(13)に記載の情報処理装置。
(15)
 前記第1の判定部の判定結果に応じて、前記データと、前記第1命令または前記第2命令と、のうち何れを前記プロセッサに出力するかを選択する第1の選択部、
をさらに備える、
前記(13)または(14)に記載の情報処理装置。
(16)
 前記第1命令は、NOP(No Operation)命令である、
前記(13)乃至(15)の何れかに記載の情報処理装置。
(17)
 前記第1命令は、
 前記不揮発性メモリにおける前記第1の識別情報が置かれたアドレスと異なるアドレスへのジャンプを命令するジャンプ命令である、
前記(13)乃至(15)の何れかに記載の情報処理装置。
(18)
 前記第2命令は、
 前記不揮発性メモリにおける前記第1の識別情報が置かれたアドレスへのジャンプを命令するジャンプ命令である、
前記(13)乃至(17)の何れかに記載の情報処理装置。
(19)
 前記プロセッサにより、前記不揮発性メモリに対して、前記不揮発性メモリの前記第1の所定のアドレスと異なる第2の所定のアドレスに対する命令フェッチのアクセスが行われたか否かを判定する第3の判定部と、
 前記第3の判定部により前記第2の所定のアドレスに対する前記命令フェッチのアクセスが行われたと判定された場合に、前記命令フェッチのアクセスにより前記不揮発性メモリから取得されたデータが、第2の識別情報と一致するか否かを判定する第4の判定部と、
 前記第4の判定部の判定結果に応じて、前記データを、前記プロセッサにおけるプログラムカウンタを変化させる第3命令と、前記プログラムカウンタを変化させない第4命令と、のうち何れかに置き換えて前記プロセッサに出力する第2の置換部と、
を含む第2の置換処理部をさらに備え、
 前記第1の置換処理部および前記第2の置換処理部は、それぞれ、前記命令フェッチのアクセスを示す情報を取得し、
 前記第2の置換部の出力が前記第1の置換部に入力される、
前記(13)乃至(18)の何れかに記載の情報処理装置。
(20)
 前記第3命令は、NOP(No Operation)命令である、
前記(19)に記載の情報処理装置。
(21)
 前記第3命令は、
 前記不揮発性メモリにおける前記第1の識別情報および前記第2の識別情報が置かれたアドレスと異なるアドレスへのジャンプを命令するジャンプ命令である、
前記(19)に記載の情報処理装置。
(22)
 前記第4命令は、
 前記不揮発性メモリにおける前記第2の識別情報が置かれたアドレスへのジャンプを命令するジャンプ命令である、
前記(19)乃至(21)の何れかに記載の情報処理装置。
1,1a,1b,1c,1d 情報処理装置
10 プロセッサ
20,20a,20b 置換処理部
30 不揮発性メモリ
40,41 バス
50 メモリI/F
60,61 チップ
200,200a,200b アクセス判定部
201,201a,201b コード判定部
210,210a,210b 第1セレクタ
211,211a,211b 第2セレクタ
220,220a,220b 第1命令
221,221a,221b 第2命令
300,300a,300b 識別情報
310 プログラムデータ

Claims (22)

  1.  プロセッサがブートデバイスとして用いる不揮発性メモリに対して、前記プロセッサにより前記不揮発性メモリの所定のアドレスに対する命令フェッチのアクセスが行われたか否かを判定する第1の判定部と、
     前記第1の判定部により前記所定のアドレスに対する前記命令フェッチのアクセスが行われたと判定された場合に、前記命令フェッチのアクセスにより前記不揮発性メモリから取得されたデータが、前記不揮発性メモリにプログラムデータが書き込み済みであることを示す識別情報と一致するか否かを判定する第2の判定部と、
     前記第2の判定部の判定結果に応じて、前記データを、前記プロセッサにおけるプログラムカウンタを変化させる第1命令と、前記プログラムカウンタを変化させない第2命令と、のうち何れかに置き換えて前記プロセッサに出力する置換部と、
    を備える、
    置換装置。
  2.  前記置換部は、
     前記第2の判定部により、前記データが前記識別情報と一致すると判定された場合に、前記データを前記第1命令に置換し、前記データが前記識別情報と一致しないと判定された場合に、前記データを前記第2命令に置換する、
    請求項1に記載の置換装置。
  3.  前記第1の判定部の判定結果に応じて、前記データと、前記第1命令または前記第2命令と、のうち何れを前記プロセッサに出力するかを選択する選択部、
    をさらに備える、
    請求項1に記載の置換装置。
  4.  前記第1命令は、NOP(No Operation)命令である、
    請求項1に記載の置換装置。
  5.  前記第1命令は、
     前記不揮発性メモリにおける前記識別情報が置かれたアドレスと異なるアドレスへのジャンプを命令するジャンプ命令である、
    請求項1に記載の置換装置。
  6.  前記第2命令は、
     前記不揮発性メモリにおける前記識別情報が置かれたアドレスへのジャンプを命令するジャンプ命令である、
    請求項1に記載の置換装置。
  7.  前記所定のアドレスは、前記プロセッサがリセット解除後に最初に命令フェッチを行うために前記不揮発性メモリにアクセスするためのアドレスである、
    請求項1に記載の置換装置。
  8.  プロセッサがブートデバイスとして用いる不揮発性メモリに対して、前記プロセッサにより前記不揮発性メモリの所定のアドレスに対する命令フェッチのアクセスが行われたか否かを判定する第1の判定ステップと、
     前記第1の判定ステップにより前記所定のアドレスに対する前記命令フェッチのアクセスが行われたと判定された場合に、前記命令フェッチのアクセスにより前記不揮発性メモリから取得されたデータが、前記不揮発性メモリにプログラムデータが書き込み済みであることを示す識別情報と一致するか否かを判定する第2の判定ステップと、
     前記第2の判定ステップの判定結果に応じて、前記データを、前記プロセッサにおけるプログラムカウンタを変化させる第1命令と、前記プログラムカウンタを変化させない第2命令と、のうち何れかに置き換えて前記プロセッサに出力する置換ステップと、
    を有する、
    情報処理方法。
  9.  ハードウェア装置により実行される、
     不揮発性メモリに対して、前記不揮発性メモリをブートデバイスとして用いるプロセッサがリセット解除後に最初に命令フェッチを行うために前記不揮発性メモリにアクセスするための所定のアドレスと重複しないアドレスにプログラムデータを書き込む第1の書き込みステップと、
     前記第1の書き込みステップによる前記プログラムデータの書き込み後に、前記不揮発性メモリの前記所定のアドレスに、当該不揮発性メモリに前記プログラムデータが書き込み済みであることを示す識別情報を書き込む第2の書き込みステップと、
    を有する、
    情報処理方法。
  10.  前記第1の書き込みステップは、
     前記不揮発性メモリに対して前記プログラムデータを書き込む第1の書き込み処理と、
     前記第1の書き込み処理に対する第1のベリファイ処理と、
    を含み、
     前記第1のベリファイ処理が成功した場合に処理が前記第2の書き込みステップに移行され、前記第1のベリファイ処理が失敗した場合に前記第1の書き込み処理を再実行し、前記第1の書き込み処理の再実行が上限回数まで繰り返されると前記第2の書き込みステップをスキップし、前記不揮発性メモリへの書き込み処理をエラー終了させる、
    請求項9に記載の情報処理方法。
  11.  前記第2の書き込みステップは、
     前記不揮発性メモリに対する前記識別情報を書き込む第2の書き込み処理と、
     前記第2の書き込み処理に対する第2のベリファイ処理と、
    を含み、
     前記第2のベリファイ処理が成功した場合に前記不揮発性メモリへの書き込み処理を正常終了させ、前記第2のベリファイ処理が失敗した場合に前記第2の書き込み処理を再実行し、前記第2の書き込み処理の再実行が上限回数まで繰り返されると前記不揮発性メモリへの書き込み処理をエラー終了させる、
    請求項9に記載の情報処理方法。
  12.  プロセッサと、
     前記プロセッサによりブートデバイスとして用いられる不揮発性メモリと、
    を備え、
     前記不揮発性メモリは、
     前記プロセッサがリセット解除後に最初に命令フェッチを行う第1の所定のアドレスに対して当該不揮発性メモリに前記プロセッサにより実行されるプログラムデータが書き込み済みであることを示す第1の識別情報の書き込みと、前記第1の所定のアドレスと重複しないアドレスに対する前記プログラムデータの書き込みと、が当該不揮発性メモリの実装後に実行される、
    情報処理装置。
  13.  前記不揮発性メモリに対して、前記プロセッサにより前記不揮発性メモリの前記第1の所定のアドレスに対する命令フェッチのアクセスが行われたか否かを判定する第1の判定部と、
     前記第1の判定部により前記第1の所定のアドレスに対する前記命令フェッチのアクセスが行われたと判定された場合に、前記命令フェッチのアクセスにより前記不揮発性メモリから取得されたデータが、前記第1の識別情報と一致するか否かを判定する第2の判定部と、
     前記第2の判定部の判定結果に応じて、前記データを、前記プロセッサにおけるプログラムカウンタを変化させる第1命令と、前記プログラムカウンタを変化させない第2命令と、のうち何れかに置き換えて前記プロセッサに出力する第1の置換部と、
    を含む第1の置換処理部をさらに備える、
    請求項12に記載の情報処理装置。
  14.  前記第1の置換部は、
     前記第2の判定部により、前記データが前記第1の識別情報と一致すると判定された場合に、前記データを前記第1命令に置換し、前記データが前記第1の識別情報と一致しないと判定された場合に、前記データを前記第2命令に置換する、
    請求項13に記載の情報処理装置。
  15.  前記第1の判定部の判定結果に応じて、前記データと、前記第1命令または前記第2命令と、のうち何れを前記プロセッサに出力するかを選択する第1の選択部、
    をさらに備える、
    請求項13に記載の情報処理装置。
  16.  前記第1命令は、NOP(No Operation)命令である、
    請求項13に記載の情報処理装置。
  17.  前記第1命令は、
     前記不揮発性メモリにおける前記第1の識別情報が置かれたアドレスと異なるアドレスへのジャンプを命令するジャンプ命令である、
    請求項13に記載の情報処理装置。
  18.  前記第2命令は、
     前記不揮発性メモリにおける前記第1の識別情報が置かれたアドレスへのジャンプを命令するジャンプ命令である、
    請求項13に記載の情報処理装置。
  19.  前記不揮発性メモリに対して、前記プロセッサにより前記不揮発性メモリの前記第1の所定のアドレスと異なる第2の所定のアドレスに対する命令フェッチのアクセスが行われたか否かを判定する第3の判定部と、
     前記第3の判定部により前記第2の所定のアドレスに対する前記命令フェッチのアクセスが行われたと判定された場合に、前記命令フェッチのアクセスにより前記不揮発性メモリから取得されたデータが、第2の識別情報と一致するか否かを判定する第4の判定部と、
     前記第4の判定部の判定結果に応じて、前記データを、前記プロセッサにおけるプログラムカウンタを変化させる第3命令と、前記プログラムカウンタを変化させない第4命令と、のうち何れかに置き換えて前記プロセッサに出力する第2の置換部と、
    を含む第2の置換処理部をさらに備え、
     前記第1の置換処理部および前記第2の置換処理部は、それぞれ、前記命令フェッチのアクセスを示す情報を取得し、
     前記第2の置換部の出力が前記第1の置換部に入力される、
    請求項13に記載の情報処理装置。
  20.  前記第3命令は、NOP(No Operation)命令である、
    請求項19に記載の情報処理装置。
  21.  前記第3命令は、
     前記不揮発性メモリにおける前記第1の識別情報および前記第2の識別情報が置かれたアドレスと異なるアドレスへのジャンプを命令するジャンプ命令である、
    請求項19に記載の情報処理装置。
  22.  前記第4命令は、
     前記不揮発性メモリにおける前記第2の識別情報が置かれたアドレスへのジャンプを命令するジャンプ命令である、
    請求項19に記載の情報処理装置。
PCT/JP2022/046150 2021-12-27 2022-12-15 置換装置、情報処理方法および情報処理装置 WO2023127516A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021212953 2021-12-27
JP2021-212953 2021-12-27

Publications (1)

Publication Number Publication Date
WO2023127516A1 true WO2023127516A1 (ja) 2023-07-06

Family

ID=86998767

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/046150 WO2023127516A1 (ja) 2021-12-27 2022-12-15 置換装置、情報処理方法および情報処理装置

Country Status (1)

Country Link
WO (1) WO2023127516A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297561A (ja) * 2001-03-30 2002-10-11 Hitachi Ltd マイクロコンピュータ
JP2005242510A (ja) * 2004-02-25 2005-09-08 Matsushita Electric Ind Co Ltd 情報処理装置の命令使用権限設定方法及び情報処理装置
JP2008165729A (ja) * 2006-12-07 2008-07-17 Denso Corp マイクロコンピュータ
JP2019087171A (ja) * 2017-11-10 2019-06-06 キヤノン株式会社 撮像装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297561A (ja) * 2001-03-30 2002-10-11 Hitachi Ltd マイクロコンピュータ
JP2005242510A (ja) * 2004-02-25 2005-09-08 Matsushita Electric Ind Co Ltd 情報処理装置の命令使用権限設定方法及び情報処理装置
JP2008165729A (ja) * 2006-12-07 2008-07-17 Denso Corp マイクロコンピュータ
JP2019087171A (ja) * 2017-11-10 2019-06-06 キヤノン株式会社 撮像装置

Similar Documents

Publication Publication Date Title
US6075941A (en) Microcomputer
US7246269B1 (en) Efficient memory check architecture and method
US5263168A (en) Circuitry for automatically entering and terminating an initialization mode in a data processing system in response to a control signal
US8095834B2 (en) Macro and command execution from memory array
US20130024724A1 (en) Processor and method of controlling execution of processes
KR20120112454A (ko) 분산된 멀티코어 메모리 초기화
WO2005073850A1 (ja) 半導体装置及びその起動処理方法
US7251744B1 (en) Memory check architecture and method for a multiprocessor computer system
US20080148034A1 (en) Method and apparatus for booting independent operating systems in a multi-processor core integrated circuit
KR20170031758A (ko) 역방향 메모리 스페어링을 위한 방법 및 장치
JP2010500682A (ja) フラッシュメモリアクセス回路
US20180275731A1 (en) Processor reset vectors
KR19980069757A (ko) 마이크로프로세서 및 멀티프로세서 시스템
US6839869B2 (en) Trace control circuit for tracing CPU operation in real time
KR100607992B1 (ko) 낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을부팅하기 위한 방법 및 시스템
US7096351B2 (en) Single-chip microcomputer and boot region switching method thereof
US20080155309A1 (en) Memory card and debugging method employed by the same
WO2023127516A1 (ja) 置換装置、情報処理方法および情報処理装置
US20050044345A1 (en) Program processing device
JP4471947B2 (ja) データ処理装置及びデータ処理方法
US7519802B2 (en) System and method for configuring a computer system
US7047444B2 (en) Address selection for testing of a microprocessor
US11138140B2 (en) Configuring first subsystem with a master processor and a second subsystem with a slave processor
JP2010134789A (ja) 要求処理装置、要求処理システムおよびアクセス試験方法
US5826059A (en) Microcomputer for emulation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22915740

Country of ref document: EP

Kind code of ref document: A1