JP2003521751A - Handheld audio decoder - Google Patents

Handheld audio decoder

Info

Publication number
JP2003521751A
JP2003521751A JP2001557039A JP2001557039A JP2003521751A JP 2003521751 A JP2003521751 A JP 2003521751A JP 2001557039 A JP2001557039 A JP 2001557039A JP 2001557039 A JP2001557039 A JP 2001557039A JP 2003521751 A JP2003521751 A JP 2003521751A
Authority
JP
Japan
Prior art keywords
audio
memory
cache
security
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001557039A
Other languages
Japanese (ja)
Inventor
ノース、グレゴリー、アレン
ペリー、マシュー、リチャード
カーチャー、ブライアン、クリストファー
Original Assignee
シラス ロジック、インコーポレイテッド
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 シラス ロジック、インコーポレイテッド filed Critical シラス ロジック、インコーポレイテッド
Publication of JP2003521751A publication Critical patent/JP2003521751A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/16Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/1097Boot, Start, Initialise, Power

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

(57)【要約】 ハンドヘルド・オーディオ・デコーダは、符号化されたデジタル・オーディオ・データ・ストリームを復号するための命令セットに応答して作動する中央演算処理装置を含む。オーディオ・デコーダは、命令セットを記憶するメモリと、符号化されたデジタルオーディオ・データ・ストリームからオーディオを生成するデジタル/アナログ変換回路も含む。 SUMMARY A handheld audio decoder includes a central processing unit that operates in response to a set of instructions for decoding an encoded digital audio data stream. The audio decoder also includes a memory for storing the instruction set, and a digital / analog conversion circuit for generating audio from the encoded digital audio data stream.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】 (発明の分野) 本発明は、一般には電子機器に関し、より詳細には個人電子機器における情報
のプライベート化のための回路、システム、および方法に関する。
FIELD OF THE INVENTION The present invention relates generally to electronic devices, and more particularly to circuits, systems, and methods for privatizing information in personal electronic devices.

【0002】 (関連技術の説明) 新技術により高度な機能を備えた手ごろな価格のデバイスの製造が可能になっ
たのに伴い、ハンドヘルド型の個人電子機器が一般に普及しつつある。このよう
なデバイスの1つは携帯型のデジタル・オーディオ・プレーヤであるが、これは
デジタルのオーディオ・データをダウンロードし、そのデータを読み出し/書き
込み可能なメモリに記憶し、ユーザの要求に応じてそのデータをオーディオに変
換する。デジタル・データは、MPEG Layer3、ACC、およびMSオ
ーディオ・プロトコルを含むいくつかの形態のいずれかでネットワークからダウ
ンロードされ、またはコンパクト・ディスクなどの固定媒体から取り出される。
適切なファームウェアによってサポートされたオーディオ・デコーダは、メモリ
から符号化データを取り出し、対応する復号化アルゴリズムを適用し、符号化デ
ータをアナログ形態に変換してヘッドセットやその他の携帯型スピーカー・シス
テムを駆動する。
(Description of Related Art) With the new technology enabling the manufacture of affordable devices with advanced functions, handheld personal electronic devices are becoming popular. One such device is a portable digital audio player, which downloads digital audio data, stores it in a readable / writable memory, and, at the user's request, Convert that data to audio. Digital data is downloaded from a network in any of several forms, including MPEG Layer3, ACC, and MS audio protocols, or retrieved from fixed media such as compact discs.
An audio decoder, supported by the appropriate firmware, retrieves the encoded data from memory and applies the corresponding decoding algorithms to convert the encoded data to analog form for headsets and other portable speaker systems. To drive.

【0003】 音楽など著作権で保護されている材料が無許可でダウンロードされるのを防ぐ
ために、個人機器の操作を制御する何らかの手段が望まれる。これは、例えば、
関連情報のダウンロードを許可するパスワードやソフトウェア・カーネルの発行
を通じて実装することが可能である。パスワードやソフトウェアは、エンド・ユ
ーザによるコピー、配布、および改ざんを防止するために保護しなければならな
い。さらに、オーディオ・デコーダは独自のファームウェアから操作することも
可能なので、そのようなファームウェアもコピーや改ざんから保護しなければな
らない。
In order to prevent unauthorized download of copyrighted material such as music, some means of controlling the operation of personal equipment is desired. This is, for example,
It can be implemented by issuing a password or software kernel that allows the download of related information. Passwords and software must be protected to prevent copying, distribution, and tampering by end users. In addition, audio decoders can also be operated from their own firmware, which must also be protected from copying and tampering.

【0004】 要するに、必要とされるのは、個人デジタル機器中の情報を保護するための方
法、回路、およびシステムである。この目的のためには、そうした情報を保護す
る能力は、主要な処理チップの内部のメモリであろうと外部のメモリであろうと
情報が機器のどこに記憶されるかに依存するべきではない。さらに、セキュリテ
ィを実装することにより、使用可能なメモリ空間など、より直接的に処理動作に
使用することのできる資源が浪費されないことが好ましい。また、セキュリティ
の方法およびハードウェアは、幅広い各種のシステム構成に適用できることが好
ましい。
In summary, what is needed is a method, circuit, and system for protecting information in a personal digital device. For this purpose, the ability to protect such information should not depend on where the information is stored on the device, whether internal or external to the main processing chip. Furthermore, it is preferred that security is implemented so that resources that can be used more directly for processing operations, such as available memory space, are not wasted. Also, the security method and hardware are preferably applicable to a wide variety of system configurations.

【0005】 (発明の概要) 本発明の原理によると、情報を処理するための命令セットに応答して動作する
中央演算処理装置を含むシステムが開示される。インタフェースが含まれ、これ
はシステムの一部を形成する選択された回路への外部装置からのアクセスを提供
する。不揮発性のプログラマブルなセキュリティ要素のセットがインタフェース
の動作を選択的に使用可能および使用不能にすることにより、情報を処理するた
めのプライベートな環境を提供する。本発明の原理は、特に、個人デジタル機器
中の情報をプライベート化する能力を提供する。この原理は、利用可能なメモリ
空間など、より直接的に処理動作に使用することのできる処理資源を浪費しない
ような方式で実装することができる。さらに、この原理は幅広い各種のシステム
構成に適用することができ、主要な処理チップの内部にあるメモリ内であっても
、外部のメモリ内であっても、機器中のどこにプライベートな情報が記憶される
かに依存しない。
SUMMARY OF THE INVENTION In accordance with the principles of the present invention, a system is disclosed that includes a central processing unit that operates in response to an instruction set for processing information. An interface is included, which provides access from external devices to selected circuits forming part of the system. A set of non-volatile programmable security elements selectively enable and disable operation of the interface to provide a private environment for processing information. The principles of the present invention provide, among other things, the ability to privatize information in personal digital devices. This principle can be implemented in a manner that does not waste processing resources, such as available memory space, that can be used more directly for processing operations. Moreover, this principle can be applied to a wide variety of system configurations, where private information is stored anywhere in the device, whether in internal or external memory of the main processing chip. It doesn't depend on what is done.

【0006】 本発明、およびその利点をより完全に理解できるように、添付の図面と併せて
以下の説明を参照する。
For a more complete understanding of the present invention, and its advantages, reference is made to the following description in conjunction with the accompanying drawings.

【0007】 (好ましい実施形態の説明) 本発明の原理およびその利点は、図1〜17に示す実施形態を参照することに
より最もよく理解することができるが、これらの図面中同じ番号は同じ部分を表
す。
DESCRIPTION OF THE PREFERRED EMBODIMENTS The principles of the present invention and its advantages may best be understood by referring to the embodiments illustrated in FIGS. 1-17, where like numbers indicate like parts. Represents

【0008】 図1Aは、本発明の原理を実施する集積回路100のハイ・レベル機能ブロッ
ク図である。集積回路100は、例えばCirrus Logic EPxx集
積回路などである。集積回路100は、特に携帯情報端末、電子手帳、双方向ペ
ージャを含む複数の消費者向けおよび産業用のハンドヘルド情報機器に利用する
ことができ好都合である。具体的には、集積回路100は、電池式のインターネ
ット・オーディオ・デコーダでオーディオ処理を実行するように構成することが
できる。
FIG. 1A is a high level functional block diagram of an integrated circuit 100 embodying the principles of the present invention. The integrated circuit 100 is, for example, a Cirrus Logic EPxx integrated circuit. The integrated circuit 100 can be conveniently used in a plurality of consumer and industrial handheld information devices, including in particular personal digital assistants, electronic organizers, interactive pagers. Specifically, the integrated circuit 100 can be configured to perform audio processing with a battery-powered Internet audio decoder.

【0009】 本発明の原理を有利に適用することのできるこの他2つの例示的システムを図
1Bおよび1Cに示し、下記でさらに説明する。
Two other exemplary systems in which the principles of the present invention may be advantageously applied are shown in FIGS. 1B and 1C and described further below.

【0010】 図2はあるシステム構成による集積回路を示し、この図は集積回路100の各
種の機能ブロックの入出力信号(ポート)を説明する際に参照する。
FIG. 2 shows an integrated circuit according to a certain system configuration, and this figure will be referred to when explaining input / output signals (ports) of various functional blocks of the integrated circuit 100.

【0011】 集積回路100は、英国ケンブリッジのARM社から入手可能なARM720
Tデータ・シートに記載されるARM720Tプロセッサ101を中心として構
築される。一般に、プロセッサ101は、中央演算処理装置(CPU)コア10
2、8キロバイト・キャッシュ103、メモリ管理ユニット(MMU)104、
および書き込みバッファ105を含み、それぞれについては下記でさらに詳しく
説明する。代替実施形態では、ARM920プロセッサを使用してもよいことに
留意されたい。
The integrated circuit 100 is an ARM720 available from ARM Limited, Cambridge, England.
It is built around the ARM720T processor 101 described in the T data sheet. Generally, the processor 101 is a central processing unit (CPU) core 10.
2.8 kilobyte cache 103, memory management unit (MMU) 104,
And write buffer 105, each of which is described in further detail below. Note that in an alternative embodiment, an ARM920 processor may be used.

【0012】 CPU102は、縮小命令セット・コンピュータ(RISC)アーキテクチャ
に基づく32ビット・マイクロプロセッサである。関連する8キロバイト・キャ
ッシュ103は、混合型の命令/データ・キャッシュ(IDC)であり、16バ
イト(4ワード)のライン512個からなる4ウェイ・セットアソシエイティブ
・キャッシュとして編成される。
The CPU 102 is a 32-bit microprocessor based on the reduced instruction set computer (RISC) architecture. The associated 8-kilobyte cache 103 is a mixed instruction / data cache (IDC), organized as a 4-way set associative cache consisting of 512 lines of 16 bytes (4 words).

【0013】 MMU104は、変換索引バッファ(TLB)、アクセス制御ロジック、およ
び変換テーブルウォーキング・ロジックを含む。MMU104の主要機能は、仮
想アドレスの物理アドレスへの変換と、メモリ・アクセスの制御である。MMU
104は、従来の2レベルのページ・テーブル構造もサポートする。一般に、T
LBは64個の変換済みのエントリをキャッシュし、関連付けられたアクセス制
御ロジックへの変換を提供する。仮想アドレスによりTLB中の変換済みエント
リにヒットがあった場合は、アクセス制御ロジックが、そのアクセスを許可する
かどうかを決定する。アクセスが許可された場合は、MMU104はそれに対応
する物理アドレスをTLBキャッシュから出力する。反対にアクセスが許可され
ない場合、MMU104はCPU102に中止を実行するように通知する。仮想
アドレスの結果TLBキャッシュにヒットがない(ミス)場合は、変換テーブル
・ウォーキング回路が、物理メモリ中の変換テーブルから必要な変換情報を取り
出す。この変換情報は、TLBキャッシュの置換用のポイントまたはエントリに
書き込まれる。これによりアクセス制御ロジックはアクセスを許可するか否かを
決定することができる。
The MMU 104 includes a translation lookaside buffer (TLB), access control logic, and translation table walking logic. The main functions of MMU 104 are the translation of virtual addresses into physical addresses and the control of memory access. MMU
104 also supports a conventional two-level page table structure. Generally, T
The LB caches the 64 translated entries and provides the translation to the associated access control logic. If the virtual address hits the translated entry in the TLB, the access control logic determines whether to allow the access. When the access is permitted, the MMU 104 outputs the corresponding physical address from the TLB cache. On the contrary, when the access is not permitted, the MMU 104 notifies the CPU 102 to execute the stop. When there is no hit (miss) in the TLB cache of the virtual address, the translation table walking circuit extracts the required translation information from the translation table in the physical memory. This translation information is written to a replacement point or entry in the TLB cache. This allows the access control logic to determine whether to allow access.

【0014】 書き込みバッファ105は、最高で8ワードのデータと4つの独立アドレスを
バッファリングするのに使用される。これが使用可能になっている際、CPU1
02は、外部クロックを使用してデータまたは命令を書き込みバッファ105に
書き込み、命令の実行に戻る。書き込みバッファ105は、これと並行して内部
データ・バス106にデータを書き込み、内部アドレス・バス107にアドレス
を書き込むことができる。
Write buffer 105 is used to buffer up to 8 words of data and 4 independent addresses. When this is enabled, CPU1
02 uses the external clock to write data or instructions to write buffer 105 and returns to instruction execution. In parallel with this, the write buffer 105 can write data to the internal data bus 106 and write an address to the internal address bus 107.

【0015】 3.6864MHzの水晶109によって駆動されるオンチップの位相同期ル
ープ(PLL)108は、クロックをプロセッサ101に提供するためにあるモ
ードで使用される。ARM720Tを使用する実施形態では、主要な(CPU)
クロックは、18.432MHz、36.864MHz、49.152MHz、
または73.728MHzのいずれかにプログラムすることができる。(PLL
108は、可能な最高のCPUクロック周波数の2倍、すなわち147.456
MHzで動作することが好ましい。)CPUのクロック周波数を36.864M
HZに選択した場合、内部データ・バス106および内部アドレス・バス107
もおよそ36MHzのクロックで動作する。36MHzを超えるCPUクロック
周波数の場合は、プロセッサ101のみがその周波数以上のクロック速度で動作
し、内部データ・バス106および内部アドレス・バス107は36MHzの速
度でクロック制御される。CPUのクロック周波数は、システム制御レジスタS
YSCON3に2ビットのレジスタ・フィールドをプログラムすることによって
選択する。(集積回路100の内部レジスタのリストを表1として提供する。こ
れらレジスタの完全な説明は「Cirrus Logic EP7211 Pr
eliminary Data Sheet」から得られる。この文献は参照に
より本明細書に組み込む。
An on-chip phase-locked loop (PLL) 108 driven by a 3.6864 MHz crystal 109 is used in one mode to provide a clock to the processor 101. In the embodiment using ARM720T, the main (CPU)
The clock is 18.432MHz, 36.864MHz, 49.152MHz,
Or it can be programmed to either 73.728 MHz. (PLL
108 is twice the highest possible CPU clock frequency, ie 147.456.
It is preferably operated at MHz. ) CPU clock frequency is 36.864M
When selected for HZ, internal data bus 106 and internal address bus 107
Also operates with a clock of approximately 36 MHz. For CPU clock frequencies above 36 MHz, only processor 101 operates at a clock speed above that frequency and internal data bus 106 and internal address bus 107 are clocked at a speed of 36 MHz. The clock frequency of the CPU is the system control register S
Select by programming a 2-bit register field in YSCON3. (A list of internal registers of integrated circuit 100 is provided as Table 1. A complete description of these registers can be found in "Cirrus Logic EP7211 Pr".
“Eliminary Data Sheet”. This document is incorporated herein by reference.

【0016】 集積回路100は外部クロック入力も含み、これにより実質的にすべてのオン
チップ回路を第2のクロック・モードで駆動させるために13MHzの外部クロ
ックを入力することが可能になることに留意されたい。図4Aおよび4Bに示す
ように、ピンCLKENでクロック・イネーブル信号がアサートされると、外部
クロックはピンEXPCLKを駆動させる。図4Aは集積回路100が待機状態
に入る場合を示し、図4Bは待機状態を終了する場合を示す。(待機状態につい
ては下記でさらに説明する。)
Note that integrated circuit 100 also includes an external clock input, which allows input of an external clock of 13 MHz to drive substantially all on-chip circuitry in the second clock mode. I want to be done. The external clock drives pin EXPCLK when the clock enable signal is asserted at pin CLKEN, as shown in FIGS. 4A and 4B. 4A shows the case where the integrated circuit 100 enters the standby state, and FIG. 4B shows the case where the standby state is ended. (The standby state is described further below.)

【0017】 発振器110は、32ビットの実時間クロック・ジェネレータ(RTC)11
2を駆動するのに使用される1ヘルツ・クロックを生成するのに使用される。R
TC112は、32ビットの出力マッチ・レジスタに書き込まれ、ここから読み
出され、またこれを含むことができる。出力マッチ・レジスタは、RTCの時間
が事前に決められた特定の時間と一致したときに割込みを発行することを可能に
する。RTC112は、プログラマブルなLEDフラッシャ(図示せず)の駆動
にも使用される。
The oscillator 110 is a 32-bit real-time clock generator (RTC) 11
Used to generate the 1 Hertz clock used to drive 2. R
The TC 112 can be written to, read from, and include a 32-bit output match register. The output match register allows an interrupt to be issued when the RTC time matches a certain predetermined time. The RTC 112 is also used to drive a programmable LED flasher (not shown).

【0018】 さらに、集積回路100は、1対のオンチップのタイマ・カウンタ113を含
む。各タイマ・カウンタは独立しており、16ビットの読み出し/書き込み可能
なデータ・レジスタを含む。所与のカウンタは所望の値にロードされ、事前に選
択されたクロックに応答して減分される。タイマ・カウンタが下位桁あふれを起
こす(すなわちゼロに達する)と、適切な割込みが生成される。タイマ・カウン
タ・レジスタはいつでも読み出すことができる。これらタイマのクロック周波数
は、システム制御レジスタSYSCON中の対応するビットに書き込むことによ
って選択することができる。例えば、PLL108が内部クロックをソースとす
る場合、タイマ・カウンタ113は512kHzおよび2kHzの速度を使用す
ることができる。外部ソースからの13MHzクロックを使用する場合は、54
1kHzおよび2.115kHzのクロックを利用することができる。さらに、
システム制御レジスタSYSCON2中のビットを設定することによって可能に
なる、26で除算を行う回路を使用することにより、13MHzのソースから5
00kHzクロックを生成することも可能である。
In addition, integrated circuit 100 includes a pair of on-chip timer / counters 113. Each timer counter is independent and contains a 16-bit readable / writable data register. A given counter is loaded with the desired value and decremented in response to a preselected clock. When the timer counter overflows low (ie, reaches zero), an appropriate interrupt is generated. The timer counter register can be read at any time. The clock frequency of these timers can be selected by writing to the corresponding bits in the system control register SYSCON. For example, if the PLL 108 is sourced from an internal clock, the timer counter 113 can use rates of 512 kHz and 2 kHz. 54 if using a 13 MHz clock from an external source
Clocks of 1 kHz and 2.115 kHz are available. further,
5 from a 13 MHz source by using a circuit that divides by 26, enabled by setting a bit in the system control register SYSCON2.
It is also possible to generate a 00 kHz clock.

【0019】 各タイマ・カウンタ113は、システム制御レジスタSYSCON1中のビッ
トを設定またはクリアすることにより、フリー・ランニング・モードまたはプレ
スケール(prescale)・モードで動作することができる。フリー・ラン
ニング・モードでは、所与のカウンタは下位桁あふれを起こす(すなわちゼロに
達する)と0xFFFFに折り返し、カウント・ダウンを続ける。プレスケール
・モードでは、カウンタが下位桁あふれを起こすと所与のタイマ・カウンタに書
き込まれた値が自動的に再ロードされる。プレスケール・モードは、プログラマ
ブルな周波数を作る、ブザーを駆動させる、あるいは周期的な割込みを生成する
ために使用することができる。
Each timer counter 113 can operate in a free running mode or a prescale mode by setting or clearing a bit in the system control register SYSCON1. In free-running mode, a given counter wraps to 0xFFFF when it underflows (ie, reaches zero) and continues counting down. In prescale mode, the value written to a given timer counter is automatically reloaded when the counter underflows. Prescale mode can be used to create a programmable frequency, drive a buzzer, or generate periodic interrupts.

【0020】 状態制御回路114は、集積回路100を作動状態、アイドル状態、あるいは
待機状態にセットすることを可能にする。状態制御回路114の動作を表す状態
図を図5に示す。作動状態は、通常のプログラム実行状態であり、すべてのクロ
ックおよび周辺ロジックが使用可能になっている。アイドル状態は作動状態に似
るが、割込みや、回路を作動状態に戻すためのウェークアップの間CPUクロッ
クを停止する点が異なる。待機状態では、PLL108はシャット・ダウンされ
るが、水晶111と発振器110、およびRTC回路112は稼動状態に保たれ
る。待機状態中には、パワー・ダウンした周辺機器が電流を消費するのを防ぐた
めに、外部のアドレス・バスおよびデータ・バスも動作を低下させる。集積回路
100は、最初に電源を投入した際、あるいはコールド・リセット中には強制的
に待機状態に置かれ、この状態は外部からのウェークアップ指示によってのみ終
了することができることに留意されたい。
The state control circuit 114 allows the integrated circuit 100 to be set to an active state, an idle state, or a standby state. A state diagram showing the operation of the state control circuit 114 is shown in FIG. The operating state is the normal program running state with all clocks and peripheral logic enabled. The idle state is similar to the active state, except that it interrupts the CPU clock during interrupts and wakeup to bring the circuit back into service. In the standby state, the PLL 108 is shut down, but the crystal 111, the oscillator 110, and the RTC circuit 112 are kept in operation. During the standby state, external address and data buses also slow down to prevent powered down peripherals from consuming current. It should be noted that the integrated circuit 100 is forced to a standby state when it is first turned on or during a cold reset, and this state can be terminated only by an external wakeup instruction.

【0021】 電源管理は、状態制御回路114以外にも電源管理制御ブロック115を通じ
ても行われる。各状態における集積回路100の各種機能ブロックの状態を表1
2に示す。電源管理回路115は、外部の電力供給ユニット201からアクティ
ブ・ローの電源異常信号PWRFLを受け取ると、集積回路100を待機モード
に置く。集積回路100を外部のDC電源202によって駆動させる場合、外部
電源感知入力信号EXTPWRをアクティブ・ローにする。電池203を使用す
る場合は、BATOKピンがアクティブ・ハイであるとメイン・バッテリが正常
であることを示す。この信号の立ち下がりによりFIQ(高速割込み要求)が生
成され、待機状態でこのピンの信号がロー・レベルになるとシステムの起動が禁
止される。新規電池感知信号BATCHGは、新しい電池が必要であることを示
す。電池の電圧が「電池なし」の閾値を下回ると、この入力がアクティブ・ロー
になる。集積回路100に電力を供給する電池は、例えば小売り消費者に広く流
通する1つまたは複数の標準的な単3電池でよい。
Power management is performed through the power management control block 115 as well as the state control circuit 114. Table 1 shows the states of various functional blocks of the integrated circuit 100 in each state.
2 shows. When the power management circuit 115 receives the active-low power failure signal PWRFL from the external power supply unit 201, it places the integrated circuit 100 in the standby mode. When the integrated circuit 100 is driven by the external DC power supply 202, the external power supply sensing input signal EXTPWR is made active low. When using battery 203, an active high on the BATOK pin indicates the main battery is normal. FIQ (fast interrupt request) is generated by the falling edge of this signal, and system activation is prohibited when the signal on this pin goes low in the standby state. The new battery detection signal BATCHG indicates that a new battery is needed. This input goes active low when the battery voltage falls below the “no battery” threshold. The batteries that power the integrated circuit 100 may be, for example, one or more standard AA batteries widely distributed to retail consumers.

【0022】 プログラムの実行中に予期しないイベント(すなわち割込みやメモリ障害)が
起こった際は、通例、例外が生成される。複数の例外が生じると、固定された優
先順位システムに作用する割込みコントローラ116が例外にサービスする順序
を決定する。
Exceptions are typically generated when an unexpected event (ie, interrupt or memory failure) occurs during program execution. When multiple exceptions occur, the interrupt controller 116 acting on a fixed priority system determines the order in which the exceptions are serviced.

【0023】 集積回路100は2つの割込みタイプ、すなわち割込み要求(IRQ)と高速
割込み要求(FIQ)に対応する。FIQは、IRQよりも高い優先度を有する
。同じタイプの割込みが2つ以上同時に発生したときには、ソフトウェア内で競
合を解決する。表2A〜2Cは好ましい割込みの割り当てを示す。表中のINT
MR1とINTSR1はそれぞれ高速割込みマスク・レジスタと高速割込み状態
レジスタであり、INTMR2とINTSR2はそれぞれ第2割込みマスク・レ
ジスタと第2割込み状態レジスタであり、INTMR3とINTSR3は第3割
込みマスク・レジスタと第3割込み状態レジスタである。同じグループ(IRQ
またはFIQ)から2つの割込みを受け取った場合、それらにサービスする順序
はソフトウェア中で解決することが好ましいことに留意されたい。
Integrated circuit 100 supports two interrupt types: interrupt request (IRQ) and fast interrupt request (FIQ). FIQ has a higher priority than IRQ. When two or more interrupts of the same type occur simultaneously, the conflict is resolved in software. Tables 2A-2C show preferred interrupt assignments. INT in the table
MR1 and INTSR1 are a fast interrupt mask register and a fast interrupt status register respectively, INTMR2 and INTSR2 are a second interrupt mask register and a second interrupt status register respectively, and INTMR3 and INTSR3 are a third interrupt mask register and a third interrupt mask register respectively. 3 Interrupt status register. Same group (IRQ
Note that if two interrupts are received, or FIQ), the order of servicing them is preferably resolved in software.

【0024】 一般に、割込みコントローラ116は以下の要領で動作する。外部または内部
の割込みを行うデバイスが適切な割込みをアサートする。対応する割込みマスク
・レジスタで適切なビットがセットされると、割込みコントローラ116によっ
てFIQまたはIRQがアサートされる。割込みが許可される場合、プロセッサ
101は該当するアドレスにジャンプする。すると割込みディスパッチ・ソフト
ウェアが、対応する割込み状態レジスタを読み出して割込み要因を確定し、該当
する割込みサービス・ルーチン・ソフトウェアを呼び出し、そのソフトウェア・
ルーチンが、割込みを行うデバイスに固有の何らかのアクションによって割込み
要因をクリアする。割込みサービス・ルーチンは、次いで割込みを再び許可し、
他に保留中の割込みがあればそれを同様にサービスすることができる。他のすべ
ての外部割込み要因は、対応するサービス・ルーチンが実行を開始するまでアク
ティブな状態に保持される。
In general, interrupt controller 116 operates in the following manner. The device taking the external or internal interrupt asserts the appropriate interrupt. FIQ or IRQ is asserted by interrupt controller 116 when the appropriate bit is set in the corresponding interrupt mask register. If interrupts are enabled, processor 101 jumps to the appropriate address. Then, the interrupt dispatch software reads the corresponding interrupt status register to determine the interrupt factor, calls the corresponding interrupt service routine software, and
The routine clears the interrupt cause by some action specific to the interrupting device. The interrupt service routine then re-enables the interrupt,
Any other pending interrupt can be serviced as well. All other external interrupt sources are held active until the corresponding service routine begins execution.

【0025】 表3に、外部割込みの待ち時間を示す。作動状態で、プロセッサ101は、各
命令を実行した後にそのFIQ入力およびIRQ入力がロー・レベルであるかを
調べる。したがって、割込み条件を最初に検出してから現在の命令を完了するま
でにかかる時間量に直接関連する割込み待ち時間があることになる。待機状態で
は、待ち時間は、システム・クロックがシャット・ダウンされているかどうか、
およびシステム制御レジスタ中の制御ビットFASTWAKEがセットされてい
るかどうかによって決まる。上記で指摘したように、PLL108は待機状態で
は常にシャット・ダウンされる。FASTWAKEビットをクリアした場合、待
ち時間は0.125秒から0.25秒の間である。ただし、このビットをセット
した場合は、待ち時間は250マイクロ秒から500マイクロ秒の間になる。外
部クロックを使用し待機中にそれに使用不可にした場合も、待ち時間は0.12
5秒から0.25秒の間になり、発振器の安定化を図る。外部クロックを使用不
可にしない場合は、待ち時間は数マイクロ秒まで短縮することができる。割込み
により、集積回路100がアイドル状態を終了することも可能である。この場合
は、CPUクロックを再び開始させなければならず、さらに、上記のように割込
みに対するサービスは命令の実行のために遅らせることができる。
Table 3 shows the waiting time of the external interrupt. In the active state, the processor 101 checks whether its FIQ and IRQ inputs are low after executing each instruction. Therefore, there will be an interrupt latency directly related to the amount of time it takes to detect the interrupt condition first and complete the current instruction. In the wait state, the wait time depends on whether the system clock is shut down,
And whether the control bit FASTWAKE in the system control register is set. As pointed out above, the PLL 108 is always shut down in the standby state. If the FASTWAKE bit is cleared, the latency is between 0.125 and 0.25 seconds. However, if this bit is set, the latency will be between 250 and 500 microseconds. If you use an external clock and disable it while waiting, the wait time is 0.12
It is between 5 seconds and 0.25 seconds to stabilize the oscillator. If you do not disable the external clock, the latency can be reduced to a few microseconds. The interrupt can also cause integrated circuit 100 to exit the idle state. In this case, the CPU clock must be restarted, and in addition, servicing interrupts can be delayed for instruction execution, as described above.

【0026】 図の実施形態では、集積回路100を初期化するための命令セットを保持する
オンチップ・ブートROM117が提供される。オンチップ・ブートROMは、
オンチップSRAM118にダウンロードされる、受信した2048バイトのシ
リアル・データに、下記でさらに説明するUART1も設定する。データがSR
AM118にダウンロードされると、プロセッサはSRAMの開始部にジャンプ
することにより命令の実行を続けることができる。好都合なのは、この構成によ
り、集積回路100を使用するデバイスの製造中にコードをダウンロードしてシ
ステム・フラッシュ・メモリをプログラムすることができる点である。ユーザは
、オンチップROM117からのブートか、またはポートCS[0]に接続され
た外部メモリからのブートを選択できることに留意されたい。具体的には、ピン
MEDCHGにおける信号がローである場合、ブートはオンチップROM117
から行われ、このピンにハイの信号が印加されると外部メモリからブートを行う
ことが必要となる。オンチップ・ブートROMからのブートの作用は、内部です
べてのチップ・セレクト信号を復号した場合の逆になることに留意されたい。こ
の機能を表5Aに示し、通常の反転していないチップ・セレクト復号を表5Bに
示す。さらに、ブートは、表4に従って幅を選択することのできるブート・デバ
イスの幅を用いて、外部メモリから行うことができる。
In the illustrated embodiment, an on-chip boot ROM 117 holding an instruction set for initializing the integrated circuit 100 is provided. On-chip boot ROM is
The received 2048-byte serial data downloaded to the on-chip SRAM 118 is also set to UART1, which is described further below. Data is SR
Once downloaded to the AM 118, the processor can continue executing instructions by jumping to the beginning of the SRAM. Advantageously, this configuration allows the code to be downloaded and the system flash memory to be programmed during manufacture of a device using integrated circuit 100. Note that the user can choose to boot from on-chip ROM 117 or from external memory connected to port CS [0]. Specifically, if the signal at pin MEDCHG is low, boot is on-chip ROM 117.
And a high signal applied to this pin requires booting from external memory. Note that the effect of booting from the on-chip boot ROM is the reverse of internally decoding all chip select signals. This function is shown in Table 5A and normal non-inverted chip select decoding is shown in Table 5B. In addition, booting can be done from external memory using the width of the boot device, which width can be selected according to Table 4.

【0027】 ARM720Tプロセッサは、4ギガバイトのアドレス空間を有する。図の実
施形態では、集積回路100は、このアドレス空間の下位の2ギガバイトをRO
M/RAM/フラッシュおよび拡張空間のために使用する。さらに0.5ギガバ
イトをDRAMに使用し、残りの1.5ギガバイト、内部レジスタについては8
K未満は未使用である。
The ARM720T processor has an address space of 4 gigabytes. In the illustrated embodiment, integrated circuit 100 routes the lower 2 gigabytes of this address space to RO.
Used for M / RAM / Flash and extended space. Use another 0.5GB for DRAM, the remaining 1.5GB, 8 for internal registers
Less than K is unused.

【0028】 メモリおよびI/O拡張インタフェースは、外部の拡張メモリ204に対する
6個の個別の線形のメモリまたは拡張セグメントをサポートする。他の2つのセ
グメントを、オンチップSRAMおよびROM専用とする。各セグメントのサイ
ズは256メガバイトである。6セグメントのいずれも、従来のSRAMインタ
フェースをサポートするのに使用することができる。さらに、各セグメントは個
々に8ビット、16ビット、または32ビット幅にプログラムすることができ、
これにより、ページ・モード・アクセスをサポートし、非連続アドレスの場合は
1から8の待ち状態から実行し、バースト・モード・アクセスの場合は0から3
の待ち状態から実行することができる。ゼロ待ち状態の逐次的機能により、集積
回路100がバースト・モードROMとのインタフェースをとることが可能にな
る。オンチップROMの空間が完全に復号されるのに対し、完全なSRAMアド
レス空間が完全に復号されるのは、外部のLCDを駆動させるのに使用されるビ
デオ・フレーム・バッファの最大サイズ(最高で128キロバイト)までである
ことに留意されたい。
The memory and I / O expansion interface supports six separate linear memories or expansion segments for external expansion memory 204. The other two segments are dedicated to on-chip SRAM and ROM. The size of each segment is 256 megabytes. Any of the 6 segments can be used to support a conventional SRAM interface. In addition, each segment can be individually programmed to be 8-bit, 16-bit, or 32-bit wide,
This supports page mode access, executes from wait states 1 to 8 for non-contiguous addresses, and 0 to 3 for burst mode access.
It can be executed from the waiting state. The zero wait sequential feature allows integrated circuit 100 to interface with a burst mode ROM. The complete on-chip ROM space is fully decoded, while the complete SRAM address space is fully decoded because the maximum size of the video frame buffer used to drive the external LCD (up to Up to 128 kilobytes).

【0029】 チップ・セレクト信号NCS4およびNCS5を使用して、2つのPC Ca
rdカード205とのインタフェースを確立するために、拡張セグメントのうち
2つを確保することができる。外部のPCカードとのインタフェースは、Cir
rus Logic CL−PS6700PCカード・スロット・ドライバ20
6を通じて行うことが好ましい。メモリをセグメント化することにより、異なる
タイプのアクセスを行うことが可能になる(すなわち属性、入出力、および共通
のメモリ空間。)
Using the chip select signals NCS4 and NCS5, two PC Ca
Two of the extension segments can be reserved to establish an interface with the rd card 205. The interface with the external PC card is Cir
ruth Logic CL-PS6700 PC card slot driver 20
It is preferable to carry out through 6. Segmenting memory allows different types of access to occur (ie attributes, I / O, and common memory space).

【0030】 拡張制御ブロック119へのEXPCLKポートは、13MHzモードおよび
18MHzモードにおけるCPUクロックと等しい拡張クロックを出力し、これ
は、集積回路100が36MHz、49MHz、または70MHzモードで動作
する場合には、36.864MHzの速度を有する。(EXPCLKポートは、
上記の13MHzモードではクロック入力として使用される。)EXPRDYピ
ン(Expansion Port Ready)は、バス・サイクルを延長し
、待ち状態を挿入するために外部の拡張デバイスによってローに置かれる。チッ
プ・セレクト信号CS[0:3]はSRAMの拡張に使用され、一方チップ・セ
レクト信号CS[4:5]はメモリ拡張またはPCカード選択の両方に使用する
ことができる。書き込みストローブWRITEは、拡張デバイスからの読み出し
中はローになり、拡張デバイスへの書き込み中はハイになる。ワード/ハーフワ
ード・ビット(2)は、集積回路100からの書き込み中に、アクセス・サイズ
がワードか、ハーフワードか、またはバイト単位かを外部デバイスに示す。DR
AMコントローラ120は、最高でDRAMの2バンク207へのプログラマブ
ルな16ビットまたは32ビット幅のインタフェースを提供し、各バンクは25
6メガバイトまでの記憶容量を有する。DRAMバンクは、市場に流通する複数
種のDRAMのいずれでもよく、これには従来型のDRAM、同期DRAM(S
DRAM)、EDODRAM(Extended Data Out DRAM
)、ファースト・ページ・モードDRAM、およびDDRDRAM(Doubl
e Data Rate DRAM)が含まれる。さらに、これらのDRAMは
、集積回路100が上記の待機状態に入ると低電力状態に置かれるセルフリフレ
ッシュ・タイプでもよい。2バンクをサポートするために、4つの列アドレス・
ストローブCAS[0:3]とともに2つの行アドレス・ストローブRAS[0
:1]を生成することができる。出力イネーブル信号MOEは、DRAM、RO
M/SRAM/フラッシュ、または拡張出力のイネーブルのために使用される。
書き込みイネーブル信号NWEは、同じ外部デバイス・セットに使用される。ま
た、DRAMコントローラはプログラマブルなリフレッシュ・カウンタを含み、
そのリフレッシュ周期はリフレッシュ周期レジスタ(DRFPR)を使用して制
御される。
The EXPCLK port to extended control block 119 outputs an extended clock equal to the CPU clock in 13 MHz and 18 MHz modes, which when integrated circuit 100 operates in 36 MHz, 49 MHz, or 70 MHz mode. It has a speed of 36.864 MHz. (The EXPCLK port is
It is used as a clock input in the above 13 MHz mode. The EXPRDY pin (Expansion Port Ready) is placed low by an external expansion device to extend the bus cycle and insert wait states. The chip select signals CS [0: 3] can be used for SRAM expansion, while the chip select signals CS [4: 5] can be used for both memory expansion or PC card selection. The write strobe WRITE goes low during a read from the expansion device and goes high during a write to the expansion device. The word / halfword bit (2) indicates to the external device whether the access size is word, halfword, or byte unit during writing from integrated circuit 100. DR
The AM controller 120 provides a programmable 16-bit or 32-bit wide interface up to two banks 207 of DRAM, each bank containing 25
It has a storage capacity of up to 6 megabytes. The DRAM bank may be any of a plurality of types of DRAM distributed in the market, including a conventional DRAM and a synchronous DRAM (S
DRAM), EDODRAM (Extended Data Out DRAM)
), Fast page mode DRAM, and DDR DRAM (Double
e Data Rate DRAM). Further, these DRAMs may be of the self-refresh type, which is placed in a low power state when integrated circuit 100 enters the standby state described above. 4 column addresses to support 2 banks
Two row address strobes RAS [0] with strobes CAS [0: 3].
: 1] can be generated. The output enable signal MOE is the DRAM, RO
Used to enable M / SRAM / Flash or extended output.
The write enable signal NWE is used for the same set of external devices. The DRAM controller also includes a programmable refresh counter,
The refresh cycle is controlled using the refresh cycle register (DRFPR).

【0031】 好ましい物理DRAMのアドレス指定を表6に示す。表7および8は、32ビ
ットDRAMおよび16ビットDRAMのメモリ・システムについてのDRAM
のアドレス・マッピングを表す。この32ビットは、32ビットDRAMの動作
を選択して、各RASラインに接続された2つのx16デバイスに基づくものと
想定する。このマッピングは、各バンクの256メガバイトごとに繰り返される
。これらのテーブルのプレースホルダ「n」は、0xC+バンク番号に等しい。
16/32ビットのDRAM選択は、システム制御レジスタSYSCON2のビ
ットをセットすることによってプログラムする。
The preferred physical DRAM addressing is shown in Table 6. Tables 7 and 8 show DRAM for 32-bit and 16-bit DRAM memory systems.
Represents the address mapping of the. This 32 bits is assumed to be based on two x16 devices connected to each RAS line, selecting the operation of the 32 bit DRAM. This mapping is repeated every 256 megabytes in each bank. The placeholder "n" in these tables is equal to 0xC + bank number.
The 16/32 bit DRAM selection is programmed by setting a bit in the system control register SYSCON2.

【0032】 フラッシュ・インタフェース121は、集積回路100が、上記のチップ・セ
レクト信号CS[0:1]を使用してフラッシュ・メモリとのインタフェースを
とることを可能にする。
The flash interface 121 enables the integrated circuit 100 to interface with a flash memory using the chip select signals CS [0: 1] described above.

【0033】 LCDコントローラ122は、集積回路100がシングル・パネルの多重型L
CDモジュール209と直接インタフェースをとることを可能にするのに必要と
される制御信号をすべて提供する。合計フレーム・バッファ・サイズは、オンチ
ップ・メモリとオフチップ・メモリの両方を使用して、最高128キロバイトま
でにプログラムすることが可能である。上記のように、オンチップSRAM11
8をLCDビデオ・フレーム・バッファとして使用することにより、外部DRA
Mを使用せずにシステムを構築することができる。画面は、ビデオ・フレーム・
バッファにマッピングすることが好ましい。
The LCD controller 122 is a multiple panel L type in which the integrated circuit 100 is a single panel.
It provides all of the control signals needed to allow direct interfacing with CD module 209. The total frame buffer size can be programmed up to 128 kilobytes using both on-chip and off-chip memory. As described above, the on-chip SRAM 11
External DRA by using 8 as LCD video frame buffer
The system can be constructed without using M. The screen is a video frame
Mapping to a buffer is preferred.

【0034】 LCDダイレクト・メモリ・アクセス(DMA)エンジン123は、フレーム
・バッファ・メモリからLCDコントローラ122用の表示データをフェッチす
るために提供される。画素ビット・レート、したがってLCDのリフレッシュ・
レートは、18.432〜73.728MHzモードで動作する場合は18・4
32MHz〜576kHZにプログラムすることができ、13MHzクロックに
より動作する際は13MHz〜203kHZにプログラムすることができる。
An LCD direct memory access (DMA) engine 123 is provided to fetch display data for the LCD controller 122 from the frame buffer memory. Pixel bit rate and hence LCD refresh
The rate is 18.4 when operating in 18.432-73.728 MHz mode.
It can be programmed to 32 MHz to 576 kHZ, and can be programmed to 13 MHz to 203 kHZ when operating with a 13 MHz clock.

【0035】 集積回路100は、1対の汎用非同期送受信(UART)インタフェース12
4および125を含む。これらの非同期ポートは、例えば1対のRS−232ト
ランシーバ210との通信に使用することができる。各UART124/125
は、集積回路100がPLL108で生成されるクロックによって動作する場合
は、最高で毎秒115.2キロビットのデータ転送速度をサポートすることがで
きる。集積回路100が13MHzの外部クロック・ソースによって駆動される
場合、生成することが可能なUARTのビット・レートには、9.6Kbps、
19.2Kbps、38Kbps、58Kbps、および115.2Kbpsが
含まれる。
The integrated circuit 100 includes a pair of Universal Asynchronous Transmit / Receive (UART) interfaces 12.
Including 4 and 125. These asynchronous ports can be used to communicate with a pair of RS-232 transceivers 210, for example. Each UART124 / 125
Can support data rates up to 115.2 kilobits per second when integrated circuit 100 operates from a clock generated by PLL 108. When the integrated circuit 100 is driven by an external clock source of 13 MHz, the UART bit rate that can be generated is 9.6 Kbps,
It includes 19.2 Kbps, 38 Kbps, 58 Kbps, and 115.2 Kbps.

【0036】 UART124/125はどちらも、対応する送信(TX)ピンを駆動させる
16バイトの送信FIFOと、専用の受信(RX)ピンからデータを受信するた
めの16バイトの受信FIFOを含む。RX割込みは、所与のRX FIFOが
半分満たされるか、またはそのFIFOがそれ以上の文字を受け取らず、3文字
長タイムよりも長く非空である場合にアサートされる。TX割込みは、所与のT
X FIFOバッファが半分空の状態に達すると必ずアサートされる。
Both UARTs 124/125 include a 16-byte transmit FIFO that drives the corresponding transmit (TX) pin and a 16-byte receive FIFO for receiving data from a dedicated receive (RX) pin. The RX interrupt is asserted if a given RX FIFO is half full or if the FIFO receives no more characters and is non-empty for more than 3 character length times. TX interrupts are given T
Asserted whenever the X FIFO buffer reaches half-empty.

【0037】 UART124(UART1)は、RXポートとTXポートに加えて、3つの
モデム制御信号CTS、DSR、およびDCDも受信することができる。この他
のモデム制御RI入力および出力モデム制御信号RTSおよびDTRは、下記で
さらに説明するGPIOポート129を使用して実装することができる。UAR
T1に対するモデム状態割込みは、これらのモデム制御ビットのいずれかが変化
すると生成される。
In addition to the RX and TX ports, UART 124 (UART 1) can also receive three modem control signals CTS, DSR, and DCD. Other modem control RI input and output modem control signals RTS and DTR can be implemented using GPIO port 129, which is described further below. UAR
A modem status interrupt for T1 is generated when any of these modem control bits change.

【0038】 UARTの動作とライン速度は、UARTビット・レートと、ライン制御レジ
スタ(UBLC1およびUBLC2)を通じてプログラムすることができる。ま
た、FIFOの4つは1バイトの深さになるようにプログラムすることもできる
。各バイトを受け取る際に検出されるフレーミング・エラー・ビットとパリティ
・エラー・ビットは、11ビット幅レジスタから読み出すこともできる。
The UART operation and line speed can be programmed through the UART bit rate and line control registers (UBLC1 and UBLC2). Also, four of the FIFOs can be programmed to be 1 byte deep. The framing error bits and parity error bits detected on receipt of each byte can also be read from the 11-bit wide register.

【0039】 集積回路100は、UART124の出力時にIrDA(赤外線データ協会)
SIRプロトコルによる後処理段階126も含む。集積回路100は、赤外線発
光ダイオード(LED)と光ダイオード(図2のブロック211としてまとめて
示す)への接続の入力部を駆動させるピンを含む。SRIエンコーダ126は、
UART1のTXポートおよびRXポート中へと切り替えられ、上記の信号が赤
外線インタフェースを直接駆動することができる。
The integrated circuit 100 outputs IrDA (Infrared Data Association) when outputting the UART 124.
A post-processing step 126 according to the SIR protocol is also included. Integrated circuit 100 includes pins that drive the inputs of connections to infrared light emitting diodes (LEDs) and photodiodes (shown collectively as block 211 in FIG. 2). The SRI encoder 126 is
Switched into the TX and RX ports of UART1, the above signals can drive the infrared interface directly.

【0040】 集積回路100はさらに、SPI/Microwireマスタ・モード128
KbpsADCインタフェース127、およびシリアル・インタフェース128
を含み、後者は図6にさらに詳細に示す。デジタル・オーディオ・ポートの好ま
しいシリアル・ピン割り当てを表10に示す。SPIインタフェース1(ADC
インタフェース)は、外部のアナログ/デジタル変換器212およびデジタイザ
213との通信に使用することができる。シリアル・インタフェース・ブロック
128は、マスタ/スレーブ・モードのSBI/Microwire(SSI2
)インタフェース603、デジタル・オーディオ・インタフェース(DAI)6
01、およびコーデック・インタフェース604を含み、これらはすべてマルチ
プレクサ602によって1セットの外部インタフェース・ピン上に多重化される
。選択されたインタフェースは、図2のブロック214中の対応する回路を駆動
させる。多重化は、システム制御レジスタ中の対応するフィールドをプログラム
することによって制御される。利用可能なシリアル・インタフェースのオプショ
ンの一覧を表11に提供する。
The integrated circuit 100 further includes an SPI / Microware master mode 128.
Kbps ADC interface 127 and serial interface 128
And the latter is shown in more detail in FIG. Table 10 shows the preferred serial pin assignments for the digital audio port. SPI interface 1 (ADC
Interface) can be used for communication with external analog-to-digital converter 212 and digitizer 213. The serial interface block 128 is a master / slave mode SBI / Microwire (SSI2
) Interface 603, Digital Audio Interface (DAI) 6
01, and codec interface 604, which are all multiplexed by multiplexer 602 onto a set of external interface pins. The selected interface drives the corresponding circuit in block 214 of FIG. Multiplexing is controlled by programming the corresponding field in the system control register. A list of available serial interface options is provided in Table 11.

【0041】 ADCインタフェース127は、デフォルト・モードでは、MAXIM、MA
X148/9周辺装置などのSSIまたはMicrowire互換デバイスと互
換性がある。ADCインタフェース127は、共通のRFS/TFS線としてN
ADCCSを使用して、アナログ・デバイスAD7188/12チップなどのデ
バイスともインタフェースをとることができる。集積回路100がMAX148
/9およびAD7811/2を駆動する際の例示的なタイミング図を、それぞれ
図7Aおよび7Bとして提供する。例示的なI2Sインタフェースを図8に示す
In the default mode, the ADC interface 127 uses MAXIM, MA
Compatible with SSI or Microwire compatible devices such as X148 / 9 peripherals. The ADC interface 127 uses N as a common RFS / TFS line.
The ADCCS can also be used to interface with devices such as the analog device AD7188 / 12 chip. MAX148 integrated circuit 100
Exemplary timing diagrams for driving the / 9 and AD7811 / 2 are provided as FIGS. 7A and 7B, respectively. An exemplary I 2 S interface is shown in FIG.

【0042】 ADCインタフェース127のクロック出力周波数も、システム制御レジスタ
を使用して設定することができる。18.432〜73.728MHzの動作モ
ードの場合、ADCクロック(ADCCLK)は、4MHz、16MHz、64
MHz、または128MHzに設定することができる。集積回路100が外部で
生成される13.0MHzのクロックに応答して動作する場合、ADCクロック
は4.2kHz、16.9kHz、67.7kHz、または135.4kHzに
設定することができる。サンプル・クロックSMPCLKは、常にシフト・クロ
ック(ADCCLK)周波数の2倍の速度で動作する。利用可能なADC周波数
のオプションを表12に示す。
The clock output frequency of the ADC interface 127 can also be set using the system control register. In the operation mode of 18.432 to 73.728 MHz, the ADC clock (ADCCLK) is 4 MHz, 16 MHz, 64.
It can be set to MHz or 128 MHz. If the integrated circuit 100 operates in response to an externally generated 13.0 MHz clock, the ADC clock may be set to 4.2 kHz, 16.9 kHz, 67.7 kHz, or 135.4 kHz. The sample clock SMPCLK always runs at twice the shift clock (ADCCLK) frequency. The available ADC frequency options are shown in Table 12.

【0043】 ADCのシリアル出力ADCOUTは、SYNCIOレジスタにセットされた
ビットに応じて、8ビットまたは16ビットのシフト・レジスタによって供給さ
れる。ADCのシリアル入力チャネルADCINは、16ビットのシフト・レジ
スタに取り込まれる。ACDクロックの同期パルスは、出力シフト・レジスタへ
の書き込みによってアクティブ化される。転送中に、システム状態フラグ・レジ
スタ中のSSIBUSY(同期シリアル・インタフェース)ビジー・ビットがセ
ット 。転送が完了し、16ビットの読み出しシフト・レジスタ中に有効なデ
ータがあると、SSEOTI割込みがアサートされ、SSIBUSYビットがク
リアされる。サンプル・クロックSMPCLKは単独でイネーブルされる。
The ADC serial output ADCOUT is provided by an 8-bit or 16-bit shift register, depending on the bit set in the SYNCIO register. The ADC serial input channel ADCIN is captured in a 16-bit shift register. The ACD clock sync pulse is activated by writing to the output shift register. During a transfer, the SSIBUSY (Synchronous Serial Interface) busy bit in the system status flag register is set. When the transfer is complete and valid data is in the 16-bit read shift register, the SSEOTI interrupt is asserted and the SSIBUSY bit is cleared. The sample clock SMPCLK is independently enabled.

【0044】 デジタル・オーディオ・インタフェース501は、図9に示すようなCD品質
のA/DおよびD/A変換器へのインタフェースを提供する。(DAIはI2
のサブセットである。)16ビットのステレオ・デジタル・オーディオの128
ビット・フレーム、オーディオ・サンプリング周波数で、個別の送信線および受
信線により。各フレームは、右チャンネルの16ビットと、左チャンネルのオー
ディオ・データの16ビットのみを含むことに留意されたい。残りのビットはゼ
ロにセットされる。
Digital audio interface 501 provides an interface to CD quality A / D and D / A converters as shown in FIG. (DAI is I 2 S
Is a subset of. ) 128 of 16-bit stereo digital audio
Bit frame, audio sampling frequency, with separate transmit and receive lines. Note that each frame contains only 16 bits of the right channel and 16 bits of left channel audio data. The remaining bits are set to zero.

【0045】 図10は、DAI601の動作を表す例示的なタイミング図である。左右クロ
ック(LRCK)は、フレーム同期信号を提供する。シリアル・クロック(SC
LK)はビット転送クロックであり、オーディオ・サンプル周波数の128倍に
固定された速度を有することが好ましい。SDOUT(SDATAO)およびS
DIN(SDATAI)はそれぞれ、再生データを外部のD/A変換器に送信し
、記録データを外部のA/D変換器から受信するために使用される。集積回路1
00、外部のD/A変換器および/または外部のA/D変換器間のタイミングは
、オーバーサンプリングしたクロックMCLKに基づく。MCLKは、サンプリ
ング周波数の256倍に固定された速度を有することが好ましい。
FIG. 10 is an exemplary timing diagram representing the operation of DAI 601. The left and right clock (LRCK) provides the frame sync signal. Serial clock (SC
LK) is the bit transfer clock and preferably has a fixed rate of 128 times the audio sample frequency. SDOUT (SDATAO) and S
Each of the DINs (SDATAI) is used for transmitting the reproduction data to the external D / A converter and receiving the recording data from the external A / D converter. Integrated circuit 1
00, the timing between the external D / A converter and / or the external A / D converter is based on the oversampled clock MCLK. MCLK preferably has a fixed speed of 256 times the sampling frequency.

【0046】 非同期シリアル・インタフェース2(SSI2)503は、フル・マスタ/ス
レーブ・モードで動作することのできるSPI/Microwireインタフェ
ースである。図10は、マスター/スレーブ方式で動作するように構成された1
対の集積回路100デバイスを表す。好ましい維持データ転送速度は85.3K
bpsであり、この速度は割込み間の周期が十分な長さになることを保証する。
割込みは、受信FIFOが半分満たされ、送信FIFOが半分空になると生成さ
れる。スレーブ・モードでは、シリアル・クロック(SSICLK)およびシリ
アル受信ポート(SSIRXDA)、受信された同期制御ピン(SSIRXFR
)および送信同期ピン(SSITXFR)が入力になり、送信ピンSSITXD
Aが出力になる。マスタ・モードでは、ピンSSICLK、SSITXDA、S
SITXFR、およびSSIRXFRが出力になり、ピンSSIRXDAが入力
になる。モード選択は、システム制御レジスタのビットをプログラムすることに
よって行う。
Asynchronous Serial Interface 2 (SSI2) 503 is a SPI / Microwire interface that can operate in full master / slave mode. FIG. 10 is a block diagram of a 1 configured to operate in a master / slave mode.
1 represents a pair of integrated circuit 100 devices. The preferred sustained data transfer rate is 85.3K
bps, this rate guarantees that the period between interrupts will be long enough.
An interrupt is generated when the receive FIFO is half full and the transmit FIFO is half empty. In slave mode, serial clock (SSICLK) and serial receive port (SSIRXDA), received sync control pin (SSIRXFR)
) And the transmission sync pin (SSITXFR) become inputs, and the transmission pin SSITXD
A is output. In master mode, pins SSICLK, SSITXDA, S
SITXFR and SSIRXFR are outputs and pin SSIRXDA is an input. Mode selection is done by programming the bits in the system control register.

【0047】 非対称(非平衡)トラフィックおよび連続トラフィックはいずれも、個別の送
信制御ラインおよびフレーム同期制御ラインSSTXFRおよびSSIRXFR
を使用してサポートされる。この構成では、受信ノードは、受信したフレーム同
期制御信号をアサートした後に8クロックで1バイトのデータを受信し、送信ノ
ードは、独立した送信フレーム同期制御パルスをアサートした後に8クロックで
1バイトのデータを送信する。これら2つのインタフェースの動作を表す例示的
なタイミング図を、参照として図7Aおよび7Bに提供する。
Both asymmetric (unbalanced) and continuous traffic have separate transmit and frame sync control lines SSTXFR and SSIRXFR.
Supported using. In this configuration, the receiving node receives 1 byte of data in 8 clocks after asserting the received frame synchronization control signal, and the transmitting node receives 1 byte of data in 8 clocks after asserting an independent transmission frame synchronization control pulse. Send data. An exemplary timing diagram representing the operation of these two interfaces is provided in Figures 7A and 7B for reference.

【0048】 コーデック・インタフェース604は、テレフォニー・コーデックへの直接の
接続をサポートする。クロックおよびクロック信号の生成と合わせて、コーデッ
ク・インタフェース604はパラレルからシリアル、シリアルからパラレルへの
変換も実行する。このインタフェースは全二重であり、それに対応する64Kb
psで動作する送信および受信FIFOを用いる。許可されている場合は、8バ
イトが転送されるごとに(すなわちFIFOが半分満たされる/空になると)、
換言すると1ミリ秒の待ち時間で1ミリ秒ごとに、コーデック割込みCSINT
が生成される。このタイミングを図8に示すが、図中CDENRXとCDENT
Xは、それぞれシステム制御レジスタSYSCON1中の受信制御ビットと送信
制御ビットである。
Codec interface 604 supports a direct connection to a telephony codec. Along with the generation of clocks and clock signals, the codec interface 604 also performs parallel to serial and serial to parallel conversions. This interface is full-duplex, with a corresponding 64Kb
It uses a transmit and receive FIFO operating at ps. If allowed, every 8 bytes transferred (ie, half full / empty FIFO),
In other words, with a latency of 1 millisecond, every 1 millisecond, the codec interrupt CSINT
Is generated. This timing is shown in FIG. 8, where CDENRX and CDENT are shown.
X is a reception control bit and a transmission control bit in the system control register SYSCON1, respectively.

【0049】 DAI601は、図9に示すインタフェース900などのI2Sインタフェー
スをサポートする。この場合は、外部のADC901および外部のDAC902
の両方。クロック・ソース903は時間基準を提供する。例示的なタイミング図
を図10に提供する。図9および図10で、MCLKはオーバーサンプリングし
たクロックであり、これは通例オーディオ・サンプリング周波数の256倍に固
定する。SCLKはビット・クロックであり、これは通例オーディオ・サンプリ
ング周波数の128倍に固定する。LCLKはフレーム同期信号であり、通例は
オーディオ・サンプリング周波数に固定する。SDOUTは、再生デジタル・オ
ーディオをDAC902に送信するオーディオ・データ出力である。SDINは
、ADC901から記録データを受け取る。
The DAI 601 supports I 2 S interfaces such as the interface 900 shown in FIG. In this case, the external ADC 901 and the external DAC 902
Both. Clock source 903 provides the time reference. An exemplary timing diagram is provided in FIG. 9 and 10, MCLK is the oversampled clock, which is typically fixed at 256 times the audio sampling frequency. SCLK is a bit clock, which is typically fixed at 128 times the audio sampling frequency. LCLK is a frame sync signal and is typically fixed at the audio sampling frequency. SDOUT is the audio data output that sends the reproduced digital audio to the DAC 902. SDIN receives the recording data from the ADC 901.

【0050】 SSI1インタフェース603は、図11に示すようなマスター/スレーブ動
作をサポートする。このインタフェースは、2つのノード間で全二重のシリアル
転送を実行する手段を提供する。データは、クロックおよびフレーム同期信号に
応答してバイト単位で転送される。
The SSI1 interface 603 supports master / slave operation as shown in FIG. This interface provides the means to perform a full-duplex serial transfer between two nodes. Data is transferred byte by byte in response to the clock and frame sync signals.

【0051】 集積回路100には、汎用入出力(GPIO)ポート129のセットも提供さ
れる。図の実施形態では、3つの8ビット・ポートと1つの3ビット・ポートが
ある。GPIOポートは、キーボード・ドライバ215とのインタフェースを確
立するなどの目的に使用することができる。
The integrated circuit 100 is also provided with a set of general purpose input / output (GPIO) ports 129. In the illustrated embodiment, there are three 8-bit ports and one 3-bit port. The GPIO port can be used for such purposes as establishing an interface with the keyboard driver 215.

【0052】 PWM(Pulsed with modulator)回路130は、外部
の電源供給ユニット(PSU)サブシステム201と協働して動作するDC/D
C216コンバータを駆動させるための2つの出力を含む。通例、外部のDC/
DCコンバータ出力を監視するコンパレータからの出力に接続される外部の入力
ピンは、これらのクロックをイネーブルにするために使用される。集積回路10
0が内部のPLL108によって動作する場合、PWMクロックは96kHzの
周波数を有する。これらの信号の負荷サイクル比は、1:16から15:16ま
でにプログラムすることができる。PWM駆動信号のアクティブ・サイクルの感
知は、パワー・オン・リセット中に駆動信号の状態をラッチすることによりハイ
またはローに設定することができる(すなわち駆動信号をプルアップすると駆動
の出力がアクティブ・ローになり、その逆も同様)。この結果、外部のDC/D
Cコンバータにより、正電圧または負電圧を生成することができる。これらの出
力も同様に、制御レジスタ中のビットをクリアすることにより使用不可にするこ
とができる。
A PWM (Pulsed with modulator) circuit 130 is a DC / D that operates in cooperation with an external power supply unit (PSU) subsystem 201.
It includes two outputs for driving the C216 converter. External DC /
External input pins connected to the outputs from the comparators that monitor the DC converter outputs are used to enable these clocks. Integrated circuit 10
When 0 operates by the internal PLL 108, the PWM clock has a frequency of 96 kHz. The duty cycle ratio of these signals can be programmed from 1:16 to 15:16. The sensing of the active cycle of the PWM drive signal can be set high or low by latching the state of the drive signal during power-on reset (ie pulling up the drive signal causes the output of the drive to become active). Low and vice versa). As a result, external DC / D
A C converter can generate a positive voltage or a negative voltage. These outputs can likewise be disabled by clearing the bit in the control register.

【0053】 集積回路100のブロック間の通信は、アドバンスト・ペリフェラル・バス1
32およびアドバンスト・ペリフェラル・バス・ブリッジ131を通じて確立さ
れる。内部データ・バス106は32ビット幅であり、多重化回路132を通じ
て外部デバイスに接続することができる。内部アドレス・バス107は28ビッ
ト幅であり、多重化回路133を通じて外部デバイスと通信することができる。
IEEE1149.1準拠であるICE−JTAG回路134は、試験および開
発段階におけるバウンダリ・スキャンのために含まれる。また、埋め込みICE
はARMプロセッサ・コアのデバッグをサポートする。
Communication between blocks of the integrated circuit 100 is performed by the advanced peripheral bus 1
32 and the Advanced Peripheral Bus Bridge 131. The internal data bus 106 is 32 bits wide and can be connected to external devices through the multiplexing circuit 132. The internal address bus 107 is 28 bits wide and can communicate with external devices through the multiplexing circuit 133.
An ICE-JTAG circuit 134, which is IEEE 1149.1 compliant, is included for boundary scan during the test and development stages. Also, embedded ICE
Supports ARM processor core debugging.

【0054】 好ましい実施形態では、集積回路100の内部レジスタはリトル・エンディア
ン構成である。ただし、集積回路100はビッグ・エンディアンの外部メモリ・
システムとのインタフェースをとることができる点が有利である。具体的には、
ビッグ・エンド・ビットとCPU101のレジスタ・セットによって、外部メモ
リ中のワードがビッグ・エンディアン形式で記憶されるか、またはリトル・エン
ディアン形式で記憶されるかが決まる。具体的には、メモリは、ゼロから上へと
番号をつけたバイトの線形集合と見なされる。バイト0〜3が最初の記憶ワード
を保持し、バイト4〜7が2番目の記憶ワードを保持し、以下同様に続く。リト
ル・エンディアン方式の場合は、ワード中の最も番号の低いバイトをそのワード
の最下位バイトと見なし、最も番号の高いバイトが最上位ワードになる。したが
って、リトル・エンディアン・システムにおけるバイト・ゼロは、データ・ライ
ン7〜0に接続される。ビッグ・エンディアン方式では、ワードの最上位バイト
が最も番号の低いバイトに記憶され、最下位バイトが最も番号の高いバイトに記
憶される。したがって、ビッグ・エンディアン・システムにおけるバイト・ゼロ
は、データ・ライン31〜24に接続される。図の実施形態では、ロード命令お
よび記憶命令のみをエンディアン方式で行う。表13および14は、読み出し(
表13)および書き込み(表14)両方についての集積回路100の動作を表す
。DRAMバンクへの列アドレス・ストローブ・ラインNCAS[3:0]は、
エンディアン方式に関係なく常に同じバイト・レーンに接続されることに留意さ
れたい。例えば、列アドレス・ストローブ・ラインNCAS[0]はデータ・ラ
インD[7:0]と関連付けられ、NCAS[3]はデータ・ラインD[31:
24]に関連付けられる。この結果、リトル・エンディアン・システムでは、ラ
インNCAS[0]は、DRAMのバイト0との読み出し/書き込みのためにア
サートされ、ビッグ・エンディアン・システムでは、ラインNCAS[3]はD
RAMのバイト0にアクセスするためにアサートされる。
In the preferred embodiment, the internal registers of integrated circuit 100 are of little endian configuration. However, the integrated circuit 100 is a big endian external memory
It is advantageous that it can interface with the system. In particular,
The big end bit and the register set of the CPU 101 determine whether the word in external memory is stored in big endian or little endian format. Specifically, memory is considered a linear set of bytes, numbered from zero to above. Bytes 0-3 hold the first storage word, bytes 4-7 hold the second storage word, and so on. For the little endian scheme, the lowest numbered byte in the word is considered the least significant byte of the word and the highest numbered byte is the most significant word. Therefore, byte zero in the little endian system is connected to data lines 7-0. In the big endian scheme, the most significant byte of the word is stored in the lowest numbered byte and the least significant byte is stored in the highest numbered byte. Therefore, byte zero in big endian systems is connected to data lines 31-24. In the illustrated embodiment, only load and store instructions are performed in endian fashion. Tables 13 and 14 read (
It represents the operation of the integrated circuit 100 for both Table 13) and writing (Table 14). The column address strobe lines NCAS [3: 0] to the DRAM bank are
Note that it is always connected to the same byte lane regardless of endianness. For example, column address strobe lines NCAS [0] are associated with data lines D [7: 0] and NCAS [3] are data lines D [31:
24]. As a result, in little endian systems line NCAS [0] is asserted for reading / writing with byte 0 of the DRAM, and in big endian systems line NCAS [3] is D.
Asserted to access byte 0 of RAM.

【0055】 集積回路100は、1セットのプログラマブルなヒューズを含み、これにより
各チップに1つまたは複数の一意のID番号とパスワードを割り当てることがで
きる。プログラマブルなヒューズとそれに関連するレジスタは、セキュリティ・
レジスタと、APB132から動作するハードウェア・ブロック133(図1)
内とに配置される。図1Dの実施形態に限定すると、ブートROM自体はARM
ローカル・バス107上にあり、アクセス・チェッキングは分割されて、ARM
ローカルバス上とARMローカル/グローバルAHBラッパ内の両方にロジック
を有することになる。
Integrated circuit 100 includes a set of programmable fuses that allow each chip to be assigned one or more unique ID numbers and passwords. Programmable fuses and associated registers
Registers and hardware block 133 operating from APB 132 (FIG. 1)
It is placed inside and inside. Limiting to the embodiment of FIG. 1D, the boot ROM itself is ARM
Located on local bus 107, access checking is split, ARM
It will have logic both on the local bus and in the ARM local / global AHB wrapper.

【0056】 好ましい実施形態では、これは256個のプログラマブルなヒューズであり、
パブリックなヒューズとプライベートなヒューズのセットを含む。プライベート
・ヒューズのアドレスおよび値は隠され、それらのヒューズに対応するプライベ
ートなファームウェアだけにアクセスが許可される。非プライベートの環境では
、これらのアドレスと値はすべてゼロに戻る。パブリック・ヒューズを表15に
示し、プライベート・ヒューズを表16に示す。
In the preferred embodiment, this is 256 programmable fuses,
Includes a set of public and private fuses. The addresses and values of private fuses are hidden and only private firmware corresponding to those fuses is allowed access. In a non-private environment, these addresses and values all roll back to zero. The public fuses are shown in Table 15 and the private fuses are shown in Table 16.

【0057】 集積回路100は、ヒューズされたハミング・コードと、選択されたIDに一
致するハミング・コードを照合するための埋め込みハードウェアもブロック13
3中に含む。妥当性検査アドレスが読み出されると、IDの値をそのハミング値
と突きあわせて確認する。この結果得られる5ビットのコードは、ハミング・コ
ードが一致しない場合はデバッグ情報を提供する(すべてのヒューズが飛んだ場
合、またはすべてのヒューズが飛ばない場合)。表17は、妥当性検査読み出し
ビットの復号を示す。これにより、ヒューズが飛んだ際に発生しているエラーを
検出し、同時にヒューズの値とアドレスへのアクセスが不可能な状態を保持する
ことが可能になるので好都合である。
The integrated circuit 100 also includes embedded hardware for matching the fused Hamming code with the Hamming code that matches the selected ID, block 13.
Included in 3. When the validation address is read, the value of ID is checked against its Hamming value. The resulting 5-bit code provides debug information if the Hamming code does not match (all fuses blown, or all fuses blown). Table 17 shows the validation read bit decoding. This is advantageous because it is possible to detect the error that occurs when the fuse blows and at the same time maintain the state in which the fuse value and address cannot be accessed.

【0058】 表18は、パブリックのID−CHKペアの妥当性検査コードを戻すアドレス
を提供する。
Table 18 provides the address that returns the validation code of the public ID-CHK pair.

【0059】 表19は、プライベートのID−CHKペアの妥当性検査コードを戻すアドレ
スを提供する。これらのアドレスには、集積回路100がプライベート・モード
で動作している際はファームウェアからしかアクセスすることができず、それ以
外の場合は0が読み出される。
Table 19 provides the address that returns the validation code of the private ID-CHK pair. These addresses can be accessed only by the firmware when the integrated circuit 100 is operating in the private mode, and 0 is read otherwise.

【0060】 ハミング・コード・ジェネレータを十分にテストできるように、ID−CHK
ペアとして選択し妥当性を検査することのできる2つのテスト・レジスタがある
。これらレジスタの定義と位置を表20に提供する。
ID-CHK so that the Hamming code generator can be fully tested.
There are two test registers that can be selected and validated as a pair. Table 20 provides the definitions and locations of these registers.

【0061】 図1Bは、本発明の原理を実施するのに適したチップ140における第2のシ
ステムのハイ・レベル機能ブロック図である。この実施形態では、MMUの他に
命令キャッシュとデータ・キャッシュの両方を有するARM920Tプロセッサ
141を使用する。システム141は、集積回路100とは異なり汎用SRAM
は含まない。
FIG. 1B is a high level functional block diagram of a second system in a chip 140 suitable for implementing the principles of the present invention. This embodiment uses an ARM920T processor 141 that has both an instruction cache and a data cache in addition to the MMU. Unlike the integrated circuit 100, the system 141 is a general-purpose SRAM.
Is not included.

【0062】 図13は、特にARM920Tコアに基づく実施形態の、プロセッサ141の
より詳細な機能ブロック図である。この実施形態では、利用可能なキャッシュは
、命令キャッシュ1301とデータ・キャッシュ1302の両方を含む。同様に
、個別の命令用MMU1303とデータ用MMU1304を使用する。命令修正
仮想アドレス(IMVA)バス、命令物理アドレス(IPA)バス、および命令
データ(ID)バスはそれぞれ32ビット幅である。同様に、データ修正仮想ア
ドレス(DVMA)バス、データ物理アドレス(DPA)バス、およびデータ・
データ(DD)バスも32ビット幅である。物理アドレスとデータは、AMBA
バス・インタフェース1305を通じてAHBバス142と交換される。書き込
みバッファ1306は、プロセッサ・コアの動作中にインタフェース1305を
通じてデータをパラレルに交換することを可能にする。キャッシュ1302のデ
ータは、ライトバック物理アドレス(PTAG)RAM1307を通じて出力す
ることができる。
FIG. 13 is a more detailed functional block diagram of the processor 141, particularly for embodiments based on the ARM920T core. In this embodiment, the available caches include both instruction cache 1301 and data cache 1302. Similarly, an individual instruction MMU 1303 and data MMU 1304 are used. The instruction modified virtual address (IMVA) bus, instruction physical address (IPA) bus, and instruction data (ID) bus are each 32 bits wide. Similarly, data modified virtual address (DVMA) bus, data physical address (DPA) bus, and data
The data (DD) bus is also 32 bits wide. Physical address and data are AMBA
It is exchanged with the AHB bus 142 through the bus interface 1305. The write buffer 1306 allows data to be exchanged in parallel through the interface 1305 during operation of the processor core. Data in the cache 1302 can be output through the write back physical address (PTAG) RAM 1307.

【0063】 プロセッサコアに不可欠なのはコプロセッサであるが、これはCPUによって
発行された仮想アドレスを、図1Bに示すIMVAおよびDMVAで伝送される
、修正された命令およびデータの仮想アドレス(MVA)に変換するためのレジ
スタを含む。具体的には、0〜32メガバイトのメモリ領域のアドレスの場合、
仮想アドレスVAは、7ビットのプロセス識別子によって修正されてVMA=V
A+(ProcIDx32メガバイト)となり、このプロセス識別子ProcI
Dは読み出しまたは書き込みプロセスの識別子である。
Essential to the processor core is the coprocessor, which translates the virtual address issued by the CPU into the virtual address (MVA) of the modified instructions and data carried by IMVA and DMVA shown in FIG. 1B. Contains registers for converting. Specifically, in the case of the address of the memory area of 0 to 32 megabytes,
The virtual address VA is modified by the 7-bit process identifier and VMA = V
A + (ProcID x 32 megabytes), and this process identifier ProcI
D is a read or write process identifier.

【0064】 システム141は、内部AHB(アドバンスト・マイクロコントローラ・バス
・アーキテクチャ・ハイスピード・バス)142、ならびに内部APB(アドバ
ンスト・ペリフェラル・バス)143に基づく。AHB/APBブリッジ144
は、AHB142およびAPB143とのインタフェースをとる。第2ブリッジ
145は、プロセッサ141とAHB142のインタフェースをとる。
The system 141 is based on an internal AHB (Advanced Microcontroller Bus Architecture High Speed Bus) 142 as well as an internal APB (Advanced Peripheral Bus) 143. AHB / APB bridge 144
Interfaces with the AHB 142 and APB 143. The second bridge 145 interfaces the processor 141 and the AHB 142.

【0065】 AHB142から動作するデバイスには、グラフィックス・エンジン146と
ラスタ・エンジン147がある。一般に、グラフィックス・エンジンは、システ
ムのグラフィック性能を向上するために、プロセッサ141からブロック転送や
描線などの機能をオフロードする。グラフィックス・エンジン146は、Win
dows(登録商標)CEをサポートするために標準的なデバイス非依存ビット
マップ(DIP)フォーマットを使用することが好ましい。ラスタ・エンジン1
47は、外部のLCD表示装置、CRT表示装置、またはTV表示装置を駆動す
るために、同期DRAMインタフェース148を通じて外部のディスプレイ・バ
ッファからのデータをラスタ化するために提供される。
Devices operating from the AHB 142 include a graphics engine 146 and a raster engine 147. Generally, the graphics engine offloads functions such as block transfers and strokes from the processor 141 to improve the graphics performance of the system. Graphics engine 146 is Win
It is preferable to use the standard device independent bitmap (DIP) format to support dows® CE. Raster engine 1
47 is provided to rasterize the data from the external display buffer through the synchronous DRAM interface 148 to drive an external LCD, CRT or TV display.

【0066】 内部AHBに通じる他のオンチップ・インタフェースには、システム141を
外部のシステム・バスに結合するインタフェース149、外部のPCカードとイ
ンタフェースをとるためのPCMIA、およびDMAコントローラやラスタ・シ
ステムなどのオンチップ回路ブロックをテストするテスト・インタフェース・コ
ントローラ(TIC)インタフェース151が含まれる。メモリ・インタフェー
ス152は、上記の方式と同様の方式で、外部SRAM、フラッシュ、またはR
OMと制御信号およびデータを交換することを可能にする。そして、下記でさら
に説明するシステムのブートは、少なくとも部分的にブートROM53を使用し
て行われる。この例では、ブートROM153はAHB142から動作するが、
代替実施形態では複数のグローバル・バスおよびローカル・バスのいずれからも
動作することができる。
Other on-chip interfaces to the internal AHB include an interface 149 that couples the system 141 to an external system bus, a PCMIA to interface with an external PC card, and a DMA controller or raster system. A test interface controller (TIC) interface 151 for testing the on-chip circuit blocks of The memory interface 152 uses an external SRAM, a flash, or an R in a manner similar to that described above.
Allows exchange of control signals and data with the OM. And, the booting of the system, described further below, is performed at least in part using the boot ROM 53. In this example, the boot ROM 153 operates from the AHB 142,
Alternate embodiments can operate from both multiple global and local buses.

【0067】 システム140は8チャンネルのDMAエンジン154を含み、これはUAR
Tなどのオンチップ・リソースによる外部メモリへのアクセスの要求に優先順位
をつけ、サービスする。ジョイント・テスト・アクション・グループ(JTAG
)ポート155は、オンチップ・プロセッサと関連する回路のデバッグをサポー
トする。また、ユニバーサル・シリアル・バス(USB)コントローラ156お
よびイーサネット(登録商標)・ポート157は、直接AHBから動作する。
The system 140 includes an 8-channel DMA engine 154, which is a UAR.
Prioritize and service requests for access to external memory by on-chip resources such as T. Joint Test Action Group (JTAG
) Port 155 supports debugging of circuits associated with the on-chip processor. The universal serial bus (USB) controller 156 and the Ethernet (registered trademark) port 157 operate directly from the AHB.

【0068】 複数の周辺デバイスがオンチップに提供され、APB143から動作する。シ
ステム140は中でも特に、UART158、159、および160を含む。ま
た、図の実施形態には、1対のSP1インタフェース161と162、およびA
C97インタフェース163が含まれる。実時間クロック(RTC)165、一
般的なタイマー・セット166、およびウォッチドッグ・タイマ167もこの実
施形態に提供される。追加のメモリ・インタフェース、EEPROMインタフェ
ース168もAPBに結合する。
A plurality of peripheral devices are provided on-chip and operate from the APB 143. System 140 includes, among other things, UARTs 158, 159, and 160. Also, in the illustrated embodiment, a pair of SP1 interfaces 161 and 162, and A
A C97 interface 163 is included. A real time clock (RTC) 165, a general timer set 166, and a watchdog timer 167 are also provided in this embodiment. An additional memory interface, EEPROM interface 168, also couples to the APB.

【0069】 データの手動入力は、キー・マトリックス・インタフェース169に結合され
た外部のキー・マトリクスか、またはタッチ・スクリーンADC171およびタ
ッチ・スクリーン・インタフェース170とインタフェースをとるタッチ・スク
リーンを通じて行うことができる。LED出力172も、システム140のユー
ザ・インタフェースに含まれる。
Manual entry of data can be done through an external key matrix coupled to the key matrix interface 169 or through a touch screen that interfaces with the touch screen ADC 171 and touch screen interface 170. . LED output 172 is also included in the user interface of system 140.

【0070】 集積回路100と同様に、システム140は、汎用入出力(GPIO)ポート
のセット173と、割込みコントローラ174と、システム制御回路176を駆
動させるオンチップPLL175とを含む。制御回路は、メモリのリマップおよ
びシステム一時停止制御回路177を含む。フラッシュVPP制御ブロック17
8は、外部フラッシュの書き込みおよび消去を行うのに必要な電圧を生成する。
Similar to integrated circuit 100, system 140 includes a set of general purpose input / output (GPIO) ports 173, an interrupt controller 174, and an on-chip PLL 175 that drives system control circuit 176. The control circuit includes a memory remap and system suspend control circuit 177. Flash VPP control block 17
8 generates the voltage necessary for writing and erasing the external flash.

【0071】 図1Cは、本発明の原理を適切に適用することのできる別の例示的なシステム
オンチップ180のハイ・レベル機能ブロック図である。この例では、例えばA
RM7TDMIコントローラなどのCPUコア181は、MMUやオンチップ・
キャッシュを利用しない。CPU181は、ローカルAHBバスとローカル/メ
インAHBインタフェース182を介して、AHBバス142と協働して動作す
る。CPU181は、メモリ183、セキュリティ・ゲート184、およびセキ
ュリティ/リセット回路185によってサポートされる。セキュリティについて
は下記でさらに詳細に説明する。
FIG. 1C is a high level functional block diagram of another exemplary system-on-chip 180 to which the principles of the present invention may be suitably applied. In this example, for example, A
CPU core 181 such as RM7TDMI controller is MMU or on-chip
Do not use cache. The CPU 181 operates in cooperation with the AHB bus 142 via the local AHB bus and the local / main AHB interface 182. CPU 181 is supported by memory 183, security gate 184, and security / reset circuit 185. Security is described in more detail below.

【0072】 この実施形態では、システム180はさらに、グローバル・メモリ189、デ
ータ・メモリ190、およびプログラム・メモリ191によってサポートされる
デジタル信号プロセッサ(DSP)186を含む。インタープロセッサ通信レジ
スタ192と、I2Sオーディオ入出力ポート193と、アナログDACサポー
ト回路を使用せずに外部スピーカをCD品質のレベルで駆動させることのできる
PWM回路194と、DSPタイマ/STC195は、DSPペリフェラル・バ
ス196を介してDSP186と通信する。これらのデバイスは、APBからも
動作する。APBから動作する周辺デバイスには、USBスレーブ・ポート19
7、シリアル・メディア入力用のSPI198、およびI2Sホスト・ポート1
99が含まれる。
In this embodiment, system 180 further includes a digital signal processor (DSP) 186 supported by global memory 189, data memory 190, and program memory 191. An interprocessor communication register 192, an I 2 S audio input / output port 193, a PWM circuit 194 capable of driving an external speaker at a CD quality level without using an analog DAC support circuit, and a DSP timer / STC 195, It communicates with the DSP 186 via the DSP peripheral bus 196. These devices also work from APB. Peripheral devices operating from APB include USB slave port 19
7, SPI 198 for serial media input, and I 2 S host port 1
99 are included.

【0073】 モーション・ピクチャ・エキスパート・グループ(MPEG)オーディオ圧縮
規格は、デジタル化されたオーディオ・データの符号化ストリームを復号するプ
ロセスと併せて、ストリームの構文を定義している。オーディオ・アリーナでは
、3つのレイヤ、すなわちレイヤI〜IIIがそれぞれ定義される。この説明の
ために、最も高品質のオーディオ再生を提供するレイヤIIIを考察する。
The Motion Picture Experts Group (MPEG) audio compression standard defines the syntax of a stream, along with the process of decoding an encoded stream of digitized audio data. In the audio arena, three layers, layers I to III, are defined respectively. For the purposes of this discussion, consider Layer III, which provides the highest quality audio playback.

【0074】 符号化のプロセスは、1つまたは複数のオーディオ・チャンネルを、32kH
z、44.1kHz、あるいは46kHzなどの所与のサンプリング・レートで
サンプリングすることから開始する。この結果得られるデジタル化ストリームを
多相フィルタ・バンクに通し、これにより受信した時間領域のストリームを32
個の周波数サブバンドに分割する。通例、フィルタ・バンクは50%の重複によ
り一度に64個の入力サンプルに作用し、32個の入力時間領域サンプルに対し
て32個の周波数領域のサンプルが生成される。
The process of encoding encodes one or more audio channels at 32 kHz.
Start by sampling at a given sampling rate such as z, 44.1 kHz, or 46 kHz. The resulting digitized stream is passed through a polyphase filter bank, which causes the received time domain stream to be 32
, Frequency subbands. Typically, the filter bank operates on 64 input samples at a time with 50% overlap, producing 32 frequency domain samples for 32 input time domain samples.

【0075】 音響心理学モデルを使用して、聴覚マスキングのために人間の耳には聞こえな
いオーディオ信号部分を除去する。聴覚マスキングは人間の聴覚システムの特徴
であり、強いオーディオ信号によって時間的または空間的に近くにある弱いオー
ディオ信号が知覚できなくなるというものである。さらに、人間の耳が音を区別
する能力は周波数に依存する。特定のクリティカルな帯域では、人間の耳は、入
ってくる様々なオーディオ成分を精密に区別(delineate betwe
en)しない。こうしたクリティカルな聴覚帯域を近似させる処理用のサブバン
ドは、そのサブバンド内の量子化ノイズの可聴度に応じて量子化される。
A psychoacoustic model is used to remove portions of the audio signal that are inaudible to the human ear due to hearing masking. Auditory masking is a feature of the human auditory system in which a strong audio signal renders a weak audio signal temporally or spatially nearby imperceptible. Moreover, the ability of the human ear to distinguish sounds is frequency dependent. In certain critical bands, the human ear is sensitive to the various incoming audio components.
en) No. The subband for processing that approximates such a critical auditory band is quantized according to the audibility of the quantization noise in the subband.

【0076】 音響心理学モデルに基づくエンジンは、多相フィルタと並行して動作し、所与
の周波数成分と所与の音量に対して利用可能なノイズ・マスキングを決定する。
この情報に基づき、多相フィルタからのデータ・ストリーム出力を量子化し、符
号化する。レイヤIIIでは、多相フィルタからの32個のサブバンド出力のそ
れぞれをウィンドウに通し、これにより、ウィンドウの長さがそれぞれ36サン
プル幅と12サンプル幅になるように50%の重複により、ストリームを18サ
ンプルからなるロング・ブロックか、または6サンプルからなるショート・ブロ
ックに構文解析する。ロング・ブロックは、比較的一定したオーディオ信号成分
に対してより優れた周波数分解能を達成するために使用し、ショート・ブロック
は過渡部分の分解能を向上させるために使用する。次いで、各サブバンドのブロ
ックを変形離散コサイン変換(MDCT)で処理する。サブバンドの周波数をさ
らに分割することによりスペクトル分解能を向上して、多相フィルタによって生
じたエイリアシングの一部を相殺することができるようにする。
The psychoacoustic model based engine works in parallel with the polyphase filter to determine the noise masking available for a given frequency component and a given volume.
Based on this information, the data stream output from the polyphase filter is quantized and encoded. In Layer III, each of the 32 subband outputs from the polyphase filter is passed through a window, which causes the stream to be 50% overlap so that the window lengths are 36 and 12 samples wide, respectively. Parse into a long block of 18 samples or a short block of 6 samples. The long block is used to achieve better frequency resolution for relatively constant audio signal components and the short block is used to improve the resolution of the transient part. The blocks of each subband are then processed with a modified discrete cosine transform (MDCT). The sub-band frequencies are further divided to improve the spectral resolution so that some of the aliasing caused by the polyphase filter can be canceled out.

【0077】 MPEGxのレイヤIIIでは、量子化を非均一にすることにより、量子化の
値の範囲にわたる信号対ノイズ比をより一定にする。また、レイヤIIIでは、
クリティカルな帯域の幅を近似するスケール因数帯域を利用し、いくつかのMD
CT係数をカバーする。スケール因数はノイズ割り当ての際に使用され、周波数
に依存するマスキング閾値を変え、また基本的に各サブバンドの利得を設定する
。さらに、データ圧縮を高めるために量子化したMDCT係数にハフマン符号化
を行う。最後にビット・リザーバ(reservoir)」を使用するが、ある
フレームを符号化するのに必要なビット数が平均よりも少ない際はこれにビット
を提供することができ、あるフレームを符号化するのに必要なビット数が平均よ
りも多い際にはここからビットを借りることができる。
In Layer III of MPEGx, the non-uniform quantization provides a more constant signal-to-noise ratio over a range of quantization values. In Layer III,
Using the scale factor band that approximates the width of the critical band, several MD
Cover the CT coefficient. The scale factor is used in the noise allocation, changing the frequency-dependent masking threshold, and basically setting the gain for each subband. Further, Huffman coding is performed on the quantized MDCT coefficient in order to enhance data compression. Finally, we use a "bit reservoir", but we can provide bits to a frame when it requires less than the average number of bits to encode a frame, You can borrow bits from here if you need more bits than average.

【0078】 フレームはヘッダ、CRC値、サイド情報、およびメイン・データから形成さ
れるが、フレームのこれら構成要素の相対的位置は必ずしも常に同じ順序ではな
く、またストリーム中で隣接するとも限らない。ヘッダには、フレーム同期ビッ
トのセット、MPEGのバージョンおよびレイヤ識別子、CRC保護ビット、そ
のフレームが作成された際のビット・レートを示すビット・レート・インデック
ス、およびオーディオ・データをサンプリングした際の周波数を示すサンプリン
グ・レート周波数インデックスが含まれ、また移送されるデータに関する他の情
報が含まれる。
Although a frame is formed from a header, a CRC value, side information, and main data, the relative positions of these components of the frame are not always in the same order, nor are they adjacent in the stream. The header includes a set of frame sync bits, an MPEG version and layer identifier, a CRC protection bit, a bit rate index indicating the bit rate at which the frame was created, and a frequency at which the audio data was sampled. The sampling rate frequency index is included, as well as other information about the data to be transported.

【0079】 その後、MPEG1のレイヤIIIのビット・ストリームは一般に以下の要領
で復号することができる。データは、毎秒所定のフレーム数でデコーダに入力さ
れる。各フレームのヘッダ部分中のフレーム同期ビットを検出する。次いで、ス
ケール因数を抽出し、復号する。これに続いて、周波数エネルギを表すハフマン
符号化されたメイン・データを復号する。スケール因数を適用し、データを再量
子化する。この時ステレオ・データを処理する場合はステレオ・チャンネルを回
復し、エイリアシングの低減を行う。逆MDCTの操作を行い、それに続き重複
逆離散コサイン変換(DCT)を行ってデータを時間領域に戻す。ロー・パス・
フィルタをかけてPCMサンプルを回復するが、各サンプルは基本的に互いに隣
り合う512個の時間領域サンプルの加重平均になる。
The MPEG1 Layer III bit stream can then be decoded generally as follows. Data is input to the decoder at a predetermined number of frames per second. Detect the frame sync bit in the header portion of each frame. The scale factor is then extracted and decoded. Following this, the Huffman-encoded main data representing the frequency energy is decoded. Apply a scale factor and requantize the data. At this time, when processing stereo data, the stereo channel is restored to reduce aliasing. The inverse MDCT operation is performed, followed by the overlap inverse discrete cosine transform (DCT) to return the data to the time domain. Low pass
Filtering to recover the PCM samples, each sample essentially being a weighted average of 512 time domain samples next to each other.

【0080】 集積回路100をMEPGxのレイヤIIIデコーダとして構成する場合は、
Cirrus Logic CS43Lxx Stereo Audio DA
CなどのステレオDACを、ヘッドフォン・セットの駆動のためにデジタル・オ
ーディオ・ポート128に結合する。マイクロフォンからデータを入力するため
に、Cirrus Logic CS53L32オーディオA/D変換器などの
アナログ/デジタル変換器もこのポートに結合することができる。図1Dのこの
実施形態は、外部のステレオ・オーディオDACを用いずにCD品質レベルでヘ
ッドフォンを駆動することが可能なオンチップのPWM回路を含む。
When the integrated circuit 100 is configured as a layer III decoder of MPEGx,
Cirrus Logic CS43Lxx Stereo Audio DA
A stereo DAC such as C is coupled to the digital audio port 128 for driving the headphone set. An analog to digital converter, such as a Cirrus Logic CS53L32 audio A / D converter, can also be coupled to this port for inputting data from the microphone. This embodiment of FIG. 1D includes an on-chip PWM circuit capable of driving headphones at CD quality levels without the use of an external stereo audio DAC.

【0081】 しばしば、電子製品にバンドルされるソフトウェアやファームウェアの改ざん
、複製、またはロジック・アナライザによる調査を防止することが必要とされる
。この結果、一定レベルのセキュリティを提供しなければならない。これは例え
ば暗号化されたパスワードを使用して行われ、製造者に許可を受けたエンド・ユ
ーザが、ソフトウェアやファームウェアのダウンロード、デバッグ、およびアッ
プグレードの目的でシステム・メモリ中の資産にアクセスすることは許可するが
、許可されていないエンド・ユーザに対しては同じレベルのアクセスを拒否する
。デジタル・オーディオ・プレーヤの文脈では、オンラインの音楽配信業者がこ
れにより、無許可のダウンロードは少なくともある程度阻止されるという認識に
基づき、使用料を支払い、歌曲をダウンロードするのに必要なパスワードを受け
取ったエンド・ユーザを許可する信頼感を得ることができる。
Often, it is necessary to prevent tampering, duplication, or investigation by logic analyzers of software or firmware bundled with electronic products. As a result, a certain level of security must be provided. This is done, for example, using encrypted passwords that allow the manufacturer's authorized end users to access assets in system memory for software and firmware downloads, debugging, and upgrades. , But deny the same level of access to unauthorized end users. In the context of a digital audio player, online music distributors paid the fee and received the password needed to download the song, recognizing that this would prevent, at least to some extent, unauthorized downloads. It is possible to gain a sense of trust that allows end users.

【0082】 一般には、セキュリティ方式が満たさなければならないいくつかの基準がある
。第1に、システムは、パワーオン・リセットを行った結果無許可のアクセスを
許してはならない。第2に、暗号化されたパスワード、セキュリティ・コード、
およびセキュリティ情報が存在するメモリ中の位置に関する情報などのセキュア
な情報に、システムの外側から容易にアクセスすることができてはならない。た
だし、このセキュアな情報は製造試験段階で確認を行って、通常の製造欠陥に関
してはエンド・ユーザ・システムの品質が許容できるものになることを保証しな
ければならない。最後に、セキュリティ措置が提供されないか、または起動され
ない場合に、システムの通常動作が期待される方式で進行しなればならない。
In general, there are some criteria that security schemes must meet. First, the system must not allow unauthorized access as a result of a power-on reset. Second, the encrypted password, security code,
And secure information, such as information about the location in memory where security information resides, must not be easily accessible from outside the system. However, this secure information must be verified during manufacturing testing to ensure that the quality of the end user system is acceptable for normal manufacturing defects. Finally, normal operation of the system must proceed in the expected manner if security measures are not provided or activated.

【0083】 本発明の原理は、集積回路100が上記基準のそれぞれを満たすことを可能に
するセキュリティ技術を提供し、好都合である。この技術の1つによると、特定
のデフォルト条件または特定命令の動的なアサートに応じて上記のチップ・セレ
クト信号の復号を逆転させるプロセッサ101の能力を使用する。パワーオン・
リセット時にチップ・セレクトの復号を逆にすることにより、通常はアクセスが
不可能なメモリ空間からセキュリティ・コードを実行することができる。さらに
、プロセッサ101のこの機能は、プロセッサ101が命令を実行しない特定の
時間にしか起動することができず、これによりあらゆるセキュリティ侵害の試み
を難しくする。
The principles of the present invention advantageously provide a security technique that enables integrated circuit 100 to meet each of the above criteria. One of the techniques uses the ability of processor 101 to reverse the decoding of the chip select signal described above in response to certain default conditions or dynamic assertion of certain instructions. Power on
By reversing the chip select decryption on reset, the security code can be executed from the normally inaccessible memory space. Furthermore, this feature of processor 101 can only be activated at specific times when processor 101 does not execute instructions, thereby complicating any attempted security breach.

【0084】 図12は、本発明の概念に従って集積回路100をブートする好ましい手順1
200を説明するフロー・チャートである。プロセッサ101はARM720T
プロセッサまたはARM920Tプロセッサであると想定し、また信号名は信号
および/またはそれらの命令に基づくものとする。この手順は、ステップ120
1でパワーオン・リセット(NPOR)信号をアサートすることにより、集積回
路100をパワーオン・リセットすることから開始する。システム中の回路は直
ちにすべてのハードウェアとデバッグ機能を使用不可にし、すべてのセキュリテ
ィ要素(例えばファームウェア、レジスタ、パスワード)を外部からの調査から
隠す(ステップ1202)。このステップにより、少なくともステップ1203
でセキュリティ・ファームウェア・ルーチンが適所にあり使用可能になっている
かどうかを確認するまでは、システムがセキュアであることが保証される。好ま
しい実施形態では、これはプログラマブルなヒューズ・レジスタを読み出すこと
によって行われる。
FIG. 12 illustrates a preferred procedure 1 for booting integrated circuit 100 in accordance with the concepts of the present invention.
20 is a flow chart illustrating 200. The processor 101 is ARM720T
Processor or ARM920T processor, and signal names are based on signals and / or their instructions. The procedure is step 120.
Start by powering on the integrated circuit 100 by asserting the power-on-reset (NPOR) signal at 1. The circuitry in the system immediately disables all hardware and debug features, hiding all security elements (eg firmware, registers, passwords) from external investigation (step 1202). By this step, at least step 1203
The system is guaranteed to be secure until you check if the security firmware routines are in place and enabled. In the preferred embodiment, this is done by reading a programmable fuse register.

【0085】 説明のために、セキュリティが提供されない、または不能になっている場合を
最初に説明する。ステップ1204で、内部ROMからブートを続けるか、また
は外部メモリを使用するかを決定する。ARMプロセッサによる実施形態の場合
は、NMEDCHGビットを使用して、内部ブート・メモリと外部ブート・メモ
リのオプションから選択する。ステップ1204で、ピンNMEDCHGの信号
がクリアである(すなわちアクティブ・ロー状態である)場合は、集積回路10
0のブートは内部ROMから行われる。この場合は、ステップ1205で、デフ
ォルトで内部のブートROMへのアドレス・マッピングが逆転される。アドレス
・マッピングを逆転すると、実行は現在のブートROM位置0から行われること
になる(ステップ1207)。図のこの実施形態では、パワーリセット信号NP
ORをアサートして、アドレス・マッピングを通常の状態に戻さなければならな
い。
For illustration purposes, the case where security is not provided or disabled is first described. At step 1204, it is determined whether to continue booting from internal ROM or to use external memory. For ARM processor implementations, the NMEDCHG bit is used to select between internal boot memory and external boot memory options. In step 1204, if the signal on pin NMEDCHG is clear (ie, active low), then integrated circuit 10
The 0 boot is done from the internal ROM. In this case, in step 1205, the address mapping to the internal boot ROM is reversed by default. Reversing the address mapping will cause execution to begin from the current boot ROM location 0 (step 1207). In this embodiment of the figure, the power reset signal NP
The address mapping must be returned to normal by asserting OR.

【0086】 あるいは、NMEDCHGビットがセットされている(すなわちアクティブ・
ハイ状態にある)場合は、ブートは外部メモリ(ROM/EPROM/フラッシ
ュ)から行われる。この場合、チップ・セレクト・マッピングは表5Aに示すよ
うにセットされ、外部のChip Select0がブート・メモリとして選択
される。
Alternatively, the NMEDCHG bit is set (ie active
When in the high state), booting is done from external memory (ROM / EPROM / flash). In this case, the chip select mapping is set as shown in Table 5A and the external Chip Select0 is selected as the boot memory.

【0087】 次いで、プログラマブルなヒューズ・レジスタの読み出しが、セキュリティ・
ルーチンが適所にあり使用可能になっていることを示す場合を考えてみたい。ブ
ートはステップ1208で分岐して、セキュリティ手順の実行に進む。
Next, the reading of the programmable fuse register is performed by the security
Consider the case where a routine indicates that it is in place and available. Boot branches at step 1208 and proceeds to execute security procedures.

【0088】 集積回路100は、ブートおよび/またはセキュリティ・コードの異なるセッ
トに対応するように構成することができる。これは、各ベンダのセキュア情報に
はそのベンダ自身のブート/セキュリティ手順によってしかアクセスできない場
合でも、集積回路100が複数のベンダによるブート/セキュリティ用のファー
ムウェアを使用して動作することを可能にするため好都合である。最初に、複数
のブート・コードのセットまたはオプションを用いてブート・メモリをプログラ
ムする。これは、内部のブートROMか、または1つまたは複数の外部メモリ・
チップ(ROM/RAM/フラッシュ)を使用して行うことができる。複数のブ
ート・オプションにより、エンド・ユーザは様々なベンダから入手可能なセキュ
リティ・ファームウェアの中から選択することができる。
The integrated circuit 100 can be configured to support different sets of boot and / or security code. This allows integrated circuit 100 to operate using multiple vendor boot / security firmware even though the vendor's secure information can only be accessed by that vendor's own boot / security procedures. Therefore, it is convenient. First, the boot memory is programmed with multiple sets or options of boot code. This can be an internal boot ROM or one or more external memory
This can be done using a chip (ROM / RAM / flash). Multiple boot options allow end users to choose among security firmware available from various vendors.

【0089】 この結果、ステップ1209でブート・メモリ内のブート・オプションのうち
最初のオプションが識別され、ステップ1210でリセット・ベクトルにエイリ
アスされるが、通例これは第1のオプションについては位置0x00である。所
与の実装に必要とされるすべての必要なセキュリティ要素(レジスタ、ファーム
ウェア、I/Oデバイス)は、現在のブート・オプションによって使用可能にな
り、一方その他のセキュリティ・オプション(実装)はすべて隠された状態に保
たれる(ステップ1211)。次いで、ステップ1212で、選択されたブート
・コードをプロセッサで実行して、選択されたセキュリティ・ファームウェア/
ソフトウェアの初期化を試みる。
This results in the first of the boot options in boot memory being identified in step 1209 and aliased to the reset vector in step 1210, which is typically at position 0x00 for the first option. is there. All required security elements (registers, firmware, I / O devices) needed for a given implementation are enabled by the current boot options, while all other security options (implementations) are hidden. The state is maintained (step 1211). Then, in step 1212, the selected boot code is executed by the processor to select the selected security firmware /
Try to initialize the software.

【0090】 ステップ1213でそのブート・コードで呼び出される該当セキュリティ・フ
ァームウェア/ソフトウェアがメモリ中にあった場合、集積回路100はブート
を完了し、ステップ1214でそのセキュリティ・ファームウェア/ソフトウェ
アの監視制御下で、選択されたセキュアな環境で動作する。一方、必要とされる
セキュリティ・ファームウェア/ソフトウェアが見つからない場合は、別のブー
ト・オプションを試さなければならない。
If the security firmware / software called in the boot code in step 1213 is in memory, the integrated circuit 100 completes booting, and in step 1214 it is under supervisory control of the security firmware / software. Works in a secure environment of your choice. On the other hand, if the required security firmware / software is not found, then another boot option should be tried.

【0091】 ステップ1215で最後のセキュリティ・オプションに達さなかった場合は、
ブート・コード中の次のセキュリティ・オプションを選択する(ステップ121
6)。プロセッサに新しいリセット・ベクトルを動的に強制する命令が発行され
る。この例では、リセット・ベクトルはジャンプしてブート・コード中の2番目
のセキュリティ・オプションをポイントする。ステップ1218で、処理はステ
ップ1211に戻り、ブート・プロセスを再度試みる。図の実施形態では、命令
パイプラインは3段であることに留意されたい。この結果、チップ・セレクトを
変更する命令の実行前に、プログラム・カウンタを0にリセットする命令がすで
に内部ブートROMからロードされていることになる。MOVpc,#0の命令
により、プロセッサ・パイプラインをフラッシュし、それによりチップ・セレク
トを行う前に数サイクルを行わせる。このプロセス中には、そのチップ・セレク
ト信号がリマップ・コマンドの実行中に変化するメモリ・リソースに対して他の
アクセスは一切許可されない。
If the last security option was not reached in step 1215,
Select the next security option in the boot code (step 121)
6). An instruction is issued to dynamically force a new reset vector on the processor. In this example, the reset vector jumps and points to the second security option in the boot code. At step 1218, processing returns to step 1211 to try the boot process again. Note that in the illustrated embodiment, the instruction pipeline is three stages. As a result, the instruction to reset the program counter to 0 is already loaded from the internal boot ROM before the instruction to change the chip select is executed. The MOVpc, # 0 instruction flushes the processor pipeline, which causes it to do several cycles before doing a chip select. During this process, no other access is granted to the memory resource whose chip select signal changes during execution of the remap command.

【0092】 このプロセスは、ステップ1214で集積回路100をセキュア動作に入らせ
るセキュリティ・オプションが見つかるか、またはステップ1215で最後のセ
キュリティ・オプションに達するまで反復する。図の実施形態では、最後のオプ
ションまたはデフォルトのオプションは、ステップ1219でブート手順を通常
の(セキュアでない)ブートに戻す。ここで、すべてのデバッグ機能が可能にな
り、ステップ1220でセキュリティ機能が隠される。ステップ1221で、デ
フォルトのブートROMを選択し、ステップ1222でプロセッサにリセット・
ベクトルを動的に強制する。それでも、代替実施形態では、主要なオプションが
すべて使用不可能であった場合でも集積回路100がなおセキュアな環境で動作
できるように、デフォルトのセキュリティ・コードを提供することが可能である
This process repeats until a security option is found in step 1214 that causes integrated circuit 100 to enter secure operation, or a final security option is reached in step 1215. In the illustrated embodiment, the last or default option reverts the boot procedure to normal (non-secure) boot at step 1219. Here, all debug functions are enabled and the security functions are hidden in step 1220. In step 1221 the default boot ROM is selected and in step 1222 the processor is reset
Force the vector dynamically. Nevertheless, in alternative embodiments, a default security code may be provided so that integrated circuit 100 may still operate in a secure environment if all major options were disabled.

【0093】 ARM920Tに基づく集積回路100による実施形態では、命令およびデー
タを対応する命令キャッシュおよびデータ・キャッシュ内にロックすることがで
き、これらはキャッシュ・ミスの際に置換アルゴリズムによる置換の犠牲として
選択されない。データ/命令をロックすることにより、対応する情報が直接キャ
ッシュからフェッチされるキャッシュ・ヒットと、好適なキャッシュ・アクセス
待ち時間が保証される。さらに、ロックされたキャッシュ内の情報には、キャッ
シュまたはTLBメモリへの可視性を可能にするJTAGポートや他のテスト・
デバッグ・モードを通じて以外は、集積回路100の外側からアクセスすること
はできない。主に製品の開発と試験の際に使用されるJTAGポートは、集積回
路100が製造場所を離れると使用不可にすることができる。
Embodiments based on the ARM920T based integrated circuit 100 can lock instructions and data into corresponding instruction and data caches, which are selected at the cost of replacement by the replacement algorithm on cache misses. Not done. Locking the data / instruction guarantees a cache hit where the corresponding information is fetched directly from the cache and a good cache access latency. In addition, the information in the locked cache can be accessed by the JTAG port or other test that allows visibility into the cache or TLB memory.
It is not accessible from outside of integrated circuit 100 except through debug mode. The JTAG port, used primarily during product development and testing, can be disabled when integrated circuit 100 leaves the manufacturing site.

【0094】 キャッシュ・エントリをロックする前に、対応する記述子(物理アドレスと許
可)を関連付けられた変換索引バッファ(TLB)中にロックして、予測可能な
パフォーマンス結果を得なければならない。この例で使用するARM920Tな
どの多くのデバイスは、キャッシュに加えて、データと命令両方の変換索引バッ
ファ(TLB)を含む。所与の命令またはデータ・フィールドに対して、CPU
は仮想アドレスを生成する。次いで修正された仮想アドレスを対応するTLBに
提示し、修正された仮想アドレスのフィールドとTLB中の比較(タグ)レジス
タとを比較する。一致があり、アクセスを許可することができる(これはTLB
エントリ中の許可フィールドによって決定される)場合、修正された仮想アドレ
スのインデックス・ビットと併せて、対応するTLBエントリから戻される物理
アドレス・ビットを使用して物理アドレスを生成し、必要に応じてキャッシュま
たは外部メモリにアクセスする。一致がない場合は、下記のプロセスを起動して
ハードウェア内で仮想アドレスを物理アドレスに変換する。
Prior to locking a cache entry, the corresponding descriptor (physical address and grant) must be locked into the associated translation lookaside buffer (TLB) for predictable performance results. Many devices, such as the ARM920T used in this example, include a translation lookaside buffer (TLB) for both data and instructions in addition to the cache. CPU for a given instruction or data field
Generates a virtual address. The modified virtual address is then presented to the corresponding TLB and the field of the modified virtual address is compared with the compare (tag) register in the TLB. There is a match and access can be granted (this is the TLB
The physical address bits returned from the corresponding TLB entry, along with the index bits of the modified virtual address (if determined by the permission field in the entry), and if necessary. Access cache or external memory. If there is no match, start the following process to convert the virtual address to the physical address in the hardware.

【0095】 キャッシュ・ラインがロックされると、データ用TLBおよび命令用TLB中
の対応するエントリもロックされ、TLB更新中の置換の対象から除外される。
ARM920Tプロセッサの場合、TLBのエントリは、ロックされるデータお
よび命令のTLB中の特定のエントリについての識別子を、システム制御プロセ
ッサ・レジスタC15のTLBロック・ダウン・フィールドに書き込むことによ
ってロックする。
When a cache line is locked, the corresponding entries in the data TLB and instruction TLB are also locked and excluded from replacement during TLB update.
For ARM920T processors, the entry in the TLB locks by writing the identifier for the particular entry in the TLB of the data and instruction to be locked into the TLB lock down field of system control processor register C15.

【0096】 図13のTLBロックダウン手順1300は、命令用TLBまたはデータ用T
LBのエントリをロックする1手法である。ステップ1301で、保護するデー
タまたは命令に対応する物理アドレス・ビットおよび許可を含むページ・テーブ
ルをセットアップする。次いで、対象とするTLB中の少なくとも一部のエント
リをフラッシュまたはクリーンして、ロックするコードがすでにTLBレジスタ
中に入っていないことを確実にする(ステップ1302)。
The TLB lockdown procedure 1300 of FIG. 13 includes a TLB for instruction or a TLB for data.
This is one method of locking the entry of the LB. In step 1301, a page table containing physical address bits and permissions corresponding to the data or instruction to protect is set up. Then, flush or clean at least some entries in the TLB of interest to ensure that the code to lock is not already in the TLB register (step 1302).

【0097】 ARM920Tプロセッサを用いる実施形態では、データ用TLBと命令用T
LBの両方を64ラインの単一セグメント中に編成する。置換(犠牲)カウンタ
は、置換するエントリをポイントする。したがって、ステップ1303で、置換
カウンタを更新して、ロックされた情報を書き込む次のエントリをポイントさせ
る。好ましい実施形態では、このプロセスはエントリ0から開始する。
In an embodiment using the ARM920T processor, TLB for data and T for instruction.
Both LBs are organized in a single segment of 64 lines. The replacement (victim) counter points to the entry to be replaced. Therefore, in step 1303, the replacement counter is updated to point to the next entry to write the locked information. In the preferred embodiment, the process starts at entry 0.

【0098】 命令用TLBにはプリフェッチ命令を使用して、修正された仮想アドレスを生
成し、TLBのミスを強制的に起こす(ステップ1304)。データ用TLBの
場合は、ロード命令を使用してミスを起こすことができる。ミスが起こった後で
ページ・テーブル・ウォークを行って記述子(例えば物理アドレスおよび許可)
を生成し、TLB中にロードしなければならない(ステップ1305)。ステッ
プ1306で、アクセスされたページ・テーブル・エントリの物理アドレス・ビ
ットと修正された仮想アドレスからのインデックス・ビットを使用して、ページ
・テーブル・ウォークで生成された記述子を、所与のTLBの現在の置換カウン
タ内容がポイントするエントリにロードする。
A prefetch instruction is used for the instruction TLB to generate a corrected virtual address, and a TLB miss is forced (step 1304). In the case of a data TLB, a load instruction can be used to cause a miss. Do a page table walk after a miss to get a descriptor (eg physical address and permissions)
Must be generated and loaded into the TLB (step 1305). In step 1306, the descriptor generated in the page table walk is passed to the given TLB using the physical address bits of the accessed page table entry and the index bits from the modified virtual address. Load the entry pointed to by the current replacement counter contents of.

【0099】 ARMT920による実施形態では、対応するTLBのロックダウン・レジス
タのビットを設定することにより、ロードされたTLBエントリをステップ13
07でロックする。ステップ1308で最後のエントリに達した場合は手順が終
了し、それ以外の場合はステップ1309で手順がステップ1303にループバ
ックし、次のエントリのロードに備えて置換カウンタが更新される。
In the ARMT 920 embodiment, the loaded TLB entry is step 13 by setting a bit in the lockdown register of the corresponding TLB.
It locks at 07. If the last entry is reached in step 1308, the procedure ends, otherwise in step 1309 the procedure loops back to step 1303, and the replacement counter is updated in preparation for loading the next entry.

【0100】 TLBのエントリをロックすると、キャッシュ内で対応するデータまたはコー
ドをロックすることができる。説明のために、ARM920Tの命令キャッシュ
内に命令をロックする場合を考えてみたい。データ・キャッシュの場合も同様で
ある。本発明の概念は、ARMプロセッサを用いるシステムに限定されず、ロッ
ク可能な命令および/またはデータ・キャッシュを含む任意のシステムまたはデ
バイスに適用できることにも留意されたい。
Locking an entry in a TLB can lock the corresponding data or code in the cache. For illustration purposes, consider the case of locking an instruction in the ARM920T instruction cache. The same is true for the data cache. It should also be noted that the inventive concept is not limited to systems using ARM processors, but can be applied to any system or device that includes a lockable instruction and / or data cache.

【0101】 図14は、セキュアなコードをキャッシュにロックするためのキャッシュ・ロ
ックダウン手順1400を示す。下記でさらに説明するように、図の実施形態で
は、ロック操作を行うにはキャッシュ・ミスを強制的に起こさなければならない
。キャッシュ・ミスを強制的に起こす好ましい方法は、下記で図15との関連で
説明する。
FIG. 14 shows a cache lockdown procedure 1400 for locking secure code in the cache. As described further below, in the illustrated embodiment, a cache miss must be forced to perform a lock operation. A preferred method of forcing a cache miss is described below in connection with FIG.

【0102】 ステップ1401で、実際のページ・テーブルまたはエミュレートしたページ
・テーブルを、キャッシュ内にロックすべきデータまたは命令が存在するメモリ
位置の物理アドレスを用いてセットアップする。本発明の概念を用いるエミュレ
ートし合成したページ・テーブルについても下記でさらに説明する。このテーブ
ルは、好ましくは手順1300を使用して対応するTLBを更新するのに使用さ
れる。
In step 1401, the actual or emulated page table is set up with the physical address of the memory location where the data or instruction to be locked in cache resides. An emulated and synthesized page table using the inventive concept is also described below. This table is preferably used to update the corresponding TLB using procedure 1300.

【0103】 ステップ1402で、所与のキャッシュの少なくとも一部のキャッシュ・ライ
ンをフラッシュまたはクリーンして、ロックするコードがすでにキャッシュに入
っていないことを確実にする。ステップ1403で、キャッシュと関連付けられ
た置換(犠牲)カウンタに、強制的に最初のキャッシュ・ライン(キャッシュ・
ライン0)をポイントさせる。好ましい実施形態では、データ・キャッシュおよ
び命令キャッシュはそれぞれ8個の64ライン・セグメントに区分され、各セグ
メントには修正された仮想アドレス中のインデックス・フィールドで索引をつけ
る。手順1400でキャッシュ・ラインを逐次満たす。例えば、すべてのセグメ
ントのキャッシュ・ライン0はすべて最初に順次満たし、続いてすべてのキャッ
シュ・ライン1を逐次満たし、以下同様に続く。
At step 1402, flush or clean at least some cache lines in a given cache to ensure that the code to lock is not already in the cache. At step 1403, the replacement (victim) counter associated with the cache is forced to the first cache line (cache
Point to line 0). In the preferred embodiment, the data and instruction caches are each partitioned into eight 64-line segments, each segment indexed by an index field in the modified virtual address. In step 1400, cache lines are sequentially filled. For example, cache line 0 for all segments are all sequentially filled first, followed by all cache line 1 sequentially, and so on.

【0104】 ステップ1404で、キャッシュに入れるデータまたは命令を生成するが、こ
の際には解読プロセス(暗号化解除)が必要となる可能性がある。そしてそのデ
ータまたは命令を、内部SRAMや外部SRAM/DRAM/フラッシュなど代
替メモリ中の対応する位置に格納する。次いでステップ1305で、命令をキャ
ッシュに入れるためのプリフェッチ・キャッシュ・ライン操作を行って、ポイン
トされたキャッシュ・エントリでルックアップを起動する。(データ・キャッシ
ュにはLOAD命令を使用することができる。)これによりキャッシュ・ミスが
起こり、プロセッサが必要なデータまたは命令を含んだ代替メモリにアクセスす
ることが必要となる。TLBが最新のものであり正確である場合、プロセッサは
物理アドレスに必要なビットを求めてTLBを参照することによってこのアクセ
スを行うことができ、またはステップ1401でセットアップされたページ・テ
ーブルを直接ウォークスルーすることによって行うことができる。物理アドレス
自体は、TLB中のアクセスされたエントリの基底アドレス・ビットと、仮想ア
ドレスのインデックス・ビットから生成される。
In step 1404, the cached data or instructions are generated, which may require a decryption process (decryption). Then, the data or instruction is stored in a corresponding position in the alternative memory such as the internal SRAM or the external SRAM / DRAM / flash. Then, in step 1305, a prefetch cache line operation to cache the instruction is performed to trigger a lookup on the cache entry pointed to. (A LOAD instruction can be used for the data cache.) This causes a cache miss, requiring the processor to access an alternate memory that contains the required data or instructions. If the TLB is up to date and accurate, the processor can do this by looking up the TLB for the required bits in the physical address, or a direct walk through the page table set up in step 1401. It can be done by going through. The physical address itself is generated from the base address bits of the accessed entry in the TLB and the index bits of the virtual address.

【0105】 ステップ1405で、生成したコードまたはデータをキャッシュ・ミスを処理
すべき箇所に置き、ステップ1406でキャッシュ・ラインの現在の置換ポイン
タ・エントリにライン・フィルを行う。ここでも、仮想アドレスのキャッシュ・
セグメント・インデックス・ビットでキャッシュ・セグメントに索引をつけてキ
ャッシュ・ミスを起こす。
At step 1405, the generated code or data is placed at the location where the cache miss is to be processed, and at step 1406 a line fill is performed on the current replacement pointer entry of the cache line. Again, the virtual address cache
Index the cache segment with the segment index bit to cause a cache miss.

【0106】 ステップ1407で所与のキャッシュの最後のセグメントに達さずさらにキャ
ッシュ操作が必要な場合は、プロセッサはステップ1408でキャッシュ・セグ
メント・インデックス・ビットを増分して、現在の置換カウンタ値で次のキャッ
シュ・セグメントへの次のキャッシュ・アクセスを強制的に行う。手順はステッ
プ1040に戻り、そこから継続する。
If at step 1407 the last segment of a given cache has not been reached and more cache operations are needed, the processor increments the cache segment index bit at step 1408 to the current replacement counter value. Force the next cache access to the next cache segment. The procedure returns to step 1040 and continues from there.

【0107】 ただし、終えたばかりの動作が最後のキャッシュ・セグメントに対するもので
あり、さらにキャッシュ動作が続く場合(すなわち、ステップ1409で満たす
べき最後のキャッシュ・ラインに到達していない場合)は、ステップ1410で
、手順はジャンプしてステップ1403に戻り、置換カウンタの値を更新し、手
順はその時点から継続する。
However, if the operation just finished is for the last cache segment and more cache operations continue (ie, the last cache line to be satisfied in step 1409 has not been reached), then step 1410 is performed. Then, the procedure jumps back to step 1403, the value of the replacement counter is updated, and the procedure continues from that point.

【0108】 ロックするすべてのコードのロードが完了すると、置換カウンタのベースを、
ロックされたキャッシュ・ラインのベースの値よりも1大きい値にセットする(
ステップ1411)。これにより、プライベートなデータ(この時点では解読さ
れている)が、キャッシュ・ミス時に上書きされず、あるいは無許可の者からア
クセスできないことが保証される。そしてステップ1412でコードをキャッシ
ュから実行することができる。
When all the code to lock is loaded, the base of the replacement counter is
Set to one greater than the base value of locked cache lines (
Step 1411). This ensures that private data (which is now decrypted) is not overwritten on cache misses or accessible by unauthorized persons. The code can then be executed from the cache in step 1412.

【0109】 ロックする領域全体についてのメモリ位置を使用せずにロックおよびキャッシ
ュされたデータを作成する手段の1つは、レジスタのキャッシュ・ラインの長さ
を使用してその領域をエミュレートするものである。また、キャッシュ・ミスの
エミュレーションを使用して、キャッシュ・ロック処理の細分性に対するハード
ウェア制限を改善することもできる。例えば、ARM920Tによる実施形態で
は、キャッシュは64ワード・ブロック(256バイト)単位でロックすること
ができる。ただし、各キャッシュ・ラインはわずか8ワード(32バイト)の長
さであり、したがってアドレス・ビットに応じて64ワード・ブロック内の異な
る位置にマッピングすることができる。
One means of creating locked and cached data without using memory locations for the entire locked area is to use the cache line length of a register to emulate that area. Is. Cache miss emulation can also be used to improve hardware limits on the granularity of cache lock processing. For example, in the ARM920T embodiment, the cache can be locked in blocks of 64 words (256 bytes). However, each cache line is only 8 words (32 bytes) long and therefore can be mapped to different locations within a 64-word block depending on the address bits.

【0110】 本発明の概念によると、ロック可能な位置それぞれについて、メモリ内の代替
位置に8個のプログラマブルな32ビットのエミュレーテッド・キャッシュ・ラ
イン(ECLINE)レジスタが、8個の連続した32ビット位置としてセット
アップされる。さらに、比較(オフセット)レジスタ(ECOFFSET)がセ
ットアップされ、これは、エミュレートされたキャッシュ・ミスの後でキャッシ
ュ・メモリ空間のどこにECLINEレジスタの内容が存在するかを識別する物
理アドレスを用いてプログラムされる。この結果、サイズが1キャッシュ・ライ
ンである位置を使用して、64ワードのロック可能な位置全体を表すことができ
る。
According to the inventive concept, for each lockable location, eight programmable 32-bit emulated cache line (ECLINE) registers are provided in alternate locations in memory for eight consecutive 32-bits. Set up as a position. In addition, a compare (offset) register (ECOFFSET) is set up that uses a physical address to identify where in the cache memory space the contents of the ECLINE register reside after an emulated cache miss. To be done. As a result, a location that is one cache line in size can be used to represent an entire 64-word lockable location.

【0111】 エミュレートしたキャッシュ・ミスの手順1500を図15のフロー・チャー
トに示す。ステップ1501で、(命令キャッシュまたはデータ・キャッシュに
)キャッシュする内容をECLINEレジスタに書き込む。次いで、データを書
き込むロック可能なキャッシュ空間に対するオフセットを、ECOFFSET比
較レジスタ中にプログラムする(ステップ1502)。
The emulated cache miss procedure 1500 is shown in the flow chart of FIG. At step 1501, the contents to be cached (in the instruction cache or data cache) are written to the ELINE register. The offset to the lockable cache space to write the data is then programmed into the ECOFFSET compare register (step 1502).

【0112】 ステップ1503で、キャッシュ・ミスを起こすための操作を行う。命令キャ
ッシュの場合、これは命令キャッシュに対するプリフェッチ命令を通じて行うこ
とができ、データ・キャッシュの場合にはロード命令を通じて行うことができる
。この位置に対して生成された仮想アドレスにより所与のキャッシュでミスが起
こり、次いで仮想アドレスのインデックス・ビットと、適切なTLBから取り出
したベース・ビットを使用するか、あるいはページ・テーブル・ウォークを行っ
て対応する物理アドレスを生成する。ステップ1505で、対応するECLIN
Eレジスタ中の情報を取り出し、ステップ1506でそれをキャッシュ内のアド
レス指定されたエントリにロードする。このエントリは手順1400を使用して
ロックに備えられている。この手順により、キャッシュのロックされた部分に内
部SRAMまたは外部SRAMに頼らずにロードすることが可能になっており好
都合である。
At step 1503, an operation for causing a cache miss is performed. For instruction caches, this can be done through prefetch instructions to the instruction cache, and for data caches it can be done through load instructions. A virtual address generated for this location causes a miss in a given cache and then either uses the virtual address's index bit and the base bit fetched from the appropriate TLB, or does a page table walk. And generate the corresponding physical address. In step 1505, the corresponding ECLIN
The information in the E register is fetched and loaded into the addressed entry in cache at step 1506. This entry is provisioned for the lock using procedure 1400. This procedure advantageously allows the locked portion of the cache to be loaded without resorting to internal or external SRAM.

【0113】 すでに指摘したように、データまたは命令が取り出される物理メモリのアドレ
スを生成するために、キャッシュおよびTLBのロック操作中にページ・テーブ
ル・ウォークが必要となる。本発明の概念は、ページ・テーブル・サポートのた
めに確保しなければならないメモリ量を節減する、合理化されたページ・テーブ
ルの作成を可能にする。さらに、TLBのミスを考慮にいれても、本発明の概念
は、セクション/ページ・テーブル・ウォークによるアドレス変換中に、改ざん
、コピー、またはMMU104のセキュアな動作を通じた電子的な分析からデー
タおよび命令コードを保護する。説明のために再度ARM920Tプロセッサ・
コアを考察するが、本発明の原理はこの他のプロセッサおよびメモリ管理ユニッ
トのメモリ管理方式にも適用することができる。
As pointed out above, a page table walk is required during cache and TLB lock operations to generate the address in physical memory from which data or instructions are fetched. The inventive concept enables the creation of a streamlined page table that saves the amount of memory that must be reserved for page table support. Furthermore, even taking into account TLB misses, the inventive concept is that data and Protect the instruction code. For the sake of explanation, the ARM920T processor
Considering a core, the principles of the present invention can be applied to memory management schemes of other processors and memory management units.

【0114】 この実施形態の場合、従来のページ・テーブル・ウォークは一般に以下のよう
に進行する。レベル1のフェッチ中に、セクション記述子(レベル1)、コース
・ページ・テーブルの基底アドレス、またはファイン・ページ・テーブルの基底
アドレスを4096エントリの変換ベース・テーブル(TBT)から取り出す。
TBTには、変換ベース・レジスタ内のTBT基底アドレスと、修正された仮想
アドレスのテーブル・インデックス・フィールドを使用してアクセスする。
For this embodiment, a conventional page table walk generally proceeds as follows. During a level 1 fetch, the section descriptor (level 1), coarse page table base address, or fine page table base address is fetched from the 4096-entry translation base table (TBT).
The TBT is accessed using the TBT base address in the translation base register and the modified virtual address table index field.

【0115】 TBTからの出力がセクション記述子である場合、その記述子にはセクション
基底アドレスとアクセス許可が含まれている。次いで、レベル1記述子からのセ
クション基底アドレス・ビットと修正された仮想アドレスのセクション・インデ
ックス・ビットを使用して、メモリの1メガバイト・セクションの物理アドレス
を生成する。(レベル1のセクション記述子に含まれる許可は望ましいものであ
ると想定する。)
If the output from the TBT is a section descriptor, that descriptor contains the section base address and access permissions. The section base address bits from the level 1 descriptor and the section index bits of the modified virtual address are then used to generate the physical address of the 1 megabyte section of memory. (It is assumed that the permissions contained in the Level 1 section descriptors are desirable.)

【0116】 TBTから取り出したコース・ページ・テーブル基底アドレスは、修正された
仮想アドレスのレベル2のテーブル・インデックスと併せて、コース・ページ・
テーブル中の256エントリの1つにアクセスし、それにより1メガバイトのブ
ロックを4キロバイトのブロックに分割する。コース・ページ・テーブルは、ア
クセス許可とともに、ラージ基底アドレスまたはスモール基底アドレスを戻す。
その許可の状態に応じて、ラージ・ページまたはスモール・ページの基底アドレ
ス・ビットを修正された仮想アドレスのページ・インデックス・ビットと組み合
わせて、メモリの64キロバイトのラージ・ページまたは4キロバイトのスモー
ル・ページの物理アドレスを生成する。
The course page table base address retrieved from the TBT is combined with the level 2 table index of the modified virtual address, along with the course page table address.
One of the 256 entries in the table is accessed, thereby splitting the 1 megabyte block into 4 kilobyte blocks. The course page table returns large or small base addresses along with access permissions.
Depending on the state of its permissions, the large or small page base address bits may be combined with the modified virtual address page index bits to create 64 kilobyte large pages or 4 kilobyte small pages of memory. Generate the physical address of the page.

【0117】 TBTから取り出したファイン・ページの基底アドレスは、修正された仮想メ
モリ・アドレスからのレベル2のテーブル・インデックス・ビットとともに、1
024エントリのファイン・ページ・テーブルをポイントする。このテーブルか
らの出力はレベル2の記述子であり、これはアクセス許可とともにラージ、スモ
ール、またはタイニー(tiny)の基底アドレスを含んでいる。ラージ・ペー
ジは64キロバイトであり、スモール・ページは4キロバイトであり、タイニー
・ページは1キロバイトである。許可がアクセスの許可を示すとすると、ページ
基底アドレスを、修正された仮想アドレスのページ・インデックス・ビットと連
結して、すでに述べたメモリ中のラージ・ページまたはスモール・ページ、ある
いはメモリ中の1キロバイトのタイニー・ページの物理アドレスを生成する。
The fine page base address retrieved from the TBT is 1 with the level 2 table index bits from the modified virtual memory address.
Points to the 024-entry fine page table. The output from this table is a Level 2 descriptor, which contains the large, small, or tiny base address along with the access permissions. Large pages are 64 kilobytes, small pages are 4 kilobytes, and tiny pages are 1 kilobyte. If the permission indicates permission to access, then the page base address is concatenated with the page index bit of the modified virtual address to give a large or small page in memory as already mentioned, or one in memory. Generates the physical address of a kilobyte tiny page.

【0118】 ページ・テーブル・ウォークの結果アクセスされるメモリは、キャッシュ、内
部メモリ、または外部メモリのいずれかである。物理アドレスと許可を使用して
TLBを更新する。セキュアな情報があればそれを上記のようにTLB中にロッ
クする。
The memory accessed as a result of the page table walk is either cache, internal memory, or external memory. Update TLB with physical address and permissions. If there is secure information, lock it in the TLB as above.

【0119】 この2レベルからなるテーブル・ウォーク手順の欠点は、各種のテーブルに相
当量のオンチップ・メモリが必要となることが原因である。先に述べたように、
セキュアな情報は、無許可のユーザからアクセスすることが不可能なシステムの
内側のメモリ・エリア中になければならない。したがって、物理アドレスの変換
方式など扱いに注意を要する情報を利用可能な内部メモリに効率的に記憶するた
めの何らかの措置を行わなければならない。
A drawback of this two-level table walk procedure is that each table requires a significant amount of on-chip memory. As mentioned earlier,
Secure information must reside in a memory area inside the system that is inaccessible to unauthorized users. Therefore, some measures must be taken to efficiently store sensitive information such as the physical address conversion method in the available internal memory.

【0120】 集積回路100の好ましい実施形態では、テーブル・ウォークのプロセスを大
幅に簡略化し、変換テーブルに必要なメモリ量を著しく減らすことができる。こ
れは動作効率の向上の点から見て重要なだけではなく、これによりセキュアでな
い外部メモリを使用せずに済むことも保証される。
The preferred embodiment of integrated circuit 100 can greatly simplify the process of table walk and significantly reduce the amount of memory required for the translation table. Not only is this important in terms of increased operating efficiency, but it also ensures that insecure external memory is not used.

【0121】 ここでは、メモリ空間を256メガバイトの領域に分割し、各領域を共通のア
クセス特性(例えばアクセス許可、キャッシュの可能性、バファリングの可能性
)のセットと関連付ける。この領域のうち1つのみのわずか1メガバイトだけに
第2レベルのページ・テーブルが必要となる。したがって、多くのメモリ領域が
共通のアクセス特性を有するので、利用可能なSRAM空間内にはるかに小さな
変換テーブルを作成することができる。
Here, the memory space is divided into areas of 256 megabytes and each area is associated with a common set of access characteristics (eg access permissions, cache potential, buffering potential). A second level page table is required for only one megabyte of only one of these areas. Therefore, many memory areas have common access characteristics, allowing a much smaller translation table to be created in the available SRAM space.

【0122】 アクセス許可は、対応するメモリ・ブロックから所与の情報にアクセスできる
かどうかを示す。キャッシュ可能性とバッファリング可能性の属性ビットは、ア
クセスされる情報をキャッシュに記憶することができるか、または書き込みバッ
ファを通じて転送することができるかを判定するのに使用される。例えば、UA
RTおよびその他の周辺装置、およびI/Oデバイスを制御するリアル・ハード
ウェア・レジスタの内容は、一般にはCPUのサブシステムによってキャッシュ
またはバッファリングすることはできない。これにより、アクセスが実際に行わ
れるタイミングが原因でこれらの周辺装置の動作が不正確になる可能性がある。
The access permission indicates whether the given information can be accessed from the corresponding memory block. The cacheability and bufferability attribute bits are used to determine whether the information being accessed can be stored in cache or transferred through a write buffer. For example, UA
The contents of real hardware registers that control RTs and other peripherals, and I / O devices cannot generally be cached or buffered by the subsystem of the CPU. This can lead to inaccurate operation of these peripherals due to the timing of the actual access.

【0123】 さらに、セキュア・システムの場合は、ページ/セクション・テーブルの情報
をプライベート・エリアの境界内に保持して、その情報がメモリから、ロジック
・アナライザで検査することが可能なデバイス・ピンへと移動できないようにし
なければならない。
Furthermore, in the case of a secure system, the page / section table information is kept within the boundaries of the private area so that the information can be checked from memory by a device pin that can be examined by a logic analyzer. You must make sure that you cannot move to.

【0124】 メモリを16個の256メガバイト・ブロックに分割する図の実施形態では、
レベル1のAPビットを記憶するために32ビット・レジスタを作成し、各2ビ
ットのペアが256メガバイトのメモリ領域に対応する。例えば、ビット[1:
0]は領域1に対応し、ビット[3:2]は領域2に対応し、以下同様である。
レベル1の各領域のキャッシュ可能性を示すビット・セットを保持するための1
6ビット・レジスタをセットアップする。各領域のキャッシュ可能性を示すビッ
ト・セットのどちらかを保持するために別の16ビット・レジスタをセットアッ
プする。これらのレジスタは、MMU中の変換ベース・レジスタの内容によって
ポイントされる。
In the illustrated embodiment, which divides the memory into 16 256 megabyte blocks,
A 32-bit register is created to store the level 1 AP bits, each 2-bit pair corresponding to a memory area of 256 megabytes. For example, bit [1:
0] corresponds to region 1, bits [3: 2] correspond to region 2, and so on.
1 to hold a bit set indicating the cacheability of each level 1 region
Set up 6-bit registers. Set up another 16-bit register to hold either of the bit sets indicating the cacheability of each region. These registers are pointed to by the contents of the translation base register in the MMU.

【0125】 図16Aに、固有の特性と定数を有するメモリ領域を扱うのと同時に、これら
のレジスタを更新する手順1600を示す。
FIG. 16A shows a procedure 1600 for updating these registers at the same time as dealing with memory areas having unique characteristics and constants.

【0126】 所与の256メガバイト領域に対して、ステップ1601で、それが共通のア
クセス特性のセットを有するかどうかを判定する。判定の結果が肯定である場合
、ステップ1602で、グローバルなレベル1のAPレジスタ中の対応するエン
トリに該当するAPビットをロードする。ステップ1602および1603で、
グローバルなレベル1のバッファリング可能性とキャッシュ可能性を示すレジス
タ中の対応するエントリも同様に更新する。
For a given 256 megabyte region, step 1601 determines if it has a common set of access characteristics. If the result of the determination is positive, then in step 1602 the AP bit corresponding to the corresponding entry in the global level 1 AP register is loaded. In steps 1602 and 1603,
Corresponding entries in the register indicating global level 1 bufferability and cacheability are updated as well.

【0127】 ステップ1605で、手順は戻り、更新を必要とする次のメモリ領域(ブロッ
ク)のレジスタ・エントリを更新する。グローバルなアクセス制御レジスタの初
期化/更新はループで行うことが好ましい。一般に値は変化しないが、必要であ
ればシステムの処理中に更新することができる。合成しないエントリのフル・レ
ジスタ値は、システムの動作中に適宜更新される。更新が必要となるのは、例え
ばあるメモリ・ページをディスクや同様の大容量記憶装置に「スワップ」アウト
するときに別のページに置き換える場合などである。
In step 1605, the procedure returns to update the register entry of the next memory area (block) that needs updating. Initialization / updating of the global access control register is preferably done in a loop. The values generally do not change, but can be updated during system processing if desired. The full register value for non-composite entries is updated accordingly during system operation. Updates may be needed, for example, when one memory page is "swapped out" to disk or similar mass storage device and replaced by another page.

【0128】 ステップ1601で、アクセス許可、バッファリング可能性とキャッシュ可能
性のビット、および物理アドレス・ビットを含む固有のアクセス特性セットを有
するメモリ・ブロックまたはレジスタについては、ステップ1606および16
07でフルの32ビット・レジスタに完全なレベル1の記述子をロードする。手
順は再度ステップ1608にループ・バックする。この記述子は、コースまたは
ファインのページ(レベル2)テーブルのアドレスを含むことができる。
In step 1601, steps 1606 and 16 for memory blocks or registers that have a unique set of access characteristics including access grants, bufferability and cacheability bits, and physical address bits.
At 07, load full 32-bit register with full level 1 descriptor. The procedure loops back to step 1608. This descriptor can include the address of a course or fine page (level 2) table.

【0129】 そうでない場合は、ステップ1608で、ハードワイヤード・ゲートで定数が
ポイントされる。記憶された定数は、固定値でもレベル2テーブルの基底アドレ
スでもよい。ステップ1609でレベル2へのウォークが必要でない場合は、手
順はステップ1610にループバックする。そうでない場合は、ステップ161
1でレベル2の合成されたテーブル中の対応するレジスタをセットアップする。
Otherwise, in step 1608, the hardwired gate is pointed to a constant. The stored constant may be a fixed value or the base address of the level 2 table. If step 1609 does not require a walk to level 2, the procedure loops back to step 1610. Otherwise, step 161
At 1 set up the corresponding register in the level 2 synthesized table.

【0130】 これと同様のプロセスを、レベル2の合成に使用する。具体的には、レベル2
の各ページについて、共通の特性を有するページおよびサブブロックに対して、
レベル1レジスタ内のレベル2基底アドレス・ビットによってポイントされるレ
ジスタと、グローバルなレベル2のAPレジスタを、レベル2のバッファリング
可能性およびキャッシュ可能性のレジスタとともに上記のようにセットアップす
る。
A similar process is used for Level 2 synthesis. Specifically, level 2
For each page and sub-block with common properties,
Set up the register pointed to by the level 2 base address bit in the level 1 register and the global level 2 AP register with the level 2 bufferability and cacheability registers as described above.

【0131】 ステップ1612で、所与のページまたはページのセットについて、それが共
通のアクセス特性のセットを有するかどうかを判定する。判定の結果が肯定であ
る場合は、ステップ1613でグローバルなレベル2のAPレジスタ中の対応す
るエントリに適切なAPビットをロードする。ステップ1614および1615
で、グローバルなレベル2のバッファリング可能性およびキャッシュ可能性を示
すレジスタ中の対応エントリも同様に更新する。
At step 1612, for a given page or set of pages, determine whether it has a common set of access characteristics. If the determination is positive, then in step 1613 the appropriate AP bit is loaded into the corresponding entry in the global Level 2 AP register. Steps 1614 and 1615
, The corresponding entry in the register indicating global level 2 bufferability and cacheability is updated as well.

【0132】 ステップ1616で、手順はステップ1601に戻り、更新を必要とする次の
メモリ領域(ブロック)のレジスタ・エントリを更新する。
In step 1616, the procedure returns to step 1601 to update the register entry of the next memory area (block) that needs updating.

【0133】 それらレベル2のページに対して、ステップ1612でアクセス許可と、バッ
ファリング可能性およびキャッシュ可能性のビットと、物理アドレス・ビットと
を含む固有のレベル2のアクセス特性のセットを有するページ、ブロック、また
はレジスタのセットに対して、ステップ1618でフルの32ビット・レジスタ
に完全なレベル2記述子をロードする。そうでない場合は、ステップ1618で
ハードワイヤード・ゲート内で定数がポイントされる。記憶された定数は、固定
値、基底アドレスなどでよい。手順はステップ1619で再度ステップ1601
にループバックする。
For those Level 2 pages, in step 1612 pages having a unique set of Level 2 access characteristics including access permissions, bufferability and cacheability bits, and physical address bits. , Block, or set of registers, step 1618 loads full 32-bit registers with complete level-2 descriptors. Otherwise, in step 1618 a constant is pointed in the hardwired gate. The stored constant may be a fixed value, a base address, or the like. The procedure is step 1619 and step 1601 again.
Loop back to.

【0134】 例示的な合成されたページ・テーブルのウォークを図12Bに示す。ステップ
1620で、テーブル・ウォークを要求する。この要求は、TLBおよび/また
はキャッシュのミスに応答したものでよい。この例では、ステップ1621でテ
ーブル・ウォークの第2レベルが必要とされない第1の場合を考えてみたい。ス
テップ1622で、上記のレベル1のレジスタが、MMU中の変換ベース・レジ
スタによってポイントされる。仮想アドレスのテーブル・インデックス・ビット
を使用して、レベル1のレジスタ・エントリを索引づけする(ステップ1623
)。
An example composite page table walk is shown in FIG. 12B. At step 1620, request a table walk. This request may be in response to a TLB and / or cache miss. In this example, consider the first case in step 1621 where the second level of the table walk is not needed. In step 1622, the level 1 register above is pointed to by the translation base register in the MMU. The table index bits of the virtual address are used to index the level 1 register entry (step 1623).
).

【0135】 ステップ1624および1625で、レベル1レジスタの索引付けされたエン
トリからの戻りが完全な記述子であるか、または定数であるかを判定する。戻り
が定数または完全な記述子のいずれでもない場合を最初に考察する。
At steps 1624 and 1625, it is determined whether the return from the indexed entry of the level 1 register is a complete descriptor or a constant. Consider first the case where the return is neither a constant nor a complete descriptor.

【0136】 ステップ1626で、第1レベルのグローバル・アクセス・レジスタ中のアク
セス制御ビット(すなわちAP、キャッシュ可能性、およびバッファリング可能
性のビット)を取り出す。次いでステップ1627で、仮想アドレスに相対的な
ビット位置を移動することにより、仮想アドレスのテーブル・インデックスを物
理アドレスに変換する。
At step 1626, the access control bits (ie AP, cacheability, and bufferability potential bits) in the first level global access register are retrieved. Then in step 1627, the table index of the virtual address is converted to a physical address by moving the bit position relative to the virtual address.

【0137】 好ましい実施形態では、セクション・エントリの変換された仮想アドレスは、
テーブル・インデックス・ビットになり(4096エントリのレベル1ページ・
テーブル中へのルックアップ・ワード・インデックスのビット13:2がそのエ
ントリ(1メガバイトのメモリ領域)についての結果のビット(31:20)に
なる)。セクションの領域は、メモリ位置のビット(13:10)によって定義
される。ARM920またはARM720のMMUを使用する実施形態では、ペ
ージ・テーブル・エントリ中の数ビットが常に定数0または1になる。
In the preferred embodiment, the translated virtual address of the section entry is
Table index bits (4096 entry level 1 pages
Bits 13: 2 of the lookup word index into the table become the resulting bits (31:20) for that entry (1 megabyte memory area). The area of the section is defined by the bits (13:10) of the memory location. In an embodiment using an ARM920 or ARM720 MMU, some bits in the page table entry will always be a constant 0 or 1.

【0138】 ステップ1628で、変換されたアドレス・ビットと取り出したアクセス制御
ビットを組み合わせることにより、レベル1の記述子を形成する。ステップ16
29で、TLBおよび/またはキャッシュの更新のために合成した記述子を戻す
At step 1628, the translated address bits and the retrieved access control bits are combined to form a level 1 descriptor. Step 16
At 29, the composite descriptor for the TLB and / or cache update is returned.

【0139】 ステップ1624および1625に戻ると、レベル1のエントリも完全な記述
子か(ステップ1630)、または定数(ステップ1631)である。ステップ
1632で、その記述子または定数を直ちに使用することができる。
Returning to steps 1624 and 1625, the level 1 entry is also a complete descriptor (step 1630) or a constant (step 1631). At step 1632, the descriptor or constant can be used immediately.

【0140】 次にステップ1621でレベル2のテーブル参照を要求すると想定する。[0140]   Next, assume that in step 1621 a level 2 table lookup is requested.

【0141】 レベル2の変換は、レベル1の参照だけを必要とする際に行われる変換と同様
である。ステップ1633で、上記のようにセットアップされたレベル2のレジ
スタが、MMU中の基底アドレスによってポイントされる。ステップ1634で
、仮想アドレスのテーブル・インデックス・ビットを使用して、特定のレジスタ
またはエントリを索引付ける。ステップ1635および1636で、索引付けさ
れたレジスタ(エントリ)が完全な記述子または定数を含むかどうかを判定する
。記述子が見つかった場合はステップ1637でその記述子を取り出し、定数が
見つかった場合はステップ1638でその定数を取り出す。この記述子または定
数は、ステップ1639で直ちに使用することができる。
Level 2 transformations are similar to those performed when only Level 1 references are required. In step 1633, the level 2 register set up as described above is pointed to by the base address in the MMU. At step 1634, the virtual address table index bits are used to index the particular register or entry. Steps 1635 and 1636 determine whether the indexed register (entry) contains a complete descriptor or constant. If the descriptor is found, the descriptor is fetched in step 1637, and if the constant is found, the constant is fetched in step 1638. This descriptor or constant can be used immediately in step 1639.

【0142】 ステップ1635および1636で、定数または記述子のいずれも見つからな
い場合は、ステップ1640で第2レベルのアクセス制御レジスタにアクセスし
、ステップ1641で仮想アドレスのページ・インデックス・ビットを使用して
対応するアクセス制御ビットを取り出す。ステップ1642で、ビット位置をシ
フトすることにより、仮想アドレスのページ・インデックス・ビットを物理アド
レスに変換する。ステップ1643で、この物理アドレスのビットを、取り出し
たアクセス制御ビットと組み合わせて合成記述子を形成する。ステップ1644
で、TLBの更新、キャッシュ・ミス時のメモリの実行、あるいは同様の動作の
ためにこの合成記述子を戻す。
In steps 1635 and 1636, if neither a constant nor a descriptor is found, then step 1640 accesses the second level access control register and step 1641 uses the page index bit of the virtual address. Fetch the corresponding access control bit. At step 1642, the page index bits of the virtual address are translated into physical addresses by shifting the bit positions. At step 1643, the bits of this physical address are combined with the retrieved access control bits to form a composite descriptor. Step 1644
Returns this composite descriptor for a TLB update, memory execution on cache miss, or similar operation.

【0143】 説明を簡潔にするために、合成したテーブルのウォークについてはレベル1と
レベル2の記述子生成に関してのみ説明したことに留意されたい。ただし、本発
明の原理を反復して適用することにより、第2レベル以下の他レベルのウォーク
・スルーを実装できることに留意されたい。
Note that for the sake of brevity, the walk of the combined tables was described only with respect to Level 1 and Level 2 descriptor generation. However, it should be noted that iterative application of the principles of the present invention may implement other levels of walk-through below the second level.

【0144】 要約すると、本発明の概念によると、第1レベルのテーブルとして必要なのは
、32ビットのAPレジスタと、バッファリング可能性およびキャッシュ可能性
のための1対の16ビット・レジスタのみである。アドレス指定しなければなら
ない第2レベルの各ページに必要とされるのは、スモール・ページのAPレジス
タと、1ビットのキャッシュ可能性およびバッファリング可能性のレジスタから
なる第2レベルのテーブルだけである。
In summary, the concept of the present invention requires only a 32-bit AP register and a pair of 16-bit registers for bufferability and cacheability as a first level table. . Each second level page that must be addressed requires only a small page AP register and a second level table of 1-bit cacheability and bufferability registers. is there.

【0145】 本発明の概念はまた、キャッシュ・ミス時に、キャッシュ・ミスのエミュレー
ションに類似するメモリのレジスタ・エミュレーションによりアドレスの変換と
TLBの更新を可能にする点が好都合である。その後、上記のようにセキュリテ
ィのためにキャッシュおよび/またはTLBのエントリをロックすることができ
る。好ましいエミュレーション・プロセスでは代替のエミュレートしたメモリを
使用し、集積回路100の内部メモリを他のタスクのために割くことができるよ
うにする。ページ・テーブルのメモリ・アドレスは、集積回路の内部にマッピン
グすることが好ましい。こうした概念を用いる好ましい手順は、図17に示すエ
ミュレーテッド・テーブル・ウォーク/TLB更新手順1700である。
The concept of the present invention is also advantageous in that it allows address translation and TLB update by register emulation of the memory, similar to cache miss emulation, on cache misses. The cache and / or TLB entry can then be locked for security as described above. The preferred emulation process uses an alternative emulated memory, allowing the internal memory of integrated circuit 100 to be dedicated to other tasks. The page table memory address is preferably mapped internal to the integrated circuit. The preferred procedure using such a concept is the emulated table walk / TLB update procedure 1700 shown in FIG.

【0146】 初めに、レベル1の記述子かまたはレベル2の基底アドレスを含むエミュレー
トされたレベル1の変換レジスタ(テーブル)(EL1TR)を作成する(ステ
ップ1701)。さらに、EL1TR中のエントリへのインデックスを保持する
、エミュレートしたレベル1のインデックス・レジスタ(EL1IR)を代替の
メモリ空間にセットアップする(ステップ1702)。MMU中の変換ベース・
テーブル(TTB)は、エミュレートされたレベル1のテーブルをポイントする
ようにプログラムする。この領域に対する要求は、テーブル・マッチEL1IR
へのインデックスを含んだEL1TRの内容を受け取る。インデックスが一致し
ない場合は、戻された値が例外を発生させるエントリになる。
First, an emulated level 1 translation register (table) (EL1TR) containing a level 1 descriptor or a level 2 base address is created (step 1701). In addition, an emulated level 1 index register (EL1IR) holding the index to the entry in EL1TR is set up in the alternate memory space (step 1702). Conversion base in MMU
The table (TTB) is programmed to point to the emulated level 1 table. The request for this area is table match EL1IR
Receives the contents of EL1TR including the index to. If the indices do not match, the value returned is the entry that caused the exception.

【0147】 第2レベルを過ぎて継続するアドレス変換については、レベル2の記述子を含
むエミュレートしたレベル2の変換レジスタ(EL2TR)を代替メモリ中に作
成し(ステップ1704)、エミュレートしたレベル2のインデックス・レジス
タが、対応するインデックスを保持する(ステップ1705)。
For address translation that continues past the second level, an emulated level 2 translation register (EL2TR) containing a level 2 descriptor is created in alternate memory (step 1704) and the emulated level is used. The index register of 2 holds the corresponding index (step 1705).

【0148】 ステップ1706で、CPU101に指示を出すか、または外部アドレス・ジ
ェネレータを使用して仮想アドレスを生成する。キャッシュおよびTLBがフラ
ッシュまたはクリーンされている場合はキャッシュ/TLBのミスが起こり、従
ってステップ1707で、MMUによってポイントされるエミュレートされたレ
ベル1のテーブルを使用してテーブル・ウォーク手順を起動する。仮想アドレス
中のレベル1のテーブル・インデックス・ビットを、EL1IR中のテーブル・
インデックス・ビットとEL1TRから戻された対応するレベル1の情報と比較
する(ステップ1708)。
In step 1706, the CPU 101 is instructed or an external address generator is used to generate a virtual address. A cache / TLB miss occurs if the cache and TLB have been flushed or cleaned, so in step 1707 the table walk procedure is invoked using the emulated level 1 table pointed to by the MMU. Set the table index bit of level 1 in the virtual address to the table in EL1IR.
The index bit is compared with the corresponding level 1 information returned from EL1TR (step 1708).

【0149】 ステップ1708で情報が記述子である場合(すなわちレベル2の変換が不要
な場合)は、レベル1のアクセスを実行し(ステップ1709)、ここで記述子
中の許可を調べる(ステップ1710)。許可を与えない場合、動作はステップ
1711で中止する。それ以外の場合は、ステップ1712で、レベル1の記述
子中のセクション・アドレス・ビットと、仮想アドレス中のセクション・インデ
ックスから物理アドレスを生成する。ステップ1713でこの物理アドレスをT
LBにロードして、ロック操作と、対応するデータまたは命令が適切なキャッシ
ュにロードされるのを待機する。ステップ1714で、TLB中の現在のエント
リがロードする最後のエントリでないと判定された場合は、ステップ1715で
、手順はステップ1706にループバックして次のテーブル・ウォークを開始す
る。それ以外の場合は、ステップ1716でTLBのロック手順を実行する。
If the information is a descriptor in step 1708 (ie, no level 2 translation is required), a level 1 access is performed (step 1709), where the permissions in the descriptor are examined (step 1710). ). If not, the operation stops at step 1711. Otherwise, in step 1712, a physical address is generated from the section address bit in the level 1 descriptor and the section index in the virtual address. This physical address is set to T in step 1713.
Load LB and wait for lock operation and corresponding data or instruction to be loaded into the appropriate cache. If in step 1714 it is determined that the current entry in the TLB is not the last entry to load, then in step 1715 the procedure loops back to step 1706 to begin the next table walk. Otherwise, in step 1716, the TLB lock procedure is executed.

【0150】 ステップ1708でEL1TRの情報がレベル2への基底アドレスであると分
かった場合は、ステップ1717でレベル2のページ・ウォークを起動する。E
L2TRレジスタには、EL1TRの基底アドレスを使用してアクセスする(ス
テップ1718)。仮想アドレスのインデックス・ビットに照らして比較するこ
とにより対応するEL2IRレジスタの内容を使用して特定のレジスタを索引付
けする(ステップ1719)。ステップ1720で、戻されたレベル2の記述子
中の許可を調べる。アクセスを許可しない場合はステップ1721でアクセスを
中止し、それ以外の場合は、ステップ1723でレベル2の記述子中の物理アド
レス・ビットと仮想アドレスのインデックス・ビットを使用して物理アドレスを
生成する。ステップ1723で物理アドレスをTLBにロードしてロック操作を
待つ。
If the EL1TR information is found to be the base address to level 2 in step 1708, a level 2 page walk is activated in step 1717. E
The L2TR register is accessed using the base address of EL1TR (step 1718). Index the particular register using the contents of the corresponding EL2IR register by comparing against the index bit of the virtual address (step 1719). In step 1720, check the permissions in the returned level 2 descriptor. If the access is not permitted, the access is stopped in step 1721. Otherwise, the physical address is generated using the physical address bit in the level 2 descriptor and the virtual address index bit in step 1723. . In step 1723, the physical address is loaded into the TLB and the lock operation is waited for.

【0151】 ステップ1724で現在のTLBエントリがロードする最後のエントリである
場合、ステップ1725でTLBロック手順を起動することができ、それ以外の
場合はステップ1726で、手順がジャンプしてステップ1706に戻り、次の
TLBエントリのテーブル・ウォークを開始する。
If at step 1724 the current TLB entry is the last entry to load, then the TLB lock procedure can be activated at step 1725, otherwise at step 1726 the procedure jumps to step 1706. Return and start the table walk for the next TLB entry.

【0152】 集積回路100の実施形態によっては、メモリ管理ユニット(MMU)または
ハードウェア・キャッシュを含まないベア(bare)CPUを用いることが可
能である。例えば、CPUコア101は、キャッシュ103やMMU104を用
いずにARM7tdmiプロセッサ102だけを基盤とすることが可能である。
このオプションを選択する場合は、すべてのソフトウェアをメモリ中のフラット
なメモリ空間に格納しなければならない。ただし、これには外部メモリ(例えば
NORフラッシュ、SRAM、DRAM)の使用が必要となる場合がある。上記
のように、外部メモリ内のデータには、無許可のエンド・ユーザがアクセスまた
は分析する可能性があるという大きな欠点がある。
Depending on the embodiment of integrated circuit 100, it is possible to use a bare CPU that does not include a memory management unit (MMU) or hardware cache. For example, the CPU core 101 can be based on only the ARM7tdmi processor 102 without using the cache 103 or the MMU 104.
If you select this option, all software must be stored in a flat memory space in memory. However, this may require the use of external memory (eg NOR flash, SRAM, DRAM). As mentioned above, the data in external memory has the major drawback that it may be accessed or analyzed by unauthorized end users.

【0153】 ハードウェア・キャッシュもMMUも用いない集積回路100の実施形態では
、セキュリティ・コードを監視プログラム・モードで実行する。監視プログラム
・モードでは、メモリの特定領域および特定レジスタへのアクセスは、監視者の
特権に照らしてチェックを受ける。セキュリティ・ファームウェアは、SRAM
などの内部メモリから実行することが好ましい。監視モードでは、すべての他の
ソフトウェア/ファームウェアはユーザ・モードで実行されているものと解釈さ
れ、したがってセキュリティ保護されたソフトウェアによる監視者特権によるチ
ェックを受ける。
Embodiments of integrated circuit 100 that do not use hardware caches or MMUs execute the security code in supervisor mode. In supervisor mode, access to particular areas of memory and particular registers are checked against the privileges of the observer. Security firmware is SRAM
It is preferable to execute from internal memory such as. In supervised mode, all other software / firmware is interpreted as running in user mode and is therefore subject to supervised checking by the secure software.

【0154】 本発明について特定の実施形態を参照して説明したが、これらの説明は限定的
な意味に解釈すべきではない。当業者には本発明の説明を参照すれば、開示した
実施形態の各種の変形形態、ならびに本発明の代替実施形態が明らかになろう。
当業者には、開示した概念および特定の実施形態は、本発明の同じ目的を実行す
るための他の構造の修正または設計の基礎として容易に利用できることが理解さ
れよう。当業者にはまた、そのような同等の構成が、頭記の特許請求の範囲に述
べる本発明の精神および範囲から逸脱しないことも認識されよう。
Although the present invention has been described with reference to particular embodiments, these descriptions should not be construed in a limiting sense. Various variations of the disclosed embodiments, as well as alternative embodiments of the invention, will be apparent to persons skilled in the art upon reference to the description of the invention.
Those skilled in the art will appreciate that the disclosed concepts and specific embodiments can be readily utilized as a basis for other structural modifications or designs to carry out the same purposes of the present invention. Those skilled in the art will also recognize that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims.

【0155】 したがって、特許請求の範囲は、本発明の真の範囲内に該当する変形形態また
は実施形態を包含するものとする。
Accordingly, the claims are intended to cover any modifications or embodiments that fall within the true scope of the invention.

【0156】 [0156]

【0157】 [0157]

【0158】 [0158]

【0159】 [0159]

【0160】 [0160]

【0161】 [0161]

【0162】 [0162]

【0163】 [0163]

【0164】 [0164]

【0165】 [0165]

【0166】 [0166]

【0167】 [0167]

【0168】 [0168]

【0169】 [0169]

【0170】 [0170]

【0171】 [0171]

【0172】 [0172]

【0173】 [0173]

【0174】 [0174]

【0175】 [0175]

【0176】 [0176]

【0177】 [0177]

【0178】 [0178]

【0179】 [0179]

【0180】 [0180]

【0181】 [0181]

【0182】 [0182]

【0183】 [0183]

【図面の簡単な説明】[Brief description of drawings]

【図1A】 本発明の原理を実施する集積回路のハイ・レベル機能ブロック図である。FIG. 1A   FIG. 3 is a high level functional block diagram of an integrated circuit embodying the principles of the present invention.

【図1B】 本発明の概念を実施する第2のシステムのハイ・レベル図である。FIG. 1B   FIG. 6 is a high level diagram of a second system implementing the concepts of the present invention.

【図1C】 本発明の原理を有利な形で適用することのできる第3の例示的システムの図で
ある。
FIG. 1C is a diagram of a third exemplary system in which the principles of the present invention may be advantageously applied.

【図1D】 さらに2つの形態を示す図である。[Figure 1D]   It is a figure which shows two forms.

【図2】 最大の利用が可能な構成における集積回路100の図である。[Fig. 2]   FIG. 1 is a diagram of integrated circuit 100 in a maximum available configuration.

【図3】 図1Bのプロセッサのハイ・レベル機能ブロック図である。[Figure 3]   2 is a high level functional block diagram of the processor of FIG. 1B. FIG.

【図4A】 システムが「待機状態」に入りピンCLKENのクロック・イネーブル信号が
アサートされたときにピンEXPCLKを駆動させる外部クロックを表す図であ
る。
FIG. 4A is a diagram representing an external clock that drives pin EXPCLK when the system is in a “standby” state and the clock enable signal on pin CLKEN is asserted.

【図4B】 ピンCLKENのクロック・イネーブル信号がアサートされ、システムが「待
機状態」を終了するときにピンEXPCLKを駆動させる外部クロックを表す図
である。
FIG. 4B is a diagram representing an external clock driving pin EXPCLK when the clock enable signal on pin CLKEN is asserted and the system exits the “wait state”.

【図5】 図1Aの状態制御回路の動作を表す状態図である。[Figure 5]   It is a state diagram showing operation | movement of the state control circuit of FIG. 1A.

【図6】 図1Aのシリアル・インタフェース・ブロックを含む3つのシリアル・インタ
フェースのブロック図である。
6 is a block diagram of three serial interfaces including the serial interface block of FIG. 1A.

【図7Aおよび7B】 選択された外部デバイスとの関連でSSI(ADC)の動作を表すタイミング
図である。
7A and 7B are timing diagrams illustrating SSI (ADC) operation in the context of selected external devices.

【図8】 図6のコーデック・インタフェースの動作を表すタイミング図である。[Figure 8]   7 is a timing diagram illustrating the operation of the codec interface of FIG.

【図9】 図6のシリアル・インタフェース・ブロックのI2Sポート間のインタフェー
スを示す機能ブロック図である。
9 is a functional block diagram showing an interface between I 2 S ports of the serial interface block of FIG. 6. FIG.

【図10】 図9のI2Sのインタフェースの動作を表すタイミング図である。10 is a timing diagram illustrating an operation of the I 2 S interface of FIG.

【図11】 マスタ/スレーブ構成における図6のSSI2ポートの使用を説明する機能ブ
ロック図である。
11 is a functional block diagram illustrating the use of the SSI2 port of FIG. 6 in a master / slave configuration.

【図12】 パワーオン・リセット時のシステム初期化を説明するフロー・チャートである
FIG. 12 is a flowchart illustrating system initialization at power-on reset.

【図13】 TLB中のプライベート・データをロックする手順を説明するフロー・チャー
トである。
FIG. 13 is a flow chart illustrating a procedure for locking private data in a TLB.

【図14】 セキュアなコードをキャッシュ内にロックするキャッシュ・ロックダウン手順
を説明する図である。
FIG. 14 illustrates a cache lockdown procedure for locking secure code in cache.

【図15】 エミュレートされたキャッシュ・ミスの手順を示すフロー・チャートである。FIG. 15   6 is a flow chart showing a procedure of an emulated cache miss.

【図16A】 合成された変換テーブルをセットアップする好ましい方法の図である。FIG. 16A   FIG. 6 is a diagram of a preferred method of setting up a combined translation table.

【図16B】 図16Aの合成テーブルを通じたテーブル・ウォークを説明するフロー・チャ
ートである。
16B is a flow chart illustrating a table walk through the composition table of FIG. 16A.

【図17A〜17E】 エミュレートされたテーブル・ウォークを実行する好ましい手順を説明する図
である。
17A-17E are diagrams illustrating a preferred procedure for performing an emulated table walk.

───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,C A,CH,CN,CR,CU,CZ,DE,DK,DM ,DZ,EE,ES,FI,GB,GD,GE,GH, GM,HR,HU,ID,IL,IN,IS,JP,K E,KG,KP,KR,KZ,LC,LK,LR,LS ,LT,LU,LV,MA,MD,MG,MK,MN, MW,MX,MZ,NO,NZ,PL,PT,RO,R U,SD,SE,SG,SI,SK,SL,TJ,TM ,TR,TT,TZ,UA,UG,UZ,VN,YU, ZA,ZW Fターム(参考) 5D045 DB01 ─────────────────────────────────────────────────── ─── Continued front page    (81) Designated countries EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, I T, LU, MC, NL, PT, SE, TR), OA (BF , BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, G M, KE, LS, MW, MZ, SD, SL, SZ, TZ , UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, C A, CH, CN, CR, CU, CZ, DE, DK, DM , DZ, EE, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, JP, K E, KG, KP, KR, KZ, LC, LK, LR, LS , LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, MZ, NO, NZ, PL, PT, RO, R U, SD, SE, SG, SI, SK, SL, TJ, TM , TR, TT, TZ, UA, UG, UZ, VN, YU, ZA, ZW F-term (reference) 5D045 DB01

Claims (14)

【特許請求の範囲】[Claims] 【請求項1】 符号化されたデジタル・オーディオ・データのストリームを
復号するための命令セットに応答して動作する中央演算処理装置と、 前記命令セットを記憶するメモリと、 前記復号されたデジタル・オーディオ・データ・ストリームからオーディオを
生成するデジタル/アナログ変換回路と、 を含むハンドヘルド型オーディオ・デコーダ。
1. A central processing unit operating in response to an instruction set for decoding a stream of encoded digital audio data, a memory storing the instruction set, the decoded digital stream. A handheld audio decoder that includes a digital-to-analog conversion circuit that produces audio from an audio data stream.
【請求項2】 前記中央演算処理装置が、アドバンスト・リスク・マシンを
含む請求項1に記載のオーディオ・デコーダ。
2. The audio decoder according to claim 1, wherein the central processing unit includes an advanced risk machine.
【請求項3】 前記符号化デジタル・データ・ストリームが、MPEGx、
Layer3で符号化されたオーディオ・データを含む請求項1に記載のオーデ
ィオ・デコーダ。
3. The encoded digital data stream is MPEGx,
An audio decoder according to claim 1, comprising audio data encoded in Layer3.
【請求項4】 前記符号化デジタル・データ・ストリームが、ACCで符号
化されたデジタル・データを含む請求項1に記載のオーディオ・デコーダ。
4. The audio decoder of claim 1, wherein the encoded digital data stream comprises ACC encoded digital data.
【請求項5】 前記符号化デジタル・データ・ストリームが、MS Aud
ioで符号化されたデジタル・データを含む請求項1に記載のオーディオ・デコ
ーダ。
5. The encoded digital data stream is MS Aud.
The audio decoder of claim 1 including io encoded digital data.
【請求項6】 前記デコーダが、1つの単3電池で少なくとも1時間は正確
に作動することができる請求項1に記載のオーディオ・デコーダ。
6. The audio decoder of claim 1, wherein the decoder is capable of operating accurately with one AA battery for at least 1 hour.
【請求項7】 符号化されたデジタル・オーディオ・データのストリームを
復号して、アナログのオーディオ・データ・ストリームを生成するシステムオン
チップを含むハンドヘルド型オーディオ機器であって、前記システムオンチップ
が、 前記オーディオ機器をセキュアな動作モードで選択的に作動させるセキュリテ
ィ回路と、 前記セキュリティ回路が前記セキュリティ回路を選択的に使用可能にするため
にアクセスすることが可能な複数のプログラマブルな要素と、 前記セキュリティ回路が前記セキュアな動作モードを開始するために実行する
ことが可能なセキュリティ手順を記憶するメモリと、 を含むハンドヘルド型オーディオ機器。
7. A handheld audio device including a system-on-chip for decoding an encoded digital audio data stream to generate an analog audio data stream, said system-on-chip comprising: A security circuit for selectively operating the audio device in a secure mode of operation; a plurality of programmable elements accessible by the security circuit for selectively enabling the security circuit; A handheld audio device, comprising: a memory storing a security procedure that a circuit can perform to initiate the secure mode of operation.
【請求項8】 前記プログラマブルな要素が、プログラマブルなヒューズの
セットを含む請求項7に記載のオーディオ機器。
8. The audio device of claim 7, wherein the programmable element comprises a programmable set of fuses.
【請求項9】 前記プログラマブルな要素が、読み出し専用メモリ要素のセ
ットを含む請求項7に記載のオーディオ機器。
9. The audio device of claim 7, wherein the programmable element comprises a set of read-only memory elements.
【請求項10】 前記セキュリティ回路が、 前記セキュリティ手順を記憶する前記メモリ中の選択された位置にベクトルを
マッピングし、 前記セキュリティ手順の実行を試み、 前記セキュリティ手順が実行されると、前記セキュリティ手順に従って前記オ
ーディオ機器をセキュアな動作で作動させる、 ように作動する請求項7に記載のオーディオ機器。
10. The security circuit maps a vector to a selected location in the memory that stores the security procedure, attempts to execute the security procedure, and when the security procedure is executed, the security procedure is executed. The audio device according to claim 7, wherein the audio device operates in a secure manner according to.
【請求項11】 復号を行う前記回路がマイクロプロセッサを含む請求項7
に記載のオーディオ機器。
11. The circuit for performing decoding comprises a microprocessor.
Audio equipment described in.
【請求項12】 前記セキュリティ回路が前記マイクロプロセッサの一部を
形成する請求項7に記載のオーディオ機器。
12. The audio device of claim 7, wherein the security circuit forms part of the microprocessor.
【請求項13】 前記マイクロプロセッサが、セキュリティ情報を記憶する
ための複数のロック可能なエントリを含むキャッシュを含む請求項7に記載のオ
ーディオ機器。
13. The audio device of claim 7, wherein the microprocessor includes a cache including a plurality of lockable entries for storing security information.
【請求項14】 前記マイクロプロセッサが、セキュリティ情報を記憶する
ための複数のロック可能なエントリを含む変換索引バッファを含む請求項7に記
載のオーディオ機器。
14. The audio device of claim 7, wherein the microprocessor includes a translation lookaside buffer including a plurality of lockable entries for storing security information.
JP2001557039A 2000-02-01 2001-01-25 Handheld audio decoder Pending JP2003521751A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US49581300A 2000-02-01 2000-02-01
US09/495,813 2000-02-01
US60902300A 2000-06-30 2000-06-30
US09/609,023 2000-06-30
PCT/US2001/002558 WO2001057872A1 (en) 2000-02-01 2001-01-25 Hand-held audio decoder

Publications (1)

Publication Number Publication Date
JP2003521751A true JP2003521751A (en) 2003-07-15

Family

ID=27051891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001557039A Pending JP2003521751A (en) 2000-02-01 2001-01-25 Handheld audio decoder

Country Status (4)

Country Link
EP (1) EP1258005A1 (en)
JP (1) JP2003521751A (en)
AU (1) AU2001231164A1 (en)
WO (1) WO2001057872A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762644B2 (en) 2010-10-15 2014-06-24 Qualcomm Incorporated Low-power audio decoding and playback using cached images
CN112151069B (en) * 2020-08-20 2024-03-15 深圳市捷视飞通科技股份有限公司 Voice data processing method, device, computer equipment and storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993010498A1 (en) * 1991-11-12 1993-05-27 Microchip Technology Inc. Security for on-chip microcontroller memory
DE69638018D1 (en) * 1995-02-13 2009-10-15 Intertrust Tech Corp Systems and procedures for managing secure transactions and protecting electronic rights
US6012137A (en) * 1997-05-30 2000-01-04 Sony Corporation Special purpose processor for digital audio/video decoding
KR100287366B1 (en) * 1997-11-24 2001-04-16 윤순조 Portable device for reproducing sound by mpeg and method thereof

Also Published As

Publication number Publication date
AU2001231164A1 (en) 2001-08-14
EP1258005A1 (en) 2002-11-20
WO2001057872A1 (en) 2001-08-09

Similar Documents

Publication Publication Date Title
JP2003521745A (en) Circuits, systems, and methods for privatizing information in personal electronic devices
US6622208B2 (en) System and methods using a system-on-a-chip with soft cache
US6948098B2 (en) Circuits and methods for debugging an embedded processor and systems using the same
JP3774538B2 (en) Personal computer circuit, computer system, and operation method thereof
CN107250991B (en) Transparent hardware assisted memory decompression
US20030093702A1 (en) System on a chip with multiple power planes and associate power management methods
WO2021036370A1 (en) Method and device for pre-reading file page, and terminal device
EP2946297B1 (en) Overlap checking for a translation lookaside buffer (tlb)
JP2000512406A (en) Method and apparatus for caching system management mode information along with other information
JP2022544791A (en) networked input/output memory management unit
US8751724B2 (en) Dynamic memory reconfiguration to delay performance overhead
KR20190090562A (en) Application processor including low power voice trigger system with security, electronic device including the same and method of operating the same
JP2003521780A (en) Method of synthesizing conversion table and system using the same
JP2003521776A (en) Method and circuit for selectively operating a system in a secure environment
JP4603753B2 (en) Method and circuit for securing cached information
JP2003521751A (en) Handheld audio decoder
TW514830B (en) Circuits, systems and methods for information privatization in personal electronic appliances
KR100532417B1 (en) The low power consumption cache memory device of a digital signal processor and the control method of the cache memory device
US7861007B2 (en) Method and apparatus for multimedia display in a mobile device
JP2002006979A (en) Clock control device, semiconductor intedrated circuit device, micro computer, and electronic equipment
US20080126590A1 (en) Semiconductor based host protected addressing in computing devices
JP2005216220A (en) Information processing method and apparatus
Aho et al. Memory access characteristics of H. 264 video encoder on embedded processor
Lee et al. CalmADM/spl trade: an audio DSP module based on CalmRISC/spl trade