KR100391080B1 - 1칩 마이크로컴퓨터 및 그것을 이용하는 ic 카드 - Google Patents

1칩 마이크로컴퓨터 및 그것을 이용하는 ic 카드 Download PDF

Info

Publication number
KR100391080B1
KR100391080B1 KR10-2001-0013174A KR20010013174A KR100391080B1 KR 100391080 B1 KR100391080 B1 KR 100391080B1 KR 20010013174 A KR20010013174 A KR 20010013174A KR 100391080 B1 KR100391080 B1 KR 100391080B1
Authority
KR
South Korea
Prior art keywords
access
address
address range
memory
access permission
Prior art date
Application number
KR10-2001-0013174A
Other languages
English (en)
Other versions
KR20010092333A (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 KR20010092333A publication Critical patent/KR20010092333A/ko
Application granted granted Critical
Publication of KR100391080B1 publication Critical patent/KR100391080B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/64Distributing or queueing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0435Details
    • H04Q11/0471Terminal access circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/06Integrated circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/34Microprocessors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/36Memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/38Displays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13003Constructional details of switching devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1305Software aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1307Call setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13072Sequence circuits for call signaling, ACD systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13095PIN / Access code, authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13103Memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13106Microprocessor, CPU
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13209ISDN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13305Transistors, semiconductors in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1332Logic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13322Integrated circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Microcomputers (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명의 1칩 마이크로컴퓨터는, (a) 특정 어드레스공간을 액세스하고 있음을 나타내는 플래그를 설정하는 모니터플래그, (b) 상기 플래그가 설정되어 있을 때에 액세스를 허가하는 어드레스범위를 설정하는 액세스 허가 어드레스범위 설정레지스터, (c) 상기와 같이 설정된 상기 어드레스범위 내에서 액세스되어 있는 지 아닌 지를 판단하는 액세스 허가영역 검출회로, 및 (d) 상기 어드레스범위 이외의 어드레스에 대한 액세스가 허가되는 지 아닌 지를 설정하는 액세스 허가 설정레지스터, 및 (e) 상기 판단결과와 상기 액세스 허가설정 레지스터의 설정내용에 따라 비휘발성메모리에 대한 액세스를 제어하는 메모리 독출 제어회로 및 메모리 기입 제어회로를 포함한다. 이 구성에 의해, 응용 프로그램들 사이의 보안성을 확보한 1칩 마이크로컴퓨터를 제공할 수 있다.

Description

1칩 마이크로컴퓨터 및 그것을 이용하는 IC 카드{1-CHIP MICROCOMPUTER AND IC CARD USING SAME}
본 발명은 프로그램메모리에 복수의 응용 프로그램을 탑재(저장)한 1칩 마이크로컴퓨터 및 그것을 이용하는 IC 카드에 관한 것으로, 특히 메모리에 대한 액세스를 제한하여 응용 프로그램들 사이의 데이터의 보안성을 향상시킨 1칩 마이크로컴퓨터 및 그것을 이용하는 IC 카드에 관한 것이다.
대용량 비휘발성메모리를 프로그램메모리로서 탑재한 1칩 마이크로컴퓨터에서, 각종 용도에 알맞은 복수의 응용 프로그램을 미리 프로그램메모리에 저장하고, 각각의 응용 프로그램을 선택하여 실행한다. 1칩 마이크로컴퓨터에 탑재되어 있는 내장메모리는 CPU에 의해 액세스된다. 따라서, 동일 CPU에서 동작하는 프로그램은, 어떤 프로그램이라도 CPU의 액세스가능한 범위내의 데이터에 대하여 액세스할 수 있다. 이 경우, 복수의 응용 프로그램을 탑재하고 있으면, 하나의 응용 프로그램이 다른 응용 프로그램의 명령코드 및 데이터에 액세스할 수 있다. 그 결과, 다른 응용 프로그램 또는 데이터를 변경 및/또는 독출할 수 있게 됨으로써, 보안성을 손상 받는 문제를 초래한다.
상기 문제의 해결수단으로서, 일본국 공개 특허 공보 제 96-55204호(공개일: 1996년 2월 27일)에서는, CPU에 프로그램 세그먼트 레지스터, 프로그램 카운터, 및 메모리상의 데이터를 액세스하기 위한 레지스터가 제공되어, 이들의 연산에 따라 실행 및 독출/기입될 어드레스를 구하여 메모리 액세스를 제한하는 방법이 개시되어 있다.
이 메모리 액세스 제한 방법을 적용한 IC 카드는, 도 8에 나타낸 바와 같이, CPU(101), ROM(l02), RAM(l03), 및 EEPROM(l04)로 구성되어 있고, CPU(l01)의 내부구성과 기능에 의해 상기 문제를 해결하고 있다.
도 9에 도시된 바와 같이, 이 CPU(101)에는, (a) CPU(101)를 리세트한 후, 레지스터 값을 한번만 리세트할 수 있는 프로그램 세그먼트 레지스터(PSR)(201), (b)메모리상의 데이터를 액세스하기 위한 데이터 액세스용 옵셋 레지스터(DR)(202), (c) 프로그램 카운터(PC)(203)와 프로그램 세그먼트 레지스터(201)에 응답하여 실행 어드레스를 생성하는 어드레스 가산수단(205), (d) 데이터 액세스용 옵셋 레지스터(202) 및 프로그램 세그먼트 레지스터(201)에서 독출된 데이터에 응답하여 기입어드레스를 생성하는 어드레스 가산수단(204), 및 (e) 실행어드레스의 생성과 데이터 독출 어드레스및 데이터 기입 어드레스의 생성에 공통으로 사용되는 옵셋 어드레스를 생성하는 어드레스 승산수단(206)이 제공된다.
상기 프로그램 세그먼트 레지스터(201)는 외부에서 받아들여진 타겟 응용 프로그램의 ID(식별) 번호를 저장하도록 사용된다. 상기 데이터 액세스용 옵셋 레지스터(202)는 독출 및 기입 어드레스에 옵셋을 갖게 하기 위한 옵셋치를 저장하도록 사용된다.
프로그램 카운터(203)는 프로그램의 실행명령의 어드레스를 지시한다. 예컨대, 외부에서 받아들인 타겟 응용 프로그램의 ID 번호가 "2"인 경우에는, 그 수치 "2"가 프로그램 세그먼트 레지스터(201)에 보존되어, 절대 옵셋치로서 실행될 어드레스가 프로그램 세그먼트 레지스터(201)의 1000배로 설정되어 있는 경우에는, 프로그램 실행 어드레스를 (2×1000)의 어드레스로 이행한다. 그후, 실행어드레스가 (2×1000+프로그램 카운터(203)의 지시값)의 어드레스와 같게 되도록, 프로그램 세그먼트 레지스터(201)의 값과 프로그램 카운터(203)의 지시에 따라 실행될 어드레스를 지정한다.
데이터의 독출 및 기입 어드레스는, (2×1000+데이터 액세스용 옵셋 레지스터(202)의 레지스터값)의 어드레스가 특정되어 실행되도록 프로그램 세그먼트 레지스터(201)의 레지스터 값과 데이터 액세스용 옵셋 레지스터(202)의 값에 따라 각각 구해진다.
따라서, 프로그램 세그먼트 레지스터(201)에 저장된 타겟 응용 프로그램의 ID 번호에 의해 지정된 응용 프로그램을 실행하고 있는 동안에는, (a) 그 응용 프로그램이 저장된 어드레스 범위와 (b) RAM 으로만 액세스할 수 있다.
따라서, 프로그램메모리에 복수의 응용 프로그램을 탑재하는 경우에, 하나의 응용 프로그램이 다른 응용 프로그램의 명령코드 및 데이터에 액세스할 수 없게 하여, 보안성을 확보하고 있다.
그러나, 상기 종래의 어드레스 제한 방법에 따르면, 프로그램 세그먼트 레지스터의 설정은 한번으로 제한되므로, CPU의 리세트후 응용 프로그램중 하나만이 실행가능하다. 따라서, 계속해서 다른 응용 프로그램을 실행하기 위해서는 CPU를 다시 리세트할 필요가 있다. 또한, 응용 프로그램들 사이에서 통신이 불가능한 문제도 있다. 따라서, 상기 종래의 방법은 편의성에 관한 상기한 문제들을 가진다.
예컨대, 복수의 응용 프로그램을 탑재한 IC 카드에 상기 종래의 방법을 적용한 경우, IC 카드를 IC 카드 시스템내의 리더(reader) 및 라이터(writer)에서 분리된 상태, 즉 전원을 차단할 때까지 다른 응용 프로그램을 실행할 수 없는 상태로된다.
따라서, 일련의 복수의 응용 프로그램을 실행시키려고 하는 경우, 하나의 응용 프로그램의 실행이 종료할 때마다, IC 카드를 리더 및 라이터로부터 분리한 후 IC 카드를 다시 삽입할 필요가 있다. 따라서, IC 카드의 초기화 처리를 그 IC 카드의 삽입시 마다 되풀이할 필요가 있다. 이로써 일련의 처리시간이 장기화하는 문제와 IC 카드를 종종 삽입 및 분리할 필요가 생기는 문제가 있다.
현재 실행중의 응용 프로그램 내에서 서브루틴 콜을 실행한 후 원래의 어드레스(리턴 어드레스)로 되돌리고 싶은 경우는, 일반적으로 리턴 어드레스가 일시적으로 RAM에 저장된다. 이 경우, 리턴 어드레스가 불량으로 또는 고의로 다른 어드레스로 재기입되면, 응용 프로그램이 폭주하거나 또는 다른 응용 프로그램에 대해 잘못된 액세스를 야기하게 된다. 그 결과로서, CPU는 폭주하게 된다. 그러나, 상기한 종래의 액세스 제한방법에서는, 이러한 경우에 대한 적절한 대책이 없다.
본 발명은 상기 문제점을 감안하여 이루어진 것으로서, 그 목적은 복수의 응용 프로그램이 저장된 1칩 마이크로컴퓨터에 있어서, 하나의 응용 프로그램이 다른 응용 프로그램의 명령코드 및 데이터에 액세스할 수 없도록 하여 보안성을 확보하는 1칩 마이크로컴퓨터를 제공하는 것이다.
본 발명의 다른 목적은 복수의 응용 프로그램을 리세트 동작 등을 필요로 하지 않고 연속적으로 실행할 수 있도록 하여 편리성을 향상시킨 1칩 마이크로컴퓨터를 제공하는 것이다.
본 발명의 또 다른 목적은 응용 프로그램이 프로그램의 불량 또는 고의에 다른 응용 프로그램에 대해 액세스하더라도, CPU가 폭주하지 않고 액세스 제한 기능을 효과적으로 하는 상태로 처리를 계속할 수 있는 1칩 마이크로컴퓨터를 제공하는 것이다.
상기 목적을 달성하기 위해서, 본 발명에 따른 1칩 마이크로컴퓨터는, (1) 특정 어드레스공간이 실행되고 있을 때에 설정가능하고, 액세스를 허가하는 어드레스범위를 설정하는 액세스 허가 어드레스범위 설정수단, (2) 소프트웨어의 실행중에, 상기와 같이 설정된 상기 어드레스범위 내에서 액세스되어 있는 지 아닌 지를 판단하는 판단수단, (3) 상기 특정 어드레스공간을 실행하고 있을 때에 설정가능하고, 상기 어드레스범위 이외의 어드레스의 액세스가 허가되는 지 아닌 지를 설정하는 액세스 허가 설정수단, 및 (4) 상기 판단수단의 결과와 상기 액세스 허가 설정수단의 설정내용에 따라 메모리에 대한 액세스를 제어하는 제어수단이 제공되어 있다.
상기 1칩 마이크로컴퓨터에 의하면, 특정한 어드레스공간에 저장된 소프트웨어가 실행될 때에, 액세스 허가 어드레스범위 설정수단 및 액세스 허가 설정수단의 각 설정수단에 대하여 설정 가능해진다.
상기 특정한 어드레스공간에 저장된 소프트웨어가 실행되지 않을 때에는, 상기 특정한 어드레스공간에서 설정하더라도, 액세스 허가 어드레스 범위 설정수단 및 액세스 허가 설정수단의 각 설정수단에 대하여 설정할 수 없게 된다.
상기 특정한 어드레스공간에 저장된 소프트웨어가 실행될 때에, 상기특정한어드레스공간에서 액세스 허가 어드레스범위 설정수단을 통해 어드레스범위가 설정될 수 있다. 이 경우, 소프트웨어의 실행중에 상기 설정된 어드레스범위내의 어드레스에 대하여 액세스되어 있는 지 아닌 지를 판단수단에 의해 판단한다. 한편, 상기 특정한 어드레스공간에 저장된 소프트웨어가 실행되지 않을 때에는, 데이터가 상기 특정한 어드레스공간에서 액세스 허가 어드레스범위 설정수단에 입력되더라도, 상기 데이터는 상기 액세스 허가 어드레스범위 설정수단에 기입될 수 없다.
한편, 상기 특정한 어드레스공간에 저장된 소프트웨어가 실행될 때, 상기 특정한 어드레스공간에서 액세스 허가 설정수단을 통해 상기 어드레스범위 이외의 어드레스에 대한 액세스가 허가되는 지 아닌 지를 설정할 수 있다. 한편, 상기 특정한 어드레스공간에 저장된 소프트웨어가 실행되지 않을 때에는, 데이터가 상기 특정한 어드레스공간에서 액세스 허가 설정수단에 입력되더라도, 상기 데이터는 상기 액세스 허가 설정수단에 기입될 수 없다.
상기 판단수단의 판단결과와 상기 액세스 허가 설정수단의 설정내용에 따라 메모리에 대한 액세스가 제어수단에 의해 제어된다. 더 구체적으로, 어드레스범위가 설정되어 있지만, 어드레스범위 이외의 어드레스에 대한 액세스가 허가되지 않을 때에는, 상기 어드레스범위내의 어드레스에 대해서만 액세스가 가능해지며, 상기 어드레스범위 이외의 어드레스에 대해서는 액세스할 수 없다.
이와 같이 메모리에 대한 액세스를 제어함으로써, 실행중의 프로그램에 의해 다른 프로그램이 저장되어 있는 어드레스공간이 악영향을 받게 됨을 방지할 수 있다. 또한, 특정한 어드레스공간에서만 액세스 허가 설정수단과 어드레스범위 설정수단을 설정을 할 수 있기 때문에, 이들 설정수단도 응용 프로그램으로부터 영향을 받지 않는다. 즉, 특정 어드레스공간에서만 액세스 가능한 액세스 허가 수단 및 액세스범위 설정수단도 영향을 받지 않게 된다.
어드레스 범위가 설정되어 있고 어드레스범위 이외의 어드레스에 대한 액세스가 허가될 때에는, 상기 어드레스범위 이외의 어드레스에 대해서도 액세스가 가능해진다.
본 발명의 다른 적용 범위는 이하의 상세한 설명으로부터 명백해질 것이다. 그러나, 본 발명의 바람직한 실시예들을 나타내는 상세한 설명 및 특정 예들은, 하기의 상세한 설명으로부터 본 발명의 정신과 범위 내에서 당업자들에 의해 변경될 수 있는 것이기 때문에, 단지 예시적으로 주어지는 것이다. 본 발명은 예시적으로 주어진 것으로서, 본 발명을 제한하려는 것이 아닌 첨부 도면들 및 이하의 상세한 설명으로부터 더욱 완전하게 이해될 수 있을 것이다.
도 1은 본 발명의 1칩 마이크로컴퓨터의 구성예를 나타낸 블록도,
도 2는 상기 1칩 마이크로컴퓨터의 구체예를 나타낸 블록도,
도 3은 액세스 허가 영역 검출회로와 액세스 제어회로 주변의 구성예를 나타낸 블록도,
도 4는 본 발명에 따른 1칩 마이크로컴퓨터의 응용 프로그램용 메모리의 메모리 맵을 나타낸 도면,
도 5는 상기의 응용 프로그램의 분기중의 동작을 나타낸 플로우 챠트,
도 6은 본 발명의 1칩 마이크로컴퓨터의 구성예를 나타낸 다른 블록도,
도 7은 메모리의 부정(바람직하지 않은) 액세스시의 인터럽트 처리 동작을 나타낸 플로우 챠트,
도 8은 종래의 1칩 마이크로컴퓨터의 구성예를 나타낸 블록도, 및
도 9는 종래의 CPU의 구성 기능들을 나타낸 예시적인 도면이다.
본 발명의 일 실시예에 대해서 도 1 내지 도 7을 참조하여 설명하면 다음과 같다.
본 실시예에서는, 비휘발성메모리를 탑재한 IC 카드용 1칩 마이크로컴퓨터에 본 발명을 적용한 경우에 대해서 설명한다.
도 2는 IC 카드용 1칩 마이크로컴퓨터의 블록도를 나타내고 있다. 상기 1칩 마이크로컴퓨터에는, 시스템 프로그램 및 응용 프로그램을 실행하기 위한 CPU(301), 시스템 프로그램 및 응용 프로그램을 저장하기 위한비휘발성메모리(303)(예컨대, 플래시메모리 또는 EEPROM 등의 개서 가능한 메모리), CPU(301)의 작업용의 RAM(6), 메모리보호회로(5), 외부기기와 통신을 하기 위한 UART(2), 및 타이머등 주변회로(4)가 제공되어 있다. 이들 블록(회로)은 (a) CPU에서 입출력되는 어드레스선 및 데이터선, (b) 데이터의 독출 또는 기입 및 블록 활성화를 위한 제어선 등에 의해 적절하게 접속되어 있다.
도 1은 도 2의 블록도에 도시된 CPU(301), 메모리보호회로(5), 및 비휘발성메모리(303)에 대해 상세하게 나타낸 블록도이다.
상기 1칩 마이크로컴퓨터에는, CPU(301), 이 CPU(301)에 포함되는 프로그램 카운터(PC)(302), 비휘발성메모리(303), 모니터플래그(304), 후술하는 액세스 허가 어드레스 범위 설정레지스터를 포함하는 액세스 허가 영역 검출회로(306), 액세스 허가 설정레지스터(307), 액세스 허가 어드레스 범위 설정 레지스터 및 액세스 허가 설정레지스터(307)에 대한 기입 신호의 발생을 제한하는 레지스터 기입 제어회로(305), 비휘발성메모리(303)에 대하여 독출 신호의 발생을 제한하는 메모리 독출 제어회로(309), 및 비휘발성메모리(303)에 대한 기입 신호의 발생을 제한하는 메모리 기입 제어회로(310)가 제공된다.
모니터플래그(304)에는, CPU(301)로부터 출력되는 어드레스 버스 신호(311)와 명령의 제 1 사이클을 나타내는 명령 취출 신호(308)(FETCH)가 입력된다. 여기서는, CPU(301)가 비휘발성메모리(303)의 특정 어드레스 공간에 저장된 동작 시스템등의 시스템 소프트웨어를 실행하고 있는 지 아닌 지의 판별이 행하여진다. 특정 어드레스공간을 실행하고 있을 때, 모니터플래그(304)로부터는 2치 논리의 하이 레벨(이하, "1"이라 함)이 출력된다. 한편, 특정 어드레스공간 이외의 어드레스 공간을 실행하고 있을 때, 모니터플래그(304)로부터는 2치 논리의 로우레벨(이하, "0"이라 함)이 출력된다.
레지스터 기입 제어회로(305)에는, CPU(301)로부터 출력되는 기입 기준신호(312)(WRITE)와, 모니터플래그(304)의 출력인 모니터플래그 출력신호(314)가 입력된다. 기입 기준신호(312)는, CPU(301)가 내장 레지스터 또는 내장 메모리에 액세스하였을 때에 출력되는 신호이다.
레지스터기입 제어회로(305)는 기입 기준신호(312)가 액세스 허가 영역 검출회로(306)내의 액세스 허가 어드레스 범위 설정레지스터와 액세스 허가 설정레지스터(307)에 전달되는 지 아닌 지의 제어를 한다.
모니터플래그(304)의 출력이 "1"일때, 즉 상기 특정 어드레스공간에서 기입 동작이 발생하였을 때, 기입 기준신호(312)는 액세스 허가 영역 검출회로(306)내의 액세스 허가 어드레스 범위 설정레지스터(도시 안됨)와 액세스 허가 설정레지스터(307)에 각각 전달된다. 이로써 액세스 허가 영역 검출회로(306)내의 액세스 허가 어드레스 범위 설정레지스터(도시 안됨)와 액세스 허가 설정레지스터(307)로의 기입이 가능하게 된다.
이에 대하여, 모니터플래그(304)의 출력이 "0"일때, 즉 특정 어드레스공간 이외에서 기입 동작이 발생하였을 때, 기입 기준신호(312)는 액세스 허가 영역 검출회로(306)내의 액세스 허가 어드레스 범위 설정레지스터와 액세스 허가 설정레지스터(307)중 어느 것에도 전달되지 않는다. 이로써 액세스 허가 영역검출회로(306)내의 액세스 허가 어드레스 범위 설정레지스터와 액세스 허가 설정레지스터(307)로의 기입이 금지된다.
도 3은 액세스 허가 영역 검출회로(306), 액세스 허가 설정레지스터(307), 메모리 독출 제어회로(309), 및 메모리 기입 제어회로(310)의 동작에 대해 더욱 상세하게 나타낸 블록도이다.
액세스 허가 영역 검출회로(306)에는, CPU(301)로부터 출력되는 어드레스 버스 신호(311), 데이터 버스 신호(320), CPU(301)로부터 출력되는 독출 기준신호(313)(READ), 및 레지스터기입 제어회로(305)의 출력인 레지스터 기입 신호(319)가 입력된다.
액세스 허가 영역 검출회로(306)는 메모리에 대하여 독출 및 기입의 제약을 해제하는 액세스 허가 어드레스 범위 설정레지스터(401), 및 어드레스 비교회로(402)로 구성된다. 어드레스 영역(액세스 허가 어드레스 범위)은, 예컨대 어드레스 영역의 스타트 어드레스와 엔드 어드레스를 저장하도록 제공된 레지스터에 의해 설정된다. 이 레지스터는 레지스터 기입 신호(319)에 의해 기입이 행하여진다. 단지, 모니터플래그(304)에 의해 상기 특정 어드레스공간에서만 기입이 가능하다.
상기 액세스 허가 영역 검출회로(306)에서는, IC 카드의 응용 프로그램을 실행하기 전에, 동작 시스템은 상기 액세스 허가 어드레스범위 설정레지스터가 응용 프로그램이 저장되어 있는 어드레스영역의 스타트 어드레스와 엔드 어드레스를 갖도록 설정한다. 응용 프로그램의 실행 중에, CPU(301)로부터 출력되는 어드레스버스 신호(311)와 액세스 허가 어드레스범위 설정레지스터(401)의 값을 어드레스 비교회로(402)에 의해 비교한다. 이와 같이, 설정된 어드레스범위로 CPU(301)가 액세스하고 있는 동안에, 어드레스 비교회로(402)는 액세스 허가 어드레스영역 출력신호(316)로서 "1"을 출력한다. 유사하게, CPU(301)가 현재 실행중인 응용 프로그램 이외의 응용 프로그램이 저장되어 있는 영역으로 액세스한 경우, 액세스 허가 어드레스영역 출력신호(316)로서 "0"을 출력한다.
액세스 허가 설정레지스터(307)에는, CPU(301)로부터 출력되는 어드레스 버스 신호(311), 데이터 버스 신호(320), CPU(301)로부터 출력되는 독출 기준신호(313), 및 레지스터기입 제어회로(305)의 출력인 레지스터 기입 신호(319)가 입력된다.
상기 액세스 허가 설정레지스터(307)는 액세스 허가 영역 검출회로(306)내의 액세스 허가 어드레스 범위 설정레지스터(401)에 의해 설정된 어드레스범위 이외의 응용 프로그램 영역에 대하여 독출 또는 기입의 액세스가 허가되는 지 아닌 지를 설정하도록 제공된다. 이 액세스 허가 설정 레지스터(307)는 레지스터 기입 신호(319)에 의해 기입이 행하여진다. 단, 모니터플래그(304)에 의해 특정 어드레스공간에서만 기입이 가능하다.
IC 카드의 응용 프로그램을 실행하기 전에, 동작 시스템이 액세스 허가 설정레지스터(307)를 "0"으로 설정하였을 때, 액세스 허가 신호(317)로서 "0"이 출력된다. 또한, 동작 시스템이 액세스 허가 설정레지스터(317)를 "1"로 설정하였을 때, 액세스 허가 신호(317)로서 "1"이 출력된다.
액세스 허가 설정레지스터(307)는 액세스 허가 영역 검출회로(306)내의 액세스 허가 어드레스범위 설정레지스터(401)에 의해 설정된 어드레스범위 이외의 응용 프로그램 영역에 대하여 독출 또는 기입의 액세스가 허용되는 지 아닌 지를 설정하도록 제공된다.
동작 시스템이 상기 액세스 허가 설정레지스터(307)를 "0"으로 설정하였을 때, 액세스 허가 영역 검출회로(306)내의 액세스 허가 어드레스범위 설정레지스터(401)에 의해 설정된 응용 프로그램 어드레스범위 내에서만 독출 및 기입이 가능하게 된다. 동작 시스템이 상기 액세스 허가 설정레지스터(307)를 "1"로 설정하였을 때, 모든 응용 프로그램 메모리영역에 대한 독출 또는 기입이 가능해진다.
메모리 독출 제어회로(309)에는, CPU(301)로부터 출력되는 독출 기준신호(313), 어드레스 비교회로(402)로부터 출력되는 액세스 허가 어드레스영역 출력신호(316), 및 액세스 허가신호(317)가 입력된다. 이 메모리 독출 제어회로(309)는 AND 회로(403)와 셀렉터 회로(405)에 의해 구성된다. 상기 메모리 독출 제어회로(309)는 독출 기준신호(313)를 비휘발성메모리(303)에 전달할 것인 지 아닌 지를 제어한다.
액세스 허가신호(317)가 "0"일때, 셀렉터 회로(405)는 독출 기준신호(313)와 액세스 허가 어드레스영역 출력신호(316)를 AND 회로(403)에 입력하여 AND 동작에 의해 얻어지는 신호를 선택하여, 비휘발성메모리(303)에 독출 신호(318)로서 제공한다. 즉, 액세스 허가 영역 검출회로(306)에 의해 설정된 메모리영역 외로 상기영역이 설정된 때 독출 신호(318)는 출력되지 않는다. 액세스 허가신호(317)가 "1"일때, 셀렉터 회로(405)는 독출 기준신호(313)를 선택하여 비휘발성메모리(303)로 독출 신호(318)를 공급한다. 즉, 응용 프로그램 메모리영역 내에서는 독출 동작의 제한이 없게 된다.
메모리 기입 제어회로(310)에는, CPU(301)로부터 출력되는 기입 기준신호(312), 액세스 허가 어드레스영역 출력신호(316), 및 액세스 허가신호(317)가 입력된다. 이 메모리 기입 제어회로(310)는 AND 회로(404)와 셀렉터 회로(406)에 의해 구성된다. 상기 메모리 기입 제어회로(310)는 기입 기준신호(312)를 비휘발성메모리(303)에 전달할 것인 지 아닌 지를 제어한다.
액세스 허가 신호(317)가 "0"일때, 셀렉터 회로(406)는 기입 기준신호(312)와 액세스 허가 어드레스영역 출력신호(316)를 AND 회로(404)에 입력하여 AND 동작에 의해 얻어지는 신호를 선택하여, 비휘발성메모리(303)로 기입 신호(315)로서 출력한다. 즉, 액세스 허가 영역 검출회로(306)에 의해 설정된 메모리영역 이외(어드레스범위 이외)에는 기입 신호(315)를 출력하지 않는다. 액세스 허가신호(317)가 "1"일때, 셀렉터 회로(406)는 기입 기준신호(3l2)를 선택하여 비휘발성메모리(303)로 독출 신호(318)로서 출력한다. 즉, 응용 프로그램 메모리영역 내에서는 기입 동작의 제한이 없게 된다.
도 4는 본 실시예에 따른 응용 프로그램 저장용의 비휘발성메모리(303)의 메모리 맵을 나타낸 도면이다. 이 비휘발성메모리(303)에는 n개의 응용 프로그램(AP1∼APn)(이하, AP1∼APn이라 약칭함)이 저장되어 있다. 예컨대, CPU(301)가 동작 시스템에서 (a) AP1의 스타트 어드레스와 엔드 어드레스를 액세스 허가 영역 검출회로(306)의 액세스 허가 어드레스범위 설정레지스터(401)에 대해 설정하고 (b) 액세스 허가 설정레지스터(307)를 "0"으로 설정한 후에 AP1을 실행하면, AP1 이외의 응용 프로그램 메모리영역은 액세스가 불가능하게 된다.
도 5는 CPU(301)가 AP1을 실행하기 전에 동작 시스템에 의해 실행되는 처리의 플로우 챠트를 나타낸다. 먼저, 공정 S1 및 S2에서, AP1의 스타트 어드레스와 엔드 어드레스를 액세스 허가 영역 검출회로(306)의 액세스 허가 어드레스범위 설정레지스터(401)로 설정한다.
다음, 공정 S3에서, 액세스 허가 설정레지스터(307)를 "0"으로 설정한다. 그 후, 공정 S4에서 AP1에 대한 분기 명령을 실행하여, AP1의 실행이 시작된다. AP1의 실행이 종료한 후, 다른 응용 프로그램을 실행하는 경우는, 공정 S1∼S4의 동작을 되풀이한다. 이 동작에 의해, 다른 응용 프로그램에 영향을 주지 않고 서로 다른 각각의 응용 프로그램을 연속적으로 실행할 수 있게 된다.
또한, (a) 응용 프로그램 메모리에 동작 시스템에 의해 응용 프로그램이 새롭게 추가되거나, 또는 (b) 현재의 응용 프로그램이 새로운 응용 프로그램으로 교체되는 경우에도, 상기 새로운 응용 프로그램의 스타트 어드레스와 엔드 어드레스를 취득하여 상기 공정들을 실행할 수 있다.
도 6은 본 발명의 1칩 마이크로컴퓨터의 CPU(301), 메모리보호회로(5), 및 비휘발성메모리(303)에 대해서 상세하게 나타낸 블록도이다.
상기 1칩 마이크로컴퓨터에는 CPU(301), 이 CPU에 포함되는 프로그램카운터(302), 비휘발성메모리(303), 모니터플래그(304), 액세스 허가 설정레지스터(307), 액세스 허가 어드레스범위 설정레지스터(401)와 액세스 허가 설정레지스터(307)에 대하여 기입 신호의 발생을 제한하는 레지스터 기입 제어회로(305), 메모리에 대하여 독출 신호의 발생을 제한하는 메모리독출 제어회로(309), 메모리에 대하여 기입 신호의 발생을 제한하는 메모리기입 제어회로(310), 및 인터럽트 제어회로(521)가 제공된다.
도 6의 메모리 독출 제어회로(309), 메모리기입 제어회로(310), 및 인터럽트 제어회로(521) 이외의 블록의 동작은 도 1의 블록도에서의 동작 내용과 동일하다.
메모리 독출 제어회로(309)에는 비휘발성메모리(303)에 대하여 허가되지 않은 독출 동작이 행하여진 사실을 나타내는 메모리 독출 위반 검출신호(522)를 출력하는 기능이 추가되어 있다. 또한, 메모리기입 제어회로(310)에는 비휘발성메모리(303)에 대하여 허가되지 않은 기입 동작이 행하여진 사실을 나타내는 메모리 기입 위반 검출신호(523)를 출력하는 기능이 추가되어 있다.
인터럽트 제어회로(521)는 메모리 독출 제어회로(309)에서 출력되는 메모리 독출 위반 검출신호(522)와 메모리 기입 제어회로(310)로부터 출력되는 메모리기입 위반 검출신호(523)를 수신하여, CPU(301)에 인터럽트 요구신호(524)를 출력한다.
메모리 독출 제어회로(309)에 "0"의 액세스 허가신호(317)가 입력될 때, 즉 비휘발성메모리(303)에 대하여 독출 및 기입을 금지하도록 설정되어 있을 때, 액세스 허가 어드레스영역 검출회로(306)에 의해 허가된 어드레스범위 이외의 어드레스에 대하여 CPU(30l)가 독출 동작을 한 경우에, 메모리 독출 위반 검출신호(522)가활성화된다(활성으로 된다).
메모리 기입 제어회로(310)에 "0"의 액세스 허가신호(317)가 입력될 때, 즉 비휘발성메모리(303)에 대하여 독출 및 기입을 금지하도록 설정되어 있을 때, 액세스 허가 어드레스영역 검출회로(306)에 의해 허가된 어드레스영역 이외의 어드레스 영역에 대하여 CPU(301)가 기입 동작을 한 경우, 메모리 기입 위반 검출신호(523)가 활성화된다.
각각의 메모리 액세스 위반 검출신호는 인터럽트 제어회로(521)에 입력되어, 이 회로에서 CPU(301)에 대하여 인터럽트 요구신호(524)로서 전달된다. 따라서, CPU(301)는 실행중의 응용 프로그램이 그의 프로그램 메모리 영역 이외의 프로그램 메모리 영역에 대하여 부정하게 액세스되었을 때, 인터럽트 처리를 할 수 있게 된다.
비휘발성메모리(303)에 대한 독출 및 기입이 동시에 행하여지지 않기 때문에, 인터럽트 제어회로(521)는 메모리 독출 위반 검출신호(522) 및 메모리 기입 위반 검출신호(523)가 입력되는 OR 회로, 및 CPU(301)의 사양이 요구하는 바에 따라 타이밍을 제어하는 잘 알려져 있는 타이밍 제어회로(도시 안됨)로 구성될 수 있고, 상기 인터럽트 제어회로(521)는 인터럽트 요구신호(524)를 생성하여 출력한다.
도 7은 상기 메모리 액세스 위반을 검출하여 인터럽트 요구신호(524)가 발생될때 CPU(301)와 동작 시스템에 의해 관리되는 인터럽트 처리의 일례를 플로우 챠트로 나타낸 것이다.
CPU(301)에 인터럽트 요구 신호(524)가 입력되면, 인터럽트 처리 프로그램이기동된다. 먼저, 공정 S11에서, 액세스 위반을 일으킨 응용 프로그램(AP)에 의해 사용된 작업 영역 등에 대해 초기화를 한다. 다음에, 공정 S12에서, 액세스 위반을 일으킨 응용 프로그램(AP)이 다시 실행되지 않도록 동작 시스템에 의해 관리되는 영역에 준비된 실행의 금지를 제어하는 플래그 또는 레지스터에 대한 설정을 한다. 따라서, 상기 응용 프로그램이 다시 실행됨이 금지된다. 다음에, 공정 S13에서, 동작 시스템으로의 리턴 어드레스를 설정하여, 인터럽트 처리를 종료한후, 동작 시스템으로 제어가 넘겨진다.
따라서, 응용 프로그램의 액세스 위반이 발생하더라도, CPU(301)가 폭주하지 않고 처리를 계속할 수 있게 된다. 상기 공정 S12에서 플래그 또는 레지스터가 일단 설정되면, 그 이후는 상기 응용 프로그램이 다시 실행되지 않는다. 즉, 플래그 또는 레지스터가 설정되어 있는 것이 확인되면, 해당하는 응용 프로그램이 다시 실행되지 않는다.
도시하지 않았지만, 이상과 같이 1칩 마이크로컴퓨터를 IC 카드에 탑재함으로써, 비휘발성메모리(303)에 복수의 프로그램을 저장할 수 있고, 각각의 프로그램을 상기한 종래 기술에서와 다르게 시스템을 리세트하지 않고 다이나믹하게 절환할 수 있기 때문에, 상기 IC 카드를 리더(reader) 및 라이터(writer)에 삽입한 상태로 다목적으로 이용할 수 있다. 또한, 복수의 프로그램 및 데이터 사이의 간섭을 금지할 수 있기 때문에, 응용프로그램으로의 부정한 액세스의 방지 또는 데이터 보호 등의 보안이 확보될 수 있기 때문에, 개인 정보 등의 기밀 데이터를 저장하는 IC 카드로 적합하다.
상기한 설명에서는, 설명의 편의상, 각종 레지스터 및 각종 플래그를 예로 들어 설명하였지만, 본 발명은 이것에으로 한정되는 것이 아니라, 예컨대 같은 기능을 갖는 기억 수단을 그 부재들에 대체할 수 있다.
본 발명에 따른 1칩 마이크로컴퓨터는, 이상 설명한 바와 같이, 내장메모리로서 프로그램용 메모리 및 작업용 메모리를 포함하는 것으로서, 프로그램의 실행 명령의 어드레스를 지시하는 프로그램 카운터를 갖는 CPU, 특정 어드레스공간을 실행하고 있음을 나타내는 모니터 플래그, 특정한 어드레스 공간에서만 설정이 가능하고 메모리를 독출 및 기입하기 위한 액세스가 허가되도록 설정하는 레지스터, 액세스를 허가하는 어드레스 범위를 설정하는 레지스터, 및 내장 메모리로 전송되는 독출 신호 및 기입 신호를 제어하는 제어회로를 포함한다.
상기 구성에 의하면, 응용 프로그램 저장용 메모리중, 실행중의 응용 프로그램이 저장되어 있는 영역 이외에는 액세스가 불가능하게 된다. 따라서, 상기 실행중인 응용 프로그램이 다른 응용 프로그램이 저장된 영역에 악영향을 미치지 않게 된다. 즉, 실행중의 응용 프로그램은, 다른 응용 프로그램이 저장된 영역에 악영향을 미치지 않는다. 또한, 동작 시스템 등의 시스템 프로그램(시스템 소프트웨어)이 저장된 특정 영역에서만 액세스 허 가 레지스터와 어드레스 범위설정 레지스터가 설정될 수 있다. 따라서, 이들 레지스터도 응용 프로그램으로부터 영향을 받지 않는다. 즉, 특정 어드레스공간에서만 액세스 가능한 액세스 허가 레지스터 및 액세스 범위 설정 레지스터에도 영향을 주지 않는다.
상기 1칩 마이크로컴퓨터가, 특정영역에서 액세스 허가 어드레스 범위 설정레지스터 및 액세스 허가 레지스터로 데이터를 설정하는 수단을 더 포함하는 것이 바람직하다. 이 경우, 동작 시스템으로부터 응용 프로그램으로 제어를 이행하기 전에, 액세스를 가능하게 하는 어드레스범위를 설정할 수 있으므로, 실행중의 응용 프로그램이 다른 응용 프로그램에 영향을 주지 않게 된다.
상기 1칩 마이크로컴퓨터는, 실행중의 응용 프로그램이 저장되어 있는 메모리 이외의 메모리에 현재 실행중인 응용 프로그램을 액세스하였을 때, CPU로 인터럽트 요구신호를 발생하는 수단을 더 포함하는 것이 바람직하다. 이 경우, 응용 프로그램에 의해 부정한 액세스가 되었을 때, 상기 부정한 액세스를 인터럽트 요구신호로서 CPU가 검출할 수 있기 때문에, CPU 또는 응용 프로그램의 폭주를 미연에 방지할 수 있게 된다.
상기 1칩 마이크로컴퓨터는 실행중의 응용 프로그램이 저장되어 있는 메모리 이외의 메모리에 상기 실행중인 응용 프로그램을 액세스하였을 때, CPU 또는 응용 프로그램의 폭주를 방지하는 인터럽트 처리프로그램을 내장하도록 구성함이 바람직하다. 이 경우, 응용 프로그램에 의해 부정한 액세스가 되었을 때, 인터럽트 처리프로그램이 실행된다(예컨대, 인터럽트 처리 프로그램이 시스템 프로그램 또는 동작 시스템으로 제어를 이행한다). 따라서, CPU 또는 응용 프로그램의 폭주를 방지할 수 있다.
상기 1칩 마이크로컴퓨터의 프로그램을 저장하는 메모리(프로그램 메모리)가 플래시메모리 또는 EEPROM 등의 개서 가능한 비휘발성메모리인 것이 바람직하다.이 경우, 응용 프로그램이 뒤에 추가되거나 또는 개서되더라도, 기존의 응용 프로그램에 영향을 주지 않고 프로그램을 실행할 수 있다.
상기 1칩 마이크로컴퓨터는, 액세스 제한을 넘어서 액세스가 행하여진 경우에, 액세스를 실행한 프로그램의 실행을 금지하도록 제어하며, 시스템 프로그램 또는 동작 시스템에 의해 관리되는 영역에 제공되는 플래그 또는 레지스터를 갖는 것이 바람직하다. 이 경우, 응용 프로그램을 뒤에 추가하거나 또는 개서하더라도, 기존의 응용 프로그램에 영향을 주지 않고 프로그램을 실행하는 것이 가능해진다. 일단 부정한 액세스를 한 프로그램은, 그후, 그러한 프로그램의 실행이 금지되기 때문에, CPU가 폭주하지 않고 처리를 계속할 수 있게 된다.
상기 1칩 마이크로컴퓨터의 프로그램을 저장하는 메모리는 플래시메모리 또는 EEPROM 등의 개서 가능한 비휘발성메모리로 구성하는 것이 바람직하다. 이 경우, 뒤에 추가하거나 또는 개서된 응용 프로그램이, 기존의 응용 프로그램에 영향을 주지 않고 프로그램을 실행할 수 있다.
상기 1칩 마이크로컴퓨터는 IC 카드용으로 적절하다. 이 경우, 복수의 응용 프로그램을 내장한 IC 카드에 따르면, 응용 프로그램들 사이의 보안을 확보할 수 있다. 또한, 복수의 프로그램을 저장하는 IC 카드가 실현되어, 각각의 프로그램을 리세트하지 않고 서로 다이나믹하게 절환할 수 있기 때문에, 그 IC 카드를 리더 및 라이터에 삽입한 상태로 다목적으로 이용할 수 있다. 또한, 복수의 프로그램 및 데이터 사이의 간섭을 방지할 수 있기 때문에, 프로그램에 의한 부정한 액세스의 방지 및 데이터의 보호 등의 보안성을 확보할 수 있다. 따라서, 개인 정보 등의 기밀데이터를 저장하는 IC 카드용으로 적합하다.
본 발명에 따른 1칩 마이크로컴퓨터는, (1) 특정 어드레스공간을 실행(액세스)하고 있을 때 설정가능하고, 액세스를 허가하는 어드레스 범위를 설정하는 액세스 허가 어드레스범위 설정수단, (2) 소프트웨어의 실행 중에, 상기와 같이 설정된 상기 어드레스 범위 내에서 액세스되어 있는 지 아닌 지를 판단하는 판단수단, (3) 상기 특정 어드레스공간을 실행(액세스)하고 있을 때 설정가능하고, 상기 어드레스범위 이외의 어드레스에 대한 액세스가 허가되는 지 아닌 지를 설정하는 액세스 허가 설정수단, 및 (4) 상기 판단수단의 결과와 상기 액세스 허가 설정수단의 설정 내용에 따라 메모리에 대한 액세스를 제어하는 제어수단을 포함한다.
상기 1칩 마이크로컴퓨터에 의하면, 특정한 어드레스공간에 저장된 소프트웨어가 실행되고 있을 때에, 액세스 허가 어드레스범위 설정수단 및 액세스 허가 설정수단을 각각 설정할 수 있게 된다.
상기 특정한 어드레스공간에 저장된 소프트웨어가 실행되지 않을 때는, 상기 특정한 어드레스공간에서 설정하더라도, 액세스 허가 어드레스범위 설정수단 및 액세스 허가 설정수단의 각 설정수단에 대해 설정할 수 없게 된다.
상기 특정한 어드레스공간에 저장된 소프트웨어가 실행되고 있을 때, 상기 특정한 어드레스공간에서 액세스 허가 어드레스 범위 설정수단을 통해 어드레스범위가 설정될 수 있다. 이 경우, 소프트웨어의 실행 중에, 상기와 같이 설정된 어드레스범위내의 어드레스가 액세스되어 있는 지 아닌 지를 판단수단에 의해 판단한다. 한편, 상기 특정한 어드레스공간에 저장된 소프트웨어가 실행되고 있지 않을때는, 데이터가 상기 특정한 어드레스공간에서 액세스 허가 어드레스 범위 설정수단에 입력되더라도, 상기 데이터는 상기 액세스 허가 어드레스범위 설정수단에 기입될 수 없다.
한편, 상기 특정한 어드레스공간에 저장된 소프트웨어가 실행되고 있을 때, 상기 특정한 어드레스공간에서 액세스 허가 설정수단을 통해 상기 어드레스범위 이외의 어드레스에 대한 액세스를 허가할 것인 지 아닌 지를 설정할 수 있다. 한편, 상기 특정한 어드레스공간에 저장된 소프트웨어가 실행되지 않을 때는, 데이터가 상기 특정한 어드레스공간에서 액세스 허가 설정수단에 입력되더라도, 상기 데이터는 상기 액세스 허가 설정수단에 기입될 수 없다.
상기 판단수단의 판단결과와 상기 액세스 허가 설정수단의 설정 내용에 따라, 메모리에 대한 액세스가 제어 수단에 의해 제어된다. 더 구체적으로, 어드레스범위가 설정되어 있지만 어드레스 범위 이외의 어드레스에 대해 액세스가 허가되지 않을 때에는, 상기 어드레스 범위내의 어드레스에 대해서만 액세스가 가능해지는 한편, 상기 어드레스범위 이외의 어드레스에 대해서는 액세스 할 수 없다.
이와 같이 메모리에 대한 액세스를 제어함으로써, 실행중의 프로그램에 의해 다른 프로그램이 저장되어 있는 어드레스 공간에 악영향을 미치지 않게 할 수 있다. 또한, 특정한 어드레스공간에서만 액세스 허가 설정수단과 어드레스범위 설정수단을 설정할 수 있기 때문에, 이들 설정수단도 응용 프로그램으로부터 영향을 받지 않는다. 즉, 특정 어드레스공간에서만 설정될 수 있는 액세스 허가 수단 및 액세스범위 설정수단도 영향을 받지 않는다.
어드레스범위가 설정되어 있고 어드레스범위 이외의 어드레스에 대한 액세스가 허가되어 있을 때에는, 상기 어드레스범위 이외의 어드레스에 대하여도 액세스가 가능해진다.
본 발명에 따른 다른 1칩 마이크로컴퓨터는, (1) 특정 어드레스 공간을 액세스(실행)하고 있는 지를 나타내는 플래그를 설정하는 모니터플래그, (2) 상기 플래그가 설정되어 있을 때 설정가능하고, 액세스를 허가하는 어드레스범위를 설정하는 액세스 허가 어드레스범위 설정레지스터, (3) 소프트웨어의 실행중에, 상기와 같이 설정된 상기 어드레스범위 내에서 액세스되어 있는 지 아닌 지를 판단하는 판단수단, (4) 상기 플래그가 설정되어 있을 때 설정가능하고, 상기 어드레스범위 이외의 어드레스에 대한 액세스가 허가되는 지 아닌 지를 설정하는 액세스 허가 설정레지스터, 및 (5) 상기 판단수단의 결과와 상기 액세스 허가 설정레지스터의 설정내용에 따라 메모리에 대한 액세스를 제어하는 제어수단을 포함한다.
상기 구성에 의하면, 특정 어드레스공간에 저장된 소프트웨어가 실행될때, 플래그가 모니터플래그에 의해 설정된다. 플래그가 설정되어 있을 때, 액세스 허가 어드레스범위 설정레지스터 및 액세스 허가 설정레지스터를 각각 설정할 수 있다.
플래그가 설정되어 있지 않을 때, 특정한 어드레스공간에 저장된 소프트웨어가 실행되지 않기 때문에, 모니터플래그는 플래그를 설정하지 않는다. 따라서, 상기 특정한 어드레스공간에서 설정하더라도, 액세스 허가 어드레스범위 설정레지스터 및 액세스 허가 설정레지스터 각각을 설정할 수 없게 된다.
상기 플래그가 설정되어 있을 때, 상기 특정한 어드레스공간에서 액세스 허가 어드레스범위 설정레지스터를 통해 어드레스범위가 설정될 수 있다. 이 경우, 소프트웨어의 실행 중에, 상기와 같이 설정된 어드레스범위내의 어드레스가 액세스되어 있는 지 아닌 지를 판단수단에 의해 판단한다. 한편, 상기 특정 어드레스 공간에 저장된 소프트웨어가 실행되지 않는 경우, 데이터가 상기 특정한 어드레스공간에서 액세스 허가 어드레스범위 설정레지스터에 입력되더라도, 상기 데이터는 상기 액세스 허가 어드레스범위 설정레지스터에 기입될 수 없다.
이에 대하여, 상기 플래그가 세트되어 있을 때, 상기 특정한 어드레스공간에서 액세스 허가 설정레지스터를 통해 상기 어드레스범위 이외의 어드레스의 액세스를 허가하는 지 아닌 지를 설정할 수 있다. 한편, 상기 플래그가 세트되어 있지 않을 때는, 데이터가 상기 특정한 어드레스공간에서 액세스 허가 설정레지스터에 입력되더라도, 상기 데이터는 상기 액세스 허가 설정레지스터에 기입될 수 없다.
상기 판단수단의 판단결과와 상기 액세스 허가 설정레지스터의 설정내용에 따라, 메모리에 대한 액세스가 제어수단에 의해 제어된다. 더 구체적으로, 어드레스범위가 설정되어 있지만, 어드레스범위 이외의 어드레스에 대한 액세스가 허가되어 있지 않을 때에는, 상기 어드레스범위내의 어드레스에 대해서만 액세스가 가능해지는 한편, 상기 어드레스범위 이외의 어드레스에 대해서는 액세스할 수 없다.
이와 같이 메모리에 대한 액세스를 제어함으로써, 실행중의 프로그램에 의해 다른 프로그램이 저장되어 있는 어드레스공간에 악영향을 미치지 않게 된다. 또한, 특정한 어드레스공간에서만 액세스 허가 설정레지스터와 어드레스범위 설정레지스터에 대하여 설정을 할 수 있기 때문에, 이들 각각의 설정 레지스터도 응용 프로그램에 의해 영향을 받지 않는다. 즉, 특정어드레스공간에서 설정될 수 있는 액세스 허가 레지스터 및 액세스 범위 설정레지스터도 영향을 받지 않는다.
어드레스범위가 설정되어 있고, 또한 어드레스범위 이외의 어드레스에 대한 액세스가 허가되어 있을 때에, 상기 어드레스범위 이외의 어드레스에 대해서도 액세스가 가능해진다.
상기 1칩 마이크로컴퓨터에서, 상기 특정한 어드레스공간에 시스템 소프트웨어가 저장되어 있고, 상기 시스템 소프트웨어는 (a) 다음 프로그램을 실행하기 전에, 실행될 다음 프로그램이 저장되어 있는 어드레스범위를 가지도록 상기 액세스 허가 어드레스범위 설정레지스터를 설정하는 동시에, (b) 상기 어드레스범위 이외의 어드레스에 대하여 액세스를 허가하지 않도록 상기 액세스 허가 레지스터를 설정하는 것이 바람직하다.
이 경우, 다음 프로그램이 실행되기 전에, 시스템 소프트웨어는 다음에 실행될 프로그램이 저장되어 있는 어드레스범위를 가지도록 액세스 허가어드레스범위 설정레지스터를 설정한다. 즉, 실행중인 프로그램은, 다음에 실행될 프로그램의 어드레스범위가 설정될 때까지, 상기 다음 프로그램에 액세스되지 않는다.
이상 설명한 바와 같이, 동작 시스템등의 시스템 소프트웨어로부터 응용 프로그램등의 다음에 실행될 프로그램으로 제어가 이행되기 전에, 액세스가능한 어드레스범위를 설정할 수 있다. 따라서, 실행중의 프로그램이 다음에 실행될 프로그램에 영향을 주지 않도록 할 수 있음으로써, 신뢰성을 크게 향상시킨다.
상기 1칩 마이크로컴퓨터는, 상기 어드레스범위 이외의 어드레스가 액세스됨을 금지하도록 액세스 허가 설정레지스터에 의해 설정될 수 있고 상기 어드레스범위 이외의 어드레스에 대하여 액세스되어 있음을 판단수단에 의해 판단하였을 때, 인터럽트 요구신호를 생성하여 CPU로 보내는 인터럽트 요구신호 생성수단을 더 포함하며, 소정의 인터럽트 처리프로그램을 실행하는 것이 바람직하다.
이 경우, 다른 프로그램에 의해 부정한 액세스가 되었을 때, 상기 부정한 액세스가 행해졌는 지를 판단수단에 의해 판단하여, 인터럽트 요구신호 생성수단에 의해 인터럽트 요구신호가 생성되어 CPU로 보내어진다. CPU는, 이 인터럽트 요구신호를 수령하면, 소정의 인터럽트 처리프로그램을 실행한다. 따라서, CPU가 폭주하는 것을 미연에 방지할 수 있다.
상기 1칩 마이크로컴퓨터에서, 상기 인터럽트 처리프로그램은 시스템 프로그램 또는 동작 시스템으로 제어(관리)를 이행하도록 구성됨이 바람직하다. 이 경우, 인터럽트 요구신호 생성수단에 의해 인터럽트 요구신호가 생성되어 CPU로 보내지면, 인터럽트 처리프로그램이 실행된다. 따라서, 시스템 프로그램 또는 동작 시스템에 의해 1칩 마이크로컴퓨터가 제어된다. 이로써, CPU 또는 응용 프로그램의 폭주를 방지할 수 있다.
상기 1칩 마이크로컴퓨터는 액세스 제한을 넘어 액세스가 행하여 졌음을 나타내는 정보를 기억하는 재실행 금지 정보 기억수단을 더 포함하며, 상기 정보에 따라 상기 제어수단이 상기 메모리를 제어하여 액세스 제한을 넘어 상기 액세스가 다시 실행되지 않게 하는 것이 바람직하다.
이 경우, 메모리로의 액세스 제한을 넘어서 액세스가 행하여지면, 그것을 나타내는 정보가 재실행 금지 정보 기억수단(예컨대, 플래그 및 레지스터등)에 기억된다. 상기 제어수단은 이 정보에 따라 상기 메모리를 제어하여, 액세스 제한을 넘어 상기 액세스가 다시 행하여지지 않도록 한다. 이로써, 일단 부정한 액세스가 행하여진 프로그램에 대해서는, 그 이후, 실행이 금지되기 때문에, CPU가 폭주하지 않고 처리를 계속할 수 있게 된다.
상기 메모리는 비휘발성메모리가 바람직하다. 이 경우, 뒤에 추가하거나 또는 개서한 프로그램(예컨대, 응용 프로그램)등을 기존의 응용 프로그램에 영향을 주지 않고 실행할 수 있다.
상기 1칩 마이크로컴퓨터는 IC 카드에 적용하는 것이 바람직하다. 이 경우, 복수의 응용 프로그램을 내장한 IC 카드에서, 응용 프로그램들 사이의 보안성을 확실하게 확보할 수 있다. 또한, 복수의 프로그램을 저장하는 IC 카드가 실현되어, 각각의 프로그램을 리세트하지 않고 서로 다이나믹하게 절환할 수 있기 때문에, 상기 IC 카드를 리더 및 라이터에 삽입한 상태로 다목적으로 이용할 수 있다. 또한, 복수의 프로그램 및 데이터 사이의 간섭을 방지할 수 있기 때문에, 프로그램에 의한 부정한 액세스의 방지 및 데이터의 보호등의 보안성이 확보될 수 있다 .따라서, 개인 정보 등의 기밀데이터를 저장하는 IC 카드용으로 적합하다.
이상 설명한 특징들은 당업자들에게 여러 장점들을 제공할 수 있을 것이다. 첨부된 특허청구의 범위에 포함되든 또는 아니던 간에, 본 출원에 의해 커버될 발명의 독립적인 양태가 각각 존재하고 있다.

Claims (22)

  1. 특정 어드레스공간에 대해 액세스를 실행하고 있을 때 설정될 수 있고, 액세스를 허가하는 어드레스범위를 설정하는, 액세스 허가 어드레스범위 설정수단;
    소프트웨어의 실행 중에 상기와 같이 설정된 상기 어드레스 범위내에서 액세스되어 있는 지 아닌 지를 판단하는 판단수단;
    상기 특정 어드레스공간에 대해 액세스를 실행하고 있을 때에 설정될 수 있고, 상기 어드레스범위 이외의 어드레스에 대한 액세스가 허가되는 지 아닌 지를 설정하는 액세스 허가 설정수단; 및
    상기 판단수단의 결과와 상기 액세스 허가 설정수단의 설정내용에 따라 메모리에 대한 액세스를 제어하는 제어수단을 포함하는 1칩 마이크로컴퓨터.
  2. 특정 어드레스 공간을 액세스하고 있음을 나타내는 플래그를 설정하는 모니터플래그;
    상기 플래그가 설정되어 있을 때에 설정가능하고, 액세스를 허가하는 어드레스범위를 설정하는 액세스 허가 어드레스범위 설정레지스터;
    소프트웨어의 실행중에, 상기와 같이 설정된 상기 어드레스범위 내에서 액세스되어 있는 지 아닌 지를 판단하는 판단수단;
    상기 플래그가 설정되어 있을 때에 설정될 수 있고, 상기 어드레스범위 이외의 어드레스에 대한 액세스가 허가되는 지 아닌 지를 설정하는 액세스 허가 설정레지스터; 및
    상기 판단수단의 결과와 상기 액세스 허가 설정레지스터의 설정내용에 따라 메모리에 대한 액세스를 제어하는 제어수단을 포함하는 1칩 마이크로컴퓨터.
  3. 제 2 항에 있어서, 상기 특정한 어드레스공간에는 시스템 소프트웨어가 저장되어 있고,
    상기 시스템 소프트웨어는, (a) 다음 프로그램을 실행하기 전에, 상기 다음 프로그램이 저장되어 있는 어드레스범위를 가지도록 상기 액세스 허가 어드레스범위 설정레지스터를 설정하고, (b) 상기 어드레스범위 이외의 어드레스에 대하여 액세스를 허가하지 않도록 상기 액세스 허가 레지스터를 설정하는 1칩 마이크로컴퓨터.
  4. 제 2 항에 있어서, 상기 어드레스범위 이외의 어드레스를 액세스하지 않도록 액세스 허가 설정레지스터가 설정되고 상기 어드레스범위 이외의 어드레스가 액세스되었음을 판단수단에 의해 판단하였을 때, 인터럽트 요구신호를 생성하여 CPU로 보내는 인터럽트 요구신호 생성수단을 더 포함하고, 소정의 인터럽트 처리프로그램이 실행되는 1칩 마이크로컴퓨터.
  5. 제 3 항에 있어서, 상기 어드레스범위 이외의 어드레스를 액세스하지 않도록 액세스 허가 설정레지스터가 설정되고 상기 어드레스범위 이외의 어드레스가 액세스되었음을 판단수단에 의해 판단하였을 때, 인터럽트 요구신호를 생성하여 CPU로 보내는 인터럽트 요구신호 생성수단을 더 포함하고, 소정의 인터럽트 처리프로그램이 실행되는 1칩 마이크로컴퓨터.
  6. 제 4 항에 있어서, 상기 인터럽트 처리프로그램은 시스템 프로그램 또는 동작 시스템으로 제어를 이행하는 프로그램인 1칩 마이크로컴퓨터.
  7. 제 5 항에 있어서, 상기 인터럽트 처리프로그램은 시스템 프로그램 또는 동작 시스템으로 제어를 이행하는 프로그램인 1칩 마이크로컴퓨터.
  8. 제 3 항에 있어서, 액세스 제한을 넘어 액세스가 행하여지는 것을 나타내는 정보를 기억하는 재실행 금지 정보기억수단을 더 포함하고,
    상기 정보에 따라 상기 제어수단이 상기 메모리를 제어하여 액세스 제한을 넘어 상기 액세스가 다시 실행되지 않도록 하는 1칩 마이크로컴퓨터.
  9. 제 1 항에 있어서, 상기 메모리는 개서 가능한 비휘발성메모리인 1칩 마이크로컴퓨터.
  10. 제 2 항에 있어서, 상기 메모리는 개서 가능한 비휘발성메모리인 1칩 마이크로컴퓨터.
  11. 제 3 항에 있어서, 상기 메모리는 개서 가능한 비휘발성메모리인 1칩 마이크로컴퓨터.
  12. 제 4 항에 있어서, 상기 메모리는 개서 가능한 비휘발성메모리인 1칩 마이크로컴퓨터.
  13. 제 5항에 있어서, 상기 메모리는 개서 가능한 비휘발성메모리인 1칩 마이크로컴퓨터.
  14. 제 6 항에 있어서, 상기 메모리는 개서 가능한 비휘발성메모리인 1칩 마이크로컴퓨터.
  15. 제 7 항에 있어서, 상기 메모리는 개서 가능한 비휘발성메모리인 1칩 마이크로컴퓨터.
  16. 제 8 항에 있어서, 상기 메모리는 개서 가능한 비휘발성메모리인 1칩 마이크로컴퓨터.
  17. (1) 특정 어드레스공간에 대해 액세스하고 있을 때에 설정가능하고, 액세스를 허가하는 어드레스범위를 설정하는 액세스 허가 어드레스범위 설정수단, (2) 소프트웨어의 실행중에, 상기와 같이 설정된 상기 어드레스범위 내에 액세스되어 있는 지 아닌 지를 판단하는 판단수단, (3) 상기 특정어드레스공간에 대해 액세스를 실행하고 있을 때에 설정가능하고, 상기 어드레스범위 이외의 어드레스에 대한 액세스가 허가되는 지 아닌 지를 설정하는 액세스 허가 설정수단, 및 (4) 상기 판단수단의 결과와 상기 액세스 허가 설정수단의 설정내용에 따라 메모리에 대한 액세스를 제어하는 제어수단을 포함하는 1칩 마이크로컴퓨터를 이용하는 IC 카드.
  18. (1) 특정 어드레스공간을 액세스하고 있음을 나타내는 플래그를 설정하는 모니터플래그, (2) 상기 플래그가 설정되어 있을 때에 설정가능하고, 액세스를 허가하는 어드레스범위를 설정하는 액세스 허가 어드레스범위 설정레지스터, (3) 소프트웨어의 실행중에, 상기와 같이 설정된 상기 어드레스범위 내에서 액세스가 실행되었는지 아닌 지를 판단하는 판단수단, (4) 상기 플래그가 설정되어 있을 때에 설정가능하고, 상기 어드레스범위 이외의 어드레스에 대한 액세스가 허가되는 지 아닌 지를 설정하는 액세스 허가 설정레지스터, 및 (5) 상기 판단수단의 결과와 상기 액세스 허가 설정레지스터의 설정내용에 따라 메모리에 대한 액세스를 제어하는 제어수단을 포함하는 1칩 마이크로컴퓨터를 이용하는 IC 카드.
  19. 제 18 항에 있어서, 상기 특정한 어드레스공간에 시스템 소프트웨어가 저장되어 있고,
    상기 시스템 소프트웨어는, (a) 다음 프로그램을 실행하기 전에 상기 다음 프로그램이 저장되어 있는 어드레스범위를 가지도록 상기 액세스 허가 어드레스범위 설정레지스터를 설정하고, (b) 상기 어드레스범위 이외의 어드레스에 대하여 액세스를 허가하지 않도록 상기 액세스 허가 레지스터를 설정하는 IC 카드.
  20. 제 19 항에 있어서, 상기 어드레스범위 이외의 어드레스의 액세스를 허가하지 않도록 상기 액세스 허가 설정레지스터가 설정되고 상기 어드레스범위 이외의 어드레스가 액세스되었음을 판단수단에 의해 판단하였을 때, 인터럽트 요구신호를 생성하여 CPU로 보내는 인터럽트 요구신호 생성수단을 더 포함하고, 소정의 인터럽트 처리프로그램이 실행되는 IC 카드.
  21. 제 20 항에 있어서, 상기 인터럽트 처리프로그램은 시스템 프로그램 또는 동작 시스템으로 제어를 이행하는 프로그램인 IC 카드.
  22. 제 19 항에 있어서, 액세스 제한을 넘어 액세스가 실행됨을 나타내는 정보를 기억하는 재실행 금지 정보기억수단을 더 포함하고,
    상기 정보에 따라 상기 제어수단이 상기 메모리를 제어하여 액세스 제한을 넘어서 상기 액세스가 다시 실행되지 않도록 하는 IC 카드.
KR10-2001-0013174A 2000-03-14 2001-03-14 1칩 마이크로컴퓨터 및 그것을 이용하는 ic 카드 KR100391080B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000-71183 2000-03-14
JP2000071183A JP3710671B2 (ja) 2000-03-14 2000-03-14 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法

Publications (2)

Publication Number Publication Date
KR20010092333A KR20010092333A (ko) 2001-10-24
KR100391080B1 true KR100391080B1 (ko) 2003-07-12

Family

ID=18589805

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0013174A KR100391080B1 (ko) 2000-03-14 2001-03-14 1칩 마이크로컴퓨터 및 그것을 이용하는 ic 카드

Country Status (5)

Country Link
US (1) US7213117B2 (ko)
EP (1) EP1139223B1 (ko)
JP (1) JP3710671B2 (ko)
KR (1) KR100391080B1 (ko)
TW (1) TW514833B (ko)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
JP2003140972A (ja) * 2001-11-08 2003-05-16 Nec Corp プログラム実行装置及びプログラム実行方法並びにそれを用いた携帯端末及び情報提供システム
JP4393733B2 (ja) 2001-11-27 2010-01-06 大日本印刷株式会社 携帯可能情報記録媒体
JP3884963B2 (ja) * 2002-01-23 2007-02-21 大日本印刷株式会社 共有アクセス監視機能を備えたicカード
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7139890B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
JP2004056089A (ja) * 2002-05-31 2004-02-19 Sharp Corp Icカード
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7318235B2 (en) * 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7900017B2 (en) 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
JP2005084721A (ja) * 2003-09-04 2005-03-31 Renesas Technology Corp マイクロコンピュータ
US8079034B2 (en) * 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7739521B2 (en) 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US20050091595A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Group shared spaces
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050133582A1 (en) * 2003-12-22 2005-06-23 Bajikar Sundeep M. Method and apparatus for providing a trusted time stamp in an open platform
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7386688B2 (en) * 2004-07-29 2008-06-10 Hewlett-Packard Development Company, L.P. Communication among partitioned devices
US7840962B2 (en) 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
EP1713000A1 (en) * 2005-04-11 2006-10-18 Jaluna SA Memory protection system
JP4698285B2 (ja) * 2005-05-19 2011-06-08 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
JP2007052481A (ja) * 2005-08-15 2007-03-01 Matsushita Electric Ind Co Ltd Icカード用lsi
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US7509441B1 (en) 2006-06-30 2009-03-24 Siliconsystems, Inc. Systems and methods for segmenting and protecting a storage subsystem
US7447807B1 (en) * 2006-06-30 2008-11-04 Siliconsystems, Inc. Systems and methods for storing data in segments of a storage subsystem
US7769964B2 (en) * 2006-08-21 2010-08-03 Intel Corporation Technique to perform memory reference filtering
US8549236B2 (en) 2006-12-15 2013-10-01 Siliconsystems, Inc. Storage subsystem with multiple non-volatile memory arrays to protect against data losses
WO2010035236A1 (en) * 2008-09-25 2010-04-01 Nxp B.V. System for managing access rights to an object of an object oriented programming language
JP2010128571A (ja) * 2008-11-25 2010-06-10 Dainippon Printing Co Ltd 半導体装置、半導体装置の制御方法および半導体装置の制御プログラム
US8825940B1 (en) 2008-12-02 2014-09-02 Siliconsystems, Inc. Architecture for optimizing execution of storage access commands
KR101022375B1 (ko) * 2008-12-31 2011-03-22 주식회사 케이티 범용 ic 카드에서 시스템 파일의 보안을 강화하는 방법 및 장치
US9176859B2 (en) * 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US10079048B2 (en) * 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
JP4656347B2 (ja) 2009-04-14 2011-03-23 日本電気株式会社 コンピュータ・システム
JP5460133B2 (ja) * 2009-06-09 2014-04-02 ラピスセミコンダクタ株式会社 マイクロコントローラ装置
USRE49776E1 (en) * 2010-10-26 2024-01-02 Koito Manufacturing Co., Ltd. Vehicle lamp controller, vehicle lamp system, and vehicle lamp control method
KR101212553B1 (ko) * 2012-05-11 2012-12-14 주식회사 안랩 악성 파일 검사 장치 및 방법
US8943251B2 (en) * 2012-05-14 2015-01-27 Infineon Technologies Austria Ag System and method for processing device with differentiated execution mode
JP5942778B2 (ja) * 2012-10-22 2016-06-29 トヨタ自動車株式会社 情報処理装置
JP5784656B2 (ja) * 2013-02-22 2015-09-24 株式会社東芝 マイクロプロセッサ
JP6323235B2 (ja) * 2014-07-29 2018-05-16 株式会社デンソー 電子制御装置
JP2017175297A (ja) * 2016-03-22 2017-09-28 富士ゼロックス株式会社 集積回路及び情報処理装置
JP6955858B2 (ja) * 2016-10-17 2021-10-27 オークマ株式会社 制御装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744418A (ja) * 1993-07-27 1995-02-14 Mitsubishi Electric Corp ワンチップマイクロコンピュータ
JPH09114743A (ja) * 1995-10-16 1997-05-02 Nec Corp シングルチップ・マイクロコンピュータ
JPH1021184A (ja) * 1996-06-28 1998-01-23 Nec Corp Dma内蔵シングルチップマイクロコンピュータ
JPH10247187A (ja) * 1997-03-06 1998-09-14 Nec Eng Ltd 1チップマイクロコンピュータ
KR100293594B1 (ko) * 1992-01-31 2001-09-17 가나이 쓰도무 공유메모리로의배타적액세스를실행하는멀티프로세서시스템

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5140772B2 (ko) * 1971-07-26 1976-11-05
JP3023425B2 (ja) 1987-10-09 2000-03-21 株式会社日立製作所 データ処理装置
JPH01180656A (ja) 1988-01-12 1989-07-18 Fuji Electric Co Ltd メモリ保護装置
FR2683357A1 (fr) * 1991-10-30 1993-05-07 Philips Composants Microcircuit pour carte a puce a memoire programmable protegee.
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
JPH0855204A (ja) 1994-08-12 1996-02-27 Dainippon Printing Co Ltd Cpu付きicカード及びcpu付きicカードに於けるアクセス可能アドレス制限方法
DE19508723A1 (de) * 1995-03-10 1996-09-12 Siemens Ag Mehrbenutzerdatenverarbeitungsanlage mit Speicherschutz
JPH08272625A (ja) * 1995-03-29 1996-10-18 Toshiba Corp マルチプログラム実行制御装置及び方法
JPH10240623A (ja) 1997-02-28 1998-09-11 Nec Corp 読み出し保護機能付きマイクロコンピュータ
DE19804784A1 (de) * 1998-02-06 1999-08-12 Philips Patentverwaltung Chipkarte mit integrierter Schaltung
JP2001257791A (ja) * 2000-03-13 2001-09-21 Jintetsuku:Kk コールセンターにおける個人情報確認方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100293594B1 (ko) * 1992-01-31 2001-09-17 가나이 쓰도무 공유메모리로의배타적액세스를실행하는멀티프로세서시스템
JPH0744418A (ja) * 1993-07-27 1995-02-14 Mitsubishi Electric Corp ワンチップマイクロコンピュータ
JPH09114743A (ja) * 1995-10-16 1997-05-02 Nec Corp シングルチップ・マイクロコンピュータ
JPH1021184A (ja) * 1996-06-28 1998-01-23 Nec Corp Dma内蔵シングルチップマイクロコンピュータ
JPH10247187A (ja) * 1997-03-06 1998-09-14 Nec Eng Ltd 1チップマイクロコンピュータ

Also Published As

Publication number Publication date
EP1139223A3 (en) 2005-12-07
EP1139223B1 (en) 2016-05-11
TW514833B (en) 2002-12-21
JP2001256460A (ja) 2001-09-21
US20010027511A1 (en) 2001-10-04
JP3710671B2 (ja) 2005-10-26
US7213117B2 (en) 2007-05-01
EP1139223A2 (en) 2001-10-04
KR20010092333A (ko) 2001-10-24

Similar Documents

Publication Publication Date Title
KR100391080B1 (ko) 1칩 마이크로컴퓨터 및 그것을 이용하는 ic 카드
JP3529800B2 (ja) 携帯データキャリヤー用データ保護マイクロプロセッサー回路
US7444668B2 (en) Method and apparatus for determining access permission
JP6306578B2 (ja) メモリ保護装置及び保護方法
JP2727520B2 (ja) メモリカード及びその作動方法
US5206938A (en) Ic card with memory area protection based on address line restriction
KR100318150B1 (ko) 플래시 메모리 탑재형 싱글 칩 마이크로 컴퓨터
US9626303B2 (en) Data processing apparatus and address space protection method
US8381283B2 (en) Information processing apparatus and method of controlling program execution of same
US6009453A (en) Multi-program execution controlling apparatus and method
JPH10228421A (ja) メモリアクセス制御回路
US20040177266A1 (en) Data processing system with peripheral access protection and method therefor
WO2007015204A2 (en) A secure terminal, a routine and a method of protecting a secret key
US20030172214A1 (en) Data processing system with peripheral access protection and method therefor
CN110968254B (zh) 一种非易失性存储器的分区保护方法及装置
CN110020561B (zh) 半导体装置和操作半导体装置的方法
US7260690B2 (en) Microprocessor circuit for data carriers and method for organizing access to data stored in a memory
KR100505106B1 (ko) 강화된 보안 기능을 갖춘 스마트 카드
JP4203514B2 (ja) プログラム実行制御回路、コンピュータシステム、及び、icカード
JPH11272828A (ja) 集積回路を有するチップカ―ド
US6925569B2 (en) Secured microprocessor comprising a system for allocating rights to libraries
JP2004503860A (ja) データ処理方法及び保護された命令の実行のための装置
RU2198424C2 (ru) Микрокомпьютер
JPH10240623A (ja) 読み出し保護機能付きマイクロコンピュータ
JP2011150457A (ja) 情報処理装置およびメモリアクセス制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130603

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140603

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20150619

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160621

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170623

Year of fee payment: 15