JP5622429B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ Download PDF

Info

Publication number
JP5622429B2
JP5622429B2 JP2010097253A JP2010097253A JP5622429B2 JP 5622429 B2 JP5622429 B2 JP 5622429B2 JP 2010097253 A JP2010097253 A JP 2010097253A JP 2010097253 A JP2010097253 A JP 2010097253A JP 5622429 B2 JP5622429 B2 JP 5622429B2
Authority
JP
Japan
Prior art keywords
endian
processor
mat
user
data transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010097253A
Other languages
English (en)
Other versions
JP2011227730A (ja
Inventor
作川 守
守 作川
友博 桜井
友博 桜井
克吉 渡邉
克吉 渡邉
猪狩誠司
誠司 猪狩
那須 隆
隆 那須
勉 熊谷
勉 熊谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010097253A priority Critical patent/JP5622429B2/ja
Priority to US13/086,002 priority patent/US9395999B2/en
Priority to KR1020110035359A priority patent/KR101793282B1/ko
Publication of JP2011227730A publication Critical patent/JP2011227730A/ja
Application granted granted Critical
Publication of JP5622429B2 publication Critical patent/JP5622429B2/ja
Priority to US15/197,078 priority patent/US9910770B2/en
Priority to KR1020170140392A priority patent/KR101913968B1/ko
Priority to US15/876,780 priority patent/US10140207B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Microcomputers (AREA)
  • Memory System (AREA)

Description

本発明は、CPU(Central Processing Unit)とその周辺回路とを含んだマイクロコンピュータに関し、特に、エンディアン(ビッグエンディアン、リトルエンディアン)の選択機能を有するマイクロコンピュータに関する。
近年、マイクロコンピュータは多種多様な用途に使用されるようになってきており、その機能も多様化してきている。そのようなマイクロコンピュータの機能と1つとして、CPUの動作モードであるバイトデータの配置、いわゆるエンディアンの選択機能を挙げることができる。
従来、マイクロコンピュータでのデータ等のエンディアンはリトルエンディアンまたはビッグエンディアンのどちらかに固定されており、両エンディアンどちらでも動作可能なマイクロコンピュータでのエンディアンの選択は外部端子によって行なわれ、ユーザが予め外部端子をいずれかに設定しておくものがあった。また、CPUが動作中にエンディアンモードを変更するものもあった。これに関連する技術として、下記の特許文献1〜3に開示された発明がある。
特許文献1は、1つのコンピュータシステムで異なる情報形式を有するタスクをサポートする、混合エンディアンコンピュータシステムの提供を目的とする。従来の2エンディアンコンピュータシステムの機能を高め、コンピュータシステムにそのエンディアンモードを動的に変更することを可能にする混合エンディアン回路を備えるようにする。混合エンディアンコンピュータシステムは、必要なら、タスク毎にエンディアンモードを変更できる。混合エンディアン回路は、タスクが大エンディアンフォーマットまたは小エンディアンフォーマットのデータを期待するかどうかに関係なく、実行中のタスクが期待する形式で自動的にデータをフォーマット化する。混合エンディアン回路はまた大エンディアン命令または小エンディアン命令が同じコンピュータシステムで実行できるようにそれらをフォーマット化する。
特許文献2は、エンディアンの異なる複数のオペレーティングシステムを同一計算機上で並行して実行することを目的とする。リトルエンディアンのオペレーティングシステム実行中にビッグエンディアンが処理すべき割り込みが入るとハードウェア依存部がビッグエンディアン宛であることを判別し、CPUのエンディアンを切り替えた後、ビッグエンディアンの割り込みハンドラにジャンプする。
特許文献3は、本来リトルエンディアンデータしか処理できないマイコンで、応用によりビッグエンディアンデータの処理が必要であり、しかもビッグエンディアンの処理性能を、リトルエンディアンのそれと比べ劣化させたくないといったことを目的とする。エンディアンを識別するためのアドレス空間判定器と、その判定の結果に従いデータのエンディアンを切り替えるバイトアライナーを含む構成をなす。第1に、システムにおいて二つのエンディアンのデータおよび装置を両立する。第2に、データ長にかかわらず、いずれのエンディアンのデータでも同じ速度で高速に転送できる。第3に、エンディアン判定が容易である。アドレス空間毎にエンディアンを固定して割り当てているため、アドレス情報のみからエンディアンを高速に識別できる。
特開平08−278918号公報 特開2000−235503号公報 特開平09−097211号公報
マイクロコンピュータは、同一のLSI(Large Scale Integrated circuit)であっても、多ピンパッケージから少ピンパッケージまで幅広く製品が展開されている。特に、少ピンパッケージにおいては、ユーザからできる限り多くの使用可能なピンを残したいといった要望がある。したがって、エンディアンを選択する外部端子を削除して、ユーザが使用可能なピン数を増やす方が望ましい。
また、マイクロコンピュータ内部でエンディアンを固定している場合には、たとえ両方のエンディアンをサポートしていたとしても、ユーザが変更することができない。
本発明は、上記問題点を解決するためになされたものであり、その目的は、エンディアンを選択するための外部端子を削減することが可能なマイクロコンピュータを提供することである。
本発明の一実施例によれば、エンディアンの切り替えが可能なプロセッサを含んだマイクロコンピュータが提供される。フラッシュメモリは、ユーザブートモードで実行されるプログラムおよびそのエンディアン情報が格納されるユーザブート領域と、ユーザモードで実行されるプログラムおよびそのエンディアン情報が格納されるユーザ領域とを含む。データ転送回路は、CPUのリセット解除前に、動作モードに応じてユーザブート領域またはユーザ領域に格納されるエンディアン情報を読み出してCPUに設定する。
この実施例によれば、データ転送回路が、CPUのリセット解除前に、動作モードに応じてユーザブート領域またはユーザ領域に格納されるエンディアン情報を読み出してCPUに設定するので、エンディアンを選択するための外部端子を削減することが可能となる。
本発明の第1の実施の形態におけるマイクロコンピュータの構成例を示すブロック図である。 本発明の第1の実施の形態におけるCPU11のレジスタのデータ配置およびメモリ上のデータ配置を説明するための図である。 本発明の第1の実施の形態におけるCPU11の動作モードの遷移を説明するための図である。 本発明の第1の実施の形態におけるマイクロコンピュータ1のエンディアン選択を説明するための図である。 データ転送回路22の動作を説明するためのタイミングチャートおよびデータ転送回路22の内部構成を示す図である。 本発明の第2の実施の形態におけるマイクロコンピュータ1の構成例を示すブロック図である。 本発明の第2の実施の形態におけるマイクロコンピュータ1の動作の一例を説明するためのフローチャートである。
(第1の実施の形態)
図1は、本発明の第1の実施の形態におけるマイクロコンピュータの構成例を示すブロック図である。このマイクロコンピュータ(以下、マイコンとも呼ぶ。)1は、CPU11と、CIF(CPU Interface)12と、バスアービタ(Arbiter)13と、DMAC(Direct Memory Access Controller)14と、フラッシュメモリ(Flash)15と、フラッシュIF(Flash Interface)16と、SRAM(Static Random Access Memory)17と、SRAM IF18と、EBIU(External Bus Interface Unit)19と、PBIU(Peripheral Bus Interface Unit)20と、周辺IP(Intellectual Property)21と、データ転送回路22とを含む。
CPU11は、CIF12を介して内部バス23に接続されており、CIF12を介してフラッシュメモリ15、SRAM17、周辺IP21、外部バスに接続される外部デバイスなどにアクセスすることができる。また、CPU11は、ビッグエンディアンおよびリトルエンディアンの両方のエンディアンを備えており、データ転送回路22から出力されるエンディアン信号によってエンディアンモードを変更する。
バスアービタ13は、CPU11、DMAC14などのアクセスを監視しており、アクセスの調停を行なう。
DMAC14は、内部のレジスタに書き込まれた転送元アドレス、転送先アドレス、データ転送数などの情報に基づいて、メモリ−メモリ間のDMA転送や、メモリ−IO(Input/Output)間のDMA転送を制御する。
フラッシュメモリ15は、フラッシュIF16を介して内部バス23に接続されており、CPU11、DMAC14、データ転送回路22などからのアクセスに応じてデータの入出力を行なう。
SRAM17は、SRAM IF18を介して内部バス23に接続されており、CPU11、DMAC14などからのアクセスに応じてデータの入出力を行なう。
EBIU19は、内部バス23と外部バスとの間に接続されており、CPU11などからのアクセスに応じて、マイコン1の外部に接続される外部デバイスに対するアクセスを行なう。
周辺IP21は、SIO(Serial Input/Output)、タイマ、センサなどの周辺回路によって構成され、PBIU20を介して内部バス23に接続されており、CPU11などからのアクセスに応じてデータを入出力する。
なお、データ転送回路22の内部構成および動作の詳細については後述する。
図2は、本発明の第1の実施の形態におけるCPU11のレジスタのデータ配置およびメモリ上のデータ配置を説明するための図である。図2(a)は、レジスタのデータ配置を示しており、たとえば、ロングワード(32ビット)のレジスタの場合には、ビット0(b0)がLSB(Least Significant Bit)となり、ビット31(b31)がMSB(Most Significant Bit)となっている。
図2(b)は、メモリ上のデータ配置を示している。リトルエンディアンの場合、たとえば、ロングワードデータであれば、N番地のビット0(b0)がLSBとなり、N+3番地のビット7(b7)がMSBとなっている。また、ビッグエンディアンの場合、たとえば、ロングワードデータであれば、N+3番地のビット0(b0)がLSBとなり、N番地のビット7(b7)がMSBとなっている。
図3は、本発明の第1の実施の形態におけるCPU11の動作モードの遷移を説明するための図である。動作モードは、図1に示すようにマイコン1の外部端子(MD端子)によって設定可能であり、ブートモード、ユーザブートモード、シングルチップモードに分けられる。
外部端子によってブートモードが設定されている場合、リセット解除後にブートモードに遷移する。ブートモードにおいては、フラッシュメモリのブート領域と呼ばれる領域に置かれているプログラムが実行される。ユーザは、ブート領域に置かれているプログラムの消去や書き換えを行なうことはできない。
外部端子によってユーザブートモードが設定されている場合、リセット解除後にユーザブートモードに移行する。ユーザブートモードにおいては、ユーザプログラムを後から書き換え可能とするために、フラッシュメモリのユーザブート領域と呼ばれる領域に置かれている小規模なブートプログラムが実行される。
ユーザブートモードにおけるブートプログラムは、パーソナルコンピュータ(PC)のBIOS(Basic Input Output System)のような機能を有する比較的小規模なプログラムであり、CPU11からプログラム消去を行なえず、専用の書き込み装置または書き込みプログラムによってのみ消去や書き込みが行なえる。このモードにおいては、たとえばデジタル家電などでファームウェアのアップデートを行なう場合に、消去されないシステムの根幹となるプログラムがユーザブート領域に配置されるといった用途で使用される。このモードにおいては、CPU11からユーザ領域側に置かれたプログラムの消去や書き込みを行なうことができる。
外部端子によってシングルチップモードが設定されている場合、リセット解除後にシングルチップモードに移行する。シングルチップモードにおいては、フラッシュメモリのユーザ領域と呼ばれる領域に置かれているユーザプログラムのみが実行される。図3においては、シングルチップモードに遷移すると、まずユーザモードとなり、ユーザ領域に置かれているユーザプログラムが実行される。CPU11の内部信号であるFLWEに“1”が設定されるとユーザプログラムモードに遷移して、フラッシュメモリのユーザ領域のプログラム消去や書き込みが可能となる。このモードにおいては、ユーザブート領域に対するアクセスを禁止して、安全性を高めている。
なお、CPU11が分岐命令を実行することによって、ブートモードからユーザモードまたはユーザプログラムモードに遷移することが可能であり、また、ユーザブートモードからユーザモードまたはユーザプログラムモードに遷移することも可能である。
図4は、本発明の第1の実施の形態におけるマイコン1のエンディアン選択を説明するための図である。図4(a)は、CPU11のメモリマップの一例を示しており、ブート領域、ユーザブート領域、ユーザ領域がそれぞれ配置されている。
ユーザブート領域が配置される領域のFF7F_FFF8番地にはOFS(オプション機能選択)レジスタが設けられており、このOFS内にユーザブートモードにおけるエンディアン情報が格納されている。このOFSはフラッシュメモリ中の領域であるため、マイコン1の電源が遮断され、またはリセットされても保持される。CPU11がリセット解除されてユーザブートモードに遷移する前に、データ転送回路22によってOFS内のエンディアン情報が読み出され、CPU11にエンディアン情報が設定される。
また、ユーザ領域が配置される領域のFFFF_FF90番地にもOFSレジスタが設けられており、このOFS内にユーザモードにおけるエンディアン情報が格納されている。CPU11がリセット解除されてユーザモードに遷移する前に、データ転送回路22によってOFS内のエンディアン情報が読み出され、CPU11にエンディアン情報が設定される。
また、ブート領域が配置される領域のFF7F_FFF8番地にもOFSレジスタが設けられており、このOFS内にブートモードにおけるエンディアン情報が格納されている。CPU11がリセット解除されてブートモードに遷移する前に、データ転送回路22によってOFS内のエンディアン情報が読み出され、CPU11にエンディアン情報が設定される。
図4(b)は、ユーザブートモードにおけるエンディアン情報の設定を説明するための図である。内部システムリセットが解除されると、データ転送回路によるOFS転送が行なわれる。このとき、データ転送回路22は、FF7F_FFF8番地からOFS内のエンディアン情報を読み出し、CPU11に出力する。そして、CPU11のエンディアンが確定した後に、CPU11のリセットが解除されてブートプログラムが実行され、さらにユーザブートプログラムが実行される。
図4(c)は、シングルチップモードにおけるエンディアン情報の設定を説明するための図である。内部システムリセットが解除されると、データ転送回路によるOFS転送が行なわれる。このとき、データ転送回路22は、FFFF_FF90番地からOFS内のエンディアン情報を読み出し、CPU11に出力する。そして、CPU11のエンディアンが確定した後に、CPU11のリセットが解除されてユーザプログラムが実行される。
図5は、データ転送回路22の動作を説明するためのタイミングチャートおよびデータ転送回路22の内部構成を示す図である。図5(a)のT1において、システムリセット(RES#)が入力されると、内部リセットおよびCPUリセットがアサートされ、CPU11および各ブロックのリセットが開始される。このとき、マイコン1の動作モードもリセットされる。
T2において、RES#の解除に対応して内部リセットがハイレベルとなってリセットが解除されると、データ転送回路22の動作が開始される。このとき、OFSレジスタには初期値としてリトルエンディアンが設定されているものとする。
T3において、データ転送回路22がエンディアン情報(リトルエンディアン)をCPU11に設定する。そして、T4において、CPUリセットがハイレベルとなってリセットが解除されると、CPU11は設定されたエンディアンで動作を開始する。
図5(b)は、データ転送回路22の内部構成を示す図である。このデータ転送回路22は、セレクタ31と、データFF(Flip Flop)32と、制御回路33とを含む。
セレクタ31は、動作モードを示すMD端子(外部端子)の値がユーザブートモードを示す“0”の場合には、ユーザブート領域のOFSが格納されるアドレス“FF7F_FFF8”をバスアービタ13に出力する。また、セレクタ31は、MD端子の値がシングルチップモード(ユーザモード)を示す“1”の場合には、ユーザ領域のOFSが格納されるアドレス“FFFF_FF90”をバスアービタ13に出力する。
制御部33は、内部リセットが解除されたときに、バスアービタ13に対してセレクタ31から出力されるアドレスからのデータ読み出しを要求する。このとき、バスアービタ13は、そのアドレスに対応するフラッシュメモリ15の領域からOFSレジスタの内容を読み出し、データFF32に出力する。なお、第1の実施の形態において、領域切り替え信号は使用されない。
データFF32は、バスアービタ13から受けたOFSの中のエンディアン情報を保持し、CPU11に出力する。
上述のように、本実施の形態においては、ユーザブートモードおよびユーザモードのそれぞれに対応して、フラッシュメモリ15の別々のアドレスにエンディアン情報を設定することとしているが、その理由は以下の通りである。
ユーザブートモードにおいては、ユーザブート領域にユーザのプログラムが置かれている。そのため、もしユーザ領域にエンディアン情報が格納されていれば、間違ってユーザ領域を消去してしまうとユーザブートプログラムが正しく動作しなくなるためである。
また、シングルチップモードにおいては、ユーザブート領域にエンディアン情報が格納されていても、ユーザブートを使用しないユーザにとっては不便であるし、シングルチップモードで動作中にユーザブート領域にアクセスできないといった制限があるためである。
なお、ユーザがプログラムをフラッシュメモリ15に書き込むときに、一緒にエンディアン情報も書き込むものとする。また、図5(b)においては、セレクタ31が、ユーザブート領域のOFSが格納されるアドレスと、ユーザ領域のOFSが格納されるアドレスとを選択的に出力するとして説明したが、図4(a)に示すようにブート領域にもOFSが格納されている場合には、セレクタ31が、MD端子に応じて3つのアドレスの中から選択的に1つのアドレスを出力するようにしてもよい。
以上説明したように、本実施の形態におけるマイコン1によれば、CPU11のリセットが解除される前に、データ転送回路22がフラッシュメモリ15の所定アドレスからエンディアン情報を読み出してCPU11に設定するようにしたので、エンディアンを設定するための外部端子を削減することが可能となる。したがって、ユーザが使用可能な外部端子を増やすことが可能となる。
また、動作モードに応じてフラッシュメモリの異なる領域にエンディアン情報を格納するようにしてので、動作モードによるアクセス制限などによってエンディアン情報を変更できなかったり、エンディアン情報が間違って消去されたりするといった不具合を防止することが可能となる。
(第2の実施の形態)
図6は、本発明の第2の実施の形態におけるマイコン1の構成例を示すブロック図である。図1に示す第1の実施の形態におけるマイコンと比較すると、データ転送回路41の機能が異なる点と、フラッシュメモリがブート領域用およびユーザブート領域用のフラッシュメモリ42と、ユーザ領域用のフラッシュメモリ43とに分けられている点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
フラッシュIF16は、フラッシュメモリ(ブート領域またはユーザブート領域)42からフラッシュメモリ(ユーザ領域)43にアクセスが切り替わった場合、またはフラッシュメモリ43からフラッシュメモリ42にアクセスが切り替わった場合に、領域切り替え信号をデータ転送回路41に出力する。すなわち、フラッシュIF16は、起動時、領域切り替え時、停止割り込み時などに領域切り替え信号をデータ転送回路41に出力する。
データ転送回路41が図5に示すデータ転送回路22と異なる点は、制御回路33が領域切り替え信号を受けると、いずれのフラッシュメモリにアクセスが切り替わったかに応じてセレクタ31に対応するアドレスを出力させ、バスアービタ13にフラッシュメモリ42または43のOFS(エンディアン情報格納領域)に対するアクセスを行なわせる点である。データFF32がバスアービタ13から受けたエンディアン情報をCPU11に設定する点は同様である。
図7は、本発明の第2の実施の形態におけるマイコン1の動作の一例を説明するためのフローチャートである。まず、内部リセットが解除されると、データ転送回路41がブートモードまたはユーザブートモードのエンディアン情報を読み出して、CPU11に設定する(S11)。
次に、CPU11のリセットが解除されると、CPU11は、ブート領域またはユーザブート領域内のプログラムを設定されたエンディアンで実行することにより、電源、クロックなどのシステムの初期化を行なうスタートアップ処理を実行し(S12)、ユーザプログラムの実行指示待ちとなる(S13)。
ユーザプログラムの実行指示があると、CPU11はユーザ領域にユーザプログラムがあるか否かを判定する(S14)。たとえば、ユーザ領域の先頭領域にキーワードが書かれているか否か、などの判定方法によってユーザ領域にユーザプログラムがあるか否か判定される。
ユーザ領域にユーザプログラムがある場合には(S14,有)、そのままステップS16に処理が進む。ユーザ領域にユーザプログラムがない場合には(S14,無)、ユーザ領域にユーザプログラムを書き込み(S15)、ステップS16に処理が進む。
ステップS16において、CPU11が、ユーザ領域上のユーザプログラムに分岐する命令を実行する。このとき、データ転送回路41は、ブート領域またはユーザブート領域からユーザ領域にアクセスが切り替わったことを検知して、ユーザモードのエンディアン情報を読み出して、CPU11に設定する。
次に、CPU11は、データ転送回路41から出力されるエンディアン情報に応じてエンディアンを切り替えてユーザプログラムを実行する(S17)。このとき、CPU11が実行する命令は、ブート領域またはユーザブート領域上のプログラムからユーザ領域上のプログラムへ分岐する命令であるため、パイプラインに入っている命令は全てクリアされる。そのため、このときCPU11のエンディアンを切り替えたとしても、切り替えられた後のエンディアンに対応する命令がユーザ領域から新たにフェッチされることになるため、特に動作上問題はない。
CPU11がユーザ領域上のユーザプログラムを実行しているときに、システム停止の割り込みなどを受けると、ユーザプログラムの処理を終了して、メモリ領域の開放、スタック領域の開放などの処理を行ない(S18)、ステップS19に処理が進む。
ステップS19において、CPU11が、ブート領域またはユーザブート領域上のユーザプログラムに分岐する命令を実行する。このとき、データ転送回路41は、ユーザ領域からブート領域またはユーザブート領域にアクセスが切り替わったことを検知して、ブートモードまたはユーザブートモードのエンディアン情報を読み出して、CPU11に設定する。
そして、CPU11は、ブート領域またはユーザブート領域上のプログラムを設定されたエンディアンで実行し、ユーザプログラムをさらに実行する場合にはステップS13に戻ってユーザプログラムの実行指示待ちを行なう。また、ユーザプログラムを実行しなければ、マイコン1の終了処理を行ない(S20)、処理を終了する。
以上の説明は、ユーザ領域(フラッシュメモリ43)に1つのエンディアン情報が格納される場合についてのものであったが、ユーザ領域を複数の領域に分割し、領域ごとにエンディアン情報を格納するようにし、アクセスする領域が切り替わるごとにCPU11にエンディアン情報を再設定するようにしてもよい。
以上説明したように、本実施の形態におけるマイコン1によれば、データ転送回路41が、ブート領域またはユーザブート領域からユーザ領域にアクセスが切り替わるか、またはユーザ領域からブート領域またはユーザブート領域にアクセスが切り替わるのを検知して、CPU11にエンディアン情報を設定するようにした。これによって、CPU11のリセット解除直後だけでなく、CPU11の動作中であっても動作モードやアクセス領域によってエンディアンを切り替えることが可能となる。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 マイコン、11 CPU、12 CIF、13 バスアービタ、14 DMAC、15,42,43 フラッシュメモリ、16 フラッシュIF、17 SRAM、18 SRAM IF、19 EBIU、20 PBIU、21 周辺IP、22,41 データ転送回路、23 内部バス、31 セレクタ、32 データFF、33 制御回路。

Claims (7)

  1. エンディアンの切り替えが可能なプロセッサと、
    エンディアン情報が格納される不揮発メモリと、
    プロセッサリセットがアサートされているときに前記不揮発メモリに格納されたエンディアン情報を読み出すデータ転送回路と
    を含み、
    前記データ転送回路はそのエンディアン情報を前記プロセッサに供給し、
    前記プロセッサは、前記プロセッサリセットのアサートが解除された後に、前記データ転送回路から出力されたエンディアン情報により特定されるエンディアンで動作を開始し、
    前記プロセッサリセットとともに内部リセットがアサートされているとき、前記プロセッサのリセットが行われ、前記内部リセットのアサートが解除されると前記データ転送回路は前記エンディアン情報を読み出す、マイクロコンピュータ。
  2. 前記不揮発メモリは、第1の動作モードで実行されるプログラムおよび第1のエンディアン情報が格納される第1のマットと、第2の動作モードで実行されるプログラムおよび第2のエンディアン情報が格納される第2のマットとを含み、
    前記データ転送回路は、前記プロセッサのリセット解除前に、動作モードに応じて前記第1のマットまたは前記第2のマットに格納されるエンディアン情報を読み出して前記プロセッサに設定する、請求項1記載のマイクロコンピュータ。
  3. 前記データ転送回路は、前記動作モードに応じて、前記第1のエンディアン情報が格納されるアドレスと前記第2のエンディアン情報が格納されるアドレスとのいずれかを選択的に出力する選択手段と、
    前記選択手段によって選択されたアドレスから読み出されたエンディアン情報を保持し、前記プロセッサに出力する保持手段とを含む、請求項2記載のマイクロコンピュータ。
  4. 前記不揮発メモリは、第1の動作モードで実行されるプログラムおよび第1のエンディアン情報が格納される第1のマットと、第2の動作モードで実行されるプログラムおよび第2のエンディアン情報が格納される第2のマットとを含み、
    前記データ転送回路は、前記プロセッサによるアクセスが、前記第1のマットから前記第2のマットに切り替わるか、前記第2のマットから前記第1のマットに切り替わるのを検出して、前記第1のマットまたは前記第2のマットに格納されるエンディアン情報を読み出して前記プロセッサに設定する、請求項1記載のマイクロコンピュータ。
  5. 前記データ転送回路は、前記プロセッサによるアクセスが、前記第1のマットから前記第2のマットに切り替わったとき、または前記第2のマットから前記第1のマットに切り替わったときに、前記第1のエンディアン情報が格納されるアドレスと前記第2のエンディアン情報が格納されるアドレスとのいずれかを選択的に出力する選択手段と、
    前記選択手段によって選択されたアドレスから読み出されたエンディアン情報を保持し、前記プロセッサに出力する保持手段とを含む、請求項4記載のマイクロコンピュータ。
  6. 前記データ転送回路がそのエンディアン情報を前記プロセッサに供給した後に、前記プロセッサリセットのアサートが解除される、請求項1記載のマイクロコンピュータ。
  7. プロセッサリセットがアサートされているときに前記データ転送回路は前記エンディアン情報の格納場所を特定するアドレスを出力して前記エンディアン情報を読み出す、請求項1記載のマイクロコンピュータ。
JP2010097253A 2010-04-20 2010-04-20 マイクロコンピュータ Expired - Fee Related JP5622429B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2010097253A JP5622429B2 (ja) 2010-04-20 2010-04-20 マイクロコンピュータ
US13/086,002 US9395999B2 (en) 2010-04-20 2011-04-13 Microcomputer having processor capable of changing endian based on endian information in memory
KR1020110035359A KR101793282B1 (ko) 2010-04-20 2011-04-15 마이크로 컴퓨터
US15/197,078 US9910770B2 (en) 2010-04-20 2016-06-29 Microcomputer having processor capable of changing endian based on endian information in memory
KR1020170140392A KR101913968B1 (ko) 2010-04-20 2017-10-26 마이크로 컴퓨터
US15/876,780 US10140207B2 (en) 2010-04-20 2018-01-22 Microcomputer having processor capable of changing endian based on endian information in memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010097253A JP5622429B2 (ja) 2010-04-20 2010-04-20 マイクロコンピュータ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014164397A Division JP5823000B2 (ja) 2014-08-12 2014-08-12 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JP2011227730A JP2011227730A (ja) 2011-11-10
JP5622429B2 true JP5622429B2 (ja) 2014-11-12

Family

ID=44789094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010097253A Expired - Fee Related JP5622429B2 (ja) 2010-04-20 2010-04-20 マイクロコンピュータ

Country Status (3)

Country Link
US (3) US9395999B2 (ja)
JP (1) JP5622429B2 (ja)
KR (2) KR101793282B1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5622429B2 (ja) * 2010-04-20 2014-11-12 ルネサスエレクトロニクス株式会社 マイクロコンピュータ
US10120682B2 (en) * 2014-02-28 2018-11-06 International Business Machines Corporation Virtualization in a bi-endian-mode processor architecture
US20170123792A1 (en) * 2015-11-03 2017-05-04 Imagination Technologies Limited Processors Supporting Endian Agnostic SIMD Instructions and Methods
CN109284135B (zh) * 2018-09-07 2022-02-01 深圳市航顺芯片技术研发有限公司 一种简捷调用微控制器内部启动程序的方法
KR20210143048A (ko) 2020-05-19 2021-11-26 삼성전자주식회사 상이한 엔디언 포맷에 따른 데이터 변환을 위한 인터페이스 회로를 갖는 메모리 장치

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408664A (en) * 1992-06-19 1995-04-18 Silicon Graphics, Incorporated System and Method for booting computer for operation in either of two byte-order modes
US5928349A (en) 1995-02-24 1999-07-27 International Business Machines Corporation Mixed-endian computing environment for a conventional bi-endian computer system
US5687337A (en) 1995-02-24 1997-11-11 International Business Machines Corporation Mixed-endian computer system
JPH0997211A (ja) * 1995-09-29 1997-04-08 Matsushita Electric Ind Co Ltd バス制御装置、及びバス制御装置を含む情報処理装置
JPH11212945A (ja) * 1998-01-26 1999-08-06 Mitsubishi Electric Corp マイクロコンピュータおよびそのメモリ
JP3659048B2 (ja) 1999-02-16 2005-06-15 株式会社日立製作所 オペレーティングシステム及び計算機
JP2002251385A (ja) * 2001-02-23 2002-09-06 Nec Microsystems Ltd マイクロコンピュータ
JP2003173327A (ja) * 2001-12-07 2003-06-20 Hitachi Ltd 半導体集積回路
JP2005209105A (ja) * 2004-01-26 2005-08-04 Matsushita Electric Ind Co Ltd マルチスレッドプロセッサ
US7139905B2 (en) * 2004-04-29 2006-11-21 Microsoft Corporation Dynamic endian switching
US7533225B1 (en) 2004-08-17 2009-05-12 Sun Microsystems, Inc. Method and apparatus for enabling adaptive endianness
JP5292406B2 (ja) * 2008-09-12 2013-09-18 ルネサスエレクトロニクス株式会社 半導体集積回路装置
JP5622429B2 (ja) * 2010-04-20 2014-11-12 ルネサスエレクトロニクス株式会社 マイクロコンピュータ

Also Published As

Publication number Publication date
US10140207B2 (en) 2018-11-27
US20180143900A1 (en) 2018-05-24
KR20110116990A (ko) 2011-10-26
KR101793282B1 (ko) 2017-11-02
US20110258422A1 (en) 2011-10-20
KR20170123301A (ko) 2017-11-07
JP2011227730A (ja) 2011-11-10
US9395999B2 (en) 2016-07-19
US20160314068A1 (en) 2016-10-27
KR101913968B1 (ko) 2018-10-31
US9910770B2 (en) 2018-03-06

Similar Documents

Publication Publication Date Title
TWI493350B (zh) 用於周邊組件之高優先權命令佇列
US7296143B2 (en) Method and system for loading processor boot code from serial flash memory
KR101913968B1 (ko) 마이크로 컴퓨터
JP4819301B2 (ja) Nandフラッシュメモリを利用したブートシステム及びその方法
JP2007206885A (ja) コンピュータシステム及びシステム起動方法
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
US20100169546A1 (en) Flash memory access circuit
JP2007206933A (ja) 情報処理装置、情報処理装置におけるブートローダ生成方法およびプログラム転送方法
JP5823000B2 (ja) マイクロコンピュータ
KR100534613B1 (ko) 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법
KR20110078171A (ko) 부팅가능한 휘발성 메모리 장치와 그를 구비한 메모리 모듈 및 프로세싱 시스템, 및 그를 이용한 프로세싱 시스템 부팅 방법
US8117427B2 (en) Motherboard, storage device and controller thereof, and booting method
JP4461760B2 (ja) コンピュータの起動システム
JP5460409B2 (ja) 情報処理システム
JP2006127407A (ja) 半導体集積回路
JP3077807B2 (ja) マイクロコンピュータシステム
JP7018067B2 (ja) 情報処理システム、情報処理方法及びプログラム
GB2304209A (en) Starting up a processor system
JP2009093270A (ja) コンピュータシステム及びその起動方法
JP2008065549A (ja) マイクロコンピュータ、情報処理システム、電子機器及びマイクロコンピュータの起動制御方法
JP2007128336A (ja) 並列レジスタアクセス装置及びシステムlsi
JPH10247187A (ja) 1チップマイクロコンピュータ
Zlatanov Booting an Intel System Architecture
JP2002304329A (ja) 半導体装置
JP2011227592A (ja) データプロセッサ及びデータ処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140327

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140812

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140826

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140916

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140922

R150 Certificate of patent or registration of utility model

Ref document number: 5622429

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees