JP2012088894A - Data processor - Google Patents

Data processor Download PDF

Info

Publication number
JP2012088894A
JP2012088894A JP2010234387A JP2010234387A JP2012088894A JP 2012088894 A JP2012088894 A JP 2012088894A JP 2010234387 A JP2010234387 A JP 2010234387A JP 2010234387 A JP2010234387 A JP 2010234387A JP 2012088894 A JP2012088894 A JP 2012088894A
Authority
JP
Japan
Prior art keywords
circuit module
memory management
management unit
unit
address
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
JP2010234387A
Other languages
Japanese (ja)
Other versions
JP5593195B2 (en
Inventor
Yuji Obayashi
雄次 大林
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010234387A priority Critical patent/JP5593195B2/en
Publication of JP2012088894A publication Critical patent/JP2012088894A/en
Application granted granted Critical
Publication of JP5593195B2 publication Critical patent/JP5593195B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a data processor that enables safe access control using a virtual address space without largely changing processing content of an OS.SOLUTION: In a data processor (1, 2 and 3), when a circuit module (11, 31 and 41) accessed with a physical address and executing access control with a virtual address starts to operate according to a condition set by a central processing unit through a memory management part (16, 36 and 46) for performing processing for address conversion from a virtual address to a physical address, processing for changing association between a virtual address space and a physical address space at that time by the central processing unit is stopped.

Description

本発明は、中央処理装置と周辺回路モジュールを備えるデータ処理装置に関し、特に周辺回路モジュールによる仮想アドレス空間を用いたアクセス制御に対応したデータ処理装置に適用して有効な技術に関する。   The present invention relates to a data processing apparatus including a central processing unit and a peripheral circuit module, and more particularly to a technique effective when applied to a data processing apparatus compatible with access control using a virtual address space by a peripheral circuit module.

近年、携帯電話機や携帯型ナビゲーション装置、業務用携帯端末等の小型の情報機器の高性能化や多機能化に伴い、これら情報機器のシステムの中核を担う大規模集積回路(LSI)は、特定の処理を高速で実行するため、中央処理装置(CPU(Central Processing Unit))とは別に専用処理回路モジュールを内蔵するようになってきている。前記専用処理回路モジュールとしては、例えば、画像データや音声データの圧縮・伸張処理等を実行する専用回路やDMA(Direct Memory Access)転送のためのDMAコントローラ等がある。このような専用処理回路モジュールを内蔵したプロセッサシステムでは、メモリ保護及びメモリ利用の効率化のため、前記専用処理回路モジュールによる仮想アドレスを利用したアクセス制御を可能とするものがある。   In recent years, large-scale integrated circuits (LSIs), which are the core of these information device systems, have been identified as small information devices such as mobile phones, portable navigation devices, and portable terminals for business use. In order to execute the above processing at high speed, a dedicated processing circuit module has been built in separately from a central processing unit (CPU (Central Processing Unit)). Examples of the dedicated processing circuit module include a dedicated circuit for performing compression / decompression processing of image data and audio data, a DMA controller for DMA (Direct Memory Access) transfer, and the like. Some processor systems incorporating such dedicated processing circuit modules enable access control using virtual addresses by the dedicated processing circuit modules in order to protect the memory and improve the efficiency of memory utilization.

前記専用処理回路モジュールによる仮想アドレス空間を利用したアクセス制御の一例として、特許文献1に開示がある。特許文献1のプロセッサシステムは、CPUと、DMA転送のためのDMAコントローラと、DMA転送用アドレス変換器とを備え、DMAコントローラがDMA転送を行う際には、DMA転送用アドレス変換器に予め格納しておいた仮想アドレスと物理アドレスの対応を示すアドレス変換情報を用いてアドレス変換を行う。これにより、プロセッサシステムにおいてDMAコントローラが仮想アドレスを物理アドレスに変換する処理を無くし、ソフトウェアの処理速度の向上を図るものである。   Patent Document 1 discloses an example of access control using a virtual address space by the dedicated processing circuit module. The processor system of Patent Document 1 includes a CPU, a DMA controller for DMA transfer, and a DMA transfer address converter. When the DMA controller performs DMA transfer, it is stored in advance in the DMA transfer address converter. Address translation is performed using the address translation information indicating the correspondence between the virtual address and the physical address. As a result, in the processor system, the DMA controller eliminates the process of converting the virtual address into the physical address, and the processing speed of the software is improved.

特開平5−120205号公報Japanese Patent Laid-Open No. 5-120205

前述の情報機器では更に、増大するソフトウェアの開発を効率化するため、複数のプログラムをマルチプロセスで動作させてプロセス毎に仮想空間を割り当て、プロセス間保護機能を備える汎用のOS(Operating System)を採用するケースが増加している。しかしながら、このような汎用OSは、前記専用処理回路モジュールの仮想アドレス空間を利用したアクセス制御に対応していない場合が多い。そのため、CPUに加え前記専用処理回路モジュールを内蔵したLSIを備える情報機器が上記の汎用OSを採用した場合、処理性能の低下やソフトウェア開発工数の増加、部分的に保護機能が働かないことによるソフトウェア的な安全性の低下等の問題が発生する可能性がある。例えば上記特許文献1のプロセッサシステムが前記プロセス毎に仮想空間を割り当てる構造の汎用OSを採用した場合において、DMAコントローラによるDMA転送時にOSが別のプロセスに係る処理に切り替えると、MMU(Memory Management Unit)に格納されるアドレス変換情報は、DMA転送に係る情報から前記別のプロセスに係る情報に切替えられる。このとき、DMAコントローラとCPUは並列に処理を行うことができるが、前記プロセッサシステムはDMA転送用アドレス変換器のアドレス変換情報を動的に更新する手段を有さず、また一般的にCPUに内蔵されるメモリ管理ユニット(MMU)とDMA転送用アドレス変換器が連携もしていないことから、MMUとDMA転送用アドレス変換器のアドレス変換情報が不一致となり、DMAコントローラが利用する仮想アドレス空間に対応する物理アドレス空間に不整合が生じる可能性がある。すなわち、このようなプロセッサシステムでは、OSによって動的に割り当てられたメモリ領域に対しては仮想アドレスを用いたDMA転送を安全に行うことができない。上記の問題は、例えば、専用処理回路モジュールであるDMAコントローラとCPUがMMUを共有するシステム構成とし、OSがMMUにおいて発生したアドレス変換ミスや保護違反等に対する例外処理をCPUとDMAコントローラを区別して実行できるようにすることで解決することが可能である。OSにこのような処理を実行させるには、OSのプログラムを大きく改変する必要がある。しかしながら、汎用OSの改変は特に難易度が高く、また汎用OSを改変する権利や動作保障の点において大きな困難を伴う。   In the above-mentioned information device, in order to increase the development efficiency of the increasing software, a general-purpose OS (Operating System) equipped with an inter-process protection function by operating a plurality of programs in multiple processes and allocating a virtual space for each process. Increasing use cases. However, such a general-purpose OS often does not support access control using the virtual address space of the dedicated processing circuit module. Therefore, when an information device including an LSI incorporating the dedicated processing circuit module in addition to the CPU adopts the general-purpose OS described above, software due to a decrease in processing performance, an increase in software development man-hours, and partial protection functions do not work. There is a possibility that problems such as a decrease in general safety may occur. For example, in the case where the processor system of Patent Document 1 employs a general-purpose OS that allocates a virtual space for each process, when the OS switches to processing related to another process during DMA transfer by the DMA controller, the MMU (Memory Management Unit) is used. The address conversion information stored in () is switched from information related to DMA transfer to information related to the other process. At this time, the DMA controller and the CPU can perform processing in parallel, but the processor system does not have means for dynamically updating the address conversion information of the DMA transfer address converter, and generally the CPU does not. Since the built-in memory management unit (MMU) and the DMA transfer address converter are not linked, the address conversion information of the MMU and the DMA transfer address converter does not match, and corresponds to the virtual address space used by the DMA controller. Inconsistency may occur in the physical address space. That is, in such a processor system, it is impossible to safely perform DMA transfer using a virtual address for a memory area dynamically allocated by the OS. The above problem is, for example, a system configuration in which the CPU and the DMA controller, which are dedicated processing circuit modules, share the MMU, and the OS distinguishes between the CPU and the DMA controller for exception handling for address translation errors or protection violations that occur in the MMU. It can be solved by making it executable. In order for the OS to execute such processing, it is necessary to greatly modify the OS program. However, the modification of the general-purpose OS is particularly difficult, and is accompanied by great difficulty in terms of the right to modify the general-purpose OS and the operation guarantee.

本発明の目的は、OSによる処理内容を大きく変更することなく、仮想アドレス空間を利用した安全なアクセス制御を可能とするデータ処理装置を提供することにある。   An object of the present invention is to provide a data processing apparatus that enables safe access control using a virtual address space without greatly changing the processing contents by the OS.

本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。   The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.

本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。   The following is a brief description of an outline of typical inventions disclosed in the present application.

すなわち、データ処理装置は、物理アドレスによってアクセスされ、仮想アドレスを用いてアクセス制御を行う回路モジュールが、仮想アドレスを物理アドレスにアドレス変換するための処理を行うメモリ管理部を介して中央処理装置により設定された条件にしたがって動作を開始した場合、前記中央処理装置によるそのときの仮想アドレス空間と物理アドレス空間の対応を変更する処理を抑止する。   In other words, the data processing apparatus is accessed by a physical address, and a circuit module that performs access control using a virtual address uses a central processing unit via a memory management unit that performs processing for converting the virtual address into a physical address. When the operation is started in accordance with the set condition, the process of changing the correspondence between the virtual address space and the physical address space at that time by the central processing unit is suppressed.

本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。   The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.

すなわち、データ処理装置は、OSによる処理内容の大きな変更なしに仮想アドレス空間を利用した安全なアクセス制御が可能となる。   That is, the data processing apparatus can perform safe access control using the virtual address space without significant change in the processing contents by the OS.

図1は、実施の形態1に係るマイクロプロセッサのブロック図である。FIG. 1 is a block diagram of the microprocessor according to the first embodiment. 図2は、メモリ管理ユニット16によるアドレス変換に用いられるTLB161の構成の一例を示す説明図である。FIG. 2 is an explanatory diagram showing an example of the configuration of the TLB 161 used for address conversion by the memory management unit 16. 図3は、OSによるTLBミス例外処理の一例を示すフロー図である。FIG. 3 is a flowchart showing an example of TLB miss exception processing by the OS. 図4は、専用処理回路モジュール11の内部構成の一例を示すブロック図である。FIG. 4 is a block diagram showing an example of the internal configuration of the dedicated processing circuit module 11. 図5は、専用処理回路モジュール11に処理を実行させる場合のタイミングチャートの一例である。FIG. 5 is an example of a timing chart when the dedicated processing circuit module 11 executes processing. 図6は、専用処理回路モジュール11に処理を実行させる場合のCPUコア部10と専用処理回路モジュール11の動作状態を示す説明図である。FIG. 6 is an explanatory diagram showing operation states of the CPU core unit 10 and the dedicated processing circuit module 11 when the dedicated processing circuit module 11 executes processing. 図7は、実施の形態2に係るマイクロプロセッサのブロック図である。FIG. 7 is a block diagram of a microprocessor according to the second embodiment. 図8は、実施の形態3に係るマイクロプロセッサのブロック図である。FIG. 8 is a block diagram of a microprocessor according to the third embodiment. 図9は、実施の形態4に係るマイクロプロセッサのブロック図である。FIG. 9 is a block diagram of a microprocessor according to the fourth embodiment.

1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
1. First, an outline of a typical embodiment of the invention disclosed in the present application will be described. Reference numerals in the drawings referred to in parentheses in the outline description of the representative embodiments merely exemplify what are included in the concept of the components to which the reference numerals are attached.

〔1〕(回路モジュールが仮想空間を用いて動作するときCPUはその仮想空間を変更しない(図1、図7、図8))
本発明の代表的な実施の形態に係るデータ処理装置(1、2、3)は、仮想アドレスを用いてアクセス制御を行う中央処理装置(10)と、物理アドレスによりアクセスされ、且つ仮想アドレスを用いてアクセス制御を行う回路モジュール(11、31、41)と、前記中央処理装置が出力する仮想アドレス及び前記回路モジュールが出力する仮想アドレスを物理アドレスにアドレス変換するための処理を行うメモリ管理部(16、36、46)と、を有するデータ処理装置であって、前記中央処理装置により前記メモリ管理部を介して設定された条件にしたがって前記回路モジュールが動作を開始した場合、前記中央処理装置はそのときの仮想アドレス空間と物理アドレス空間の対応を変更する処理を抑止される。
[1] (When the circuit module operates using the virtual space, the CPU does not change the virtual space (FIGS. 1, 7, and 8))
A data processing device (1, 2, 3) according to a representative embodiment of the present invention is accessed by a physical address and a central processing device (10) that performs access control using a virtual address, and the virtual address is Circuit module (11, 31, 41) that performs access control using the memory management unit that performs processing for converting the virtual address output from the central processing unit and the virtual address output from the circuit module into a physical address (16, 36, 46), and when the circuit module starts operating according to the conditions set by the central processing unit via the memory management unit, the central processing unit The process of changing the correspondence between the virtual address space and the physical address space at that time is suppressed.

これによれば、前記回路モジュールが動作している間はその前記回路モジュールが用いる仮想アドレス空間と物理アドレス空間の対応が変更されないから、前記回路モジュールが用いる仮想アドレス空間に対応する物理アドレス空間に不整合が生じることがない。   According to this, since the correspondence between the virtual address space used by the circuit module and the physical address space is not changed while the circuit module is operating, the physical address space corresponding to the virtual address space used by the circuit module is not changed. There is no inconsistency.

〔2〕(回路モジュールによるストール信号のアサートによりCPUの処理停止(図1、図5))
項1のデータ処理装置において、前記回路モジュール(11)は、前記中央処理装置による前記条件を設定する所定の命令の実行に応じて動作を開始するとともに、ストール信号(stlp)をアサートし、前記中央処理装置は、前記ストール信号がアサートされているとき命令の実行を保留する。
[2] (CPU processing stopped by the stall signal asserted by the circuit module (FIGS. 1 and 5))
In the data processing device according to item 1, the circuit module (11) starts an operation in response to execution of a predetermined instruction for setting the condition by the central processing device, asserts a stall signal (stlp), and The central processing unit suspends execution of the instruction when the stall signal is asserted.

前記ストール信号がアサートされている期間、前記中央処理装置が新たな命令フェッチを行わない。これにより、容易に前記仮想アドレス空間と物理アドレス空間の対応を変更する処理を抑止させることが可能となる。言い換えれば、OSが積極的に関与することなく、前記仮想アドレス空間と物理アドレス空間の対応を変更する処理を抑止させることが可能となる。   While the stall signal is asserted, the central processing unit does not perform a new instruction fetch. As a result, it is possible to easily suppress processing for changing the correspondence between the virtual address space and the physical address space. In other words, it is possible to suppress processing for changing the correspondence between the virtual address space and the physical address space without the OS being actively involved.

〔3〕(スタートレジスタを設定する命令(図1))
項2のデータ処理装置において、前記回路モジュールは、動作を開始するためのスタートビットが設定される制御レジスタ(1151)を有し、前記所定の命令は、前記メモリ管理部を介して前記制御レジスタのスタートビットを設定する命令である。
[3] (Instruction to set start register (Fig. 1))
In the data processing device according to Item 2, the circuit module includes a control register (1151) in which a start bit for starting an operation is set, and the predetermined instruction is transmitted to the control register via the memory management unit. This command sets the start bit.

〔4〕(ストール信号のネゲートの条件(図1、図4、図6))
項3のデータ処理装置において、前記回路モジュールは、前記回路モジュールによる仮想アドレスを用いたアクセス制御に対する前記アドレス変換するための処理時のエラーに起因して、前記ストール信号をネゲートする。
[4] (Conditions for stall signal negation (FIGS. 1, 4, and 6))
In the data processing device according to item 3, the circuit module negates the stall signal due to an error in the process for converting the address for the access control using the virtual address by the circuit module.

これによれば、前記中央処理装置は、命令の実行保留中の状態から解除されて例外処理を実行することが可能となる。   According to this, the central processing unit can be released from a state in which execution of instructions is pending and can execute exception processing.

〔5〕(例外処理(図1、図6))
項4のデータ処理装置において、前記エラーが発生した場合には、前記メモリ管理部は例外処理要求(excp)を発行し、前記回路モジュールは前記所定の命令に応じた動作を停止し、前記中央処理装置は、前記例外処理要求に応じて前記エラーに対する例外処理を実行し、当該例外処理の完了後、前記回路モジュールの動作の再開する処理を実行する。
[5] (Exception handling (FIGS. 1 and 6))
In the data processing device according to Item 4, when the error occurs, the memory management unit issues an exception processing request (excp), the circuit module stops the operation according to the predetermined instruction, and the central processing unit The processing device executes exception processing for the error in response to the exception processing request, and executes processing for restarting the operation of the circuit module after the exception processing is completed.

これによれば、OSによる例外処理によって、結果として前記回路モジュールの動作におけるエラーが解消され、その動作の再開が可能となる。   According to this, an error in the operation of the circuit module is eliminated as a result of the exception processing by the OS, and the operation can be resumed.

〔6〕(CPUによる命令再実行により処理再開(図1、図4、図6))
項5のデータ処理装置において、前記回路モジュールの動作の再開する処理は、前記所定の命令を再実行する処理である。
[6] (Process resumption by instruction re-execution by CPU (FIGS. 1, 4, and 6))
In the data processing device according to item 5, the process of restarting the operation of the circuit module is a process of re-executing the predetermined instruction.

これによれば、容易に前記回路モジュールに動作を再開させることができる。   According to this, the operation can be easily restarted by the circuit module.

〔7〕(MMUによるストール信号のアサートによりCPUの処理停止(図7、図8))
項1のデータ処理装置において、前記回路モジュールは、前記中央処理装置による前記条件を設定する所定の命令の実行に応じて動作を開始し、前記メモリ管理部(36,46)は、前記所定の命令の実行に応じてストール信号(stlc2)をアサートし、前記中央処理装置は、前記ストール信号がアサートされているとき命令の実行を保留する。
[7] (CPU processing stopped by asserting stall signal by MMU (FIGS. 7 and 8))
In the data processing device according to item 1, the circuit module starts an operation in response to execution of a predetermined instruction for setting the condition by the central processing unit, and the memory management unit (36, 46) A stall signal (stlc2) is asserted in response to the execution of the instruction, and the central processing unit suspends execution of the instruction when the stall signal is asserted.

前記ストール信号がアサートされている期間、前記中央処理装置が新たな命令フェッチを行わない。これにより、容易に前記仮想アドレス空間と物理アドレス空間の対応を変更する処理を抑止させることが可能となる。   While the stall signal is asserted, the central processing unit does not perform a new instruction fetch. As a result, it is possible to easily suppress processing for changing the correspondence between the virtual address space and the physical address space.

〔8〕(スタートレジスタを設定する命令(図2、図7、図8))
項7のデータ処理装置において、前記回路モジュールは、動作を開始するためのスタートビットが設定される制御レジスタを有し、前記所定の命令は、前記メモリ管理部を介して前記制御レジスタのスタートビットを設定する命令である。
[8] (Instruction to set start register (FIGS. 2, 7, and 8))
In the data processing device according to item 7, the circuit module includes a control register in which a start bit for starting an operation is set, and the predetermined instruction is transmitted to the start bit of the control register via the memory management unit. Is an instruction to set

これによれば、項3と同様に、前記回路モジュールによる動作中は、前記中央処理装置による前記制御レジスタのスタートビットを設定する処理が実行されている状態としてOSに認識させることができる。   According to this, similarly to the item 3, during the operation by the circuit module, the OS can be recognized as a state in which the process of setting the start bit of the control register by the central processing unit is being executed.

〔9〕(例外処理(図7、図8))
項8のデータ処理装置において、前記回路モジュールによる仮想アドレスを用いたアクセス制御に対する前記アドレス変換するための処理中にエラーが発生したとき、前記メモリ管理部は前記ストール信号(stlc2)をネゲートするとともに例外処理要求を発行し、前記回路モジュールは、前記例外処理要求に応じて前記所定の命令に応じた動作を停止し、前記中央処理装置は、前記例外処理要求に応じて前記エラーに対する例外処理を実行する。
[9] (Exception handling (FIGS. 7 and 8))
In the data processing device according to item 8, when an error occurs during the address conversion process for the access control using the virtual address by the circuit module, the memory management unit negates the stall signal (stlc2). An exception handling request is issued, the circuit module stops the operation according to the predetermined instruction in response to the exception handling request, and the central processing unit performs exception handling for the error in response to the exception handling request. Execute.

これによれば、前記メモリ管理部が前記ストール信号をネゲートすることで、前記中央処理装置は命令の実行保留中の状態から解除されて例外処理を実行することが可能となる。また、OSによる例外処理によって、結果として前記回路モジュールの動作におけるエラーが解消され、その動作の再開が可能となる。   According to this, when the memory management unit negates the stall signal, the central processing unit can be released from the instruction execution pending state and execute exception processing. Further, the exception processing by the OS eliminates an error in the operation of the circuit module as a result, and the operation can be resumed.

〔10〕(回路モジュールの処理再開(図7))
項9のデータ処理装置において、前記例外処理の完了後、前記中央処理装置は、前記回路モジュール(31)の動作を再開する処理を実行する。
[10] (Restart circuit module processing (FIG. 7))
In the data processing device according to item 9, after the completion of the exception processing, the central processing unit executes processing for resuming the operation of the circuit module (31).

〔11〕(CPUによる命令再実行により処理再開(図7))
項10のデータ処理装置において、前記回路モジュールの動作の再開する処理は、前記所定の命令を再実行する処理である。
[11] (Process resumed by instruction re-execution by CPU (FIG. 7))
In the data processing device according to item 10, the process of restarting the operation of the circuit module is a process of re-executing the predetermined instruction.

〔12〕(MMUによる処理再開(処理再開信号rgm)(図8))
項9のデータ処理装置において、前記例外処理において前記エラーを解消する処理が完了したら、前記メモリ管理部(46)は、前記回路モジュール(41)の動作を再開する処理を実行する。
[12] (Process restart by MMU (process restart signal rgm) (FIG. 8))
In the data processing device according to item 9, when the processing for eliminating the error is completed in the exception processing, the memory management unit (46) executes processing for restarting the operation of the circuit module (41).

例えばアドレス変換エラーに対する例外処理において、前記メモリ管理部はTLBのアドレス変換情報の更新が完了したら前記回路モジュールに動作を再開させる。これよれば、例外処理における一連の処理が完了した後に前記回路モジュールに動作を再開させる場合に比べて、より早く前記回路モジュールの処理を再開させることが可能となる。   For example, in an exception process for an address translation error, the memory management unit causes the circuit module to resume operation when the update of the TLB address translation information is completed. According to this, it is possible to restart the processing of the circuit module earlier than in the case where the circuit module restarts the operation after a series of processing in the exception processing is completed.

〔13〕(第2のTLB(図9))
本発明の代表的な実施の形態に係るデータ処理装置(4)は、仮想アドレスを用いてアクセス制御を行う中央処理装置(10)と、物理アドレスによりアクセスされ、且つ仮想アドレスを用いてアクセス制御を行う回路モジュール(11)と、仮想アドレスを物理アドレスにアドレス変換するための第1アドレス変換対(161)を有し、前記第1アドレス変換対を用いてアドレス変換のための処理を行う第1メモリ管理部(52)と、前記第1アドレス変換対の全部又は一部をエントリとする第2アドレス変換対(501)を有し、前記第2アドレス変換対を用いて前記回路モジュールが出力する仮想アドレスを物理アドレスにアドレス変換するための処理を実行する第2メモリ管理部(50)と、を有するデータ処理装置であって、前記中央処理装置により前記第1メモリ管理部を介して設定された条件にしたがって前記回路モジュールが動作を開始した場合、前記中央処理装置はそのときの仮想アドレス空間と物理アドレス空間の対応を変更する処理を抑止される。
[13] (Second TLB (FIG. 9))
A data processing device (4) according to a representative embodiment of the present invention has a central processing unit (10) that performs access control using a virtual address, and is accessed by a physical address and is controlled by using a virtual address. And a first address translation pair (161) for translating a virtual address into a physical address, and performing a process for address translation using the first address translation pair. 1 memory management unit (52) and a second address translation pair (501) having all or part of the first address translation pair as an entry, and the circuit module outputs using the second address translation pair A data processing device comprising: a second memory management unit (50) for executing a process for converting a virtual address to a physical address, When the circuit module starts operating according to the condition set by the central processing unit via the first memory management unit, the central processing unit changes the correspondence between the virtual address space and the physical address space at that time Is suppressed.

これによれば、項1と同様に、前記回路モジュールが用いる仮想アドレス空間に対応する物理アドレス空間に不整合が生じることがない。また、例えば前記中央処理装置の動作周波数よりも前記回路モジュールの動作周波数が低い場合において、一つのメモリ管理部が前記中央処理装置からのアクセスと前記回路モジュールからのアクセスに対してアクセス制御を行うこととすると、当該メモリ管理部は動作周波数の高い方の周波数に対応できるように設計する必要がある。これにより、当該メモリ管理部は低い動作周波数の前記回路モジュールの動作中であっても高い周波数に対応して設計された消費電力の多い回路を動作させる必要があり、発熱と消費電力の点で不利である。また、前記中央処理装置からのアクセスのみに対応して設計する場合と比較して前記メモリ管理部の回路規模が大きくなり、回路遅延の増大による最大動作周波数の低下が発生することで、性能面でも不利となる。そこで項13に係るデータ処理装置のように前記第1メモリ管理部と前記回路モジュールからのアクセス制御のための前記第2メモリ管理部との2つのメモリ管理部を備えることで、前記第2メモリ管理部の動作周波数を前記回路モジュールに合わせて最適化すると共に、前記第1メモリ管理部の回路規模の増大を抑えて動作周波数の低下を防ぐことができるから、前記回路モジュールによる処理効率の向上に資する。   According to this, similarly to the item 1, there is no inconsistency in the physical address space corresponding to the virtual address space used by the circuit module. For example, when the operating frequency of the circuit module is lower than the operating frequency of the central processing unit, one memory management unit performs access control for access from the central processing unit and access from the circuit module. In this case, the memory management unit needs to be designed so as to be compatible with the higher operating frequency. As a result, the memory management unit needs to operate a circuit with high power consumption designed for a high frequency even during operation of the circuit module with a low operating frequency, in terms of heat generation and power consumption. It is disadvantageous. In addition, the circuit scale of the memory management unit is increased compared with the case of designing only for access from the central processing unit, and the maximum operating frequency is reduced due to an increase in circuit delay. But it is disadvantageous. Therefore, as in the data processing device according to item 13, the second memory is provided by including two memory management units, the first memory management unit and the second memory management unit for controlling access from the circuit module. The operating frequency of the management unit can be optimized according to the circuit module, and the increase in the circuit size of the first memory management unit can be suppressed to prevent a reduction in the operating frequency. Contribute to

〔14〕(第2MMUにおけるTLBミス時の第1MMUによる処理)
項13のデータ処理装置において、前記第2メモリ管理部は、前記回路モジュールによる仮想アドレスを用いたアクセス制御に対する前記アドレス変換するための処理中にアドレス変換に必要なエントリが見つからなかったとき、前記第1メモリ管理部に対しその旨を通知し、前記第1メモリ管理部は、前記通知に応じて前記第1アドレス変換対を検索し、検索した結果必要なエントリが見つかった場合には当該エントリを前記第2アドレス変換対に登録して前記第2メモリ管理部に対して再度アドレス変換のための処理を実行させ、検索の結果必要なエントリが見つからなかった場合には例外処理要求を発行する。
[14] (Processing by the first MMU at the time of TLB miss in the second MMU)
In the data processing device according to item 13, when the second memory management unit does not find an entry necessary for address conversion during the process for address conversion for access control using a virtual address by the circuit module, The first memory management unit is notified of the fact, and the first memory management unit searches the first address translation pair in response to the notification. Is registered in the second address translation pair and the second memory management unit is caused to execute the address translation process again. If a necessary entry is not found as a result of the search, an exception handling request is issued. .

前記回路モジュールによるアクセスにおけるエラーに対する対応処理を、前記第2メモリ管理部でなく第1メモリ管理部に行わせることで、前記第2メモリ管理部の機能を簡素化し規模を小さくすることができる。   By causing the first memory management unit to perform the response process for the error in the access by the circuit module, not the second memory management unit, the function of the second memory management unit can be simplified and the scale can be reduced.

2.実施の形態の詳細
実施の形態について更に詳述する。
2. Details of Embodiments Embodiments will be further described in detail.

≪実施の形態1≫
図1は、本発明の一実施の形態に係るマイクロプロセッサのブロック図である。
<< Embodiment 1 >>
FIG. 1 is a block diagram of a microprocessor according to an embodiment of the present invention.

同図に示されるマイクロプロセッサ1は、例えば携帯情報端末用のマイクロプロセッサである。マイクロプロセッサ1は、図示されないRAM(Random Access Memory)やROM等の記憶装置、及び外部I/Oと接続されることにより、携帯情報端末の機能を実現する。   A microprocessor 1 shown in the figure is a microprocessor for a portable information terminal, for example. The microprocessor 1 realizes the function of a portable information terminal by being connected to a storage device such as a RAM (Random Access Memory) and a ROM (not shown) and an external I / O.

マイクロプロセッサ1は、OSやアプリケーションプログラムの実行主体であるCPUコア部10と、CPUコア部10に代わって所定の処理を実行する専用処理回路モジュール11と、仮想アドレスと物理アドレスの間のアドレス変換とメモリ保護を実行するメモリ管理ユニット(MMU)16と、を有する。CPUコア部10、専用処理回路モジュール11、及びメモリ管理ユニット16は、CPUアドレスバス(ca)とCPUデータバス(cd)から構成されるCPUバス17によって接続される。また、マイクロプロセッサ1は、その他の機能部として、キャッシュメモリ15、外部バスコントローラ(BSC)14、タイマユニット(Timer)13、及び割り込みコントローラ(INTC)12を備える。これらの機能部とメモリ管理ユニット16及び専用処理回路モジュール11は、内部アドレスバス(ia)と内部データバス(id)から構成される内部バス18によって夫々接続される。   The microprocessor 1 includes a CPU core unit 10 that is an execution subject of the OS and application programs, a dedicated processing circuit module 11 that executes predetermined processing on behalf of the CPU core unit 10, and an address conversion between a virtual address and a physical address. And a memory management unit (MMU) 16 that performs memory protection. The CPU core unit 10, the dedicated processing circuit module 11, and the memory management unit 16 are connected by a CPU bus 17 including a CPU address bus (ca) and a CPU data bus (cd). The microprocessor 1 also includes a cache memory 15, an external bus controller (BSC) 14, a timer unit (Timer) 13, and an interrupt controller (INTC) 12 as other functional units. These functional units are connected to the memory management unit 16 and the dedicated processing circuit module 11 by an internal bus 18 composed of an internal address bus (ia) and an internal data bus (id).

マイクロプロセッサ1では基本ソフトウェアであるオペレーティングシステム(OS)が利用される。OSのプログラムはROM(Read Only Memory)等の記憶装置に格納され、CPUコア部10によって実行される。CPUコア部10は、OSのプログラムを実行することにより、複数のアプリケーションソフトウェアのスケジューリング、メモリ管理、及び外部I/Oの管理等の制御を行う。前記複数のアプリケーションソフトウェアはOSにより互いに独立した仮想アドレス空間が割り当てられ、その仮想アドレス空間を夫々用いて動作する。前記複数のアプリケーションソフトウェアは、CPUコア部10によって実行されるが、CPUコア部10はそのソフトウェアにおける処理の一部を専用処理回路モジュール11によって実行させる。   The microprocessor 1 uses an operating system (OS) that is basic software. The OS program is stored in a storage device such as a ROM (Read Only Memory) and is executed by the CPU core unit 10. The CPU core unit 10 performs control of scheduling of a plurality of application software, memory management, management of external I / O, and the like by executing an OS program. The plurality of application softwares are assigned virtual address spaces independent from each other by the OS, and operate using the virtual address spaces. The plurality of application software is executed by the CPU core unit 10, and the CPU core unit 10 causes the dedicated processing circuit module 11 to execute a part of processing in the software.

CPUコア部10及び専用処理回路モジュール11からのアクセスは仮想アドレスによって行われ、そのアクセスはメモリ管理ユニット16を経由して行われる。具体的には、CPUコア部10と専用処理回路モジュール11は、仮想アドレスをCPUバス17に出力することによりアクセス要求を発行する。アクセス要求を受け取ったメモリ管理ユニット16は、当該アクセス要求に係る仮想アドレスを対応する物理アドレスに変換する。そして、メモリ管理ユニット16は、当該アクセス要求を物理アドレスを伴って内部バス18上に出力することにより、専用処理回路モジュール11、割り込みコントローラ12、外部バスコントローラ14、及びタイマユニット13に対してアクセス要求を伝達する。   Access from the CPU core unit 10 and the dedicated processing circuit module 11 is performed by a virtual address, and the access is performed via the memory management unit 16. Specifically, the CPU core unit 10 and the dedicated processing circuit module 11 issue an access request by outputting a virtual address to the CPU bus 17. The memory management unit 16 that has received the access request converts the virtual address associated with the access request into a corresponding physical address. Then, the memory management unit 16 accesses the dedicated processing circuit module 11, the interrupt controller 12, the external bus controller 14, and the timer unit 13 by outputting the access request on the internal bus 18 with a physical address. Communicate the request.

以下、マイクロプロセッサ1の各機能部について詳細に説明する。   Hereinafter, each functional unit of the microprocessor 1 will be described in detail.

CPUコア部10は、メモリ管理ユニット16を経由して各機能部の制御用のレジスタをアクセスすることにより、各機能部の制御を行う。例えばCPUコア部10が、専用処理回路モジュール11に特定の処理を実行させる命令を実行した場合には、CPUコア部10はCPUバス17上に当該命令で指定された仮想アドレスを出力することによりアクセス要求を行う。当該アクセス要求を受け取ったメモリ管理ユニット16は当該アクセス要求をアドレス変換した物理アドレスを伴って内部バス18上に出力する。内部バス18からアクセス要求を受け取った専用処理モジュール11は、後述する制御レジスタ1151に所定の値が設定される。以上により専用処理回路モジュール11は処理を開始する。   The CPU core unit 10 controls each functional unit by accessing a control register for each functional unit via the memory management unit 16. For example, when the CPU core unit 10 executes an instruction that causes the dedicated processing circuit module 11 to execute a specific process, the CPU core unit 10 outputs a virtual address specified by the instruction on the CPU bus 17. Make an access request. The memory management unit 16 that has received the access request outputs the access request to the internal bus 18 with the physical address obtained by converting the address. The dedicated processing module 11 that has received the access request from the internal bus 18 sets a predetermined value in the control register 1151 described later. As described above, the dedicated processing circuit module 11 starts processing.

また、CPUコア部10は、外部バスコントローラ14を経由して外部アドレスバス(ea)と外部データバス(ed)から構成される外部バス19に接続されたRAMやROM等の周辺回路にアクセスすることにより、ソフトウェアの実行に必要な命令の読み出しや各種データの入出力を行う。更にCPUコア部10は、前記割り込み信号intに応じて割り込み処理を実行し、メモリ管理ユニット16からの例外処理要求信号(excp)に応じて例外処理を実行する。例外処理の詳細な処理内容については後述する。なお、上記割り込み処理や例外処理は特権モードで実行される。   Further, the CPU core unit 10 accesses a peripheral circuit such as a RAM or a ROM connected to an external bus 19 including an external address bus (ea) and an external data bus (ed) via the external bus controller 14. As a result, instructions necessary for software execution are read and various data are input / output. Further, the CPU core unit 10 executes interrupt processing in response to the interrupt signal int, and executes exception processing in response to an exception processing request signal (excp) from the memory management unit 16. Details of the exception processing will be described later. The interrupt processing and exception processing are executed in privileged mode.

外部バスコントローラ14は、内部バス18に接続されると共に外部バス19に接続され、外部バス19を介してマイクロプロセッサ1とRAMやROM等の外付けの記憶装置及びその他外部I/Oとの間のデータ転送のための制御を行う。   The external bus controller 14 is connected to the internal bus 18 and to the external bus 19, and is connected between the microprocessor 1 and an external storage device such as RAM and ROM and other external I / O via the external bus 19. Control for data transfer.

タイマユニット13は、一定間隔で割り込みコントローラ12に対してタイマ割り込みを要求するための信号(intt)を出力する。   The timer unit 13 outputs a signal (intt) for requesting a timer interrupt to the interrupt controller 12 at regular intervals.

割り込みコントローラ12は、専用処理回路モジュール11からの割り込み要求(intp)、タイマユニット13からの割り込み要求(intt)、及び外部装置等からの割り込み要求(into)を入力して調停を行い、CPUコア部10に対して割り込み処理の要求のための割り込み信号(int)を出力する。具体的には、割り込みコントローラ12は、夫々の割り込み要求(intp信号、intt信号、into信号)の入力状態と、CPUコア部10が割り込み可能であるか否かを示す状態と、受付優先レベルとに基づいて判定し、割り込みの受付条件が満たされた場合にCPUコア部10に割り込み信号(int)を出力する。   The interrupt controller 12 receives an interrupt request (intp) from the dedicated processing circuit module 11, an interrupt request (intt) from the timer unit 13, and an interrupt request (into) from an external device, etc., and performs arbitration, and the CPU core An interrupt signal (int) for requesting interrupt processing is output to the unit 10. Specifically, the interrupt controller 12 inputs the respective interrupt requests (intp signal, intt signal, into signal), a state indicating whether or not the CPU core unit 10 is capable of interrupting, the reception priority level, When the interrupt acceptance condition is satisfied, an interrupt signal (int) is output to the CPU core unit 10.

メモリ管理部16は、前述したように、CPUバス17を介してCPUコア部10と専用処理回路モジュール11に接続され、内部バス18を介して専用処理回路モジュール11、割り込みコントローラ12、外部バスコントローラ14、及びタイマユニット13に接続される。更にメモリ管理ユニット16は、キャッシュアドレスバス(ma)とキャッシュデータバス(md)から構成されるキャッシュバス20によってキャッシュメモリ15と接続される。キャッシュメモリ15に対するアクセスは仮想アドレスと物理アドレスの双方が対応可能とされる。   As described above, the memory management unit 16 is connected to the CPU core unit 10 and the dedicated processing circuit module 11 via the CPU bus 17, and is connected to the dedicated processing circuit module 11, the interrupt controller 12, and the external bus controller via the internal bus 18. 14 and the timer unit 13. Further, the memory management unit 16 is connected to the cache memory 15 by a cache bus 20 including a cache address bus (ma) and a cache data bus (md). Access to the cache memory 15 is compatible with both virtual addresses and physical addresses.

メモリ管理ユニット16は、外部記憶装置(RAM等)に格納されるアドレス変換テーブルの情報の一部が格納されるTLB(Translation Lookaside Buffer)161を有し、ページングによる仮想アドレス空間と物理アドレス空間の管理を行う。具体的には、メモリ管理ユニット16は、CPUコア部10又は専用処理回路モジュール11からCPUバス17を介して仮想アドレスよるアクセス要求を受け取ると、TLB161を検索して当該アクセス要求に係る仮想アドレスに対応する物理アドレスに変換する。そして内部バス18に対して変換された物理アドレスによるアクセス要求を生成する。TLB161に対応するエントリがない等のエラーが発生した場合は、TLBミス例外等の例外処理をCPUコア部10に要求する。アドレス変換の詳細な内容は後述する。   The memory management unit 16 includes a TLB (Translation Lookaside Buffer) 161 in which a part of information of an address conversion table stored in an external storage device (RAM or the like) is stored, and includes a virtual address space and a physical address space by paging. Perform management. Specifically, when the memory management unit 16 receives an access request by a virtual address from the CPU core unit 10 or the dedicated processing circuit module 11 via the CPU bus 17, the memory management unit 16 searches the TLB 161 to obtain the virtual address related to the access request. Convert to the corresponding physical address. Then, an access request with the converted physical address is generated for the internal bus 18. When an error such as no entry corresponding to the TLB 161 occurs, the CPU core unit 10 is requested to perform exception processing such as a TLB miss exception. Details of the address conversion will be described later.

また、メモリ管理ユニット16は、CPUコア部10からのアクセス要求を受け取ったとき、CPUコア部10に対してストール信号(stlc)をアサートする。ストール信号stlcは、アドレス変換の結果を得るのに必要な所定期間アサートされる。これにより、CPUコア部10は後続の命令の実行を保留する。具体的には、メモリ管理ユニット16はCPUコア部10からメモリ管理ユニット16にアクセス要求が与えられた後、ストール信号stlcを前記所定期間アサートする。その期間に専用処理回路モジュール11から後述するストール信号stlpがアサートされた場合には、メモリ管理ユニット16は、当該ストール信号stlpがネゲートされるまでストール信号stlcをアサートし続ける。一方、専用処理回路モジュール11によりストール信号stlpがアサートされなかった場合には、メモリ管理ユニット16は、前記所定期間の経過後ストール信号stlcをネゲートする。ストール信号stlcをアサートするか否かの判断は、メモリ管理ユニット16が受け取ったアクセス要求に対応する、TLB161内のエントリに格納されているメモリページ属性情報、仮想アドレス、又は物理アドレス等に基づく条件判定により行われる。なお、何らかの原因でメモリ管理ユニット16がCPUバス17上のリード・ライト要求を直ちに受理しなかった場合、結果的にCPUコア部10や専用処理回路モジュール11の処理が一時停止する可能性があるが、これはstlc信号を用いた命令の完了と当該命令に係る処理の同期化のための制御とは異なる。   Further, when receiving an access request from the CPU core unit 10, the memory management unit 16 asserts a stall signal (stlc) to the CPU core unit 10. The stall signal stlc is asserted for a predetermined period necessary to obtain the result of address translation. As a result, the CPU core unit 10 suspends execution of subsequent instructions. Specifically, the memory management unit 16 asserts the stall signal stlc for the predetermined period after an access request is given from the CPU core unit 10 to the memory management unit 16. If a stall signal stlp described later is asserted from the dedicated processing circuit module 11 during that period, the memory management unit 16 continues to assert the stall signal stlc until the stall signal stlp is negated. On the other hand, when the stall signal stlp is not asserted by the dedicated processing circuit module 11, the memory management unit 16 negates the stall signal stlc after the predetermined period. Whether the stall signal stlc is to be asserted is determined based on a condition based on memory page attribute information, a virtual address, a physical address, or the like stored in an entry in the TLB 161 corresponding to the access request received by the memory management unit 16 This is done by judgment. If the memory management unit 16 does not immediately accept the read / write request on the CPU bus 17 for some reason, the processing of the CPU core unit 10 and the dedicated processing circuit module 11 may be temporarily stopped as a result. However, this is different from the control for completion of the instruction using the stlc signal and the synchronization of the processing related to the instruction.

ここで、メモリ管理ユニット16におけるアドレス変換と例外処理について詳細に説明する。   Here, address translation and exception processing in the memory management unit 16 will be described in detail.

図2は、メモリ管理ユニット16によるアドレス変換に用いられるTLB161の構成の一例である。   FIG. 2 shows an example of the configuration of the TLB 161 used for address conversion by the memory management unit 16.

同図に示されるTLB161はメモリ管理ユニット16に内蔵され、64個のエントリを有する。夫々のエントリには、8bitのアドレス空間識別子ASID[7:0]、22bitの仮想ページ番号VPN[31:10]、有効ビットV、19bitの物理ページ番号PPN[28:10]、2bitのページサイズビットSZ[1:0]、共有状態ビットSH、キャッシュ使用ビットC、2bitのアクセス権ビットPR[1:0]、ダーティビットD、及びキャッシュライトスルービットWT等の情報が格納される。前記情報の夫々の詳細は以下である。前記アドレス空間識別子ASIDは、論理ページをアクセスできるプロセスを示す。前記仮想ページ番号VPNは、論理アドレスの上位22bitを表す。有効ビットVは、当該エントリが有効であるか否かを表し、例えば“1”のときは有効、“0”のとき無効を夫々示す。物理ページ番号PPNは、物理アドレスの上位19bitを表す。ページサイズビットSZはページのサイズを表す。共有状態ビットSHは、プロセス間でページが共有されているか否かを表し、例えば“0”のとき共有なし、“1”のとき共有を夫々示す。キャッシュ使用ビットCは、ページがキャッシュメモリ15からキャッシング可能か否かを表し、例えば“0”のときキャッシング不可能、“1”のときキャッシング可能を夫々示す。アクセス権ビットPRは、CPUコア部10の各動作モードにおけるアクセス権の有無を表す。例えば“00”は特権モードで読み出しのみ可能、“01”は特権モードで読み出し/書き込み可能、“10”は特権/ユーザモードで読み出しのみ可能、“11”は特権/ユーザモードで読み出し/書き込み可能、であることを示す。ダーティビットDは、ページに書き込みが行われたか否かを表し、例えば“0”のとき書き込みが行われていないことを示し、“1”のとき書き込みが行われたことを示す。キャッシュライトスルービットWTは、キャッシュメモリ15への書き込みモードを表し、例えば“0”のときコピーバックモード、“1”のときライトスルーモードであることを示す。   The TLB 161 shown in the figure is built in the memory management unit 16 and has 64 entries. Each entry includes an 8-bit address space identifier ASID [7: 0], a 22-bit virtual page number VPN [31:10], a valid bit V, a 19-bit physical page number PPN [28:10], and a 2-bit page size. Information such as bit SZ [1: 0], shared state bit SH, cache use bit C, 2-bit access right bit PR [1: 0], dirty bit D, and cache write through bit WT is stored. Details of each of the information are as follows. The address space identifier ASID indicates a process that can access a logical page. The virtual page number VPN represents the upper 22 bits of the logical address. The valid bit V indicates whether or not the entry is valid. For example, “1” indicates valid, and “0” indicates invalid. The physical page number PPN represents the upper 19 bits of the physical address. The page size bit SZ represents the size of the page. The sharing status bit SH indicates whether or not a page is shared between processes. For example, the sharing status bit SH indicates no sharing when “0”, and sharing when “1”. The cache use bit C indicates whether or not the page can be cached from the cache memory 15, for example, “0” indicates that caching is not possible, and “1” indicates that caching is possible. The access right bit PR indicates whether or not there is an access right in each operation mode of the CPU core unit 10. For example, “00” can be read only in privileged mode, “01” can be read / written in privileged mode, “10” can only be read in privileged / user mode, and “11” can be read / written in privileged / user mode. . The dirty bit D indicates whether or not writing has been performed on the page. For example, “0” indicates that writing has not been performed, and “1” indicates that writing has been performed. The cache write-through bit WT represents a write mode to the cache memory 15, for example, “0” indicates a copy-back mode, and “1” indicates a write-through mode.

メモリ管理ユニット16によるTLB161を用いたアドレス変換は以下のように行われる。   The address conversion using the TLB 161 by the memory management unit 16 is performed as follows.

先ずメモリ管理ユニット16は、CPUコア部10又は専用処理回路モジュール11からCPUバス17を介してアクセス要求を受け付けると、TLB161を参照する。そして、有効ビットVが“1”である全てのエントリに対してページサイズビットSZで指定されるページサイズに対応するビット範囲の仮想ページ番号VPNとアクセス要求に係る仮想アドレスの上位アドレスとの比較を行う。ここでは、例えばSZ[1]=0及びSZ[0]=1の場合はページサイズが4kBとし、またCPUアドレスバスcaは32bitのバスであるとしたとき、前記比較の対象は、仮想ページ番号VPN〔31:12〕とCPUアドレスバスca[31:12]である。   First, when the memory management unit 16 receives an access request from the CPU core unit 10 or the dedicated processing circuit module 11 via the CPU bus 17, the memory management unit 16 refers to the TLB 161. Then, a comparison is made between the virtual page number VPN in the bit range corresponding to the page size specified by the page size bit SZ and the upper address of the virtual address related to the access request for all entries whose valid bit V is “1”. I do. Here, for example, when SZ [1] = 0 and SZ [0] = 1, the page size is 4 kB, and the CPU address bus ca is a 32-bit bus, the comparison target is the virtual page number. VPN [31:12] and CPU address bus ca [31:12].

次にメモリ管理ユニット16は、有効ビットVが“1”であるエントリのうち共有状態ビットSHが“0”であるエントリに対しては、前述の仮想ページ番号VPNとの比較に加えて、メモリ管理ユニット16の内部レジスタに設定されているアドレス空間識別子CID[7:0]と該当エントリのASID[7:0]の比較を行う。これらの比較の結果、不一致であった場合は、メモリ管理ユニット16は内部に備えるFVA(Failed Virtual Address)レジスタ162にエラーの原因となった仮想アドレスを保存すると共に、TLBミスとしてCPUコア部10に対して例外処理要求信号(excp)を用いてTLBミス例外処理を要求する。一方、一致した場合には、メモリ管理ユニット16はアクセス権ビットPR[1:0]で指定されたアクセス権を判別する。判別の結果、現在のアクセス要求が許可されない場合は、メモリ管理ユニット16はFVAレジスタ162にエラーの原因となった仮想アドレスを保存すると共に、excp信号を用いてページ保護違反例外処理をCPUコア部10に対して要求する。一方、アクセス権の判別の結果、現在のアクセス要求が許可されるアクセスであった場合には、メモリ管理ユニット16はダーティビットDを判別する。その結果、アクセス要求が書き込みの場合でダーティビットDが“0”のときはexcp信号を用いて初期ページ書き込み例外処理を要求する。一方ダーティビットDが“1”の場合には、アクセス要求が読み出しであるか書き込みであるかに関わらずアドレス変換可能と判断され、メモリ管理ユニット16は、受け取ったアクセス要求を変換した物理アドレスを伴って内部バス18上に出力する。物理アドレスへの生成方法は以下である。例えばSZ[1]=0及びSZ[0]=1の場合、物理ページ番号PPN[28:12]とCPUアドレスバスcaの下位アドレス[11:0]を連結した29bitの物理アドレス[28:0]が生成される。   Next, the memory management unit 16 adds, in addition to the comparison with the virtual page number VPN described above, the memory management unit 16 for the entry having the shared state bit SH “0” among the entries having the valid bit V “1”. The address space identifier CID [7: 0] set in the internal register of the management unit 16 is compared with the ASID [7: 0] of the corresponding entry. As a result of these comparisons, if they do not match, the memory management unit 16 stores the virtual address causing the error in an internal FVA (Failed Virtual Address) register 162, and also causes the CPU core unit 10 as a TLB miss. Is requested using the exception processing request signal (excp). On the other hand, if they match, the memory management unit 16 determines the access right specified by the access right bits PR [1: 0]. If the current access request is not permitted as a result of the determination, the memory management unit 16 saves the virtual address causing the error in the FVA register 162, and performs page protection violation exception processing using the exc signal. Request to 10. On the other hand, as a result of the determination of the access right, if the current access request is an permitted access, the memory management unit 16 determines the dirty bit D. As a result, when the access request is a write and the dirty bit D is “0”, an initial page write exception process is requested using the exc signal. On the other hand, when the dirty bit D is “1”, it is determined that the address can be converted regardless of whether the access request is read or write, and the memory management unit 16 sets the physical address obtained by converting the received access request. Accordingly, the data is output on the internal bus 18. The generation method for the physical address is as follows. For example, when SZ [1] = 0 and SZ [0] = 1, a 29-bit physical address [28: 0] obtained by concatenating the physical page number PPN [28:12] and the lower address [11: 0] of the CPU address bus ca. ] Is generated.

なお、アクセス要求に係る仮想アドレスの範囲にキャッシュの使用が指定されている場合(キャッシュ使用ビットCが“1”の場合)は、メモリ管理ユニット16は上記の処理を行う前にキャッシュメモリ15の検索を行う。検索の結果、キャッシュミスが発生したとき、又はキャッシュの動作モードがライトスルーである場合の書き込み発生であるとき、メモリ管理ユニット16は上記の方法により物理アドレスを生成し、内部バス18にアクセス要求を出力する。   When the use of the cache is specified in the range of the virtual address related to the access request (when the cache use bit C is “1”), the memory management unit 16 stores the cache memory 15 before performing the above processing. Perform a search. When a cache miss occurs as a result of the search, or when a write operation occurs when the cache operation mode is write-through, the memory management unit 16 generates a physical address by the above method and requests access to the internal bus 18. Is output.

次に、CPUコア部10におけるTLBミス等のエラーに対する例外処理について説明する。   Next, exception processing for errors such as TLB misses in the CPU core unit 10 will be described.

前述のようにメモリ管理ユニット16によるページングに係る処理中に、TLBミス、初期ページ書き込み、又はページ保護違反等のエラーが発生し、ソフトウェアによる当該処理への介入が必要になった場合には、メモリ管理ユニット16は、FVAレジスタ162にエラーの原因となった仮想アドレスを保存すると共に、例外処理要求信号(excp)によりCPUコア部10に対して例外処理を要求する。例外処理要求信号excpを受け取ったCPUコア部10は、OSによる制御に移行し、例えばプログラムカウンタ(PC)、ステータスレジスタ(SR)の内容等をそれぞれ退避用のレジスタ等に退避させるとともに、メモリ管理ユニット16のFVAレジスタ162を参照してTLBミスを発生させた仮想アドレスとプロセスを特定し、例外処理ルーチンを実行する。以下、TLBミス例外が発生した場合の例外処理を一例として、OSによる例外処理の流れを説明する。   When an error such as a TLB miss, initial page write, or page protection violation occurs during the processing related to paging by the memory management unit 16 as described above, it becomes necessary to intervene in the processing by software. The memory management unit 16 stores the virtual address causing the error in the FVA register 162 and requests exception processing from the CPU core unit 10 by an exception processing request signal (excp). Upon receiving the exception processing request signal excp, the CPU core unit 10 shifts to control by the OS, and for example, saves the contents of the program counter (PC) and the status register (SR) to a saving register or the like, and manages the memory. The virtual address and process that caused the TLB miss are identified with reference to the FVA register 162 of the unit 16, and an exception handling routine is executed. Hereinafter, the flow of exception processing by the OS will be described by taking exception processing when a TLB miss exception occurs as an example.

図3は、OSによるTLBミス例外処理の一例を示すフロー図である。   FIG. 3 is a flowchart showing an example of TLB miss exception processing by the OS.

CPUコア部10が、メモリ管理ユニット16から例外処理要求信号excpを受け取ると、OSによるTLBミス例外処理が開始される(S101)。CPUコア部10は、TLBミスの原因となった仮想アドレスの情報をメモリ管理ユニット16の内部のレジスタから読み出し、OSの管理しているページテーブル情報から対応するページエントリを検索する(S102)。CPUコア部10は、当該仮想アドレスに対応するページエントリの有無を判断し(S103)、対応するページエントリが見つからなかった場合には、CPUコア部10はTLBミス例外処理を中断する(S111)。一方、対応するページエントリが見つかった場合には、CPUコア部10は当該ページエントリから仮想ページの属性情報を読み出す(S104)。そして、CPUコア部10は、読み出した仮想ページの属性情報に基づいて現在のプロセスに仮想ページへのアクセスが許可されているかを判断する(S105)。アクセスが許可されていない場合には、CPUコア部10はTLBミス例外処理を中断する(S111)。一方、アクセスが許可されている場合には、CPUコア部10は、当該ページエントリに物理メモリが割り当てられているか否かを判別する(S106)。当該ページエントリに物理メモリが割り当てられている場合には、CPUコア部10は、TLB161に当該ページエントリの情報を登録し、TLBミスを起こした命令のアドレスから処理を再開させる(S109)。一方、物理メモリが割り当てられていない場合には、割り当てようとする物理メモリをページエントリに登録可能か否かを判別する(S107)。可能でない場合には、TLBミス例外処理を中断する(S111)。可能な場合には、仮想アドレスに物理アドレスを割り当てて該当するページエントリを更新する(S108)。その後、CPUコア部10は当該ページエントリの情報をTLB161に登録し、TLBミスを起こした命令のアドレスから処理を再開させる(S109)。具体的には例外処理の完了後、CPUコア部10は、前記退避用のレジスタ等に退避した内容をプログラムカウンタとステータスレジスタ等に再設定して例外処理から復帰し、エラーを発生させた命令を再実行することにより処理を再開させる。以上の処理により、TLBミス例外処理が終了する(S110)。   When the CPU core unit 10 receives the exception processing request signal exc from the memory management unit 16, TLB miss exception processing by the OS is started (S101). The CPU core unit 10 reads the information of the virtual address that caused the TLB miss from the register inside the memory management unit 16, and searches for the corresponding page entry from the page table information managed by the OS (S102). The CPU core unit 10 determines whether or not there is a page entry corresponding to the virtual address (S103). If no corresponding page entry is found, the CPU core unit 10 interrupts the TLB miss exception process (S111). . On the other hand, when the corresponding page entry is found, the CPU core unit 10 reads the virtual page attribute information from the page entry (S104). Then, the CPU core unit 10 determines whether the current process is permitted to access the virtual page based on the read virtual page attribute information (S105). If access is not permitted, the CPU core unit 10 interrupts the TLB miss exception process (S111). On the other hand, when access is permitted, the CPU core unit 10 determines whether or not physical memory is allocated to the page entry (S106). When physical memory is allocated to the page entry, the CPU core unit 10 registers the information of the page entry in the TLB 161, and resumes processing from the address of the instruction that caused the TLB miss (S109). On the other hand, if no physical memory is allocated, it is determined whether or not the physical memory to be allocated can be registered in the page entry (S107). If not possible, the TLB miss exception process is interrupted (S111). If possible, a physical address is assigned to the virtual address and the corresponding page entry is updated (S108). Thereafter, the CPU core unit 10 registers the information of the page entry in the TLB 161, and resumes the process from the address of the instruction that caused the TLB miss (S109). Specifically, after completion of the exception process, the CPU core unit 10 resets the contents saved in the save register and the like to the program counter and the status register and returns from the exception process to generate an error. The process is resumed by re-executing. With the above processing, the TLB miss exception processing ends (S110).

次に、専用処理回路モジュール11について説明する。   Next, the dedicated processing circuit module 11 will be described.

専用処理回路モジュール11は、CPUコア部10に代わって特定の処理を実行する。専用処理回路モジュール11は、例えばDMAコントローラや、音声データや画像データの圧縮、伸張、暗号処理、画像認識等の処理を実行するアクセラレータである。前述したように、専用処理回路モジュール11はCPUバス17と内部バス18に夫々接続され、内部バス18から物理アドレスによってアクセスされるとともに、仮想アドレスによってCPUバス17を介して他の機能部に対してアクセスする。例えば、専用処理回路モジュール11は、CPUコア部10によりメモリ管理ユニット16を介して内部バス18経由で動作の制御が行われる。一方、専用処理回路モジュール11が例えば外部のRAMにアクセスする場合には、CPUバス17からメモリ管理ユニット16を介してRAMにアクセスする。このように専用処理回路モジュール11からのアクセスに対してもメモリ管理ユニット16を用いるのは、専用処理回路モジュール11のアクセス要求に対してもメモリ管理機能やメモリ保護機能を適用するためである。   The dedicated processing circuit module 11 executes specific processing instead of the CPU core unit 10. The dedicated processing circuit module 11 is, for example, a DMA controller or an accelerator that executes processing such as compression / decompression of voice data and image data, encryption processing, and image recognition. As described above, the dedicated processing circuit module 11 is connected to the CPU bus 17 and the internal bus 18 respectively, and is accessed from the internal bus 18 by a physical address, and to other functional units via the CPU bus 17 by a virtual address. To access. For example, the operation of the dedicated processing circuit module 11 is controlled by the CPU core unit 10 via the internal bus 18 via the memory management unit 16. On the other hand, when the dedicated processing circuit module 11 accesses an external RAM, for example, the RAM is accessed from the CPU bus 17 via the memory management unit 16. The reason why the memory management unit 16 is used for the access from the dedicated processing circuit module 11 as described above is to apply the memory management function and the memory protection function to the access request of the dedicated processing circuit module 11 as well.

図4は、専用処理回路モジュール11の内部構成の一例を示すブロック図である。   FIG. 4 is a block diagram showing an example of the internal configuration of the dedicated processing circuit module 11.

同図に示されるように、専用処理回路モジュール11は、CPUバス調停部111、リード要求生成部112、ライト要求生成部113、データ処理部114、及び制御部115を備える。データ処理部114は、入力されたデータに対して各種のデータ処理を行う。例えば、専用処理回路モジュール11が画像処理用のデータ処理装置である場合には、データ処理部114は画像データの圧縮等のデータ処理を実行する。   As shown in the figure, the dedicated processing circuit module 11 includes a CPU bus arbitration unit 111, a read request generation unit 112, a write request generation unit 113, a data processing unit 114, and a control unit 115. The data processing unit 114 performs various data processing on the input data. For example, when the dedicated processing circuit module 11 is a data processing apparatus for image processing, the data processing unit 114 executes data processing such as compression of image data.

リード要求生成部112は、データ処理部114に入力するデータをCPUバス17経由で外部記憶装置(RAMやROM)から読み出すためのリード要求(rreq)を生成する。ライト要求生成部113は、データ処理部によるデータ処理結果に係るデータをCPUバス17経由で前記外部記憶装置に書き込むためのライト要求(wreq)を生成する。CPUバス調停部111は、リード要求生成部112とライト要求生成部113から出力されたリード要求rreq及びライト要求wreqを調停し、CPUバス17へのリード・ライト要求の発行と、当該要求に係るデータ(rdata、wdata)の転送を制御する。   The read request generation unit 112 generates a read request (rreq) for reading data input to the data processing unit 114 from the external storage device (RAM or ROM) via the CPU bus 17. The write request generation unit 113 generates a write request (wreq) for writing data related to the data processing result by the data processing unit to the external storage device via the CPU bus 17. The CPU bus arbitration unit 111 arbitrates the read request rreq and the write request wreq output from the read request generation unit 112 and the write request generation unit 113, issues a read / write request to the CPU bus 17, and relates to the request Controls the transfer of data (rdata, wdata).

制御部115は、CPUバス調停部111、リード要求生成部112、ライト要求生成部113、及びデータ処理部114の統括的な制御を行う。制御部115は、アクセス要求判定部1150、制御レジスタ1151、制御信号生成部1152、及びストール要求生成部1153を備える。   The control unit 115 performs overall control of the CPU bus arbitration unit 111, the read request generation unit 112, the write request generation unit 113, and the data processing unit 114. The control unit 115 includes an access request determination unit 1150, a control register 1151, a control signal generation unit 1152, and a stall request generation unit 1153.

制御レジスタ1151は、CPUコア部10から与えられる専用処理回路モジュール11の制御のためのコマンドやステータス、その他各種パラメータが設定されるレジスタである。具体的には、制御レジスタ1151は、専用処理回路モジュール11による動作の可否を示すスタートビットを有し、例えばスタートビットに“1”が設定されると専用処理回路モジュール11の動作が可能とされ、“0”が設定されると動作停止とされる。制御レジスタ11151は、アクセス要求判定部1150及び制御信号生成部1152により設定可能とされる。   The control register 1151 is a register in which commands, statuses, and other various parameters for controlling the dedicated processing circuit module 11 given from the CPU core unit 10 are set. Specifically, the control register 1151 has a start bit indicating whether or not the operation by the dedicated processing circuit module 11 is possible. For example, when the start bit is set to “1”, the operation of the dedicated processing circuit module 11 is enabled. , “0” is set, the operation is stopped. The control register 11151 can be set by the access request determination unit 1150 and the control signal generation unit 1152.

アクセス要求判定部1150は、内部バス18から与えられたアクセス要求に応じて制御レジスタ1151の値を設定する。例えば、CPUコア部10からメモリ管理ユニット16を介して、専用処理回路モジュール11による処理の開始を指示するアクセス要求が与えられた場合、アクセス要求判定部1150は、アクセス要求によって指定された物理アドレスの情報に基づいて制御レジスタ1151を選択し、スタートビットに“1”を設定する。更にアクセス要求判定部1150は、スタートビットに“1”が設定されているとき、そのことを示す信号(match)をアサートし、スタートビットに“0”が設定されているとき、match信号をネゲートする。   The access request determination unit 1150 sets the value of the control register 1151 according to the access request given from the internal bus 18. For example, when an access request instructing the start of processing by the dedicated processing circuit module 11 is given from the CPU core unit 10 via the memory management unit 16, the access request determination unit 1150 displays the physical address specified by the access request. The control register 1151 is selected based on the above information and the start bit is set to “1”. Further, the access request determination unit 1150 asserts a signal (match) indicating that the start bit is set to “1”, and negates the match signal when the start bit is set to “0”. To do.

制御信号生成部1152は、制御レジスタ1151の設定値や例外処理要求excpに基づいて、データ処理部114等の各機能部の動作を制御し、必要に応じて割り込み要求(intp)を出力する。制御信号生成部1152の具体的な動作内容は以下である。例えば、アクセス要求判定部1150により制御レジスタ1151のスタートビットに“1”が設定されると、制御信号生成部1152は、制御レジスタ1151に設定されているステータスや各種パラメータの値に応じた処理をデータ処理部114に実行させる。その後、データ処理部114による所定の処理単位の処理が完了したら、制御信号生成部1152は、制御レジスタ1151のスタートビットに“0”を設定する。ここで、前記所定の処理単位の処理とは、例えば専用処理回路モジュール11がDMAコントローラである場合は、データ処理部114による1パケット分のデータ転送に係る処理等であり、専用処理回路モジュール11が画像処理用のデータ処理装置の場合は、データ処理部114による1ブロック分の画像データのデータ処理等である。また、メモリ管理ユニット16から例外処理要求excpが与えられると、制御信号生成部1152はCPUバス調停部111を制御してストール信号stlpをネゲートさせるための信号(miss)を出力させるとともに、データ処理部114を制御して処理を中断させ、制御レジスタ1151のスタートビットに“0”を設定する。このとき、制御レジスタ115のステータスやパラメータ等の値は、例えばデータ処理部114の処理が中断される直前の値が保持される。更に制御信号生成部1152は、データ処理部114による処理が完了した場合や処理中にエラーが発生した場合には、割り込み要求intpを出力してCPUコア部10に対して通知を行う。   The control signal generation unit 1152 controls the operation of each functional unit such as the data processing unit 114 based on the setting value of the control register 1151 and the exception processing request excp, and outputs an interrupt request (intp) as necessary. The specific operation content of the control signal generation unit 1152 is as follows. For example, when the access request determination unit 1150 sets “1” to the start bit of the control register 1151, the control signal generation unit 1152 performs processing according to the status and various parameter values set in the control register 1151. The data processing unit 114 is executed. Thereafter, when the processing of a predetermined processing unit by the data processing unit 114 is completed, the control signal generation unit 1152 sets “0” to the start bit of the control register 1151. Here, the processing of the predetermined processing unit is, for example, processing related to data transfer for one packet by the data processing unit 114 when the dedicated processing circuit module 11 is a DMA controller, and the dedicated processing circuit module 11 In the case of a data processing apparatus for image processing, data processing of image data for one block by the data processing unit 114 is performed. When an exception handling request excp is given from the memory management unit 16, the control signal generation unit 1152 controls the CPU bus arbitration unit 111 to output a signal (miss) for negating the stall signal stlp and perform data processing. The processing is interrupted by controlling the unit 114 and “0” is set to the start bit of the control register 1151. At this time, values such as the status and parameters of the control register 115 are held immediately before the processing of the data processing unit 114 is interrupted, for example. Furthermore, when the processing by the data processing unit 114 is completed or when an error occurs during the processing, the control signal generation unit 1152 outputs an interrupt request intp to notify the CPU core unit 10.

ストール要求生成部1153は、miss信号及びmatch信号を入力し、CPUコア部10の命令実行を中断させるためのストール信号stlpを出力する。ストール信号stlpは、CPUコア部10における命令の完了と、当該命令に係る専用処理回路モジュール11の処理の完了を同期させるための信号である。具体的には、ストール要求生成部1153は、アクセス要求判定部1150により制御レジスタ1151のスタートビットに“1”が設定されてmatch信号がアサートされたら、ストール信号stlpをアサートする。一方、ストール信号stlpがアサートされているときにCPUバス調停部111によってmiss信号がアサートされたら、ストール信号stlpをネゲートする。これによれば、専用処理回路モジュール11の動作中はCPUコア部10の新たな命令実行は保留され、専用処理回路モジュール11の動作中にTLBミス等のエラーが発生したら、CPUコア部10の新たな命令実行の保留状態が解除される。   The stall request generation unit 1153 receives the miss signal and the match signal, and outputs a stall signal stlp for interrupting instruction execution of the CPU core unit 10. The stall signal stlp is a signal for synchronizing the completion of the instruction in the CPU core unit 10 and the completion of the process of the dedicated processing circuit module 11 related to the instruction. Specifically, the stall request generation unit 1153 asserts the stall signal stlp when the access request determination unit 1150 sets “1” to the start bit of the control register 1151 and asserts the match signal. On the other hand, if the miss signal is asserted by the CPU bus arbitration unit 111 while the stall signal stlp is asserted, the stall signal stlp is negated. According to this, a new command execution of the CPU core unit 10 is suspended during the operation of the dedicated processing circuit module 11, and if an error such as a TLB miss occurs during the operation of the dedicated processing circuit module 11, The pending state of new instruction execution is released.

ここで、CPUコア部10が専用処理回路モジュール11を制御して処理を実行させる場合のCPUコア部10、メモリ管理ユニット16、及び専用処理回路モジュール11の動作について、図5及び図6を用いて詳細に説明する。   Here, the operations of the CPU core unit 10, the memory management unit 16, and the dedicated processing circuit module 11 when the CPU core unit 10 controls the dedicated processing circuit module 11 to execute processing will be described with reference to FIGS. 5 and 6. Will be described in detail.

図5は、CPUコア部10が専用処理回路モジュール11を制御して処理を実行させる場合のタイミングチャートの一例である。同図には、CPUコア部10からCPUバス17上に出力された仮想アドレスと、ストール信号stlcと、メモリ管理ユニット16から内部バス18上に出力された物理アドレスと、ストール信号stlpの所定のタイミングに応じた状態が示される。なお、同図ではストール信号stlc及びstlpをアクティブ・ロー(active low)の信号として表示している。   FIG. 5 is an example of a timing chart when the CPU core unit 10 controls the dedicated processing circuit module 11 to execute processing. In the figure, the virtual address output from the CPU core unit 10 onto the CPU bus 17, the stall signal stlc, the physical address output from the memory management unit 16 onto the internal bus 18, and a predetermined stall signal stlp A state corresponding to the timing is shown. In the figure, the stall signals stlc and stlp are displayed as active low signals.

先ず、同図の参照符号501に示されるタイミングにおいて、例えばCPUコア部10が外部記憶装置(RAM)に対するアクセス要求を発行すると、当該アクセス要求で指定される仮想アドレスAがCPUバス17上に出力される。当該アクセス要求を受け取ったメモリ管理ユニット16は、例えば参照符号502に示されるタイミングにおいて、ストール信号stlpをアサートするとともに仮想アドレスAを物理アドレスPAに変換し、物理アドレスPAを内部バス18上に出力することで外部バスコントローラ14に対してアクセス要求を伝達する。この場合、当該アクセスの対象が専用処理回路モジュール11ではないため、ストール信号stlpはネゲートされたままとなる。その後ストール信号stlcがアサートされてから一定時間が経過したタイミング503において、メモリ管理ユニット16がストール信号stlcをネゲートする。   First, when the CPU core unit 10 issues an access request for an external storage device (RAM), for example, at the timing indicated by reference numeral 501 in the figure, the virtual address A specified by the access request is output on the CPU bus 17. Is done. The memory management unit 16 that has received the access request asserts the stall signal stlp, converts the virtual address A to the physical address PA, for example, at the timing indicated by reference numeral 502, and outputs the physical address PA on the internal bus 18 As a result, an access request is transmitted to the external bus controller 14. In this case, since the access target is not the dedicated processing circuit module 11, the stall signal stlp remains negated. Thereafter, at a timing 503 when a predetermined time has elapsed since the stall signal stlc was asserted, the memory management unit 16 negates the stall signal stlc.

次にタイミング504において、CPUコア部10が専用処理回路モジュール11に対する新たなアクセス要求を発行すると、当該アクセス要求で指定される仮想アドレスBがCPUバス17上に出力される。当該アクセス要求を受け取ったメモリ管理ユニット16は、タイミング505において、ストール信号stlcをアサートするとともに、仮想アドレスBを物理アドレスPBに変換し、物理アドレスPBを内部バス18上に出力することでアクセス要求を伝達する。当該アクセス要求を受け取った専用処理回路モジュール11は、タイミング506においてアクセス要求に係るデータ処理等を実行するとともに、ストール信号stlpをアサートする。メモリ管理ユニット16は、ストール信号stlpがアサートされたのを受けてストール信号stlcを引き続きアサートする。その後タイミング507において、専用処理回路モジュール11による処理が完了したら、専用処理回路モジュール11は割り込み要求intpを出力するとともに、ストール信号stlpをネゲートする。これにより、CPUコア部10の命令実行の保留状態が解除され、新たな命令実行が可能な状態となる。   Next, when the CPU core unit 10 issues a new access request to the dedicated processing circuit module 11 at timing 504, the virtual address B specified by the access request is output on the CPU bus 17. The memory management unit 16 that has received the access request asserts the stall signal stlc at timing 505, converts the virtual address B to the physical address PB, and outputs the physical address PB on the internal bus 18. To communicate. The dedicated processing circuit module 11 that has received the access request executes data processing related to the access request at timing 506 and asserts the stall signal stlp. The memory management unit 16 continues to assert the stall signal stlc in response to the assertion of the stall signal stlp. Thereafter, when the processing by the dedicated processing circuit module 11 is completed at the timing 507, the dedicated processing circuit module 11 outputs an interrupt request intp and negates the stall signal stlp. As a result, the instruction execution suspension state of the CPU core unit 10 is released, and a new instruction can be executed.

図6は、CPUコア部10が専用処理回路モジュール11を制御して処理を実行させる場合のCPUコア部10と専用処理回路モジュール11の動作状態を示す説明図である。   FIG. 6 is an explanatory diagram showing operation states of the CPU core unit 10 and the dedicated processing circuit module 11 when the CPU core unit 10 controls the dedicated processing circuit module 11 to execute processing.

ステップ201において、専用処理回路モジュール11に処理を実行させるため、CPUコア部10は専用処理回路モジュール11における制御レジスタ1151を設定する命令を実行する。当該命令の実行により、メモリ管理ユニット16を介して専用処理回路モジュール11にアクセス要求が発行される。これを受けた専用処理回路モジュール11のアクセス要求判定部1150は、制御レジスタ1151を選択し、スタートビットに“1”を設定する。これにより専用処理回路モジュール11は動作を開始するとともにストール信号stlpをアサートし、CPUコア部10の新たな命令実行が保留される。ステップ202において、専用処理回路モジュール11の動作中にTLBミスが発生するとメモリ管理ユニット16から例外処理要求excpが出力される。例外処理要求excpを受けた専用処理回路モジュール11の制御信号生成部1152は、データ処理部114において実行中の処理を中断させ、制御レジスタ1151のスタートビットに“0”を設定する。これによりストール信号stlpがネゲートされ、CPUコア部10は命令実行の保留状態から解放されてOSによる制御に移行し、例外処理を実行する。そして、ステップ203において例外処理が完了したら、CPUコア部10は例外処理を起こした命令を再実行する。当該命令の再実行により、メモリ管理ユニット16を介して専用処理回路モジュール11にアクセス要求が発行され、これを受けた専用処理回路モジュール11のアクセス要求判定部1150は、制御レジスタ1151のスタートビットに“1”を設定する。そして、専用処理回路モジュール11の制御信号生成部1152は、中断したときのステータスに基づいてデータ処理部114に処理を実行させる。これにより、専用処理回路モジュール11は中断したところから処理を再開することができる。また、スタートビットに“1”が設定されることにより、アクセス要求判定部1150はmatch信号をアサートし、その結果ストール信号stlpがアサートされる。これによりCPUコア部10は新たな命令実行を保留する。   In step 201, the CPU core unit 10 executes a command for setting the control register 1151 in the dedicated processing circuit module 11 in order to cause the dedicated processing circuit module 11 to execute processing. By executing this instruction, an access request is issued to the dedicated processing circuit module 11 via the memory management unit 16. Receiving this, the access request determination unit 1150 of the dedicated processing circuit module 11 selects the control register 1151 and sets “1” in the start bit. As a result, the dedicated processing circuit module 11 starts its operation and asserts the stall signal stlp, and the execution of a new instruction of the CPU core unit 10 is suspended. In step 202, if a TLB miss occurs during the operation of the dedicated processing circuit module 11, an exception handling request exc is output from the memory management unit 16. Upon receiving the exception processing request excp, the control signal generation unit 1152 of the dedicated processing circuit module 11 interrupts the process being executed in the data processing unit 114 and sets “0” in the start bit of the control register 1151. As a result, the stall signal stlp is negated, and the CPU core unit 10 is released from the pending state of instruction execution, shifts to control by the OS, and executes exception processing. When exception processing is completed in step 203, the CPU core unit 10 re-executes the instruction that caused the exception processing. By re-execution of the instruction, an access request is issued to the dedicated processing circuit module 11 via the memory management unit 16, and the access request determination unit 1150 of the dedicated processing circuit module 11 that has received this is sent to the start bit of the control register 1151. Set “1”. Then, the control signal generation unit 1152 of the dedicated processing circuit module 11 causes the data processing unit 114 to execute processing based on the status at the time of interruption. As a result, the dedicated processing circuit module 11 can resume the processing from where it was interrupted. Further, when “1” is set in the start bit, the access request determination unit 1150 asserts the match signal, and as a result, the stall signal stlp is asserted. As a result, the CPU core unit 10 suspends execution of a new instruction.

再度TLBミスが発生した場合には、ステップ202及びステップ203と同様の処理が実行される(S204、S205)。そして、ステップ206において、専用処理回路モジュール11による処理が完了したら、専用処理回路モジュール11は割り込み要求intpを出力するとともにスタートビットに“0”を設定する。これにより、割り込みコントローラ12からCPUコア部10に対して割り込み信号intが与えられ、CPUコア部10は、専用処理回路モジュール11による処理を実行させるための命令の終了処理を行う。   If a TLB miss occurs again, the same processing as in steps 202 and 203 is executed (S204, S205). In step 206, when the processing by the dedicated processing circuit module 11 is completed, the dedicated processing circuit module 11 outputs an interrupt request intp and sets a start bit to “0”. Thereby, the interrupt signal int is given from the interrupt controller 12 to the CPU core unit 10, and the CPU core unit 10 performs an end process of an instruction for causing the dedicated processing circuit module 11 to execute the process.

以上より実施の形態1に係るマイクロプロセッサ1では、専用処理回路モジュール11が仮想アドレスを用いて動作を行っている場合はストール信号stlc及びstlpがアサートされることにより、CPUコア部10は動作を中断し、新たな命令フェッチを行わない。これにより、専用処理回路モジュール11の動作中に専用処理回路モジュール11が用いる仮想アドレス空間と物理アドレス空間の対応が変更されないから、専用処理回路モジュール11が用いる仮想アドレス空間に対応する物理アドレス空間に不整合が生じることがない。また、専用処理回路モジュール11の動作中に当該動作に起因するTLBミス等のエラーが発生した場合であっても、CPUコア部10はエラーを発生させた命令とエラーを発生させた仮想アドレスとを特定することができるから、CPUコア部10は当該エラーに係る例外処理を実行し、その例外処理が完了した後にエラーを発生させた命令を再実行することにより、中断した専用処理回路モジュール11の処理を再開させることができる。以上により、実施の形態1に係るマイクロプロセッサ1によれば、専用処理回路モジュール11の仮想アドレス空間を用いた処理を安全に行うことができるから、OSを改変する必要はない。   As described above, in the microprocessor 1 according to the first embodiment, when the dedicated processing circuit module 11 operates using a virtual address, the CPU core unit 10 operates by asserting the stall signals stlc and stlp. Interrupt and do not fetch a new instruction. As a result, the correspondence between the virtual address space used by the dedicated processing circuit module 11 and the physical address space is not changed during the operation of the dedicated processing circuit module 11, so that the physical address space corresponding to the virtual address space used by the dedicated processing circuit module 11 is changed. There is no inconsistency. Even when an error such as a TLB miss due to the operation occurs during the operation of the dedicated processing circuit module 11, the CPU core unit 10 determines the instruction that caused the error and the virtual address that caused the error. Therefore, the CPU core unit 10 executes the exception processing related to the error and re-executes the instruction that caused the error after the exception processing is completed. Can be resumed. As described above, according to the microprocessor 1 according to the first embodiment, the processing using the virtual address space of the dedicated processing circuit module 11 can be performed safely, so there is no need to modify the OS.

≪実施の形態2≫
実施の形態1に係るマイクロプロセッサ1では、専用処理回路モジュール11が、専用処理回路モジュール11の動作中にCPUコア部10の新たな命令実行を保留させるための機能を備えたが、実施の形態2に係るマイクロプロセッサ2では、メモリ管理ユニット36がその機能を備える。
<< Embodiment 2 >>
In the microprocessor 1 according to the first embodiment, the dedicated processing circuit module 11 has a function for deferring execution of a new instruction of the CPU core unit 10 during the operation of the dedicated processing circuit module 11. In the microprocessor 2 according to 2, the memory management unit 36 has the function.

図7は、実施の形態2に係るマイクロプロセッサ2のブロック図である。   FIG. 7 is a block diagram of the microprocessor 2 according to the second embodiment.

同図に示されるマイクロプロセッサ2は、例えば携帯情報端末用のマイクロプロセッサである。マイクロプロセッサ2は、図示されないRAM(Random Access Memory)やROM等の記憶装置、及び外部I/Oと接続されることにより、携帯情報端末の機能を実現する。同図に示されるマイクロプロセッサ2の構成要素のうち、実施の形態1に係るマイクロプロセッサ1と同様の構成要素には同一の符号を付して、その詳細な説明を省略する。   A microprocessor 2 shown in the figure is a microprocessor for a portable information terminal, for example. The microprocessor 2 realizes the function of the portable information terminal by being connected to a storage device such as a RAM (Random Access Memory) and a ROM (not shown) and an external I / O. Of the constituent elements of the microprocessor 2 shown in the figure, the same constituent elements as those of the microprocessor 1 according to the first embodiment are denoted by the same reference numerals, and detailed description thereof is omitted.

図7に示される専用処理回路モジュール31は、実施の形態1に係る専用処理回路モジュール11と同様にCPUコア部10に代わって特定の処理を実行するアクセラレータ等であり、専用処理回路モジュール11からストール信号stlpを生成するストール要求生成部1153を取り除いた構成である。   The dedicated processing circuit module 31 shown in FIG. 7 is an accelerator or the like that executes specific processing instead of the CPU core unit 10 in the same manner as the dedicated processing circuit module 11 according to the first embodiment. In this configuration, the stall request generator 1153 that generates the stall signal stlp is removed.

メモリ管理ユニット36は、実施の形態1に係るメモリ管理ユニット16と同様にTLB161及びFVAレジスタ162と、その他図示されないアドレス変換に必要な機能部を有する。更にメモリ管理ユニット36は、ストール要求生成部363を有する。ストール要求生成部363は、CPUコア部10の新たな命令実行を保留するためのストール信号stlc2を出力する。   Similarly to the memory management unit 16 according to the first embodiment, the memory management unit 36 includes a TLB 161 and an FVA register 162, and other functional units necessary for address conversion (not shown). Further, the memory management unit 36 includes a stall request generation unit 363. The stall request generation unit 363 outputs a stall signal stlc2 for suspending execution of a new instruction of the CPU core unit 10.

ここで、CPUコア部10が専用処理回路モジュール31を制御して処理を実行させる場合のCPUコア部10、メモリ管理ユニット36、及び専用処理回路モジュール31の動作について詳細に説明する。   Here, the operations of the CPU core unit 10, the memory management unit 36, and the dedicated processing circuit module 31 when the CPU core unit 10 controls the dedicated processing circuit module 31 to execute processing will be described in detail.

先ず、専用処理回路モジュール31に処理を実行させるため、CPUコア部10は専用処理回路モジュール31における制御レジスタ1151を設定する命令を実行する。当該命令の実行により、専用処理回路モジュール31に対するアクセス要求が発行され、当該アクセス要求で指定される仮想アドレスがCPUバス17上に出力される。当該アクセス要求を受け取ったメモリ管理ユニット36は、ストール要求生成部363によりストール信号stlc2をアサートするとともに、当該アクセス要求によって指定された仮想アドレスを物理アドレスに変換し、当該アクセス要求に伴って内部バス18上に出力することでアクセス要求を伝達する。これを受け取った専用処理回路モジュール31のアクセス要求判定部1150が制御レジスタ1151を選択して、スタートビットに“1”を設定する。これにより専用処理回路モジュール31は動作を開始する。メモリ管理ユニット36におけるストール要求生成部363は、アクセス要求を専用処理回路モジュール31に伝達した後もストール信号stlc2を引き続きアサートする。これにより、CPUコア部10は新たな命令実行を保留する。   First, in order to cause the dedicated processing circuit module 31 to execute processing, the CPU core unit 10 executes an instruction for setting the control register 1151 in the dedicated processing circuit module 31. By executing the instruction, an access request for the dedicated processing circuit module 31 is issued, and a virtual address specified by the access request is output on the CPU bus 17. The memory management unit 36 that has received the access request asserts the stall signal stlc2 by the stall request generation unit 363, converts the virtual address specified by the access request into a physical address, and generates an internal bus along with the access request. The access request is transmitted by outputting the data on 18. Upon receiving this, the access request determination unit 1150 of the dedicated processing circuit module 31 selects the control register 1151 and sets “1” in the start bit. As a result, the dedicated processing circuit module 31 starts its operation. The stall request generation unit 363 in the memory management unit 36 continues to assert the stall signal stlc2 even after the access request is transmitted to the dedicated processing circuit module 31. As a result, the CPU core unit 10 suspends execution of a new instruction.

専用処理回路モジュール31のアクセス要求に係るアドレス変換においてTLBミスが発生すると、メモリ管理ユニット36は例外処理要求excpを出力するとともに、ストール要求生成部363によりストール信号stlc2をネゲートする。例外処理要求excpを受け取った専用処理回路モジュール31の制御信号生成部1152は、データ処理部114で実行中の処理を中断させて、制御レジスタ1151のスタートビットに“0”を設定する。また、CPUコア部10はストール信号stlc2のネゲートにより新たな命令実行の保留状態から解放され、OSによる制御に移行し例外処理を実行する。   When a TLB miss occurs in the address conversion relating to the access request of the dedicated processing circuit module 31, the memory management unit 36 outputs an exception processing request excp and negates the stall signal stlc2 by the stall request generation unit 363. The control signal generation unit 1152 of the dedicated processing circuit module 31 that has received the exception processing request excp interrupts the processing being executed by the data processing unit 114 and sets “0” in the start bit of the control register 1151. Further, the CPU core unit 10 is released from the pending state of the new instruction execution by the negation of the stall signal stlc2, and shifts to the control by the OS to execute the exception process.

例外処理が完了したら、CPUコア部10は例外処理を起こした命令を再実行する。当該命令の再実行により、専用処理回路モジュール11に対するアクセス要求が発行され、上記と同様に、当該アクセス要求を受け取ったメモリ管理ユニット36は、ストール要求生成部363によりストール信号stlc2をアサートするとともに、当該アクセス要求によって指定された仮想アドレスを物理アドレスに変換し、当該アクセス要求に伴って内部バス18上に出力することでアクセス要求を専用処理回路モジュール31に伝達する。これを受けた専用処理回路モジュール31のアクセス要求判定部1150は、制御レジスタ1151を選択してスタートビットに“1”を設定する。スタートビットに“1”が設定されると、制御信号生成部1152は、データ処理部114に対し、先ほど中断したときのステータスに基づいて処理を実行させる。これにより、専用処理回路モジュール31は中断したところから処理を再開することができる。   When the exception processing is completed, the CPU core unit 10 re-executes the instruction that caused the exception processing. By re-execution of the instruction, an access request for the dedicated processing circuit module 11 is issued. Similarly to the above, the memory management unit 36 that has received the access request asserts the stall signal stlc2 by the stall request generation unit 363, The virtual address specified by the access request is converted into a physical address, and the access request is transmitted to the dedicated processing circuit module 31 by outputting it on the internal bus 18 in accordance with the access request. Receiving this, the access request determination unit 1150 of the dedicated processing circuit module 31 selects the control register 1151 and sets “1” in the start bit. When “1” is set in the start bit, the control signal generation unit 1152 causes the data processing unit 114 to execute processing based on the status at the time of the previous interruption. As a result, the dedicated processing circuit module 31 can resume the processing from the point of interruption.

専用処理回路モジュール31による処理が完了したら、専用処理回路モジュール31の制御信号生成部1152は割り込み要求intpを出力するとともにスタートビットに“0”を設定する。これにより、割り込みコントローラ12からCPUコア部10に対して割り込み信号intが与えられ、CPUコア部10は、当該割り込み要因の処理に移行する。   When the processing by the dedicated processing circuit module 31 is completed, the control signal generation unit 1152 of the dedicated processing circuit module 31 outputs an interrupt request intp and sets “0” in the start bit. Thereby, the interrupt signal int is given from the interrupt controller 12 to the CPU core unit 10, and the CPU core unit 10 shifts to the processing of the interrupt factor.

以上より実施の形態2に係るマイクロプロセッサ2によれば、前記マイクロプロセッサ1と同様に、専用処理回路モジュールの仮想アドレス空間を用いた処理を安全に行うことができるから、OSを改変する必要はない。   As described above, according to the microprocessor 2 according to the second embodiment, the process using the virtual address space of the dedicated processing circuit module can be safely performed as in the case of the microprocessor 1, and therefore it is necessary to modify the OS. Absent.

≪実施の形態3≫
実施の形態1に係るマイクロプロセッサ1及び実施の形態2に係るマイクロプロセッサ2では、専用処理回路モジュールからのアクセス要求に係るTLBミスに対する例外処理が完了したら、CPUコア部10が命令を再実行することにより専用処理回路モジュールの動作を再開させた。実施の形態3に係るマイクロプロセッサ3では、例外処理によりTLBの情報が更新されたらメモリ管理ユニットが専用処理回路モジュールの動作を再開させる。
<< Embodiment 3 >>
In the microprocessor 1 according to the first embodiment and the microprocessor 2 according to the second embodiment, the CPU core unit 10 re-executes the instruction when the exception processing for the TLB miss related to the access request from the dedicated processing circuit module is completed. As a result, the operation of the dedicated processing circuit module was resumed. In the microprocessor 3 according to the third embodiment, when the TLB information is updated by exception processing, the memory management unit restarts the operation of the dedicated processing circuit module.

図8は、実施の形態3に係るマイクロプロセッサ3のブロック図である。   FIG. 8 is a block diagram of the microprocessor 3 according to the third embodiment.

同図に示されるマイクロプロセッサ3は、例えば携帯情報端末用のマイクロプロセッサである。マイクロプロセッサ3は、図示されないRAM(Random Access Memory)やROM等の記憶装置、及び外部I/Oと接続されることにより、携帯情報端末の機能を実現する。同図に示されるマイクロプロセッサ3の構成要素のうち、マイクロプロセッサ1及び2と同様の構成要素には同一の符号を付して、その詳細な説明を省略する。   A microprocessor 3 shown in the figure is a microprocessor for a portable information terminal, for example. The microprocessor 3 realizes the function of the portable information terminal by being connected to a storage device such as a RAM (Random Access Memory) and a ROM (not shown) and an external I / O. Of the components of the microprocessor 3 shown in the figure, the same components as those of the microprocessors 1 and 2 are denoted by the same reference numerals, and detailed description thereof is omitted.

図8に示されるメモリ管理ユニット46は、実施の形態2に係るメモリ管理ユニット36と同様にTLB161、FVAレジスタ162、及びストール要求生成部363と、その他図示されないアドレス変換に必要な機能部を有する。更にメモリ管理ユニット46は、処理再開信号生成部464を有する。処理再開信号生成部464は、TLBミスに応じた例外処理によりTLB161の情報が更新された後に、処理再開信号(rgm)を出力する。   The memory management unit 46 shown in FIG. 8 has a TLB 161, an FVA register 162, a stall request generation unit 363, and other functional units necessary for address conversion not shown, like the memory management unit 36 according to the second embodiment. . Further, the memory management unit 46 includes a process resumption signal generation unit 464. The process resumption signal generation unit 464 outputs a process resumption signal (rgm) after the information of the TLB 161 is updated by the exception process corresponding to the TLB miss.

専用処理回路モジュール41は、実施の形態2に係る専用処理回路モジュール31の機能に加え、処理再開信号rgmに応じて制御レジスタ1151を設定する機能を有する。具体的には、専用処理回路モジュール41内のアクセス要求判定部1150が、処理再開信号rgmを入力し、当該信号に応じて制御レジスタ115のスタートビットに“1”を設定する。   In addition to the function of the dedicated processing circuit module 31 according to the second embodiment, the dedicated processing circuit module 41 has a function of setting the control register 1151 according to the processing restart signal rgm. Specifically, the access request determination unit 1150 in the dedicated processing circuit module 41 receives the process resumption signal rgm and sets “1” to the start bit of the control register 115 according to the signal.

ここで、CPUコア部10が専用処理回路モジュール41を制御して処理を実行させる場合のCPUコア部10、メモリ管理ユニット46、及び専用処理回路モジュール41の動作について詳細に説明する。   Here, operations of the CPU core unit 10, the memory management unit 46, and the dedicated processing circuit module 41 when the CPU core unit 10 controls the dedicated processing circuit module 41 to execute processing will be described in detail.

先ずCPUコア部10が専用処理回路モジュール41における制御レジスタ1151を設定する命令を実行し、専用処理回路モジュール41が動作を開始するまでの動作は、前記マイクロプロセッサ2と同様である。その後、専用処理回路モジュール41のアクセス要求に係るアドレス変換においてTLBミスが発生したとき、メモリ管理ユニット46は例外処理要求excpを出力するとともに、ストール信号stlc2をネゲートする。例外処理要求excpを受け取った専用処理回路モジュール41は、実行中の処理を中断してスタートビットに“0”を設定し、処理を中断する。またCPUコア部10は、ストール信号stlc2がネゲートされたことにより新たな命令実行の保留状態から解放され、OSによる制御に移行し例外処理を実行する。例外処理においてTLB161のエントリの情報を更新する処理が完了したら、メモリ管理ユニット46における処理再開信号生成部464は、処理再開信号rgmを専用処理回路モジュール41に対して出力する。処理再開信号rgmを受け取ったメモリ管理ユニット46のアクセス要求判定部1150は、制御レジスタ1151のスタートビットに“1”を設定する。これにより、CPUコア部10による例外処理におけるすべての処理が完了する前であっても、TLB161のエントリの更新が行われた段階で専用処理回路モジュール31は処理を再開することができる。   First, the operation until the CPU core unit 10 executes an instruction to set the control register 1151 in the dedicated processing circuit module 41 and the dedicated processing circuit module 41 starts the operation is the same as that of the microprocessor 2. Thereafter, when a TLB miss occurs in the address conversion related to the access request of the dedicated processing circuit module 41, the memory management unit 46 outputs an exception processing request excp and negates the stall signal stlc2. The dedicated processing circuit module 41 that has received the exception processing request excp interrupts the process being executed, sets the start bit to “0”, and interrupts the process. Further, the CPU core unit 10 is released from the pending state of the new instruction execution when the stall signal stlc2 is negated, and shifts to control by the OS to execute exception processing. When the process of updating the entry information of the TLB 161 is completed in the exception process, the process restart signal generation unit 464 in the memory management unit 46 outputs the process restart signal rgm to the dedicated processing circuit module 41. The access request determination unit 1150 of the memory management unit 46 that has received the process restart signal rgm sets “1” to the start bit of the control register 1151. Thereby, even before all the processes in the exception process by the CPU core unit 10 are completed, the dedicated processing circuit module 31 can resume the process when the entry of the TLB 161 is updated.

メモリ管理ユニット46は、CPUコア部10による例外処理が完了したら、ストール信号stlc2をアサートする。その後の専用処理回路モジュール31による処理完了後の動作は、前記マイクロプロセッサ2と同様である。   When the exception processing by the CPU core unit 10 is completed, the memory management unit 46 asserts the stall signal stlc2. Subsequent operations after completion of processing by the dedicated processing circuit module 31 are the same as those of the microprocessor 2.

以上実施の形態3に係るマイクロプロセッサ3によれば、前記マイクロプロセッサ1及び2と同様に、専用処理回路モジュールの仮想アドレス空間を用いた処理を安全に行うことができるから、OSを改変する必要はない。更にマイクロプロセッサ3によれば、専用処理回路モジュール41のアクセス要求に対するアドレス変換のTLBミスに係る例外処理において、例外処理におけるすべての処理が完了する前であってもTLB161のエントリの更新が行われた段階で専用処理回路モジュール41に動作を再開させる。これよれば、例外処理における一連の処理が完了した後に専用処理回路モジュール41に動作を再開させる場合に比べて、より早く専用処理回路モジュール41の処理を再開させることができる。   As described above, according to the microprocessor 3 according to the third embodiment, similarly to the microprocessors 1 and 2, the processing using the virtual address space of the dedicated processing circuit module can be performed safely, so it is necessary to modify the OS. There is no. Further, according to the microprocessor 3, in the exception process related to the TLB miss of the address conversion for the access request of the dedicated processing circuit module 41, the entry of the TLB 161 is updated even before all the processes in the exception process are completed. At this stage, the dedicated processing circuit module 41 is restarted. According to this, it is possible to restart the processing of the dedicated processing circuit module 41 earlier than in the case where the dedicated processing circuit module 41 restarts the operation after the series of processing in the exception processing is completed.

≪実施の形態4≫
図9は、実施の形態4に係るマイクロプロセッサ4のブロック図である。
<< Embodiment 4 >>
FIG. 9 is a block diagram of the microprocessor 4 according to the fourth embodiment.

同図に示されるマイクロプロセッサ4は、例えば携帯情報端末用のマイクロプロセッサである。マイクロプロセッサ4は、図示されないRAM(Random Access Memory)やROM等の記憶装置、及び外部I/Oと接続されることにより、携帯情報端末の機能を実現する。同図に示されるマイクロプロセッサ4の構成要素のうち、前記マイクロプロセッサ1と同様の構成要素には同一の符号を付して、その詳細な説明を省略する。   A microprocessor 4 shown in the figure is a microprocessor for a portable information terminal, for example. The microprocessor 4 realizes the function of the portable information terminal by being connected to a storage device such as a RAM (Random Access Memory) and a ROM (not shown) and an external I / O. Of the constituent elements of the microprocessor 4 shown in the figure, the same constituent elements as those of the microprocessor 1 are denoted by the same reference numerals, and detailed description thereof is omitted.

マイクロプロセッサ4は、専用処理回路モジュール11のアクセス要求に対するアドレス変換のためのTLB501を備えるメモリ管理ユニット50を更に有する。メモリ管理ユニット50は、専用アドレスバスpaと専用データバスpdから構成される専用バス51を介して専用処理回路モジュール11と接続され、内部バス18を介して割り込みコントローラ12、タイマユニット13、外部バスコントローラ14、及び専用処理回路モジュール11と接続される。TLB501は、TLB161に格納されるアドレス変換情報の一部が格納される。   The microprocessor 4 further includes a memory management unit 50 including a TLB 501 for address conversion for an access request of the dedicated processing circuit module 11. The memory management unit 50 is connected to the dedicated processing circuit module 11 via a dedicated bus 51 including a dedicated address bus pa and a dedicated data bus pd, and is connected to the interrupt controller 12, timer unit 13, external bus via the internal bus 18. The controller 14 and the dedicated processing circuit module 11 are connected. The TLB 501 stores a part of address conversion information stored in the TLB 161.

専用処理回路モジュール11からのアクセス要求は、専用バス51を介してメモリ管理ユニット50に与えられる。当該アクセス要求を受け取ったメモリ管理ユニット50は、TLB501を用いてアクセス要求によって指定された仮想アドレスを物理アドレスに変換し、当該アクセス要求を物理アドレスを伴って内部バス18上に出力することで、専用処理回路モジュール11からのアクセス要求を伝達する。また、アドレス変換においてエラーが発生した場合には、メモリ管理ユニット52に対して通知を行う。   An access request from the dedicated processing circuit module 11 is given to the memory management unit 50 via the dedicated bus 51. The memory management unit 50 that has received the access request converts the virtual address specified by the access request into a physical address using the TLB 501, and outputs the access request on the internal bus 18 with the physical address. An access request from the dedicated processing circuit module 11 is transmitted. Further, when an error occurs in the address conversion, the memory management unit 52 is notified.

メモリ管理ユニット52は、CPUコア部10からのアクセス要求に対しては、実施の形態1に係るメモリ管理ユニット16と同様に動作する。メモリ管理ユニット52は、メモリ管理ユニット50から専用処理回路モジュール11からのアクセス要求に係るアドレス変換においてエラーが発生した旨の通知を受け取ると、そのエラーに応じた処理を実行する。具体的には、メモリ管理ユニット50においてTLBミスが発生した場合には、メモリ管理ユニット52はTLB161を参照し、当該TLBミスを発生させた仮想アドレスに対応するエントリを検索する。必要なエントリが見つかった場合には、メモリ管理ユニット52はTLB161の当該エントリの情報をTLB501に登録し、メモリ管理ユニット52に処理を再開させる。一方、必要なエントリが見つからなかった場合には、メモリ管理ユニット52は例外処理要求excpを発行する。その後のCPUコア部10と専用処理回路モジュール11の動作は実施の形態1と同様である。そして、例外処理完了後TLB161の内容が更新されたら、メモリ管理ユニット52は必要なエントリを含むアドレス変換情報をTLB501に登録し、CPUコア部10は命令を再実行する。その他の処理は実施の形態1と同様である。   The memory management unit 52 operates in the same manner as the memory management unit 16 according to the first embodiment in response to an access request from the CPU core unit 10. When the memory management unit 52 receives a notification from the memory management unit 50 that an error has occurred in the address conversion related to the access request from the dedicated processing circuit module 11, the memory management unit 52 executes processing corresponding to the error. Specifically, when a TLB miss occurs in the memory management unit 50, the memory management unit 52 refers to the TLB 161 and searches for an entry corresponding to the virtual address that caused the TLB miss. When a necessary entry is found, the memory management unit 52 registers information on the entry in the TLB 161 in the TLB 501 and causes the memory management unit 52 to resume processing. On the other hand, when a necessary entry is not found, the memory management unit 52 issues an exception handling request excp. Subsequent operations of the CPU core unit 10 and the dedicated processing circuit module 11 are the same as those in the first embodiment. When the contents of the TLB 161 are updated after the exception processing is completed, the memory management unit 52 registers address translation information including necessary entries in the TLB 501 and the CPU core unit 10 re-executes the instruction. Other processes are the same as those in the first embodiment.

以上より実施の形態4に係るマイクロプロセッサ4によれば、前記マイクロプロセッサ1と同様に、専用処理回路モジュールの仮想アドレス空間を用いた処理を安全に行うことができるから、OSを改変する必要はない。また、マイクロプロセッサ4のように専用処理回路モジュール11のためのTLB501を備えたメモリ管理ユニット50とCPUコア部10からのアクセス制御のためのメモリ管理ユニット52を分けることで、CPUコア部10の動作周波数と専用処理回路モジュール11の動作周波数が異なる場合に有利な効果がある。例えば、専用処理回路モジュール11の動作周波数がCPUコア部10の動作周波数よりも低い場合、マイクロプロセッサ1のメモリ管理ユニット16のようにCPUコア部10と専用処理回路モジュール11の両方のアクセスに対するメモリ管理を行うには、メモリ管理ユニットは動作周波数の高い方の周波数に合わせて設計しなければならない。これは、動作周波数の低い専用処理回路モジュールの動作中でCPUコア部10が停止している状態においても、CPUコア部10に合わせて高い周波数に対応して設計された消費電力の大きなメモリ管理ユニットを使用することにより消費電力を増大させる要因となる。これに対し実施の形態4に係るマイクロプロセッサ4によれば、メモリ管理ユニット50の動作周波数を専用処理回路モジュール11に合わせて低くすることができるから、専用処理回路モジュール11による処理効率の向上に資する。   As described above, according to the microprocessor 4 according to the fourth embodiment, the process using the virtual address space of the dedicated processing circuit module can be performed safely as in the case of the microprocessor 1, and therefore it is necessary to modify the OS. Absent. Further, by separating the memory management unit 50 having the TLB 501 for the dedicated processing circuit module 11 like the microprocessor 4 and the memory management unit 52 for controlling access from the CPU core unit 10, This is advantageous when the operating frequency is different from the operating frequency of the dedicated processing circuit module 11. For example, when the operating frequency of the dedicated processing circuit module 11 is lower than the operating frequency of the CPU core unit 10, a memory for accessing both the CPU core unit 10 and the dedicated processing circuit module 11 like the memory management unit 16 of the microprocessor 1. To perform management, the memory management unit must be designed for the higher operating frequency. This is because memory management with high power consumption designed for a high frequency in accordance with the CPU core unit 10 even when the CPU core unit 10 is stopped while the dedicated processing circuit module having a low operating frequency is operating. Use of the unit increases the power consumption. On the other hand, according to the microprocessor 4 according to the fourth embodiment, the operating frequency of the memory management unit 50 can be lowered according to the dedicated processing circuit module 11, so that the processing efficiency of the dedicated processing circuit module 11 is improved. To contribute.

以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。   Although the invention made by the present inventor has been specifically described based on the embodiments, it is needless to say that the present invention is not limited thereto and can be variously modified without departing from the gist thereof.

例えば、実施の形態4に係るマイクロプロセッサ4において、TLB501はTLB161のアドレス変換情報の一部を格納する場合を一例として示したが、これに限られず、TLB161のアドレス変換情報の全部を格納してよい。また実施の形態4に係るマイクロプロセッサ4では、CPUコア部10と専用処理回路モジュール11毎にメモリ管理ユニットを分ける構成をマイクロプロセッサ1に適用する例を示したが、これに限られず、マイクロプロセッサ2及び3にも適用することができる。   For example, in the microprocessor 4 according to the fourth embodiment, the TLB 501 stores a part of the address conversion information of the TLB 161 as an example. However, the present invention is not limited to this, and the TLB 501 stores all of the address conversion information of the TLB 161. Good. Further, in the microprocessor 4 according to the fourth embodiment, the example in which the configuration in which the memory management unit is divided for each of the CPU core unit 10 and the dedicated processing circuit module 11 is applied to the microprocessor 1 is shown. This can also be applied to 2 and 3.

上記マイクロプロセッサ1に適用されるOSが、例えば組み込み用のOS等のように多少のカスタマイズが認められている場合には、その認められている範囲内でのOSの改造により、専用処理回路モジュールの仮想アドレス空間を用いた処理を安全に行うことが可能となる。例えば、専用処理回路モジュールからのアクセス要求に対するアドレス変換処理においてTLBミスが発生し、その後の例外処理によりTLBのエントリが更新されたとき、CPUコア部から専用処理回路モジュールに対してTLBのエントリが更新されたことを通知するためには、OSの改造が必要となる。そこで、そのCPUコア部からの通知をする処理の追加がOSの改造の認められている範囲内で対応可能であれば、専用処理回路モジュールの仮想アドレス空間を用いた処理を安全に行うことが可能となる。   When the OS applied to the microprocessor 1 is permitted to be somewhat customized, such as an embedded OS, the dedicated processing circuit module is obtained by modifying the OS within the permitted range. It is possible to safely perform processing using the virtual address space. For example, when a TLB miss occurs in an address conversion process for an access request from a dedicated processing circuit module and a TLB entry is updated by subsequent exception processing, a TLB entry is added from the CPU core unit to the dedicated processing circuit module. In order to notify the update, it is necessary to modify the OS. Therefore, if the addition of the processing for notifying from the CPU core unit can be handled within the range where the modification of the OS is permitted, the processing using the virtual address space of the dedicated processing circuit module can be performed safely. It becomes possible.

1、2、3、4 マイクロプロセッサ
10 CPUコア部
11、31、41 専用処理回路モジュール
16、36、46、50、52 メモリ管理ユニット(MMU)
161、501 TLB
162 FVAレジスタ
ca CPUアドレスバス
cd CPUデータバス
17 CPUバス
ia 内部アドレスバス
id 内部データバス
18 内部バス
ma キャッシュアドレスバス
md キャッシュデータバス
20 キャッシュバス
ea 外部アドレスバス
ed 外部データバス
19 外部バス
15 キャッシュメモリ
14 外部バスコントローラ(BSC)
13 タイマユニット(Timer)
12 割り込みコントローラ(INTC)
intp 専用処理回路モジュール11からの割り込み要求
intt タイマユニット13からの割り込み要求
into 外部装置等からの割り込み要求
int 割り込み信号
stlp、stlc、stlc2 ストール信号
excp 例外処理要求
111 CPUバス調停部
112 リード要求生成部
113 ライト要求生成部
114 データ処理部
115 制御部
1150 アクセス要求判定部
1151 制御レジスタ
1152 制御信号生成部
1153 ストール要求生成部
rreq リード要求
wreq ライト要求
rdata リード要求に係るデータ
wdata ライト要求に係るデータ
501〜507 所定のタイミング
363 ストール要求生成部
464 処理再開信号生成部
rgm 処理再開信号
51 専用バス
pa 専用アドレスバス
pd 専用データバス
1, 2, 3, 4 Microprocessor 10 CPU core unit 11, 31, 41 Dedicated processing circuit module 16, 36, 46, 50, 52 Memory management unit (MMU)
161, 501 TLB
162 FVA register ca CPU address bus cd CPU data bus 17 CPU bus ia internal address bus id internal data bus 18 internal bus ma cache address bus md cache data bus 20 cache bus ea external address bus ed external data bus 19 external bus 15 cache memory 14 External bus controller (BSC)
13 Timer unit (Timer)
12 Interrupt controller (INTC)
intp Interrupt request from dedicated processing circuit module 11 int Interrupt request from timer unit 13 into Interrupt request from external device etc. int Interrupt signal stlp, stlc, stlc2 Stall signal excp Exception processing request 111 CPU bus arbitration unit 112 Read request generation unit 113 write request generation unit 114 data processing unit 115 control unit 1150 access request determination unit 1151 control register 1152 control signal generation unit 1153 stall request generation unit rreq read request wreq write request rdata data related to read request wdata data related to write request 507 Predetermined timing 363 Stall request generator 464 Process restart signal generator rgm Process restart signal 51 Dedicated bus pa Dedicated address bus p Dedicated data bus

Claims (14)

仮想アドレスを用いてアクセス制御を行う中央処理装置と、
物理アドレスによりアクセスされ、且つ仮想アドレスを用いてアクセス制御を行う回路モジュールと、
前記中央処理装置が出力する仮想アドレス及び前記回路モジュールが出力する仮想アドレスを物理アドレスにアドレス変換するための処理を行うメモリ管理部と、を有するデータ処理装置であって、
前記中央処理装置により前記メモリ管理部を介して設定された条件にしたがって前記回路モジュールが動作を開始した場合、前記中央処理装置はそのときの仮想アドレス空間と物理アドレス空間の対応を変更する処理を抑止される、データ処理装置。
A central processing unit that performs access control using virtual addresses;
A circuit module that is accessed by a physical address and performs access control using a virtual address;
A memory management unit that performs a process for converting a virtual address output from the central processing unit and a virtual address output from the circuit module into a physical address;
When the circuit module starts to operate according to the conditions set by the central processing unit via the memory management unit, the central processing unit performs processing for changing the correspondence between the virtual address space and the physical address space at that time. Data processing device to be suppressed.
前記回路モジュールは、前記中央処理装置による前記条件を設定する所定の命令の実行に応じて動作を開始するとともに、ストール信号をアサートし、
前記中央処理装置は、前記ストール信号がアサートされているとき命令の実行を保留する、請求項1記載のデータ処理装置。
The circuit module starts an operation in response to execution of a predetermined instruction for setting the condition by the central processing unit, and asserts a stall signal.
The data processing apparatus according to claim 1, wherein the central processing unit suspends execution of an instruction when the stall signal is asserted.
前記回路モジュールは、動作を開始するためのスタートビットが設定される制御レジスタを有し、
前記所定の命令は、前記メモリ管理部を介して前記制御レジスタのスタートビットを設定する命令である、請求項2記載のデータ処理装置。
The circuit module has a control register in which a start bit for starting an operation is set,
The data processing apparatus according to claim 2, wherein the predetermined instruction is an instruction for setting a start bit of the control register via the memory management unit.
前記回路モジュールは、前記回路モジュールによる仮想アドレスを用いたアクセス制御に対する前記アドレス変換するための処理時のエラーに起因して、前記ストール信号をネゲートする、請求項3記載のデータ処理装置。   The data processing apparatus according to claim 3, wherein the circuit module negates the stall signal due to an error in processing for the address conversion for access control using a virtual address by the circuit module. 前記エラーが発生した場合には、前記メモリ管理部は例外処理要求を発行し、前記回路モジュールは前記所定の命令に応じた動作を停止し、
前記中央処理装置は、前記例外処理要求に応じて前記エラーに対する例外処理を実行し、当該例外処理の完了後、前記回路モジュールの動作の再開する処理を実行する、請求項4記載のデータ処理装置。
When the error occurs, the memory management unit issues an exception handling request, the circuit module stops the operation according to the predetermined instruction,
5. The data processing device according to claim 4, wherein the central processing unit executes exception processing for the error in response to the exception processing request, and executes processing for resuming operation of the circuit module after completion of the exception processing. .
前記回路モジュールの動作の再開する処理は、前記所定の命令を再実行する処理である、請求項5記載のデータ処理装置。   The data processing apparatus according to claim 5, wherein the process of resuming the operation of the circuit module is a process of re-executing the predetermined instruction. 前記回路モジュールは、前記中央処理装置による前記条件を設定する所定の命令の実行に応じて動作を開始し、
前記メモリ管理部は、前記所定の命令の実行に応じてストール信号をアサートし、
前記中央処理装置は、前記ストール信号がアサートされているとき命令の実行を保留する、請求項1記載のデータ処理装置。
The circuit module starts operation in response to execution of a predetermined instruction for setting the condition by the central processing unit,
The memory management unit asserts a stall signal in response to execution of the predetermined instruction,
The data processing apparatus according to claim 1, wherein the central processing unit suspends execution of an instruction when the stall signal is asserted.
前記回路モジュールは、動作を開始するためのスタートビットが設定される制御レジスタを有し、
前記所定の命令は、前記メモリ管理部を介して前記制御レジスタのスタートビットを設定する命令である、請求項7記載のデータ処理装置。
The circuit module has a control register in which a start bit for starting an operation is set,
The data processing apparatus according to claim 7, wherein the predetermined instruction is an instruction to set a start bit of the control register via the memory management unit.
前記回路モジュールによる仮想アドレスを用いたアクセス制御に対する前記アドレス変換するための処理中にエラーが発生したとき、前記メモリ管理部は前記ストール信号をネゲートするとともに例外処理要求を発行し、
前記回路モジュールは、前記例外処理要求に応じて前記所定の命令に応じた動作を停止し、
前記中央処理装置は、前記例外処理要求に応じて前記エラーに対する例外処理を実行する、請求項8記載のデータ処理装置。
When an error occurs during the process for converting the address for the access control using the virtual address by the circuit module, the memory management unit negates the stall signal and issues an exception processing request,
The circuit module stops the operation according to the predetermined instruction in response to the exception handling request;
The data processing apparatus according to claim 8, wherein the central processing unit executes exception processing for the error in response to the exception processing request.
前記例外処理の完了後、前記中央処理装置は、前記回路モジュールの動作を再開する処理を実行する、請求項9記載のデータ処理装置。   The data processing device according to claim 9, wherein after the exception processing is completed, the central processing unit executes processing for resuming operation of the circuit module. 前記回路モジュールの動作の再開する処理は、前記所定の命令を再実行する処理である、請求項10記載のデータ処理装置。   The data processing apparatus according to claim 10, wherein the process of resuming the operation of the circuit module is a process of re-executing the predetermined instruction. 前記例外処理において前記エラーを解消する処理が完了したら、前記メモリ管理部は、前記回路モジュールの動作を再開する処理を実行する、請求項9記載のデータ処理装置。   The data processing apparatus according to claim 9, wherein when the process for eliminating the error is completed in the exception process, the memory management unit executes a process for restarting the operation of the circuit module. 仮想アドレスを用いてアクセス制御を行う中央処理装置と、
物理アドレスによりアクセスされ、且つ仮想アドレスを用いてアクセス制御を行う回路モジュールと、
仮想アドレスを物理アドレスにアドレス変換するための第1アドレス変換対を有し、前記第1アドレス変換対を用いてアドレス変換のための処理を行う第1メモリ管理部と、
前記第1アドレス変換対の全部又は一部をエントリとする第2アドレス変換対を有し、前記第2アドレス変換対を用いて前記回路モジュールが出力する仮想アドレスを物理アドレスにアドレス変換するための処理を実行する第2メモリ管理部と、を有するデータ処理装置であって、
前記中央処理装置により前記第1メモリ管理部を介して設定された条件にしたがって前記回路モジュールが動作を開始した場合、前記中央処理装置はそのときの仮想アドレス空間と物理アドレス空間の対応を変更する処理を抑止される、データ処理装置。
A central processing unit that performs access control using virtual addresses;
A circuit module that is accessed by a physical address and performs access control using a virtual address;
A first memory management unit having a first address translation pair for converting a virtual address into a physical address, and performing a process for address translation using the first address translation pair;
A second address translation pair having all or a part of the first address translation pair as an entry, and the virtual address output from the circuit module is converted into a physical address by using the second address translation pair A data processing device having a second memory management unit for executing processing,
When the circuit module starts operating according to the condition set by the central processing unit via the first memory management unit, the central processing unit changes the correspondence between the virtual address space and the physical address space at that time. A data processing device whose processing is suppressed.
前記第2メモリ管理部は、前記回路モジュールによる仮想アドレスを用いたアクセス制御に対する前記アドレス変換するための処理中にアドレス変換に必要なエントリが見つからなかったとき、前記第1メモリ管理部に対しその旨を通知し、
前記第1メモリ管理部は、前記通知に応じて前記第1アドレス変換対を検索し、検索した結果必要なエントリが見つかった場合には当該エントリを前記第2アドレス変換対に登録して前記第2メモリ管理部に対して再度アドレス変換のための処理を実行させ、検索の結果必要なエントリが見つからなかった場合には例外処理要求を発行する、請求項13記載のデータ処理装置。
When the second memory management unit does not find an entry necessary for address conversion during the address conversion processing for the access control using the virtual address by the circuit module, the second memory management unit To that effect,
The first memory management unit searches the first address translation pair in response to the notification, and if a necessary entry is found as a result of the search, registers the entry in the second address translation pair and registers the first address translation pair. 14. The data processing apparatus according to claim 13, wherein the memory management unit is caused to execute the address conversion process again, and issues an exception processing request when a necessary entry is not found as a result of the search.
JP2010234387A 2010-10-19 2010-10-19 Data processing device Expired - Fee Related JP5593195B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010234387A JP5593195B2 (en) 2010-10-19 2010-10-19 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010234387A JP5593195B2 (en) 2010-10-19 2010-10-19 Data processing device

Publications (2)

Publication Number Publication Date
JP2012088894A true JP2012088894A (en) 2012-05-10
JP5593195B2 JP5593195B2 (en) 2014-09-17

Family

ID=46260460

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010234387A Expired - Fee Related JP5593195B2 (en) 2010-10-19 2010-10-19 Data processing device

Country Status (1)

Country Link
JP (1) JP5593195B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04311233A (en) * 1991-04-09 1992-11-04 Nec Corp Address translating device
JP2005141637A (en) * 2003-11-10 2005-06-02 Matsushita Electric Ind Co Ltd Memory management device
JP2008009982A (en) * 2006-06-27 2008-01-17 Internatl Business Mach Corp <Ibm> Method and system for memory address conversion and pinning
JP2008102850A (en) * 2006-10-20 2008-05-01 Toshiba Corp Information processor and processing method
US20080209130A1 (en) * 2005-08-12 2008-08-28 Kegel Andrew G Translation Data Prefetch in an IOMMU

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04311233A (en) * 1991-04-09 1992-11-04 Nec Corp Address translating device
JP2005141637A (en) * 2003-11-10 2005-06-02 Matsushita Electric Ind Co Ltd Memory management device
US20080209130A1 (en) * 2005-08-12 2008-08-28 Kegel Andrew G Translation Data Prefetch in an IOMMU
JP2008009982A (en) * 2006-06-27 2008-01-17 Internatl Business Mach Corp <Ibm> Method and system for memory address conversion and pinning
JP2008102850A (en) * 2006-10-20 2008-05-01 Toshiba Corp Information processor and processing method

Also Published As

Publication number Publication date
JP5593195B2 (en) 2014-09-17

Similar Documents

Publication Publication Date Title
EP1182551B1 (en) Address space priority arbitration
JP5865931B2 (en) Platform independent power management
JP4938080B2 (en) Multiprocessor control device, multiprocessor control method, and multiprocessor control circuit
JP3136257B2 (en) Computer memory interface device
JP4580528B2 (en) Computer system and its resume processing method
US20070162640A1 (en) Method and system for efficient context swapping
JP2013145568A (en) Multi-thread processor having lock indicator
US11822958B2 (en) Method and a device for data transmission between an internal memory of a system-on-chip and an external memory
US9740636B2 (en) Information processing apparatus
JP2013232151A (en) Memory protection circuit, processing apparatus, and memory protection method
JP5578713B2 (en) Information processing device
US20130036426A1 (en) Information processing device and task switching method
US6772326B2 (en) Interruptible and re-entrant cache clean range instruction
US20160342196A1 (en) Protected power management mode in a processor
JP5593195B2 (en) Data processing device
US11275707B2 (en) Multi-core processor and inter-core data forwarding method
JP2014119787A (en) Processor
JP2009258984A (en) Information processor and load control method
EP3256950A1 (en) Dynamic memory utilization in a system on a chip
US11775043B2 (en) Power saving through delayed message processing
EP4339776A1 (en) Task scheduling method, system, and hardware task scheduler
JP2008123333A (en) Semiconductor integrated circuit
JP2012014230A (en) Information processing system
CN115705300A (en) Method for cache memory and related product
JP2001306335A (en) Computer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140501

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140626

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: 20140724

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140804

R150 Certificate of patent or registration of utility model

Ref document number: 5593195

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees