KR20030055150A - 마이크로프로세서 및 마이크로프로세서의 처리 방법 - Google Patents

마이크로프로세서 및 마이크로프로세서의 처리 방법 Download PDF

Info

Publication number
KR20030055150A
KR20030055150A KR1020020083380A KR20020083380A KR20030055150A KR 20030055150 A KR20030055150 A KR 20030055150A KR 1020020083380 A KR1020020083380 A KR 1020020083380A KR 20020083380 A KR20020083380 A KR 20020083380A KR 20030055150 A KR20030055150 A KR 20030055150A
Authority
KR
South Korea
Prior art keywords
address
command
test
microprocessor
reset
Prior art date
Application number
KR1020020083380A
Other languages
English (en)
Other versions
KR100543152B1 (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 KR20030055150A publication Critical patent/KR20030055150A/ko
Application granted granted Critical
Publication of KR100543152B1 publication Critical patent/KR100543152B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Microcomputers (AREA)
  • Stored Programmes (AREA)

Abstract

테스트 기능이 내장된(built-in test) 마이크로프로세서에 관한 것으로, 이 마이크로프로세서는, 테스트 프로그램의 테스트 어드레스를 보유하기 위한 레지스터; 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하기 위한 다음 어드레스 생성 로직; 테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 상기 테스트 어드레스 중 어느 하나를 선택하기 위한 제1 멀티플렉서; 리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 상기 제1 멀티플렉서에 의해 선택된 어드레스 중 어느 하나를 선택하기 위한 제2 멀티플렉서; 및 상기 제2 멀티플렉서에 의해 선택된 어드레스를 보유하고, 상기 보유된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 상기 다음 어드레스 생성 로직에 출력하기 위한 프로그램 카운터를 포함한다.

Description

마이크로프로세서 및 마이크로프로세서의 처리 방법{MICROPROCESSOR AND PROCESSING METHOD OF MICROPROCESSOR}
본 출원은 그 전체 내용이 여기에 참고로 포함된 2001년 12월 26일자로 출원된 일본 특허 출원 P2001-394128을 근거로 한 것이며 이 출원의 우선권을 주장한다.
본 발명은 마이크로프로세서의 리셋 이후에 수행되는 테스트 프로그램에 따라 실제 기계에서 내부 기능을 검증하는 마이크로프로세서 및 그 마이크로프로세서의 처리 방법에 관한 것이다.
종래의 마이크로프로세서에서, 부트스트랩(bootstrap)은 마이크로프로세서가 리셋된 이후에 수행된다. 이러한 부트스트랩은 각각의 마이크로프로세서에서 미리 준비된 부트 어드레스가 프로그램 카운터에 설정되는 방식으로 수행되고, 이러한 부트 어드레스에 기초하여, 부트스트랩 프로그램은 메모리, 예컨대 부트 ROM으로부터 마이크로프로세서에 로드된다. 따라서, 마이크로프로세서의 리셋 이후에 수행되고, 부트 어드레스에 종속되는 부트스트랩 프로그램은 각각의 마이크로프로세서에 대해 고정적으로 설정된다. 또한, 부트 어드레스에 기초하여 액세스되는 메모리의 속성 역시 고정된다.
상술한 바와 같은 종래의 마이크로프로세서의 발전 평가에 따르면, 몇몇의 경우에 있어서, 상술한 바와 같은 부트스트랩이 마이크로프로세서의 리셋 이후에 수행되더라도, 정상 동작 상태가 마이크로프로세서의 기능에서 발생되는 고장으로 까지 이어지지는 않는다. 그러한 경우에 있어서, 종래의 마이크로프로세서는 리셋 이후, 프로그램 카운터에 부트 어드레스 대신 다른 어드레스를 설정하는 메카니즘은 갖지 않으며, 따라서 이는 마이크로프로세서의 기능을 검증하는 것을 불가능하게 만든다. 특히, 프로그램 카운터에서 그것의 리셋 이후에 실제 기계에서 마이크로프로세서의 기능을 검증하기 위한 목적으로 준비된 테스트 프로그램을 액세스하기 위해, 부트 어드레스 대신 테스트 어드레스를 설정하고, 설정된 테스트 어드레스에 기초하여 수행되는 테스트 프로그램을 액세스함으로써 마이크로프로세서의 다양한 독립적인 기능을 독립적으로 검증하는 것이 불가능했다.
상술한 바와 같이, 종래 마이크로프로세서는 그것의 리셋 이후에 프로그램 카운터에 부트 어드레스 이외의 어드레스를 설정하는 것은 불가능했고, 따라서 이는 그것의 리셋 이후에 부트스트랩 이외의 프로그램을 수행하는 것을 불가능하게 만들었다. 그러므로, 마이크로프로세서에서 고장이 발생하는 경우, 마이크로프로세서의 리셋 이후에 테스트 프로그램을 수행함으로써 마이크로프로세서의 기능을 검증하는 것이 불가능했다.
본 발명의 제1 양태는, a) 테스트 프로그램의 테스트 어드레스를 보유하는 레지스터; b) 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하기 위한 다음 어드레스 생성 로직; c) 테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 상기 테스트 어드레스중 어느 하나를 선택하는 제1 멀티플렉서; d) 리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 제1 멀티플렉서에 의해 선택된 어드레스중 어느 하나를 선택하는 제2 멀티플렉서; 및 e) 제2 멀티플렉서에 의해 선택된 어드레스를 보유하고, 보유된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 다음 어드레스 생성 로직에 출력하는 프로그램 카운터를 포함하는 테스트 기능이 내장된(built-in test) 마이크로프로세서를 제공하는 것이다.
본 발명의 제2 양태는, a) 마이크로프로세서의 정상 동작시에 실행되는 커맨드를 저장하고, 테스트 동작 모드에서 테스트 프로그램을 저장하는 캐시 메모리; b) 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하는 다음 어드레스 생성 로직; c) 테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 테스트 어드레스 중 어느 하나를 상기 캐시 메모리의 선두 어드레스로 선택하는 제1 멀티플렉서; d) 리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 제1 멀티플렉서에 의해 선택된 어드레스 중 어느 하나를 선택하는 제2 멀티플렉서; 및 e) 제2 멀티플렉서에 의해 선택된 어드레스를 보유하고, 보유된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 다음 어드레스 생성 로직에 출력하는 프로그램 카운터를 포함하는 테스트 기능이 내장된 마이크로프로세서를 제공하는 것이다.
본 발명의 제3 양태는, a) 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하는 단계; b) 테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 테스트 프로그램의 테스트 어드레스 중 어느 하나를 선택하는 단계; c) 리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 선택된 어드레스 중 어느 하나를 선택하는 단계; 및 d) 리셋 신호에 기초하여 선택된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 출력하는 단계를 포함하는 테스트 기능이 내장된 마이크로프로세서의 처리 방법을 제공하는 것이다.
본 발명의 제4 양태는, a) 정상 동작시에 실행될 커맨드를 캐시 메모리에 저장하고, 테스트 동작 모드에서 테스트 프로그램을 캐시 메모리에 저장하는 단계; b) 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하는 단계; c) 테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 테스트 어드레스중 어느 하나를 캐시 메모리의 선두 어드레스로 선택하는 단계; d) 리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 테스트 모드 신호에 기초하여 선택된 어드레스 중 어느 하나를 선택하는 단계; 및 e) 리셋 신호에 기초하여 선택된어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 출력하는 단계를 포함하는 테스트 기능이 내장된 마이크로프로세서의 처리 방법을 제공하는 것이다.
도 1은 본 발명의 제1 실시예에 따른 마이크로프로세서의 구성을 도시하는 도면.
도 2는 도 1에 도시된 코어 프로세서 내측에 있는 PC 유닛의 구성을 도시하는 도면.
도 3은 본 발명의 제1 실시예에 따른 부트 ROM의 어드레스 공간을 도시하는 도면.
도 4는 본 발명의 제1 실시예에 따른 마이크로프로세서의 처리 방법을 설명하는 순서도.
도 5는 본 발명의 제2 실시예에 따른 마이크로프로세서의 구성을 도시하는 도면.
도 6은 도 5에 도시된 코어 프로세서 내측에 있는 PC 유닛의 구성을 도시하는 도면.
도 7은 본 발명의 제2 실시예에 따른 마이크로프로세서의 처리 방법을 설명하는 순서도.
<도면의 주요 부분에 대한 부호의 설명>
20 : 마이크로프로세서
21 : 코어 프로세서
22 : ROM 제어기
23a, 23b, 23c : 주변 장치
25 : 부트 ROM
26 : 외부 장치
<실시예>
첨부 도면을 참조하여 본 발명의 여러 실시예를 설명한다. 도면에 대한 다음의 설명에서 동일 혹은 유사 부분에는 동일 혹은 유사한 참조부호가 사용된다. 그러나, 도면은 개략적인 것이므로 각각의 측정 규모는 실제로는 상이할 수도 있다는 점에 주목한다.
(제1 실시예)
도 1에 도시된 바와 같이, 본 발명의 제1 실시예에 따른 마이크로프로세서 (20)는 마이크로프로세서(20)의 제어 중심이 될 코어프로세서(21); 마이크로프로세서(20)와 부트 ROM(25)간의 메모리 액세스를 제어하기 위한 ROM 콘트롤러(22); 다양한 기능을 갖는 복수의 주변 장치(23a, 23b, 23c); 및 코어 프로세서(21), ROM 콘트롤러(22) 및 주변 장치(23a, 23b, 23c)를 접속하기 위한 시스템 버스(24)를 포함하고 있다. 또한, 마이크로프로세서(20)의 외측에는 ROM 콘트롤러(22)에 접속되는 부트 ROM(25)과; 주변 장치(23a, 23b, 23c)에 접속되는 외부 장치(26)가 제공된다. 이러한 구조에 있어서, 마이크로프로세서(20)가 정상 동작 모드로 리셋되는 경우, 부트 ROM(25)은 ROM 콘트롤러(22)의 제어하에 액세스된다. 이후, 부트 ROM(25)에 저장된 부트스트랩 프로그램(31)이 코어 프로세서(21)내로 판독되어 부트스트랩이 수행된다.
도 2는 도 1에 도시된 코어 프로세서(21)내 PC 유닛(10)의 구조를 나타내는 도면이다. PC 유닛(10)은 코어 프로세서(21)내 커맨드 어드레스의 전반적 제어를 수행하며, 도 2에 도시된 바와 같이, 프로그램 카운터(PC)(11), 다음 어드레스 생성로직(12), 리셋 제어 멀티플렉서(13), 리셋 모드 멀티플렉서(14) 및 테스트 모드 어드레스 보유 레지스터(RA)(15)를 포함하고 있다.
프로그램 카운터(11)는 다음에 수행될 커맨드의 커맨드 어드레스를 보유한다. 보유된 커맨드 어드레스는 다음에 실행될 커맨드를 액세스하기 위한 구조를 갖는 다음 어드레스 생성 로직(12)으로 전달된다. 프로그램 카운터(11)로부터 전달되는, 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음 어드레스 생성 로직(12)은 다음에 실행 예정인 커맨드의 커맨드 어드레스를 생성한다. 생성된 커맨드 어드레스는 리셋 제어 멀티플렉서(13)로 전달된다. 리셋 제어 멀티플렉서(13)는 다음 어드레스 생성 로직(12)으로부터 전달된 커맨드 어드레스 혹은 리셋 모드 멀티플렉서(14)에서 선택된 어드레스를 수신하며, 외부로부터 전달되는 마이크로프로세서(20)의 리셋 신호에 기초하여 이들 어드레스 중 어느 한 어드레스를 선택한다. 선택된 어드레스는 프로그램 카운터(11)에 전달된다. 리셋 모드 멀티플렉서(14)는 정상 동작 모드에서 마이크로프로세서(20)의 리셋 동안 부트스트랩을 개시하기 위한 부트 어드레스 혹은 테스트 모드 어드레스 보유 레지스터(15)에 보유되고 있는 테스트 어드레스를 수신하며, 외부로부터 전달된 테스트 모드 신호에 기초하여 이들 어드레스들 중 어느 하나의 어드레스를 선택한다. 선택된 어드레스는 리셋 제어 멀티플렉서(13)에 전달된다. 테스트 모드 어드레스 보유 레지스터(15)는 테스트 동작 모드에서의 마이크로프로세서의 테스트에 앞서 외부로부터 전달된 테스트 프로그램의 테스트 어드레스를 미리 설정하고 테스트 어드레스를 보유하여 설정한다.
도 3에 도시한 바와 같이, 부트 ROM(25)은 부트스트랩의 프로그램(31)과 테스트 프로그램(32)을 저장한다. 테스트 프로그램(32)은 도 3에 도시한 바와 같이 부트스트랩의 프로그램(31)이 저장되는 부트 ROM(25)내 나머지 이용가능한 공간에 저장된다. 부트스트랩의 프로그램(31)의 선두 어드레스가 되는 부트 어드레스는 부트 ROM(25)의 어드레스 공간에 고정된 값으로 설정된다. 따라서 부트 어드레스는 리셋 모드 멀티플렉서(14)로 전달된다. 테스트 프로그램(32)은 복수의 리셋 프로그램(32a,32b,32c)으로 이루어진다. 각각의 테스트 프로그램(32a,32b,32c)과 같은 다양한 테스트 프로그램들은, 예를 들어, 연산 유닛의 기능에서 부가 처리를 테스트하기 위한 테스트 프로그램; 연산 유닛의 전체 기능을 테스트하기 위한 테스트 프로그램; 메모리와 기능 블록 등을 포함하는 주변 장치(23a,23b,23c...)들의 일부 혹은 전체를 테스트하기 위한 테스트 프로그램을 포함하고 있는 것으로 한다. 각각의 프로그램들(32a,32b,32c)을 실행하는 경우, 부트 ROM(25)의 어드레스 공간에서 프로그램들에 대응하는 각각의 선두 어드레스들인 테스트 어드레스1, 테스트 어드레스2, 테스트 어드레스3은 외부로부터 테스트 모드 어드레스 참조 레지스터(15)로 전달되어 그 안에 보유된다.
부트스트랩의 프로그램(31) 및 테스트 프로그램(32)을 보유한 부트(boot) ROM(25)은 테스트 프로그램(32)의 내용에 따라 적절하게 다른 부트 ROM으로 대체될수도 있다. 게다가, 테스트만을 실행할 경우, 부트 ROM(25)은 테스트 프로그램(32)만을 저장하는 메모리로 대체될 수도 있다.
다음으로, 도 4는 본 발명의 제1 실시예에 따른 마이크로프로세서(30)의 처리 방법을 도시한 흐름도이다.
(a) 우선, 단계 S11에서, 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 커맨드가 페치되고 실행되며, 상기 커맨드 어드레스는 프로그램 카운터(11)에 보유되고, 다음에 실행될 커맨드의 커맨드 어드레스는 다음 어드레스 생성 로직(12)으로 전달된다. 다음 생성 로직(12)은 프로그램 카운터(11)로부터 전달된 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여 다음에 실행되기로 예정되어 있는 커맨드의 커맨드 어드레스를 생성한다.
(b) 다음으로, 단계 S12에서, 테스트 모드 신호에 기초하여, 리셋 모드 멀티플렉서(14)는 다음 어드레스들 부트스트랩 프로그램을 특정하기 위한 부트 어드레스; 및 테스트 프로그램의 테스트 어드레스 중 하나를 선택한다: . 구체적으로는, 부트 어드레스는 테스트 모드 신호의 논 어써트(non assert) 상태 동안 정상 동작 모드에서 마이크로프로세서의 리셋 후에 선택되고, 그 반면에 테스트 어드레스는 테스트 모드 신호의 어써트 상태 동안 테스트 동작 모드에서의 리셋 후에 선택된다.
(c) 다음으로, 단계 S13에서, 리셋 신호에 기초하여, 리셋 제어 멀티플렉서(13)는 다음 어드레스들인 다음에 실행되기로 예정된 커맨드의 커맨드 어드레스; 단계 S11에서 다음 어드레스 생성 로직 12에 의해 생성된 커맨드 어드레스; 및 리셋 모드 멀티플렉서(14)에 의해 선택된 어드레스 중 하나를 선택한다: . 구체적으로, 리셋 제어 멀티플렉서(13)는 정상 동작 모드 또는 테스트 동작 모드에서 마이크로프로세서의 리셋후에 테스트 모드 신호에 기초하여 선택된 어드레스를 선택하는 반면; 리셋 제어 멀티플렉서(13)는 리셋이 해제된 후 정상 동작시 다음에 실행되기로 예정된 커맨드의 커맨드 어드레스를 선택한다.
(d) 다음으로, 단계 S14에서, 프로그램 카운터(11)는 테스트 제어 멀티플렉서(13)에 의해 선택된 어드레스를 보유하고 이 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 다음 어드레스 생성 로직(12)에 출력한다. 여기서, 부트 어드레스가 프로그램 카운터(11)에 보유되어 있는 경우에, 부트 ROM(25)에 저장된 부트스트랩의 프로그램(31)은 보유된 부트 어드레스에 기초하여 코어 프로세서(21)에서 판독되고 부트스트랩이 실행된다. 한편, 테스트 어드레스가 프로그램 카운터(11)내에 보유되어 있을 때, 부트 ROM(25)에 저장된 테스트 프로그램(32)은 보유된 테스트 어드레스에 기초하여 코어 프로세서(21)에서 판독되고, 테스트 프로그램이 실행된다.
다음으로, 리셋이 해제된 후의 정상 동작 동안 및 테스트 동작 모드시의 리셋 동작 동안, 본 발명의 제1 실시예에 따라 마이크로프로세서(20)의 정상 동작 모드에서의 리셋 동작에 대해 각각 설명될 것이다.
테스트 모드 신호가 논 어써트 상태에 있을 때 정상 동작 모드에서의 리셋 동작에서, 리셋 신호는 어써트된 후 마이크로프로세서(20)에 전달된다. 마이크로프로세서(20)가 리셋될 때, 부트 어드레스는 리셋 모드 멀티플렉서(14)에 의해 선택된다. 선택된 부트 어드레스는 리셋 제어 멀티플렉서(13)에 의해 추가로 선택되고, 선택된 부트 어드레스는 프로그램 카운터(11)에 전달되어 보유된다. 다음으로, 이 프로그램 카운터(11)에 보유된 부트 어드레스에 기초하여, 부트 ROM(25)에 저장된 부트스트랩의 프로그램(31)이 실행될 코어 프로세서(21)에서 판독됨에 따라 부트스트랩이 실행된다.
리셋 신호가 어써트되고 마이크로프로세서의 리셋이 릴리즈된 후의 정상 동작에서, 다음 어드레스 생성 로직(12)에서 생성된 커맨드 어드레스는 리셋 제어 멀티플렉서(13)에 의해 선택된다. 선택된 커맨드 어드레스는 프로그램 카운터(11)에 전달되고 보유된다. 다음으로, 프로그램 카운터(11)에 보유된 커맨드 어드레스에 기초하여, 커맨드가 페치되고 실행된다. 이후, 또 다음에 실행될 커맨드의 커맨드 어드레스는 다음 어드레스 생성 로직(12)에서 생성되고, 커맨드 어드레스는 프로그램 카운터(11)에 전달되고 보유된다. 상술한 동작들은 반복되기 때문에 일련의 커맨드들이 실행된다.
테스트 동작 모드의 리셋 동작시, 테스트 모드 신호가 어써트 상태에 있는 경우, 첫번째로, 리셋 동작이 수행되기 전에, 리셋후에 실행될 테스트 프로그램의 선두 어드레스가 될 테스트 어드레스는 외부로부터 테스트 모드 어드레스 보유 레지스터(15)에 미리 전달되고 보유된다. 이러한 상태에서, 리셋 모드 멀티플렉서(14)에 테스트 모드 신호가 어써트되고 전달될 때, 테스트 모드 보유 레지스터(15)에 보유된 테스트 어드레스는 리셋 모드 멀티플렉서(14)에 의해 선택된다. 선택된 테스트 어드레스는 리셋 제어 멀티플렉서(13)에 전달된다. 이후, 리셋 신호가 리셋 제어 멀티플렉서(13)에 어써트되고 전달될 때, 테스트 어드레스는 리셋 제어 멀티플렉서(13)에 의해 선택된다. 선택된 테스트 어드레스는 프로그램 카운터에 전달되고 보유된다. 다음으로, 프로그램 카운터(11)에 보유된 테스트 어드레스에 기초하여, 부트 ROM(25)에 저장된 테스트 프로그램(32)은 코어 프로세서(21)에서 판독되고 실행된다. 따라서, 실행된 테스트 프로그램(32)의 내용에 따라, 마이크로프로세서의 기능이 테스트된다.
본 발명의 제1 실시예에 따른 마이크로프로세서에서, 마이크로프로세서의 리셋후 실제 기기내의 프로그램에 의해 마이크로프로세서의 개별적이면서 독립적인 기능을 독립적으로 검증할 수 있다.
(제2 실시예)
본 발명의 제2 실시예에 따른 마이크로프로세서(40)는 도 5에 나타난 바와 같이, 코어 프로세서(41)가 커맨드 캐시 메모리(42)를 포함한다는 점에서 제1 실시예에 따른 마이크로프로세서(20)와는 상이하다. 이 커맨드 캐시 메모리(42)는 정상 동작시 실행될 커맨드를 저장하고 테스트 동작 모드시 실행될 테스트 프로그램(32)을 저장한다. 커맨드 캐시 메모리(42)에는, 테스트 동작 모드시 커맨드 캐시 메모리(42)를 직접적으로 테스트하기 위한 DMT(direct memory test)를 수행할 수 있는 DMT 인터페이스(43)가 접속된다. 마이크로프로세서(40)는 마이크로프로세서(40) 외측에 제공된 테스터(27)가 DMT 인터페이스(43)에 접속되고, 커맨드 캐시 메모리(42)가 테스터(27)로부터 DMT 인터페이스(43)를 통해 액세스될 수 있는 구성을 갖는다.
도 6은 도 5에 나타난 코어 프로세서(41)의 내측에 있는 PC 유닛(51)의 구성을 나타낸 도면이다.
도 6의 PC 부(51)는 도 2에 도시된 PC 부(10)와 비교하여, 도 2의 테스트 모드 어드레스 보유 레지스터(15)를 사용하지 않고, 테스트 어드레스가 리셋 모드 멀티플렉서(52)에 고정값으로서 전달되고, 이 고정값으로서 전달된 부트 어드레스 또는 테스트 어드레스가 리셋 모드 멀티플렉서(52)에 의해 선택되고, 선택된 어드레스가 리셋 제어 멀티플렉서(13)로 전달된다. PC 부(51)의 기타 구성은 도 2에 도시된 PC 부(10)의 구성과 유사하다.
본 발명의 제2 실시예에 따른 마이크로프로세서(40)에서는, 도 6에 나타낸 바와 같이, 테스트 어드레스가 고정값으로서 리셋 모드 멀티플렉서(52)에 전달된다. 그러나, 도 2에 나타낸 바와 같이, 테스트 어드레스를 보유하기 위한 테스트 모드 어드레스 보유 레지스터(15)를 구비하도록 할 수도 있다.
다음으로, 도 7은 본 발명의 제2 실시예에 따른 마이크로프로세서(40)의 처리 방법을 설명하기 위한 순서도이다.
(a) 먼저, 단계 S21에서 테스트 동작 모드에서 실행될 테스트 프로그램(32)이 DMT 인터페이스(43)를 통해 외측에서 제공된 테스터(27)로부터 코어 프로세서(41) 내의 커맨드 캐시 메모리(42)의 소정의 어드레스 영역에 기록된 다음, 커맨드 캐시 메모리(42)의 검증을 수행된다. 테스트 동작 모드에서, DMT 인터페이스(43)는 커맨드 캐시 메모리(42)의 직접 메모리 테스트를 수행한다.
(b) 다음으로, 단계 S22에서 다음에 수행될 커맨드의 커맨드 어드레스에 기초한 커맨드를 인출하여 실행하며, 여기서 커맨드 어드레스는 프로그램 카운터(11) 내에 보유되어 있는 것이다. 그러면, 다음에 수행될 커맨드의 커맨드 어드레스가 다음 어드레스 생성 로직(12)에 전달된다. 다음 어드레스 생성 로직(12)은 프로그램 카운터(11)로부터 전달된 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여 다음에 실행 예정인 커맨드의 커맨드 어드레스를 생성한다.
(c) 다음으로, 단계 S23에서 리셋 모드 멀티플렉서(52)는 테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하기 위한 부트 어드레스와; 커맨드 캐시 메모리(42)의 선두 어드레스가 될 테스트 어드레스 중의 어느 하나를 선택한다. 구체적으로는, 부트 어드레스는 테스트 모드 신호의 논 어써트 상태 동안 정상 동작 모드에서 마이크로프로세서의 리셋 이후에 선택되고; 테스트 어드레스는 테스트 모드 신호의 어써트 상태 동안 테스트 동작 모드에서 마이크로프로세서의 리셋 이후에 선택된다.
(d) 다음으로, 단계 S24에서 리셋 제어 멀티플렉서(13)는 리셋 신호에 기초하여, 다음에 실행 예정인 커맨드의 커맨드 어드레스로서 단계 S11에서 다음 어드레스 생성 로직(12)에 의해 생성되는 커맨드 어드레스와; 리셋 모드 멀티플렉서(52)에 의해 선택된 어드레스 중의 어느 하나를 선택한다. 구체적으로는, 리셋 제어 멀티플렉서(13)는 정상 동작 모드 또는 테스트 동작 모드에서 마이크로프로세서의 리셋 이후에 테스트 모드 신호에 기초하여 선택된 어드레스를 선택하고; 리셋 제어 멀티플렉서(13)는 그 리셋 이후 정상 동작 모드에서 다음에 실행 예정인 커맨드의 커맨드 어드레스를 선택한다.
(e) 다음으로, 단계 S25에서 프로그램 카운터(11)는 리셋 제어 멀티플렉서(13)에 의해 선택된 어드레스를 보유하게 되며 이 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 다음 어드레스 생성 로직(12)에 출력한다. 여기서, 부트 어드레스가 프로그램 카운터(11) 내에 보유되어 있는 경우에는, 부트 ROM(25) 내에 저장된 부트스트랩의 프로그램(31)이 보유되어 있는 부트 어드레스에 기초하여 코어 프로세서(21)로 판독 출력되어 부트스트랩이 실행된다. 한편, 테스트 어드레스가 프로그램 카운터(11) 내에 보유되어 있는 경우에는, 단계 S21에서 커맨트 캐시 메모리(42) 내에 기록된 테스트 프로그램(32)이 보유되어 있는 테스트 어드레스에 기초하여 코어 프롯서(21)로 판독 출력되어 테스트 프로그램이 실행된다.
이하, 본 발명의 제2 실시예에 따른 마이크로프로세서(40)의 테스트 동작 모드에서의 리셋 동작에 대해 상세히 설명한다. 본 발명의 제2 실시예에 따른 마이크로프로세서(40)의 정상 동작 모드에서의 리셋 동작과 리셋 후의 정상 동작은 본 발명의 제1 실시예에 따른 마이크로프로세서(20)의 경우와 유사하므로, 이에 대한 설명은 생략한다.
테스트 모드 신호가 어써트 상태에 있는 경우 마이크로프로세서의 테스트 동작 모드에서의 리셋 동작시에는, 실행될 테스트 프로그램(32)이 DMT 인터페이스(49)를 통해 외측에서 제공된 테스터(27)로부터 코어 프로세서(41) 내의 커맨드 캐시 메모리(42)의 소정의 어드레스 영역에 기록된 다음, 커맨드 캐시 메모리(42)의 검증이 수행된다. 다음으로, 테스트 모드 신호가 어써트되어 리셋 모드멀티플렉서(52)에 전달되면, 리셋 모드 멀티플렉서(52)에 의해 테스트 어드레스가 선택된다. 그 후, 리셋 신호가 어써트되어 리셋 제어 멀티플렉서(13)에 전달되면, 리셋 제어 멀티플렉서(13)에 의해 테스트 어드레스가 선택된다. 선택된 테스트 어드레스는 프로그램 카운터(11)에 전달되어 보유된다. 테스트 어드레스는 테스트 프로그램(32)이 기록되는 선두 어드레스로서 커맨드 캐시 메모리(42) 내에 설정된다. 따라서, 프로그램 카운터(11) 내에 보유되어 있는 테스트 어드레스에 기초하여, 커맨드 캐시 메모리(42) 내에 기록된 테스트 프로그램(32)이 커맨드 캐시 메모리(42)로부터 판독 출력되어 실행된다.
본 발명의 제2 실시예에 따른 마이크로프로세서에서는, 테스트 프로그램(32)을 코어 프로세서(41)로 판독 출력해 낼 수 있으므로, ROM 콘트롤러(22)를 통해 부트 ROM(25)을 액세스하거나 시스템 버스(24)를 통하지 않고도 테스트 프로그램을 실행할 수 있다. 따라서, 부트 ROM(25) 또는 ROM 콘트롤러(22)에 장애가 있는 경우에도, 마이크로프로세서의 기능을 실제 기기에서 검증할 수 있다. 또한, 실제 기기에서의 기능 검증에 있어서 코어 프로세서의 자유도(independence)가 상당히 증대되어 고자유도의 BIT(built-in-test)가 가능하게 된다.
(기타 실시예)
본 기술분야의 전문가라면 본 발명의 범주를 벗어나지 않고 본 발명의 기재로부터 각종 수정이 가능할 것이다.
본 발명의 장치는 청구범위에 기재된 본 발명의 사상 및 범주를 벗어나지 않고 각종의 변경 및 수정을 통해 달리 구현될 수도 있다. 따라서, 본 명세서에 기재된 설명은 예시를 위한 것이며 본 발명을 제한하기 위한 것으로 이해되어서는 안된다.
본 발명은 마이크로프로세서의 리셋 이후에 수행되는 테스트 프로그램에 따라 실제 기계에서 내부 기능을 검증하는 마이크로프로세서 및 그 마이크로프로세서의 처리 방법을 제공한다.

