JP2020009498A - Memory controller and memory control method - Google Patents

Memory controller and memory control method Download PDF

Info

Publication number
JP2020009498A
JP2020009498A JP2019186816A JP2019186816A JP2020009498A JP 2020009498 A JP2020009498 A JP 2020009498A JP 2019186816 A JP2019186816 A JP 2019186816A JP 2019186816 A JP2019186816 A JP 2019186816A JP 2020009498 A JP2020009498 A JP 2020009498A
Authority
JP
Japan
Prior art keywords
area
rewrite
program
memory
data
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.)
Granted
Application number
JP2019186816A
Other languages
Japanese (ja)
Other versions
JP6803957B2 (en
Inventor
智晃 安藤
Tomoaki Ando
智晃 安藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lapis Semiconductor Co Ltd
Original Assignee
Lapis Semiconductor Co Ltd
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 Lapis Semiconductor Co Ltd filed Critical Lapis Semiconductor Co Ltd
Priority to JP2019186816A priority Critical patent/JP6803957B2/en
Publication of JP2020009498A publication Critical patent/JP2020009498A/en
Application granted granted Critical
Publication of JP6803957B2 publication Critical patent/JP6803957B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)

Abstract

To provide a memory controller and a memory control method with which it is possible to flexibly set a memory area by a simple method.SOLUTION: Provided is a memory controller for controlling a memory in a microcomputer system including a memory in which instructions for executing a program are stored and a central processing unit that executes a program in accordance with instructions specified by a program counter in which addresses corresponding to instructions are stored in order and which sequentially reads out the addresses and specifies corresponding instructions, comprising: a designated address register for holding the addresses stored in the program counter; a post-translation instruction holding part for holding post-translation instructions different from the pre-translation instructions of the memory corresponding to the designated addresses; and an instruction translation part for sending a post-translation instruction to the central processing unit as an instruction for executing the program when the address read out from the program counter matches the designated address held in the designated address register.SELECTED DRAWING: Figure 2

Description

本発明は、メモリ制御装置及びメモリ制御方法に関し、特に、CPU(Central Processing Unit:中央演算処理装置)及びその制御下にあるメモリを備えたマイクロコンピュータシステムにおいて、該メモリの記憶領域等の制御を実行するメモリ制御装置及びメモリ制御方法に関する。   The present invention relates to a memory control device and a memory control method, and in particular, in a microcomputer system including a CPU (Central Processing Unit) and a memory under the control thereof, controls a storage area and the like of the memory. The present invention relates to a memory control device and a memory control method to be executed.

マイクロコンピュータシステムにおいて処理の対象となるプログラムデータは、通常記憶装置(メモリ、例えばフラッシュ(FLASH)メモリ等の不揮発性メモリ)に格納されている。そして、該プログラムに基づく所定の処理の実行は、CPUが具備するプログラムカウンタ(PC)でプログラムデータが格納されたメモリのアドレスが逐次指定され、当該アドレスのプログラムデータが読み出され、そのプログラムデータを命令として実行することにより行われる。   Program data to be processed in the microcomputer system is usually stored in a storage device (a memory, for example, a nonvolatile memory such as a flash (FLASH) memory). The execution of the predetermined processing based on the program is performed by sequentially specifying addresses of a memory in which program data is stored by a program counter (PC) provided in the CPU, reading out the program data at the address, and reading the program data. Is executed as an instruction.

CPUによる処理の実行においては、プログラム上の不具合の修正等のために、処理の内容や順序の変更等を要求される場合がある。処理を変更させる従来技術の一例として、リマップがある。リマップとは、PCに基づくプログラムの実行中において、PCで指定されたメモリの領域に、CPUが本来実行するプログラム空間とは異なったプログラム空間が見えるようにし、その異なったプログラム空間の命令を実行させることにより処理の内容を変更する技術である。   In the execution of processing by the CPU, a change in the contents or order of the processing may be required to correct a defect in the program. One example of a conventional technique for changing the processing is remapping. Remapping means that during execution of a program based on a PC, a program space different from the program space originally executed by the CPU can be seen in a memory area designated by the PC, and instructions in the different program space are executed. This is a technique for changing the content of the processing by causing the processing to be performed.

上記のようなリマップ機能について開示した文献として、特許文献1に記載された割り込み制御装置がある。特許文献1に開示された割り込み制御装置は、CPU、メモリ、割り込みコントローラ、リマップ回路を含み、リマップ回路は、リマップレジスタ領域と、セレクタとを含んで構成されている。リマップレジスタ領域は、割り込み要求の数に対応した数のレジスタで構成されており、各レジスタは、同一のメモリ上のアドレスにマッピングされるレジスタであって、各レジスタには、割り込み要求番号に対応した割り込み処理ルーチンへのジャンプ命令が格納されている。セレクタは、割り込みコントローラから通知された割り込み要求番号に基づいて、リマップレジスタ領域内のレジスタから、割り込み要求に対応した割り込み処理ルーチンへのジャンプ命令が格納されたレジスタを1つ選択して、メモリ上の割り込みベクタアドレスにマッピングすることにより、マッピング機能を実現している。   As a document that discloses the remapping function as described above, there is an interrupt control device described in Patent Document 1. The interrupt control device disclosed in Patent Literature 1 includes a CPU, a memory, an interrupt controller, and a remap circuit, and the remap circuit is configured to include a remap register area and a selector. The remap register area includes a number of registers corresponding to the number of interrupt requests.Each register is a register mapped to an address on the same memory, and each register has an interrupt request number. A jump instruction to a corresponding interrupt processing routine is stored. The selector selects one of the registers in which the jump instruction to the interrupt processing routine corresponding to the interrupt request is stored from the registers in the remap register area based on the interrupt request number notified from the interrupt controller. The mapping function is realized by mapping to the above interrupt vector address.

一方、メモリは、プログラム領域、データ領域等の特定の属性を伴った領域に分割されているのが一般的である。プログラム領域とは、プログラム処理の命令を記憶しておく領域である。また、データ領域とは、プログラム処理に伴って必要となるデータを記憶する領域であり、プログラム処理の実行に際しデータが読み出されたり、書き込まれたりする領域である。また、メモリの特定の領域を、書き換え可能領域、あるいは書き換え不可(ライトプロテクト)領域として指定したい場合もある。   On the other hand, the memory is generally divided into areas having specific attributes such as a program area and a data area. The program area is an area for storing program processing instructions. The data area is an area for storing data necessary for the program processing, and is an area from which data is read or written when the program processing is executed. In some cases, it is desired to designate a specific area of the memory as a rewritable area or a non-rewritable (write-protected) area.

読み出し、書き込みの制御に関する従来技術として、フラッシュメモリ等のメモリの一部に予め所定のデータを配置しておき、そのデータをフラッシュメモリに搭載されているロジック回路で読み込み、そのデータのコードオプションを用いて外部からメモリをコントロールすることにより、読み出し、あるいは書き込み機能を制限するブロックイネーブルなどが知られている。   As a conventional technique related to reading and writing control, predetermined data is arranged in a part of a memory such as a flash memory in advance, and the data is read by a logic circuit mounted on the flash memory, and a code option of the data is set. There is known a block enable that limits a read or write function by controlling a memory from the outside by using the memory.

また、ライトプロテクト機能のない不揮発性メモリにおいて、不揮発性のライトプロテクトを実現する従来技術として、特許文献2に開示された半導体情報処理装置が知られている。特許文献2に開示された半導体情報処理装置では、ライトプロテクトを行いたいエリアのアドレスを格納するライトプロテクト保存レジスタが、フラッシュメモリのアトリビュート領域に設定され、このライトプロテクト保存レジスタを用いてシステムからプロテクト範囲が設定されるようになっている。   Further, in a nonvolatile memory having no write protection function, a semiconductor information processing device disclosed in Patent Document 2 is known as a conventional technique for implementing nonvolatile write protection. In the semiconductor information processing device disclosed in Patent Literature 2, a write protection storage register for storing an address of an area where write protection is to be performed is set in an attribute area of a flash memory, and the system is protected by using the write protection storage register. A range is set.

特開2012−141667号公報JP 2012-141667 A 特開2007−207277号公報JP 2007-207277 A

しかしながら、特許文献1に開示されたようなリマップでは、PCを指定することによって、通常のメモリ領域とは異なる領域のデータをCPUに見せるという方法でプログラムを実行するため、そのプログラム領域の確保が必要となり、メモリの容量の制限等の理由から、同時に多くのリマップ機能を使用することは難しいという問題点があった。   However, in the remapping method disclosed in Patent Literature 1, a program is executed in such a manner that data of an area different from a normal memory area is shown to a CPU by designating a PC. However, there is a problem that it is difficult to use many remapping functions at the same time due to the limitation of the memory capacity and the like.

また、特許文献2に開示されたようなライトプロテクトでは、メモリに対しアクセスの制限を設定することはできるが、メモリのブロック単位での、書き込み、読み出し、あるいは消去といった動作を禁止することしかできず、様々なソフトウエア・アプリケーションに合わせて、メモリを使用することができないという問題点があった。   In the write protection disclosed in Patent Document 2, it is possible to set access restrictions on a memory, but it is only possible to prohibit operations such as writing, reading, or erasing in memory block units. However, there is a problem that the memory cannot be used in accordance with various software applications.

本発明は、上述した課題を解決するためになされたものであり、簡易な方法でかつ柔軟にメモリの領域設定を行うことが可能なメモリ制御装置及びメモリ制御方法を提供することを目的とする。   SUMMARY An advantage of some aspects of the invention is to provide a memory control device and a memory control method capable of setting a memory area in a simple manner and flexibly. .

また、本発明に係るメモリ制御装置は、プログラムを実行するための命令が記憶されたプログラム領域、プログラムの実行に伴うデータが記憶されるデータ領域、及びメモリ空間の分割方法を指定する書き換え設定データが記憶された設定データ領域を含むメモリ、及び、前記プログラムに従って前記メモリに記憶された命令を逐次特定してプログラムを実行する中央処理装置を含むマイクロコンピュータシステムにおける前記メモリを制御するメモリ制御装置であって、前記書き換え設定データの値を保持する書き換え設定レジスタと、前記設定データ領域を読み出し、読み出した書き換え設定データの値を前記書き換え設定レジスタに保持させると共に、前記書き換え設定レジスタに保持された前記書き換え設定データの値に基づいて前記メモリ空間の領域分割を設定する設定部と、を備える。   Further, the memory control device according to the present invention includes a program area in which an instruction for executing the program is stored, a data area in which data associated with the execution of the program is stored, and rewrite setting data for specifying a memory space dividing method. A memory control device that controls the memory in a microcomputer system including a memory including a setting data area in which a memory is stored, and a central processing unit that sequentially specifies an instruction stored in the memory according to the program and executes the program. And a rewrite setting register for holding the value of the rewrite setting data, reading the setting data area, holding the read rewrite setting data value in the rewrite setting register, and holding the rewrite setting register. Previous based on the value of the rewrite setting data Comprising a setting unit for setting the area division of the memory space, the.

また、本発明に係るメモリ制御方法は、プログラムを実行するための命令が記憶されたプログラム領域、プログラムの実行に伴うデータが記憶されるデータ領域、及びメモリ空間の分割方法を指定する書き換え設定データが記憶された設定データ領域を含むメモリ、及び、前記プログラムに従って前記メモリに記憶された命令を逐次特定してプログラムを実行する中央処理装置を含むマイクロコンピュータシステムにおける前記メモリを制御するメモリ制御方法であって、設定部により、前記設定データ領域を読み出し、読み出した書き換え設定データの値を書き換え設定レジスタに保持させると共に、前記書き換え設定レジスタに保持された前記書き換え設定データの値に基づいて前記メモリ空間の領域分割を設定する。   In addition, the memory control method according to the present invention includes a program area in which an instruction for executing a program is stored, a data area in which data associated with the execution of the program is stored, and rewrite setting data for specifying a memory space dividing method. A memory control method for controlling the memory in a microcomputer system including a memory including a setting data area in which a program is stored, and a central processing unit that sequentially specifies an instruction stored in the memory according to the program and executes the program The setting unit reads the setting data area, holds the value of the read rewriting setting data in the rewriting setting register, and sets the memory space based on the value of the rewriting setting data held in the rewriting setting register. Set the area division.

本発明によれば、簡易な方法でかつ柔軟にメモリの領域設定を行うことが可能なメモリ制御装置及びメモリ制御方法を提供することが可能となる。   According to the present invention, it is possible to provide a memory control device and a memory control method capable of setting a memory area flexibly with a simple method.

実施の形態に係るマイクロコンピュータシステムの構成の一例を示す機能ブロック図である。FIG. 1 is a functional block diagram illustrating an example of a configuration of a microcomputer system according to an embodiment. 第1の実施の形態に係るメモリ制御装置の構成の一例を示す機能ブロック図、及び命令変換レジスタセット内容の一例を示す模式図である。FIG. 2 is a functional block diagram illustrating an example of a configuration of a memory control device according to the first embodiment, and a schematic diagram illustrating an example of instruction conversion register set contents. 第1の実施の形態に係る命令変換部の構成の一例を示す機能ブロック図である。FIG. 3 is a functional block diagram illustrating an example of a configuration of an instruction conversion unit according to the first embodiment. 第1の実施の形態に係る設定回路を用いた命令変換を説明するための模式図である。FIG. 4 is a schematic diagram for explaining instruction conversion using the setting circuit according to the first embodiment. 第2の実施の形態に係るメモリ制御装置の構成の一例を示す機能ブロック図、及び命令変換レジスタセット内容の一例を示す模式図である。FIG. 9 is a functional block diagram illustrating an example of a configuration of a memory control device according to a second embodiment, and a schematic diagram illustrating an example of instruction conversion register set contents. 第2の実施の形態に係る設定レジスタを用いた命令変換を説明するための模式図である。FIG. 13 is a schematic diagram for explaining instruction conversion using a setting register according to the second embodiment. 第3の実施の形態に係る複数のプログラムカウンタによる命令変換を説明するための模式図である。It is a schematic diagram for explaining instruction conversion by a plurality of program counters according to the third embodiment. 第4の実施の形態に係るメモリ制御装置の構成の一例を示す機能ブロック図、及び書き換え設定レジスタセットの内容の一例を示す模式図である。FIG. 19 is a functional block diagram illustrating an example of a configuration of a memory control device according to a fourth embodiment, and a schematic diagram illustrating an example of the contents of a rewrite setting register set. 第4の実施の形態に係るメモリ制御装置の動作を説明するための模式図である。FIG. 14 is a schematic diagram for explaining an operation of the memory control device according to the fourth embodiment. 第4の実施の形態に係るメモリの領域分割の一例を示す模式図である。FIG. 14 is a schematic diagram illustrating an example of area division of a memory according to a fourth embodiment. 第4の実施の形態に係るメモリの領域分割の一例を示す模式図である。FIG. 14 is a schematic diagram illustrating an example of area division of a memory according to a fourth embodiment. 第4の実施の形態に係るメモリの領域分割の一例を示す模式図である。FIG. 14 is a schematic diagram illustrating an example of area division of a memory according to a fourth embodiment.

以下、図面を参照して、本発明を実施するための形態について詳細に説明する。   Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings.

[第1の実施の形態]
図1ないし図4を参照して、本実施の形態に係るメモリ制御装置について説明する。本実施の形態に係るメモリ制御装置は、予め設けた設定回路でCPUのプログラムカウンタ(PC)を指定することにより、指定されたPCの命令が、メモリに格納された本来実行すべき命令ではなく、ハードウエアで疑似的に設定された命令に変換され、CPUによって当該変換された命令が実行される機能(命令変換機能)を有する。以下では、変換後に実行される命令が、ジャンプ命令(擬似ジャンプ命令)である場合を例示して説明する。
[First Embodiment]
A memory control device according to the present embodiment will be described with reference to FIGS. The memory control device according to the present embodiment specifies the program counter (PC) of the CPU by using a setting circuit provided in advance, so that the specified instruction of the PC is not the instruction stored in the memory but to be executed originally. Has a function (instruction conversion function) of being converted into an instruction set artificially by hardware and executing the converted instruction by the CPU. Hereinafter, an example in which the instruction executed after the conversion is a jump instruction (pseudo jump instruction) will be described.

図1は、実施の形態に係るマイクロコンピュータシステム1を示す機能ブロック図である。図1に示すように、マイクロコンピュータシステム1は、メモリ制御装置10、メモリ12、及びCPU14を含んで構成されている。メモリ制御装置10は、本実施の形態に係るメモリ制御装置である。メモリ12の種類は特に限定されないが、本実施の形態では、フラッシュメモリのような不揮発性メモリを想定している。CPU14は、一般的なCPUであり、内部にプログラムカウンタ140を備えている。   FIG. 1 is a functional block diagram showing a microcomputer system 1 according to the embodiment. As shown in FIG. 1, the microcomputer system 1 includes a memory control device 10, a memory 12, and a CPU 14. The memory control device 10 is a memory control device according to the present embodiment. Although the type of the memory 12 is not particularly limited, in the present embodiment, a nonvolatile memory such as a flash memory is assumed. The CPU 14 is a general CPU and includes a program counter 140 therein.

図2(a)に本実施の形態に係るメモリ制御装置10の機能ブロック図を示す。図2(a)に示すように、メモリ制御装置10は、命令変換部100、変換後命令設定回路112、及び命令変換レジスタセット120を含んで構成されている。   FIG. 2A shows a functional block diagram of the memory control device 10 according to the present embodiment. As shown in FIG. 2A, the memory control device 10 includes an instruction conversion unit 100, a converted instruction setting circuit 112, and an instruction conversion register set 120.

図2(b)に、本実施の形態に係る命令変換レジスタセット120に含まれるレジスタの内容を示す。図2(b)に示すように、命令変換レジスタセット120は、以下の3つのレジスタが含まれている。   FIG. 2B shows the contents of the registers included in the instruction conversion register set 120 according to the present embodiment. As shown in FIG. 2B, the instruction conversion register set 120 includes the following three registers.

すなわち、「PCON」レジスタは、メモリ制御装置10の命令変換機能を使用するか否かについての指定を格納するレジスタであり、本実施の形態では、論理値=1で使用する、論理値=0で使用しないとしている。むろんこの対応関係は逆の論理値であってもよい。「CSR」レジスタは、命令変換の対象となるPC(以下、「指定PC」という)の、メモリ12におけるセグメントデータを格納するレジスタである。「PC指定」レジスタは、指定PCのアドレスデータを格納するレジスタである。   That is, the “PCON” register is a register that stores a specification as to whether or not to use the instruction conversion function of the memory control device 10. In the present embodiment, the “PCON” register is used when the logical value = 1 and the logical value = 0. They do not use it. Of course, this correspondence may be a reverse logical value. The “CSR” register is a register for storing segment data in the memory 12 of a PC to be converted into an instruction (hereinafter, “designated PC”). The “PC designation” register is a register for storing address data of the designated PC.

変換後命令設定回路112は、変換後の命令を設定する回路であり、当該命令を4桁の16進数で指定するハードウエア回路である。   The post-conversion command setting circuit 112 is a circuit for setting a post-conversion command, and is a hardware circuit that specifies the command using a 4-digit hexadecimal number.

図3(a)に本実施の形態に係る命令変換部100の構成の一例を示す。図3(a)に示すように、命令変換部100は、AND回路102、OR回路104、及びセレクタ106、108、110を含んで構成されている。各セレクタに付与された(1)及び(0)は入力端子を表す符合であり、各々セレクト信号の論理値が「1」の場合に、及び「0」の場合に選択される入力端子であることを示している。命令変換部100の一部である、AND回路102、OR回路104、及びセレクタ106、108を含む回路を、便宜上「選択回路114」といい、選択回路114におけるAND回路102の出力端子を符号「a」で表記し、セレクタ106の出力端子を符号「b」で表記する。   FIG. 3A shows an example of the configuration of the instruction conversion section 100 according to the present embodiment. As shown in FIG. 3A, the instruction conversion unit 100 includes an AND circuit 102, an OR circuit 104, and selectors 106, 108, and 110. (1) and (0) given to each selector are codes representing input terminals, and are input terminals selected when the logic value of the select signal is “1” and “0”, respectively. It is shown that. A circuit including the AND circuit 102, the OR circuit 104, and the selectors 106 and 108, which is a part of the instruction conversion unit 100, is referred to as a “selection circuit 114” for convenience, and the output terminal of the AND circuit 102 in the selection circuit 114 is denoted by “ a ”, and the output terminal of the selector 106 is denoted by a symbol“ b ”.

図3(a)に示すように、変換後命令設定回路112の出力「INST1」及び「INST2」は、セレクタ106の(1)入力端子、及びセレクタ108の(1)端子入力に各々接続されている。なお、変換後の命令を示す変換後命令設定回路112の出力が2つあるのは、本実施の形態で想定しているジャンプ命令が2ワードで構成されるためであり、各々4桁の16進数で表されている。変換後命令INST1が上位1ワード分の命令を、変換後命令INST2が下位1ワード分の命令を各々示している。むろん、変換後命令が1ワード命令の場合は、変換後命令設定回路112の出力は、1つの変換後命令INSTである。   As shown in FIG. 3A, the outputs “INST1” and “INST2” of the post-conversion instruction setting circuit 112 are connected to the (1) input terminal of the selector 106 and the (1) terminal input of the selector 108, respectively. I have. The output of the post-conversion instruction setting circuit 112 indicating the post-conversion instruction is two because the jump instruction assumed in the present embodiment is composed of two words, each of which has four digits of 16 bits. Expressed in hexadecimal. The converted instruction INST1 indicates an instruction for one upper word, and the converted instruction INST2 indicates an instruction for one lower word. Of course, when the converted instruction is a one-word instruction, the output of the converted instruction setting circuit 112 is one converted instruction INST.

次に、命令変換部100の動作について説明する。まず、指定PCのセグメントデータをCSRレジスタに、指定PCのアドレスデータをPC指定レジスタに設定し、本来実行されるべき命令を疑似ジャンプ命令に変換したいPCを設定する。次に、PCONレジスタを論理値「1」に設定して、本命令変換機能を使用することを指定する。   Next, the operation of the instruction conversion unit 100 will be described. First, the segment data of the designated PC is set in the CSR register, the address data of the designated PC is set in the PC designation register, and the PC to be converted from the instruction to be executed to the pseudo jump instruction is set. Next, the PCON register is set to a logical value “1” to specify that the present instruction conversion function is to be used.

PCONレジスタが有効の場合、CPUが保有するPCのセグメントデータ(CPU_CSR)とCSRレジスタのセグメントデータとの比較処理、及びCPUが保有するPCのアドレスデータ(CPU_PC)とPC指定レジスタのアドレスデータとの比較処理が実行される。比較結果が一致しない場合は何も処理を行わないが、一致した場合は、CPUに出力されるデータCPU_DINが、メモリに記憶されているデータ(メモリデータ)から、変換後命令設定回路112が出力する変換後命令INST1及びINST2、すなわち、本実施の形態では、疑似ジャンプ命令1及び擬似ジャンプ命令2のデータに変換される。   When the PCON register is valid, the CPU compares the segment data of the PC held by the CPU (CPU_CSR) with the segment data of the CSR register, and compares the PC address data held by the CPU (CPU_PC) with the address data of the PC designation register. A comparison process is performed. If the comparison results do not match, no processing is performed, but if they do match, the data CPU_DIN output to the CPU is output from the data (memory data) stored in the memory by the post-conversion instruction setting circuit 112. The converted instructions INST1 and INST2 are converted into data of the pseudo jump instruction 1 and the pseudo jump instruction 2 in this embodiment.

以上の動作を実現する回路の一例について、図3(a)に示す命令変換部100のブロック図に基づいて説明する。なお、図3(a)において、記号X==Yは、XとYが一致した場合には論理値「1」とし、一致しない場合には論理値「0」とすることを表記する記号である。すなわち、PCONレジスタと1が比較され一致した場合(つまり、PCONレジスタの値が「1」の場合)に論理値「1」とされ、CSRレジスタとCPU_CSRとの比較結果が一致した場合に論理値「1」とされ、PC指定レジスタとCPU_PCとの比較結果が一致した場合には論理値「1」とされる。   An example of a circuit that realizes the above operation will be described based on a block diagram of the instruction conversion unit 100 shown in FIG. In FIG. 3A, the symbol X == Y is a symbol indicating that the logical value is “1” when X and Y match, and that the logical value is “0” when X and Y do not match. is there. That is, when the PCON register and 1 are compared and matched (that is, when the value of the PCON register is “1”), the logical value is set to “1”. When the comparison result between the CSR register and CPU_CSR matches, the logical value is set. It is set to "1", and when the comparison result between the PC designation register and CPU_PC matches, the logical value is set to "1".

AND回路102は3入力AND回路であり、PCONレジスタの論理値と、CSRレジスタとCPU_CSRとの比較結果と、PC指定レジスタとCPU_PCとの比較結果が入力さる。AND回路102の出力は、3つの入力の論理値がすべて「1」の場合に「1」を出力し、その他の場合に論理値「0」を出力する。   The AND circuit 102 is a three-input AND circuit, and receives the logical value of the PCON register, the comparison result between the CSR register and CPU_CSR, and the comparison result between the PC designation register and CPU_PC. The output of the AND circuit 102 outputs “1” when the logical values of all three inputs are “1”, and outputs the logical value “0” otherwise.

AND回路102の出力によってセレクタ110が切り換えられ、AND回路102の出力が「0」の場合にはメモリ12に記憶されたデータであるメモリデータが、AND回路102の出力が「1」の場合には擬似ジャンプ命令が選択され、CPU_DINデータとしてバス16に出力される。出力されたCPU_DINデータはCPU14に取り込まれ、実行される。   The selector 110 is switched by the output of the AND circuit 102, and when the output of the AND circuit 102 is “0”, the memory data that is the data stored in the memory 12 is output when the output of the AND circuit 102 is “1”. Is selected, and is output to the bus 16 as CPU_DIN data. The output CPU_DIN data is taken into the CPU 14 and executed.

OR回路104は2入力OR回路であり、PC指定レジスタとCPU_PCとの比較結果と、PC指定レジスタ+1とCPU_PCとの比較結果と、が入力され、いずれか一方が一致した場合に論理値「1」を出力する。PC指定レジスタ+1はPC指定レジスタの次のレジスタを意味している。つまり、本実施の形態では、2ワードの命令を前提としている。   The OR circuit 104 is a two-input OR circuit, which receives a comparison result between the PC designation register and the CPU_PC and a comparison result between the PC designation register +1 and the CPU_PC. Is output. The PC designation register +1 means the register next to the PC designation register. That is, in the present embodiment, a two-word instruction is assumed.

PC指定レジスタとCPU_PCとの比較結果が一致した場合には、OR回路104の一方の入力に論理値「1」が入力されると共に、セレクタ106において、(1)入力端子の変換後命令INST1が選択され、セレクタ110で(1)入力端子が選択されている場合には、INST1がCPU_DINとして出力される。   When the comparison result between the PC designation register and the CPU_PC matches, a logical value “1” is input to one input of the OR circuit 104, and the selector 106 outputs (1) the instruction INST1 after the conversion of the input terminal. When the input terminal is selected and the selector 110 selects the (1) input terminal, INST1 is output as CPU_DIN.

また、PC指定レジスタ+1とCPU_PCとの比較結果が一致した場合には、OR回路104の他方の入力に論理値「1」が入力されると共に、セレクタ108において、(1)入力端子の変換後命令INST2が選択される。この際、セレクタ106のセレクト信号は論理値「0」となっているので、セレクタ106ではセレクタ108の出力に接続された(0)入力端子が選択され、セレクタ110で(1)入力端子が選択されている場合には、INST2がCPU_DINとして出力される。   When the comparison result between the PC designation register +1 and the CPU_PC matches, a logical value “1” is input to the other input of the OR circuit 104, and the selector 108 outputs (1) after the conversion of the input terminal. The instruction INST2 is selected. At this time, since the select signal of the selector 106 has the logical value “0”, the selector 106 selects the (0) input terminal connected to the output of the selector 108 and the selector 110 selects the (1) input terminal. If it is, INST2 is output as CPU_DIN.

命令変換部100は以上のように動作し、PCで指定された本来CPUが実行すべき命令を他の命令に変換し、つまり、本実施の形態では擬似ジャンプ命令に変換し、当該擬似ジャンプ命令を実行する。   The instruction conversion unit 100 operates as described above, and converts an instruction designated by the PC, which should be executed by the CPU, into another instruction. That is, in the present embodiment, the instruction conversion unit 100 converts the instruction into a pseudo jump instruction. Execute

次に、図4を参照して、命令変換部100の動作とメモリ12の記憶領域との関係について説明するが、まず上述した命令変換部100の動作を以下にまとめて記す。
[1]CSRレジスタ及びPC指定レジスタにデータを格納する。本例では、このデータを0:0330H(セグメント=0、アドレス=0330H、以下これらのデータを「設定データ」という)とする。
[2]PCONを論理値「1」に設定し、本機能を有効にする。
[3]CSRレジスタの値とCPU_CSRとの比較処理、PC指定レジスタとCPU_PCとの比較処理を実行する。
[4]上記の比較結果がいずれも一致した場合に、変換後命令設定回路112で、ハードウエア的に設定したメモリのアドレスにジャンプする命令を実行する。
[5]ジャンプ先で指定された処理を実行し、予め定められた条件でジャンプ元に戻る。
Next, the relationship between the operation of the instruction conversion unit 100 and the storage area of the memory 12 will be described with reference to FIG. 4. First, the operation of the above-described instruction conversion unit 100 will be summarized below.
[1] Store data in the CSR register and the PC designation register. In this example, this data is assumed to be 0: 0330H (segment = 0, address = 0330H, hereinafter referred to as “setting data”).
[2] Set PCON to a logical value “1” to enable this function.
[3] A comparison process between the value of the CSR register and CPU_CSR and a comparison process between the PC designation register and CPU_PC are executed.
[4] If all the comparison results match, the post-conversion instruction setting circuit 112 executes an instruction to jump to a memory address set in hardware.
[5] The process specified at the jump destination is executed, and the process returns to the jump source under predetermined conditions.

図4は、CPU14のPCで指定されたアドレスに従って、メモリ12に格納されたプログラムが逐次実行されていく状態を示している。そして、[3]における比較処理の結果、PCに対応するセグメント及びアドレスが[1]で設定した設定データと一致した場合には、本来実行すべき変換前命令20が、変換後の命令である変換後命令22に変換される。より具体的には、PC=0:0330Hで指定された命令MOV R0,#01H、PC=0:0332Hで指定された命令MOV R1,#01Hの組で表された変換前命令20が、B 2:C000H(セグメント・アドレス=2:C000Hへのジャンプ命令)で表された変換後命令22に変換されている。このことにより、図4中の[4]で示されたように、メモリ12のセグメント・アドレス=2:C000Hにジャンプし、当該アドレスに格納されたプログラムを実行する。その後、予め定められた条件で次のPCの値に戻る([5])。   FIG. 4 shows a state where the programs stored in the memory 12 are sequentially executed according to the address specified by the PC of the CPU 14. Then, as a result of the comparison process in [3], if the segment and address corresponding to the PC match the setting data set in [1], the pre-conversion instruction 20 to be executed is the post-conversion instruction. It is converted into the instruction 22 after the conversion. More specifically, the pre-conversion instruction 20 represented by the combination of the instructions MOV R0, # 01H specified by PC = 0: 0330H and the instructions MOV R1, # 01H specified by PC = 0: 0332H is B 2: C000H (segment address = 2: jump instruction to C000H) is converted into the converted instruction 22. As a result, as shown by [4] in FIG. 4, the program jumps to the segment address = 2: C000H of the memory 12, and executes the program stored at the address. Thereafter, the value returns to the value of the next PC under predetermined conditions ([5]).

以上のようにして、本実施の形態に係るメモリ制御装置10では、CPU14のプログラムカウンタ140で指定される命令を変換し、実行すべき命令が格納されたメモリ12内の領域が変更される。従って、本実施の形態に係るメモリ制御装置10によれば、簡易な方法でかつ柔軟にメモリの領域設定を行うことが可能となる。   As described above, in the memory control device 10 according to the present embodiment, the instruction specified by the program counter 140 of the CPU 14 is converted, and the area in the memory 12 in which the instruction to be executed is stored is changed. Therefore, according to the memory control device 10 of the present embodiment, it is possible to flexibly set the memory area by a simple method.

<第1の実施の形態の変形例>
図3(b)を参照して、本実施の形態に係るメモリ制御装置10aについて説明する。
本実施の形態は、指定PCを複数にし、各々の指定PCで変換される命令を異ならせる場合の形態である。そのため、メモリ制御装置10aの命令変換部100は、複合命令変換部100aに変更されている。
<Modification of First Embodiment>
With reference to FIG. 3B, a memory control device 10a according to the present embodiment will be described.
The present embodiment is an embodiment in which a plurality of designated PCs are used, and instructions to be converted by each designated PC are different. Therefore, the instruction conversion unit 100 of the memory control device 10a has been changed to a compound instruction conversion unit 100a.

図3(b)は、指定PCが3つの場合の複合命令変換部100aの構成の一例を示す機能ブロック図である。複合命令変換部100aは、各々の指定PCに対応する3つの選択回路114−1、114−2、114−3(図示省略)、OR回路130、132、及びセレクタ110aを含んで構成されている。3つの選択回路114−1、114−2、114−3の各々のa端子から出力信号a−1、a−2、及びa−3が出力され、b端子から出力信号b−1、b−2、及びb−3が出力される。出力信号a−1、a−2、a−3は、OR回路130に入力され、出力信号b−1、b−2、b−3は、OR回路132に入力される。   FIG. 3B is a functional block diagram showing an example of the configuration of the compound instruction converter 100a when the number of designated PCs is three. The composite instruction converter 100a includes three selection circuits 114-1, 114-2, 114-3 (not shown), OR circuits 130, 132, and a selector 110a corresponding to each designated PC. . Output signals a-1, a-2, and a-3 are output from terminals a of the three selection circuits 114-1, 114-2, and 114-3, and output signals b-1, b- are output from terminals b. 2, and b-3 are output. The output signals a-1, a-2, and a-3 are input to the OR circuit 130, and the output signals b-1, b-2, and b-3 are input to the OR circuit 132.

選択回路114−1、114−2、114−3の各々は図3(a)に示す選択回路114と同様の構成となっている、すなわち、各々の選択回路114の入力は、PCONレジスタ==1の演算結果、CSRレジスタ==CPU_CSRの演算結果、PC指定レジスタ==CPU_PCの演算結果、PC指定レジスタ+1==CPU_PCの演算結果、変換後命令INST1、INST2、メモリデータ、及び0000Hである。選択回路114−1、114−2、114−3の各々は、それぞれの入力に対応する出力信号a−1、a−2、a−3、及び出力信号b−1、b−2、b−3を出力する。   Each of the selection circuits 114-1, 114-2, and 114-3 has the same configuration as the selection circuit 114 shown in FIG. 3A, that is, the input of each of the selection circuits 114 is a PCON register == 1, the calculation result of the CSR register == CPU_CSR, the calculation result of the PC designation register == CPU_PC, the calculation result of the PC designation register + 1 == CPU_PC, the converted instructions INST1, INST2, the memory data, and 0000H. Each of the selection circuits 114-1, 114-2, 114-3 outputs an output signal a-1, a-2, a-3 and an output signal b-1, b-2, b- corresponding to the respective input. 3 is output.

いずれかの選択回路114の入力が上記の条件を満たすことにより、出力信号aの値がa=1となった場合には、OR回路130の出力信号が1となり、セレクタ110aによってOR回路132の出力信号が選択される。このとき、OR回路132の出力信号は、出力信号b−1、b−2、b−3のいずれかにより、a=1となった選択回路114における変換後命令INST1又はINST2となっているので、当該選択回路114の変換後命令INST1又はINST2がセレクタ110aから出力され、バス16を介してCPU14に取り込まれ、実行される。一方、いずれの選択回路114の入力も上記の条件を満たさない場合には、OR回路130の出力信号が0となるので、セレクタ110aでメモリデータが選択され、バス16を介してCPU14に取り込まれ、実行される。   If the input of any one of the selection circuits 114 satisfies the above condition and the value of the output signal a becomes a = 1, the output signal of the OR circuit 130 becomes 1 and the selector 110a outputs the signal of the OR circuit 132 The output signal is selected. At this time, the output signal of the OR circuit 132 is the post-conversion instruction INST1 or INST2 in the selection circuit 114 in which a = 1, due to any of the output signals b-1, b-2, and b-3. The instruction INST1 or INST2 after the conversion by the selection circuit 114 is output from the selector 110a, taken into the CPU 14 via the bus 16, and executed. On the other hand, when the input of any of the selection circuits 114 does not satisfy the above condition, the output signal of the OR circuit 130 becomes 0, so that the memory data is selected by the selector 110a and is taken into the CPU 14 via the bus 16. Will be executed.

なお、本実施の形態では、複合命令変換部100aの指定PCが3つの場合を例示して説明したが、これに限られず、指定PCはいくつであってもよい。また、本実施の形態における指定PCのアドレスは異なっていても同じであってもよいし、指定PCに対応する変換後命令INSTが異なっていても同じであってもよい。   In the present embodiment, the case where the number of designated PCs of the compound instruction conversion unit 100a is three has been described as an example. However, the present invention is not limited to this, and any number of designated PCs may be used. Further, the address of the designated PC in the present embodiment may be different or the same, or the post-conversion instruction INST corresponding to the designated PC may be different or the same.

以上詳述したように、本実施の形態に係るメモリ制御装置では、予め指定PCを設定回路にセットしておき、CPUがそのPCの命令を実行しようとした際に、ハードウエアで疑似的に命令を変換することによって、つまり本実施の形態ではジャンプ命令分のみの命令の変換を行うことによって、メモリ内部に格納された本来指定されているアドレスの命令に代えて、意図した領域の命令、すなわちプログラムを実行することができる。従って、リマップのように、CPUに対して、メモリの一定領域のアドレスを化かして見せる必要はなく、また、複数の指定PCを設定したい場合にも、回路(命令変換部100)を追加することによって、容易に設定できるという効果がある。   As described in detail above, in the memory control device according to the present embodiment, the designated PC is set in the setting circuit in advance, and when the CPU attempts to execute the instruction of the PC, it is simulated by hardware. By converting the instructions, that is, in this embodiment, by converting only the instructions corresponding to the jump instructions, the instructions in the intended area are replaced with the instructions in the intended area stored in the memory. That is, the program can be executed. Therefore, unlike the remapping, it is not necessary to show the address of a certain area of the memory to the CPU in the form of a conversion, and when it is desired to set a plurality of designated PCs, a circuit (instruction conversion unit 100) is added. Thus, there is an effect that the setting can be easily performed.

[第2の実施の形態]
図5及び図6を参照して、本実施の形態に係るメモリ制御装置10bについて説明する。メモリ制御装置10が、変換後命令設定回路112によってハードウエア的に変換後命令INSTを設定したのに対し、本実施の形態は、専用のレジスタによってハードウエア的に変換後命令INSTを設定する形態である。
[Second embodiment]
The memory control device 10b according to the present embodiment will be described with reference to FIGS. While the memory control device 10 sets the post-conversion instruction INST in hardware by the post-conversion instruction setting circuit 112, the present embodiment sets the post-conversion instruction INST in hardware using a dedicated register. It is.

図5(a)に本実施の形態に係るメモリ制御装置10bのブロック図を示す。図5(a)に示すように、メモリ制御装置10bは、命令変換部100、及び命令変換レジスタセット120aを含んで構成されている。つまり、図2(a)に示すメモリ制御装置10の変換後命令設定回路112を備えていない。図5(a)に示す命令変換部100は、図2(a)に示す命令変換部100と同じものである。   FIG. 5A shows a block diagram of the memory control device 10b according to the present embodiment. As shown in FIG. 5A, the memory control device 10b includes an instruction conversion unit 100 and an instruction conversion register set 120a. That is, the post-conversion command setting circuit 112 of the memory control device 10 shown in FIG. 2A is not provided. The instruction converter 100 shown in FIG. 5A is the same as the instruction converter 100 shown in FIG.

図5(b)に本実施の形態に係る命令変換レジスタセット120aの内容の一例を示す。図5(bに示すように、命令変換レジスタセット120aは、PCONレジスタ、CSRレジスタ、PC指定レジスタ、及び変換後命令レジスタRINSTを含んで構成されている。PCONレジスタ、CSRレジスタ、及びPC指定レジスタの機能は図2(b)と同様なので、詳細な説明は省略する。変換後命令レジスタRINSTは、変換後命令INSTを格納するレジスタであり、その出力は、命令変換部100のセレクタ106の(1)入力端子及びセレクタ108の(1)入力端子に接続されている(図3(a)参照)。   FIG. 5B shows an example of the contents of the instruction conversion register set 120a according to the present embodiment. 5B, the instruction conversion register set 120a includes a PCON register, a CSR register, a PC designation register, and a converted instruction register RINST. The PCON register, the CSR register, and the PC designation register 2B is the same as that of FIG.2 (b), and the detailed description is omitted.The converted instruction register RINST is a register for storing the converted instruction INST, and its output is ( 1) The input terminal is connected to the (1) input terminal of the selector 108 (see FIG. 3A).

本実施の形態に係るメモリ制御装置10bは、以下のように動作する。
[1]CSRレジスタ及びPC指定レジスタにデータを格納する。本例では、このデータを0:0330H(セグメント=0、アドレス=0330H、以下これらのデータを「設定データ」という)とする。
[2]変換後の命令を、変換後命令レジスタRINSTに格納する。本例では、この命令を、B 2:C000H(セグメント・アドレス=2:C000Hへのジャンプ命令)とする。
[3]PCONを論理値「1」に設定し、本機能を有効にする。
[4]CSRレジスタの値とCPU_CSRとの比較処理、PC指定レジスタとCPU_PCとの比較処理を実行する。
[5]上記の比較結果がいずれも一致した場合に、変換後命令レジスタRINSTでハードウエア的に設定したメモリのアドレスにジャンプする命令を実行する。
[6]ジャンプ先で指定された処理を実行し、予め定められた条件でジャンプ元に戻る。
The memory control device 10b according to the present embodiment operates as follows.
[1] Store data in the CSR register and the PC designation register. In this example, this data is assumed to be 0: 0330H (segment = 0, address = 0330H, hereinafter referred to as “setting data”).
[2] Store the converted instruction in the converted instruction register RINST. In this example, this instruction is B2: C000H (segment address = 2: jump instruction to C000H).
[3] Set PCON to a logical value “1” to enable this function.
[4] A comparison process between the value of the CSR register and CPU_CSR and a comparison process between the PC designation register and CPU_PC are executed.
[5] When all of the above comparison results match, an instruction for jumping to a memory address set by hardware in the converted instruction register RINST is executed.
[6] The process specified at the jump destination is executed, and the process returns to the jump source under predetermined conditions.

図6は、CPU14のPCで指定されたアドレスに従って、メモリ12に格納されたプログラムが逐次実行されていく状態を示している。そして、[4]における比較処理の結果、PCに対応するセグメント及びアドレスが[1]で設定した設定データと一致した場合には、本来実行すべき変換前命令20が、変換後の命令である変換後命令22に変換される。より具体的には、PC=0:0330Hで指定された命令MOV R0,#01H、PC=0:0332Hで指定された命令MOV R1,#01Hの組で表された変換前命令20が、B 2:C000H(セグメント・アドレス=2:C000Hへのジャンプ命令)で表された変換後命令22に変換されている。このことにより、図6中の[5]で示されたように、メモリ12のセグメント・アドレス=2:C000Hにジャンプし、当該アドレスに格納されたプログラムを実行する。その後、予め定められた条件で次のPCの値に戻る([6])。   FIG. 6 shows a state where the programs stored in the memory 12 are sequentially executed according to the address specified by the PC of the CPU 14. Then, as a result of the comparison processing in [4], if the segment and address corresponding to the PC match the setting data set in [1], the pre-conversion instruction 20 to be executed is the post-conversion instruction. It is converted into the instruction 22 after the conversion. More specifically, the pre-conversion instruction 20 represented by the combination of the instructions MOV R0, # 01H specified by PC = 0: 0330H and the instructions MOV R1, # 01H specified by PC = 0: 0332H is B 2: C000H (segment address = 2: jump instruction to C000H) is converted into the converted instruction 22. As a result, as shown by [5] in FIG. 6, the program jumps to the segment address = 2: C000H of the memory 12, and executes the program stored at the address. Thereafter, the value returns to the value of the next PC under predetermined conditions ([6]).

[第3の実施の形態]
図7を参照して、本実施の形態に係るメモリ制御装置10cについて説明する。本実施の形態は、変換後命令レジスタRINSTを用いて、複数の指定PCに対応する形態である。図7は、指定PCのアドレスと、ジャンプ命令でジャンプする飛び先アドレス(ジャンプ先アドレス)の対応を示した図である。図7は、例えば、指定PCのアドレスがPC0の場合には、変換後命令が、ジャンプ命令B 2:C000Hであることを示している。
[Third Embodiment]
With reference to FIG. 7, a memory control device 10c according to the present embodiment will be described. The present embodiment is an embodiment in which a plurality of designated PCs are supported by using a post-conversion instruction register RINST. FIG. 7 is a diagram showing the correspondence between the address of the designated PC and the jump destination address (jump destination address) jumped by the jump instruction. FIG. 7 shows that, for example, when the address of the designated PC is PC0, the converted instruction is a jump instruction B2: C000H.

図7に示すように、設定できるPC、すなわち指定PCが複数ある場合には、指定PCに番号を割り振ることによって、飛び先のアドレスを変更する。処理の流れは指定PCがひとつの場合と同様であるが、飛び先アドレスに関しては、パラメータで先頭のアドレスを設定しておき、そのアドレスを指定PCであるPC0の飛び先に設定し、それ以降はアドレスをずらすことによって飛び先を変更する。この際、アドレスの間隔は、ジャンプ命令が一つ入る程度でよい。また、飛び先によってどのPCからジャンプしてきたか判断できるので、ジャンプ先から戻る場合に便利である。   As shown in FIG. 7, when there are a plurality of PCs that can be set, that is, when there are a plurality of designated PCs, numbers are assigned to the designated PCs to change the jump destination address. The processing flow is the same as that of the case where the number of designated PCs is one. However, as for the jump destination address, a leading address is set by a parameter, and the address is set as the jump destination of the designated PC PC0. Changes the destination by shifting the address. At this time, the interval between addresses may be such that one jump instruction is inserted. Further, since it is possible to determine from which PC the user jumped depending on the jump destination, it is convenient when returning from the jump destination.

[第4の実施の形態]
図8ないし図12を参照して、本実施の形態に係るメモリ制御装置10dについて説明する。上記実施の形態では、メモリ制御装置の命令変換機能によって、指定PCを設定することにより本来実行すべき命令を変換し、一例として、メモリの本来指定されたアドレスとは異なるアドレスにジャンプさせ、本来実行すべき処理とは異なる処理を実行させた。これに対し、本実施の形態は、上記実施の形態でジャンプしたジャンプ先のメモリの領域が、処理内容に応じて適切な属性の領域となるように、メモリの領域を分割する形態である。より詳細には、メモリのコードオプションを使用し、ブロックイネーフブルと類似の処理を行いながらも、様々なソフトウエア・アプリケーションに対応させるために、さらに機能を拡張させた形態である。ここで、コードオプションとは、領域分割の対象となるメモリを制御するためのパラメータをさし、本実施の形態では、特に書き換え設定レジスタセットに格納すべきパラメータをいう。
[Fourth Embodiment]
The memory control device 10d according to the present embodiment will be described with reference to FIGS. In the above embodiment, the instruction conversion function of the memory control device converts the instruction to be executed by setting the designated PC. As an example, the instruction is jumped to an address different from the originally specified address in the memory. A process different from the process to be executed was executed. On the other hand, in the present embodiment, the memory area is divided so that the area of the memory at the jump destination jumped in the above embodiment becomes an area having an appropriate attribute according to the processing content. More specifically, this is a form in which a function is further expanded to support various software applications while performing processing similar to block enableable using a code option of a memory. Here, the code option refers to a parameter for controlling a memory to be subjected to area division, and in the present embodiment, particularly refers to a parameter to be stored in a rewrite setting register set.

図8(a)は、本実施の形態に係るメモリ制御装置10dの機能ブロック図を示している。図8(a)に示すように、メモリ制御装置10dは、メモリローダ(設定部)200、及び書き換え設定レジスタセット202を含んで構成されている。なお、図8(a)に示したメモリ制御装置10dは、本実施の形態に関わる構成のみを抽出して記載しているが、むろん、図2(a)、図5(a)に示す、命令変換部100、命令変換レジスタセット120(120a)、変換後命令設定回路112を含んでいてもよい。   FIG. 8A shows a functional block diagram of a memory control device 10d according to the present embodiment. As shown in FIG. 8A, the memory control device 10d includes a memory loader (setting unit) 200 and a rewrite setting register set 202. Although the memory control device 10d shown in FIG. 8A extracts and describes only the configuration related to the present embodiment, it goes without saying that the memory control device 10d shown in FIG. 2A and FIG. It may include the instruction conversion unit 100, the instruction conversion register set 120 (120a), and the converted instruction setting circuit 112.

メモリ12の種類に特に制限はないが、本実施の形態では、フラッシュメモリ等の不揮発性メモリを想定しており、メモリ空間の領域は、一般的なメモリと同様に、プログラム領域210とデータ領域214とに分割されている。本実施の形態に係るメモリ12では、さらに、テスト(設定データ)領域212を備えている。テスト領域212とは、メモリ12の周辺回路を動作させるためのパラメータが格納される領域であるが、本実施の形態では、コードオプション、すなわち書き換え設定のためのデータ(以下、「書き換え設定データ」という)が格納されている。   Although the type of the memory 12 is not particularly limited, in the present embodiment, a non-volatile memory such as a flash memory is assumed, and a memory space area includes a program area 210 and a data area, like a general memory. 214. The memory 12 according to the present embodiment further includes a test (setting data) area 212. The test area 212 is an area in which parameters for operating peripheral circuits of the memory 12 are stored. In the present embodiment, a code option, that is, data for rewrite setting (hereinafter, “rewrite setting data”) Is stored.

メモリローダ200は、メモリ12のテスト領域212から書き換え設定データを読み込み、書き換え設定データの各パラメータを書き換え設定レジスタセット202の各レジスタに格納させる。   The memory loader 200 reads the rewrite setting data from the test area 212 of the memory 12 and stores each parameter of the rewrite setting data in each register of the rewrite setting register set 202.

書き換え設定レジスタセット202は、メモリ12のメモリ空間の領域分割を行うための各パラメータを格納するレジスタの組である。図8(b)に、書き換え設定レジスタセット202の内容を示す。図8(b)に示すように、本実施の形態に係る書き換え設定レジスタセット202には、書き換えアクセプタレジスタ、書き換えプログラム領域開始アドレスレジスタ、及び書き換え領域分割設定レジスタの3つのレジスタが含まれており、これらの3つのレジスタの内容に応じて、メモリ12のメモリ空間が分割される。   The rewrite setting register set 202 is a set of registers for storing parameters for dividing an area of the memory space of the memory 12. FIG. 8B shows the contents of the rewrite setting register set 202. As shown in FIG. 8B, the rewrite setting register set 202 according to the present embodiment includes three registers: a rewrite acceptor register, a rewrite program area start address register, and a rewrite area division setting register. The memory space of the memory 12 is divided according to the contents of these three registers.

書き換えアクセプタレジスタには、書き換えアクセプタを設定するデータ(アクセプタ設定データ)が格納される。アクセプタ設定とは、領域分割のパターンに合わせて、プログラムによるメモリの書き換えや消去、プログラムの実行を可能にするか否かの設定を行うことであり、アクセプタ設定データはこの切り替えを行うためのデータである。このデータの値が所定の値の場合、書き換え処理などが有効状態となる。書き換え処理などを有効状態にした後、書き換えプログラム領域開始アドレスデータと、領域分割設定データをもとに、メモリ12の領域を、固定領域と書き換え領域に区分する。ここで、固定領域とはソフトウエアからイレース(消去)/ライト(書き込み)を行うことができない領域であり、書き換え領域とは、プログラムからイレース/ライトを行うことができる領域である。   The rewrite acceptor register stores data (acceptor setting data) for setting the rewrite acceptor. The acceptor setting refers to setting whether or not to allow a program to rewrite or erase a memory or to execute a program in accordance with a pattern of area division. The acceptor setting data is data for performing this switching. It is. When the value of this data is a predetermined value, the rewriting process or the like is enabled. After the rewriting process is enabled, the area of the memory 12 is divided into a fixed area and a rewriting area based on the rewriting program area start address data and the area division setting data. Here, the fixed area is an area where erasing (erasing) / writing (writing) cannot be performed from software, and the rewriting area is an area where erasing / writing can be performed from a program.

書き換えプログラム領域開始アドレスレジスタには、書き換えプログラム領域を開始するアドレスを指定するデータ(プログラム領域開始アドレスデータ)が格納される。上記のアクセプタ設定によって、書き換え処理が有効状態とされている場合に、指定されたアドレス以降が書き換えプログラム領域となる。   The rewrite program area start address register stores data (program area start address data) that specifies an address at which the rewrite program area starts. When the rewriting process is enabled by the above-described acceptor setting, the area after the designated address becomes the rewriting program area.

書き換え領域分割設定レジスタには、書き換え領域の領域数を指定するデータ(領域分割データ)が格納される。上記のアクセプタ設定によって、書き換え処理が有効状態とされている場合において、例えば、領域分割データの値が「0x0」の場合には書き換え領域を1領域確保し、領域分割データが「0x1」の場合には書き換え領域を2領域確保する。ただし、本実施の形態では、2領域を確保した場合のCPU14の実行領域は、予め定められたレジスタ(CPU14がアクセス可能な領域を指定するレジスタ、以下、「アクセス領域指定レジスタ」という)の値に応じて、片方の領域のみとなる。   The rewriting area division setting register stores data (area division data) specifying the number of rewriting areas. When the rewriting process is enabled by the above-described acceptor setting, for example, if the value of the area division data is “0x0”, one area of the rewriting area is secured, and if the area division data is “0x1”. , Two rewrite areas are secured. However, in the present embodiment, the execution area of the CPU 14 when the two areas are secured is the value of a predetermined register (a register that specifies an area that can be accessed by the CPU 14, hereinafter referred to as an “access area specification register”). , Only one area is provided.

本実施の形態に係るメモリ制御装置10dでは、以上の3つのデータ、すなわち、図8(b)に示すアクセプタ設定データ、プログラム領域開始アドレスデータ、及び領域分割データの3つのデータを設定することによって、メモリ制御装置10dによるメモリの分割制御方法が変わる。   In the memory control device 10d according to the present embodiment, by setting the above three data, that is, the three data of the acceptor setting data, the program area start address data, and the area division data shown in FIG. The method of controlling the memory division by the memory control device 10d changes.

次に、図9を参照して、メモリ12の分割制御方法、すなわち、テスト領域212(コードオプション)のデータが各レジスタに格納され、メモリ12のメモリ空間が分割されるまでの流れを説明する。図9の[1]ないし[3]は、本実施の形態に係るメモリ12の分割制御の手順を示しており、その内容は以下のとおりとなっている。
[1]CPU14の起動前に実行されるメモリ制御装置10dのリセット時に、メモリローダ200がテスト領域212に格納されたコードオプションをロードする(読み込む)。
[2]書き換え設定レジスタセットの各レジスタに、メモリローダ200がロードした各データ(アクセプタ設定データ、プログラム領域開始アドレスデータ、及び領域分割データ)が格納される。
[3]コードオプションのデータに基づいてメモリ12の領域分割の設定方法が決定され、領域分割が実行される。
以上の分割制御が実行されることにより、メモリ12に対するCPU14のアクセス方法(以下、「CPUアクセス」という)が設定される。以下、各CPUアクセスについて説明する。なお、図9に示すように、以下の説明では、プログラム領域開始アドレスデータを「0xYYYY」として説明する。
Next, a division control method of the memory 12, that is, a flow until data of the test area 212 (code option) is stored in each register and the memory space of the memory 12 is divided will be described with reference to FIG. . [1] to [3] of FIG. 9 show the procedure of the division control of the memory 12 according to the present embodiment, and the contents are as follows.
[1] The memory loader 200 loads (reads) the code option stored in the test area 212 when the memory control device 10d is reset before the CPU 14 is started.
[2] Each data (acceptor setting data, program area start address data, and area division data) loaded by the memory loader 200 is stored in each register of the rewrite setting register set.
[3] The method of setting the area division of the memory 12 is determined based on the code option data, and the area division is performed.
By executing the above division control, an access method of the CPU 14 to the memory 12 (hereinafter, referred to as “CPU access”) is set. Hereinafter, each CPU access will be described. As shown in FIG. 9, in the following description, the program area start address data is described as “0xYYYY”.

図10(a)は、書き換え無効の場合、すなわち、書き換えアクセプタレジスタにおいて、アクセプタ設定データが無効に設定されている場合のCPUアクセスを、図10(b)は、その際の各レジスタの値を、各々示している。本実施の形態では、アクセプタ設定の値が「0」で書き換え無効、「1」で書き換え有効としている。むろん、この対応関係は逆の論理値であってもよい。図10(a)に示すように、アクセプタ設定データが無効状態においては、プログラムメモリ空間の全領域が固定プログラム領域となるので、ROM参照(データの読み出し)は可能であるが、Erase/Write(消去及び書き込み)は行うことができない。ここで、本実施の形態における「固定プログラム領域」とは「固定プログラム」が格納された領域であり、「固定プログラム」とは、本実施の形態に係るマイクロコンピュータシステム1を動作させるためのプログラムである。   FIG. 10A shows CPU access when rewriting is disabled, that is, when the acceptor setting data is set to be invalid in the rewriting acceptor register. FIG. 10B shows the value of each register at that time. , Respectively. In the present embodiment, rewriting is disabled when the value of the acceptor setting is “0”, and rewriting is enabled when the value is “1”. Of course, this correspondence may be a reverse logical value. As shown in FIG. 10A, when the acceptor setting data is in an invalid state, the entire area of the program memory space is a fixed program area, so that ROM reading (data reading) is possible, but Erase / Write ( Erase and write) cannot be performed. Here, the “fixed program area” in the present embodiment is an area in which the “fixed program” is stored, and the “fixed program” is a program for operating the microcomputer system 1 according to the present embodiment. It is.

図11(a)は、書き換え有効の場合、すなわち、書き換えアクセプタレジスタにおいて、アクセプタ設定データが有効に設定されている場合で、書き換え領域分割設定が、1領域に設定された場合のCPUアクセスを、図11(b)は、その際の各レジスタの値を各々示している。アクセプタ設定が有効の状態においては、プログラムメモリ空間が、固定プログラム領域と、書き換えプログラム領域とに分割される。書き換えプログラム領域は、書き換えプログラム領域開始アドレスYYYYを開始アドレスとするメモリ空間上の一定の領域を占める。   FIG. 11A shows a case where rewriting is valid, that is, a case where acceptor setting data is set to be valid in the rewriting acceptor register, and a CPU access when the rewriting region division setting is set to one region is shown in FIG. FIG. 11B shows the values of the respective registers at that time. When the acceptor setting is valid, the program memory space is divided into a fixed program area and a rewrite program area. The rewrite program area occupies a certain area in the memory space starting from the rewrite program area start address YYYY.

ここで、本実施の形態における「書き換えプログラム領域」とは「書き換えプログラム」が格納された領域をいう。また、「書き換えプログラム」とは「固定プログラム」と組み合わされるプログラムであり、本実施の形態では、「固定プログラム」+「書き換えプログラム」でひとつのプログラムを構成している。すなわち、例えば固定プログラム中に記述されたジャンプ命令で書き換えプログラムに移行することにより、両者は一体のプログラムとして機能する。固定プログラム領域においては、ROM参照は可能であるが、Erase/Writeは行うことができない。書き換えプログラム領域は書き換え可能領域となるので、ROM参照に加え、Erase/Writeを行うことが可能になる。なお、本実施の形態では、固定プログラム領域の直下を書き換えプログラム領域開始アドレスYYYYとする形態を例示して説明するが、これに限られず、例えば固定プログラム領域との間に一定の記憶領域を空けたアドレスをアドレスYYYYとして指定してもよい。   Here, the “rewrite program area” in the present embodiment refers to an area in which a “rewrite program” is stored. Further, the “rewrite program” is a program combined with the “fixed program”, and in the present embodiment, one program is constituted by “fixed program” + “rewrite program”. That is, for example, by shifting to the rewriting program by a jump instruction described in the fixed program, both functions as an integrated program. In the fixed program area, ROM reference is possible, but Erase / Write cannot be performed. Since the rewritable program area is a rewritable area, erase / write can be performed in addition to ROM reference. In the present embodiment, an example in which the rewrite program area start address YYYY is set immediately below the fixed program area will be described. However, the present invention is not limited to this. For example, a certain storage area is provided between the fixed program area and the fixed program area. May be specified as the address YYYY.

図12(a)は、書き換え有効の場合で、書き換え領域分割設定が2領域に設定された場合のCPUアクセスを、図12(b)は、その際の各レジスタの値を各々示している。
この場合には、プログラムメモリ空間が、固定プログラム領域と、書き換えプログラム領域0及び書き換えプログラム領域1とに分割される。
FIG. 12A shows the CPU access when the rewrite is valid and the rewrite area division setting is set to two areas, and FIG. 12B shows the values of the respective registers at that time.
In this case, the program memory space is divided into a fixed program area, a rewrite program area 0 and a rewrite program area 1.

本実施の形態において、「書き換えプログラム領域0」とは「書き換えプログラム0」が格納された領域をいい、「書き換えプログラム領域1」とは「書き換えプログラム1」が格納された領域をいう。固定プログラム領域においては、ROM参照は可能であるが、Erase/Writeは行うことができない。一方、本実施の形態では、書き換えプログラム領域0、及び書き換えプログラム領域1の各々を、プログラム実行が可能な領域とするか、Erase/Writeが可能な領域とするかを切り換えることができるように構成されている。   In the present embodiment, “rewrite program area 0” refers to an area in which “rewrite program 0” is stored, and “rewrite program area 1” refers to an area in which “rewrite program 1” is stored. In the fixed program area, ROM reference is possible, but Erase / Write cannot be performed. On the other hand, in the present embodiment, the configuration is such that each of the rewrite program area 0 and the rewrite program area 1 can be switched between an area where a program can be executed and an area where erase / write is possible. Have been.

本実施の形態に係るメモリ制御装置10dの領域分割方法について、より詳細に説明する。本実施の形態に係る領域分割方法では、書き換えプログラム領域開始アドレスYYYYが指定されると、当該アドレスYYYY以降(本実施の形態では、固定プログラム領域の直下)に、書き換えプログラムを格納させる領域として、同じ容量の2領域が確保される。以下、図12(a)に示すように、当該2領域を、固定プログラム領域に近い方から順に、「領域A」、「領域B」という。本実施の形態では、当該2領域の容量が同じである形態を例示して説明するが、むろん、これらの容量は異なってもよい。   The area dividing method of the memory control device 10d according to the present embodiment will be described in more detail. In the area dividing method according to the present embodiment, when the rewrite program area start address YYYY is specified, an area for storing the rewrite program is stored after the address YYYY (in this embodiment, immediately below the fixed program area). Two areas of the same capacity are secured. Hereinafter, as shown in FIG. 12A, the two areas are referred to as “area A” and “area B” in order from the one closer to the fixed program area. In the present embodiment, the case where the capacities of the two regions are the same will be described as an example, but of course, these capacities may be different.

そして、本実施の形態では、領域Aがプログラム実行の可能な領域とされ、領域BがErase/Writeの可能な領域とされる。そして、本実施の形態では、固定プログラム中に記述されたジャンプ命令によって、固定プログラムの実行後、領域Aに格納されたプログラムに移行するように構成されている。本実施の形態では、この領域A及び領域Bの属性の制御をメモリ制御装置10dが行っている。つまり、書き換えプログラム0/1のうち、領域Aに格納された方がプログラム実行の可能な書き換えプログラムとされ、領域Bに格納された方がErase/Writeの可能な書き換えプログラムとされる。このことにより、仮に、領域Aに書き換えプログラム0が格納され、領域Bに書き換えプログラム1が格納された状態を考えると、一方では、固定プログラム+書き換えプログラム0なるプログラムを実行し、他方では書き換えプログラム1について、更新等の操作を行うという動作が可能となる。   In this embodiment, the area A is an area where a program can be executed, and the area B is an area where erase / write is possible. Then, in the present embodiment, the configuration is such that the program is shifted to the program stored in the area A after the execution of the fixed program by a jump instruction described in the fixed program. In the present embodiment, the memory control device 10d controls the attributes of the area A and the area B. That is, of the rewrite programs 0/1, the one stored in the area A is a rewrite program that can execute the program, and the one stored in the area B is a rewrite program that can be erased / written. As a result, supposing that the rewrite program 0 is stored in the area A and the rewrite program 1 is stored in the area B, on the one hand, the fixed program + the rewrite program 0 is executed, and on the other hand, the rewrite program 0 is executed. For 1, the operation of performing an operation such as updating can be performed.

上記に加え、本実施の形態では、領域A及び領域Bに格納する書き換えプログラム0/1が切り換え可能に構成されている。すなわち、書き換えプログラム領域については、先述したように、アクセス領域指定レジスタの設定によって、プログラムとして使用する領域を決定することができる。より具体的には、アクセス領域指定レジスタの値が「0x00」の場合は、図12(a)に示すように、書き換えプログラム領域0が領域Aに格納されることにより、プログラム実行領域(プログラムメモリ空間)として選択されるため、固定プログラム領域と同じ扱いになる。そのため、書き換えプログラム領域0は、ROM参照は可能であるが、Erase/Writeは行うことができない領域となる。このとき、書き換えプログラム領域1は領域Bに格納されるため、書き換え可能領域となるので、ROM参照及びErase/Writeが可能な(更新が可能な)領域となる。   In addition to the above, in the present embodiment, the rewriting program 0/1 stored in the area A and the area B can be switched. That is, as described above, the area to be used as a program can be determined for the rewrite program area by setting the access area designation register. More specifically, when the value of the access area designation register is “0x00”, the rewrite program area 0 is stored in the area A as shown in FIG. Space), it is treated the same as a fixed program area. Therefore, the rewrite program area 0 is an area in which ROM reference is possible but Erase / Write cannot be performed. At this time, since the rewrite program area 1 is stored in the area B, it becomes a rewritable area, so that it becomes an area in which ROM reference and erase / write are possible (updatable).

一方、アクセス領域指定レジスタの値が「0x01」の場合は、図12(a)に示すように、書き換えプログラム領域1が領域Aに格納されることにより、プログラム実行領域として選択されるため、固定プログラム領域と同じ扱いになる。そのため、ROM参照は可能であるが、Erase/Writeは行うことができない領域となる。このとき、書き換えプログラム領域0は領域Bに格納されるため、書き換え可能領域となるので、ROM参照及びErase/Writeが可能な(更新が可能な)領域となる。   On the other hand, when the value of the access area designation register is “0x01”, the rewrite program area 1 is stored in the area A as shown in FIG. It is treated the same as the program area. Therefore, the area can be referred to the ROM, but cannot perform the erase / write. At this time, since the rewrite program area 0 is stored in the area B, it becomes a rewritable area, so that it becomes an area in which ROM reference and erase / write are possible (updatable).

上記のような構成を有する、本実施の形態に係るメモリ制御装置10dの領域分割方法の作用について、より詳細に説明する。初期状態として、領域Aに書き換えプログラム0が格納され、領域Bに書き換えプログラム1が格納されている状態、すなわち、アクセス領域指定レジスタの値が「0x00」とされている状態を考える。この場合、マイクロコンピュータシステム1のプログラムは、固定プログラム+書き換えプログラム0からなるプログラム(初期プログラム)で作成されている。   The operation of the area dividing method of the memory control device 10d according to the present embodiment having the above-described configuration will be described in more detail. As an initial state, consider a state in which the rewrite program 0 is stored in the area A and the rewrite program 1 is stored in the area B, that is, a state in which the value of the access area designation register is “0x00”. In this case, the program of the microcomputer system 1 is created by a program (initial program) consisting of a fixed program + a rewriting program 0.

その後、この初期プログラムに更新の必要が生じた場合には、例えば、図示しない外部との通信手段を介して領域Bに書き換えプログラム1を書き込んだ後、アクセス領域指定レジスタの値を「0x01」とする。このことにより、書き換えプログラム1が書き換えプログラム0の代わりに領域Aに格納されるので、書き換えプログラム1がCPU14によって実行されるプログラムとなる。一方、初期プログラムにおける書き換えプログラム0は、Erase/Writeの可能なプログラムとされ、次の更新に備えることができる。   Thereafter, when the initial program needs to be updated, for example, after writing the rewriting program 1 in the area B via external communication means (not shown), the value of the access area designation register is set to “0x01”. I do. As a result, the rewrite program 1 is stored in the area A instead of the rewrite program 0, so that the rewrite program 1 is a program executed by the CPU 14. On the other hand, the rewriting program 0 in the initial program is a program capable of erase / write, and can be prepared for the next update.

以上詳述したように、本実施の形態に係るメモリ制御装置10dの領域分割方法では、アクセス領域指定レジスタによって領域Aに格納する書き換えプログラムと領域Bに格納する書き換えプログラムとを切り換え可能なように構成されているので、固定プログラム領域のプログラムを変更することなく、書き換えプログラムを更新することができるという効果を奏する。   As described in detail above, in the area dividing method of the memory control device 10d according to the present embodiment, the rewriting program stored in the area A and the rewriting program stored in the area B can be switched by the access area designation register. With this configuration, the rewrite program can be updated without changing the program in the fixed program area.

以上のように、本実施の形態に係るメモリ制御装置では、コードオプションによって設定されたデータを、メモリをコントロールするデータとして使用することによって、メモリの使用目的に応じメモリ空間を詳細に分割することができる。また、セキュリティに関しても、書き換えが不可能な領域を設定することにより、プログラムが暴走した場合などでもその領域のデータについては消去や書き込み等を行うことができなくなるため、メモリに記憶させたデータの信頼性も確保できるという効果がある。従って、例えば、上記命令変換機能によってジャンプしたジャンプ先のメモリの領域を、処理内容に応じて適切な属性の領域とすることも可能となる。   As described above, the memory control device according to the present embodiment uses the data set by the code option as data for controlling the memory, thereby dividing the memory space in detail according to the purpose of use of the memory. Can be. Also, regarding security, by setting an area that cannot be rewritten, even if the program runs out of control, data in that area cannot be erased or written. This has the effect of ensuring reliability. Therefore, for example, the area of the memory at the jump destination jumped by the instruction conversion function can be set as an area having an appropriate attribute according to the processing content.

1 マイクロコンピュータシステム
10、10a、10b、10c、10d メモリ制御装置
12 メモリ
14 CPU
16 バス
20 変換前命令
22 変換後命令
100、100−1、100−2、100−3 命令変換部
100a 複合命令変換部
102 AND回路
104 OR回路
106 セレクタ
108 セレクタ
110、110a セレクタ
112 変換後命令設定回路
114 選択回路
120、120a 命令変換レジスタセット
130、132 OR回路
140 プログラムカウンタ
200 メモリローダ
202 書き換え設定レジスタセット
210 プログラム領域
212 テスト領域
214 データ領域
INST、INST1、INST2 変換後命令
1 Microcomputer system 10, 10a, 10b, 10c, 10d Memory controller 12 Memory 14 CPU
16 Bus 20 Instruction before conversion 22 Instruction after conversion 100, 100-1, 100-2, 100-3 Instruction conversion unit 100a Compound instruction conversion unit 102 AND circuit 104 OR circuit 106 Selector 108 Selector 110, 110a Selector 112 Conversion instruction setting Circuit 114 Selection circuit 120, 120a Instruction conversion register set 130, 132 OR circuit 140 Program counter 200 Memory loader 202 Rewrite setting register set 210 Program area 212 Test area 214 Data area INST, INST1, INST2 Instruction after conversion

Claims (5)

プログラムを実行するための命令が記憶されたプログラム領域、プログラムの実行に伴うデータが記憶されるデータ領域、及びメモリ空間の分割方法を指定する書き換え設定データが記憶された設定データ領域を含むメモリ、及び、前記プログラムに従って前記メモリに記憶された命令を逐次特定してプログラムを実行する中央処理装置を含むマイクロコンピュータシステムにおける前記メモリを制御するメモリ制御装置であって、
前記書き換え設定データの値を保持する書き換え設定レジスタと、
前記設定データ領域を読み出し、読み出した書き換え設定データの値を前記書き換え設定レジスタに保持させると共に、前記書き換え設定レジスタに保持された前記書き換え設定データの値に基づいて前記メモリ空間の領域分割を設定する設定部と、
を備えるメモリ制御装置。
A memory including a program area in which instructions for executing the program are stored, a data area in which data accompanying the execution of the program is stored, and a setting data area in which rewrite setting data for specifying a method of dividing the memory space is stored; And a memory control device for controlling the memory in a microcomputer system including a central processing unit that sequentially specifies instructions stored in the memory according to the program and executes the program,
A rewrite setting register for holding a value of the rewrite setting data;
The setting data area is read, and the value of the read rewriting setting data is held in the rewriting setting register, and the area division of the memory space is set based on the value of the rewriting setting data held in the rewriting setting register. A setting section,
A memory control device comprising:
前記書き換え設定データは、前記領域分割によって新たに追加されるプログラム領域である書き換えプログラム領域を設定するか否かを示す書き換えアクセプタデータ、書き換えプログラム領域の開始アドレスを示す書き換えプログラム領域開始アドレスデータ、及び書き換えプログラム領域の分割数を示す書き換え領域分割設定データを含み、
前記設定部は、
前記書き換えアクセプタデータで書き換えプログラム領域を設定しないとされている場合には、前記メモリのプログラム領域の全領域を書き込み及び消去が不能な固定プログラム領域とし、
前記書き換えアクセプタデータで書き換えプログラム領域を設定するとされている場合で、かつ前記書き換え領域分割設定データで分割数が1と設定されている場合には、前記固定プログラム領域に加えて1つの書き込み及び消去が可能な書き換えプログラム領域を分割して設定し、
前記書き換えアクセプタデータで書き換えプログラム領域を設定するとされている場合で、かつ前記書き換え領域分割設定データで分割数が2と設定されている場合には、前記固定プログラム領域に加えて1つの書き込み及び消去が可能な書き換えプログラム領域と1つの書き込み及び消去が不能な書き換えプログラム領域との2つの書き換えプログラム領域を分割して設定する
請求項1に記載のメモリ制御装置。
The rewrite setting data is rewrite acceptor data indicating whether to set a rewrite program area that is a program area newly added by the area division, rewrite program area start address data indicating a start address of the rewrite program area, and Including rewriting area division setting data indicating the number of divisions of the rewriting program area,
The setting unit includes:
If the rewrite acceptor data does not set a rewrite program area, the entire program area of the memory is a fixed program area where writing and erasing is impossible,
If the rewrite acceptor data specifies that a rewrite program area is to be set, and if the number of divisions is set to 1 in the rewrite area division setting data, one write and erase operation is performed in addition to the fixed program area. Divides and sets the rewrite program area where
If the rewrite acceptor data specifies that a rewrite program area is to be set, and if the number of divisions is set to 2 in the rewrite area division setting data, one write and erase operation is performed in addition to the fixed program area. 2. The memory control device according to claim 1, wherein two rewrite program areas, a rewrite program area capable of performing writing and erasing and a rewriting program area in which writing and erasing cannot be performed, are divided and set.
前記書き換え設定データは、前記書き換え領域分割設定データで分割数が2と設定されている場合において、前記2つの書き換えプログラム領域の一方を書き込み及び消去が可能な領域とし、他方を書き込み及び消去が不能な領域とするアクセス領域指定データをさらに含み、
前記設定部は、前記アクセス領域指定データを切り換えることによって、前記2つの書き換えプログラム領域の書き込み及び消去の可能及び不能を切り換える
請求項2に記載のメモリ制御装置。
When the number of divisions is set to 2 in the rewrite area division setting data, one of the two rewrite program areas is a writable / erasable area and the other is not writable / erasable. Further includes access area designation data to be
3. The memory control device according to claim 2, wherein the setting unit switches between enabling and disabling writing and erasing of the two rewrite program areas by switching the access area designation data. 4.
プログラムを実行するための命令が記憶されたプログラム領域、プログラムの実行に伴うデータが記憶されるデータ領域、及びメモリ空間の分割方法を指定する書き換え設定データが記憶された設定データ領域を含むメモリ、及び、前記プログラムに従って前記メモリに記憶された命令を逐次特定してプログラムを実行する中央処理装置を含むマイクロコンピュータシステムにおける前記メモリを制御するメモリ制御方法であって、
設定部により、前記設定データ領域を読み出し、読み出した書き換え設定データの値を書き換え設定レジスタに保持させると共に、前記書き換え設定レジスタに保持された前記書き換え設定データの値に基づいて前記メモリ空間の領域分割を設定する
メモリ制御方法。
A memory including a program area in which instructions for executing the program are stored, a data area in which data accompanying the execution of the program is stored, and a setting data area in which rewrite setting data for specifying a method of dividing the memory space is stored; And a memory control method for controlling the memory in a microcomputer system including a central processing unit that sequentially specifies instructions stored in the memory according to the program and executes the program,
The setting unit reads the setting data area, holds the value of the read rewriting setting data in the rewriting setting register, and divides the area of the memory space based on the value of the rewriting setting data held in the rewriting setting register. Set the memory control method.
前記書き換え設定データは、前記領域分割によって新たに追加されるプログラム領域である書き換えプログラム領域を設定するか否かを示す書き換えアクセプタデータ、書き換えプログラム領域の開始アドレスを示す書き換えプログラム領域開始アドレスデータ、及び書き換えプログラム領域の分割数を示す書き換え領域分割設定データを含み、
前記設定部による設定は、
前記書き換えアクセプタデータで書き換えプログラム領域を設定しないとされている場合には、前記メモリのプログラム領域の全領域を書き込み及び消去が不能な固定プログラム領域とし、
前記書き換えアクセプタデータで書き換えプログラム領域を設定するとされている場合で、かつ前記書き換え領域分割設定データで分割数が1と設定されている場合には、前記固定プログラム領域に加えて1つの書き込み及び消去が可能な書き換えプログラム領域を分割して設定し、
前記書き換えアクセプタデータで書き換えプログラム領域を設定するとされている場合で、かつ前記書き換え領域分割設定データで分割数が2と設定されている場合には、前記固定プログラム領域に加えて1つの書き込み及び消去が可能な書き換えプログラム領域と1つの書き込み及び消去が不能な書き換えプログラム領域との2つの書き換えプログラム領域を分割して設定することを含む
請求項4に記載のメモリ制御方法。
The rewrite setting data is rewrite acceptor data indicating whether to set a rewrite program area that is a program area newly added by the area division, rewrite program area start address data indicating a start address of the rewrite program area, and Including rewriting area division setting data indicating the number of divisions of the rewriting program area,
The setting by the setting unit is
If the rewrite acceptor data does not set a rewrite program area, the entire program area of the memory is a fixed program area where writing and erasing is impossible,
If the rewrite acceptor data specifies that a rewrite program area is to be set, and if the number of divisions is set to 1 in the rewrite area division setting data, one write and erase operation is performed in addition to the fixed program area. Divides and sets the rewrite program area where
If the rewrite acceptor data specifies that a rewrite program area is to be set, and if the number of divisions is set to 2 in the rewrite area division setting data, one write and erase operation is performed in addition to the fixed program area. 5. The memory control method according to claim 4, further comprising dividing and setting two rewrite program areas: a rewrite program area capable of performing write and a rewrite program area in which writing and erasing cannot be performed.
JP2019186816A 2019-10-10 2019-10-10 Memory control device and memory control method Active JP6803957B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019186816A JP6803957B2 (en) 2019-10-10 2019-10-10 Memory control device and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019186816A JP6803957B2 (en) 2019-10-10 2019-10-10 Memory control device and memory control method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015211061A Division JP6603100B2 (en) 2015-10-27 2015-10-27 Memory control device and memory control method

Publications (2)

Publication Number Publication Date
JP2020009498A true JP2020009498A (en) 2020-01-16
JP6803957B2 JP6803957B2 (en) 2020-12-23

Family

ID=69152007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019186816A Active JP6803957B2 (en) 2019-10-10 2019-10-10 Memory control device and memory control method

Country Status (1)

Country Link
JP (1) JP6803957B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001229014A (en) * 2000-02-17 2001-08-24 Denso Corp Non-volatile memory rewriting device
JP2003233534A (en) * 2002-02-07 2003-08-22 Hitachi Ltd Memory system
JP2010252234A (en) * 2009-04-20 2010-11-04 Ricoh Co Ltd Image processing apparatus, image processing method and program
JP2012208721A (en) * 2011-03-29 2012-10-25 Fujitsu Ltd Image processing apparatus, image processing system and bank management method
JP2014099082A (en) * 2012-11-15 2014-05-29 Nintendo Co Ltd Information processing system, information processing device, information processing program, application execution method and storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001229014A (en) * 2000-02-17 2001-08-24 Denso Corp Non-volatile memory rewriting device
JP2003233534A (en) * 2002-02-07 2003-08-22 Hitachi Ltd Memory system
JP2010252234A (en) * 2009-04-20 2010-11-04 Ricoh Co Ltd Image processing apparatus, image processing method and program
JP2012208721A (en) * 2011-03-29 2012-10-25 Fujitsu Ltd Image processing apparatus, image processing system and bank management method
JP2014099082A (en) * 2012-11-15 2014-05-29 Nintendo Co Ltd Information processing system, information processing device, information processing program, application execution method and storage medium

Also Published As

Publication number Publication date
JP6803957B2 (en) 2020-12-23

Similar Documents

Publication Publication Date Title
US9733950B2 (en) Boot sequencing for multi boot devices
US7663957B2 (en) Microprocessor with program-accessible re-writable non-volatile state embodied in blowable fuses of the microprocessor
CN107548492B (en) Central processing unit with enhanced instruction set
US20050257016A1 (en) Digital signal controller secure memory partitioning
US7162563B2 (en) Semiconductor integrated circuit having changeable bus width of external data signal
US5479342A (en) Microcomputer
US7680976B2 (en) Method and apparatus for emulating rewritable memory with non-rewritable memory in an MCU
US5127096A (en) Information processor operative both in direct mapping and in bank mapping, and the method of switching the mapping schemes
JP6803957B2 (en) Memory control device and memory control method
US6148362A (en) Microcomputer using nonvolatile semiconductor memory to store user code/data
JP6603100B2 (en) Memory control device and memory control method
JPH07302254A (en) Microcomputer system
US6886159B2 (en) Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus
CN107851008B (en) Method for increasing data memory in existing microprocessor architecture with limited memory addressing
JP2001306316A (en) Control circuit and semiconductor device using the same
KR20200064702A (en) Method for randomzing address space layout of embedded system based on hardware and apparatus using the same
JP2015035155A (en) Information processor
JP2010176182A (en) Electronic equipment
US7624205B2 (en) Microcontroller
JP3804754B2 (en) Single chip microcomputer
US7415602B2 (en) Apparatus and method for processing a sequence of jump instructions
CN116560703A (en) ROM function customizing method, device, processor, exchange chip and storage medium
JPH0635751A (en) Chip for evaluation
CN117130545A (en) Method for managing areas of sensitive data in flash memory
JP2647908B2 (en) Computer equipment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201001

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201201

R150 Certificate of patent or registration of utility model

Ref document number: 6803957

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150