KR100319677B1 - 메모리액세스제어회로 - Google Patents

메모리액세스제어회로 Download PDF

Info

Publication number
KR100319677B1
KR100319677B1 KR1019980004485A KR19980004485A KR100319677B1 KR 100319677 B1 KR100319677 B1 KR 100319677B1 KR 1019980004485 A KR1019980004485 A KR 1019980004485A KR 19980004485 A KR19980004485 A KR 19980004485A KR 100319677 B1 KR100319677 B1 KR 100319677B1
Authority
KR
South Korea
Prior art keywords
command
address
access
memory
instruction
Prior art date
Application number
KR1019980004485A
Other languages
English (en)
Other versions
KR19980071365A (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 KR19980071365A publication Critical patent/KR19980071365A/ko
Application granted granted Critical
Publication of KR100319677B1 publication Critical patent/KR100319677B1/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
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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

Abstract

부정 액세스에 대하여 고도로 보호하는 메모리 액세스 제어회로를 실현하기 위하여, 명령인출 어드레스 레지스터 (14) 는 프로그램 카운터 (11) 의 값을 유지하고, 제 1 영역 테이블 (15) 은 메모리에 있는 보호영역의 어드레스를 유지하며, 제 2 영역 테이블 (16) 은 보호영역에 액세스하도록 허락된 명령의 어드레스를 유지한다. 액세스 검출회로 (17) 는, 상기 명령이 보호영역에 액세스하는 명령인지의 여부를 판별하기 위하여, 제 1 영역 테이블 (15) 의 어드레스와 명령해독의 결과로서 얻어진 액세스 수신지의 어드레스를 비교한다. 이 명령이 보호영역에 액세스하는 명령이라는 것이 검출되면, 비교회로 (18) 는, 이 명령이 보호영역에 액세스하도록 허락된 영역으로부터 독출되는지의 여부를 식별하기 위하여, 명령인출 어드레스 레지스터 (14) 의 어드레스를 제 2 영역 테이블 (16) 의 어드레스와 비교한다. 만일, 이 명령이 보호영역에 액세스하도록 허락되지 않은 영역으로부터 독출된 것이라고 판단되면, 비교회로 (18) 는 억제신호를 출력하여 부정 액세스를 억제시킨다.

Description

메모리 액세스 제어회로{MEMORY ACCESS CONTROL UNIT}
본발명은 컴퓨터시스템의 메모리 액세스 제어회로에 관한 것으로, 특히 메모리 상의 보호영역으로의 액세스를 검출함으로써 부정 (fraudulent) 액세스를 억제하기 위한 메모리 액세스 제어회로에 관한 것이다.
종래의 기술에서, 컴퓨터 프로그램의 개발은 상당한 시간을 필요로한다. 컴퓨터 프로그램을 개발하는 자는 프로그램을 판매함으로써 개발 비용을 보상한다. 그러나, 제 3 자가 메모리 상의 프로그램 및 데이터를 독출하기 위한 프로그램을 마련하여 메모리에 저장된 프로그램 및 데이터를 복사할 수가 있다. 그러나, 이러한 복사가 쉽게 실행된다면, 개발 비용을 보상하기가 어려워진다. 게다가, 암호화 알고리즘에 사용되는 암호화 처리 경로 및 데이터가 메모리에 저장되는 암호화 회로에서, 이러한 정보가 메모리로부터 독출된다면, 암호화 이전의 원시 데이터가 도둑맞게 된다.
상기한 환경 하에서, 메모리로의 부정 액세스를 억제하기 위한 메모리 액세스 제어회로가 제안되어 왔다 (예를 들어 그 내용 전체가 본원명세서에 인용 삽입되어 있는 일본 특개소 JP-A-59-11600 을 참조). JP-A-59-11600 은 그 내용이 전부 본원명세서에 인용에 의해 삽입되고 미국특허 4,521,853, 4,521,853, 4,5909,552 및 4,603,381 로 특허된 네개의 미국 특허출원서에 기초하여 우선권을 주장한다. 도 1 은 JP-A-59-11600 에 의해 개시된 종래의 메모리 액세스 제어회로의 블록다이어그램이다.
이 종래의 메모리 액세스 제어회로는 중앙처리장치 (CPU) (31), 비휘발성 메모리 (32), 임시메모리 (RAM) (33), 외부인터페이스 (34), 어드레스버스 (35),데이터버스 (36), 상기 비휘발성 메모리 (32) 에 저장된 정보의 보호 상태를 나타내는 프로그램 보호비트 (37), 상기 비휘발성 메모리 (32) 로의 액세스를 판별하기 위한 어드레스로직 (38), 상기 외부인터페이스 (34) 의 동작을 억제하기 위한 외부인터페이스 억제로직 (39), 상기 비휘발성 메모리 (32) 의 동작을 억제하기 위한 동작억제버퍼 (40), 상기 임시메모리 (33) 의 동작을 억제하기 위한 동작억제버퍼 (41), 및 도시된 바와 같이 결합되고 명령입수가 언제 발생하는지를 판정하기 위한 명령입수로직 (42) 을 구비한다.
이러한 구성과 함께, 상기 메모리 액세스 제어회로는 비휘발성 메모리 (32) 나 임시메모리 (33) 의 보호영역으로부터 보호되지 않는 영역으로의 정보의 전송을 억제한다. 따라서, 제 3 자는 임시메모리 (33) 상의 프로그램을 실행함으로써 비휘발성 메모리 (32) 에서 보호되는 데이터를 임시메모리 (33) 로 더 이상 독출하지 못한다.
그러나, 종래의 메모리 액세스 제어회로는 어느 한 메모리로부터 또다른 메모리로의 정보의 전달만을 억제하기 때문에, 메모리에서 보호되는 데이터로부터 CPU 의 누산기 (accumulator) 와 같은 범용 레지스터로 임시로 독출하고, 독출된 데이터에 대하여 산술연산을 수행하여 그 결과를 메모리의 보호되지 않는 영역으로 출력하는 것을 억제할 수 없다. 이 경우에, 보호되어야 하는 원시데이터는 산술연산의 결과를 얻음으로써 알려진다.
예를 들어, 보호영역의 데이터가 누산기로 독출되고 독출된 데이터에 0 을 더하는 단순한 산술연산이 실행된 후에, 산술연산의 결과가 독출된다면, 보호되어야 하는 원시데이터는 쉽게 알려진다. 선택적으로, 산술연산이 실행되는 경우 CPU 에 내부적으로 제공된 상태플래그 (status flag) (예를 들어, 캐피 플래그 (carry flag)) 의 상태의 변화를 조사함으로써, 보호되어야 하는 원시 데이터가 간접적으로 알려지게 된다.
따라서, 본발명의 목적은 종래 기술의 상기한 결점을 극복하는 메모리 액세스 제어회로를 제공하는 것이다.
본발명의 또다른 목적은 부정 액세스로부터 고도로 보호할 수 있는 메모리 액세스 제어회로를 제공하는 것이다.
본발명의 상기한 목적 및 다른 목적은 본발명에 따라 메모리 상의 보호영역으로의 액세스를 검출함으로써 부정 액세스를 억제하기 위한 메모리 액세스 제어회로에 의해 달성되는데, 상기 메모리 액세스 제어회로는 실행될 명령이 저장된 메모리 위치를 나타내는 명령인출 어드레스를 유지하기 위한 제 1 어드레스 유지수단; 보호영역에 대한 어드레스를 유지하기 위한 제 2 어드레스 유지수단; 보호영역으로의 액세스가 허락된 명령의 메모리 위치를 나타내는 명령인출 어드레스를 유지하기 위한 제 3 어드레스 유지수단; 메모리로부터 독출된 명령의 해독 결과로부터 얻어진 상기 독출된 명령의 액세스 수신지의 어드레스를 상기 제 2 어드레스 유지수단에 유지된 어드레스와 비교하여 독출된 명령이 보호영역에 액세스하는 명령인지의 여부를 판별하기 위한 액세스 검출수단; 상기 액세스 검출수단이 상기 독출된 명령은 보호영역에 액세스하는 명령이라는 것을 검출하는 경우상기 제 1 어드레스 유지수단에 유지된 명령인출 어드레스를 상기 제 3 어드레스 유지수단에 유지된 명령인출 어드레스와 비교하여, 상기 독출된 명령이 보호영역으로 액세스하도록 허락되지 않은 메모리 어드레스로부터 독출된 명령인 경우에는 억제신호를 출력하기 위한 비교수단; 및 상기 억제신호에 응답하여 메모리 액세스를 억제하기 위한 액세스 억제수단을 구비한다.
본발명의 제 1 실시예에 따른 메모리 액세스 제어회로에 있어서, 액세스 검출수단은 명령이 보호영역에 액세스하는 명령인지의 여부를 판별한다. 명령이 보호영역에 액세스하는 명령이라는 것이 검출되면, 비교수단은 상기 명령이 보호영역에 액세스하도록 허락된 메모리 어드레스로부터 독출된 명령인지의 여부를 판별한다. 이 명령이 보호영역에 액세스하도록 허락되지 않은 메모리 어드레스로부터 독출된 명령이라고 판단되면, 이 명령은 부정 액세스라고 간주되고, 억제 신호가 출력되어 억제수단에 의해 메모리 액세스가 억제된다. 따라서, 보호영역으로의 부정 액세스를 억제할 수 있다.
본발명의 또다른 실시예에 따르면, 메모리 상의 보호영역으로의 액세스를 검출함으로써 부정 액세스를 억제하기 위한 메모리 액세스 제어회로가 제공되는데, 이 메모리 액세스 제어회로는 실행될 명령이 저장된 메모리 위치를 나타내는 명령인출 어드레스를 유지하기 위한 제 1 어드레스 유지수단; 보호영역에 대한 어드레스를 유지하기 위한 제 2 어드레스 유지수단; 보호영역에 분기하도록 허락된 명령의 메모리 위치를 나타내는 명령인출 어드레스를 유지하기 위한 제 3 어드레스 유지수단; 상기 메모리로부터 독출된 명령의 해독 결과로부터 얻어진 상기독출된 명령의 분기 수신지의 어드레스를 상기 제 2 어드레스 유지수단에 유지된 어드레스와 비교하여 상기 독출된 명령이 보호영역에 분기하는 명령인지 여부를 판별하기 위한 액세스 검출수단; 상기 액세스 검출수단이 상기 독출된 명령은 보호영역에 분기하는 명령이라는 것을 검출하는 경우 상기 제 1 어드레스 유지수단에 유지된 명령인출 어드레스를 상기 제 3 어드레스 유지수단에 유지된 명령인출 어드레스와 비교하여, 상기 독출된 명령이 보호영역으로 분기하도록 허락되지 않은 메모리 어드레스로부터 독출된 명령인 경우에는 억제 신호를 출력하는 비교수단; 및 상기 억제 신호에 응답하여 상기 분기 명령의 실행을 억제하기 위한 액세스 억제수단을 구비한다.
본발명의 제 2 실시예에 따른 메모리 액세스 제어회로에 있어서, 상기 액세스 검출수단은 상기 명령이 보호영역으로 분기하는 명령인지 여부를 판별한다. 상기 명령이 보호영역에 분기하는 명령이라는 것이 검출되면, 상기 비교수단은 상기 명령이 보호영역으로 분기하도록 허락된 메모리 어드레스로부터 독출된 명령인지의 여부를 판별한다. 상기 명령이 보호영역으로 분기하도록 허락되지 않은 메모리 어드레스로부터 독출된 명령이라고 판단되면, 상기 명령은 부정 명령이라고 간주되고, 억제 신호가 출력되어 상기 분기 명령의 실행이 억제수단에 의해 억제된다. 따라서, 보호영역으로의 부정 분기를 억제할 수 있다.
본발명의 상기한 목적 및 다른 목적, 특징 및 효과는 첨부도면을 참조하여 본발명의 바람직한 실시예에 대한 이하의 기재로부터 분명해질 것이다.
도 1 은 종래의 메모리 액세스 제어회로의 블록다이어그램.
도 2 는 본발명에 따른 메모리 액세스 제어회로의 제 1 실시예의 블록다이어그램.
도 3 은 도 2 에 도시된 메모리 액세스 제어회로의 동작을 도시하는 타이밍챠트.
도 4 는 본발명에 따른 메모리 액세스 제어회로의 제 2 실시예의 블록다이어그램.
도 5 는 도 4 에 도시된 메모리 액세스 제어회로의 동작을 도시하는 타이밍챠트.
도 6 은 도 4 에 도시된 메모리 액세스 제어회로의 동작을 도시하는 타이밍챠트.
* 도면의 주요부분에 대한 부호의 설명 *
20 : 제어회로 21 : 선택기 22, 23, 24, 25, 26 : 버퍼
제 1 실시예
도 2 에는 본발명에 따른 메모리 액세스 제어회로의 제 1 실시예의 블록다이어그램이 도시된다.
이 메모리 액세스 제어회로의 실시예는 CPU (1), 제조시에 정보가 기입되고 제조 후에는 재기입되지 않는 마스크 ROM (2), 기입 및 독출이 전기적으로 실행되는 EEPROM (electrically erasable and programmable ROM) (3), RAM (4), 데이터를 송신하기 위한 데이터버스 (5), 어드레스를 송신하기 위한 어드레스버스 (6), 및 명령버스 (7) 를 도시된 바와 같은 결합으로 구비한다. 요약하면, CPU (1) 및 EEPROM (3) 은 데이터버스 (5), 어드레스버스 (6), 및 명령버스 (7) 와 결합되고, ROM (2) 은 명령버스 (7) 와 결합되고 또한 CPU (1) 로부터 어드레스를 직접 수신하기 위하여 CPU (1) 와 결합되며, RAM (4) 은 데이터버스 (5) 및 어드레스버스 (6) 와 결합된다.
CPU (1) 는, 산술 및 로직 장치 및 누산기 (본발명의 요지와 직접 관련이 없으므로 도시되지 않음) 와 같은 범용 레지스터 이외에도, 실행될 명령이 저장된 메모리의 어드레스를 나타내기 위한 프로그램 카운터 (11), 메모리로부터 독출된 명령어를 유지하기 위한 명령 레지스터 (12), 상기 명령 레지스터 (12) 에 유지된 명령어를 해독하기 위한 명령 해독기 (13), 상기 프로그램 카운터 (11) 의 출력인 명령인출 어드레스를 유지하기 위한 명령인출 어드레스 레지스터 (14) (제 1 어드레스 유지수단으로서 작용), 상기 메모리의 보호영역의 어드레스를 유지하기 위한 영역 테이블 (15) (제 2 어드레스 유지수단으로서 작용), 상기 보호영역에 액세스하도록 허락된 명령의 메모리 위치를 나타내는 명령인출 어드레스를 유지하기 위한 또다른 영역 테이블 (16) (제 3 어드레스 유지수단으로서 작용), 상기 명령 해독기 (13) 로부터의 명령의 해독 결과 및 해독된 명령에 의해 지시되는 액세스 목적지의 어드레스와 영역 테이블 (15) 에 유지된 어드레스의 비교 결과에 기초하여 상기 보호영역에 액세스하는 명령인지의 여부를 판별하기 위한 액세스 검출회로 (17), 상기 액세스 검출회로 (17) 가 상기 보호영역에 액세스하는 명령을 검출하는 경우 상기 테이블 (15) 에 유지된 명령인출 어드레스와 상기 레지스터 (14) 에 유지된 명령인출 어드레스를 비교하고 상기 명령이 상기 보호영역에 액세스하도록 허락된 메모리 어드레스로부터 독출된 명령인 경우 억제 신호를 출력하는 비교기 (18), 상기 억제 신호가 출력되는 경우 상기 해독기 (13) 로부터 제어회로 (20) 로의 신호 전송을 억제하기 위한 게이트회로 (19), 선택기 (21), 버퍼 (22 - 26) 를 도시된 결합과 같이 구비한다. 상기 선택기 (21) 및 버퍼 (22 - 26) 는 명령 해독기 (13) 에 의해 생성된 제어신호 (13A - 13F) 에 의해 각각 제어된다.
여기에서, 명령 해독기 (13), 게이트회로 (19), 및 제어회로 (20) 는 억제수단을 구성한다.
이러한 실시예의 메모리 액세스 제어회로에 있어서, 마스크 ROM (2) 및 EEPROM (3) 은 실행될 명령을 저장하기 위한 프로그램 영역 및 데이터를 저장하기 위한 데이터 영역을 포함한다. 메모리 액세스 제어회로는 마스크 ROM (2) 이나 EEPROM (3) 의 보호영역에 기입된 데이터 (예를 들어, 암호화 알고리즘에 사용되는 암호화 키 (key)) 를 보호하도록 구성된다.
이하에서, 상기 메모리 액세스 제어회로의 동작이 도 2 에 도시된 메모리 액세스 제어회로의 동작을 도시하는 타이밍챠트인 도 3 을 참조하여 기재된다.
이러한 메모리 액세스 제어회로를 포함하는 컴퓨터 시스템은 프로그램 카운터 (11) 로부터 출력된 명령인출 어드레스에 따라 ROM (2) 이나 EEPROM (3) 으로부터의 명령어를 연속적으로 독출, 해독 및 실행한다.
ROM (2) 이나 EEPROM (3) 으로부터 명령을 인출할 때, 선택기 (21) 및 버퍼 (22) 는 명령 해독기 (13) 로부터의 제어신호 (13A, 13B) 에 의해 각각 제어되어, 선택기 (21) 는 프로그램 카운터 (11) 의 출력을 선택하고 버퍼 (22) 는 인에이블 (enable) 조건에 놓인다. 그러므로, 프로그램 카운터 (11) 로부터 출력된 명령인출 어드레스가 선택기 (21) 를 통하여 마스크 ROM (2) 으로 공급되고, 또한 버퍼 (22) 및 어드레스버스 (6) 를 통하여 EEPROM (3) 으로 공급된다.
만일 이러한 명령인출 어드레스가 마스크 ROM (2) 에 할당된 어드레스라면, 명령어는 ROM (2) 의 해당 어드레스로부터 명령버스 (7) 로 독출되고, 만일 상기 명령인출 어드레스가 EEPROM (3) 에 할당된 어드레스라면, 명령어는 EEPROM (3) 의 해당 어드레스로부터 명령버스 (7) 로 독출된다. 명령버스 (7) 로부터 출력된 명령어는 명령 레지스터 (12) 에 저장된다.
한편, 명령어는 실행될 동작을 지정하는 명령 코드 및 동작되는 데이터를 지정하는 연산수 코드를 포함한다.
여기에서, ROM (2) 이나 EEPROM (3) 에 액세스하는 명령어 (이하 데이터 독출 명령) 가 2 바이트- 2 상태의 명령형식 (1 바이트의 명령 코드 및 1 바이트의연산수 (operand) 코드) 이라고 가정한다. 도 3 의 "B" 에 도시되어 있는 것처럼, 선행 명령의 최종 상태에서, 명령인출 어드레스는 데이터 독출 명령의 명령 코드가 저장기억되는 메모리 위치를 지시하는 어드레스 "AD" 가 되며, 다음 상태에서, 동일한 명령의 연산수 코드가 저장되는 메모리 위치를 지시하는 어드레스 "AD+1" 가 된다.
따라서, 도 3 의 "D" 에 도시된 것처럼, 선행 명령의 최종의 상태에서, 명령 코드가 명령 레지스터 (12) 에 저장되고, 다음의 단계에서, 연산수 코드가 명령 레지스터 (12) 에 저장된다.
한편, 도 3 의 "C" 에 도시된 것처럼, 프로그램 카운터 (11) 로부터 출력된 명령인출 어드레스 중, 명령 코드를 위한 어드레스 "AD" 가 명령인출 어드레스 레지스터 (14) 내에 저장된다. 상기 명령인출 어드레스 레지스터 (14) 는 그 내용이 다음의 명령인출에 의해서 갱신될 때까지 그 내용을 계속 유지한다.
이어서, 명령 해독기 (13) 은 상기 명령 싸이클의 최초 상태에서 명령 레지스터 (12) 내에 저장된 명령코드를 해독한다. 만일 해독된 명령이 데이터 독출명령이라면, 명령 해독기 (13) 는 비교기 (21) 와 버퍼(23 내지 25) 를 제어 신호 (13A 및 13C 내지 13E) 에 의해서 제어하여서, 버퍼 (23 내지 25) 를 인에이블 상태로 가져오며, 비교기 (21) 가 버퍼 (23) 의 출력을 선택한다.
그러므로, 명령 코드 다음으로 명령 레지스터 (12) 에 저장된 연산수 코드가 버퍼 (24) 를 통하여 데이터 액세스 수신지의 어드레스 "M" 으로서, 어드레스버스 (6) 로 출력되어서, 버퍼 (23) 와 비교기 (21) 를 통하여 ROM (2) 으로 공급되며,어드레스 (6) 를 통하여 EEPROM (3) 으로 공급된다.
부가적으로, 만일 명령 코드를 해독한 결과가 데이터 독출명령이라면, 상기 명령 해독기 (13) 는 상기 명령이 데이터 독출명령이라는 것을 지시하는 제어 신호 (13G) 를 출력한다. 상기 제어신호 (13G) 는 게이트 회로 (19) 를 통하여 제어회로 (20) 로 공급된다. 상기 게이트 회로의 연산수는 이후에 설명될 것이다.
그런 후, 제어 회로 (20) 가 메모리 독출 신호를 출력한다.
메모리 독출신호가 출력될 때, 만일 마스크 ROM (2) 으로 공급된 어드레스가 ROM (2) 으로 할당된 어드레스이면, ROM (2) 내의 대응하는 어드레스에서의 데이터가 버퍼 (25) 를 통하여 데이터버스 (5) 로 출력된다. 만일 어드레스가 EEPROM (3) 으로 할당된 어드레스이면, EEPROM (3) 내의 대응하는 어드레스는 버퍼 (25) 를 통하여 데이터버스 (5) 로 출력된다. 그런 후, 데이터버스 (5) 로 출력된 데이터는 CPU (1) 내의 누산기와 같은 통상의 레지스터 (도시되지 않음) 내에 저장된다.
그런 후, 데이터 독출명령의 인출 및 실행이 완성된다.
상술된 명령인출 및 명령실행에서, 만일 메모리로부터 독출된 명령이 보호영역에 액세스하는 명령이면, 독출된 상기 명령은 상기 메모리 영역과는 구별되며, 만일 상기 명령이 보호영역으로 액세스할 수 있는 영역으로부터 독출되는 명령이라면, 상기 명령의 실행이 정상적으로 계속된다. 만일 상기 명령이 보호영역으로 액세스할 수 없는 영역으로부터 독출된 명령이라면, 메모리 액세스 작동은 억제된다. 이하에서, 상기 동작이 기재된다.
우선, 마스크 ROM (2) 혹은 EEPROM (3) 에 있는 보호영역의 어드레스는 영역 테이블 (15) 내에 저장되며, 보호영역으로 액세스할 수 있는 명령의 명령인출 어드레스는 영역 테이블 (16) 내에 저장된다.
이러한 정보를 세팅하기 위하여는, 어드레스정보를 영역 테이블 (15, 16) 에 기입하기 위한 프로그램이 마스크 ROM (2) 이나 EEPROM (3) 에 저장되고 컴퓨터 시스템이 시작될 때 상기 어드레스 정보가 영역 테이블 (15, 16) 에 저장되면 그것으로 충분하다. 선택적으로, 영역 테이블 (15, 16) 이 ROM 으로 구성되어 프로그램이 마련될 때 어드레스정보가 기입되면 그것으로 또한 충분하다.
명령 해독기 (13) 가 명령이 메모리 액세스 명령임을 판별하는 경우에, 제어신호 (13H) 에 응답하여 액세스 검출회로 (17) 는 영역 테이블 (15) 에 유지된 어드레스를 어드레스버스 (6) 상에 출력된 어드레스 (연산수 코드로부터 얻어진 데이터 액세스 목적지의 어드레스) 와 비교하여, 액세스 명령이 보호영역으로의 액세스인지 여부를 판별한다.
여기에서, 영역 테이블 (15) 에 등록된 어드레스는 보호영역에 대한 어드레스이므로, 예를 들어 "8000h" 어드레스로부터 "8FFFh" (h 는 16 진수임을 의미함) 어드레스까지의 특정한 어드레스 범위가 영역 테이블 (15) 에 등록된다.
따라서, 어드레스버스 (6) 상에 출력된 어드레스와 일치하는 어드레스가 영역 테이블 (15) 에 등록된 어드레스 범위에 포함된다면, 액세스 검출회로 (17) 는 명령이 보호영역에 액세스하는 명령임을 판별한다. 만일, 영역 테이블 (15) 에 등록된 어드레스 범위가 어드레스버스 (6) 상에 출력된 어드레스와 일치하는 어드레스를 포함하지 않는다면, 이 명령은 보호영역에 액세스하는 명령이 아니라는 것이 판별된다.
게다가, 연관된 어드레스가 영역 테이블 (15) 에 등록된 어드레스 범위에 포함되는지 여부가 조사되면 그것으로 충분하므로, 어드레스의 모든 비트를 비교할 필요가 없다. 예를 들어, 영역 테이블 (15) 에 등록된 어드레스 범위가 "8000h" 로부터 "8FFFh" 사이의 어드레스라면, 16 비트 어드레스 정보의 네개의 의미있는 비트는 1000 이므로, 16 비트 어드레스정보의 네개의 의미있는 비트만을 비교하는 것으로 충분하다.
액세스 검출회로 (17) 가 명령이 보호영역에 액세스하는 명령임을 판별하는 경우, 명령이 보호영역에 액세스하도록 허락된 영역으로부터 독출된 명령인지 여부를 조사하기 위하여, 비교회로 (18) 는 명령인출 어드레스 레지스터 (14) 에 유지된 명령인출 어드레스를 영역 테이블 (16) 에 유지된 명령인출 어드레스와 비교한다.
이 때, 영역 테이블 (16) 에 특정한 어드레스 범위가 등록되므로, 비교기 (18) 는, 영역 테이블 (16) 에 등록된 명령인출 어드레스가 명령인출 어드레스 레지스터 (14) 에 등록된 명령인출 어드레스와 일치하는 어드레스를 포함한다면, 명령이 보호영역에 액세스하도록 허락된 영역으로부터 독출된 명령이라는 것을 판별한다. 만일 일치하지 않는다면, 비교기 (18) 는 명령이 보호영역에 액세스하도록 허락되지 않은 영역으로부터 독출된 명령이라는 것을 판별한다.
비교기 (18) 가 명령이 보호영역에 액세스하도록 허락되지 않은 영역으로부터 독출된 명령이라고 판별한 경우에는, 비교기 (18) 는 억제신호 (18B) 를 게이트회로 (19) 에 출력한다.
비교기 (18) 가 억제신호 (18B) 를 출력하는 경우, 게이트회로 (19) 는 명령 해독기 (13) 으로부터 출력된 제어신호 (13G) 가 제어회로 (20) 에 전송되는 것을 억제한다. 그 결과, 명령이 데이터 독출명령임을 나타내는 제어신호 (13G) 는 제어회로 (20) 에 공급되지 않으므로, 제어회로 (20) 는 도 3 의 F 에 점선으로 도시된 바와 같이 메모리 독출신호 (RD) 를 출력하지 않는다.
그러므로, 영역 테이블 (15, 16) 의 어드레스정보를 미리 세팅함으로써, 명령이 보호영역에 액세스하지 않는 경우 및 명령이 보호영역에 액세스하는 경우에도, 명령이 보호영역에 액세스하도록 허락된 영역으로부터 독출된다면 메모리 액세스는 정상적으로 실행된다.
따라서, 제 3 자가 부정 명령 프로그램을 EEPROM (3) 에 기입하여 ROM (2) 이나 EEPROM (3) 의 보호영역으로부터 데이터를 부정하게 독출하려고 한다면, 데이터를 독출할 수가 없으며 보호영역의 데이터에 산술연산을 실행할 수 없다.
부수적으로, 상기한 실시예에서, 데이터 독출명령이 기재되었지만, 다른 메모리 액세스 명령도 이와 유사하게 고려될 수 있다. 예를 들어, 데이터를 EEPROM (3) 에 기입하기 위한 데이터 기입명령이 데이터 독출명령 대신에 고려된다면, 상기한 기재에서 데이터 액세스 수신지의 어드레스는 메모리의 기입 어드레스로 대체되고, 메모리 독출신호는 메모리 기입신호로 대체된다.
제 2 실시예
도 4 에는, 본 발명에 따른 메모리 액세스 제어회로의 제 2 실시예의 블록도를 도시하고 있다. 도 4 에서, 도 2 에 도시한 소자에 대응하는 소자에는 동일한 참조 번호가 부여되며, 도 2 에 도시한 소자와 유사한 소자는 첨자 "a" 를 사용한 참조 번호가 부여되고, 그의 설명은 간략화를 위해 생략한다.
메모리 액세스 제어회로의 제 2 실시예는 처리 경로상의 처리 내용을 보호하도록 구성되고, 제 3 자로부터 비밀을 유지해야 하는 암호화 처리경로와 같은 명령 처리경로가 마스크 ROM (2) 또는 EEPROM (3) 에 기입된다.
지금부터, 메모리 액세스 제어 회로의 제 2 실시예의 동작을 도 4 에 도시한 메모리 액세스 제어 회로의 동작을 나타낸 타이밍 챠트인 도 5 및 도 6 을 참조하여 설명한다. 도 5 는 분기 명령이 보호 영역으로 분기하는 것이 가능한 영역으로부터 독출된 명령인 경우의 동작을 나타낸 타이밍 챠트이고, 도 6 은 분기 명령이 보호 영역으로부터 분기하는 것이 불가능한 영역으로부터 독출된 명령인 경우의 동작을 나타낸 타이밍 챠트이다.
제 1 실시예와 유사하게, ROM (2) 또는 EEPROM (3) 으로부터 명령을 인출하는 시간에, 프로그램 카운터 (11) 로부터 출력된 명령 인출 어드레스는 선택기 (12) 를 통해 마스크 ROM (2) 으로 공급되고, 또한 버퍼 (22) 및 어드레스버스 (6) 를 통해 EEPROM (3) 으로 공급된다.
이 명령 인출 어드레스가 마스크 ROM (2) 에 할당된 어드레스이면, 명령어는 ROM (2) 의 대응 어드레스로부터 명령버스 (7) 로 독출되고, 명령 인출 어드레스가 EEPROM (3) 으로 할당된 어드레스인 경우, 명령어는 EEPROM (3) 의 대응 어드레스로부터 명령버스 (7) 로 독출된다. 명령버스 (7) 로 출력된 명령어는 명령 레제스터 (12) 로 저장된다.
도 5 의 "B" 에 나타낸 바와 같이, 서브 경로로 분기한 명령이 2 바이트-2 상태 (하나의 바이트의 명령 코드 및 하나의 바이트의 연산 코드) 의 명령 형태로 이루어지는 것으로 가정하면, 선행 명령의 최종 상태에서, 명령 인출 어드레스는 분기 명령의 명령 코드가 저장된 메모리 위치를 지시하는 어드레스 "AD" 가 되고, 다음 상태에서, 동일 명령의 연산 코드가 저장된 메모리 위치를 지시하는 어드레스 "AD+1" 가 된다.
따라서, 도 5 의 "D" 에 도시한 바와 같이, 선행 명령의 최종상태에서, 명령 코드는 명령 레제스터 (12) 에 저장되고, 명령 코드는 명령 레지스터 (12) 에 저장되고, 다음 상태에서 연산 코드가 명령 레지스터 (12) 에 저장된다.
한편, 도 5 의 "C" 에 나타낸 바와 같이, 프로그램 카운터 (11) 로부터 출력된 명령 인출 어드레스에서, 명령 코드에 대한 어드레스 "AD" 는 명령 인출 레지스터 (14) 에 저장된다.
계속해서, 이 명령 순환주기의 제 1 상태에서, 명령 해독기 (13) 는 명령 레지스터 (12) 에 저장된 명령 코드를 해독한다. 해독 명령이 분기 명령인 경우, 명령 해독기 (13) 는 제어 신호 (13A, 13B, 13D, 및 13F) 로 선택기 (21) 및 버퍼 (22, 24 및 26) 를 제어하여, 버퍼 (22, 24, 26) 를 인에이블 상태가 되게 하고 선택기에 의해서 프로그램 카운터 (11) 의 출력을 선택하도록 한다.
따라서, 도 5 의 "E" 에 나타낸 바와 같이, 명령 코드에 후속하여 명령 레지스터 (12) 에 저장된 연산 코드는 버퍼 (24) 를 통해 분기 명령의 어드레스 "N" 로서 어드레스버스 (6) 로 출력되고, 또한, 버퍼 (26) 를 통해 프로그램 카운터 (11) 에 저장된다. 따라서, 프로그램 카운터 (11) 로부터 출력된 명령 인출 어드레스는 도 5 의 "B" 에 나타낸 바와 같이 어드레스 "N" 이 된다. 게다가, 이 명령 인출 어드레스는 선택기 (21) 를 통해 마스크 ROM (2) 으로 공급되고, 버퍼 (22) 및 어드레스버스 (6) 를 통해 EEPROM (3)으로 공급된다.
명령 인출 어드레스가 ROM (2) 에 할당된 어드레스이면, ROM (2) 의 대응 어드레스에 있는 데이터가 명령버스 (7) 로 출력된다. 명령 인출 어드레스가 EEPROM (3) 에 할당된 어드레스이면, EEPROM (3) 의 대응 어드레스에 있는 데이터가 명령버스 (7) 로 출력된다. 따라서, 도 5 의 "D" 에 도시한 바와 같이, 명령버스 (7) 로 출력된 데이터는 명령 레지스터 (12) 에 저장된다.
따라서, 분기 처리가 완료된다.
통상적으로, 프로그램 카운터 (11) 로부터 출력된 명령 인출 어드레스는 각 명령 인출과 명령 실행으로 갱신을 위해 증가된다. 상술한 바와 같이 분기 명령이 메모리로부터 독출되면, 프로그램 카운터의 내용은 분기 명령 어드레스로 갱신되어, 프로그램 실행시에 어드레스 분기가 실행된다.
상술한 분기 명령 인출 및 실행에서, 메모리로부터 독출된 명령이 보호 영역으로 분기하는 명령이면, 메모리 영역의 보호 영역으로부터 관련 명령이 독출되어 판별되고, 관련 명령이 보호 영역으로 분기되는 것이 가능한 영역으로부터 독출된 명령인 경우, 분기 명령은 통상적인 경우와 마찬가지로 실행된다. 관련 명령이 보호 영역으로 분기하는 것이 불가능한 영역으로부터 독출된 명령인 경우, 분기 명령의 실행은 억제된다. 이하, 이 동작을 설명한다.
우선, 마스크 ROM (2) 또는 EEPTOM (3) 의 보호 영역의 어드레스는 영역 테이블 (15) 에 저장되고, 보호 영역으로 분기하는 것이 가능한 분기 명령의 명령 인출 어드레스는 영역 테이블 (16a) 에 저장된다. 이들 정보를 설정하는 방식은 제 1 실시예의 방식과 유사할 수 있다.
명령 해독기 (13) 가 명령이 분기 명령인 것을 판별한 경우, 제어 신호 (13H) 에 응답하여 액세스 검출 회로 (17a) 는 영역 테이블 (15) 에 저장된 어드레스와 어드레스버스 (6) 상에 출력된 어드레스 (연산 코드로부터 획득된 분기 수신지의 어드레스) 를 비교하여, 분기 명령이 보호 영역으로 분기하는 명령인 지의 여부를 판별한다.
따라서, 영역 테이블 (5) 에 저장된 어드레스 범위는 어드레스버스 (6) 상에 출력된 어드레스와 일치하는 어드레스를 포함하면, 액세스 검출 회로 (17a) 는 명령이 보호 영역으로 분기하는 명령인 것으로 판별한다. 어드레스버스 (6) 상에 출력된 어드레스가 영역 테이블 (15) 에 저장된 어드레스 범위에 포함된 어느것과도 일치하지 않는 경우, 명령이 보호 영역으로 분기하는 명령이 아닌것으로 판별한다.
명령이 보호 영역으로 분기하는 명령인 것으로 액세스 검출 회로 (17a) 가 판별한 경우, 비교기 (18a) 는 명령 인출 어드레스 레지스터 (14) 에 저장된 명령인출 어드레스와 영역 테이블 (16a) 에 저장된 명령 인출 어드레스를 비교하여, 명령이 보호 영역으로 분기하는 것이 가능한 영역으로부터 독출된 것인 지를 조사한다.
즉, 영역 테이블 (16a) 에 저장된 명령 인출 어드레스가 명령 인출 어드레스 레지스터 (14) 에 저장된 명령 인출 어드레스와 일치하는 어드레스를 포함한 경우, 비교기 (18a) 는 보호 영역으로 분기하는 것이 가능한 영역으로터 독출된 명령인 것으로 판별한다. 일치하는 어드레스가 획득되지 않은면, 비교기 (18a) 는 명령이 보호 영역으로 분기하는 것이 불가능한 영역으로부터 독출된 것으로 판별한다.
명령이 보호 영역으로 분기하는 것이 불가능한 영역으로부터 독출된 것으로 비교기 (18a) 가 판별한 경우, 비교기 (18a) 는 억제 신호 (18B) 를 출력한다.
비교기 (18a) 가 억제 신호 (18B) 를 출력한 경우, 제어 회로 (20a) 는 도 6 의 "F" 에 도시한 바와 같이 내부 리셋 신호를 생성하며, 리셋 신호가 CPU (1a) 의 외부로부터 부여된 것과 마찬가지로 CPU 를 리셋시킨다. 동시에, 내부 리셋 신호가 CPU (1a) 의 주변 회로에 공급되어 주변 회로가 리셋된다.
내부 리셋 신호가 출력되면, 프로그램 카운터 (11) 는 "0" (제로) 로 설정되어, 명령 인출 어드레스는 도 6 의 "B" 에 나타낸 바와 같이 "0000h" 가 된다. 결과적으로, 도 6 의 "G" 에 나타낸 바와 같이, 분기 명령의 상태 후에, 리셋 벡터 처리 경로가 실행된다.
따라서, 서브 경로 (서브 프로그램) 가 마스크 ROM (2) 또는 EEPROM (3) 에기입되면, 서브 경로를 독출하려는 제 3 자는 서브 경로를 호출하는 명령 프로그램을 메모리에 기입한다. 통상적으로, 서브 경로가 기입된 어드레스는 제 3 자가 알 수 없다. 그러나, 주변 장치의 동작 및 데이터 버스 (5) 와 어드레스버스상의 데이터를 외부적으로 감시함으로서 서브 경로의 어드레스를 추정하는 것이 가능하다. 이러한 경우, 대량의 분석 데이터를 서브 경로에 부여하여, 획득된 대량의 결과에 기초하여 상기 처리를 분석함으로서, 서브 경로에 의해서 실행된 처리의 내용이 해독되는 것을 알 수 있다.
그러나, 본 실시예에서, 영역 테이블 (15 및 16a) 에 어드레스 정보를 미리 설정함으로서, 명령이 보호 영역으로 분기하지 않는 경우, 및 명령이 보호 영역으로 분기하는 경우에도, 보호 영역으로 분기하는 것이 가능한 영역으로 명령이 독출되면, 분기가 정상적으로 실행된다. 그러나, 보호 영역으로 분기하는 명령이 보호 영역으로 분기하는 것이 불가능한 영역으로부터 독출되면, 분기는 부정 명령 프로그램으로 판단되어, 처리가 리셋된다.
따라서, 제 3 자가 EEPROM (3) 상에 부정 명령 프로그램을 기입한 경우에도, 마스크 ROM (2) 또는 EEPROM (3) 의 보호 영역의 서브 경로를 호출하는 것은 불가능하며 분석 데이터를 서브 경로에 부여할 수 없다.
본 실시예에서, 제어 회로 (20a) 는 억제 수단을 구비한다. 그러나, 도 4 에 점선으로 나타낸 바와 같이, 비교기 회로 (18a) 로부터 출력된 억제 신호 (18B) 를 명령 해독기 (13) 에 공급함으로서, 명령 해독기 (13) 가 억제 수단으로서 이용될 수 있다. 이 경우에, 명령 해독기 (13) 가 분기 명령을 인출한 경우, 통상적으로, 명령 해독기 (13) 는 프로그램 카운터 (11) 의 값을 분기 수신지의 어드레스로 갱신시키도록 제어하지만, 명령 해독기 (13) 가 비교기 (18a) 로부터 억제 신호를 수신하면, 명령 해독기 (13) 는 어드레스를 갱신하는 동안 제어 신호를 마스킹한다. 따라서, 억제 신호가 출력된 경우, 프로그램 카운터 (11) 로부터 출력된 명령 인출 어드레스는 분기 수신지의 어드레스로 갱신되지 않고, 통상적인 비분기의 경우와 마찬가지로 +1 만큼 증가된다. 이것은 NOP (no operation) 의 실행과 동일하다. 따라서, 상술한 효과와 유사한 효과가 획득될 수 있다.
더욱이, 억제 신호가 출력된 경우, 제어 회로 (20a) 는 인터럽트 요구 신호가 CPU (1a) 의 외부로부터 공급된 경우와 유사한 인터럽트 처리를 요구하도록 구성될 수 있다. 이 경우, 넌마스커블 인터럽트가 강제로 개시되어, (예를들면, 표시상에 부정 액세스를 지시하기 위해) 인터럽트처리 경로에서 임의의 처리가 실행된다.
게다가, 보호 기능은 복수의 명령이 명령 인출 어드레스의 소정의 순으로 실행된 후에 분기 명령이 실행되는 것을 제외하고, 분기 명령의 실행을 억제함으로서 향상될 수 있다. 이러한 취지 때문에, 명령 인출 어드레스 레지스터 (14) 는 복수의 명령 코드에 대한 명령 인출 어드레스를 유지하도록 수정되고, 영역 테이블 (16a) 은 보호 영역으로 분기하는 것이 가능한 분기 명령의 명령 인출 어드레스 뿐만 아니라 분기 명령이 허락되기 전에 실행될 복수의 명령에 대한 명령 인출 어드레스를 설정하도록 수정된다. 비교기 (18a) 는 레지tm터 (14) 의 내용과 테이블 (16a) 의 내용을 비교한다.
상술한 제 1 및 제 2 실시예에서, 메모리 구조는 마스크 ROM (2), EEPROM (3), 및 RAM (4) 을 포함한다. 그러나, 본 발명은 이 메모리 구조에 제한되지 않는다. 게다가, 버스 구조는 데이터 버스 (5), 어드레스버스 (6) 및 명령버스 (7) 를 포함하지만, 명령버스 (7) 는 데이터 및 명령이 시분할 방식으로 데이터 버스를 통해 전송되는 효과를 변경함으로서 생략될 수 있다. 더욱이, RAM (4) 은 보호 영역을 포함할 수 있고, 명령이 RAM 으로부터 인출되도록 구성될 수도 있다.
상술한 바와 같이, 본 발명의 제 1 실시예에 따르면, 액세스 검출수단은 명령이 보호 영역에 액세스하는 명령인 지의 여부를 판정한다. 명령이 보호 영역에 액세스하는 명령인 것으로 검출된 경우, 비교 수단은 명령이 보호 영역을 액세스하는 것이 가능한 메모리 어드레스로부터 출력된 명령인 지를 판정한다. 명령이 보호 영역에 액세스하는 것이 불가능한 메모리 영역으로부터 출력된 명령인 것으로 판정된 경우, 명령은 부정 액세스로 간주되고, 억제 신호가 출력되어 메모리 액세스는 억제 수단에 의해서 억제된다. 따라서, 보호 영역에 대한 부정 액세스가 억제되고, 결과적으로, 보호 영역에 저장된 데이터는 보호될 수 있다. 즉, 보호 능력의 향상이 성취될 수 있다. 따라서, 메모리간 데이터를 전송하는 명령을 포함하여, 메모리를 액세스하는 모든 명령에 대해 액세스가 부정 액세스인 지를 판별하기 때문에, 보호 영역의 데이터를 직접 독출하는 대신에, 보호 영역의 데이터의 내용을 직접 인식하기 위해, 보호 영역의 데이터에 대해 임의의 연산 동작을 실행하는 것은 더 이상 불가능하다.
더욱이, 본 발명의 제 2 실시예에 따르면, 액세스 검출수단은 명령이 보호 영역으로 분기하는 명령인 지를 판별한다. 명령이 보호 영역으로 분기하는 명령으로 분기하는 명령인 것으로 검출된 경우, 비교 수단은 명령이 보호 영역으로 분기하는 것이 가능한 메모리 어드레스로부터 독출된 명령인 지를 판별한다. 명령이 보호 영역으로 분기하는 것이 불가능한 메모리 어드레스로부터 독출된 명령으로 판정된 경우, 명령은 부정 명령으로 간주되어, 억제 신호가 출력되어 분기 명령의 실행이 억제 수단에 의해서 억제된다. 따라서, 보호 영역에 대한 부정 분기가 억제되고, 결과적으로 보호 영역에 저장된 서브 프로그램은 보호될 수 있다. 따라서, 보호 영역의 명령 프로그램은 외부로부터의 부정 액세스에 의해서 불필요하게 실행되는 것으로부터 보호될 수 있고, 결과적으로 명령 프로그램을 해독하기 위한 제 3 자에 의한 부정 액세스를 방지하는 것이 가능하다.
본 발명을 특정 실시예를 참조하여 도시하고 설명했다. 그러나, 본 발명은 설명된 구조의 세부 사항에 한정된 것은 아니고 첨부된 청구항의 범주내에서 변경 및 수정이 이루어질 수도 있다.
상기한 본발명에 따르면, 메모리의 보호영역으로의 액세스를 검출함으로써 부정 액세스를 억제하여 보호되어야 하는 프로그램이나 데이터가 외부로 누출되는 것을 방지하는 메모리 액세스 제어회로가 제공된다.

Claims (6)

  1. 메모리 상의 보호영역으로의 액세스를 검출함으로써 부정 액세스를 억제하기 위한 메모리 액세스 제어회로로서,
    실행될 명령이 저장된 메모리 위치를 나타내는 명령인출 어드레스를 유지하는 제 1 어드레스 유지수단;
    상기 보호영역의 어드레스를 유지하는 제 2 어드레스 유지수단;
    상기 보호영역으로 액세스하도록 허락된 명령의 메모리 위치를 나타내는 명령인출 어드레스를 유지하는 제 3 어드레스 유지수단;
    상기 메모리로부터 독출된 명령의 해독 결과로부터 얻어진 상기 독출된 명령의 액세스 목적지의 어드레스를 상기 제 2 어드레스 유지수단에 유지된 상기 어드레스와 비교하여, 상기 독출된 명령이 상기 보호영역으로 액세스하는 명령인지 여부를 판별하는 액세스 검출수단;
    상기 액세스 검출수단이 상기 독출된 명령이 상기 보호영역으로 액세스하는 명령이라고 검출하는 경우에는 상기 제 1 어드레스 유지수단에 유지된 상기 명령인출 어드레스를 상기 제 3 어드레스 유지수단에 유지된 상기 명령인출 어드레스와 비교하여, 상기 독출된 명령이 상기 보호영역으로 액세스하도록 허락되지 않은 메모리 어드레스로부터 독출된 명령인 경우에는 억제 신호를 출력하는 비교수단; 및
    상기 억제신호에 응답하여 메모리 액세스를 억제하는 액세스 억제수단을 구비하는 것을 특징으로 하는 메모리 액세스 제어회로.
  2. 제 1 항에 있어서, 상기 억제수단은 상기 독출된 명령을 해독하기 위한 명령 레지스터로부터 상기 독출된 명령을 수신하고 상기 독출된 명령이 메모리 독출명령인 경우 상기 독출된 명령이 메모리 독출명령이라는 것을 나타내는 제어신호를 출력하는 명령 해독기 및 상기 제어신호를 정상적으로 제어회로에 공급하기 위하여 상기 제어신호를 수신하고 상기 억제신호가 출력되는 경우 상기 제어신호를 상기 제어회로에 공급하는 것을 억제하는 게이트회로를 구비하고,
    상기 제어회로가 상기 게이트회로를 통하여 상기 제어신호를 수신하는 경우 상기 제어회로는 메모리 독출신호를 출력하고, 상기 제어회로가 상기 게이트회로를 통하여 상기 제어신호를 수신하지 않는 경우 상기 제어회로는 상기 메모리 독출신호를 출력하지 않는 것을 특징으로 하는 메모리 액세스 제어회로.
  3. 메모리 상의 보호영역으로의 액세스를 검출함으로써 부정 액세스를 억제하기 위한 메모리 액세스 제어회로로서,
    실행될 명령이 저장된 메모리 위치를 나타내는 명령인출 어드레스를 유지하는 제 1 어드레스 유지수단;
    상기 보호영역의 어드레스를 유지하는 제 2 어드레스 유지수단;
    상기 보호영역으로 분기하도록 허락된 명령의 메모리 위치를 나타내는 명령인출 어드레스를 유지하는 제 3 어드레스 유지수단;
    상기 메모리로부터 독출된 명령의 해독 결과로부터 얻어진 상기 독출된 명령의 분기 목적지의 어드레스를 상기 제 2 어드레스 유지수단에 유지된 상기 어드레스와 비교하여, 상기 독출된 명령이 상기 보호영역으로 분기하는 명령인지 여부를 판별하는 액세스 검출수단;
    상기 액세스 검출수단이 상기 독출된 명령은 상기 보호영역으로 분기하는 명령이라고 검출하는 경우에는 상기 제 1 어드레스 유지수단에 유지된 상기 명령인출 어드레스를 상기 제 3 어드레스 유지수단에 유지된 상기 명령인출 어드레스와 비교하여, 상기 독출된 명령이 상기 보호영역으로 분기하도록 허락되지 않은 메모리 어드레스로부터 독출된 명령인 경우에는 억제신호를 출력하는 비교수단; 및
    상기 억제신호에 응답하여 상기 분기 명령의 실행을 억제하는 액세스 억제수단을 구비하는 것을 특징으로 하는 메모리 액세스 제어회로.
  4. 제 3 항에 있어서, 상기 억제수단은 상기 억제신호에 응답하여 내부 리셋신호를 발생시키는 제어회로를 구비하는 것을 특징으로 하는 메모리 액세스 제어회로.
  5. 제 3 항에 있어서, 상기 억제수단은 상기 독출된 명령을 해독하기 위한 명령 레지스터로부터 상기 독출된 명령을 수신하고 상기 독출된 명령이 분기 명령인 경우 상기 독출된 명령은 분기 명령이라는 것을 나타내는 제어신호를 출력하는 명령 해독기를 구비하고,
    상기 명령 해독기는 또한 상기 억제신호를 수신하여 프로그램 카운터의 내용을 갱신하기 위한 제어신호를 마스크함으로써 상기 프로그램 카운터가 정상적인 비분기의 경우로서 증가되는 것을 특징으로 하는 메모리 액세스 제어회로.
  6. 메모리 상의 보호영역으로의 액세스를 검출함으로써 부정 액세스를 억제하기 위한 메모리 액세스 제어회로로서,
    실행될 명령이 저장된 메모리 위치를 나타내는 명령인출 어드레스를 유지하는 제 1 어드레스 위치;
    상기 보호영역에 대응하는 어드레스들의 세트를 유지하는 제 1 어드레스 테이블 영역;
    상기 보호영역으로 액세스하도록 허락된 명령들의 메모리 위치들을 포함하는 명령인출 어드레스들의 세트를 유지하는 제 2 어드레스 테이블 영역;
    상기 메모리로부터 독출된 명령의 해독 결과로부터 얻어진 상기 독출된 명령의 액세스 목적지의 어드레스를 상기 제 어드레스 테이블 영역에 유지된 상기 어드레스들과 비교하여, 상기 독출된 명령이 상기 보호영역으로 액세스하는 명령인지 여부를 판별하는 액세스 검출수단;
    상기 액세스 검출수단이 상기 독출된 명령은 상기 보호영역으로 액세스하는 명령이라고 검출하는 경우에는 상기 제 1 어드레스 위치에 유지된 상기 명령인출 어드레스를 상기 제 2 어드레스 테이블 영역에 유지된 상기 명령인출 어드레스와 비교하여, 상기 독출된 명령이 상기 보호영역으로 액세스하도록 허락되지 않은 메모리 어드레스로부터 독출된 명령인 경우에는 억제 신호를 출력하는 비교수단; 및
    상기 억제신호에 응답하여 메모리 액세스를 억제하는 액세스 억제수단을 구비하는 것을 특징으로 하는 메모리 액세스 제어회로.
KR1019980004485A 1997-02-14 1998-02-14 메모리액세스제어회로 KR100319677B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP97-30385 1997-02-14
JP9030385A JPH10228421A (ja) 1997-02-14 1997-02-14 メモリアクセス制御回路

Publications (2)

Publication Number Publication Date
KR19980071365A KR19980071365A (ko) 1998-10-26
KR100319677B1 true KR100319677B1 (ko) 2002-03-08

Family

ID=12302439

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980004485A KR100319677B1 (ko) 1997-02-14 1998-02-14 메모리액세스제어회로

Country Status (5)

Country Link
US (1) US6101586A (ko)
EP (1) EP0859319A1 (ko)
JP (1) JPH10228421A (ko)
KR (1) KR100319677B1 (ko)
CN (1) CN1145885C (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790323B2 (ja) 1997-04-16 2006-06-28 株式会社ルネサステクノロジ データ転送制御装置、マイクロコンピュータ及びデータ処理システム
JPH11238016A (ja) * 1998-02-23 1999-08-31 Nec Corp メモリ保護方法及び装置
DE19846676C1 (de) 1998-10-09 2000-03-02 Siemens Ag Verfahren zur Absicherung von Einsprungsadressen
WO2000034871A1 (fr) * 1998-12-07 2000-06-15 Sony Corporation Ordinateur, support enregistre comportant un programme de verification de la validite des adresses et procede de verification de la validite des adresses
US6488581B1 (en) * 1999-06-22 2002-12-03 Igt Mass storage data protection device for a gaming machine
CN100385412C (zh) * 1999-10-26 2008-04-30 华硕电脑股份有限公司 存储器模组控制装置
US6615324B1 (en) 2000-01-07 2003-09-02 Cygnal Integrated Products, Inc. Embedded microprocessor multi-level security system in flash memory
US6643751B2 (en) * 2000-03-20 2003-11-04 Texas Instruments Incorporated System and method for limited access to system memory
US7171542B1 (en) * 2000-06-19 2007-01-30 Silicon Labs Cp, Inc. Reconfigurable interface for coupling functional input/output blocks to limited number of i/o pins
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US20050066178A1 (en) * 2000-07-31 2005-03-24 Rowe Vernon E. Method and apparatus for controlling access to memory
JP4678084B2 (ja) * 2000-09-29 2011-04-27 ソニー株式会社 メモリ装置およびメモリアクセス制限方法
DE10146516A1 (de) * 2001-09-21 2003-04-24 Infineon Technologies Ag Programmgesteuerte Einheit
DE10159165B4 (de) * 2001-12-03 2007-02-08 Agilent Technologies, Inc. (n.d.Ges.d.Staates Delaware), Palo Alto Vorrichtung zum Messen und/oder Kalibrieren eines Testkopfes
JP2004013556A (ja) * 2002-06-07 2004-01-15 Matsushita Electric Ind Co Ltd プロセッサ装置、コンパイル装置及びその方法
US7743257B2 (en) * 2002-06-27 2010-06-22 Nxp B.V. Security processor with bus configuration
US7266658B2 (en) 2002-09-12 2007-09-04 International Business Machines Corporation System, method, and computer program product for prohibiting unauthorized access to protected memory regions
JP4347582B2 (ja) * 2003-02-04 2009-10-21 パナソニック株式会社 情報処理装置
EP1548601A1 (fr) * 2003-12-23 2005-06-29 Stmicroelectronics SA Contrôle d'accès mémoire dans un appareil électronique
JP4669666B2 (ja) * 2004-03-19 2011-04-13 東芝キヤリア株式会社 マイクロコンピュータ
US20050216713A1 (en) * 2004-03-25 2005-09-29 International Business Machines Corporation Instruction text controlled selectively stated branches for prediction via a branch target buffer
WO2006040798A1 (ja) * 2004-10-08 2006-04-20 Renesas Technology Corp. 半導体集積回路装置および電子システム
US7164611B2 (en) * 2004-10-26 2007-01-16 Micron Technology, Inc. Data retention kill function
DE102004057259A1 (de) * 2004-11-26 2006-06-01 Robert Bosch Gmbh Manipulationsgeschütztes Mikrocontrollersystem
US20070021193A1 (en) * 2005-06-24 2007-01-25 Konami Corporation Data protection system and game machine
US7739517B2 (en) * 2005-03-31 2010-06-15 Intel Corporation Hardware-based authentication of a software program
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
JP2007052481A (ja) * 2005-08-15 2007-03-01 Matsushita Electric Ind Co Ltd Icカード用lsi
US7748037B2 (en) * 2005-09-22 2010-06-29 Intel Corporation Validating a memory type modification attempt
US20070067590A1 (en) * 2005-09-22 2007-03-22 Uday Savagaonkar Providing protected access to critical memory regions
US8099574B2 (en) 2006-12-27 2012-01-17 Intel Corporation Providing protected access to critical memory regions
KR20080067774A (ko) * 2007-01-17 2008-07-22 삼성전자주식회사 허가되지 않은 메모리 접근으로부터 비밀 영역을 보호하기위한 방법 및 시스템
GB2448149B (en) 2007-04-03 2011-05-18 Advanced Risc Mach Ltd Protected function calling
GB2448151B (en) 2007-04-03 2011-05-04 Advanced Risc Mach Ltd Memory domain based security control within data processing systems
EP1978447B1 (en) 2007-04-05 2011-02-16 STMicroelectronics (Research & Development) Limited Integrated circuit with restricted data access
JP4562759B2 (ja) * 2007-09-03 2010-10-13 京楽産業.株式会社 アクセス制御装置、アクセス制御方法およびアクセス制御プログラム
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US7895404B2 (en) 2008-02-14 2011-02-22 Atmel Rousset S.A.S. Access rights on a memory map
JP5200686B2 (ja) * 2008-06-18 2013-06-05 大日本印刷株式会社 情報処理装置、正常処理判別方法、及び情報処理プログラム
WO2009156884A1 (en) * 2008-06-27 2009-12-30 Nxp B.V. Method of interruption of meta language program code execution
DE102008048066B4 (de) * 2008-09-19 2018-02-01 Texas Instruments Deutschland Gmbh Zugriffssteuerschaltung zur Verwendung mit einer Überwachungs-Logikschaltungsanordnung in einem Verfahren zum Schutz von Software für eingebettete Anwendungen vor unerlaubtem Zugriff
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
US20110258421A1 (en) * 2010-04-19 2011-10-20 International Business Machines Corporation Architecture Support for Debugging Multithreaded Code
US10210349B2 (en) 2012-02-08 2019-02-19 Arm Limited Data processing apparatus and method using secure domain and less secure domain
US9116711B2 (en) 2012-02-08 2015-08-25 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
GB2499287A (en) * 2012-02-08 2013-08-14 Advanced Risc Mach Ltd Exception handling in data processing with different security domains
US9477834B2 (en) 2012-02-08 2016-10-25 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
US9213828B2 (en) 2012-02-08 2015-12-15 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
GB2513727B (en) 2012-06-27 2015-06-24 Nordic Semiconductor Asa Memory protection
US10061940B2 (en) * 2013-07-09 2018-08-28 Andes Technology Corporation Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event
CN104636275B (zh) * 2014-12-30 2018-02-23 北京兆易创新科技股份有限公司 一种mcu芯片的信息保护方法和装置
JP6578814B2 (ja) * 2015-08-20 2019-09-25 株式会社ソシオネクスト プロセッサ及びプロセッサシステム
CN107451493A (zh) * 2016-05-30 2017-12-08 珠海市微半导体有限公司 Risc架构保密电路及其方法
DE102017208818A1 (de) 2017-05-24 2018-11-29 Wago Verwaltungsgesellschaft Mbh Initialisierung von Datenbusteilnehmern
GB2570692B (en) * 2018-02-02 2020-09-09 Advanced Risc Mach Ltd Controlling guard tag checking in memory accesses
JP7123887B2 (ja) 2019-09-24 2022-08-23 株式会社東芝 データ転送制御装置、データ転送制御システム及びデータ転送制御方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4087856A (en) * 1976-06-30 1978-05-02 International Business Machines Corporation Location dependence for assuring the security of system-control operations
JPS5781650A (en) * 1980-11-07 1982-05-21 Mitsubishi Electric Corp Data processor
JPS5783850A (en) * 1980-11-12 1982-05-25 Mitsubishi Electric Corp Data processing device
US4521852A (en) * 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
US4603381A (en) * 1982-06-30 1986-07-29 Texas Instruments Incorporated Use of implant process for programming ROM type processor for encryption
US4521853A (en) * 1982-06-30 1985-06-04 Texas Instruments Incorporated Secure microprocessor/microcomputer with secured memory
US4590552A (en) * 1982-06-30 1986-05-20 Texas Instruments Incorporated Security bit for designating the security status of information stored in a nonvolatile memory
JPS62204345A (ja) * 1986-03-05 1987-09-09 Oki Electric Ind Co Ltd マイクロコンピユ−タ
JPH02148152A (ja) * 1988-11-29 1990-06-07 Mitsubishi Electric Corp マイクロコンピュータ
DE4115152C2 (de) * 1991-05-08 2003-04-24 Gao Ges Automation Org Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung
WO1993010498A1 (en) * 1991-11-12 1993-05-27 Microchip Technology Inc. Security for on-chip microcontroller memory
JPH05265864A (ja) * 1992-03-17 1993-10-15 Fujitsu Ltd メモリ管理回路及びメモリ管理回路付きのプロセッサユニット
JPH0696235A (ja) * 1992-09-16 1994-04-08 Mitsubishi Electric Corp シングルチップマイクロコンピュータ
JPH06202957A (ja) * 1992-12-29 1994-07-22 Casio Comput Co Ltd メモリ保護装置
JP3520102B2 (ja) * 1993-12-28 2004-04-19 株式会社東芝 マイクロコンピュータ
JPH09114743A (ja) * 1995-10-16 1997-05-02 Nec Corp シングルチップ・マイクロコンピュータ
JPH09160831A (ja) * 1995-12-08 1997-06-20 Hitachi Ltd 情報処理装置

Also Published As

Publication number Publication date
CN1145885C (zh) 2004-04-14
EP0859319A1 (en) 1998-08-19
JPH10228421A (ja) 1998-08-25
US6101586A (en) 2000-08-08
CN1196524A (zh) 1998-10-21
KR19980071365A (ko) 1998-10-26

Similar Documents

Publication Publication Date Title
KR100319677B1 (ko) 메모리액세스제어회로
US10095890B2 (en) Secure processor and a program for a secure processor
US6910094B1 (en) Secure memory management unit which uses multiple cryptographic algorithms
KR100970040B1 (ko) 보안키 보호 방법, 보안키 보호 방법에 사용되는 실행 전용 루틴을 구비한 컴퓨터 판독가능 저장 매체 및 보안 단말기
US8838950B2 (en) Security architecture for system on chip
US7444668B2 (en) Method and apparatus for determining access permission
US7266842B2 (en) Control function implementing selective transparent data authentication within an integrated system
US7681044B2 (en) Secure processor and system
US7568112B2 (en) Data access control method for tamper resistant microprocessor using cache memory
US6397301B1 (en) Preventing access to secure area of a cache
US20030014653A1 (en) Memory device with data security in a processor
CN106529300B (zh) 半导体装置
KR20040101342A (ko) 집적 시스템 내에서의 초기화 방법, 관리 방법, 업데이트방법 및 복원 방법
US7523279B2 (en) Information processing apparatus for accessing memory spaces including a user memory space and a secure memory space
US20050257016A1 (en) Digital signal controller secure memory partitioning
JP4591163B2 (ja) バスアクセス制御装置
JP5316592B2 (ja) セキュアプロセッサ用プログラム
US20040186947A1 (en) Access control system for nonvolatile memory
JP5365664B2 (ja) セキュアプロセッサ
KR100327641B1 (ko) 부정한기입으로부터메모리를보호하는메모리어드레스관리회로
JP2002244757A (ja) 半導体回路
JP4739206B2 (ja) 2つのメモリー間でのセキュリティデータの転送
JP5494389B2 (ja) 電子制御装置
JP2011150457A (ja) 情報処理装置およびメモリアクセス制御方法
JP2010134572A (ja) セキュリティを実現する装置、および方法

Legal Events

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

Payment date: 20041210

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee