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

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

Info

Publication number
KR100543152B1
KR100543152B1 KR1020020083380A KR20020083380A KR100543152B1 KR 100543152 B1 KR100543152 B1 KR 100543152B1 KR 1020020083380 A KR1020020083380 A KR 1020020083380A KR 20020083380 A KR20020083380 A KR 20020083380A KR 100543152 B1 KR100543152 B1 KR 100543152B1
Authority
KR
South Korea
Prior art keywords
address
command
test
microprocessor
reset
Prior art date
Application number
KR1020020083380A
Other languages
English (en)
Other versions
KR20030055150A (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

Images

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)
  • Microcomputers (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

마이크로프로세서 및 마이크로프로세서의 처리 방법{MICROPROCESSOR AND PROCESSING METHOD OF MICROPROCESSOR}
도 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 : 외부 장치
본 출원은 그 전체 내용이 여기에 참고로 포함된 2001년 12월 26일자로 출원된 일본 특허 출원 P2001-394128을 근거로 한 것이며 이 출원의 우선권을 주장한다.
본 발명은 마이크로프로세서의 리셋 이후에 수행되는 테스트 프로그램에 따라 실제 기계에서 내부 기능을 검증하는 마이크로프로세서 및 그 마이크로프로세서의 처리 방법에 관한 것이다.
종래의 마이크로프로세서에서, 부트스트랩(bootstrap)은 마이크로프로세서가 리셋된 이후에 수행된다. 이러한 부트스트랩은 각각의 마이크로프로세서에서 미리 준비된 부트 어드레스가 프로그램 카운터에 설정되는 방식으로 수행되고, 이러한 부트 어드레스에 기초하여, 부트스트랩 프로그램은 메모리, 예컨대 부트 ROM으로부터 마이크로프로세서에 로드된다. 따라서, 마이크로프로세서의 리셋 이후에 수행 되고, 부트 어드레스에 종속되는 부트스트랩 프로그램은 각각의 마이크로프로세서에 대해 고정적으로 설정된다. 또한, 부트 어드레스에 기초하여 액세스되는 메모리의 속성 역시 고정된다.
상술한 바와 같은 종래의 마이크로프로세서의 발전 평가에 따르면, 몇몇의 경우에 있어서, 상술한 바와 같은 부트스트랩이 마이크로프로세서의 리셋 이후에 수행되더라도, 마이크로프로세서의 기능들에서 발생되는 문제점으로 인해 정상 동작 상태에 이르지 않는다. 그러한 경우에 있어서, 종래의 마이크로프로세서는 리셋 이후 부트 어드레스 대신에 다른 어드레스를 프로그램 카운터에 설정하는 메카니즘을 갖고 있지 않았으며, 이 때문에 마이크로프로세서의 기능들을 검증하는 것이 불가능했다. 구체적으로, 마이크로프로세서의 리셋 이후에 실제 기계에서 마이크로프로세서의 기능들을 검증하기 위한 목적으로 준비된 테스트 프로그램을 액세스하는 테스트 어드레스를 부트 어드레스 대신에 프로그램 카운터에서 설정하고, 설정된 테스트 어드레스에 기초하여 수행되는 테스트 프로그램을 액세스함으로써 마이크로프로세서의 다양한 독립적인 기능들을 독립적으로 검증하는 것이 불가능했다.
상술한 바와 같이, 종래의 마이크로프로세서는 리셋 이후에 부트 어드레스 이외의 어드레스를 프로그램 카운터에 설정하는 것이 불가능했고, 이 때문에 마이크로프로세서의 리셋 이후에 부트스트랩 이외의 프로그램을 수행하는 것이 불가능했다. 그러므로, 마이크로프로세서에 문제점이 발생한 경우, 마이크로프로세서의 리셋 이후에 테스트 프로그램을 수행함으로써 마이크로프로세서의 기능들을 검증하는 것이 불가능했다.
본 발명의 제1 양태는, a) 테스트 프로그램의 테스트 어드레스를 보유하는 레지스터; b) 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하기 위한 다음 어드레스 생성 로직; c) 테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 상기 테스트 어드레스중 어느 하나를 선택하는 제1 멀티플렉서; d) 리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 제1 멀티플렉서에 의해 선택된 어드레스중 어느 하나를 선택하는 제2 멀티플렉서; 및 e) 제2 멀티플렉서에 의해 선택된 어드레스를 보유하고, 보유된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 다음 어드레스 생성 로직에 출력하는 프로그램 카운터를 포함하는 테스트 기능이 내장된(built-in test) 마이크로프로세서를 제공하는 것이다.
본 발명의 제2 양태는, a) 마이크로프로세서의 정상 동작시에 실행되는 커맨드를 저장하고, 테스트 동작 모드에서 테스트 프로그램을 저장하는 캐시 메모리; b) 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하는 다음 어드레스 생성 로직; c) 테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 상기 캐시 메모리의 선두 어드레스(head address)가 되는 테스트 어드레스 중 어느 하나를 선택하는 제1 멀티플렉서; d) 리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 제1 멀티플렉서에 의해 선택된 어드레스 중 어느 하나를 선택하는 제2 멀티플렉서; 및 e) 제2 멀티플렉서에 의해 선택된 어드레스를 보유하고, 보유된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 다음 어드레스 생성 로직에 출력하는 프로그램 카운터를 포함하는 테스트 기능이 내장된 마이크로프로세서를 제공하는 것이다.
본 발명의 제3 양태는, a) 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하는 단계; b) 테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 테스트 프로그램의 테스트 어드레스 중 어느 하나를 선택하는 단계; c) 리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 선택된 어드레스 중 어느 하나를 선택하는 단계; 및 d) 리셋 신호에 기초하여 선택된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 출력하는 단계를 포함하는 테스트 기능이 내장된 마이크로프로세서의 처리 방법을 제공하는 것이다.
본 발명의 제4 양태는, a) 정상 동작시에 실행될 커맨드를 캐시 메모리에 저장하고, 테스트 동작 모드에서 테스트 프로그램을 캐시 메모리에 저장하는 단계; b) 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하는 단계; c) 테스트 모드 신호에 기초하여, 부트스트랩 프로그램을 특정하는 부트 어드레스와 캐시 메모리의 선두 어드레스가 되는 테스트 어드레스 중 어느 하나를 선택하는 단계; d) 리셋 신호에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스와 테스트 모드 신호에 기초하여 선택된 어드레스 중 어느 하나를 선택하는 단계; 및 e) 리셋 신호에 기초하여 선택된 어드레스를 다음에 실행될 커맨드의 커맨드 어드레스로서 출력하는 단계를 포함하는 테스트 기능이 내장된 마이크로프로세서의 처리 방법을 제공하는 것이다.
<실시예>
첨부 도면을 참조하여 본 발명의 여러 실시예를 설명한다. 도면에 대한 다음의 설명에서 동일 혹은 유사 부분에는 동일 혹은 유사한 참조부호가 사용된다. 그러나, 도면은 개략적인 것이므로 각각의 측정 규모는 실제로는 상이할 수도 있다는 점에 주목한다.
(제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) 및 테스트 모드 어드레스 보유 레지스터(TA)(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)을 보유한 부트 ROM(25)은 테스트 프로그램(32)의 내용에 따라 적절하게 다른 부트 ROM으로 대체될 수 있다. 게다가, 테스트만을 실행할 경우, 부트 ROM(25)은 테스트 프로그램(32)만을 저장하는 메모리로 대체될 수 있다.
다음으로, 도 4는 본 발명의 제1 실시예에 따른 마이크로프로세서(20)의 처리 방법을 도시한 순서도이다.
(a) 우선, 단계 S11에서, 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 커맨드가 인출되고 실행되며, 상기 커맨드 어드레스는 프로그램 카운터(11)에 보유되고, 다음에 실행될 커맨드의 커맨드 어드레스는 다음 어드레스 생성 로직(12)으로 전달된다. 다음 생성 로직(12)은 프로그램 카운터(11)로부터 전달된, 다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되기로 예정된 커맨드의 커맨드 어드레스를 생성한다.
(b) 다음으로, 단계 S12에서, 테스트 모드 신호에 기초하여, 리셋 모드 멀티플렉서(14)는 다음의 어드레스들 즉, 부트스트랩 프로그램을 특정하기 위한 부트 어드레스; 및 테스트 프로그램의 테스트 어드레스 중 어느 하나를 선택한다. 구체적으로, 부트 어드레스는 테스트 모드 신호의 비어서트(non assert) 상태 동안 정상 동작 모드에서 마이크로프로세서의 리셋 후에 선택되고, 그 반면에 테스트 어드레스는 테스트 모드 신호의 어서트(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)에 전달되고 보유된다. 다음으로, 프로그램 카운터(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 인터페이스(43)를 통하여 외부에 제공된 테스터(27)로부터 코어 프로세서(41) 내의 커맨드 캐시 메모리(42)의 소정의 어드레스 영역에 기록되고, 그 다음에, 커맨드 캐시 메모리(42)가 유효화된다. 다음으로, 테스트 모드 신호가 어서트되어 리셋 모드 멀티플렉서(52)에 전달되면, 리셋 모드 멀티플렉서(52)에 의해 테스트 어드레스가 선택된다. 그 후, 리셋 신호가 어서트되어 리셋 제어 멀티플렉서(13)에 전달되면, 리셋 제어 멀티플렉서(13)에 의해 테스트 어드레스가 선택된다. 선택된 테스트 어드레스는 프로그램 카운터(11)에 전달되어 보유된다. 테스트 어드레스는 테스트 프로그램(32)이 기록되는 선두 어드레스로서 커맨드 캐시 메모리(42) 내에 설정된다. 따라서, 프로그램 카운터(11) 내에 보유되어 있는 테스트 어드레스에 기초하여, 커맨드 캐시 메모리(42) 내에 기록된 테스트 프로그램(32)이 커맨드 캐시 메모리(42)로부터 판독되어 실행된다.
본 발명의 제2 실시예에 따른 마이크로프로세서에서는, ROM 제어기(22)를 통해 부트 ROM(25)을 액세스하거나 시스템 버스(24)를 통하지 않고도 테스트 프로그램(32)을 코어 프로세서(41)로 판독하여 실행하는 것이 가능하게 된다. 테스트 프로그램을 실행할 수 있다. 따라서, 부트 ROM(25) 및 ROM 제어기(22)에 문제가 있는 경우라도, 실제 기계에서 마이크로프로세서의 기능들을 검증하는 것이 가능하게 된다. 또한, 실제 기계에서의 기능 검증에 있어서 코어 프로세서의 독립성(independence)이 상당히 대폭 증대되어, 보다 독립성이 높은 BIT(built-in-test)가 가능하게 된다.
(기타 실시예)
본 기술분야의 전문가라면 본 발명의 범주를 벗어나지 않고 본 발명의 기재로부터 각종 수정이 가능할 것이다.
본 발명의 장치는 청구범위에 기재된 본 발명의 사상 및 범주를 벗어나지 않고 각종의 변경 및 수정을 통해 달리 구현될 수도 있다. 따라서, 본 명세서에 기 재된 설명은 예시를 위한 것이며 본 발명을 제한하기 위한 것으로 이해되어서는 안된다.
본 발명은 마이크로프로세서의 리셋 이후에 수행되는 테스트 프로그램에 따라 실제 기계에서 내부 기능을 검증하는 마이크로프로세서 및 그 마이크로프로세서의 처리 방법을 제공한다.

Claims (14)

  1. 테스트 프로그램의 테스트 어드레스를 보유하기 위한 레지스터;
    다음에 실행될 커맨드의 커맨드 어드레스에 기초하여, 다음에 실행되도록 예정된 커맨드의 커맨드 어드레스를 생성하기 위한 다음 어드레스 생성 로직;
    테스트 모드 신호에 기초하여, 부트스트랩 프로그램 및 상기 테스트 프로그램을 특정하는 선두 어드레스들(head addresses) 중 어느 하나를 선택하기 위한 제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 KR20030055150A (ko) 2003-07-02
KR100543152B1 true 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
JP2003196117A (ja) 2003-07-11
CN1430141A (zh) 2003-07-16
CN1185574C (zh) 2005-01-19
US20030120973A1 (en) 2003-06-26
KR20030055150A (ko) 2003-07-02
US7047444B2 (en) 2006-05-16

Similar Documents

Publication Publication Date Title
US5640542A (en) On-chip in-circuit-emulator memory mapping and breakpoint register modules
US6094730A (en) Hardware-assisted firmware tracing method and apparatus
US5263168A (en) Circuitry for automatically entering and terminating an initialization mode in a data processing system in response to a control signal
KR100543152B1 (ko) 마이크로프로세서 및 마이크로프로세서의 처리 방법
JPS5999369A (ja) 高集積形マイクロプログラム制御式電子モジユ−ルのテスト用装置
JP4015025B2 (ja) メモリテスト方法、情報記録媒体及び半導体集積回路
US6948086B2 (en) Computer system
US11521698B2 (en) Testing read-only memory using memory built-in self-test controller
US7340575B2 (en) Method and a circuit for controlling access to the content of a memory integrated with a microprocessor
US20010052114A1 (en) Data processing apparatus
US7237099B2 (en) Multiprocessor system having a plurality of control programs stored in a continuous range of addresses of a common memory and having identification registers each corresponding to a processor and containing data used in deriving a starting address of a CPU-linked interrupt handler program to be executed by the corresponding processor
JP2004094451A (ja) オンチップjtagインタフェース回路およびシステムlsi
JP2002541582A (ja) エミュレータシステム内のユーザメモリを更新する方法およびシステム
KR100297224B1 (ko) Prom이구비된마이크로컴퓨터및그것의데이타판독검사방법
JPWO2010029682A1 (ja) 情報処理装置
KR100511893B1 (ko) 칩 테스트 회로
KR100557918B1 (ko) 조인트 테스트 액세스 그룹을 이용한 오류수정장치
JP2984628B2 (ja) マイクロコンピュータ
JPH0764856A (ja) メモリアクセス制御回路
JPH0281400A (ja) メモリ素子
JP2002055843A (ja) 集積回路用論理検証装置および方法
JPS619733A (ja) テスト装置
JPH0793180A (ja) マイクロプロセッサ
JP2000181762A (ja) マイクロプロセッサ
JPH08272647A (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