JP2007128336A - Parallel register access device and system lsi - Google Patents
Parallel register access device and system lsi Download PDFInfo
- Publication number
- JP2007128336A JP2007128336A JP2005321129A JP2005321129A JP2007128336A JP 2007128336 A JP2007128336 A JP 2007128336A JP 2005321129 A JP2005321129 A JP 2005321129A JP 2005321129 A JP2005321129 A JP 2005321129A JP 2007128336 A JP2007128336 A JP 2007128336A
- Authority
- JP
- Japan
- Prior art keywords
- register
- field
- access
- parallel
- register access
- 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.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
Description
本発明は、並列レジスタアクセス装置及びシステムLSIに関する。 The present invention relates to a parallel register access device and a system LSI.
特開平11−353153号公報にシステム内部のレジスタの初期値の設定変更を、低コストかつ容易に行うことのできるレジスタ設定回路が開示されている。同公報のレジスタ設定回路は、レジスタの初期値を変更するためのプログラムコードを格納するプログラムコード格納領域及び前記レジスタの初期値を変えるための設定値を格納するレジスタ設定領域を有した不揮発性メモリと、前記プログラムコード格納領域のプログラムコードに基づき、前記レジスタ設定領域から読出された設定値に応じて前記レジスタの初期値をダイレクトに変更設定する設定制御回路とを備えてなり、CPUから指示されたレジスタ設定領域の設定値を読み出すだけでレジスタの初期値を変更させることが可能となっている。 Japanese Patent Laid-Open No. 11-353153 discloses a register setting circuit that can easily change the setting of the initial value of a register in the system at low cost. The register setting circuit disclosed in the publication includes a program code storage area for storing a program code for changing an initial value of a register and a non-volatile memory having a register setting area for storing a setting value for changing the initial value of the register And a setting control circuit for directly changing and setting the initial value of the register according to the setting value read from the register setting area based on the program code in the program code storage area, and instructed by the CPU. It is possible to change the initial value of the register simply by reading the set value in the register setting area.
ところで、携帯電話等において、電源を投入してから液晶画面に絵が出るまでに時間が掛かるものが見受けられる。こうしたシステムの立ち上がりが遅くなる要因の一つは、システムLSIの初期化処理に時間が掛かることにあり、当該機種のみならず当該メーカー製品への好感を持って頂くためにも、一層の高速化が求められている。 By the way, it can be seen that a cellular phone or the like takes time from when the power is turned on until a picture is displayed on the liquid crystal screen. One of the factors that slows down the start-up of the system is that it takes time to initialize the system LSI, and it is even faster to have a good feeling not only for the model but also for the manufacturer. Is required.
図16、図19、図20はCPUによって複数のペリフェラル(Peripheral、周辺装置)の初期化を行う際の流れを表した図である。同図に示されるように、従来の方法では、電源を投入し、リセット解除後、CPUがペリフェラルAの初期化を行い(図17参照)、続いてペリフェラルBの初期化を行う(図18参照)というように、CPUがn個のペリフェラルを直列に処理していくものである。 FIGS. 16, 19, and 20 are diagrams showing a flow when the CPU initializes a plurality of peripherals (peripherals, peripheral devices). As shown in the figure, in the conventional method, after the power is turned on and reset is released, the CPU initializes peripheral A (see FIG. 17), and then initializes peripheral B (see FIG. 18). ), The CPU processes n peripherals in series.
第1の問題点は、あるペリフェラルの初期化において、あるレジスタ(Register)、例えば(レジスタB、C)の設定後、ある程度の「待ち」(wait)が必要となるケースがあり、これにより後続処理に遅延が伝播することである。この待ち時間は数十msに達することもあり、図19に示したように、初期化処理全体を長期化させる一因となっている。 The first problem is that in the initialization of a certain peripheral, after setting a certain register (Register), for example, (Registers B and C), there is a case where a certain amount of “wait” is necessary, and the subsequent The delay is propagated to the process. This waiting time may reach several tens of ms, which is one factor in prolonging the entire initialization process as shown in FIG.
第2の問題点は、電源投入後一定時間経過した後でないとレジスタA、B、Cを設定してはいけないという制約が、あるペリフェラルに課される結果、図20に示したように、当該ペリフェラルの初期化及び後続処理の処理開始時間が遅延することである。上記制約は、電源やクロックの安定待ちのために課されるものであるが、実際には、当該ペリフェラルが初期化される時点で、上記制約時間以上の時間が経過していることも多く、その分だけ無駄が生じている。 The second problem is that, as shown in FIG. 20, the restriction that registers A, B, and C must be set only after a certain period of time has passed since power is turned on. The processing start time of peripheral initialization and subsequent processing is delayed. The above constraints are imposed to wait for the power supply and clock to stabilize, but in reality, at the time when the peripheral is initialized, a time longer than the above constraint time has often passed. There is a lot of waste.
また、上記CPUにて直列にペリフェラルの初期を行う方式において、上記第1、第2の問題点を解決するには、CPUに複雑な命令を与えたり、コンパイルの合理化を行ったりする等しかなく、ソフトウェア設計者に多大な負担がかかってしまうという別の問題点もある。 Further, in the system in which the peripherals are initialized in series by the CPU, the first and second problems can be solved only by giving complicated instructions to the CPU or rationalizing compilation. Another problem is that it puts a heavy burden on software designers.
特許文献1に記載のレジスタ設定回路によれば、上記に係るCPUの負荷やソフト設計者の負担を軽減できる可能性があるが、上記レジスタへのアクセスを直列に行う点では、上記従来技術と同様であり、待ち時間分のロスが生じる点で変わりは無い。
According to the register setting circuit described in
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、上記初期化に代表される複数のレジスタへのリード/ライト処理を全体として高速化できる装置を提供することにある。 The present invention has been made in view of the above circumstances, and an object of the present invention is to provide an apparatus capable of speeding up the overall read / write processing to a plurality of registers represented by the initialization. There is.
本発明の第1の視点によれば、バスを介して複数のペリフェラルと接続され、CPUとは独立して動作する並列レジスタアクセス装置であって、予めメモリに格納された命令に従って、前記各ペリフェラルのレジスタにアクセスする複数のレジスタアクセスモジュールと、前記複数のレジスタアクセスモジュールからのアクセスを調停する調停部と、を含み、複数のペリフェラルへの並列アクセス機能を提供すること、を特徴とする並列レジスタアクセス装置が提供される。 According to a first aspect of the present invention, there is provided a parallel register access device that is connected to a plurality of peripherals via a bus and operates independently of a CPU, and each of the peripherals according to instructions stored in a memory in advance. A parallel register comprising a plurality of register access modules for accessing a plurality of registers, and an arbitration unit for arbitrating accesses from the plurality of register access modules, and providing a parallel access function to a plurality of peripherals An access device is provided.
本発明によれば、上記した待ち時間を最小化し、複数のレジスタに効率よくアクセスする仕組みが提供される。より具体的には、複数のレジスタへのアクセスを要するシステムの初期化においてその利点が発揮され、初期化に要する時間を大幅に短縮可能となる。 According to the present invention, a mechanism for minimizing the waiting time and efficiently accessing a plurality of registers is provided. More specifically, this advantage is exhibited in the initialization of a system that requires access to a plurality of registers, and the time required for initialization can be greatly reduced.
続いて、本発明を実施するための最良の形態について、図面を参照して詳細に説明する。図1は、LSI初期化装置(DRSC:Direct Register Set Controller。以下、DRSC)として具現された本発明の第1の実施形態に係る並列レジスタアクセス装置を含むシステムLSIの第1の実施形態の構成を表したブロック図である。 Next, the best mode for carrying out the present invention will be described in detail with reference to the drawings. FIG. 1 shows a configuration of a first embodiment of a system LSI including a parallel register access apparatus according to the first embodiment of the present invention embodied as an LSI initialization apparatus (DRSC: Direct Register Set Controller, hereinafter referred to as DRSC). It is a block diagram showing.
図1を参照すると、CPU2a、DRSC2b、DMAC(Direct Memory Access Controller)2c、DSP(Digital Signal Processor)2d、内部バス2e、外部メモリI/F2f、内部メモリ2l、割り込みコントローラ2k、ペリフェラル2g〜2jを備えたシステムLSI1aと、不揮発メモリ、揮発メモリ、ハードディスク等の外部記憶装置1bとを接続した構成が示されている。
Referring to FIG. 1, a
図2は、上記DRSC2bの詳細構成を表したブロック図である。図2を参照すると、DRSC2bは、レジスタ群(Registers)4aと、レジスタアクセスモジュールとして動作しそれぞれ独立して各ペリフェラルの初期化を行いうるDRSM(Direct Register Set Module)群4bと、各DRSMからのアクセスを調停する調停部(Arbiter)4cと、エラー状態情報を保持し、割り込みコントローラ2kに対して割り込みを発生させるエラーステータスマネージャー(Error Status Manager)4dと、を備えて構成される。
FIG. 2 is a block diagram showing the detailed configuration of the
DRSM群4bに含まれる各DRSM(DRSMa〜DRSMn)は、それぞれ独立して動作し、外部記憶装置1bの初期化データが書かれている領域から読み込んだ命令に従って、初期化処理を実行する。
Each DRSM (DRSMa to DRSMn) included in the DRSM
調停部(Arbiter)4cは、各DRSM(DRSMa〜DRSMn)からのアクセスを調停する。従って、複数のアクセス要求が同時に発せられた場合は、調停を勝ち抜いたアクセスのみが、その初期化対象のペリフェラルを初期化できる構成となっている。 The arbitrating unit (Arbiter) 4c arbitrates access from each DRSM (DRSMa to DRSMn). Therefore, when a plurality of access requests are issued at the same time, only the access that has won the arbitration can initialize the peripheral to be initialized.
従って、DRSC2bは、例えば、少なくとも2つのDRSM(例えば、DRSMa、DRSMb)に、それぞれペリフェラルA2g、ペリフェラルB2hを初期化する命令を与え、各DRSMからのアクセスを調停することにより、図3に模式的に示すとおり、2つのペリフェラルA、Bのレジスタ3a、3bに直接かつ並列にアクセスすることが可能となっている。その間、CPU2aは、フリーの状態であり、他の資源にアクセスすることが可能である。
Accordingly, for example, the
図4〜図9は、レジスタ群(Registers)4aの詳細構成を説明するための図である。DRSC_START_ADDRnは、図4に示したとおり、32ビットのレジスタであり、n(n;DRSMの数)番目のDRSMに対して与える命令(図10参照)が格納された外部記憶装置上の先頭アドレスが格納される。 4 to 9 are diagrams for explaining a detailed configuration of the register group (Registers) 4a. As shown in FIG. 4, DRSC_START_ADDRn is a 32-bit register, and the start address on the external storage device storing the instruction (see FIG. 10) to be given to the nth (n; the number of DRSM) DRSM is stored. Stored.
DRSC_INTERRUPT_STATUSnは、図5に示したとおり、n(n;DRSMの数)番目のDRSMの各種ステータスが格納され、割り込み発生状況をモニタするために使用される。 As shown in FIG. 5, DRSC_INTERRUPT_STATUSn stores various statuses of the nth (n; the number of DRSM) DRSM, and is used to monitor the interrupt generation status.
DRSC_INTERRUPT_ENABLEnは、図6に示したとおり、n(n;DRSMの数)番目のDRSMの割り込み可否設定が格納される。 As shown in FIG. 6, DRSC_INTERRUPT_ENABLEn stores n (n: the number of DRSM) -th DRSM interrupt enable / disable settings.
DRSC_POLL_TIMEOUTnは、図7に示したとおり、DRSC_INTERRUPT_ENABLEnの[Polling TimeoutEn]FieldがEnable’1’とされている場合に、Timeoutまでのクロック数を設定する際に使用される。 As shown in FIG. 7, DRSC_POLL_TIMEOUTn is used when setting the number of clocks up to Timeout when [Polling TimeoutEn] Field of DRSC_INTERRUPT_ENABLEn is set to Enable'1 '.
DRSC_CHANEL_GOは、図8に示したとおり、各DRSMに与えられている動作指示を示すものであり、各DRSMの位置(GOnField)に、動作指示を表すStart/Stopビットが書き込まれる。図8では、DRSC2bが15のDRSMを備えている例であり、32ビットのうち15ビットを使用してこれらDRSMを管理可能となっている。
As shown in FIG. 8, DRSC_CHANEL_GO indicates an operation instruction given to each DRSM, and a Start / Stop bit representing the operation instruction is written in each DRSM position (GOOnField). FIG. 8 shows an example in which the
例えば初期化を行う場合、CPUがDRSM群4bの所要のDRSMを起動すべく、DRSC_CHANEL_GOの対応箇所にStartビット’1’を書き込む。Startビットが書き込まれたDRSMは、上記DRSC_START_ADDRnに指定されたアドレスから命令を読み出し、動作を開始することになる。
For example, when performing initialization, the CPU writes a Start bit “1” in a corresponding location of DRSC_CHANEL_GO in order to activate a required DRSM of the
DRSC_CHANEL_STATUSは、図9に示したとおり、各DRSMの動作状況を示すものであり、各DRSMの位置にそのステータス(動作中/停止中)ビットが書き込まれる。 As shown in FIG. 9, DRSC_CHANEL_STATUS indicates the operation status of each DRSM, and the status (operating / stopped) bit is written at the position of each DRSM.
図10は、外部記憶装置1bにおける命令の格納態様を表した図であり、図11は、図10の命令Fieldの詳細構成を表した図である。図10に示したとおり、外部記憶装置1bの所定領域に、128ビット単位の命令Fieldデータが実行順序に従って予め用意される。命令Fieldデータは、アクセスする(初期化対象の)レジスタのアドレス、データ、Verifyデータ、命令オペランド、Endビットが格納される。
FIG. 10 is a diagram showing how instructions are stored in the
従って、DRSC_START_ADDRnに指定されたアドレスに格納された命令Fieldから、[End]ビット’1’がセットされた命令Fieldまでの内容により、DRSMに与える一連の命令が構成される。 Therefore, a series of instructions to be given to the DRSM is constituted by the contents from the instruction field stored at the address specified by DRSC_START_ADDRn to the instruction field in which the [End] bit '1' is set.
続いて、DRSMにおいて実行可能な命令についていくつか例を挙げて説明する。 Next, some examples of instructions that can be executed in DRSM will be described.
[ReWr]Fieldが’0’である場合は、Write命令と解釈され、[Address]Fieldに指定されたアドレスを有するレジスタに、[Data]Fieldの内容が書き込まれる。なおかつ、[Verify]Fieldが’1’である場合は、Verify要と解釈され、書き込んだアドレスの内容を読み出し、[Data]Fieldとを照合するVerify動作が行われる。また更に、[ReVerifyWr]Fieldが’1’である場合は、Read Verify Write命令であると解釈され、まず[Address]Fieldに指定されたアドレスの内容を読み出し、その結果を[Verify Data]Fieldに格納し、[Data]Fieldの値とORした結果を[Address]Fieldのアドレスに書き込む動作が行われる。 When [ReWr] Field is “0”, it is interpreted as a Write instruction, and the contents of [Data] Field are written into the register having the address specified in [Address] Field. Further, when [Verify] Field is “1”, it is interpreted as “Verify” required, and the contents of the written address are read, and the Verify operation is performed to collate with [Data] Field. Furthermore, when [ReVerifyWr] Field is “1”, it is interpreted as a Read Verify Write instruction, and the contents of the address specified in [Address] Field are read first, and the result is read in [Verify Data] Field. The operation of storing and writing the result of ORing with the value of [Data] Field is performed at the address of [Address] Field.
一方、[ReWr]Fieldが’1’である場合は、Read命令と解釈され、[Address]Fieldに指定されたアドレスを有するレジスタの内容を読み出し、[Data]Fieldに格納する動作が行われる。ここでも、[Verify]Fieldが’1’である場合は、Verify要と解釈され、読み出した内容と[Verify Data]Fieldの内容とを照合するVerify動作が行われる。また更に、[Polling]Fieldが’1’である場合は、読み出したデータが[Verify Data]Fieldと一致するまで、当該[Address]Fieldをポーリングする。また更に、[Polling]Fieldが’1’である場合は、[Timeout]Fieldも’1’にすることが可能であり、Timeout機能を有効化することが可能である。 On the other hand, when [ReWr] Field is “1”, it is interpreted as a Read instruction, and the contents of the register having the address specified in [Address] Field are read and stored in [Data] Field. Again, if [Verify] Field is “1”, it is interpreted as Verify required, and a Verify operation is performed to collate the read contents with the contents of [Verify Data] Field. Furthermore, when [Polling] Field is “1”, the [Address] Field is polled until the read data matches [Verify Data] Field. Furthermore, when [Polling] Field is “1”, [Timeout] Field can also be set to “1”, and the Timeout function can be validated.
[Repeat]Fieldに値がセットされている場合は、当該命令Fieldに書かれた命令が[Repeat]Fieldに書かれた回数分繰り返される。 When a value is set in [Repeat] Field, the instruction written in the instruction Field is repeated by the number of times written in [Repeat] Field.
また、[Wait]Fieldが’1’である場合は、Wait命令と解釈され、[Data]Fieldに指定された値×クロック分の待機が行われる。[NOP]Fieldが’1’である場合は、当該命令Fieldに書かれた命令はスキップされる。 Also, when [Wait] Field is “1”, it is interpreted as a Wait instruction, and a wait for the value specified by [Data] Field × clock is performed. [NOP] If Field is '1', the instruction written in the instruction Field is skipped.
また、[Comp]Fieldが’1’である場合は、読み出した内容に応じた条件分岐を行うCompare命令と解釈される。図12は、読み出した内容に応じて場合分けして3命令を実行するよう定義されたCompare命令の動作を説明するための図である。図12に示されたように、アドレス0x****0020のCompare命令を読み出すと、DRSMは、まず[Address]Fieldに指定されたアドレスの内容を読み出し、[Data]Field、[Verify]Fieldの内容と比較する。
Further, when [Comp] Field is “1”, it is interpreted as a Compare instruction for performing a conditional branch according to the read content. FIG. 12 is a diagram for explaining the operation of the Compare instruction defined to execute three instructions according to the read contents. As shown in FIG. 12, when the Compare instruction at the
前記比較の結果、読み出したデータが、[Data]Fieldの内容と一致した場合には、DRSMは、直後の命令Field4〜6(アドレス0x****0030〜0x****0050)を実行し、命令Field6を実行した後は、アドレス0x****0090にジャンプし、命令Fieldaを実行する。
As a result of the comparison, if the read data matches the contents of [Data] Field, DRSM executes the immediately following commands Field 4 to 6 (
一方、読み出したデータが、[Verify]Fieldの内容と一致した場合は、DRSMは、命令Field7〜9(アドレス0x****0060〜0x****0080)を実行し、そのまま命令Fieldaを実行する。
On the other hand, if the read data matches the contents of [Verify] Field, DRSM executes instructions Fields 7 to 9 (
以上、Compare命令の具体例を説明したが、比較結果による命令実行数は、3命令に限らず、用途に応じてフレキシブルに設計可能である。 The specific example of the Compare instruction has been described above, but the number of instruction executions based on the comparison result is not limited to three instructions, and can be designed flexibly according to the application.
続いて、システムLSI1aの初期化を行う場合の例を挙げて、本実施形態のDRSC2bの動作について説明する。まず、CPU2aによって、上記DRSC_CHANEL_GOのGOn bit=1とされたDRSMは、DRSC_START_ADDRnの[StartAddress]Fieldに格納されているアドレスの命令Fieldデータを読み出す。
Subsequently, the operation of the
DRSMは、命令Fieldの内容を解読し、命令を実行する。該命令の実行が完了したならば、DRSMは、その次の命令Fieldデータを読み出し、実行する。DRSMは、適宜[Repeat]Fieldにセットされた内容や、[Wait]Fieldにセットされた内容に従って動作し、[End]Fieldに’1’がセットされた命令Fieldまで、命令の実行を繰り返す。 DRSM decodes the contents of instruction Field and executes the instruction. When the execution of the instruction is completed, the DRSM reads and executes the next instruction Field data. The DRSM operates according to the content set in [Repeat] Field or the content set in [Wait] Field as appropriate, and repeats the execution of the instruction until the instruction Field in which “1” is set in [End] Field.
[End]Fieldに’1’がセットされた命令の実行後、DRSCは、DRSC_START_ADDRnの当該DRSMの位置(GOn)にStopビット’0’を書き込み、DRSMは停止する。 [END] After executing the instruction in which “1” is set in Field, DRSC writes Stop bit “0” in the DRSM position (GOn) of DRSC_START_ADDRn, and DRSM stops.
以上の過程で、例えば、[End]Fieldが’1'の命令Fieldの実行が終わると、DRSMは、自己のDRSC_INTERRUPT_STATUSnの[EndST]Fieldを’1’に変更する。 In the above process, for example, when the execution of the instruction field whose [End] Field is “1” is finished, the DRSM changes the [EndST] Field of its own DRSC_INTERRUPT_STATUSn to “1”.
同様に、Read Verifyを実行した際に、読み出した値と[Verify Data]Fieldの値とが一致しなかった場合は、DRSMは、自己のDRSC_INTERRUPT_STATUSnの[ReadErr]Fieldを’1’に変更する。 Similarly, when Read Verify is executed, if the read value does not match the value of [Verify Data] Field, DRSM changes [ReadErr] Field of its own DRSC_INTERRUPT_STATUSn to “1”.
同様に、Write Verifyを実行した際に、命令Fieldの[Data]Fieldの値と、実際に書き込んだ値が一致しなかった場合は、DRSMは、自己のDRSC_INTERRUPT_STATUSnの[WriteErr]Fieldを’1’に変更する。 Similarly, when the value of [Data] Field of the instruction field and the actually written value do not match when the Write Verify is executed, the DRSM sets [WriteErr] Field of its own DRSC_INTERRUPT_STATUSn to “1”. Change to
同様に、Timeout機能を有効化したPollingを実行した際に、DRSC_POLL_TIMEOUTnの[PollTimeout]Field分のクロック経過しても、Polling Data([Adress]Fieldで指定のデータ)が命令Fieldの[Verify Data]Fieldと一致しなかった場合は、DRSMは、自己のDRSC_INTERRUPT_STATUSnの[PollingTimeout]Fieldを’1’に変更する。 Similarly, when executing the polling with the timeout function enabled, the polling data (the data specified by the [address] field) is the [Verify Data] of the instruction field even when the [PollTimeout] Field clock of DRSC_POLL_TIMEOUTn has elapsed. If it does not match the Field, the DRSM changes [PollingTimeout] Field of its own DRSC_INTERRUPT_STATUSn to “1”.
同様に、Compare命令を実行した際に、読み出したデータが、[Data]Fieldの内容とも[Verify]Fieldの内容とも一致しなかった場合は、DRSMは、自己のDRSC_INTERRUPT_STATUSnの[CompareErr]Fieldを’1’に変更する。 Similarly, if the read data does not match the contents of [Data] Field and [Verify] Field when the Compare instruction is executed, DRSM sets [CompareErr] Field of its own DRSC_INTERRUPT_STATUSn to ' Change to 1 '.
このように、各DRSMの割り込みは、DRSC_INTERRUPT_STATUSnの各bitに’1’をセットすることによりクリアされる。 In this way, the interrupt of each DRSM is cleared by setting “1” to each bit of DRSC_INTERRUPT_STATUSn.
図13は、DRSC2bの調停部4cの調停を介して、3つのDRSMにより、4つのPeripheralA〜Dのレジスタ設定が行われる際の状況を表した図である。まず、調停部4cにより、DRSMaから優先順位の最も高いPeripheralAへのアクセスが許可されるが、DRSMaがwait命令を読み出した時点で、DRSMcからPeripheralCへのアクセスに切り替えられる。
FIG. 13 is a diagram illustrating a situation when register settings of four Peripheral A to D are performed by three DRSMs through the
続いて、DRSMcがPeripheralCの設定を完了しても、続く命令FieldにPeripheralDのレジスタ設定処理が記述されているため、PeripheralDへのアクセスが行われる。そして、DRSMcがwait命令を読み出した時点で、DRSMbからPeripheralBへのアクセスに切り替えられる。 Subsequently, even if DRSMc completes the setting of PeripheralC, since the register setting process of PeripheralD is described in the subsequent instruction Field, Access to PeripheralD is performed. Then, when DRSMc reads the wait command, the access is switched from DRSMb to PeripheralB.
続いて、DRSMbがPeripheralBの設定を完了し、DRSC_INTERRUPT_STATUSbの[EndST]Fieldに’1’が立つと、今度はDRSMcからPeripheralDへのアクセスに切り替えられる。 Subsequently, when DRSMb completes the setting of PeripheralB and “1” is set in [EndST] Field of DRSC_INTERRUPT_STATUSb, this time, switching from DRSMc to PeripheralD is performed.
DRSMcが一の命令を実行した時点で、DRSMaの待ち時間が終了したため、今度はDRSMaからPeripheralAへのアクセスに切り替えられる。そして、DRSMaがPeripheralAの設定を完了し、DRSC_INTERRUPT_STATUSaの[EndST]Fieldに’1’が立った時点で、再度、DRSMcからPeripheralDへのアクセスに切り替えられ、すべてのPeripheralの初期化が完了する。 When the DRSMa executes one instruction, the DRSMa waiting time has ended, so this time the DSMMa is switched to the access to Peripheral A. Then, when DRSMa completes the setting of Peripheral A and “1” is set in [EndST] Field of DRSC_INTERRUPT_STATUSa, it is switched again to access to Peripheral D from DRSMc, and all the Peripherals are initialized.
以上のように、複数のDRSMが各ペリフェラルの初期化を並列処理することによって、あるペリフェラルの初期化の際の待機時間中に、他のペリフェラルの初期化を行うことができ、初期化時間を短縮することが可能となる。 As described above, when a plurality of DRSMs process initialization of each peripheral in parallel, other peripherals can be initialized during the waiting time for initialization of a certain peripheral. It can be shortened.
また、以上のようにDRSMへの動作指示(Start/Stop)を自由に設定可能としたことにより、フレキシブルに初期化ルーチンを構成すること、各DRSMへの負荷を平準化することも可能となる。 Also, as described above, since the operation instruction (Start / Stop) to the DRSM can be set freely, an initialization routine can be configured flexibly and the load on each DRSM can be leveled. .
また、ソフトウェア設計者の負担も大きく軽減される。例えば、上記各DRSMが動作中か否かの判別を行い、命令順序を組み替えることにより、初期化に要する総時間を短縮することが可能である。 In addition, the burden on the software designer is greatly reduced. For example, it is possible to reduce the total time required for initialization by determining whether or not each DRSM is operating and rearranging the instruction order.
続いて、上記第1の実施形態の構成にてリセット時に初期化動作が行われるようにした本発明の第2の実施形態について説明する。図14は、リセット操作と同時に、所要のDRSMが動作するよう指示する際にDRSC_CHANEL_GOに書き込む値(ResetValue)を表した図である。 Next, a description will be given of a second embodiment of the present invention in which the initialization operation is performed at the time of reset in the configuration of the first embodiment. FIG. 14 is a diagram showing values (ResetValue) to be written to DRSC_CHANEL_GO when an instruction is given to operate the required DRSM simultaneously with the reset operation.
図14を参照すると、Reset valueでは、DRSMa〜DRSMcの3本のGOn bitが’1’とされており、リセット解除とともに、DRSMa〜DRSMcが動き出す構成となっている。 Referring to FIG. 14, in Reset value, three GOn bits from DRSMa to DRSMc are set to “1”, and DRSMa to DRSMc start to move along with the reset release.
また、DRSC_START_ADDRa〜DRSC_START_ADDRcの[StartAddress]FieldのReset valueも同様に用意され、外部記憶装置1bの所定アドレスから所定のリセット動作命令が読み出されるようにすることができる。より具体的には、CPUが起動する際に、必要不可欠なペリフェラルの設定を任せたり、PLLを初期化する前から設定しても問題無いペリフェラルの設定をさせたりする等の機能を付加することができる。
Similarly, a Reset value of [StartAddress] Field of DRSC_START_ADDRa to DRSC_START_ADDRc is prepared, and a predetermined reset operation command can be read from a predetermined address of the
以上本発明の第1、第2の実施形態を挙げて説明したが、フレキシブルに命令内容を定め得ることからも明らかなとおり、本発明の技術的範囲は、上述した各実施形態に限定されるものではなく、システムLSIの複数のレジスタに、直接かつ並列にアクセスを可能とするという本発明の要旨を逸脱しない範囲で、各種の変形・置換をなしうることが可能であることはいうまでもない。例えば、調停部(Arbiter)の調停ロジックについては、並列処理を実現する各種公知のロジックを適用することが可能である。 Although the first and second embodiments of the present invention have been described above, the technical scope of the present invention is limited to the above-described embodiments, as is clear from the fact that instruction contents can be determined flexibly. It goes without saying that various modifications and replacements can be made without departing from the spirit of the present invention that allows direct and parallel access to a plurality of registers of the system LSI. Absent. For example, various known logics that realize parallel processing can be applied to the arbitration logic of the arbitration unit (Arbiter).
例えば、予め命令データを外部記憶装置1bにセットしておけば、本発明に係る並列レジスタアクセス装置を搭載したシステムLSIは、ランダムアクセス可能なホスト装置として使用可能である。例えば、CPUがキャッシュに閉じて動いていたり、内蔵メモリに頻繁にアクセスしたりしている状態であっても、CPUのパフォーマンスを落とすことなく、他のペリフェラルを設定することが可能である。
For example, if instruction data is set in the
また、図15に示すように、DRSM毎に汎用IO割り込みを受け付けるか否かを定める[IO_INT_Enable]Fieldと、汎用IO番号を指定する[IONumber]Fieldを有するDRSC_IO_INT_STARTnレジスタを追加し、所定の汎用I/Oからの入力割り込みを受け付けると、対応するDRSMが動作を開始するようにすることも可能となる。この場合、CPUがオフ状態の場合であっても、ペリフェラルのレジスタ設定変更を行うことができるシステムLSIとなる。 Also, as shown in FIG. 15, a DRSC_IO_INT_STARTn register having [IO_INT_Enable] Field for determining whether or not to accept a general-purpose IO interrupt for each DRSM and [IONNumber] Field for specifying a general-purpose IO number is added, and a predetermined general-purpose I / O is added. When an input interrupt from / O is received, the corresponding DRSM can start operating. In this case, the system LSI can change the register setting of the peripheral even when the CPU is off.
1a システムLSI
1b 外部記憶装置
2a CPU
2b DRSC(Direct Register Set Controller)
2c DMAC(Direct Memory Access Controller)
2d DSP(Digital Signal Processor)
2e 内部バス
2f 外部メモリI/F
2l 内部メモリ
2k 割り込みコントローラ
2g〜2j ペリフェラル(Peripheral)
3a、3b レジスタ(Register)
4a レジスタ群(Registers)
4b DRSM(Direct Register Set Module)群
4c 調停部(Arbiter)
4d エラーステータスマネージャー(Error Status Manager)
1a System LSI
1b
2b DRSC (Direct Register Set Controller)
2c DMAC (Direct Memory Access Controller)
2d DSP (Digital Signal Processor)
2e
2l
3a, 3b Register (Register)
4a Registers (Registers)
4b DRSM (Direct Register Set Module)
4d Error Status Manager (Error Status Manager)
Claims (5)
予めメモリに格納された命令に従って、前記各ペリフェラルのレジスタにアクセスする複数のレジスタアクセスモジュールと、
前記複数のレジスタアクセスモジュールからのアクセスを調停する調停部と、を含み、複数のペリフェラルへの並列アクセス機能を提供すること、
を特徴とする並列レジスタアクセス装置。 A parallel register access device connected to a plurality of peripherals via a bus and operating independently of the CPU,
A plurality of register access modules for accessing the registers of each peripheral in accordance with instructions stored in memory in advance;
An arbitration unit that arbitrates access from the plurality of register access modules, and provides a parallel access function to the plurality of peripherals;
A parallel register access device.
を特徴とする請求項1に記載の並列レジスタアクセス装置。 Reads initialization data defining the register initialization procedure including the operation waiting time of the register access module from a predetermined memory, and initializes the peripherals in parallel to the register access modules. Running
The parallel register access apparatus according to claim 1.
前記各レジスタアクセスモジュールの動作状況を保持するレジスタと、を有し、
前記調停部が前記各レジスタ値を用いて調停を実行すること、
を特徴とする請求項1又は2に記載の並列レジスタアクセス装置。 A register for setting whether or not an interrupt is permitted for each register access module;
A register for holding the operation status of each of the register access modules,
The arbitration unit performs arbitration using the register values;
The parallel register access apparatus according to claim 1, wherein:
システム外部からの指令によって、複数のペリフェラルのレジスタへの並列アクセスを実行可能としたこと、
を特徴とする請求項1乃至3いずれか一に記載の並列レジスタアクセス装置。
を備えること、 Each register access module has a register for setting whether or not an input interrupt from the outside of the system is possible,
The parallel access to the registers of multiple peripherals can be executed by a command from outside the system.
The parallel register access apparatus according to claim 1, wherein:
Providing
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005321129A JP2007128336A (en) | 2005-11-04 | 2005-11-04 | Parallel register access device and system lsi |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005321129A JP2007128336A (en) | 2005-11-04 | 2005-11-04 | Parallel register access device and system lsi |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007128336A true JP2007128336A (en) | 2007-05-24 |
Family
ID=38150940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005321129A Pending JP2007128336A (en) | 2005-11-04 | 2005-11-04 | Parallel register access device and system lsi |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007128336A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019512135A (en) * | 2016-02-29 | 2019-05-09 | ルネサス エレクトロニクス アメリカ インコーポレイテッドRenesas Electronics America Inc. | System and method for programming microcontroller data transfer |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04195448A (en) * | 1990-11-28 | 1992-07-15 | Hitachi Ltd | Data transfer control method and data processor using the method |
JPH05204833A (en) * | 1992-01-28 | 1993-08-13 | Nec Kyushu Ltd | Direct memory access transfer controller |
JPH096483A (en) * | 1995-06-20 | 1997-01-10 | Hitachi Ltd | Microcomputer and portable telephone set |
JP2003141057A (en) * | 2001-11-06 | 2003-05-16 | Mitsubishi Electric Corp | Dma transfer control circuit |
JP2003162497A (en) * | 2002-09-11 | 2003-06-06 | Hitachi Ltd | Semiconductor integrated circuit device |
-
2005
- 2005-11-04 JP JP2005321129A patent/JP2007128336A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04195448A (en) * | 1990-11-28 | 1992-07-15 | Hitachi Ltd | Data transfer control method and data processor using the method |
JPH05204833A (en) * | 1992-01-28 | 1993-08-13 | Nec Kyushu Ltd | Direct memory access transfer controller |
JPH096483A (en) * | 1995-06-20 | 1997-01-10 | Hitachi Ltd | Microcomputer and portable telephone set |
JP2003141057A (en) * | 2001-11-06 | 2003-05-16 | Mitsubishi Electric Corp | Dma transfer control circuit |
JP2003162497A (en) * | 2002-09-11 | 2003-06-06 | Hitachi Ltd | Semiconductor integrated circuit device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019512135A (en) * | 2016-02-29 | 2019-05-09 | ルネサス エレクトロニクス アメリカ インコーポレイテッドRenesas Electronics America Inc. | System and method for programming microcontroller data transfer |
JP7122969B2 (en) | 2016-02-29 | 2022-08-22 | ルネサス エレクトロニクス アメリカ インコーポレイテッド | Systems and methods for programming microcontroller data transfers |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9195786B2 (en) | Hardware simulation controller, system and method for functional verification | |
TWI493350B (en) | High priority command queue for peripheral component | |
US8725485B2 (en) | Simulation method and simulation apparatus | |
MX2012005183A (en) | Command queue for peripheral component. | |
JP2006178646A (en) | Information processor, information processing method, semiconductor device, and computer program | |
JP5622429B2 (en) | Microcomputer | |
KR102152735B1 (en) | Graphic processor and method of oprating the same | |
US20180203699A1 (en) | Vector operand bitsize control | |
JP2007310565A (en) | System lsi verification device and system lsi verification program | |
JP2007206933A (en) | Information processor, boot loader generation method and program transfer method in information processor | |
JP2009175960A (en) | Virtual multiprocessor system | |
JP2007128336A (en) | Parallel register access device and system lsi | |
JP2011070290A (en) | Data processor | |
TWI249130B (en) | Semiconductor device | |
US7587579B2 (en) | Processor core interface for providing external hardware modules with access to registers of the core and methods thereof | |
JP2004343158A (en) | Configuration apparatus, method, and program | |
JP2006127407A (en) | Semiconductor integrated circuit | |
JP5823000B2 (en) | Microcomputer | |
JP2883465B2 (en) | Electronic computer | |
JP2011118744A (en) | Information processor | |
JP2006195598A (en) | Real-time processing system | |
JP2007317102A (en) | Simulation device | |
JP2004326633A (en) | Hierarchical memory system | |
JP2004185060A (en) | Microcomputer | |
JP2933569B2 (en) | Central processing unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110201 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111129 |