Claims (14)

  1. 테스트 프로그램의 테스트 어드레스를 보유하기 위한 레지스터;
    다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하기 위한 다음 어드레스 생성 로직;
    테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 상기 테스트 어드레스 중 어느 하나를 선택하기 위한 제1 멀티플렉서;
    리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 상기 제1 멀티플렉서에 의해 선택된 어드레스 중 어느 하나를 선택하기 위한 제2 멀티플렉서; 및
    상기 제2 멀티플렉서에 의해 선택된 어드레스를 보유하고, 상기 보유된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 상기 다음 어드레스 생성 로직에 출력하기 위한 프로그램 카운터
    를 포함하는 테스트 기능이 내장된(built-in test) 마이크로프로세서.
  2. 제1항에 있어서, 상기 제1 멀티플렉서는, 정상(normal) 동작 모드에서 상기 마이크로프로세서의 리셋 후에 상기 부트 어드레스를 선택하고, 테스트 동작 모드에서 상기 마이크로프로세서의 리셋 후에 상기 테스트 어드레스를 선택하는 마이크로프로세서.
  3. 제1항에 있어서, 상기 제2 멀티플렉서는, 정상 동작 모드 또는 테스트 동작 모드에서 상기 마이크로프로세서의 리셋 후에 상기 제1 멀티플렉서에 의해 선택된 어드레스를 선택하고, 상기 마이크로프로세서의 정상 동작 시에 상기 마이크로프로세서의 리셋이 해제된 후에 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 선택하는 마이크로프로세서.
  4. 마이크로프로세서의 정상 동작 시에 실행될 커맨드를 저장하고 마이크로프로세서의 테스트 동작 모드에서 테스트 프로그램을 저장하기 위한 캐시 메모리;
    다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하기 위한 다음 어드레스 생성 로직;
    테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 테스트 어드레스 중 어느 하나를 상기 캐시 메모리의 선두 어드레스(head address)로 선택하기 위한 제1 멀티플렉서;
    리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 상기 제1 멀티플렉서에 의해 선택된 어드레스 중 어느 하나를 선택하기 위한 제2 멀티플렉서; 및
    상기 제2 멀티플렉서에 의해 선택된 어드레스를 보유하고, 상기 보유된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 상기 다음 어드레스 생성 로직에 출력하기 위한 프로그램 카운터
    를 포함하는 테스트 기능이 내장된 마이크로프로세서.
  5. 제4항에 있어서,
    상기 테스트 동작 모드에서 상기 캐시 메모리의 직접 메모리 테스트를 수행하기 위한 인터페이스
    를 더 포함하는 마이크로프로세서.
  6. 제4항에 있어서, 상기 제1 멀티플렉서는, 정상 동작 모드에서 상기 마이크로프로세서의 리셋 후에 상기 부트 어드레스를 선택하고, 테스트 동작 모드에서 상기 마이크로프로세서의 리셋 후에 상기 테스트 어드레스를 선택하는 마이크로프로세서.
  7. 제4항에 있어서, 상기 제2 멀티플렉서는, 정상 동작 모드 또는 테스트 동작 모드에서 상기 마이크로프로세서의 리셋 후에 상기 제1 멀티플렉서에 의해 선택된 어드레스를 선택하고, 상기 마이크로프로세서의 정상 동작 시에 상기 마이크로프로세서의 리셋이 해제된 후에 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 선택하는 마이크로프로세서.
  8. 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하는 단계;
    테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 테스트 프로그램의 테스트 어드레스 중 어느 하나를 선택하는 단계;
    리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 상기 선택된 어드레스 중 어느 하나를 선택하는 단계; 및
    상기 리셋 신호에 기초하여 선택된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 출력하는 단계
    를 포함하는 테스트 기능이 내장된 마이크로프로세서의 프로세싱 방법.
  9. 제8항에 있어서, 상기 테스트 모드 신호에 기초한 어드레스 선택 시에, 상기 부트 어드레스는 정상 동작 모드에서 상기 마이크로프로세서의 리셋 후에 선택되고 상기 테스트 어드레스는 테스트 동작 모드에서 상기 마이크로프로세서의 리셋 후에 선택되는 마이크로프로세서의 프로세싱 방법.
  10. 제8항에 있어서, 상기 리셋 신호에 기초한 어드레스 선택 시에, 상기 테스트 모드 신호에 기초하여 선택된 어드레스는 정상 동작 모드 또는 테스트 동작 모드에서 상기 마이크로프로세서의 리셋 후에 선택되고 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스는 상기 마이크로프로세서의 정상 동작 시에 상기 마이크로프로세서의 리셋이 해제된 후에 선택되는 마이크로프로세서의 프로세싱 방법.
  11. 정상 동작 시에 실행될 커맨드를 캐시 메모리에 저장하고 테스트 동작 모드에서 테스트 프로그램을 상기 캐시 메모리에 저장하는 단계;
    다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하는 단계;
    테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 테스트 어드레스 중 어느 하나를 상기 캐시 메모리의 선두 어드레스로 선택하는 단계;
    리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 상기 테스트 모드 신호에 기초하여 선택된 어드레스 중 어느 하나를 선택하는 단계; 및
    상기 리셋 신호에 기초하여 선택된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 출력하는 단계
    를 포함하는 테스트 기능이 내장된 마이크로프로세서의 프로세싱 방법.
  12. 제11항에 있어서,
    상기 테스트 동작 모드에서 상기 캐시 메모리의 직접 메모리 테스트를 수행하는 단계
    를 더 포함하는 마이크로프로세서의 프로세싱 방법.
  13. 제11항에 있어서, 상기 테스트 모드 신호에 기초한 어드레스 선택 시에, 상기 부트 어드레스는 정상 동작 모드에서 상기 마이크로프로세서의 리셋 후에 선택되고 상기 테스트 어드레스는 테스트 동작 모드에서 상기 마이크로프로세서의 리셋후에 선택되는 마이크로프로세서의 프로세싱 방법.
  14. 제11항에 있어서, 상기 리셋 신호에 기초한 어드레스 선택 시에, 상기 테스트 모드 신호에 기초하여 선택된 어드레스는 정상 동작 모드 또는 테스트 동작 모드에서 상기 마이크로프로세서의 리셋 후에 선택되고 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스는 상기 마이크로프로세서의 정상 동작 모드에서 상기 마이크로프로세서의 리셋이 해제된 후에 선택되는 마이크로프로세서의 프로세싱 방법.
KR1020020083380A 2001-12-26 2002-12-24 마이크로프로세서 및 마이크로프로세서의 처리 방법 KR100543152B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2001-00394128 2001-12-26
JP2001394128A JP2003196117A (ja) 2001-12-26 2001-12-26 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
KR20030055150A true KR20030055150A (ko) 2003-07-02
KR100543152B1 KR100543152B1 (ko) 2006-01-20

Family

ID=19188834

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020083380A KR100543152B1 (ko) 2001-12-26 2002-12-24 마이크로프로세서 및 마이크로프로세서의 처리 방법

Country Status (4)

Country Link
US (1) US7047444B2 (ko)
JP (1) JP2003196117A (ko)
KR (1) KR100543152B1 (ko)
CN (1) CN1185574C (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191352B2 (en) * 2004-07-29 2007-03-13 Seiko Epson Corporation Circuit and method for controlling a power cut-off protection circuit
US20070118778A1 (en) * 2005-11-10 2007-05-24 Via Telecom Co., Ltd. Method and/or apparatus to detect and handle defects in a memory
CN101055539A (zh) * 2006-04-12 2007-10-17 鸿富锦精密工业(深圳)有限公司 计算机测试系统及方法
EP2959378A1 (en) * 2013-02-22 2015-12-30 Marvell World Trade Ltd. Patching boot code of read-only memory
US9482718B2 (en) * 2014-01-13 2016-11-01 Texas Instruments Incorporated Integrated circuit
US10372452B2 (en) 2017-03-14 2019-08-06 Samsung Electronics Co., Ltd. Memory load to load fusing
CN109274610A (zh) * 2018-08-13 2019-01-25 中国航空无线电电子研究所 具有端口bit测试功能的arinc664网络交换机

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4484261A (en) * 1981-01-19 1984-11-20 Texas Instruments Incorporated Data processing system having interlinked fast and slow memory means and interlinked program counters
JPS63282853A (ja) 1987-05-15 1988-11-18 Canon Inc 情報処理装置
JPH01127036A (ja) 1988-09-13 1989-05-19 Nippon Carbide Ind Co Inc 流動焙焼装置
JPH04170647A (ja) 1990-11-05 1992-06-18 Fujitsu Ltd コンピュータシステムの診断方式
US5548713A (en) 1991-10-15 1996-08-20 Bull Hn Information Systems Inc. On-board diagnostic testing
JPH0798692A (ja) * 1993-05-31 1995-04-11 Mitsubishi Electric Corp マイクロコンピュータ
US5764593A (en) 1996-12-04 1998-06-09 Keylabs, Inc. Method and system for the interception and control of the computer boot process
US5949997A (en) * 1997-01-03 1999-09-07 Ncr Corporation Method and apparatus for programming a microprocessor using an address decode circuit
US6363492B1 (en) 1998-04-30 2002-03-26 Compaq Computer Corporation Computer method and apparatus to force boot block recovery
US6421792B1 (en) * 1998-12-03 2002-07-16 International Business Machines Corporation Data processing system and method for automatic recovery from an unsuccessful boot
US6311298B1 (en) * 1999-02-17 2001-10-30 Rise Technology Company Mechanism to simplify built-in self test of a control store unit
WO2002095556A1 (en) * 2001-05-18 2002-11-28 Fujitsu Limited Apparatus having stand-by mode, program, and control method for apparatus having stand-by mode

Also Published As

Publication number Publication date
CN1430141A (zh) 2003-07-16
US20030120973A1 (en) 2003-06-26
CN1185574C (zh) 2005-01-19
KR100543152B1 (ko) 2006-01-20
JP2003196117A (ja) 2003-07-11
US7047444B2 (en) 2006-05-16

Similar Documents

Publication Publication Date Title
US6523136B1 (en) Semiconductor integrated circuit device with processor
US5168559A (en) Emulation system capable of complying with microcomputers having different on-chip memory capacities
KR100543152B1 (ko) 마이크로프로세서 및 마이크로프로세서의 처리 방법
JPS5999369A (ja) 高集積形マイクロプログラム制御式電子モジユ−ルのテスト用装置
JP4426468B2 (ja) メモリエミュレーションモジュールを用いて高速でテストできるエンベデッドmcu、及びそのテスト方法
JP5309938B2 (ja) 要求処理装置、要求処理システムおよびアクセス試験方法
JPWO2002073411A1 (ja) メモリテスト方法、情報記録媒体及び半導体集積回路
US20200388346A1 (en) Testing read-only memory using memory built-in self-test controller
US7028237B2 (en) Internal bus testing device and method
JP2004094451A (ja) オンチップjtagインタフェース回路およびシステムlsi
JPS646489B2 (ko)
JPH1040130A (ja) マイクロコンピュータ
JP2004013289A (ja) マイクロコントローラのオンチップデバッグ方法
KR100511893B1 (ko) 칩 테스트 회로
JPWO2010029682A1 (ja) 情報処理装置
JP2006039843A (ja) Ramテスト回路、情報処理装置、及びramテスト方法
KR100557918B1 (ko) 조인트 테스트 액세스 그룹을 이용한 오류수정장치
JP3028779B2 (ja) 半導体装置
JP2984628B2 (ja) マイクロコンピュータ
US7124061B2 (en) System LSI
JPH0281400A (ja) メモリ素子
JPH05151017A (ja) マイクロコンピユータ
JP3006487B2 (ja) エミュレーション装置
JPH0764856A (ja) メモリアクセス制御回路
JPH09106359A (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: 20090102

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee