KR20110116990A - 마이크로 컴퓨터 - Google Patents

마이크로 컴퓨터 Download PDF

Info

Publication number
KR20110116990A
KR20110116990A KR1020110035359A KR20110035359A KR20110116990A KR 20110116990 A KR20110116990 A KR 20110116990A KR 1020110035359 A KR1020110035359 A KR 1020110035359A KR 20110035359 A KR20110035359 A KR 20110035359A KR 20110116990 A KR20110116990 A KR 20110116990A
Authority
KR
South Korea
Prior art keywords
user
endian
area
mat
stored
Prior art date
Application number
KR1020110035359A
Other languages
English (en)
Other versions
KR101793282B1 (ko
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 KR20110116990A publication Critical patent/KR20110116990A/ko
Application granted granted Critical
Publication of KR101793282B1 publication Critical patent/KR101793282B1/ko

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)

Abstract

엔디안을 선택하기 위한 외부 단자를 삭감하는 것이 가능한 마이크로 컴퓨터를 제공한다. 플래시 메모리(15)는, 유저 부트 모드로 실행되는 프로그램 및 그 엔디안 정보가 저장되는 유저 부트 영역과, 유저 모드로 실행되는 프로그램 및 그 엔디안 정보가 저장되는 유저 영역을 포함한다. 데이터 전송 회로(22)는, CPU(11)의 리셋 해제 전에, 동작 모드에 따라 유저 부트 영역 또는 유저 영역에 저장되는 엔디안 정보를 판독하여 CPU(11)에 설정한다. 따라서, 엔디안을 선택하기 위한 외부 단자를 삭감하는 것이 가능해진다.

Description

마이크로 컴퓨터{MICRO COMPUTER}
본 발명은, CPU(Central Processing Unit)와 그 주변 회로를 포함한 마이크로 컴퓨터에 관한, 특히, 엔디안(big endian, little endian)의 선택 기능을 가지는 마이크로 컴퓨터에 관한 것이다.
근래, 마이크로 컴퓨터는 다종 다양한 용도에 사용되게 되고 있고 그 기능도 다양화되어 오고 있다. 그러한 마이크로 컴퓨터의 기능의 하나로서, CPU의 동작 모드인 바이트 데이터(byte data)의 배치, 이른바 엔디안의 선택 기능을 들 수 있다.
종래, 마이크로 컴퓨터에서의 데이터 등의 엔디안은 리틀 엔디안 또는 빅 엔디안의 어딘가에 고정되어 있어, 양(兩) 엔디안 어디라도 동작 가능한 마이크로 컴퓨터로의 엔디안의 선택은 외부 단자에 의해서 행해져, 유저가 미리 외부 단자를 어느 쪽인가에 설정해 두는 것이 있었다. 또, CPU가 동작 중에 엔디안 모드를 변경하는 것도 있었다. 이것에 관련하는 기술로서 아래와 같은 특허 문헌 1~3에 개시된 발명이 있다.
특허 문헌 1은, 하나의 컴퓨터 시스템으로 상이한 정보 형식을 가지는 태스크(task)를 서포트하는, 혼합 엔디안 컴퓨터 시스템의 제공을 목적으로 한다. 종래의 2 엔디안 컴퓨터 시스템의 기능을 높이고, 컴퓨터 시스템에 그 엔디안 모드를 동적으로 변경하는 것을 가능하게 하는 혼합 엔디안 회로를 갖추도록 한다. 혼합 엔디안 컴퓨터 시스템은, 필요하면, 태스크마다 엔디안 모드를 변경할 수 있다. 혼합 엔디안 회로는, 태스크가 빅 엔디안 포맷 또는 리틀 엔디안 포맷의 데이터를 기대할지 어떨지에 관계없이, 실행 중의 태스크가 기대하는 형식으로 자동적으로 데이터를 포맷화 한다. 혼합 엔디안 회로는 또 빅 엔디안 명령 또는 리틀 엔디안 명령이 같은 컴퓨터 시스템으로 실행할 수 있도록 그것들을 포맷화 한다.
특허 문헌 2는, 엔디안이 상이한 복수의 오퍼레이팅 시스템(operating system)을 동일 계산기 상에서 병행해서 실행하는 것을 목적으로 한다. 리틀 엔디안의 오퍼레이팅 시스템 실행중에 빅 엔디안이 처리해야 할 인터럽트(interrupt)가 들어가면 하드웨어 의존부가 빅 엔디안 앞인 것을 판별하여, CPU의 엔디안을 전환한 후, 빅 엔디안의 인터럽트 처리기로 점프한다.
특허 문헌 3은, 본래 리틀 엔디안 데이터 밖에 처리할 수 없는 마이크로컴퓨터로, 응용에 의해 빅 엔디안 데이터의 처리가 필요하고, 게다가 빅 엔디안의 처리 성능을, 리틀 엔디안의 그것과 비교해 열화 시키고 싶지 않다고 하는 것을 목적으로 한다. 엔디안을 식별하기 위한 어드레스 공간 판정기와 그 판정의 결과에 따라 데이터의 엔디안을 바꾸는 바이트 얼라이너(byte aligner)를 포함한 구성으로 이루어진다. 제1로, 시스템에 있어서 두 개의 엔디안의 데이터 및 장치를 양립한다. 제2로, 데이터 길이에 관계없이, 어느 엔디안의 데이터에서도 같은 속도로 고속으로 전송할 수 있다. 제3으로, 엔디안 판정이 용이하다. 어드레스 공간마다 엔디안을 고정해 할당하고 있기 때문에, 어드레스 정보만으로부터 엔디안을 고속으로 식별할 수 있다.
[특허 문헌 1] 일본국 특허공개공보 평08-278918호 [특허 문헌 2] 일본국 특허공개공보 2000-235503호 [특허 문헌 3] 일본국 특허공개공보 09-097211호
마이크로 컴퓨터는, 동일한 LSI(Large Scale Integrated circuit)이여도, 다핀 패키지로부터 소핀 패키지까지 폭넓게 제품이 전개되고 있다. 특히, 소핀 패키지에 있어서는, 유저로부터 가능한 한 많은 사용 가능한 핀을 남기고 싶다고 하는 요망이 있다. 따라서, 엔디안을 선택하는 외부 단자를 삭제하여, 유저가 사용 가능한 핀수를 늘리는 것이 바람직하다.
또, 마이크로 컴퓨터 내부에서 엔디안을 고정하고 있는 경우에는, 비록 양쪽의 엔디안을 서포트하고 있었다고 해도, 유저가 변경할 수 없다.
본 발명은, 상기 문제점을 해결하기 위해서 이루어진 것이며, 그 목적은, 엔디안을 선택하기 위한 외부 단자를 삭감하는 것이 가능한 마이크로 컴퓨터를 제공하는 것이다.
본 발명의 하나의 실시예에 의하면, 엔디안의 변환이 가능한 프로세서를 포함한 마이크로 컴퓨터가 제공된다. 플래시 메모리는, 유저 부트 모드로 실행되는 프로그램 및 그 엔디안 정보가 저장되는 유저 부트 영역과 유저 모드로 실행되는 프로그램 및 그 엔디안 정보가 저장되는 유저 영역을 포함한다. 데이터 전송 회로는, CPU의 리셋 해제 전에, 동작 모드에 따라 유저 부트 영역 또는 유저 영역에 저장되는 엔디안 정보를 판독하여 CPU에 설정한다.
이 실시예에 의하면, 데이터 전송 회로가, CPU의 리셋 해제 전에, 동작 모드에 따라 유저 부트 영역 또는 유저 영역에 저장되는 엔디안 정보를 판독하여 CPU에 설정하므로, 엔디안을 선택하기 위한 외부 단자를 삭감하는 것이 가능해진다.
도 1은 본 발명의 제1의 실시의 형태에 있어서의 마이크로 컴퓨터의 구성예를 나타낸 블럭도.
도 2는 본 발명의 제1의 실시의 형태에 있어서의 CPU(11)의 레지스터의 데이터 배치 및 메모리상의 데이터 배치를 설명하기 위한 도.
도 3은 본 발명의 제1의 실시의 형태에 있어서의 CPU(11)의 동작 모드의 천이를 설명하기 위한 도.
도 4는 본 발명의 제1의 실시의 형태에 있어서의 마이크로 컴퓨터(1)의 엔디안 선택을 설명하기 위한 도.
도 5는 데이터 전송 회로(22)의 동작을 설명하기 위한 타이밍 차트 및 데이터 전송 회로(22)의 내부 구성을 나타내는 도.
도 6은 본 발명의 제2의 실시의 형태에 있어서의 마이크로 컴퓨터(1)의 구성예를 나타내는 블럭도.
도 7은 본 발명의 제2의 실시의 형태에 있어서의 마이크로 컴퓨터(1)의 동작의 일례를 설명하기 위한 플로차트(flow chart).
(제1의 실시의 형태)
도 1은, 본 발명의 제1의 실시의 형태에 있어서의 마이크로 컴퓨터의 구성예를 나타내는 블럭도이다. 이 마이크로 컴퓨터(이하, 마이컴이라고도 부른다.)(1)는, CPU(11)와 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 IF(18)와 EBIU(External Bus Interface Unit)(19)와 PBIU(Peripheral Bus Interface Unit)(20)와 주변 IP(Intellectual Property)(21)와 데이터 전송 회로(22)를 포함한다.
CPU(11)는, CIF(12)를 개입시켜 내부 버스(23)에 접속되고 있고 CIF(12)를 개입시켜 플래시 메모리(15), SRAM(17), 주변 IP(21), 외부 버스에 접속되는 외부 디바이스 등에 액세스 할 수 있다. 또, CPU(11)는, 빅 엔디안 및 리틀 엔디안의 양쪽의 엔디안을 갖추고 있고, 데이터 전송 회로(22)로부터 출력되는 엔디안 신호에 의해서 엔디안 모드를 변경한다.
버스 아비터(13)는, CPU(11), DMAC(14)등의 액세스를 감시하고 있고, 액세스의 조정을 행한다.
DMAC(14)는, 내부의 레지스터에 기록된 전송 송신 어드레스, 전송 수신 어드레스, 데이터 전송수 등의 정보에 근거하고, 메모리-메모리 간의 DMA 전송이나, 메모리 IO(Input/Output) 간의 DMA 전송을 제어한다.
플래시 메모리(15)는, 플래시 IF(16)를 개입시켜 내부 버스(23)에 접속되고 있고, CPU(11), DMAC(14), 데이터 전송 회로(22) 등에서의 액세스에 따라 데이터의 입출력을 행한다.
SRAM(17)은, SRAM IF(18)를 개입시켜 내부 버스(23)에 접속되어 있고 CPU(11), DMAC(14) 등에서의 액세스에 따라 데이터의 입출력을 행한다.
EBIU(19)는, 내부 버스(23)와 외부 버스와의 사이에 접속되어 있고, CPU(11) 등에서의 액세스에 따라, 마이크로컴퓨터(1)의 외부에 접속되는 외부 디바이스에 대한 액세스를 행한다.
주변 IP(21)는, SIO(Serial Input/Output), 타이머, 센서 등의 주변 회로에 의해서 구성되고, PBIU(20)를 개입시켜 내부 버스(23)에 접속되어 있고, CPU(11) 등에서의 액세스에 따라 데이터를 입출력한다.
또한, 데이터 전송 회로(22)의 내부 구성 및 동작의 상세한 것에 대하여는 후술한다. 도 2는, 본 발명의 제1의 실시의 형태에 있어서의 CPU(11)의 레지스터의 데이터 배치 및 메모리상의 데이터 배치를 설명하기 위한 도이다. 도 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의 실시의 형태에 있어서의 CPU(11)의 동작 모드의 천이를 설명하기 위한 도이다. 동작 모드는, 도 1에 나타내는 바와 같이 마이크로컴퓨터(1)의 외부 단자(MD단자)에 의해서 설정 가능하고, 부트 모드, 유저 부트 모드, 싱글 칩 모드로 나눌 수 있다.외부 단자에 의해서 부트 모드가 설정되어 있는 경우, 리셋 해제 후에 부트 모드로 천이한다. 부트 모드에 있어서는, 플래시 메모리의 부트 영역으로 불리는 영역에 놓여져 있는 프로그램이 실행된다. 유저는, 부트 영역에 놓여져 있는 프로그램의 소거나 개서를 행할 수 없다.
외부 단자에 의해서 유저 부트 모드가 설정되어 있는 경우, 리셋 해제 후에 유저 부트 모드로 이행한다. 유저 부트 모드에 있어서는, 유저 프로그램을 나중에 개서 가능으로 하기 위해서, 플래시 메모리의 유저 부트 영역으로 불리우는 영역에 놓여져 있는 소규모의 부트 프로그램이 실행된다.
유저 부트 모드에 있어서의 부트 프로그램은, 퍼스널 컴퓨터(PC)의 BIOS(Basic Input Output System)와 같은 기능을 가지는 비교적 소규모의 프로그램이며, CPU(11)로부터 프로그램 소거를 행하지 못하고, 전용의 기록 장치 또는 기록 프로그램에 의해서만 소거나 기록을 행할 수 있다. 이 모드에 대해서는, 예를 들어 디지털 가전 등에서 펌 웨어의 업데이트를 행하는 경우에, 소거되지 않는 시스템의 근간이 되는 프로그램이 유저 부트 영역에 배치된다고 하는 용도로 사용된다. 이 모드에 있어서는, CPU(11)로부터 유저 영역 측에 놓여진 프로그램의 소거나 기록을 행할 수 있다.
외부 단자에 의해서 싱글 칩 모드가 설정되어 있는 경우, 리셋 해제 후에 싱글 칩 모드로 이행한다. 싱글 칩 모드에 있어서는, 플래시 메모리의 유저 영역으로 불리우는 영역에 놓여져 있는 유저 프로그램만이 실행된다. 도 3에 있어서는, 싱글 칩 모드로 천이하면, 우선 유저 모드로 되어, 유저 영역에 놓여져 있는 유저 프로그램이 실행된다. CPU(11)의 내부 신호인 FLWE에 '1'이 설정되면 유저 프로그램 모드로 천이하고, 플래시 메모리의 유저 영역의 프로그램 소거나 기록이 가능해진다. 이 모드에 있어서는, 유저 부트 영역에 대한 액세스를 금지하고, 안전성을 높이고 있다.
또한, CPU(11)가 분기 명령을 실행하는 것에 의해서, 부트 모드로부터 유저 모드 또는 유저 프로그램 모드로 천이하는 것이 가능하고, 또, 유저 부트 모드로부터 유저 모드 또는 유저 프로그램 모드로 천이하는 것도 가능하다.
도 4는, 본 발명의 제1의 실시의 형태에 있어서의 마이크로컴퓨터(1)의 엔디안 선택을 설명하기 위한 도이다. 도 4(a)는, CPU(11)의 메모리 맵의 일례를 나타내고 있고, 부트 영역, 유저 부트 영역, 유저 영역이 각각 배치되어 있다.
유저 부트 영역이 배치되는 영역의 FF7F_FFF8 번지에는 OFS(옵션 기능 선택) 레지스터가 설치되고 있어 이 OFS내에 유저 부트 모드에 있어서의 엔디안 정보가 저장되어 있다. 이 OFS는 플래시 메모리 중의 영역이기 때문에, 마이크로컴퓨터(1)의 전원이 차단되고, 또는 리셋 되어도 유지된다. CPU(11)가 리셋 해제되어 유저 부트 모드로 천이하기 전에, 데이터 전송 회로(22)에 의해서 OFS내의 엔디안 정보가 판독되어 CPU(11)에 엔디안 정보가 설정된다.
또, 유저 영역이 배치되는 영역의 FFFF_FF90 번지에도 OFS 레지스터가 설치되어 있고, 이 OFS내에 유저 모드에 있어서의 엔디안 정보가 저장되어 있다. CPU(11)가 리셋 해제되어 유저 모드로 천이하기 전에, 데이터 전송 회로(22)에 의해서 OFS내의 엔디안 정보가 판독되고 CPU(11)에 엔디안 정보가 설정된다.
또, 부트 영역이 배치되는 영역의 FF7F_FFF8 번지에도 OFS 레지스터가 설치되어 있고, 이 OFS내에 부트 모드에 있어서의 엔디안 정보가 저장되어 있다. CPU(11)가 리셋 해제되어 부트 모드로 천이하기 전에, 데이터 전송 회로(22)에 의해서 OFS내의 엔디안 정보가 판독되고 CPU(11)에 엔디안 정보가 설정된다.
도 4(b)는, 유저 부트 모드에 있어서의 엔디안 정보의 설정을 설명하기 위한 도이다. 내부 시스템 리셋이 해제되면, 데이터 전송 회로에 의한 OFS 전송이 행해진다. 이때, 데이터 전송 회로(22)는, FF7F_FFF8 번지로부터 OFS내의 엔디안 정보를 판독하여, CPU(11)에 출력한다. 그리고, CPU(11)의 엔디안이 확정된 후에, CPU(11)의 리셋이 해제되어 부트 프로그램이 실행되고 한층 더 유저 부트 프로그램이 실행된다.
도 4(c)는, 싱글 칩 모드에 있어서의 엔디안 정보의 설정을 설명하기 위한 도이다. 내부 시스템 리셋이 해제되면, 데이터 전송 회로에 의한 OFS 전송이 행해진다. 이때, 데이터 전송 회로(22)는, FFFF_FF90 번지로부터 OFS내의 엔디안 정보를 판독하고, CPU(11)에 출력한다. 그리고, CPU(11)의 엔디안이 확정된 후에, CPU(11)의 리셋이 해제되어 유저 프로그램이 실행된다.
도 5는, 데이터 전송 회로(22)의 동작을 설명하기 위한 타이밍 차트 및 데이터 전송 회로(22)의 내부 구성을 나타내는 도이다. 도 5(a)의 T1에 있어서, 시스템 리셋(RES#)이 입력되면, 내부 리셋 및 CPU 리셋이 시작되어 CPU(11) 및 각 블록의 리셋이 개시된다. 이때, 마이크로컴퓨터(1)의 동작 모드도 리셋된다.
T2에 있어서, RES#의 해제에 대응해 내부 리셋이 하이레벨이 되어 리셋이 해제되면, 데이터 전송 회로(22)의 동작이 개시된다. 이때, OFS 레지스터에는 초기치로서 리틀 엔디안이 설정되어 있는 것으로 한다.
T3에 있어서, 데이터 전송 회로(22)가 엔디안 정보(리틀 엔디안)를 CPU(11)에 설정한다. 그리고, T4에 있어서, CPU 리셋이 하이레벨로 되어 리셋이 해제되면, CPU(11)는 설정된 엔디안으로 동작을 개시한다.
도 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 레지스터의 내용을 판독하여, 데이터 FF(32)에 출력한다. 또한 제1의 실시의 형태에 있어서, 영역 변환 신호는 사용되지 않는다.
데이터 FF(32)는, 버스 아비터(13)로부터 받은 OFS안의 엔디안 정보를 유지하여, CPU(11)에 출력한다.
위에서 설명한 바와 같이, 본 실시의 형태에 있어서는, 유저 부트 모드 및 유저 모드의 각각 대응하여, 플래시 메모리(15)의 각각의 어드레스에 엔디안 정보를 설정하고 있지만, 그 이유는 이하와 같다.
유저 부트 모드에 있어서는, 유저 부트 영역에 유저의 프로그램이 놓여져 있다. 그 때문에, 만약 유저 영역에 엔디안 정보가 저장되어 있으면, 잘못해서 유저 영역을 소거해 버리면 유저 부트 프로그램이 올바르게 동작하지 않게 되기 때문에 있다.
또, 싱글 칩 모드에 있어서는, 유저 부트 영역에 엔디안 정보가 저장되고 있어도, 유저 부트를 사용하지 않는 유저에게 있어서는 불편할 것이고, 싱글 칩 모드로 동작 중에 유저 부트 영역에 액세스할 수 없다고 하는 제한이 있기 때문이다.
또한, 유저가 프로그램을 플래시 메모리(15)에 기록하면, 함께 엔디안 정보도 기록하는 것으로 한다. 또, 도 5(b)에 있어서는, 셀렉터(31)가, 유저 부트 영역의 OFS가 저장되는 어드레스와 유저 영역의 OFS가 저장되는 어드레스를 선택적으로 출력한다고 설명했지만, 도 4(a)에 나타낸 바와 같이 부트 영역에도 OFS가 저장되고 있는 경우에는, 셀렉터(31)가, MD단자에 따라 3개의 어드레스 중에서 선택적으로 1개의 어드레스를 출력하도록 해도 된다..
이상 설명한 바와 같이, 본 실시의 형태에 있어서의 마이크로컴퓨터(1)에 의하면, CPU(11)의 리셋이 해제되기 전에, 데이터 전송 회로(22)가 플래시 메모리(15)의 소정 어드레스로부터 엔디안 정보를 판독하여 CPU(11)에 설정하도록 했으므로, 엔디안을 설정하기 위한 외부 단자를 삭감하는 것이 가능해진다. 따라서, 유저가 사용 가능한 외부 단자를 늘리는 것이 가능해진다.
또, 동작 모드에 따라 플래시 메모리의 상이하는 영역에 엔디안 정보를 저장하였으므로, 동작 모드에 의한 액세스 제한 등에 의해서 엔디안 정보를 변경할 수 없거나, 엔디안 정보가 잘못해서 소거되거나 한다고 하는 불편을 방지하는 것이 가능해진다.
(제2의 실시의 형태)
도 6은, 본 발명의 제2의 실시의 형태에 있어서의 마이크로컴퓨터(1)의 구성예를 나타내는 블럭도이다. 도 1에 나타내는 제1의 실시의 형태에 있어서의 마이크로컴퓨터와 비교하면, 데이터 전송 회로(41)의 기능이 다른 점과 플래시 메모리가 부트 영역용 및 유저 부트 영역용의 플래시 메모리(42)와 유저 영역용의 플래시 메모리(43)로 나누어져 있는 점만이 다르다. 따라서, 중복하는 구성 및 기능의 상세한 설명은 반복하지 않는다.
플래시 IF(16)는, 플래시 메모리(부트 영역 또는 유저 부트 영역)(42)로부터 플래시 메모리(유저 영역 )(43)로 액세스가 전환된 경우, 또는 플래시 메모리(43)로부터 플래시 메모리(42)로 액세스가 전환된 경우에, 영역 변환 신호를 데이터 전송 회로(41)에 출력한다. 즉, 플래시 IF(16)는, 기동시, 영역 변환시, 정지 인터럽트 등에 영역 변환 신호를 데이터 전송 회로(41)에 출력한다.
데이터 전송 회로(41)가 도 5에 나타내는 데이터 전송 회로(22)와 다른 점은, 제어 회로(33)가 영역 변환 신호를 받으면, 어느 플래시 메모리에 액세스가 전환되었는지에 따라 셀렉터(31)에 대응하는 어드레스를 출력시켜, 버스 아비터(13)에 플래시 메모리(42 또는 43)의 OFS(엔디안 정보 저장 영역)에 대한 액세스를 행하게 하는 점이다. 데이터 FF(32)가 버스 아비터(13)로부터 받은 엔디안 정보를 CPU(11)에 설정하는 점은 같다.
도 7은, 본 발명의 제2의 실시의 형태에 있어서의 마이크로컴퓨터(1)의 동작의 일례를 설명하기 위한 플로차트(flow chart)이다. 우선, 내부 리셋이 해제되면, 데이터 전송 회로(41)가 부트 모드 또는 유저 부트 모드의 엔디안 정보를 판독하여, CPU(11)에 설정한다(S11).
다음에, CPU(11)의 리셋이 해제되면, CPU(11)는, 부트 영역 또는 유저 부트 영역 내의 프로그램을 설정된 엔디안으로 실행함으로써, 전원, 클락(clock) 등의 시스템의 초기화를 행하는 스타트 업 처리를 실행하고(S12), 유저 프로그램의 실행 지시 대기가 된다(S13).
유저 프로그램의 실행 지시가 있으면, CPU(11)는 유저 영역에 유저 프로그램이 있는지 아닌지를 판정한다(S14). 예를 들어, 유저 영역의 선두 영역에 키워드가 기록되어 있는지 아닌지, 등의 판정 방법에 의해서 유저 영역에 유저 프로그램이 있는지 아닌지 판정된다.
유저 영역에 유저 프로그램이 있는 경우에는(S14, 유), 그대로 스텝 S16으로 처리가 진행된다. 유저 영역에 유저 프로그램이 없는 경우에는(S14, 무), 유저 영역에 유저 프로그램을 기록(S15), 스텝 S16으로 처리가 진행된다.
스텝 S16에 있어서, CPU(11)가, 유저 영역 상의 유저 프로그램에 분기하는 명령을 실행한다. 이때, 데이터 전송 회로(41)는, 부트 영역 또는 유저 부트 영역으로부터 유저 영역에 액세스가 전환된 것을 검지하고, 유저 모드의 엔디안 정보를 판독하여, CPU(11)에 설정한다.
다음에, CPU(11)는, 데이터 전송 회로(41)로부터 출력되는 엔디안 정보에 따라서 엔디안을 전환하여 유저 프로그램을 실행한다(S17). 이때, CPU(11)가 실행하는 명령은, 부트 영역 또는 유저 부트 영역 상의 프로그램으로부터 유저 영역 상의 프로그램으로 분기하는 명령이기 때문에, 파이프라인에 들어가 있는 명령은 모두 클리어 된다. 그 때문에, 이때 CPU(11)의 엔디안을 전환하였다고 해도, 전환된 후의 엔디안에 대응하는 명령이 유저 영역으로부터 새롭게 페치(fetch)되게 되기 때문에, 특별히 동작상 문제는 없다.
CPU(11)가 유저 영역 상의 유저 프로그램을 실행하고 있을 때, 시스템 정지의 인터럽트 등을 받으면, 유저 프로그램의 처리를 종료하고, 메모리 영역의 개방, 스택 영역의 개방 등의 처리를 행하고(S18), 스텝 S19로 처리가 진행된다.
스텝 S19에 있어서, CPU(11)가, 부트 영역 또는 유저 부트 영역상의 유저 프로그램에 분기 하는 명령을 실행한다. 이때, 데이터 전송 회로(41)는, 유저 영역으로부터 부트 영역 또는 유저 부트 영역으로 액세스가 전환된 것을 검지하여, 부트 모드 또는 유저 부트 모드의 엔디안 정보를 판독하여, CPU(11)에 설정한다.
그리고, CPU(11)는, 부트 영역 또는 유저 부트 영역상의 프로그램을 설정된 엔디안으로 실행하고, 유저 프로그램을 한층 더 실행하는 경우에는 스텝 S13으로 되돌아와 유저 프로그램의 실행 지시 대기를 행한다. 또, 유저 프로그램을 실행하지 않으면, 마이크로컴퓨터(1)의 종료 처리를 행하여(S20), 처리를 종료한다.
이상의 설명은, 유저 영역 (플래시 메모리(43))에 1개의 엔디안 정보가 저장되는 경우에 관한 것이었지만, 유저 영역을 복수의 영역으로 분할하여, 영역마다 엔디안 정보를 저장하도록 하고, 액세스하는 영역이 전환될 때마다 CPU(11)에 엔디안 정보를 재설정하도록 해도 된다.
이상 설명한 바와 같이, 본 실시의 형태에 있어서의 마이크로컴퓨터(1)에 의하면, 데이터 전송 회로(41)가, 부트 영역 또는 유저 부트 영역으로부터 유저 영역으로 액세스가 전환되는지, 또는 유저 영역으로부터 부트 영역 또는 유저 부트 영역으로 액세스가 전환되는 것을 검지하고, CPU(11)에 엔디안 정보를 설정하도록 했다. 이것에 의해서, CPU(11)의 리셋 해제 직후 뿐만이 아니라, CPU(11)의 동작 중이어도 동작 모드나 액세스 영역에 의해서 엔디안을 전환하는 것이 가능해진다.
이번 개시된 실시의 형태는, 모든 점에서 예시이며 제한적인 것은 아니라고 생각하여야 할 것이다. 본 발명의 범위는 상기한 설명이 아니라 특허 청구의 범위에 의해서 표시되고, 특허 청구의 범위와 균등 범위내에서의 모든 변경이 본 발명의 범위에 포함되는 것으로 보아야 한다.
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(flip-flop)
33 : 제어 회로

Claims (5)

  1. 엔디안의 전환이 가능한 프로세서를 포함한 마이크로 컴퓨터로서,
    엔디안 정보가 저장되는 비휘발성 메모리와,
    상기 비휘발성 메모리에 저장된 엔디안 정보를 판독하여, 상기 프로세서에 엔디안 정보를 설정하는 데이터 전송 회로;
    를 포함하는 마이크로 컴퓨터.
  2. 제 1 항에 있어서,
    상기 비휘발성 메모리는,
    제1의 동작 모드로 실행되는 프로그램 및 제1의 엔디안 정보가 저장되는 제1의 매트와,
    제2의 동작 모드로 실행되는 프로그램 및 제2의 엔디안 정보가 저장되는 제2의 매트를 포함하고,
    상기 데이터 전송 회로는,
    상기 프로세서의 리셋 해제 전에, 동작 모드에 따라 상기 제1의 매트 또는 상기 제2의 매트에 저장되는 엔디안 정보를 판독하여 상기 프로세서에 설정하는 것을 특징으로 하는 마이크로 컴퓨터.
  3. 제 2 항에 있어서,
    상기 데이터 전송 회로는,
    상기 동작 모드에 따라, 상기 제1의 엔디안 정보가 저장되는 어드레스와 상기 제2의 엔디안 정보가 저장되는 어드레스와의 어느쪽인가를 선택적으로 출력하는 선택 수단과,
    상기 선택 수단에 의해서 선택된 어드레스로부터 판독된 엔디안 정보를 유지하고, 상기 프로세서에 출력하는 유지 수단을 포함하는 것을 특징으로 하는 마이크로 컴퓨터.
  4. 제 1 항에 있어서,
    상기 비휘발성 메모리는,
    제1의 동작 모드로 실행되는 프로그램 및 제1의 엔디안 정보가 저장되는 제1의 매트와,
    제2의 동작 모드로 실행되는 프로그램 및 제2의 엔디안 정보가 저장되는 제2의 매트를 포함하고,
    상기 데이터 전송 회로는,
    상기 프로세서에 의한 액세스가, 상기 제1의 매트로부터 상기 제2의 매트로 전환되거나, 상기 제2의 매트로부터 상기 제1의 매트로 전환되는 것을 검출하여, 상기 제1의 매트 또는 상기 제2의 매트에 저장되는 엔디안 정보를 판독하여 상기 프로세서에 설정하는 것을 특징으로 하는 마이크로 컴퓨터.
  5. 제 4 항에 있어서,
    상기 데이터 전송 회로는,
    상기 프로세서에 의한 액세스가, 상기 제1의 매트로부터 상기 제2의 매트로 전환되었을 때, 또는 상기 제2의 매트로부터 상기 제1의 매트로 전환되었을 때에, 상기 제1의 엔디안 정보가 저장되는 어드레스와 상기 제2의 엔디안 정보가 저장되는 어드레스와의 어느쪽인가를 선택적으로 출력하는 선택 수단과,
    상기 선택 수단에 의해서 선택된 어드레스로부터 판독된 엔디안 정보를 유지하고, 상기 프로세서에 출력하는 유지 수단을 포함하는 것을 특징으로 하는 마이크로 컴퓨터.
KR1020110035359A 2010-04-20 2011-04-15 마이크로 컴퓨터 KR101793282B1 (ko)

Applications Claiming Priority (2)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020170140392A Division KR101913968B1 (ko) 2010-04-20 2017-10-26 마이크로 컴퓨터

Publications (2)

Publication Number Publication Date
KR20110116990A true KR20110116990A (ko) 2011-10-26
KR101793282B1 KR101793282B1 (ko) 2017-11-02

Family

ID=44789094

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020110035359A KR101793282B1 (ko) 2010-04-20 2011-04-15 마이크로 컴퓨터
KR1020170140392A KR101913968B1 (ko) 2010-04-20 2017-10-26 마이크로 컴퓨터

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020170140392A KR101913968B1 (ko) 2010-04-20 2017-10-26 마이크로 컴퓨터

Country Status (3)

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

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
US5687337A (en) 1995-02-24 1997-11-11 International Business Machines Corporation Mixed-endian computer system
US5928349A (en) 1995-02-24 1999-07-27 International Business Machines Corporation Mixed-endian computing environment for a conventional bi-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
US20110258422A1 (en) 2011-10-20
US10140207B2 (en) 2018-11-27
KR20170123301A (ko) 2017-11-07
US20180143900A1 (en) 2018-05-24
KR101913968B1 (ko) 2018-10-31
KR101793282B1 (ko) 2017-11-02
US9910770B2 (en) 2018-03-06
JP2011227730A (ja) 2011-11-10
US20160314068A1 (en) 2016-10-27
US9395999B2 (en) 2016-07-19
JP5622429B2 (ja) 2014-11-12

Similar Documents

Publication Publication Date Title
KR101913968B1 (ko) 마이크로 컴퓨터
TWI493350B (zh) 用於周邊組件之高優先權命令佇列
US7296143B2 (en) Method and system for loading processor boot code from serial flash memory
EP1256055B1 (en) Computer system including a memory access controller for using non-system memory storage resources during system boot time
US20070180223A1 (en) Computer system and method of booting the system
EP1979809A2 (en) A method for booting a host device from an mmc/sd device, a host device bootable from an mmc/sd device and an mmc/sd device method a host device may be booted from
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
KR20140083530A (ko) 하드웨어를 디버깅하는 부트 쉘을 포함하는 시스템온칩 및 이의 구동 방법
GB2412767A (en) Processor with at least two buses between a read/write port and an associated memory with at least two portions
US8117427B2 (en) Motherboard, storage device and controller thereof, and booting method
KR100534613B1 (ko) 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법
JP5823000B2 (ja) マイクロコンピュータ
WO2016036281A1 (ru) Устройство прямого отображения адресов данных
JP2004192051A (ja) 共用端子制御装置
JP2006127407A (ja) 半導体集積回路
US20080222385A1 (en) Parameter setting method and apparatus for network controller
JP3077807B2 (ja) マイクロコンピュータシステム
EP4109184A1 (en) Control device
JP2005010966A (ja) Lsi装置
WO2016053146A1 (ru) Компьютерная система
JPH0442329A (ja) データ処理装置
KR100632902B1 (ko) 이동통신 단말기의 다중 마이크로프로세서 시스템에서펌웨어의 다운로드 속도를 향상하는 방법
JP4641391B2 (ja) ダイレクトメモリアクセス装置及びその制御方法、データ処理装置
JP4343244B2 (ja) マイクロコンピュータ
JP2001043333A (ja) Pcカード及びpcカードのcis格納方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
GRNT Written decision to grant