JP4848562B2 - Multiprocessor - Google Patents

Multiprocessor Download PDF

Info

Publication number
JP4848562B2
JP4848562B2 JP2005239533A JP2005239533A JP4848562B2 JP 4848562 B2 JP4848562 B2 JP 4848562B2 JP 2005239533 A JP2005239533 A JP 2005239533A JP 2005239533 A JP2005239533 A JP 2005239533A JP 4848562 B2 JP4848562 B2 JP 4848562B2
Authority
JP
Japan
Prior art keywords
request
memory access
external
direct memory
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005239533A
Other languages
Japanese (ja)
Other versions
JP2007058276A (en
Inventor
周平 加藤
高一 佐野
幸一 宇佐美
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.)
SSD Co Ltd
Original Assignee
SSD Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SSD Co Ltd filed Critical SSD Co Ltd
Priority to JP2005239533A priority Critical patent/JP4848562B2/en
Priority to PCT/JP2006/316787 priority patent/WO2007023975A1/en
Priority to US12/064,179 priority patent/US20090259789A1/en
Publication of JP2007058276A publication Critical patent/JP2007058276A/en
Application granted granted Critical
Publication of JP4848562B2 publication Critical patent/JP4848562B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、複数のプロセッサコアを有するマルチプロセッサ及びその関連技術に関する。   The present invention relates to a multiprocessor having a plurality of processor cores and related technology.

特許文献1のマルチプロセッサでは、外部メモリ及び内部メモリ間のデータ転送を、DMAによって行っている。   In the multiprocessor of Patent Document 1, data transfer between an external memory and an internal memory is performed by DMA.

特許文献2のマルチプロセッサでは、外部メモリにアクセスするためのメモリ管理ユニットをプロセッサコアごとに搭載している。   In the multiprocessor of Patent Document 2, a memory management unit for accessing an external memory is mounted for each processor core.

従来のマルチプロセッサでは、一般的に、共有の内部メモリにアクセスするためのバスとCPUが他の機能ユニットを制御するためのバスとが同一である。   In the conventional multiprocessor, the bus for accessing the shared internal memory is generally the same as the bus for controlling the other functional units by the CPU.

特開平11−175398号公報JP-A-11-175398 特開2001−51958号公報JP 2001-51958 A

特許文献1のマルチプロセッサでは、外部メモリ及び内部メモリ間でデータのブロック転送などを行うときは、DMA転送により高速なデータ転送が可能となるが、離散したアドレスにランダムにデータアクセスを行う際は、DMA転送では効率が悪い。   In the multiprocessor of Patent Document 1, when performing block transfer of data between an external memory and an internal memory, high-speed data transfer is possible by DMA transfer. However, when performing random data access to discrete addresses, DMA transfer is inefficient.

特許文献2のマルチプロセッサでは、プロセッサコアの各々がメモリ管理ユニットを搭載しているので、回路構成が複雑になり、コストの低減が図れない。   In the multiprocessor of Patent Document 2, since each of the processor cores is equipped with a memory management unit, the circuit configuration becomes complicated and the cost cannot be reduced.

共有の内部メモリにアクセスするためのバスとCPUが他の機能ユニットを制御するためのバスとが同一である上記従来のマルチプロセッサでは、CPUが他の機能ユニットを制御するためのアクセスが内部メモリのバスバンド幅を浪費してしまう。   In the above conventional multiprocessor in which the bus for accessing the shared internal memory and the bus for controlling the other functional units by the CPU are the same, the access for controlling the other functional units by the CPU is the internal memory. The bus bandwidth is wasted.

そこで、本発明は、外部メモリへの効率的なアクセスが可能なマルチプロセッサ及びその関連技術を提供することを目的とする。   Accordingly, an object of the present invention is to provide a multiprocessor capable of efficiently accessing an external memory and a related technique.

また、本発明の他の目的は、外部メモリへのアクセスに関する回路構成を簡略化して、コストの低減を図ることができるマルチプロセッサ及びその関連技術を提供することである。   Another object of the present invention is to provide a multiprocessor and related technology capable of reducing the cost by simplifying the circuit configuration related to access to an external memory.

さらに、本発明の他の目的は、プロセッサコアに対する制御に起因する内部メモリのバスバンド幅の浪費を防止できるマルチプロセッサ及びその関連技術を提供することである。   Furthermore, another object of the present invention is to provide a multiprocessor and related technology capable of preventing waste of bus bandwidth of an internal memory due to control over a processor core.

本発明の第1の観点によれば、マルチプロセッサは、外部バスへのアクセスが可能なマルチプロセッサであって、各々演算処理を実行する複数のプロセッサコアと、前記複数のプロセッサコアによって共有される内部メモリと、前記プロセッサコアの一部または全部からのダイレクトメモリアクセス転送要求を調停して、前記内部メモリと、前記外部バスに接続される外部メモリと、の間でダイレクトメモリアクセス転送を行うダイレクトメモリアクセスコントローラと、前記プロセッサコアの一部または全部および前記ダイレクトメモリアクセスコントローラからの前記外部バスの使用要求を調停して、いずれか1つの前記プロセッサコアまたは前記ダイレクトメモリアクセスコントローラに対して前記外部バスへのアクセスを許可する外部メモリインタフェースと、を備える。   According to the first aspect of the present invention, the multiprocessor is a multiprocessor capable of accessing an external bus, and is shared by a plurality of processor cores each executing arithmetic processing and the plurality of processor cores. Direct direct memory access transfer between the internal memory and the external memory connected to the external bus by arbitrating direct memory access transfer requests from the internal memory and a part or all of the processor core Arbitrarily request to use the external bus from the memory access controller, part or all of the processor core and the direct memory access controller, and the external to the one of the processor core or the direct memory access controller Outside to allow access to the bus Includes a memory interface, a.

この構成では、プロセッサコアの一部または全部は、外部メモリインタフェースに直接外部バス使用要求を発行する機能と、ダイレクトメモリアクセスコントローラに対してダイレクトメモリアクセス転送要求を行う機能と、の両方を備える。従って、離散したアドレスにランダムにデータアクセスを行う場合などは直接外部メモリインタフェースに外部バス使用要求を発行し、データのブロック転送や仮想記憶管理機構が要求するページスワップなどを行う場合にはダイレクトメモリアクセスコントローラにダイレクトメモリアクセス転送要求を発行することで、外部メモリへの効率的なアクセスが可能となる。   In this configuration, part or all of the processor core has both a function of issuing an external bus use request directly to the external memory interface and a function of issuing a direct memory access transfer request to the direct memory access controller. Therefore, when random data access is performed to discrete addresses, an external bus use request is issued directly to the external memory interface, and direct memory is used when performing block transfer of data or page swap required by the virtual memory management mechanism. By issuing a direct memory access transfer request to the access controller, efficient access to the external memory becomes possible.

上記マルチプロセッサにおいて、前記ダイレクトアクセスメモリコントローラは、各々が、対応する前記プロセッサコアからの前記ダイレクトメモリアクセス転送要求を格納する複数のバッファと、複数の前記バッファが送出した複数の前記ダイレクトメモリアクセス転送要求を調停して、いずれか1つの前記ダイレクトメモリアクセス転送要求を出力する調停手段と、複数の前記ダイレクトメモリアクセス転送要求を保持でき、前記調停手段が出力した前記ダイレクトメモリアクセス転送要求を受け取った順に出力するキューと、前記キューが出力した前記ダイレクトメモリアクセス転送要求に応じたダイレクトメモリアクセス転送を実行するダイレクトメモリアクセス転送実行手段と、を含む。   In the multiprocessor, the direct access memory controller includes a plurality of buffers each storing the direct memory access transfer request from the corresponding processor core, and a plurality of the direct memory access transfers sent by the plurality of buffers. Arbitration means that arbitrates the request and outputs any one of the direct memory access transfer requests, and can hold a plurality of the direct memory access transfer requests, and has received the direct memory access transfer request output by the arbitration means A queue that sequentially outputs; and a direct memory access transfer execution unit that executes a direct memory access transfer according to the direct memory access transfer request output by the queue.

この構成では、複数のプロセッサコアからの複数のダイレクトメモリアクセス転送要求を保持する複数のバッファおよびキューを備えている。従って、ダイレクトメモリアクセス転送実行中であっても、ダイレクトメモリアクセス転送要求を受け付けることができる。特に、ダイレクトメモリアクセスチャンネルが1つしかない場合に有効である。   This configuration includes a plurality of buffers and queues that hold a plurality of direct memory access transfer requests from a plurality of processor cores. Therefore, a direct memory access transfer request can be accepted even during direct memory access transfer execution. This is particularly effective when there is only one direct memory access channel.

上記マルチプロセッサにおいて、前記外部メモリインタフェースは、前記外部バスの使用要求を行うことができる前記プロセッサコアおよび前記ダイレクトメモリアクセスコントローラの優先順位を定めた優先順位テーブルに従って調停を行い、前記優先順位テーブルは複数用意され、互いに優先順位が異なっている。   In the multiprocessor, the external memory interface performs arbitration according to a priority table that defines priorities of the processor core and the direct memory access controller that can make a request to use the external bus, and the priority table is A plurality are prepared, and the priorities are different from each other.

この構成によれば、優先順位が固定されないので、ある優先順位テーブルで優先順位が低く設定されているプロセッサコアであっても、他の優先順位テーブルで優先順位を高く設定することができ、当該プロセッサコアの外部バス使用要求が、システムに不都合を生じるほど長く待たされることを防止できる。ダイレクトメモリアクセスコントローラについても同様である。   According to this configuration, since the priority order is not fixed, even a processor core whose priority order is set low in a certain priority order table can set a high priority order in another priority order table. It is possible to prevent a request for using the external bus of the processor core from waiting for such a long time as to cause a problem for the system. The same applies to the direct memory access controller.

このマルチプロセッサにおいて、前記外部メモリインタフェースは、所定条件が成立したときに、前記優先順位テーブルを切り替えて調停を行う。   In this multiprocessor, the external memory interface performs arbitration by switching the priority table when a predetermined condition is satisfied.

この構成によれば、目的に応じた所定条件を設定することにより、目的に応じて優先順位テーブルを切り替えることができる。   According to this configuration, the priority table can be switched according to the purpose by setting a predetermined condition according to the purpose.

前記所定条件は、所定の前記プロセッサコアまたは前記ダイレクトメモリアクセスコントローラからの前記外部バスの使用要求が所定時間待たされたことである。   The predetermined condition is that a request for using the external bus from the predetermined processor core or the direct memory access controller is waited for a predetermined time.

この構成によれば、所定のプロセッサコアまたはダイレクトメモリアクセスコントローラからの外部バスの使用要求が、システムに不都合が生じるほど長く待たされることを防止できる。   According to this configuration, it is possible to prevent a request for using the external bus from a predetermined processor core or direct memory access controller from waiting for such a long time as to cause a problem in the system.

前記外部バスインタフェースは、少なくとも1つの前記プロセッサコアがアクセス可能な制御レジスタを含み、前記少なくとも1つのプロセッサコアにより前記制御レジスタに所定値が設定されたことを追加条件として、前記優先順位テーブルの切り替えを行うこともできる。   The external bus interface includes a control register accessible by at least one of the processor cores, and the priority table is switched with an additional condition that a predetermined value is set in the control register by the at least one processor core. Can also be done.

この構成によれば、1つの優先順位テーブルに固定して調停を行うのか、あるいは、複数の優先順位テーブルを切り替えながら調停を行うのか、を動的に設定できる。   According to this configuration, it is possible to dynamically set whether to perform arbitration while fixing to one priority table, or to perform arbitration while switching a plurality of priority tables.

本発明の第2の観点によると、マルチプロセッサは、外部バスへのアクセスが可能なマルチプロセッサであって、各々演算処理を実行する複数のプロセッサコアと、前記プロセッサコアの一部または全部からの前記外部バスの使用要求を調停して、いずれか1つの前記プロセッサコアに対して前記外部バスへのアクセスを許可する外部メモリインタフェースと、を備え、前記外部メモリインタフェースは、異なる複数のメモリインタフェースを含み、前記複数のメモリインタフェースのいずれか1つを選択し、選択した前記メモリインタフェースを通じて、前記外部バスに接続される外部メモリであって、選択した前記メモリインタフェースに対応するタイプの前記外部メモリへのアクセスを行う。   According to a second aspect of the present invention, the multiprocessor is a multiprocessor capable of accessing an external bus, and includes a plurality of processor cores each executing arithmetic processing, and a part or all of the processor cores. An external memory interface that arbitrates use requests of the external bus and permits any one of the processor cores to access the external bus, and the external memory interface includes a plurality of different memory interfaces. An external memory connected to the external bus through the selected memory interface, the external memory being of a type corresponding to the selected memory interface. Access.

この構成では、外部メモリにアクセスするための機構は外部メモリインタフェースが備えている。従って、異なるタイプのメモリインタフェースをサポートする場合でも、プロセッサコアの各々が、複数のメモリインタフェースを備える必要が無い。このため、回路構成の簡略化が可能になり、コストの低減を図ることができる。   In this configuration, the external memory interface has a mechanism for accessing the external memory. Therefore, even when different types of memory interfaces are supported, it is not necessary for each of the processor cores to include a plurality of memory interfaces. For this reason, the circuit configuration can be simplified, and the cost can be reduced.

上記マルチプロセッサにおいて、前記外部バスのアドレス空間は、複数の領域に分割され、前記領域ごとに、前記外部メモリのタイプを設定可能であり、前記外部メモリインタフェースは、前記外部バスへのアクセスを許可された前記プロセッサコアが発行しているアドレスを含む前記領域に設定された前記外部メモリのタイプに対応する前記メモリインタフェースを選択し、選択した前記メモリインタフェースを通じて、当該外部メモリへのアクセスを行う。   In the multiprocessor, the address space of the external bus is divided into a plurality of areas, and the type of the external memory can be set for each area, and the external memory interface permits access to the external bus. The memory interface corresponding to the type of the external memory set in the area including the address issued by the processor core is selected, and the external memory is accessed through the selected memory interface.

この構成によれば、外部バスのアドレス空間の領域ごとに、外部メモリのタイプを設定できるので、異なる複数のタイプの外部メモリを接続できる。   According to this configuration, since the type of the external memory can be set for each area of the address space of the external bus, a plurality of different types of external memories can be connected.

このマルチプロセッサにおいて、前記外部メモリインタフェースは、前記複数の領域に対応する複数の第1の制御レジスタを含み、前記複数の第1の制御レジスタには、少なくとも1つの前記プロセッサコアがアクセス可能であり、前記少なくとも1つのプロセッサコアが前記第1の制御レジスタに値を設定することによって、その第1の制御レジスタに対応する前記領域に対して、前記外部メモリのタイプが設定される。   In this multiprocessor, the external memory interface includes a plurality of first control registers corresponding to the plurality of areas, and the plurality of first control registers are accessible by at least one processor core. When the at least one processor core sets a value in the first control register, the type of the external memory is set for the area corresponding to the first control register.

この構成によれば、プロセッサコアによって、動的に、領域ごとに外部メモリのタイプを設定できる。   According to this configuration, the type of the external memory can be dynamically set for each area by the processor core.

上記マルチプロセッサにおいて、前記外部バスのアドレス空間は、複数の領域に分割され、前記領域ごとに、前記外部バスのデータバス幅を設定可能である。この構成によれば、データバス幅の異なる複数の外部メモリを接続できる。   In the multiprocessor, the address space of the external bus is divided into a plurality of areas, and the data bus width of the external bus can be set for each area. According to this configuration, a plurality of external memories having different data bus widths can be connected.

このマルチプロセッサにおいて、前記外部メモリインタフェースは、前記複数の領域に対応する複数の第2の制御レジスタを含み、前記複数の第2の制御レジスタには、少なくとも1つの前記プロセッサコアがアクセス可能であり、前記少なくとも1つのプロセッサコアが前記第2の制御レジスタに値を設定することによって、その第2の制御レジスタに対応する前記領域に対して、前記外部バスのデータバス幅が設定される。   In the multiprocessor, the external memory interface includes a plurality of second control registers corresponding to the plurality of areas, and the plurality of second control registers can be accessed by at least one processor core. When the at least one processor core sets a value in the second control register, the data bus width of the external bus is set for the area corresponding to the second control register.

この構成によれば、プロセッサコアによって、動的に、領域ごとに外部バスのデータバス幅を設定できる。   According to this configuration, the data bus width of the external bus can be dynamically set for each area by the processor core.

上記マルチプロセッサにおいて、前記外部バスのアドレス空間は、複数の領域に分割され、前記領域ごとに、前記外部メモリに対するアクセスタイミングを設定可能である。この構成によれば、アクセスタイミングの異なる複数の外部メモリを接続できる。   In the multiprocessor, the address space of the external bus is divided into a plurality of areas, and the access timing to the external memory can be set for each of the areas. According to this configuration, a plurality of external memories having different access timings can be connected.

このマルチプロセッサにおいて、前記外部メモリインタフェースは、前記複数の領域に対応する複数の第3の制御レジスタを含み、前記複数の第3の制御レジスタには、少なくとも1つの前記プロセッサコアがアクセス可能であり、前記少なくとも1つのプロセッサコアが前記第3の制御レジスタに値を設定することによって、その第3の制御レジスタに対応する前記領域に対して、前記外部メモリに対するアクセスタイミングが設定される。   In this multiprocessor, the external memory interface includes a plurality of third control registers corresponding to the plurality of areas, and the plurality of third control registers can be accessed by at least one processor core. When the at least one processor core sets a value in the third control register, an access timing to the external memory is set for the area corresponding to the third control register.

この構成によれば、プロセッサコアによって、動的に、領域ごとに外部メモリに対するアクセスタイミングを設定できる。   According to this configuration, the access timing for the external memory can be dynamically set for each area by the processor core.

上記マルチプロセッサにおいて、前記外部メモリインタフェースは、少なくとも1つの前記プロセッサコアがアクセス可能な第4の制御レジスタを含み、前記少なくとも1つのプロセッサコアが前記第4の制御レジスタに値を設定することによって、前記領域の境界が設定される。この構成によれば、プロセッサコアによって、領域の境界を動的に設定できる。   In the multiprocessor, the external memory interface includes a fourth control register accessible by at least one of the processor cores, and the at least one processor core sets a value in the fourth control register. The boundary of the area is set. According to this configuration, the boundary of the region can be dynamically set by the processor core.

本発明の第3の観点によると、マルチプロセッサは、各々演算処理を実行する複数のプロセッサコアと、前記複数のプロセッサコアによって共有される内部メモリと、前記プロセッサコア及び前記内部メモリ間のデータ転送を行う第1のデータ転送経路と、前記プロセッサコアが他の前記プロセッサコアを制御するためのデータ転送を行う第2のデータ転送経路と、を備える。   According to a third aspect of the present invention, the multiprocessor includes a plurality of processor cores each executing arithmetic processing, an internal memory shared by the plurality of processor cores, and data transfer between the processor core and the internal memory. And a second data transfer path for performing data transfer for the processor core to control the other processor core.

この構成では、共有の内部メモリに対するアクセスの経路と、プロセッサコアの制御のための経路と、が分離されているので、プロセッサコアに対する制御に起因する内部メモリのバスバンド幅の浪費を防止できる。   In this configuration, the path for accessing the shared internal memory and the path for controlling the processor core are separated from each other, so that waste of the bus bandwidth of the internal memory due to the control for the processor core can be prevented.

上記マルチプロセッサにおいて、前記第2のデータ転送経路を用いて、前記他のプロセッサコアを制御する前記プロセッサコアは、プログラム命令を解釈し実行する中央演算処理装置である。この構成によれば、ソフトウェアにより、動的に、各プロセッサコアの制御が可能になる。   In the multiprocessor, the processor core that controls the other processor core using the second data transfer path is a central processing unit that interprets and executes a program instruction. According to this configuration, each processor core can be dynamically controlled by software.

以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。また、本明細書及び図面において、信号のどのビットかを示す必要があるときは、信号名の後に、[a:b]あるいは[a]を付する。[a:b]は、その信号の第a番目のビットから第b番目のビットを意味し、[a]は、その信号の第a番目のビットを意味する。「0b」は2進数を、「0x」は16進数を意味する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals, and the description thereof is incorporated. In the present specification and drawings, when it is necessary to indicate which bit of a signal, [a: b] or [a] is added after the signal name. [A: b] means the a-th bit to the b-th bit of the signal, and [a] means the a-th bit of the signal. “0b” means a binary number, and “0x” means a hexadecimal number.

図1は、本発明の実施の形態によるマルチメディアプロセッサ1の内部構成を示すブロック図である。図1に示すように、このマルチメディアプロセッサは、外部メモリインタフェース3、DMAC(direct memory access controller)4、中央演算処理装置(以下、「CPU」と呼ぶ。)5、CPUローカルRAM7、レンダリングプロセッシングユニット(以下、「RPU」と呼ぶ。)9、カラーパレットRAM11、サウンドプロセシングユニット(以下、「SPU」と呼ぶ。)13、SPUローカルRAM15、ジオメトリエンジン(以下、「GE」と呼ぶ。)17、Yソーティングユニット(以下、「YSU」と呼ぶ。)19、外部インタフェースブロック21、メインRAMアクセスアービタ23、メインRAM25、I/Oバス27、ビデオDAC(digital to analog converter)29、オーディオDACブロック31、及びA/Dコンバータ(以下、「ADC」と呼ぶ。)33を具備する。外部メモリインタフェース3は、メモリインタフェース(MIF)40,41及び42を含む。CPU5は、IPL(initial program loader)35を含む。   FIG. 1 is a block diagram showing an internal configuration of a multimedia processor 1 according to the embodiment of the present invention. As shown in FIG. 1, this multimedia processor includes an external memory interface 3, a DMAC (direct memory access controller) 4, a central processing unit (hereinafter referred to as “CPU”) 5, a CPU local RAM 7, and a rendering processing unit. (Hereinafter referred to as “RPU”) 9, color palette RAM 11, sound processing unit (hereinafter referred to as “SPU”) 13, SPU local RAM 15, geometry engine (hereinafter referred to as “GE”) 17, Y Sorting unit (hereinafter referred to as “YSU”) 19, external interface block 21, main RAM access arbiter 23, main RAM 25, I / O bus 27, video DAC (digital to analog con) Erter) 29, audio DAC block 31, and A / D converter (hereinafter, referred to as "ADC".) 33 comprises a. The external memory interface 3 includes memory interfaces (MIF) 40, 41 and 42. The CPU 5 includes an IPL (initial program loader) 35.

ここで、CPU5、RPU9、SPU9、GE17、及びYSU19をそれぞれプロセッサコアと呼ぶこともある。また、メインRAM25及び外部メモリ50を区別して説明する必要がないときは、「メモリMEM」と表記する。   Here, CPU5, RPU9, SPU9, GE17, and YSU19 may be referred to as a processor core. Further, when it is not necessary to distinguish between the main RAM 25 and the external memory 50, they are referred to as “memory MEM”.

本発明の特徴の1つである外部メモリインタフェース3は、外部バス51を介して、外部メモリ50からのデータの読み出し、及び外部メモリ50へのデータの書き込みを司る。メモリインタフェース40は、スタンダード非同期インタフェース(以下、「NORインタフェース」と呼ぶ。)であり、メモリインタフェース41は、ページモード付スタンダード非同期インタフェース(以下、「ページモード付NORインタフェース」と呼ぶ。)であり、メモリインタフェース42は、NANDフラッシュEEPROM互換インタフェース(以下、「NANDインタフェース」と呼ぶ。)である。外部メモリインタフェース3については、後で詳述する。   The external memory interface 3, which is one of the features of the present invention, is responsible for reading data from the external memory 50 and writing data to the external memory 50 via the external bus 51. The memory interface 40 is a standard asynchronous interface (hereinafter referred to as “NOR interface”), and the memory interface 41 is a standard asynchronous interface with page mode (hereinafter referred to as “NOR interface with page mode”). The memory interface 42 is a NAND flash EEPROM compatible interface (hereinafter referred to as “NAND interface”). The external memory interface 3 will be described in detail later.

本発明の特徴の1つであるDMAC4は、メインRAM25と、外部バス51に接続された外部メモリ50と、の間でDMA転送を行う。DMAC4については、後で詳述する。   The DMAC 4 which is one of the features of the present invention performs DMA transfer between the main RAM 25 and the external memory 50 connected to the external bus 51. The DMAC 4 will be described in detail later.

CPU5は、メモリMEMに格納されたプログラムを実行して、各種演算やシステム全体の制御を行う。また、CPU5は、DMAC4にプログラム及びデータの転送要求を行うこともできるし、DMAC4を介さずに、外部メモリ50から直接プログラムコードをフェッチしたり、外部メモリ50に直接データアクセスを行うこともできる。IPL35は、電源が投入された時またはリセットされた時に一番最初に起動するプログラムを外部メモリ50からロードする。   The CPU 5 executes programs stored in the memory MEM to perform various calculations and control of the entire system. Further, the CPU 5 can make a program and data transfer request to the DMAC 4, and can directly fetch the program code from the external memory 50 or directly access the data to the external memory 50 without going through the DMAC 4. . The IPL 35 loads a program to be started first from the external memory 50 when the power is turned on or reset.

本発明の特徴の1つであるI/Oバス27は、CPU5をバスマスタとするシステム制御用のバスであり、バススレイブである各機能ユニット(外部メモリインタフェース3、RPU9、SPU13、GE17、YSU19、及び外部インタフェースブロック21)の制御レジスタ及びローカルRAM7,11,15へのアクセスに用いられる。このようにして、これらの機能ユニットは、I/Oバス27を通じて、CPU5により制御される。   The I / O bus 27 which is one of the features of the present invention is a system control bus having the CPU 5 as a bus master, and each functional unit (external memory interface 3, RPU9, SPU13, GE17, YSU19, bus slave). And the external interface block 21) are used to access the control registers and the local RAMs 7, 11, and 15. In this way, these functional units are controlled by the CPU 5 through the I / O bus 27.

CPUローカルRAM7は、CPU5専用のRAMであり、サブルーチンコールや割り込み時におけるデータの退避などを行うためのスタック領域、及びCPU5のみが扱う変数の格納領域等として使用される。   The CPU local RAM 7 is a RAM dedicated to the CPU 5, and is used as a stack area for saving data at the time of a subroutine call or interruption, a storage area for variables handled only by the CPU 5, and the like.

RPU9は、ポリゴン及びスプライトから構成される三次元イメージをリアルタイムに生成する。具体的には、RPU9は、YSU19によるソート済みの、ポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、メインRAM25から読み出し、所定の処理を実行して、スクリーン(表示画面)のスキャンに合わせて水平ラインごとにイメージを生成する。生成されたイメージは、コンポジットビデオ信号波形を示すデータストリームに変換され、ビデオDAC29に出力される。また、RPU9は、DMAC4に対して、ポリゴン及びスプライトのテクスチャパターンデータの取り込みのためのDMA転送要求を行う機能を有する。   The RPU 9 generates a three-dimensional image composed of polygons and sprites in real time. Specifically, the RPU 9 reads each structure instance of the polygon structure array and each structure instance of the sprite structure array sorted by the YSU 19 from the main RAM 25, executes a predetermined process, and executes a screen ( An image is generated for each horizontal line according to the scan of the display screen. The generated image is converted into a data stream indicating a composite video signal waveform and output to the video DAC 29. Further, the RPU 9 has a function of making a DMA transfer request to the DMAC 4 for taking in texture pattern data of polygons and sprites.

テクスチャパターンデータとは、ポリゴンまたはスプライトに貼り付けられる2次元の画素配列データであり、各画素データは、カラーパレットRAM11のエントリを指定するための情報の一部である。以降、テクスチャパターンデータの画素を「テクセル」と呼称し、スクリーンに表示されるイメージを構成する画素を指す「ピクセル」とは区別して使用する。   The texture pattern data is two-dimensional pixel array data that is pasted on a polygon or sprite. Each pixel data is a part of information for designating an entry in the color palette RAM 11. Hereinafter, the pixels of the texture pattern data are referred to as “texels”, and are used separately from “pixels” that indicate the pixels constituting the image displayed on the screen.

ポリゴン構造体配列は、多角形状のグラフィック要素であるポリゴンのための構造体配列であり、スプライト構造体配列は、スクリーンに平行な矩形のグラフィック要素であるスプライトのための構造体配列である。ポリゴン構造体配列の要素を、「ポリゴン構造体インスタンス」と呼び、スプライト構造体配列の要素を、「スプライト構造体インスタンス」と呼ぶ。ただし、両者を区別して説明する必要がないときは、単に「構造体インスタンス」と呼ぶこともある。   The polygon structure array is a structure array for polygons that are polygonal graphic elements, and the sprite structure array is a structure array for sprites that are rectangular graphic elements parallel to the screen. The elements of the polygon structure array are called “polygon structure instances”, and the elements of the sprite structure array are called “sprite structure instances”. However, when it is not necessary to distinguish between the two, they may be simply referred to as “structure instances”.

ポリゴン構造体配列に格納された各ポリゴン構造体インスタンスは、ポリゴンごとの表示情報(テクスチャマッピングモードでのテクスチャパターンデータ格納アドレス及びグーローシェーディングモードでのカラーデータ(RGBのカラーコンポーネント)を含む。)であり、1つのポリゴン構造体インスタンスに1つのポリゴンが対応している。スプライト構造体配列に格納された各スプライト構造体インスタンスは、スプライトごとの表示情報(テクスチャパターンデータ格納アドレスを含む。)であり、1つのスプライト構造体インスタンスに1つのスプライトが対応している。   Each polygon structure instance stored in the polygon structure array includes display information for each polygon (including texture pattern data storage addresses in texture mapping mode and color data (RGB color components) in Gouraud shading mode). One polygon corresponds to one polygon structure instance. Each sprite structure instance stored in the sprite structure array is display information for each sprite (including the texture pattern data storage address), and one sprite corresponds to one sprite structure instance.

ビデオDAC29は、アナログのビデオ信号を生成するためのデジタル/アナログ変換器である。ビデオDAC29は、RPU9から入力されたデータストリームをアナログのコンポジットビデオ信号に変換し、ビデオ信号出力端子(図示せず)からテレビジョンモニタ等(図示せず)に出力する。   The video DAC 29 is a digital / analog converter for generating an analog video signal. The video DAC 29 converts the data stream input from the RPU 9 into an analog composite video signal, and outputs it from a video signal output terminal (not shown) to a television monitor or the like (not shown).

カラーパレットRAM11は、本実施の形態では512色すなわち512エントリのカラーパレットからなる。RPU9は、テクスチャパターンデータに含まれるテクセルデータをカラーパレットのエントリを指定するインデックスの一部として、カラーパレットRAM11を参照し、テクスチャパターンデータを、カラーデータ(RGBのカラーコンポーネント)に変換する。   In the present embodiment, the color palette RAM 11 is composed of a color palette of 512 colors, that is, 512 entries. The RPU 9 refers to the color palette RAM 11 using the texel data included in the texture pattern data as part of an index for designating the entry of the color palette, and converts the texture pattern data into color data (RGB color components).

SPU13は、PCM(pulse code modulation)波形データ(以下、「ウェーブデータ」と呼ぶ。)、アンプリチュードデータ、及びメインボリュームデータを生成する。具体的には、SPU13は、最大64チャンネル分のウェーブデータを時分割多重するとともに、最大64チャンネル分のエンベロープデータを時分割多重してチャンネルボリュームデータと乗算し、アンプリチュードデータを生成する。そして、SPU13は、メインボリュームデータ、時分割多重されたウェーブデータ、及び時分割多重されたアンプリチュードデータを、オーディオDACブロック31に出力する。また、SPU13は、DMAC4に対して、ウェーブデータ及びエンベロープデータの取り込みのためのDMA転送要求を行う機能を有する。   The SPU 13 generates PCM (pulse code modulation) waveform data (hereinafter referred to as “wave data”), amplitude data, and main volume data. Specifically, the SPU 13 time-division multiplexes wave data for a maximum of 64 channels, time-division multiplexes envelope data for a maximum of 64 channels, and multiplies the channel volume data to generate amplitude data. Then, the SPU 13 outputs the main volume data, the time-division multiplexed wave data, and the time-division multiplexed amplitude data to the audio DAC block 31. Further, the SPU 13 has a function of making a DMA transfer request for taking in wave data and envelope data to the DMAC 4.

オーディオDACブロック31は、SPU13から入力されたウェーブデータ、アンプリチュードデータ、及びメインボリュームデータをそれぞれアナログ信号に変換し、結果をアナログ乗算して、アナログオーディオ信号を生成する。このアナログオーディオ信号は、オーディオ信号出力端子(図示せず)からテレビジョンモニタ等(図示せず)のオーディオ入力端子(図示せず)に出力される。   The audio DAC block 31 converts the wave data, amplitude data, and main volume data input from the SPU 13 into analog signals, and multiplies the results to generate analog audio signals. This analog audio signal is output from an audio signal output terminal (not shown) to an audio input terminal (not shown) of a television monitor or the like (not shown).

SPUローカルRAM15は、SPU13がウェーブ再生及びエンベロープ生成を行う際に用いるパラメータ(例えば、ウェーブデータやエンベロープデータの格納アドレスやピッチ情報など)を格納する。   The SPU local RAM 15 stores parameters used when the SPU 13 performs wave reproduction and envelope generation (for example, storage addresses and pitch information of wave data and envelope data).

GE17は、三次元イメージを表示するための幾何演算を実行する。具体的には、GE17は、行列積、ベクトルアフィン変換、ベクトル直交変換、透視投影変換、頂点明度/ポリゴン明度計算(ベクトル内積)、及びポリゴン裏面カリング処理(ベクトル外積)などの演算を実行する。   The GE 17 executes a geometric operation for displaying a three-dimensional image. Specifically, the GE 17 performs operations such as matrix product, vector affine transformation, vector orthogonal transformation, perspective projection transformation, vertex lightness / polygon lightness calculation (vector inner product), and polygon back surface culling processing (vector outer product).

YSU19は、メインRAM25に格納されているポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、ソートルール1〜4に従ってソートする。この場合、ポリゴン構造体配列とスプライト構造体配列とで、別個にソートが行われる。   The YSU 19 sorts each structure instance of the polygon structure array and each structure instance of the sprite structure array stored in the main RAM 25 according to the sorting rules 1 to 4. In this case, the polygon structure array and the sprite structure array are separately sorted.

ソートルール1は、最小Y座標が小さい順に、各ポリゴン構造体インスタンスを並べ替えることである。最小Y座標とは、ポリゴンの3頂点のY座標のうち、最も小さいY座標のことである。Y座標はスクリーンの垂直座標であり、下向きが正方向である。ソートルール2は、最小Y座標が同じである複数のポリゴンについては、デプス値が大きい順に、各ポリゴン構造体インスタンスを並べることである。   Sort rule 1 is to rearrange the polygon structure instances in ascending order of the minimum Y coordinate. The minimum Y coordinate is the smallest Y coordinate among the Y coordinates of the three vertices of the polygon. The Y coordinate is the vertical coordinate of the screen, and the downward direction is the positive direction. Sort rule 2 is to arrange the polygon structure instances in descending order of the depth value for a plurality of polygons having the same minimum Y coordinate.

ただし、YSU19は、スクリーンの先頭ラインに表示されるピクセルを持つ複数のポリゴンについては、最小Y座標が異なっている場合でも、それらが同一であるとみなして、ソートルール1ではなく、ソートルール2に従って、各ポリゴン構造体インスタンスの並べ替えを行う。つまり、スクリーンの先頭ラインに表示されるピクセルを持つポリゴンが複数存在する場合は、最小Y座標が同一であるとみなして、デプス値が大きい順に並べ替えられる。これがソートルール3である。   However, the YSU 19 regards a plurality of polygons having pixels displayed on the first line of the screen as being the same even if the minimum Y coordinate is different, so that the sorting rule 2 is not the sorting rule 1. According to the above, the polygon structure instances are rearranged. That is, when there are a plurality of polygons having pixels displayed on the top line of the screen, the minimum Y coordinate is regarded as the same, and they are rearranged in descending order of the depth value. This is the sort rule 3.

インタレーススキャンの場合でも、ソートルール1〜3が適用される。ただし、奇数フィールドを表示するためのソートでは、奇数ラインに表示されるポリゴンの最小Y座標及び/又はその奇数ラインの1つ前の偶数ラインに表示されるポリゴンの最小Y座標が同一であるとみなして、ソートルール2によるソートを行う。ただし、先頭の奇数ラインは除く。なぜなら、その1つ前の偶数ラインが存在しないからである。一方、偶数フィールドを表示するためのソートでは、偶数ラインに表示されるポリゴンの最小Y座標及び/又はその偶数ラインの1つ前の奇数ラインに表示されるポリゴンの最小Y座標が同一であるとみなして、ソートルール2によるソートを行う。これがソートルール4である。   Sort rules 1 to 3 are applied even in the case of interlaced scanning. However, in the sorting for displaying the odd field, the minimum Y coordinate of the polygon displayed on the odd line and / or the minimum Y coordinate of the polygon displayed on the even line immediately before the odd line are the same. As a result, the sorting by the sorting rule 2 is performed. However, the first odd line is excluded. This is because there is no previous even line. On the other hand, in the sorting for displaying the even field, the minimum Y coordinate of the polygon displayed on the even line and / or the minimum Y coordinate of the polygon displayed on the odd line immediately before the even line are the same. As a result, the sorting by the sorting rule 2 is performed. This is sort rule 4.

スプライトに関するソートルール1〜4は、それぞれポリゴンに関するソートルール1〜4と同様である。   Sort rules 1 to 4 for sprites are the same as sort rules 1 to 4 for polygons, respectively.

外部インタフェースブロック21は、周辺装置54とのインタフェースであり、24チャンネルのプログラマブルなデジタル入出力(I/O)ポートを含む。24チャンネルのI/Oポートの各々は、4チャンネル分のマウスインタフェース機能、4チャンネル分のライトガンインタフェース機能、2チャンネル分の汎用タイマ/カウンタ、1チャンネル分の調歩同期式シリアルインタフェース機能、1チャンネル分の汎用パラレル/シリアル変換ポート機能のうち1または複数に内部接続されている。   The external interface block 21 is an interface with the peripheral device 54 and includes a 24-channel programmable digital input / output (I / O) port. Each 24 channel I / O port has 4 channels of mouse interface function, 4 channels of light gun interface function, 2 channels of general-purpose timer / counter, 1 channel of asynchronous serial interface function, 1 channel Are internally connected to one or more of the general-purpose parallel / serial conversion port functions.

ADC33は、4チャンネルのアナログ入力ポートに接続され、これらを介して、アナログ入力装置52から入力されたアナログ信号をデジタル信号に変換する。例えば、マイク音声等のアナログ入力信号をサンプリングしてデジタルデータに変換する。   The ADC 33 is connected to 4-channel analog input ports, and converts the analog signal input from the analog input device 52 into a digital signal via these. For example, an analog input signal such as a microphone sound is sampled and converted into digital data.

本発明の特徴の1つであるメインRAMアクセスアービタ23は、機能ユニット(CPU5、RPU9、GE17、YSU19、DMAC4、及び外部インタフェースブロック21(調歩同期式シリアルポートあるいは汎用パラレル/シリアル変換ポート))からのメインRAM25へのアクセスを調停して、いずれかの機能ユニットにアクセス許可を出す。   The main RAM access arbiter 23 which is one of the features of the present invention is from a functional unit (CPU 5, RPU 9, GE 17, YSU 19, DMAC 4, and external interface block 21 (asynchronous serial port or general-purpose parallel / serial conversion port)). The access to the main RAM 25 is arbitrated, and access permission is given to one of the functional units.

メインRAM25は、CPU5のワーク領域、変数格納領域、および仮想記憶管理領域等として利用される。また、メインRAM25は、CPU5が他の機能ユニットに受け渡すデータの格納領域、RPU9及びSPU13が外部メモリ50からDMAによって取得したデータの格納領域、GE17及びYSU19の入力データ及び出力データの格納領域等としても使用される。   The main RAM 25 is used as a work area, a variable storage area, a virtual storage management area, and the like for the CPU 5. Further, the main RAM 25 is a storage area for data that the CPU 5 delivers to other functional units, a storage area for data that the RPU 9 and SPU 13 have acquired from the external memory 50 by DMA, a storage area for input data and output data for the GE 17 and YSU 19, etc. Also used as

外部バス51は、外部メモリ50にアクセスするためのバスである。IPL35、CPU5、およびDMAC4から、外部メモリインタフェース3を介してアクセスされる。外部バス51のアドレスバスは、30ビットから成り、最大で1Gバイト(=8Gビット)の外部メモリ50を接続することができる。外部バス51のデータバスは、16ビットから成り、8ビット又は16ビットのデータバス幅を持つ外部メモリ50を接続できる。異なるデータバス幅を持つ外部メモリを同時に接続可能であり、アクセスする外部メモリによってデータバス幅を自動的に切り替える機能が備えられる。   The external bus 51 is a bus for accessing the external memory 50. It is accessed from the IPL 35, the CPU 5, and the DMAC 4 via the external memory interface 3. The address bus of the external bus 51 is composed of 30 bits, and an external memory 50 of 1 Gbyte (= 8 Gbit) at the maximum can be connected. The data bus of the external bus 51 is composed of 16 bits, and can connect an external memory 50 having a data bus width of 8 bits or 16 bits. External memories having different data bus widths can be connected at the same time, and a function of automatically switching the data bus width according to the external memory to be accessed is provided.

図2は、外部バス51のアドレス空間の説明図である。図2に示すように、外部バス51のアドレス空間は、2種類の異なる外部メモリを接続できるように、2つの領域に分割されており、それぞれ、プライマリメモリ領域及びセカンダリメモリ領域と呼ぶ。この領域ごとに、メモリインタフェース40〜42のいずれか1つが設定される。もちろん、2つの領域に同じメモリインタフェースを設定することもできるし、異なるメモリインタフェースを設定することもできる。以下、外部メモリインタフェース3について詳細に説明していく。   FIG. 2 is an explanatory diagram of the address space of the external bus 51. As shown in FIG. 2, the address space of the external bus 51 is divided into two areas so that two different types of external memories can be connected, and are called a primary memory area and a secondary memory area, respectively. One of the memory interfaces 40 to 42 is set for each area. Of course, the same memory interface can be set in the two areas, or different memory interfaces can be set. Hereinafter, the external memory interface 3 will be described in detail.

図1に戻って、メモリインタフェース40、つまり、NORインタフェースとは、アドレス及びデータの各ビットがパラレルに外部メモリインタフェース3及び外部メモリ50間で接続され、信号間の同期のためのクロック信号を持たないメモリインタフェースのことである。スタンダードなマスクROM、スタンダードなSRAM、及びNORフラッシュEEPROMなどが、NORインタフェースを備えている。従って、外部メモリ50として、これらのメモリを使用できる。   Returning to FIG. 1, the memory interface 40, that is, the NOR interface is such that each bit of address and data is connected in parallel between the external memory interface 3 and the external memory 50, and has a clock signal for synchronization between signals. There is no memory interface. Standard mask ROM, standard SRAM, NOR flash EEPROM, and the like have a NOR interface. Therefore, these memories can be used as the external memory 50.

メモリインタフェース41、つまり、ページモード付NORインタフェースとは、ページモードをサポートしているNORインタフェースのことである。従って、NORインタフェースを備え、ページモードをサポートしているメモリを、外部メモリ50として使用できる。一般に、ページモードとは、メモリに設定されているページ内でアクセスが連続した場合に、ページ内の2回目以降のアクセスタイムを短縮できるアクセスモードのことである。ページのサイズは、メモリの品種によって異なる。   The memory interface 41, that is, the NOR interface with page mode is a NOR interface that supports the page mode. Therefore, a memory having a NOR interface and supporting the page mode can be used as the external memory 50. In general, the page mode is an access mode in which the access time after the second time in the page can be shortened when accesses are continued in the page set in the memory. The page size varies depending on the type of memory.

メモリインタフェース42、つまり、NANDインタフェースとは、NANDフラッシュEEPROMのインタフェースと互換性を持つメモリインタフェースである。但し、マルチプロセッサ1のNANDインタフェースは、エラー訂正のためのハードウェアを備えていないため、NANDフラッシュEEPROMをそのまま接続することはできず、NANDフラッシュEEPROM互換マスクROM等との接続が可能である。従って、外部メモリ50として、それらのメモリを使用できる。   The memory interface 42, that is, the NAND interface is a memory interface compatible with the interface of the NAND flash EEPROM. However, since the NAND interface of the multiprocessor 1 does not include hardware for error correction, the NAND flash EEPROM cannot be connected as it is, and can be connected to a NAND flash EEPROM compatible mask ROM or the like. Therefore, those memories can be used as the external memory 50.

外部メモリインタフェース3は、後述のEBI優先順位テーブルに従って、IPL35、CPU5、及びDMAC4からの外部バスアクセス要求要因(外部バス51へのアクセスを要求する要因)を調停して、いずれか1つの外部バスアクセス要求要因を選択する。そして、選択した外部バスアクセス要求要因に対して外部バス51へのアクセスを許可する。これらの詳細を説明する。   The external memory interface 3 arbitrates external bus access request factors (factors requesting access to the external bus 51) from the IPL 35, the CPU 5, and the DMAC 4 in accordance with an EBI priority table to be described later. Select the access request factor. Then, access to the external bus 51 is permitted for the selected external bus access request factor. These details will be described.

図3は、外部メモリインタフェース3による調停の際に参照されるEBI優先順位テーブルの例示図である。図3(a)を参照して、外部バスアクセス要求要因として、IPL35によるブロック転送要求、CPU5によるデータアクセス要求、DMAC4によるDMA要求、及びCPU5による命令フェッチ要求がある。優先順位は、1番が最も高く、番号が大きくなるに従って低くなる。   FIG. 3 is a view showing an example of an EBI priority table that is referred to when arbitrating by the external memory interface 3. Referring to FIG. 3A, external bus access request factors include a block transfer request by IPL 35, a data access request by CPU 5, a DMA request by DMAC 4, and an instruction fetch request by CPU 5. The priority is highest for No. 1 and decreases as the number increases.

外部メモリインタフェース3は、図3(a)のEBI優先順位テーブルに従って、外部バスアクセス要求要因を調停する。ただし、CPU5による命令フェッチ要求が10マイクロ秒以上待たされ、かつ、後述の調停優先順位制御レジスタの設定が「優先順位変更イネーブル」となっている場合、図3(b)に示すEBI優先順位テーブルが用いられる。この状態でCPU5による命令フェッチが行われると、再び図3(a)に示すEBI優先順位テーブルが使用される。   The external memory interface 3 arbitrates external bus access request factors according to the EBI priority table of FIG. However, if the instruction fetch request by the CPU 5 is waited for 10 microseconds or more and the setting of the arbitration priority control register described later is “priority change enable”, the EBI priority table shown in FIG. Is used. When the instruction fetch is performed by the CPU 5 in this state, the EBI priority table shown in FIG. 3A is used again.

図2に戻って、外部バスアクセス要求要因のうち、DMAC4によるDMA要求およびCPU5によるデータアクセス要求では、外部バス51のアドレス空間の全領域に対してアクセスが可能である。これに対し、CPU5による命令フェッチ要求およびIPL35によるブロック転送要求では、アクセス可能な領域が制限される。   Returning to FIG. 2, among the external bus access request factors, the DMA request by the DMAC 4 and the data access request by the CPU 5 can access the entire area of the address space of the external bus 51. On the other hand, in the instruction fetch request by the CPU 5 and the block transfer request by the IPL 35, the accessible area is limited.

CPU5による命令フェッチ要求では、0x00000000〜0x00FFFFFFの範囲が、アクセス可能な外部バスアドレスである。IPL35は、マルチメディアプロセッサ1の起動時に外部バスアドレス0x00000000〜0x000000FFに格納されているデータ(起動プログラム)をメインRAM25のアドレス0x0000〜0x00FFに転送し、CPU5のプログラム実行をメインRAM25の0x0000番地から開始させる。従って、IPL35によるブロック転送要求では、0x00000000〜0x000000FFの範囲以外の外部バスアドレスにはアクセスが行われない。   In the instruction fetch request by the CPU 5, the range of 0x0000000 to 0x00FFFFFF is an accessible external bus address. The IPL 35 transfers the data (startup program) stored in the external bus address 0x0000000-0x000000FF to the address 0x0000-0x00FF of the main RAM 25 when the multimedia processor 1 starts up, and starts the program execution of the CPU 5 from the address 0x0000 of the main RAM 25 Let Therefore, in the block transfer request by the IPL 35, the external bus address outside the range of 0x0000000 to 0x000000FF is not accessed.

図4は、外部メモリインタフェース3が備える制御レジスタの説明図である。図4に示すように、各制御レジスタは、図中対応するI/Oバスアドレスに配置され、CPU5がI/Oバス27を介してリード及びライトすることができる。   FIG. 4 is an explanatory diagram of a control register provided in the external memory interface 3. As shown in FIG. 4, each control register is arranged at a corresponding I / O bus address in the figure, and the CPU 5 can read and write via the I / O bus 27.

セカンダリメモリ開始アドレスレジスタは、セカンダリメモリ領域の開始アドレス、つまり、プライマリメモリ領域とセカンダリメモリ領域との境界を設定するための制御レジスタである。但し、外部バスアドレスの上位10ビットのみが設定可能であり、下位20ビットは全て「0」に固定される。従って、セカンダリメモリ領域の開始アドレスは、0x00000000,0x00100000,0x00200000,…のように、1Mバイト(=8Mビット)単位で設定可能である。   The secondary memory start address register is a control register for setting the start address of the secondary memory area, that is, the boundary between the primary memory area and the secondary memory area. However, only the upper 10 bits of the external bus address can be set, and the lower 20 bits are all fixed to “0”. Therefore, the start address of the secondary memory area can be set in units of 1M bytes (= 8M bits) such as 0x00000000, 0x00100000, 0x00200000,.

プライマリメモリタイプレジスタは、プライマリメモリ領域に設定するメモリインタフェース(外部メモリ)のタイプ(メモリインタフェース40,41あるいは42)、ページサイズ(4,8,16,32,64,128,256あるいは512バイト)、データバス幅(8あるいは16ビット)、およびNANDインタフェースのアドレスサイズ(3あるいは4バイト)を設定するための制御レジスタである。   The primary memory type register is the type of memory interface (external memory) set in the primary memory area (memory interface 40, 41 or 42), page size (4, 8, 16, 32, 64, 128, 256 or 512 bytes). A control register for setting the data bus width (8 or 16 bits) and the address size (3 or 4 bytes) of the NAND interface.

プライマリメモリアクセスタイミングレジスタは、プライマリメモリ領域へのアクセスタイミングを設定するための制御レジスタである。   The primary memory access timing register is a control register for setting the access timing to the primary memory area.

つまり、この制御レジスタには、アクセスサイクル時間Tac、ページアクセスサイクル時間Tapc(メモリインタフェース41が設定されているとき有効)、コマンドラッチイネーブル信号CLE及びアドレスラッチイネーブル信号ALEのライトイネーブル信号/WEに対するホールド時間Tcah(メモリインタフェース42が設定されているとき有効)、メモリセレクト信号/CS0Bのアクセスサイクル開始からの遅延時間Tcd、リードイネーブル信号/REBのアクセスサイクル開始からの遅延時間Trd、リードイネーブル信号/REBのパルス幅Trpw、ライトイネーブル信号/WEBのアクセスサイクル開始からの遅延時間Twd、ライトイネーブル信号/WEBのパルス幅Twpw、ライトイネーブル信号/WEBの立ち上がりに対するライトデータのホールド時間Tdh(メモリインタフェース42以外のメモリインタフェース40あるいは41が設定されているとき有効)、ライトイネーブル信号/WEBの立ち上がりに対するライトデータのホールド時間Tfdh(メモリインタフェース42が設定されているとき有効)、並びにライトイネーブル信号/WEBの立ち下がりに対するライトデータのセットアップ時間Tdsが設定される。これらについては、後述の図8〜図11の説明で明らかになる。   That is, the control register holds the access cycle time Tac, the page access cycle time Tapc (valid when the memory interface 41 is set), the command latch enable signal CLE and the address latch enable signal ALE with respect to the write enable signal / WE. Time Tcah (valid when the memory interface 42 is set), delay time Tcd from the start of the access cycle of the memory select signal / CS0B, delay time Trd from the start of the access cycle of the read enable signal / REB, read enable signal / REB Pulse width Trpw, delay time Twd from the start of the access cycle of the write enable signal / WEB, pulse width Twpw of the write enable signal / WEB, write enable signal / WE Write data hold time Tdh with respect to the rising edge (effective when a memory interface 40 or 41 other than the memory interface 42 is set), write data hold time Tfdh with respect to the rising edge of the write enable signal / WEB (memory interface 42 is set) And the write data setup time Tds with respect to the fall of the write enable signal / WEB is set. These will become clear from the description of FIGS.

セカンダリメモリタイプレジスタは、セカンダリメモリ領域に設定するメモリインタフェース(外部メモリ)のタイプ(メモリインタフェース40,41あるいは42)、ページサイズ(4,8,16,32,64,128,256あるいは512バイト)、データバス幅(8あるいは16ビット)、およびNANDインタフェースのアドレスサイズ(3あるいは4バイト)を設定するための制御レジスタである。   The secondary memory type register is the type of memory interface (external memory) set in the secondary memory area (memory interface 40, 41 or 42), page size (4, 8, 16, 32, 64, 128, 256 or 512 bytes). A control register for setting the data bus width (8 or 16 bits) and the address size (3 or 4 bytes) of the NAND interface.

セカンダリメモリアクセスタイミングレジスタは、セカンダリメモリ領域へのアクセスタイミングを設定するための制御レジスタである。具体的な設定内容は、プライマリメモリアクセスタイミングレジスタと同様である。ただし、遅延時間Tcdは、メモリセレクト信号/CS1Bのアクセスサイクル開始からの遅延時間である。   The secondary memory access timing register is a control register for setting the access timing to the secondary memory area. The specific setting contents are the same as those of the primary memory access timing register. However, delay time Tcd is a delay time from the start of the access cycle of memory select signal / CS1B.

調停優先順位制御レジスタは、外部バスアクセス要求要因間の調停における優先順位を制御するための制御レジスタである。このレジスタに「1」が設定されて「優先順位変更イネーブル」となっている場合に、CPU5による命令フェッチ要求が10マイクロ秒以上待たされると、図3(b)に示すEBI優先順位テーブルが用いられ、CPU5による命令フェッチ要求の優先順位が引き上げられる。この状態でCPU5による命令フェッチが行われると、再び図3(a)に示すEBI優先順位テーブルが使用される。なお、このレジスタに「0」が設定されると「優先順位変更ディセーブル」となり、上記の優先順位の変更は行われない。   The arbitration priority control register is a control register for controlling the priority in arbitration between external bus access request factors. When “1” is set in this register and “priority change enable” is set, if an instruction fetch request from the CPU 5 is waited for 10 microseconds or longer, the EBI priority table shown in FIG. The priority of the instruction fetch request by the CPU 5 is raised. When the instruction fetch is performed by the CPU 5 in this state, the EBI priority table shown in FIG. 3A is used again. If “0” is set in this register, “priority change is disabled”, and the above priority change is not performed.

外部メモリインタフェース3は、調停の結果、外部バス51へのアクセスを許可した機能ユニット(IPL35、CPU5、あるいはDMAC4)が発行している外部バスアドレスを含む領域(プライマリメモリ領域あるいはセカンダリメモリ領域)に設定されたメモリインタフェース40,41あるいは42を選択し、選択したメモリインタフェースを通じて、外部メモリ50へのアクセスを行う。   The external memory interface 3 has an area (primary memory area or secondary memory area) including an external bus address issued by a functional unit (IPL 35, CPU 5, or DMAC 4) that has permitted access to the external bus 51 as a result of arbitration. The set memory interface 40, 41 or 42 is selected, and the external memory 50 is accessed through the selected memory interface.

この場合、選択されたメモリインタフェースは、外部バス51へのアクセスを許可された機能ユニットが出力しているリード/ライト情報、データ転送バイト数情報、及び/又はライトデータに基づいて、リード/ライト制御を行う。   In this case, the selected memory interface reads / writes based on the read / write information, the data transfer byte count information, and / or the write data output by the functional unit that is permitted to access the external bus 51. Take control.

図5は、DMAC4のリクエストキュー45及びその周辺部を示すブロック図である。図5に示すように、DMAC4は、CPU5からのDMA要求を保持するリクエストバッファ105、RPU9からのDMA要求を保持するリクエストバッファ109、SPU13からのDMA要求を保持するリクエストバッファ113、DMAリクエストアービタ44、リクエストキュー45、及びDMA実行ユニット46を含む。   FIG. 5 is a block diagram showing the request queue 45 of the DMAC 4 and its peripheral part. As shown in FIG. 5, the DMAC 4 includes a request buffer 105 that holds a DMA request from the CPU 5, a request buffer 109 that holds a DMA request from the RPU 9, a request buffer 113 that holds a DMA request from the SPU 13, and a DMA request arbiter 44. A request queue 45 and a DMA execution unit 46.

リクエストバッファ105,109及び113のうち、2以上のリクエストバッファにDMA転送要求がエントリされている場合、DMAリクエストアービタ44は、後述のDMA優先順位テーブルに従って、DMA転送要求をリクエストキュー45の最後尾に送出する。4つのエントリを有するリクエストキュー45は、FIFO構造になっており、最初に受け付けたDMA転送要求から順次DMA実行ユニット46に送出する。DMA実行ユニット46は、外部バス51へのアクセス要求(外部バスアクセス要求要因としてのDMA要求)を発行し、外部バス51へのアクセスが許可された場合は、リクエストキュー45から受け取ったDMA転送要求に従ったDMA転送を実行する。   When the DMA transfer request is entered in two or more request buffers among the request buffers 105, 109, and 113, the DMA request arbiter 44 sends the DMA transfer request to the tail end of the request queue 45 according to the DMA priority table described later. To send. The request queue 45 having four entries has a FIFO structure, and is sequentially sent to the DMA execution unit 46 from the DMA transfer request received first. The DMA execution unit 46 issues an access request to the external bus 51 (a DMA request as an external bus access request factor), and if access to the external bus 51 is permitted, the DMA transfer request received from the request queue 45 DMA transfer according to the above is executed.

DMAC4が備えるDMAチャンネルは一つのみであるため、DMA転送を同時実行することはできないが、CPU5、RPU9、及びSPU13からのDMA転送要求を保持するリクエストバッファ105,109及び113と、4エントリのリクエストキュー45と、を備えているため、DMA転送中でもDMA転送要求を受け付けることができる。   Since DMAC 4 has only one DMA channel, DMA transfer cannot be executed at the same time, but request buffers 105, 109, and 113 that hold DMA transfer requests from CPU 5, RPU 9, and SPU 13, and four entries Since the request queue 45 is provided, the DMA transfer request can be accepted even during the DMA transfer.

図6は、DMAC4による調停の際に参照されるDMA優先順位テーブルの例示図である。図6を参照して、上記のように、このDMA優先順位テーブルは、リクエストバッファ105,109及び113のうち、2以上のリクエストバッファにDMA転送要求がエントリされている状態において、DMAリクエストアービタ44が、どのDMA転送要求を優先してリクエストキュー45に送出するのかを示す。   FIG. 6 is a view showing an example of a DMA priority order table that is referred to when mediation is performed by the DMAC 4. Referring to FIG. 6, as described above, this DMA priority table is stored in DMA request arbiter 44 in a state where DMA transfer requests are entered in two or more request buffers among request buffers 105, 109, and 113. Indicates which DMA transfer request is sent to the request queue 45 with priority.

優先順位は、1番が最も高く、番号が大きくなるに従って低くなる。従って、優先順位が高いほうから、SPU13によるDMA転送要求、RPU9によるDMA転送要求、及び、CPU5によるDMA転送要求、となる。本実施の形態では、優先順位はハードウェアで固定されており、変更することはできない。   The priority is highest for No. 1 and decreases as the number increases. Therefore, the higher priority order is the DMA transfer request by the SPU 13, the DMA transfer request by the RPU 9, and the DMA transfer request by the CPU 5. In the present embodiment, the priority is fixed by hardware and cannot be changed.

SPU13、RPU9、及びCPU5からのDMA要求要因(DMA転送を要求する要因)について順に説明していく。   The DMA request factors (factors requesting DMA transfer) from the SPU 13, RPU 9, and CPU 5 will be described in order.

図6を参照して、SPU13のDMA要求要因として、(1)ウェーブデータをウェーブバッファに転送すること、(2)エンベロープデータをエンベロープバッファに転送すること、がある。ウェーブバッファ及びエンベロープバッファは、それぞれメインRAM25上に設定されるウェーブデータ及びエンベロープデータのテンポラリ格納領域である。このテンポラリ格納領域の先頭アドレスは、SPU13内の制御レジスタ(図示せず)で定められ、このテンポラリ格納領域の大きさは、再生チャンネル数の設定により定められる。なお、SPU13の2つのDMA要求要因間の調停は、SPU13内のハードウェア(図示せず)で行われ、DMAC4は関知しない。   Referring to FIG. 6, the DMA request factors of SPU 13 include (1) transferring wave data to the wave buffer and (2) transferring envelope data to the envelope buffer. The wave buffer and envelope buffer are temporary storage areas for wave data and envelope data set on the main RAM 25, respectively. The head address of the temporary storage area is determined by a control register (not shown) in the SPU 13, and the size of the temporary storage area is determined by setting the number of playback channels. The arbitration between the two DMA request factors of the SPU 13 is performed by hardware (not shown) in the SPU 13, and the DMAC 4 is not concerned.

RPU9のDMA要求要因として、テクスチャパターンデータをテクスチャバッファに転送すること、がある。テクスチャバッファは、メインRAM25上に設定されるテクスチャパターンデータのテンポラリ格納領域である。このテンポラリ格納領域の先頭アドレス及びサイズは、RPU9内の制御レジスタ(図示せず)で定められる。   As a DMA request factor of the RPU 9, there is transferring the texture pattern data to the texture buffer. The texture buffer is a temporary storage area for texture pattern data set on the main RAM 25. The head address and size of this temporary storage area are determined by a control register (not shown) in the RPU 9.

CPU5のDMA要求要因として、(1)仮想記憶管理においてページミスが発生した場合のページ転送、(2)アプリケーションプログラム等が要求するデータ転送、がある。なお、CPU5内で複数のDMA転送要求が同時に発生した場合は、その調停はCPU5で実行されるソフトウェアにて行われ、DMAC4は関知しない。   The DMA request factors of the CPU 5 include (1) page transfer when a page miss occurs in virtual storage management, and (2) data transfer requested by an application program or the like. When a plurality of DMA transfer requests are generated simultaneously in the CPU 5, the arbitration is performed by software executed by the CPU 5, and the DMAC 4 is not concerned.

CPU5による上記(1)のDMA要求要因についてもう少し詳しく説明する。CPU5のDMA転送要求は、ソフトウェアの実行に応じて行われる。マルチメディアプロセッサ1の一般的なソフトウェア構造では、仮想記憶管理は、OS(オペレーティングシステム)によって行われる。仮想記憶管理においてページミスが発生し、ページスワップの必要が発生すると、OSは、DMAC4にDMA転送要求を発行する。   The DMA request factor (1) by the CPU 5 will be described in a little more detail. The DMA transfer request of the CPU 5 is made according to the execution of software. In the general software structure of the multimedia processor 1, virtual memory management is performed by an OS (Operating System). When a page miss occurs in the virtual memory management and a page swap is necessary, the OS issues a DMA transfer request to the DMAC 4.

CPU5による上記(2)のDMA要求要因についてもう少し詳しく説明する。OS等のシステムソフトウェアやアプリケーションソフトウェアの実行中、外部メモリ50とメインRAM25との間で、まとまったデータ転送の必要が生じた場合、DMA要求が発行される。   The DMA request factor (2) by the CPU 5 will be described in a little more detail. A DMA request is issued when it is necessary to transfer data between the external memory 50 and the main RAM 25 during execution of system software such as an OS or application software.

DMAC4は、LZ77アルゴリズムに基づくデータ伸張機能を備えており、CPU5によるMDA転送要求に対して、外部メモリ50に格納された圧縮データを伸張しながらDMA転送することが可能である。   The DMAC 4 has a data decompression function based on the LZ77 algorithm, and can perform DMA transfer while decompressing the compressed data stored in the external memory 50 in response to an MDA transfer request from the CPU 5.

図7は、DMAC4が備える制御レジスタの説明図である。図7に示すように、各制御レジスタは、図中対応するI/Oバスアドレスに配置され、CPU5がI/Oバス27を介してリード及びライトすることができる。つまり、これらの制御レジスタは、CPU5によるDMA転送要求の際に設定される。   FIG. 7 is an explanatory diagram of a control register included in the DMAC 4. As shown in FIG. 7, each control register is arranged at a corresponding I / O bus address in the figure, and the CPU 5 can read and write via the I / O bus 27. That is, these control registers are set when a DMA transfer request is made by the CPU 5.

DMA転送元アドレスレジスタには、DMA転送における転送元アドレスが外部バス51の物理アドレスで設定される。DMA転送先アドレスレジスタには、DMA転送における転送先アドレスがメインRAM25の物理アドレスで設定される。DMA転送バイト数レジスタには、DMA転送における転送バイト数が設定される。データ伸張DMAにおいては、伸張後のバイト数でカウントする。   In the DMA transfer source address register, the transfer source address in the DMA transfer is set by the physical address of the external bus 51. In the DMA transfer destination address register, the transfer destination address in the DMA transfer is set as the physical address of the main RAM 25. The number of transfer bytes in DMA transfer is set in the DMA transfer byte number register. In data decompression DMA, the number of bytes after decompression is counted.

DMA制御レジスタは、DMAC4の各種制御を行うレジスタであり、DMA転送イネーブルビット、DMA開始ビット、及び割り込みイネーブルビットを含む。DMA転送イネーブルビットは、CPU5から要求されるDMA転送のイネーブル/ディセーブルを制御するビットである。DMA開始ビットに「1」が設定されると、CPU5に対応するリクエストバッファ105に書き込まれているDMA転送要求(転送元アドレス、転送先アドレス、及び転送バイト数)が、リクエストキュー45に送出される。割り込みイネーブルビットは、CPU5から要求されたDMA転送が終了した際に、CPU5に対して割り込み要求を行うか否かを制御するビットである。   The DMA control register is a register that performs various controls of the DMAC 4, and includes a DMA transfer enable bit, a DMA start bit, and an interrupt enable bit. The DMA transfer enable bit is a bit for controlling enable / disable of DMA transfer requested by the CPU 5. When “1” is set in the DMA start bit, the DMA transfer request (transfer source address, transfer destination address, and transfer byte count) written in the request buffer 105 corresponding to the CPU 5 is sent to the request queue 45. The The interrupt enable bit is a bit for controlling whether or not to make an interrupt request to the CPU 5 when the DMA transfer requested by the CPU 5 is completed.

DMAデータ伸張制御レジスタは、データ伸張イネーブルビットを含む。このビットは、CPU5から要求されるDMA転送におけるデータ伸張のイネーブル/ディセーブルを制御するビットである。DMAステータスレジスタは、DMAC4の各種ステータスを表すレジスタであり、リクエストキュービジービット、DMA完了ビット、DMA実行中ビット、及びDMA未完了フィールドを含む。   The DMA data expansion control register includes a data expansion enable bit. This bit is a bit that controls enabling / disabling of data expansion in the DMA transfer requested by the CPU 5. The DMA status register is a register representing various statuses of the DMAC 4 and includes a request queue busy bit, a DMA completion bit, a DMA execution bit, and a DMA incomplete field.

リクエストキュービジービットは、リクエストキュー45の状態(ビジー/レディ)を示す。リクエストキュー45の状態が「ビジー」だと、新たなDMA転送要求はリクエストキュー45にエントリされない。DMA完了ビットには、CPU5から要求されたDMA転送が完了する度に「1」がセットされる。割り込みイネーブルビットをイネーブルに設定している場合、DMA完了ビットに「1」がセットされるのと同時に、CPU5に対する割り込み要求が発生する。DMA実行中ビットは、DMA転送が実行中か否かを示すビットである。DMA未完了フィールドは、CPU5から要求された未完了のDMA転送の数を示すフィールドである。   The request queue busy bit indicates the state (busy / ready) of the request queue 45. If the status of the request queue 45 is “busy”, no new DMA transfer request is entered in the request queue 45. The DMA completion bit is set to “1” every time the DMA transfer requested by the CPU 5 is completed. When the interrupt enable bit is set to enable, an interrupt request to the CPU 5 is generated at the same time that the DMA completion bit is set to “1”. The DMA executing bit is a bit indicating whether or not DMA transfer is being executed. The DMA incomplete field is a field indicating the number of incomplete DMA transfers requested from the CPU 5.

DMAデータ伸張IDレジスタは、データ伸張DMAにおけるIDコードを格納する。DMAデータ伸張制御レジスタが、イネーブルに設定されている場合、256バイトのブロックの先頭2バイトがDMAデータ伸張IDレジスタに設定されているIDコードと一致していると、DMAC4はそのブロックを圧縮ブロックとみなしてデータ伸張を行う。   The DMA data expansion ID register stores an ID code in the data expansion DMA. When the DMA data expansion control register is set to enable, if the first two bytes of the 256-byte block match the ID code set in the DMA data expansion ID register, the DMAC 4 compresses the block. Decompress data.

さて、次に、図8から図11のタイミングチャートを参照しながら、外部メモリ50に対するアクセスを説明する。なお、図8から図11の説明において、期間1Tは、マルチメディアプロセッサ1のシステムクロックの1周期を表し、約10.2ナノ秒に相当する。   Next, access to the external memory 50 will be described with reference to the timing charts of FIGS. In the description of FIGS. 8 to 11, the period 1T represents one cycle of the system clock of the multimedia processor 1 and corresponds to about 10.2 nanoseconds.

図8は、NORインタフェースにおけるランダムアクセスのリードサイクルを示すタイミングチャートである。図8の例では、Tac=9T、Tcd=1T、Trd=2T、Trpw=7Tである。期間Tac,Tcd,Trd及びTrpwの意味は、図4で説明した通りである。また、設定された外部バス51のデータバス幅を16ビットとしている。   FIG. 8 is a timing chart showing a random access read cycle in the NOR interface. In the example of FIG. 8, Tac = 9T, Tcd = 1T, Trd = 2T, and Trpw = 7T. The meanings of the periods Tac, Tcd, Trd, and Trpw are as described in FIG. The set data bus width of the external bus 51 is 16 bits.

これらの期間は、次の条件を全て満たす必要がある。
Tac≧Trd+Trpw
Tac≧2T
Tac>Tcd
Trpw>0T
これらの条件が満たされない場合、外部メモリインタフェース3のプライマリメモリアクセスタイミングレジスタ及びセカンダリメモリアクセスタイミングレジスタへの書き込みは無視される。
These periods must satisfy all of the following conditions:
Tac ≧ Trd + Trpw
Tac ≧ 2T
Tac> Tcd
Trpw> 0T
When these conditions are not satisfied, writing to the primary memory access timing register and the secondary memory access timing register of the external memory interface 3 is ignored.

図8を参照して、メモリインタフェース40は、アクセスサイクル期間Tacの開始サイクルCY0において、外部バスアドレスEA[29:0]の外部バス51への送出を開始する。外部バスアドレスEAの送出は、アクセスサイクル期間Tac中行われる。そして、メモリインタフェース40は、開始サイクルCY0のシステムクロックの立ち上がりから期間Tcd後に、メモリセレクト信号/CSB0又は/CSB1をアサートする。さらに、メモリインタフェース40は、開始サイクルCY0のシステムクロックの立ち上がりから期間Trd後に、リードイネーブル信号/REBをアサートする。そして、メモリインタフェース40は、アクセスサイクルTacの最終サイクルのシステムクロックの立ち上がりで、外部メモリ50から外部バス51に読み出されたデータED[15:0]を取り込む。なお、リードアクセスであるため、ライトイネーブル信号/WEBは、ネゲートが維持される。   Referring to FIG. 8, memory interface 40 starts sending external bus address EA [29: 0] to external bus 51 in start cycle CY0 of access cycle period Tac. The external bus address EA is transmitted during the access cycle period Tac. Then, the memory interface 40 asserts the memory select signal / CSB0 or / CSB1 after a period Tcd from the rising edge of the system clock in the start cycle CY0. Further, the memory interface 40 asserts the read enable signal / REB after a period Trd from the rise of the system clock in the start cycle CY0. Then, the memory interface 40 takes in the data ED [15: 0] read from the external memory 50 to the external bus 51 at the rising edge of the system clock in the last cycle of the access cycle Tac. Since it is read access, the write enable signal / WEB is kept negated.

図9は、ページモード付NORインタフェースにおけるページモードアクセスのリードサイクルを示すタイミングチャートである。図9の例では、Tac=5T、Tapc=3T、Tcd=1T、Trd=2T、Trpw=3Tである。期間Tac,Tapc,Tcd,Trd及びTrpwの意味は、図4で説明した通りである。ただし、図9では、期間Tacは、ランダムアクセスのサイクル時間である。また、設定された外部バス51のデータバス幅を16ビットとしている。   FIG. 9 is a timing chart showing a read cycle of page mode access in the NOR interface with page mode. In the example of FIG. 9, Tac = 5T, Tapc = 3T, Tcd = 1T, Trd = 2T, Trpw = 3T. The meanings of the periods Tac, Tapc, Tcd, Trd, and Trpw are as described in FIG. However, in FIG. 9, the period Tac is a cycle time of random access. The set data bus width of the external bus 51 is 16 bits.

これらの期間は、次の条件を全て満たす必要がある。
Tac≧Trd+Trpw
Tac≧2T
Tapc>0T
Tac>Tcd
Trpw>0T
これらの条件が満たされない場合、外部メモリインタフェース3のプライマリメモリアクセスタイミングレジスタ及びセカンダリメモリアクセスタイミングレジスタへの書き込みは無視される。
These periods must satisfy all of the following conditions:
Tac ≧ Trd + Trpw
Tac ≧ 2T
Tapc> 0T
Tac> Tcd
Trpw> 0T
When these conditions are not satisfied, writing to the primary memory access timing register and the secondary memory access timing register of the external memory interface 3 is ignored.

図9を参照して、期間Tacによって長さが規定される最初のリードサイクルCYRはランダムアクセスのサイクルであり、期間Tapcによって長さが規定される続く3つのリードサイクルCYP1〜CYP3は、ページモードアクセスのサイクルである。   Referring to FIG. 9, the first read cycle CYR whose length is defined by the period Tac is a random access cycle, and the following three read cycles CYP1 to CYP3 whose length is defined by the period Tapc are in page mode. It is an access cycle.

メモリインタフェース41は、アクセスサイクル期間Tacの開始サイクルCY0において、外部バスアドレスEA[29:0]の外部バス51への送出を開始する。外部バスアドレスEAの送出は、アクセスサイクル期間Tac中行われる。そして、メモリインタフェース41は、開始サイクルCY0のシステムクロックの立ち上がりから期間Tcd後に、メモリセレクト信号/CSB0又は/CSB1をアサートする。さらに、メモリインタフェース41は、開始サイクルCY0のシステムクロックの立ち上がりから期間Trd後に、リードイネーブル信号/REBをアサートする。そして、メモリインタフェース41は、最初のリードサイクルCYRの最終サイクルでのシステムクロックの立ち上がりで、外部メモリ50から外部バス51に読み出されたデータED[15:0]を取り込む。   The memory interface 41 starts sending the external bus address EA [29: 0] to the external bus 51 in the start cycle CY0 of the access cycle period Tac. The external bus address EA is transmitted during the access cycle period Tac. Then, the memory interface 41 asserts the memory select signal / CSB0 or / CSB1 after a period Tcd from the rise of the system clock in the start cycle CY0. Further, the memory interface 41 asserts the read enable signal / REB after a period Trd from the rise of the system clock in the start cycle CY0. Then, the memory interface 41 takes in the data ED [15: 0] read from the external memory 50 to the external bus 51 at the rising edge of the system clock in the final cycle of the first read cycle CYR.

次のリードサイクルCYP1において、メモリインタフェース41は、次の外部バスアドレスEAを外部メモリ50へ送出する。そして、メモリインタフェース41は、リードサイクルCYP1の最終サイクルでのシステムクロックの立ち上がりで、外部メモリ50から外部バス51に読み出された新たなデータEDを取り込む。このような動作が、引き続き後のリードサイクルCYP2及びCYP3でも行われる。   In the next read cycle CYP 1, the memory interface 41 sends the next external bus address EA to the external memory 50. Then, the memory interface 41 takes in new data ED read from the external memory 50 to the external bus 51 at the rising edge of the system clock in the final cycle of the read cycle CYP1. Such an operation is continuously performed in the subsequent read cycles CYP2 and CYP3.

このように、ページモードアクセスでは、最初のリードサイクルCYRにおいてのみ、メモリセレクト信号/CSB0,/CSB1及びリードイネーブル信号/REBの制御が必要なだけで、続くリードサイクルCYP1〜CYP3では、それらの制御が不要となり、高速なアクセスが可能となる。なお、リードアクセスであるため、ライトイネーブル信号/WEBは、ネゲートが維持される。   As described above, in the page mode access, only the control of the memory select signals / CSB0, / CSB1 and the read enable signal / REB is necessary only in the first read cycle CYR. In the subsequent read cycles CYP1 to CYP3, the control thereof is performed. Becomes unnecessary, and high-speed access becomes possible. Since it is read access, the write enable signal / WEB is kept negated.

図10は、NORインタフェースにおけるランダムアクセスのライトサイクルを示すタイミングチャートである。図10の例では、Tac=9T、Tcd=1T、Twd=2T、Twpw=6T、Tds=1T、Tdh=1Tである。期間Tac,Tcd,Twd,Twpw,Tds及びTdhの意味は、図4で説明した通りである。また、設定された外部バス51のデータバス幅を16ビットとしている。   FIG. 10 is a timing chart showing a random access write cycle in the NOR interface. In the example of FIG. 10, Tac = 9T, Tcd = 1T, Twd = 2T, Twpw = 6T, Tds = 1T, and Tdh = 1T. The meanings of the periods Tac, Tcd, Twd, Twpw, Tds, and Tdh are as described in FIG. The set data bus width of the external bus 51 is 16 bits.

これらの期間は、次の条件を全て満たす必要がある。
Tac≧Twd+Twpw
Tac≧2T
Tac>Tcd
Twpw>0T
Twd≧Tds
これらの条件が満たされない場合、外部メモリインタフェース3のプライマリメモリアクセスタイミングレジスタ及びセカンダリメモリアクセスタイミングレジスタへの書き込みは無視される。
These periods must satisfy all of the following conditions:
Tac ≧ Twd + Twpw
Tac ≧ 2T
Tac> Tcd
Twpw> 0T
Twd ≧ Tds
When these conditions are not satisfied, writing to the primary memory access timing register and the secondary memory access timing register of the external memory interface 3 is ignored.

図10を参照して、メモリインタフェース40は、アクセスサイクル期間Tacの開始サイクルCY0において、外部バスアドレスEA[29:0]の外部メモリ50への送出を開始する。外部バスアドレスEAの送出は、アクセスサイクル期間Tac中行われる。そして、メモリインタフェース40は、開始サイクルCY0のシステムクロックの立ち上がりから期間Tcd後に、メモリセレクト信号/CSB0又は/SCB1をアサートする。さらに、メモリインタフェース40は、開始サイクルCY0のシステムクロックの立ち上がりから期間Twd後に、ライトイネーブル信号/WEBをアサートする。   Referring to FIG. 10, memory interface 40 starts sending external bus address EA [29: 0] to external memory 50 in start cycle CY0 of access cycle period Tac. The external bus address EA is transmitted during the access cycle period Tac. Then, the memory interface 40 asserts the memory select signal / CSB0 or / SCB1 after a period Tcd from the rising edge of the system clock in the start cycle CY0. Further, the memory interface 40 asserts the write enable signal / WEB after a period Twd from the rising edge of the system clock in the start cycle CY0.

メモリインタフェース40は、ライトイネーブル信号/WEBがアサートされる前に、つまり、時間Tdsだけ早く、ライトデータED[15:0]の外部バス51への送出を開始する。また、メモリインタフェース40は、ライトイネーブル信号/WEBがネゲートされた後、時間Tdhだけ、ライトデータEDの外部バス51への送出を継続する。なお、ライトアクセスであるため、リードイネーブル信号/REBは、ネゲートが維持される。   The memory interface 40 starts sending the write data ED [15: 0] to the external bus 51 before the write enable signal / WEB is asserted, that is, earlier by the time Tds. Further, after the write enable signal / WEB is negated, the memory interface 40 continues to send the write data ED to the external bus 51 for a time Tdh. Since it is a write access, the read enable signal / REB is kept negated.

なお、アクセスの対象となる領域(図2参照)がページモードに設定されている場合でも、ライトサイクルではページモードアクセスは適用されず、全てランダムアクセスになる。   Even when the area to be accessed (see FIG. 2) is set to the page mode, page mode access is not applied in the write cycle, and all are random access.

図11は、NANDインタフェースにおけるリードサイクルを示すタイミングチャートである。図11の例では、Tcd=1T、Tcah=2T、Twd=2T、Twpw=3T、Tds=1T、Tfdh=2T、Trd=2T、Trpw=4Tである。これらの期間の設定は、図4で説明した通りである。また、設定された外部バス51のデータバス幅を16ビットとしている。   FIG. 11 is a timing chart showing a read cycle in the NAND interface. In the example of FIG. 11, Tcd = 1T, Tcah = 2T, Twd = 2T, Twpw = 3T, Tds = 1T, Tfdh = 2T, Trd = 2T, Trpw = 4T. The setting of these periods is as described in FIG. The set data bus width of the external bus 51 is 16 bits.

図11を参照して、NANDインタフェースの外部メモリ50にアクセスする場合、メモリインタフェース42は、先ずリードコマンドを外部メモリ50に発行する。この際、メモリインタフェース42は、コマンドラッチイネーブル信号CLEをアサートする。メモリインタフェース42が発行するコマンドの種類は「0x00」と「0x01」の二種類のリードコマンドである。リードコマンドが二種類用意されているのは、コマンドのLSBがリード開始アドレスの第8ビットA8を示しているからである。   Referring to FIG. 11, when accessing the external memory 50 of the NAND interface, the memory interface 42 first issues a read command to the external memory 50. At this time, the memory interface 42 asserts the command latch enable signal CLE. The types of commands issued by the memory interface 42 are two types of read commands, “0x00” and “0x01”. Two types of read commands are prepared because the LSB of the command indicates the eighth bit A8 of the read start address.

続いて、メモリインタフェース42は、リード開始アドレスを外部メモリ50に発行する。この際、メモリインタフェース42は、アドレスラッチイネーブル信号ALEをアサートする。リード開始アドレスは、8ビットずつ3回に分けて発行される。但し、接続されている外部メモリ50の容量が32Mバイトを超える場合、8ビットずつ4回に分けて入力するモードに設定されなければならない。この設定は、外部メモリインタフェース3のプライマリメモリタイプレジスタあるいはセカンダリメモリタイプレジスタで行われる。   Subsequently, the memory interface 42 issues a read start address to the external memory 50. At this time, the memory interface 42 asserts an address latch enable signal ALE. The read start address is issued in 8 bits divided into 3 times. However, when the capacity of the connected external memory 50 exceeds 32 Mbytes, it must be set to a mode in which the input is divided into four times of 8 bits. This setting is performed in the primary memory type register or the secondary memory type register of the external memory interface 3.

これらのコマンドの発行及びリード開始アドレスの発行の際には、ライトイネーブル信号/WEBがアサートされる。   When these commands are issued and the read start address is issued, the write enable signal / WEB is asserted.

ここで、期間Twdは、コマンドまたはリード開始アドレス発行の先頭サイクルからライトイネーブル信号/WEBがアサートされるまでの遅延時間を示す。また、期間Twpwは、ライトイネーブル信号/WEBがアサートされる期間の長さを示す。期間Tcahは、コマンドラッチイネーブル信号CLE及びアドレスラッチイネーブル信号ALEのライトイネーブル信号/WEに対するホールド時間、期間Tcdは、メモリセレクト信号/CS0Bあるいは/CS1Bのアクセスサイクル開始からの遅延時間、期間Tfdhは、ライトイネーブル信号/WEBの立ち上がりに対するリードコマンドのホールド時間、期間Tdsは、ライトイネーブル信号/WEBの立ち下がりに対するリードコマンドのセットアップ時間である。   Here, the period Twd indicates a delay time from the start cycle of issuing a command or read start address until the write enable signal / WEB is asserted. The period Twpw indicates the length of the period during which the write enable signal / WEB is asserted. The period Tcah is the hold time of the command latch enable signal CLE and the address latch enable signal ALE with respect to the write enable signal / WE, the period Tcd is the delay time from the start of the access cycle of the memory select signal / CS0B or / CS1B, and the period Tfdh is The read command hold time with respect to the rise of the write enable signal / WEB, the period Tds, is the read command setup time with respect to the fall of the write enable signal / WEB.

リード開始アドレスが入力されると、外部メモリ50はビジー状態に入る。ビジー状態になると、外部メモリ50は、レディ/ビジー信号RDY_BSYBを、Lowレベル(ビジー)にする。メモリインタフェース42は、レディ/ビジー信号RDY_BSYBのLowレベル(ビジー)からHighレベル(レディ)への遷移を検出すると、データのリードを開始する。   When the read start address is input, the external memory 50 enters a busy state. In the busy state, the external memory 50 sets the ready / busy signal RDY_BSYB to a low level (busy). When the memory interface 42 detects the transition of the ready / busy signal RDY_BSYB from the low level (busy) to the high level (ready), the memory interface 42 starts reading data.

但し、ビジー状態がシステムクロックの一周期より短い場合、メモリインタフェース42は、ビジー状態を検出できない場合がある。そこで、外部メモリ50のレディ/ビジー出力は最大200ナノ秒の遅延であることから、リード開始アドレスの最後のバイトを発行してから200ナノ秒後に既にレディ/ビジー信号RDY_BSYBがHighレベル(レディ)を示している場合、外部メモリ50は既にビジー状態を経過してレディ状態になっていると判断できる。従って、メモリインタフェース42は、リード開始アドレスの最後のバイトを発行してから20T後にレディ/ビジー信号RDY_BSYBがHighレベル(レディ)を示していれば、即座にデータリードを開始する。   However, if the busy state is shorter than one cycle of the system clock, the memory interface 42 may not be able to detect the busy state. Therefore, since the ready / busy output of the external memory 50 has a maximum delay of 200 nanoseconds, the ready / busy signal RDY_BSYB is already at a high level (ready) 200 nanoseconds after issuing the last byte of the read start address. , It can be determined that the external memory 50 has already passed the busy state and is in the ready state. Therefore, if the ready / busy signal RDY_BSYB indicates a high level (ready) 20T after issuing the last byte of the read start address, the memory interface 42 immediately starts data reading.

データリードが開始されると、メモリインタフェース42は、リードイネーブル信号/REBをアサートして外部メモリ50からデータをリードする。リードイネーブル信号/REBがアサートされる度に、NANDインタフェースの外部メモリ50は、連続するアドレスのメモリワードを外部バス51のデータバスEDに出力する。メモリインタフェース42は、1回のリードサイクルの終端、すなわちリードイネーブル信号/REBがネゲートされるシステムクロックの立ち上がりで、外部バス51のデータバスEDからリードデータを取り込む。   When the data read is started, the memory interface 42 reads the data from the external memory 50 by asserting the read enable signal / REB. Each time the read enable signal / REB is asserted, the external memory 50 of the NAND interface outputs memory words having consecutive addresses to the data bus ED of the external bus 51. The memory interface 42 takes in the read data from the data bus ED of the external bus 51 at the end of one read cycle, that is, at the rising edge of the system clock at which the read enable signal / REB is negated.

このように、NANDインタフェースの外部メモリ50からのデータリードでは、リードイネーブル信号/REBがアサートされる度に、リード開始アドレスから連続してデータをリードすることがでる。但し、ページの終端までリードが到達すると、レディ/ビジー信号RDY_BSYBが再びLowレベル(ビジー)を示し、Highレベル(レディ)になるまでリードは中断される。   As described above, in the data read from the external memory 50 of the NAND interface, the data can be continuously read from the read start address every time the read enable signal / REB is asserted. However, when the read reaches the end of the page, the ready / busy signal RDY_BSYB indicates Low level (busy) again, and the read is interrupted until it becomes High level (ready).

ここで、期間Trdは、リードサイクルの先頭サイクルからリードイネーブル信号/REBがアサートされるまでの遅延時間を示す。また、期間Trpwは、リードイネーブル信号/REBがアサートされる期間の長さを示す。   Here, the period Trd indicates a delay time from the start cycle of the read cycle until the read enable signal / REB is asserted. The period Trpw indicates the length of the period during which the read enable signal / REB is asserted.

さて、以上のように、本実施の形態では、CPU5は、外部メモリインタフェース3に直接外部バスアクセス要求を発行する機能と、DMAC4に対してDMA転送要求を行う機能と、の両方を備える。従って、離散したアドレスにランダムにデータアクセスを行う場合などは直接外部メモリインタフェース3に外部バスアクセス要求を発行し、データのブロック転送や仮想記憶管理機構が要求するページスワップなどを行う場合にはDMAC4にDMA転送要求を発行することで、外部メモリ50への効率的なアクセスが可能となる。   As described above, in this embodiment, the CPU 5 has both a function for issuing an external bus access request directly to the external memory interface 3 and a function for making a DMA transfer request to the DMAC 4. Accordingly, when random access is made to discrete addresses, an external bus access request is issued directly to the external memory interface 3, and when performing block transfer of data or page swap required by the virtual memory management mechanism, the DMAC 4 By issuing a DMA transfer request to the external memory 50, efficient access to the external memory 50 becomes possible.

また、本実施の形態では、IPL35、CPU5、及びDMAC4は、外部メモリインタフェース3に対して外部バスアクセス要求を行うのみであり、データのリード/ライトのための機構は、外部メモリインタフェース3が備えている。従って、異なるタイプのメモリインタフェースをサポートする場合でも、IPL35、CPU5、及びDMAC4の各々が、複数のメモリインタフェースを備える必要が無い。このため、回路構成の簡略化が可能になり、コストの低減を図ることができる。   In this embodiment, the IPL 35, the CPU 5, and the DMAC 4 only make an external bus access request to the external memory interface 3, and the external memory interface 3 has a mechanism for reading / writing data. ing. Therefore, even when different types of memory interfaces are supported, it is not necessary for each of the IPL 35, the CPU 5, and the DMAC 4 to include a plurality of memory interfaces. For this reason, the circuit configuration can be simplified, and the cost can be reduced.

従来のマルチプロセッサにおいても、複数のプロセッサコアが、外部メモリインタフェースを通じて外部バスを共有しているが、データのリード/ライトのための機構は、各プロセッサコアが備えている。従って、NORインタフェースとNANDインタフェースのように、アクセス手法が全く異なるタイプの外部メモリを接続可能とするためには、プロセッサコアの各々が、複数の異なるメモリインタフェースを備えなければならない。これでは、回路構成が複雑化し、コストの低減を図れない。   Even in a conventional multiprocessor, a plurality of processor cores share an external bus through an external memory interface, but each processor core has a mechanism for reading / writing data. Therefore, in order to be able to connect external memories of different types such as NOR interface and NAND interface, each of the processor cores must have a plurality of different memory interfaces. This complicates the circuit configuration and cannot reduce the cost.

さらに、本実施の形態では、共有のメインRAM25に対するアクセスの経路(つまり、メインRAMアクセスアービタ23)と、機能ユニットの制御のための経路(つまり、I/Oバス27)と、が分離されているので、機能ユニットに対する制御に起因するメインRAM25のバスバンド幅の浪費を防止できる。   Further, in the present embodiment, the access path to the shared main RAM 25 (that is, the main RAM access arbiter 23) and the path for controlling the functional unit (that is, the I / O bus 27) are separated. Therefore, waste of the bus bandwidth of the main RAM 25 due to control on the functional unit can be prevented.

この場合、I/Oバス27を用いて機能ユニットを制御するのは、プログラム命令を解釈し実行するCPU5であるため、ソフトウェアにより、動的に、各機能ユニットの制御が可能になる。   In this case, the functional unit is controlled using the I / O bus 27 by the CPU 5 that interprets and executes the program instruction, so that the functional unit can be dynamically controlled by software.

さらに、本実施の形態では、CPU5、RPU9、及びSPU13からの3つのDMA転送要求を保持する3つのリクエストバッファ105,109及び113並びに4エントリのリクエストキュー45を備えている。従って、DMA転送実行中であっても、DMA転送要求を受け付けることができる。特に、DMAチャンネルが1つしかない場合に有効である。   Further, in the present embodiment, three request buffers 105, 109 and 113 for holding three DMA transfer requests from the CPU 5, RPU 9, and SPU 13 and a four-entry request queue 45 are provided. Therefore, a DMA transfer request can be accepted even during DMA transfer execution. This is particularly effective when there is only one DMA channel.

さらに、本実施の形態では、外部メモリインタフェース3は、CPU5による命令フェッチ要求が10マイクロ秒以上待たされ、かつ、調停優先順位制御レジスタの設定が「優先順位変更イネーブル」となっている場合、図3(a)ではなく図3(b)に示すEBI優先順位テーブルを参照する。従って、CPU5による命令フェッチ要求が、システムに不都合が生じるほど長く待たされることを防止できる。しかも、CPU5が調停優先順位制御レジスタにアクセスすることで、1つの優先順位テーブルに固定して調停を行うのか、あるいは、2つの優先順位テーブルを切り替えながら調停を行うのか、を動的に設定できる。   Further, in the present embodiment, the external memory interface 3 is configured when the instruction fetch request from the CPU 5 is waited for 10 microseconds or more and the setting of the arbitration priority control register is “priority change enable”. Refer to the EBI priority table shown in FIG. 3B instead of 3 (a). Therefore, it is possible to prevent the instruction fetch request by the CPU 5 from being kept waiting so long as to cause a problem in the system. In addition, by accessing the arbitration priority control register, the CPU 5 can dynamically set whether to perform arbitration while fixing to one priority table, or to perform arbitration while switching between two priority tables. .

さらに、本実施の形態によれば、外部バス51のアドレス空間が、プライマリメモリ領域とセカンダリメモリ領域とに分割されているので、領域ごとに、外部メモリのタイプを設定でき、異なる複数のタイプの外部メモリを接続できる。また、領域ごとに、外部バス51のデータバス幅を設定可能であるので、データバス幅の異なる複数の外部メモリを接続できる。さらに、領域ごとに、外部メモリに対するアクセスタイミングを設定可能であるので、アクセスタイミングの異なる複数の外部メモリを接続できる。   Furthermore, according to the present embodiment, since the address space of the external bus 51 is divided into a primary memory area and a secondary memory area, the type of the external memory can be set for each area. External memory can be connected. Further, since the data bus width of the external bus 51 can be set for each region, a plurality of external memories having different data bus widths can be connected. Furthermore, since the access timing to the external memory can be set for each area, a plurality of external memories having different access timings can be connected.

さらに、本実施の形態によれば、図4に示すように、プライマリメモリ領域及びセカンダリメモリ領域のそれぞれに対して、メモリタイプレジスタ及びアクセスタイミングレジスタが設けられる。従って、CPU5によって、領域ごとに、外部メモリ50のタイプ、外部バス51のデータバス幅、及び外部メモリ50に対するアクセスタイミングを動的に設定できる。また、セカンダリメモリ開始アドレスレジスタを設けているので、CPU5によって、領域の境界を動的に設定できる。   Furthermore, according to the present embodiment, as shown in FIG. 4, a memory type register and an access timing register are provided for each of the primary memory area and the secondary memory area. Therefore, the CPU 5 can dynamically set the type of the external memory 50, the data bus width of the external bus 51, and the access timing to the external memory 50 for each area. In addition, since the secondary memory start address register is provided, the CPU 5 can dynamically set the boundary of the area.

なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。   The present invention is not limited to the above-described embodiment, and can be implemented in various modes without departing from the gist thereof. For example, the following modifications are possible.

(1)上記では、外部メモリインタフェース3に対して、外部バスアクセス要求ができるのは、IPL35、CPU5、及びDMAC4だけであったが、より多くの機能ユニットが外部バスアクセス要求を行えるようにすることもできる。   (1) In the above description, only the IPL 35, the CPU 5, and the DMAC 4 can make an external bus access request to the external memory interface 3. However, more functional units can make an external bus access request. You can also.

(2)上記では、DMAC4に対してDMA転送要求ができるのは、CPU5、RPU9、及びSPU13だけであったが、より多くの機能ユニットあるいはより少ない機能ユニットがDMA転送要求を行えるようにすることもできる。この場合、DMA転送要求が可能な機能ユニットの数と同じ数のリクエストバッファをDMAC4に設ける。また、リクエストキュー45のエントリ数は、4つに限定されない。   (2) In the above description, only the CPU 5, RPU 9, and SPU 13 can make a DMA transfer request to the DMAC 4, but more functional units or fewer functional units can make a DMA transfer request. You can also. In this case, the DMAC 4 is provided with the same number of request buffers as the number of functional units that can make a DMA transfer request. Further, the number of entries in the request queue 45 is not limited to four.

(3)上記では、外部バス51のアドレス空間を2つの領域に分割したが、3以上の領域に分割することもできる。この場合は、領域の数と同じ数の、メモリタイプレジスタ及びアクセスタイミングレジスタの組を設ける。   (3) In the above description, the address space of the external bus 51 is divided into two areas, but it can also be divided into three or more areas. In this case, the same number of sets of memory type registers and access timing registers as the number of areas are provided.

(4)上記では、3つのメモリインタフェース40〜42を設けたが、2つ以下でもよいし、4以上設けることもできる。また、メモリインタフェースとして、NORインタフェース、ページモード付NORインタフェース、及びNANDインタフェースをサポートしたが、メモリインタフェースのタイプはこれらに限定されない。   (4) In the above description, the three memory interfaces 40 to 42 are provided, but the number may be two or less, or four or more. Further, although the NOR interface, the NOR interface with page mode, and the NAND interface are supported as the memory interface, the type of the memory interface is not limited to these.

(5)上記では、CPU5だけが、I/Oバス27を使用し、他の機能ユニットの制御を行ったが、複数の機能ユニットがI/Oバス27により他の機能ユニットを制御できるようにすることもできる。   (5) In the above, only the CPU 5 uses the I / O bus 27 to control other functional units, but a plurality of functional units can control other functional units by the I / O bus 27. You can also

(6)上記では、EBI優先順位テーブルは固定であったが、所定条件の成立によって、複数の異なるEBI優先順位テーブルを切り替えて使用することもできる。また、2つのDMA優先順位テーブルを切り替えて使用したが、3以上のDMA優先順位テーブルを切り替えて使用することもできる。   (6) In the above description, the EBI priority order table is fixed. However, a plurality of different EBI priority order tables can be switched and used when a predetermined condition is satisfied. In addition, although two DMA priority tables are used by switching, three or more DMA priority tables can also be used by switching.

本発明の実施の形態によるマルチメディアプロセッサ1の内部構成を示すブロック図である。It is a block diagram which shows the internal structure of the multimedia processor 1 by embodiment of this invention. 外部バス51のアドレス空間の説明図である。4 is an explanatory diagram of an address space of an external bus 51. FIG. 外部メモリインタフェース3による調停の際に参照されるEBI優先順位テーブルの例示図である。It is an illustration figure of the EBI priority table referred in the case of mediation by the external memory interface 3. 外部メモリインタフェース3が備える制御レジスタの説明図である。It is explanatory drawing of the control register with which the external memory interface 3 is provided. DMAC4のリクエストキュー45及びその周辺部を示すブロック図である。It is a block diagram which shows the request queue 45 of DMAC4, and its peripheral part. DMAC4による調停の際に参照されるDMA優先順位テーブルの例示図である。It is an illustration figure of the DMA priority order table referred in the case of arbitration by DMAC4. DMAC4が備える制御レジスタの説明図である。It is explanatory drawing of the control register with which DMAC4 is provided. NORインタフェースにおけるランダムアクセスのリードサイクルを示すタイミングチャートである。It is a timing chart which shows the read cycle of random access in a NOR interface. ページモード付NORインタフェースにおけるページモードアクセスのリードサイクルを示すタイミングチャートである。It is a timing chart which shows the read cycle of page mode access in a NOR interface with page mode. NORインタフェースにおけるランダムアクセスのライトサイクルを示すタイミングチャートである。It is a timing chart which shows the write cycle of random access in a NOR interface. NANDインタフェースにおけるリードサイクルを示すタイミングチャートである。3 is a timing chart showing a read cycle in a NAND interface.

符号の説明Explanation of symbols

1…マルチメディアプロセッサ、3…外部メモリインタフェース、4…DMAC、5…CPU、9…RPU、13…SPU、17…GE、19…YSU、21…外部インタフェースブロック、23…メインRAMアクセスアービタ、25…メインRAM、27…I/Oバス、40〜42…メモリインタフェース(MIF)、44…DMAリクエストアービタ、45…リクエストキュー、46…DMA実行ユニット、51…外部バス、50…外部メモリ、105,109,113…リクエストバッファ。
DESCRIPTION OF SYMBOLS 1 ... Multimedia processor, 3 ... External memory interface, 4 ... DMAC, 5 ... CPU, 9 ... RPU, 13 ... SPU, 17 ... GE, 19 ... YSU, 21 ... External interface block, 23 ... Main RAM access arbiter, 25 ... main RAM, 27 ... I / O bus, 40-42 ... memory interface (MIF), 44 ... DMA request arbiter, 45 ... request queue, 46 ... DMA execution unit, 51 ... external bus, 50 ... external memory, 105, 109, 113: Request buffer.

Claims (11)

外部バスへのアクセスが可能なマルチプロセッサであって、
各々演算処理を実行する複数のプロセッサコアと、
前記複数のプロセッサコアによって共有される内部メモリと、
前記プロセッサコアの一部または全部からのダイレクトメモリアクセス転送要求を調停して、前記内部メモリと、前記外部バスに接続される外部メモリと、の間でダイレクトメモリアクセス転送を行うダイレクトメモリアクセスコントローラと、
前記プロセッサコアの一部または全部および前記ダイレクトメモリアクセスコントローラからの前記外部バスの使用要求を調停して、いずれか1つの前記プロセッサコアまたは前記ダイレクトメモリアクセスコントローラに対して前記外部バスへのアクセスを許可する外部メモリインタフェースと、を備え
少なくとも前記1つの前記プロセッサコアは、前記ダイレクトメモリアクセスコントローラに対して前記ダイレクトメモリアクセス転送要求を発行する機能と、前記外部メモリインタフェースに対して前記外部バスの使用要求を発行する機能と、を有するマルチプロセッサ。
A multiprocessor capable of accessing an external bus,
A plurality of processor cores each executing arithmetic processing;
An internal memory shared by the plurality of processor cores;
A direct memory access controller that arbitrates direct memory access transfer requests from a part or all of the processor core and performs direct memory access transfer between the internal memory and the external memory connected to the external bus; ,
Arbitration requests for the use of the external bus from part or all of the processor core and the direct memory access controller are made to access any one of the processor core or the direct memory access controller to the external bus. An external memory interface to allow ,
The at least one processor core has a function of issuing the direct memory access transfer request to the direct memory access controller and a function of issuing a request to use the external bus to the external memory interface. multiprocessor you.
前記少なくとも1つのプロセッサコアは、離散したアドレスにランダムにデータアクセスを行う場合は、前記外部メモリインタフェースに対して、前記外部バスの使用要求を発行し、データのブロック転送又は仮想記憶管理機構が要求するページスワップを行う場合は、前記ダイレクトメモリアクセスコントローラに対して、前記ダイレクトメモリアクセス転送要求を発行する、請求項1記載のマルチプロセッサ。  The at least one processor core issues a request to use the external bus to the external memory interface when performing random data access to a discrete address, and the data block transfer or virtual memory management mechanism requests The multiprocessor according to claim 1, wherein when performing page swap, the direct memory access transfer request is issued to the direct memory access controller. 前記少なくとも1つのプロセッサコアは、離散したアドレスにランダムにデータアクセスを行う場合は、前記外部メモリインタフェースに対して、前記外部バスの使用要求を発行し、データのブロック転送を行う場合は、前記ダイレクトメモリアクセスコントローラに対して、前記ダイレクトメモリアクセス転送要求を発行する、請求項1記載のマルチプロセッサ。  The at least one processor core issues a request to use the external bus to the external memory interface when performing random data access to discrete addresses, and directs the data when performing block transfer of data. The multiprocessor according to claim 1, wherein the direct memory access transfer request is issued to a memory access controller. 前記複数のプロセッサコアは、中央演算処理装置、サウンドプロセッシングユニット、及び、レンダリングプロセッシングユニット、を含み、The plurality of processor cores include a central processing unit, a sound processing unit, and a rendering processing unit,
前記中央演算処理装置が発行可能な前記外部バスの使用要求は、データアクセス要求、又は、命令フェッチ要求であり、The use request of the external bus that can be issued by the central processing unit is a data access request or an instruction fetch request,
前記サウンドプロセッシングユニットの前記ダイレクトメモリアクセス転送要求は、ウェーブデータの転送要求、又は、エンベロープデータの転送要求であり、The direct memory access transfer request of the sound processing unit is a wave data transfer request or an envelope data transfer request,
前記レンダリングプロセッシングユニットの前記ダイレクトメモリアクセス転送要求は、テクスチャパターンデータの転送要求であり、The direct memory access transfer request of the rendering processing unit is a texture pattern data transfer request,
前記中央演算処理装置の前記ダイレクトメモリアクセス転送要求は、アプリケーションプログラムが要求するデータ転送要求である、請求項1から3のいずれかに記載のマルチプロセッサ。4. The multiprocessor according to claim 1, wherein the direct memory access transfer request of the central processing unit is a data transfer request requested by an application program.
前記中央演算処理装置が発行可能な前記外部バスの使用要求は、前記データアクセス要求、前記命令フェッチ要求、又は、起動プログラムを含むブロック転送要求であり、The use request of the external bus that can be issued by the central processing unit is the data access request, the instruction fetch request, or a block transfer request including an activation program,
前記中央演算処理装置の前記ダイレクトメモリアクセス転送要求は、アプリケーションプログラムが要求する前記データ転送要求、又は、仮想記憶管理においてページミスが発生した場合のページ転送要求である、請求項4記載のマルチプロセッサ。5. The multiprocessor according to claim 4, wherein the direct memory access transfer request of the central processing unit is the data transfer request requested by an application program or a page transfer request when a page miss occurs in virtual memory management. .
前記サウンドプロセッシングユニットの前記ウェーブデータの転送要求と前記エンベロープデータの転送要求との間の調停は、前記サウンドプロセッシングユニットにより行われ、Arbitration between the wave data transfer request and the envelope data transfer request of the sound processing unit is performed by the sound processing unit,
前記中央演算処理装置の前記データ転送要求と前記ページ転送要求との間の調停は、前記中央演算処理装置により行われる、請求項5記載のマルチプロセッサ。The multiprocessor according to claim 5, wherein arbitration between the data transfer request and the page transfer request of the central processing unit is performed by the central processing unit.
前記ダイレクトアクセスメモリコントローラは、
各々が、対応する前記プロセッサコアからの前記ダイレクトメモリアクセス転送要求を格納する複数のバッファと、
複数の前記バッファが送出した複数の前記ダイレクトメモリアクセス転送要求を調停して、いずれか1つの前記ダイレクトメモリアクセス転送要求を出力する調停手段と、
複数の前記ダイレクトメモリアクセス転送要求を保持でき、前記調停手段が出力した前記ダイレクトメモリアクセス転送要求を受け取った順に出力するキューと、
前記キューが出力した前記ダイレクトメモリアクセス転送要求に応じたダイレクトメモリアクセス転送を実行するダイレクトメモリアクセス転送実行手段と、を含む請求項1から6のいずれかに記載のマルチプロセッサ。
The direct access memory controller is
A plurality of buffers each storing the direct memory access transfer request from the corresponding processor core;
Arbitration means for arbitrating a plurality of the direct memory access transfer requests sent by the plurality of buffers and outputting any one of the direct memory access transfer requests;
A queue that can hold a plurality of the direct memory access transfer requests, and outputs the direct memory access transfer requests output by the arbitration means in the order received;
The multiprocessor according to claim 1, further comprising direct memory access transfer execution means for executing direct memory access transfer in response to the direct memory access transfer request output from the queue.
前記外部メモリインタフェースは、前記外部バスの使用要求を行うことができる前記プロセッサコアおよび前記ダイレクトメモリアクセスコントローラの優先順位を定めた優先順位テーブルに従って調停を行い、
前記優先順位テーブルは複数用意され、互いに優先順位が異なっている、請求項1から7のいずれかに記載のマルチプロセッサ。
The external memory interface performs arbitration according to a priority table that defines priorities of the processor core and the direct memory access controller that can make a request to use the external bus,
The multiprocessor according to any one of claims 1 to 7, wherein a plurality of the priority order tables are prepared and have different priority orders.
前記外部メモリインタフェースは、所定条件が成立したときに、前記優先順位テーブルを切り替えて調停を行う、請求項記載のマルチプロセッサ。 The multiprocessor according to claim 8 , wherein the external memory interface performs arbitration by switching the priority table when a predetermined condition is satisfied. 前記所定条件は、所定の前記プロセッサコアまたは前記ダイレクトメモリアクセスコントローラからの前記外部バスの使用要求が所定時間待たされたことである、請求項記載のマルチプロセッサ。 The multiprocessor according to claim 9 , wherein the predetermined condition is that a request for use of the external bus from the predetermined processor core or the direct memory access controller is waited for a predetermined time. 前記外部バスインタフェースは、少なくとも1つの前記プロセッサコアがアクセス可能な制御レジスタを含み、前記少なくとも1つのプロセッサコアにより前記制御レジスタに所定値が設定されたことを追加条件として、前記優先順位テーブルの切り替えを行う、請求項10記載のマルチプロセッサ。 The external bus interface includes a control register accessible by at least one of the processor cores, and the priority table is switched with an additional condition that a predetermined value is set in the control register by the at least one processor core. The multiprocessor according to claim 10, wherein:
JP2005239533A 2005-08-22 2005-08-22 Multiprocessor Expired - Fee Related JP4848562B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005239533A JP4848562B2 (en) 2005-08-22 2005-08-22 Multiprocessor
PCT/JP2006/316787 WO2007023975A1 (en) 2005-08-22 2006-08-21 Multi-processor, direct memory access controller, and serial data transmitting/receiving apparatus
US12/064,179 US20090259789A1 (en) 2005-08-22 2006-08-21 Multi-processor, direct memory access controller, and serial data transmitting/receiving apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005239533A JP4848562B2 (en) 2005-08-22 2005-08-22 Multiprocessor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010201547A Division JP2011034570A (en) 2010-09-09 2010-09-09 Multiprocessor

Publications (2)

Publication Number Publication Date
JP2007058276A JP2007058276A (en) 2007-03-08
JP4848562B2 true JP4848562B2 (en) 2011-12-28

Family

ID=37921765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005239533A Expired - Fee Related JP4848562B2 (en) 2005-08-22 2005-08-22 Multiprocessor

Country Status (1)

Country Link
JP (1) JP4848562B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103119574B (en) 2010-06-22 2016-01-20 富士通株式会社 Data transmission control device and method
US9348537B2 (en) * 2013-09-10 2016-05-24 Qualcomm Incorporated Ascertaining command completion in flash memories

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250311A (en) * 1992-01-28 1993-09-28 Nec Corp Bus controller
TW439380B (en) * 1995-10-09 2001-06-07 Hitachi Ltd Terminal apparatus
JPH10133945A (en) * 1996-11-01 1998-05-22 Nec Corp Data processor
JP3467382B2 (en) * 1997-05-06 2003-11-17 新世代株式会社 High speed processor
JP3541112B2 (en) * 1997-02-17 2004-07-07 新世代株式会社 Bus arbitration system
JP3985085B2 (en) * 1999-03-18 2007-10-03 コニカミノルタビジネステクノロジーズ株式会社 DMA controller
JP2000259550A (en) * 1999-03-12 2000-09-22 Minolta Co Ltd Dma controller
JP2002342301A (en) * 2001-05-15 2002-11-29 Toshiba Corp Microcomputer provided with coprocessor
JP2004127245A (en) * 2002-08-07 2004-04-22 Matsushita Electric Ind Co Ltd Semiconductor integrated circuit device

Also Published As

Publication number Publication date
JP2007058276A (en) 2007-03-08

Similar Documents

Publication Publication Date Title
JP6009692B2 (en) Multi-mode memory access technique for graphics processing unit based memory transfer operations
US20090259789A1 (en) Multi-processor, direct memory access controller, and serial data transmitting/receiving apparatus
JPH04299389A (en) Display system
JP3350043B2 (en) Graphic processing apparatus and graphic processing method
EP2495665B1 (en) Command transfer controlling apparatus and command transfer controlling method
US7096312B2 (en) Data transfer device and method for multidimensional memory
US9172839B2 (en) Image forming apparatus, control method and storage medium
AU2012218103A1 (en) Layer blending with Alpha values of edges for image translation
US6795075B1 (en) Graphic processor having multiple geometric operation units and method of processing data thereby
JP4848562B2 (en) Multiprocessor
JP2012008715A (en) Data processing device
JP4625929B2 (en) Direct memory access controller
JP2011034570A (en) Multiprocessor
US8151015B2 (en) Systems and methods for effecting DMA data transfers
JP2015194918A (en) data transfer control device and memory built-in device
JP6160317B2 (en) Image processing apparatus and program
JP2008083827A (en) Data width variable fifo memory, fifo memory and storage device
EP0542318B1 (en) Digital processor and method for controlling the same
JP2006094400A (en) Image processor and image processing method
JP4137903B2 (en) Graphics display device and graphics processor
US20100153610A1 (en) Bus arbiter and bus system
JP2966182B2 (en) Computer system
JP2520160B2 (en) Graphic processing LSI circuit
JP2007132961A (en) Multimedia processor and sound processor
JP5061272B2 (en) Serial data transmitter / receiver

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101207

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110930

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141028

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees