JP2012088894A - Data processor - Google Patents
Data processor Download PDFInfo
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
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コントローラが仮想アドレスを物理アドレスに変換する処理を無くし、ソフトウェアの処理速度の向上を図るものである。
前述の情報機器では更に、増大するソフトウェアの開発を効率化するため、複数のプログラムをマルチプロセスで動作させてプロセス毎に仮想空間を割り当て、プロセス間保護機能を備える汎用の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
本発明の目的は、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. 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
前記ストール信号がアサートされている期間、前記中央処理装置が新たな命令フェッチを行わない。これにより、容易に前記仮想アドレス空間と物理アドレス空間の対応を変更する処理を抑止させることが可能となる。言い換えれば、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
〔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
これによれば、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
前記ストール信号がアサートされている期間、前記中央処理装置が新たな命令フェッチを行わない。これにより、容易に前記仮想アドレス空間と物理アドレス空間の対応を変更する処理を抑止させることが可能となる。 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
これによれば、項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
これによれば、前記メモリ管理部が前記ストール信号をネゲートすることで、前記中央処理装置は命令の実行保留中の状態から解除されて例外処理を実行することが可能となる。また、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
〔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
〔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
前記回路モジュールによるアクセスにおけるエラーに対する対応処理を、前記第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は、本発明の一実施の形態に係るマイクロプロセッサのブロック図である。
<<
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
マイクロプロセッサ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
マイクロプロセッサ1では基本ソフトウェアであるオペレーティングシステム(OS)が利用される。OSのプログラムはROM(Read Only Memory)等の記憶装置に格納され、CPUコア部10によって実行される。CPUコア部10は、OSのプログラムを実行することにより、複数のアプリケーションソフトウェアのスケジューリング、メモリ管理、及び外部I/Oの管理等の制御を行う。前記複数のアプリケーションソフトウェアはOSにより互いに独立した仮想アドレス空間が割り当てられ、その仮想アドレス空間を夫々用いて動作する。前記複数のアプリケーションソフトウェアは、CPUコア部10によって実行されるが、CPUコア部10はそのソフトウェアにおける処理の一部を専用処理回路モジュール11によって実行させる。
The
CPUコア部10及び専用処理回路モジュール11からのアクセスは仮想アドレスによって行われ、そのアクセスはメモリ管理ユニット16を経由して行われる。具体的には、CPUコア部10と専用処理回路モジュール11は、仮想アドレスをCPUバス17に出力することによりアクセス要求を発行する。アクセス要求を受け取ったメモリ管理ユニット16は、当該アクセス要求に係る仮想アドレスを対応する物理アドレスに変換する。そして、メモリ管理ユニット16は、当該アクセス要求を物理アドレスを伴って内部バス18上に出力することにより、専用処理回路モジュール11、割り込みコントローラ12、外部バスコントローラ14、及びタイマユニット13に対してアクセス要求を伝達する。
Access from the
以下、マイクロプロセッサ1の各機能部について詳細に説明する。
Hereinafter, each functional unit of the
CPUコア部10は、メモリ管理ユニット16を経由して各機能部の制御用のレジスタをアクセスすることにより、各機能部の制御を行う。例えばCPUコア部10が、専用処理回路モジュール11に特定の処理を実行させる命令を実行した場合には、CPUコア部10はCPUバス17上に当該命令で指定された仮想アドレスを出力することによりアクセス要求を行う。当該アクセス要求を受け取ったメモリ管理ユニット16は当該アクセス要求をアドレス変換した物理アドレスを伴って内部バス18上に出力する。内部バス18からアクセス要求を受け取った専用処理モジュール11は、後述する制御レジスタ1151に所定の値が設定される。以上により専用処理回路モジュール11は処理を開始する。
The
また、CPUコア部10は、外部バスコントローラ14を経由して外部アドレスバス(ea)と外部データバス(ed)から構成される外部バス19に接続されたRAMやROM等の周辺回路にアクセスすることにより、ソフトウェアの実行に必要な命令の読み出しや各種データの入出力を行う。更にCPUコア部10は、前記割り込み信号intに応じて割り込み処理を実行し、メモリ管理ユニット16からの例外処理要求信号(excp)に応じて例外処理を実行する。例外処理の詳細な処理内容については後述する。なお、上記割り込み処理や例外処理は特権モードで実行される。
Further, the
外部バスコントローラ14は、内部バス18に接続されると共に外部バス19に接続され、外部バス19を介してマイクロプロセッサ1とRAMやROM等の外付けの記憶装置及びその他外部I/Oとの間のデータ転送のための制御を行う。
The
タイマユニット13は、一定間隔で割り込みコントローラ12に対してタイマ割り込みを要求するための信号(intt)を出力する。
The
割り込みコントローラ12は、専用処理回路モジュール11からの割り込み要求(intp)、タイマユニット13からの割り込み要求(intt)、及び外部装置等からの割り込み要求(into)を入力して調停を行い、CPUコア部10に対して割り込み処理の要求のための割り込み信号(int)を出力する。具体的には、割り込みコントローラ12は、夫々の割り込み要求(intp信号、intt信号、into信号)の入力状態と、CPUコア部10が割り込み可能であるか否かを示す状態と、受付優先レベルとに基づいて判定し、割り込みの受付条件が満たされた場合にCPUコア部10に割り込み信号(int)を出力する。
The interrupt
メモリ管理部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
メモリ管理ユニット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
また、メモリ管理ユニット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
ここで、メモリ管理ユニット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
同図に示される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
メモリ管理ユニット16によるTLB161を用いたアドレス変換は以下のように行われる。
The address conversion using the
先ずメモリ管理ユニット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
次にメモリ管理ユニット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)
なお、アクセス要求に係る仮想アドレスの範囲にキャッシュの使用が指定されている場合(キャッシュ使用ビット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
次に、CPUコア部10におけるTLBミス等のエラーに対する例外処理について説明する。
Next, exception processing for errors such as TLB misses in the
前述のようにメモリ管理ユニット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
図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
次に、専用処理回路モジュール11について説明する。
Next, the dedicated
専用処理回路モジュール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
図4は、専用処理回路モジュール11の内部構成の一例を示すブロック図である。
FIG. 4 is a block diagram showing an example of the internal configuration of the dedicated
同図に示されるように、専用処理回路モジュール11は、CPUバス調停部111、リード要求生成部112、ライト要求生成部113、データ処理部114、及び制御部115を備える。データ処理部114は、入力されたデータに対して各種のデータ処理を行う。例えば、専用処理回路モジュール11が画像処理用のデータ処理装置である場合には、データ処理部114は画像データの圧縮等のデータ処理を実行する。
As shown in the figure, the dedicated
リード要求生成部112は、データ処理部114に入力するデータをCPUバス17経由で外部記憶装置(RAMやROM)から読み出すためのリード要求(rreq)を生成する。ライト要求生成部113は、データ処理部によるデータ処理結果に係るデータをCPUバス17経由で前記外部記憶装置に書き込むためのライト要求(wreq)を生成する。CPUバス調停部111は、リード要求生成部112とライト要求生成部113から出力されたリード要求rreq及びライト要求wreqを調停し、CPUバス17へのリード・ライト要求の発行と、当該要求に係るデータ(rdata、wdata)の転送を制御する。
The read
制御部115は、CPUバス調停部111、リード要求生成部112、ライト要求生成部113、及びデータ処理部114の統括的な制御を行う。制御部115は、アクセス要求判定部1150、制御レジスタ1151、制御信号生成部1152、及びストール要求生成部1153を備える。
The
制御レジスタ1151は、CPUコア部10から与えられる専用処理回路モジュール11の制御のためのコマンドやステータス、その他各種パラメータが設定されるレジスタである。具体的には、制御レジスタ1151は、専用処理回路モジュール11による動作の可否を示すスタートビットを有し、例えばスタートビットに“1”が設定されると専用処理回路モジュール11の動作が可能とされ、“0”が設定されると動作停止とされる。制御レジスタ11151は、アクセス要求判定部1150及び制御信号生成部1152により設定可能とされる。
The
アクセス要求判定部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
制御信号生成部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
ストール要求生成部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
ここで、CPUコア部10が専用処理回路モジュール11を制御して処理を実行させる場合のCPUコア部10、メモリ管理ユニット16、及び専用処理回路モジュール11の動作について、図5及び図6を用いて詳細に説明する。
Here, the operations of the
図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
先ず、同図の参照符号501に示されるタイミングにおいて、例えばCPUコア部10が外部記憶装置(RAM)に対するアクセス要求を発行すると、当該アクセス要求で指定される仮想アドレスAがCPUバス17上に出力される。当該アクセス要求を受け取ったメモリ管理ユニット16は、例えば参照符号502に示されるタイミングにおいて、ストール信号stlpをアサートするとともに仮想アドレスAを物理アドレスPAに変換し、物理アドレスPAを内部バス18上に出力することで外部バスコントローラ14に対してアクセス要求を伝達する。この場合、当該アクセスの対象が専用処理回路モジュール11ではないため、ストール信号stlpはネゲートされたままとなる。その後ストール信号stlcがアサートされてから一定時間が経過したタイミング503において、メモリ管理ユニット16がストール信号stlcをネゲートする。
First, when the
次にタイミング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
図6は、CPUコア部10が専用処理回路モジュール11を制御して処理を実行させる場合のCPUコア部10と専用処理回路モジュール11の動作状態を示す説明図である。
FIG. 6 is an explanatory diagram showing operation states of the
ステップ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
再度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
以上より実施の形態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
≪実施の形態2≫
実施の形態1に係るマイクロプロセッサ1では、専用処理回路モジュール11が、専用処理回路モジュール11の動作中にCPUコア部10の新たな命令実行を保留させるための機能を備えたが、実施の形態2に係るマイクロプロセッサ2では、メモリ管理ユニット36がその機能を備える。
<<
In the
図7は、実施の形態2に係るマイクロプロセッサ2のブロック図である。
FIG. 7 is a block diagram of the
同図に示されるマイクロプロセッサ2は、例えば携帯情報端末用のマイクロプロセッサである。マイクロプロセッサ2は、図示されないRAM(Random Access Memory)やROM等の記憶装置、及び外部I/Oと接続されることにより、携帯情報端末の機能を実現する。同図に示されるマイクロプロセッサ2の構成要素のうち、実施の形態1に係るマイクロプロセッサ1と同様の構成要素には同一の符号を付して、その詳細な説明を省略する。
A
図7に示される専用処理回路モジュール31は、実施の形態1に係る専用処理回路モジュール11と同様にCPUコア部10に代わって特定の処理を実行するアクセラレータ等であり、専用処理回路モジュール11からストール信号stlpを生成するストール要求生成部1153を取り除いた構成である。
The dedicated
メモリ管理ユニット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
ここで、CPUコア部10が専用処理回路モジュール31を制御して処理を実行させる場合のCPUコア部10、メモリ管理ユニット36、及び専用処理回路モジュール31の動作について詳細に説明する。
Here, the operations of the
先ず、専用処理回路モジュール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
専用処理回路モジュール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
例外処理が完了したら、CPUコア部10は例外処理を起こした命令を再実行する。当該命令の再実行により、専用処理回路モジュール11に対するアクセス要求が発行され、上記と同様に、当該アクセス要求を受け取ったメモリ管理ユニット36は、ストール要求生成部363によりストール信号stlc2をアサートするとともに、当該アクセス要求によって指定された仮想アドレスを物理アドレスに変換し、当該アクセス要求に伴って内部バス18上に出力することでアクセス要求を専用処理回路モジュール31に伝達する。これを受けた専用処理回路モジュール31のアクセス要求判定部1150は、制御レジスタ1151を選択してスタートビットに“1”を設定する。スタートビットに“1”が設定されると、制御信号生成部1152は、データ処理部114に対し、先ほど中断したときのステータスに基づいて処理を実行させる。これにより、専用処理回路モジュール31は中断したところから処理を再開することができる。
When the exception processing is completed, the
専用処理回路モジュール31による処理が完了したら、専用処理回路モジュール31の制御信号生成部1152は割り込み要求intpを出力するとともにスタートビットに“0”を設定する。これにより、割り込みコントローラ12からCPUコア部10に対して割り込み信号intが与えられ、CPUコア部10は、当該割り込み要因の処理に移行する。
When the processing by the dedicated
以上より実施の形態2に係るマイクロプロセッサ2によれば、前記マイクロプロセッサ1と同様に、専用処理回路モジュールの仮想アドレス空間を用いた処理を安全に行うことができるから、OSを改変する必要はない。
As described above, according to the
≪実施の形態3≫
実施の形態1に係るマイクロプロセッサ1及び実施の形態2に係るマイクロプロセッサ2では、専用処理回路モジュールからのアクセス要求に係るTLBミスに対する例外処理が完了したら、CPUコア部10が命令を再実行することにより専用処理回路モジュールの動作を再開させた。実施の形態3に係るマイクロプロセッサ3では、例外処理によりTLBの情報が更新されたらメモリ管理ユニットが専用処理回路モジュールの動作を再開させる。
<< Embodiment 3 >>
In the
図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
図8に示されるメモリ管理ユニット46は、実施の形態2に係るメモリ管理ユニット36と同様にTLB161、FVAレジスタ162、及びストール要求生成部363と、その他図示されないアドレス変換に必要な機能部を有する。更にメモリ管理ユニット46は、処理再開信号生成部464を有する。処理再開信号生成部464は、TLBミスに応じた例外処理によりTLB161の情報が更新された後に、処理再開信号(rgm)を出力する。
The
専用処理回路モジュール41は、実施の形態2に係る専用処理回路モジュール31の機能に加え、処理再開信号rgmに応じて制御レジスタ1151を設定する機能を有する。具体的には、専用処理回路モジュール41内のアクセス要求判定部1150が、処理再開信号rgmを入力し、当該信号に応じて制御レジスタ115のスタートビットに“1”を設定する。
In addition to the function of the dedicated
ここで、CPUコア部10が専用処理回路モジュール41を制御して処理を実行させる場合のCPUコア部10、メモリ管理ユニット46、及び専用処理回路モジュール41の動作について詳細に説明する。
Here, operations of the
先ず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
メモリ管理ユニット46は、CPUコア部10による例外処理が完了したら、ストール信号stlc2をアサートする。その後の専用処理回路モジュール31による処理完了後の動作は、前記マイクロプロセッサ2と同様である。
When the exception processing by the
以上実施の形態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
≪実施の形態4≫
図9は、実施の形態4に係るマイクロプロセッサ4のブロック図である。
<<
FIG. 9 is a block diagram of the
同図に示されるマイクロプロセッサ4は、例えば携帯情報端末用のマイクロプロセッサである。マイクロプロセッサ4は、図示されないRAM(Random Access Memory)やROM等の記憶装置、及び外部I/Oと接続されることにより、携帯情報端末の機能を実現する。同図に示されるマイクロプロセッサ4の構成要素のうち、前記マイクロプロセッサ1と同様の構成要素には同一の符号を付して、その詳細な説明を省略する。
A
マイクロプロセッサ4は、専用処理回路モジュール11のアクセス要求に対するアドレス変換のためのTLB501を備えるメモリ管理ユニット50を更に有する。メモリ管理ユニット50は、専用アドレスバスpaと専用データバスpdから構成される専用バス51を介して専用処理回路モジュール11と接続され、内部バス18を介して割り込みコントローラ12、タイマユニット13、外部バスコントローラ14、及び専用処理回路モジュール11と接続される。TLB501は、TLB161に格納されるアドレス変換情報の一部が格納される。
The
専用処理回路モジュール11からのアクセス要求は、専用バス51を介してメモリ管理ユニット50に与えられる。当該アクセス要求を受け取ったメモリ管理ユニット50は、TLB501を用いてアクセス要求によって指定された仮想アドレスを物理アドレスに変換し、当該アクセス要求を物理アドレスを伴って内部バス18上に出力することで、専用処理回路モジュール11からのアクセス要求を伝達する。また、アドレス変換においてエラーが発生した場合には、メモリ管理ユニット52に対して通知を行う。
An access request from the dedicated
メモリ管理ユニット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
以上より実施の形態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
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。 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
上記マイクロプロセッサ1に適用されるOSが、例えば組み込み用のOS等のように多少のカスタマイズが認められている場合には、その認められている範囲内でのOSの改造により、専用処理回路モジュールの仮想アドレス空間を用いた処理を安全に行うことが可能となる。例えば、専用処理回路モジュールからのアクセス要求に対するアドレス変換処理においてTLBミスが発生し、その後の例外処理によりTLBのエントリが更新されたとき、CPUコア部から専用処理回路モジュールに対してTLBのエントリが更新されたことを通知するためには、OSの改造が必要となる。そこで、そのCPUコア部からの通知をする処理の追加がOSの改造の認められている範囲内で対応可能であれば、専用処理回路モジュールの仮想アドレス空間を用いた処理を安全に行うことが可能となる。
When the OS applied to the
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
161, 501 TLB
162 FVA register ca CPU address bus cd
13 Timer unit (Timer)
12 Interrupt controller (INTC)
intp Interrupt request from dedicated
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.
前記中央処理装置は、前記例外処理要求に応じて前記エラーに対する例外処理を実行し、当該例外処理の完了後、前記回路モジュールの動作の再開する処理を実行する、請求項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. .
前記メモリ管理部は、前記所定の命令の実行に応じてストール信号をアサートし、
前記中央処理装置は、前記ストール信号がアサートされているとき命令の実行を保留する、請求項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.
物理アドレスによりアクセスされ、且つ仮想アドレスを用いてアクセス制御を行う回路モジュールと、
仮想アドレスを物理アドレスにアドレス変換するための第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.
前記第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.
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)
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 |
-
2010
- 2010-10-19 JP JP2010234387A patent/JP5593195B2/en not_active Expired - Fee Related
Patent Citations (5)
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 |