KR100763173B1 - 리셋 후 데이터 처리 시스템을 구성하는 장치 및 방법 - Google Patents

리셋 후 데이터 처리 시스템을 구성하는 장치 및 방법 Download PDF

Info

Publication number
KR100763173B1
KR100763173B1 KR1020000070065A KR20000070065A KR100763173B1 KR 100763173 B1 KR100763173 B1 KR 100763173B1 KR 1020000070065 A KR1020000070065 A KR 1020000070065A KR 20000070065 A KR20000070065 A KR 20000070065A KR 100763173 B1 KR100763173 B1 KR 100763173B1
Authority
KR
South Korea
Prior art keywords
memory
processing system
reset
data processing
configuration
Prior art date
Application number
KR1020000070065A
Other languages
English (en)
Other versions
KR20010051902A (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 KR20010051902A publication Critical patent/KR20010051902A/ko
Application granted granted Critical
Publication of KR100763173B1 publication Critical patent/KR100763173B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Programmable Controllers (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

리셋으로부터 빠져나올 때에, 여러 가지의 비트 폭들(440, 450, 460)의 메모리들을 이용하여 데이터 처리 시스템(400)이 구성된다. 리셋 벡터(300)를 구성하는 바이트들은 리셋 벡터를 저장하는 메모리로부터 개별의 메모리 동작들을 통해 개별로 페치(fetch)된다. 이들 바이트들은 각각의 가능성 있는 메모리 구조들(440, 450, 460)내에 소정의 방법으로 저장되어, 소정의 어드레스들이 데이터 버스의 동일한 부분 상에서 다른 바이트들을 검색하게 한다. 검색된 리셋 벡터(300)의 구성값(310) 부분은 데이터 처리 시스템(400)내에 여러 가지의 파라미터들(352 내지 356, 362)을 구성하는데 사용되어, 메모리 또는 시스템의 다른 기능 특성들에 관련된 파라미터들이 초기화되게 한다. 구성값(310)이 데이터부 및 제어부를 포함하여, 구성값(310)의 데이터부가 데이터 처리 시스템(400)내의 여러 가지의 파라미터들에 어떻게 적용되는지를 제어부가 결정하게 한다.
데이터 처리 시스템, 제어부, 메모리 구성, 리셋 제외 루틴, 부트 메모리 장치, 구성값

Description

리셋 후 데이터 처리 시스템을 구성하는 장치 및 방법{Method and apparatus for configuring a data processing system after reset}
도 1은 종래 기술의 처리 시스템의 블록도.
삭제
도 2는 본 발명의 특정 실시예에 따라 리셋 벡터 어드레스(reset vector address)를 저장하는 여러 가지의 메모리 구성들의 블록도.
도 3은 본 발명의 특정 실시예에 따라 제어 레지스터 구성을 위해 사용되는 페치된 리셋 벡터값의 블록도.
도 4는 본 발명의 특정 실시예에 따른 데이터 처리 시스템의 블록도.
도 5는 본 발명의 특정 실시예에 따라 데이터 처리 시스템을 구성하는 방법의 흐름도.
도 6은 본 발명의 특정 실시예에 따라 데이터 처리 시스템을 구성하는 대안적 방법의 흐름도.
도 7은 본 발명의 특정 실시예에 따라 컨트롤 레지스터를 구성하기 위해 이용될 구성값의 블록도.
도 8은 본 발명의 다른 특정 실시예에 따른 데이터 처리 시스템의 블록도.
*도면의 주요 부분에 대한 부호의 설명*
300 : 리셋 벡터 310 : 구성값
400 : 데이터 처리 시스템 410 : 데이터 프로세서
416 : 인터페이스 회로 440, 450, 460 : 저장 회로
420 : 디버그/에뮬레이션 회로 720 : 파라미터 제어부
발명의 분야
본 발명은 데이터 프로세서들 특히, 리셋 후 데이터 처리 시스템을 구성하는 방법 및 장치에 관한 것이다.
발명의 배경
데이터 처리 시스템을 공지의 초기 상태에 놓기 위해서, 대부분의 데이터 처리 시스템들에는 시스템을 리셋하는 핀 또는 그 밖의 기구가 구비된다. 처리 시스템이 리셋 조건으로부터 빠져나오면, 리셋 벡터의 어드레스(리셋 제외 벡터(reset exception vector))는 메모리내의 공지의 위치로부터 페치된다. 이후, 어드레스는 리셋 제외 루틴을 페치하고 실행하기 위해 사용된다. 리셋 제외 루틴은 통상 시스템을 초기화하고 다음의 프로그램 명령들을 실행하기 위해 준비하는 다수의 명령들을 포함한다.
32비트 어드레스 공간을 포함하는 처리 시스템에 있어서, 리셋 벡터는 4개의 8비트 바이트들로 구성된 1개의 32비트 워드를 포함한다. 리셋 벡터는 비트 폭이 변할 수 있는 메모리 구성로부터 페치된다. 예를 들어, 32비트 폭 메모리 구성, 16비트 폭 메모리 구성 또는 8비트 폭 메모리 구성은 특정 시스템을 위한 리셋 벡터를 저장하기 위해 사용될 수 있다. 리셋 벡터를 저장하는 메모리 구성의 유형은 리셋 벡터를 포함하는 4개의 8비트 바이트들을 페치하는데 필요한 메모리 동작들을 결정한다.
리셋 벡터를 저장하는 메모리의 메모리 구성을 결정하기 위한 하나의 종래 기술은 처리 시스템 상에 핀들(pins)을 추가하는 것을 포함하고, 상기 추가의 핀들의 신호들은 메모리 구성을 나타낸다. 추가의 핀들은 처리 시스템에 비용을 부가시키기 때문에 바람직하지는 않다.
메모리 구성을 결정하기 위한 다른 종래 기술은 처리 시스템의 데이터 버스를 샘플링하는 것을 포함한다. 데이터 버스의 샘플링으로부터 결정된 값들은, 리셋 벡터가 저장된 특정 메모리 구성을 나타낸다. 이 기술이 처리 시스템에서 다른 메모리 구조들을 지원할 수 있지만, 사용되는 메모리 구성을 나타내기 위해 필요한 특정 값들에 데이터 버스를 구동하기 위해서는 외부의 접착 논리(external glue logic)가 필요하다. 외부의 접착 논리는 처리 시스템 전체의 비용을 증가시키고, 부가적인 기생 효과(parasitic effect)들을 초래하여 처리 시스템의 기능에 악영향을 미치고, 전력 소모도 증가시킬 것이다.
리셋 벡터를 저장하는 메모리 구성을 결정하기 위한 다른 기술은 처리 시스템 내에 불휘발성 저장 수단을 포함하는 것이다. 불휘발성 저장 수단은 특정 시스템에서 사용되는 메모리 구성을 나타내는 값을 저장하는데 사용될 수 있다. 다시 한번, 이 기술이 처리 시스템에서 여러 가지의 비트 폭 메모리 구조들의 사용을 허용하지만, 전기적 소거가능 프로그램가능 판독 전용 메모리 등의 불휘발성 저장 수단은 복잡하고 실행하기에 고가이기 때문에, 불휘발성 저장 수단을 포함하는 것은 시스템 비용을 증가시킬 수 있다. 비용이 증가하는 것 외에, 불휘발성 저장 수단은 재프로그램하는 것이 곤란하기 때문에, 다른 메모리 구성들 사이에서 변경을 하는 것이 더 어렵게 된다.
다른 종래 기술의 시스템들은 특정한 외부 메모리 구성을 추정하고, 외부 메모리를 그 추정에 따르도록 요구한다. 도 1은 CPU 및 메모리 제어기를 포함하는 프로세서를 나타낸다. 도 1에는 32비트, 16비트 및 8비트 구성들을 포함하는 3개의 다른 메모리 구성들이 또한 예시된다. 각각의 다른 가능성 있는 메모리 구조들을 액세스하기 위해 메모리 제어기에 의해 사용되는 어드레스 데이터 및 제어 신호들이 또한 예시된다.
도 1에 예시된 시스템으로 16비트 데이터 버스를 갖는 메모리 구성이 리셋 벡터를 저장하기 위해 사용된다고 하면, 어드레스들 0×00(16진수 포맷) 및 0×02에 대한 2개의 연속하는 판독 동작들은 32비트 리셋 벡터를 구성하는 4개의 바이트들(T, U, V, W)을 검색하기 위해 실행될 것이다. 이들 2개의 액세스들의 실행이 16비트 메모리에 대해서 행해지지만, 동일한 추정을 사용하여 리셋 벡터의 어드레스를 로드시키고자 하는 유사한 시도들은 32비트 및 8비트 메모리 구조들에 대해서는 실패한다.
8비트 메모리 구조에 대해서, 2개의 어드레스를 사용하는 2개의 판독 동작들이만이 실행된다. 메모리 제어기가 각 판독 동작에 대해서 D[31:0] 데이터 라인들상의 16비트 데이터를 수신하는 것이 예상되지만, 8비트 메모리는 D[31:24] 데이터 라인들을 구동할 뿐이다.
32비트 메모리에 대해서, 어드레스 라인 A[1]은 32비트 메모리에 의해 무시(ignore)된다. 그 때문에, 0×00 및 0×02에 대한 2개의 연속하는 판독들은 결과적으로 32비트 메모리내의 위치 0×00에 저장된 32비트 워드를 중복하여 판독하게 된다. 32비트 메모리가 리셋 벡터 어드레스 전체를 데이터 라인들 D[31:0] 상에서 구동하더라도, 메모리 제어기는 데이터 라인들 D[31:16]상의 각각의 메모리 액세스에 대하여 16비트 데이터만이 수신될 것이라고 추측한다. 그 때문에, 메모리 제어기는 메모리 동작들의 결과들을 해석하여, 완전한 4바이트 어드레스(TUVW) 대신에 리셋 벡터 어드레스(VWVW)를 구성하는 4개의 바이트들 중 2개의 2회 복사를 포함하는 어드레스에 도달하게 될 것이다.
따라서, 리셋으로부터 빠져나올 때에 리셋 벡터의 어드레스를 정확하게 결정하기 위해, 추가의 핀들, 불휘발성 저장 위치들 또는 데이터 버스 샘플링을 필요로 하지 않고, 처리 시스템이 여러 가지의 비트 폭 메모리 구조들을 사용할 수 있도록 하는 방법 및 장치가 필요하다. 또한, 후속 동작들이 구성된 파라미터들을 사용할 수 있도록, 리셋으로부터 빠져나온 직후에 여러 가지의 처리 시스템 파라미터들의 구성을 고려한 방법 및 장치를 구비하는 것이 바람직하다.
본 발명은 일예에 의해 첨부된 도면들에 한정되지 않고 예시되며, 동일한 참조번호는 동일한 요소들을 나타낸다.
당업자는 도면의 요소들이 비례대로 그려지지 않고 명료함과 편리함을 위해 도시되었음을 이해하여야 한다. 예를 들어, 도면의 요소들의 일부 크기들은 본 발명의 실시예의 이해를 돕기 위해 다른 요소에 비하여 과장될 수 있다.
일반적으로, 본 발명은 리셋으로부터 빠져나갈 때에 여러 가지의 비트 폭들의 메모리들을 사용하여 데이터 처리 시스템을 구성하게 하는 방법 및 장치를 제공한다. 일 실시예에서, 리셋 벡터를 구성하는 4개의 바이트들은 리셋 벡터를 저장하는 메모리로부터 개별의 메모리 동작들을 통해 개별로 페치된다. 이들 4개의 바이트들은 각 가능성 있는 메모리 구조들 내에 소정의 방법으로 저장되어, 4개의 소정의 어드레스들이 데이터 버스의 공통 부분상에서 4개의 다른 바이트들을 검색하게 한다. 검색된 리셋 벡터의 부분들은 데이터 처리 시스템내의 여러 가지의 파라미터들을 구성하는데 사용되어, 메모리 또는 시스템의 다른 기능 특성들에 관련된 부가의 파라미터들이 초기화되게 한다. 구성값이 데이터부 및 제어부를 포함하여, 구성값의 데이터부가 데이터 처리 시스템내의 여러 가지의 파라미터들에 어떻게 적용되는지를 제어부가 결정하게 한다.
다른 실시예에서, 구성값은 메모리로부터 리셋 벡터를 검색하기 전에 페치된다. 페치된 구성값은 메모리 구조의 비트 폭(데이터 필드 크기), 메모리 구성에 대응하는 액세스 시간(대기 상태 제어 정보)에 대한 정보, 또는 메모리 구성에 사용되는 바이트 순서(작거나 큰 엔디안(endian)) 등의 정보를 포함할 수도 있다. 그 때문에, 검색된 구성값은 메모리로부터 리셋 벡터의 이후의 페칭(fetching)을 제어하는 파라미터들을 구성하는데 사용될 수 있어, 메모리 구조에 있어서의 리셋 벡터의 저장은 사용되는 메모리의 유형에 적합하도록 최적화될 수 있다. 다른 실시예에서, 검색된 구성값은 데이터 처리 시스템내에 포함되는 디버그(debug) 또는 에뮬레이션(emulation)을 인에이블/디스에이블하게 하는 파라미터들을 구성하는데 사용될 수 있다.
본 발명은 종래 기술의 시스템들에서 부가의 불휘발성 저장 수단, 추가의 접착 논리 또는 추가의 핀들을 추가하지 않고는 불가능한 리셋 벡터의 저장에 대해 데이터 처리 시스템이 메모리의 가변 구성들을 이용할 수 있게 한다. 리셋 벡터에 가하여 페치되거나 리셋 벡터에 포함되는 구성 정보는 처리 시스템 내에서 추가의 파라미터들을 초기화하는데 사용되어, 리셋으로부터의 탈출 명령들의 초기의 실행이 이러한 파라미터들을 구성하기 위해 다수의 명령들의 실행을 필요로 하는 종래 기술의 해결책에서 가능했던 것보다 더 효율적인 방법으로 실행될 수 있다.
본 발명은 도 2 내지 도 8을 참조로 보다 잘 이해될 수 있다. 도 2는 데이터 처리 시스템과 함께 사용될 수도 있는 메모리 맵(210)을 도시한다. 메모리 맵(210)내의 위치들은 0×00 내지 0×FFFFFFFF 범위에 나타내어지는 어드레스 비트들을 사용하여 규정된다. 리셋 핸들러 루틴(reset handler routine; 220)은 메모리 맵(210)내에 포함되며, 처리 시스템이 리셋으로부터 빠져나온 후에 실행된다. 리셋 핸들러 루틴(220)을 실행하기 위해, 리셋 벡터라고 지칭되는 리셋 핸들러 루틴(220)의 어드레스는 메모리로부터 페치된다. 리셋 벡터는 0×TUVW의 값을 갖는 것으로 도시되어 있다. 문자들(T, U, V, W) 각각은 32비트의 리셋 벡터의 8비트 바이트 부분을 나타낸다.
도시된 바와 같이, 리셋 핸들러 루틴(220)은 부트 메모리 장치(240)에 저장되는 것이 바람직하다. 리셋 핸들러 루틴(220)을 실행하기 위해, 페치되어야만 하는 리셋 벡터도 부트 메모리 장치(240)에 저장되거나, 다른 메모리 장치에 저장될 수 있다. 리셋 핸들러 루틴 어드레스를 구성하는 4개의 바이트들의 페칭을 용이하게 하기 위해서, 4개의 바이트들은 각각의 여러 가지의 메모리 구성 내에서 인접하지 않은 바이트 위치들에 저장된다. 이 때문에, 리셋 벡터의 인접 부분들은 메모리내에서 인접하지 않은 어드레스에 저장되어, 적어도 1비트에 의해 분리된다. 바람직하게, 메모리내의 리셋 벡터의 부분들의 간격은 처리 시스템의 데이터 버스의 폭의 함수에 근거한다. 리셋 벡터의 부분들의 후속 어드레스들은 바람직하게는 제 1 (베이스) 어드레스를 데이터 버스내의 바이트들의 수와 같은 증가값만큼 증가시킴으로써 생성된다. 예를 들면, 데이터 버스의 버스 폭이 32비트(4 바이트들)인 경우, 바이트 부분들의 간격은 도 2에 나타내어진 바와 같이 4 바이트들이 될 수 있다. 따라서, 어드레스는 4씩 증가하여 리셋 벡터의 부분들 간에서 계단상으로 진행한다.
본원에 제공되는 명세서에 있어서, "버스(bus)"라는 용어는 데이터, 어드레스, 제어 또는 상태 정보 등 한 종류 이상의 정보를 전송하기 위해 사용되는 복수의 신호들 또는 도체들을 가리키기 위해 사용된다. 브래킷(bracket)들은 버스의 도체들 또는 값의 비트 위치들을 나타내기 위해 사용된다. 예를 들면, D[31:24]는 데이터 버스의 최상위 8비트를 나타내기 위해 사용될 수 있다.
각 메모리 액세스마다 32비트 데이터를 리턴시키는 32비트 메모리(250)에 있어서, 리셋 핸들러 루틴 어드레스의 4 바이트들 각각은 개별의 32비트 워드의 최상위 바이트내에 포함된다. 따라서, 리셋 벡터의 최상위 바이트, 즉 T(252)는 위치 0×00에서 워드의 최상위 바이트이다. 그 때문에, 어드레스 0×00에서 제 1 판독 동작이 실행되는 경우, 값 T는 데이터 버스의 D[31:24] 데이터 라인들 상에 나타나게 될 것이다. 3개의 후속 판독 동작들은 후속 판독 동작들의 어드레스 0×04, 0×08, 0×0C를 사용하여 데이터 버스의 같은 부분에 값들(U254, V256, W258)을 리턴시키게 될 것이다.
32비트 메모리(250)로부터 값들(T252 내지 W258)을 검색하는 같은 메모리 동작들은 16비트 메모리(260)로부터 값들(T262 내지 W268)을 검색하기 위해 사용될 수 있다. 16비트 메모리가 데이터 버스의 16비트밖에 구동하지 않기 때문에, 특정한 어드레스에 대해서 검색되는 최상위 데이터 바이트가 데이터 버스의 최상위 부분(D[31:24])에 리턴되는 방법으로 데이터 버스에 결합되지 않으면 안된다는 것에 유의한다. 따라서, 16비트 메모리(260)로부터 위치 0×00을 판독하는 메모리 동작은 32비트 메모리(250)를 사용하는 어드레스에 대한 판독 동작과 같은 데이터 버스의 부분에 데이터(T262)를 리턴시킬 것이다.
도 2는 32비트 메모리(250) 또는 16비트 메모리(260) 중 어느 하나에 적용되는 같은 메모리 동작이 리셋 벡터에 대한 적절한 값들을 검색하게 하는 방법으로 리셋 벡터를 구성하는 4 바이트들을 저장하는 8비트 메모리(270)를 또한 도시한다. 따라서, 어드레스 0×00, 0×04, 0×08 및 0×0C에 액세스하는 4개의 메모리 판독 동작들은 8비트 메모리(270)에 적용되어, 값들(T272 내지 W278)이 각각 리턴될 수 있다. 각각의 여러 가지의 메모리 구성들에 대해 데이터 버스의 같은 부분상에 데이터를 구동하게 하기 위해서, 8비트 메모리(270)는 데이터 버스의 최상위 8비트 부분(D[31:24])을 구동하도록 구성되어야 한다.
도 3은 처리 시스템내에 하나 이상의 파라미터들을 구성하기 위해 페치된 리셋 벡터값(300)내에 포함되는 구성값(310)의 사용법을 도시한다. 도시된 바와 같이, 페치된 리셋 벡터값(300)은 리셋 핸들러 루틴이 저장된 어드레스를 구성하는 4개의 데이터 바이트들(T, U, V, W)을 포함한다. 페치된 리셋 벡터값(300)을 구성하는 비트들의 부분을 구성값(310)으로서 사용함으로써, 데이터 처리 시스템의 구성 파라미터들은 리셋 조건을 직후에 페치된 리셋 벡터값(300)의 초기 검색 동안에 검색될 수 있다. 그 때문에, 구성값(310)을 이용하여 구성되는 파라미터들은 리셋 탈출 직후에 구성되어, 후속의 처리 시스템 동작들이 변경된 파라미터값들을 이용할 수 있게 한다.
특정한 방법으로 처리 시스템내의 특정한 파라미터들을 구성하기 위해서 필요로 되는 구성값(310)에 포함된 비트의 설정이 페치된 리셋 벡터값(300)에 의해 나타내어지는 어드레스에 변경을 가할 수 있다는 것에 유의한다. 그 때문에, 부트 메모리 장치(240)는 하나 이상의 리셋 핸들러 루틴을 포함시키도록 구축될 수 있다. 이들 루틴들 각각은, 구성값(310)내의 특정 설정들에 근거하여 페치된 리셋 벡터값(300)에 대해 얻어지는 여러 가지의 값들 중 하나에 대응하는 어드레스에 저장된다. 도 2는 어드레스 0×T'U'V'W'에 저장된 하나의 이러한 대안의 리셋 핸들러 루틴(230)을 도시한다. 대안의 리셋 핸들러 루틴(230)이 실행되는 실제 루틴을 저장하는 다른 위치에 프로세서를 재지시하는 포인터일 수 있음에 유의한다. 따라서, 복수의 구성값들(310)이 특정한 시스템에서 예상되는 경우, 복수의 리셋 벡터 어드레스들에 대응하는 복수의 핸들러 루틴들은 부트 메모리 장치(240)에 포함될 것이다.
구성값(310)내에 다른 설정들이 복수의 리셋 핸들러 루틴들을 (포인터들에 불과하더라도) 요구하기 때문에, 구성값(310)은 페치된 리셋 벡터값(300)의 보다 하위의 부분에 포함되는 것이 바람직하다. 그 때문에, 필요로 되는 복수의 리셋 핸들러 루틴들이 확사하는 부트 메모리 장치(240)내의 메모리 영역은 감소된다. 구성값(310)에 대하여 페치된 리셋 벡터(300)내의 보다 상위의 비트가 사용되는 경우, 복수의 루틴들은 부트 메모리 장치(240) 전체에 확산되므로, 부트 메모리 장치(240)가 다른 목적을 위해 이용되는 효율성은 감소된다.
구성값(310)은 처리 시스템내의 특정한 파라미터를 구성하는 단일 비트인 경우도, 처리 시스템내에의 하나 이상의 파라미터를 구성하는 복수의 비트들인 경우도 있다. 복수의 비트들이 구성값(310)에 포함되는 경우, 구성값(310)은 데이터부 및 제어부을 포함할 수 있다. 데이터부는 이들 파라미터들을 적절한 설정들에 구성하기 위해, 특정한 파라미터 위치들에 저장된 실제 데이터값들에 대응한다. 제어부은 구성값(310)의 데이터부 또는 그 부분들의 응용을 제어하기 위해 이용될 수 있다.
도 3에 도시된 예는 복수의 데이터부들(312 내지 318)을 포함하는 데이터부를 도시한다. 도 3의 예에서의 구성값(310)의 제어부는 파라미터 제어부(320)를 포함하기 위해 예시된다. 도시된 바와 같이, 데이터부들(312 내지 316)은 제어 레지스터(350)의 파라미터들(A352, B354, C356)에 적응된다.
제어 레지스터(350)는 CPU내, 인터페이스 블록내 또는 데이터 처리 시스템내에 포함되는 다른 추가 논리내에 위치할 수 있다. 제어 레지스터(350)는 데이터 처리 시스템이 칩 선택 신호(chip select signal)를 통해 액세스되는 블록과 인터페이스하는 방법을 제어하는 칩 선택 제어 레지스터일 수 있다. 일예에서, 제어 레지스터(350)는 메모리 구조에 대응하는 칩 선택 레지스터들이다. 일례와 같이, 파라미터(A352)는 칩 선택 신호에 의해 선택된 메모리 구조에 대한 액세스를 위해 이용되는 대기 상태수에 대응할 수 있다. 파라미터(B354)는, 처리 시스템이 메모리 동작들에 데드 사이클(dead cycle)들을 포함하는지를 결정하는 데드 사이클 파라미터에 대응할 수 있다. 최후에, 파라미터(C356)는 메모리 구조의 데이터 버스의 폭에 대응할 수 있다. 따라서, 리셋으로부터 나오자마자, 후속 메모리 동작들을 적절히 구축하도록, 특정한 메모리 구조에 대한 올바른 파라미터 설정들은 칩 선택 레지스터내에 포함될 것이다.
다른 실시예에서, 제어 레지스터(350)는 디버깅 또는 에뮬레이션 설정들 및 동작들을 제어하는 제어 레지스터에 대응할 수 있다. 그 때문에, 파라미터들(A352, B354, C356)은 일정한 디버깅 또는 에뮬레이션 모드들이 기능하는가를 결정할 수 있다. 예를 들면, 내부 신호들을 외부에서 액세스가능한 신호들 상에 보이도록 하는 쇼 상태들(show states)은 파라미터들(A352, B354, C356) 중 하나에 의해 인에이블 또는 디스에이블된다. 그 밖의 디버깅 및 에뮬레이션 기능에는 성능 감시, 프로그램 추적, 리셋 상태 탈출후의 디버깅 모드에 대한 직접 엔트리를 인에이블링, 하나 이상의 모듈들에 대한 클록들을 인에이블링/디스에이블링, 고속 또는 저속 클록 속도의 리셋 탈출을 인에이블링하는 것 등을 포함할 수도 있다.
구성값(310)의 데이터부(318)는 제어 레지스터(350)에 외부의 시스템 제어 파라미터(362)에 제공될 수도 있다. 유사하게, 구성값의 데이터부의 다른 부분들은 데이터 처리 시스템 전체에 여러 가지의 파라미터들에게 적용될 수도 있다. 그 때문에, 데이터부들은 데이터 처리 시스템의 기능의 폭 범위에 대응하는 파라미터들을 구성할 수도 있다.
상술된 바와 같이, 도 3에 설명에서 파라미터 제어부(320)를 포함하는 구성값(310)의 제어부은 데이터부들의 각각 파라미터들에 여러 가지의 데이터부(312 내지 318)의 적용을 제어하기 위해 이용될 수도 있다. 일 실시예에서, 파라미터 제어부(320)는 임의의 데이터부들(312 내지 318)이 데이터부들의 각각 파라미터들에 적용되어야 하더라도 나타나는 단일 비트가 될 수도 있다. 다른 실시예에서, 데이터부들(312 내지 314)은 파라미터 제어부(320)의 상태에 관계없이 각각의 파라미터들에 적용될 수도 있다. 그러나, 동일의 실시예에서, 데이터부들이 파라미터 제어부(320)의 상태에 의거하여 데이터부들의 각각의 파라미터들에 적용될 수도 있거나 안될 수도 있도록, 데이터부들(316, 318)은 파라미터 제어부(320)에 의해 제어될 수도 있다.
또한 다른 실시예에서, 파라미터 제어부(320)는 구성값(310)내의 어떤 데이터부들에 각각 속하는 복수의 비트들을 포함할 수도 있다. 따라서, 특정 데이터부가 데이터부의 각각의 파라미터에 적용되는지에 대해 결정하는 파라미터 제어부(320)내에서 각각의 데이터부(312 내지 318)는 대응하는 비트를 포함할 수도 있다. 임의의 실시예에서 데이터부들(312 내지 318)의 일부만은 파라미터 제어부(320)내의 대응하는 비트에 의해 제어될 수도 있다는 것을 알 수 있다.
구성값(310)의 제어부를 위해 사용하는 다른 가능성 있는 각각의 데이터부들(312 내지 318)이 적용되거나 적용되지 않는 각각의 파라미터들을 결정하는 것이다. 따라서, 구성값(310)의 제어부은 특정 데이터부가 제 1 제어 레지스터내의 제 1 파라미터에 또는 동일의 제어 레지스터나 다른 제어 레지스터내에 위치할 수도 있는 제 2 파라미터에 적용되는지를 결정할 수도 있다. 본 기술분야의 통상적 기술중의 한 기술에 나타난 바와 같이, 데이터의 여러 가지의 콤비네이션들 및 제어부들은 특정 데이터 처리 시스템내의 필요의 파라미터 구성들을 실현시키기 위해 구성값(310)내에서 이용될 수 있었다.
도 4는 예시된 여러 가지의 메모리 구성에 결합하기 위해 유연성을 포함하는 데이터 처리 시스템(400)을 도시한다. 데이터 처리 시스템(400)은 32비트 메모리(440), 16비트 메모리(450) 및 8비트 메모리(460)에서 적어도 1개 및 프로세서(410)를 포함한다. 프로세서(410)는 인터페이스 회로(인터페이스 블록(416))에 실시가능하게 결합된 중앙 처리 유닛(CPU(412))을 포함한다. 프로세서(410)는 단일 집적 회로에 형성될 수도 있고, 마이크로컨트롤러 또는 유사한 장치가 될 수도 있다.
프로세서(410)는 CPU(412) 및 인터페이스 블록(416) 중 하나 또는 모두에 의해 실시가능하게 결합된 부가의 논리(420)를 포함할 수도 있다. 부가의 논리(420)는 시스템에 디버그 및/또는 에뮬레이션 기능을 제공하기 위해 이용되는 디버그/에뮬레이션 회로가 될 수도 있다. 상기 디버그/에뮬레이션 기능은 쇼 사이클들의 인에이블링, 백그라운드 디버그 모드들, 프로그램 추적 등을 포함할 수도 있다. 인터페이스 블록(416)은 데이터 처리 시스템(400)에서 포함된 메모리 구성(저장 회로)에 결합된다. 도 4에 예시된 실시예에서, 프로세서(410)는 32비트 데이터 버스 및 N 비트 어드레스 버스를 포함한다. 메모리 동작들을 수행하기 위해 필요로 하는 제어 신호들은 제어 버스를 통해 메모리 장치들에 전해진다.
32비트 메모리(440)가 데이터 처리 시스템(400)에서 포함된 경우, 전체의 데이터 버스(D[31:0])는 메모리 판독 동작이 인터페이스 블록(416)에 의해 개시될 때 구동될 것이다. 리셋 벡터 어드레스(T 내지 W)에 대응하는 데이터 바이트들이 예시된 바와 같이 32비트 메모리(440)내에 저장되는 경우, 어드레스 0×00, 0×04, 0×08 및 0×0C를 이용하는 4개의 판독 동작들은 데이터 라인들 D[31:24]를 통해 인터페이스 블록(416)에 나타나게 될 리셋 벡터를 구성하는 4개의 바이트를 생성할 것이다.
이들 값들을 검색하기 위해 이용되는 어드레스들 사이의 분리가 32비트 메모리(440)내의 최소한의 어드레스 증가 가능성에 있다는 것을 알 수 있다. 최소한의 증가는 32비트 메모리(440)가 어드레스 라인들 A[1:0]을 수신하지 않거나 무시하지 않는다는 사실에 의거하여 결정된다.
16비트 메모리(450)를 포함하는 데이터 처리 시스템에서, 32비트 메모리(440)에서 리셋 벡터를 검색하기 위해 위에 설명된 동일의 메모리 동작들은 데이터 버스의 동일부상의 16비트 메모리(450)로부터 리셋 벡터를 검색하기 위해 이용될 수 있다. 16비트 메모리(450)가 어드레스 라인 A[1]과 무관하지 않다는 것을 알 수 있다. 그러나, 32비트 메모리(440)(예시된 데이터 처리 시스템에서 가장 큰 비트 폭 가능성을 갖는)내의 어드레싱 그래뉼러리티 가능성(the addressing granularity possible)에 의거하여 리셋 벡터를 구성하는 바이트에 간격을 둠으로써, 페치된 리셋 벡터를 위해 이용된 어드레스들은 여러 가지의 가능성 있는 메모리 구성에 일반적으로 적용될 수 있다.
데이터 처리 시스템이 8비트 메모리(460)를 포함하는 경우, 32비트 또는 16비트 메모리 시스템에 대한 리셋 벡터를 검색하기 위해 이용되는 어드레스의 동일 세트는 8비트 메모리(460)로부터 리셋 벡터를 검색하는데 이용될 수 있다. 8비트 메모리(460)가 어드레스 라인들 A[1:0]을 수신하여 이용하는 것을 알 수 있다. 그러나, 리셋 벡터의 바이트부들을 저장하기 위해 선택된 어드레스 위치들이 32비트 메모리(440)에서의 최소한의 그래뉼러리티 어드레스어블에 의거하여 상호간에 간격을 두기 때문에, 리셋 벡터를 검색하기 위해 이용되는 어드레스가 일반적으로 적용될 수도 있다. 8비트 메모리(460)가 데이터 버스의 8비트부에 결합시키기만 하는 것을 알 수 있다. 도 4에 예시된 예에서는 데이터 라인들 D[31:24]를 포함한다. 그 때문에, 인터페이스 블록(416)은 그 특정 데이터 라인들상에 리셋 벡터의 여러부들에 대응하는 데이터를 수신하는 것을 예상해야 한다. 본 기술분야의 통상적 기술중의 한 기술에 나타난 봐와 같이, 리셋 벡터 어드레스를 구성하는 데이터 바이트들을 수신하기 위해 이용하는 특정 데이터 라인들은 인터페이스 블록(416)과 가능성 있는 8비트 메모리 구성(450) 및 가능성있는 16비트 메모리 구성(460) 사이의 접속들에 의거하여 변경될 수도 있다.
도 3에 대하여 설명된 바와 같이, 리셋 벡터는 데이터 처리 시스템(400)내의 여러 가지의 파라미터들에 적용되는 구성을 포함할 수도 있다. 프로세서(410)는 이 구성값에 의거하여 구성될 수도 있는 파라미터들이 포함될 수도 있는 프로세서의 여러 가지의 블록들내에 다수의 제어 레지스터들(414, 418, 422)을 포함하는 것을 도시한다. 예를 들면, CPU(412)는 제어 레지스터(414)를 포함하는 것을 도시하고, 인터페이스 블록(416)은 제어 레지스터(418)를 포함하는 것을 도시한다. 따라서, 리셋 벡터내에 포함될 수도 있는 구성값은 이 제어 레지스터들(414, 418, 422) 중 한 레지스터내에 포함될 수 있는 파라미터들에 적용되는 값들을 포함할 수도 있다.
도 5는 데이터 처리 시스템을 구성하기 위한 방법에 대응하는 흐름도를 도시한다. 방법은 데이터 처리 시스템이 리셋 상태에서 시작하는 상태 단계(502)에서 시작한다. 방법은 리셋 상태를 빠져나가기 위해 리셋 신호가 해제될 때, 단계(504)에서 시작한다. 단계(504)에서, 데이터 처리 시스템내의 하드웨어는 데이터 처리 시스템을 가동되도록 인에이블하는 여러 가지의 소정의 상태들에 개시된다.
단계(506)에서, 리셋 벡터 어드레스가 생성된다. 도 4의 데이터 처리 시스템(400)에 있어서, 단계(506)에서 생성된 리셋 벡터 어드레스는 메모리에서 리셋 벡터를 검색하기 위해 이용된 베이스 어드레스에 대응할 것이다. 도 4에 예시된 특정 예에서는 어드레스 0×00에 대응할 것이다. 리셋 벡터를 위한 베이스 어드레스가 메모리 구성내의 여러 가지의 부분들에서 위치될 수도 있는 것에 유의할 필요가 있다.
단계(508)에서, 리셋 제외 핸들러 루틴(리셋 벡터)의 어드레스는 하드웨어를 위해 리셋 개시된 값들을 이용하여 페치된다. 32비트 어드레스 공간을 포함하는 시스템에서, 리셋 벡터는 메모리로부터 4개의 각각의 바이트 액세스들을 수행하여 페치된다. 4개의 각각의 바이트 액세스들은 처음에 리셋 벡터 어드레스에 의거하는 메모리를 액세스한 뒤, 후속의 바이트 액세스에 대한 후속의 어드레스를 생산하기 위해 공지의 양에 의해 그 어드레스를 증가시킨다. 바람직하게, 리셋 벡터가 저장될 수도 있는 가장 큰 비트 폭 메모리의 바이트들에서 측정되는 것과 같이 후속의 어드레스를 발생시키기 위해 이용되는 증가는 폭과 동일하다. 예를 들면, 32비트 메모리가 가장 큰 경우, 증가는 4가 될 것이다. 일예에서, 4의 어떤 배수라도 또한 증가로서 동작할 것이지만, 가장 큰 증가들이 메모리 공간을 효율적으로 이용하지 않을 수도 있다는 것을 알 수 있다. 밀접하게 공간을 두는 것과 같이 여러 가지의 메모리 구성내에서 가능하게 되는 증가는 리셋 벡터의 바이트부들를 인에이블하게 하는 것과 같이 가장 큰 비트 폭 메모리의 바이트 폭을 이용한다. 방법상 리셋 벡터를 구성하는 바이트들을 저장할 수도 있는 다수의 다른 메모리 구성들로 작용하는 데이터 처리 시스템을 인에이블하게 하는 것과 같이 리셋 벡터를 페치한다.
단계(510)에서, 단계(508)에서 수행된 페치를 통해 수신되는 데이터 바이트들이 검사된다. 도 3에 대해 설명된 바와 같이, 페치되어 온 리셋 벡터는 구성값을 포함할 수도 있다. 데이터부의 여러 가지의 부분들이 제어부의 부분들에 의거하여 시스템내의 여러 가지의 파라미터들에 적용될 수도 있거나 적용되지 않을 수도 있도록, 구성값은 제어부 및 데이터부를 포함할 수도 있다. 따라서, 구성값내에 포함될 수도 있는 일부의 데이터부들은 무조건적으로 적용될 수도 있는 반면, 다른 데이터부들은 조건부의 방법으로 적용될 수도 있다.
단계(512)에서는 임의의 조건부의 업데이트들이 수행될지를 결정한다. 바람직하게, 상기는 구성값의 제어부들을 검사하여 달성된다. 제어부들이 임의의 조건부의 데이터부들이 데이터들의 제어 파라미터들에 적용될 것을 나타내는 경우, 방법은 단계(514)로 나아간다. 무조건부의 업데이트들이 수행될 경우, 방법은 단계(516)로 나아간다.
단계(514)에서, 데이터부들의 각각의 제어 파라미터들에 조건적으로 적용될 데이터부들은 이 제어 파라미터들을 업데이트하기 위해 이용된다. 따라서, 단계(504)에서 이들 제어 파라미터들을 위해 결정된 개시된 값들은 구성값에서 포함되는 데이터부들에 의해 무시된다. 단계(514)의 완료에서, 방법은 단계(516)로 나아간다.
단계(516), 데이터부들의 각각의 파라미터들에 무조건적으로 적용될 구성값의 이 데이터부들은 데이터부들의 각각의 파라미터들을 업데이트하기 위해 이용된다. 따라서, 개시 상태에 의거하여 이들 파라미터에서 저장된 전자의 값들은 구성값의 무조건적으로 적용된 데이터부들에서 포함된 값들에 의해 무시된다. 예를 들면, 하드웨어가 외부의 16비트 폭 메모리 구성로 상호작용하기 위해 처음에 구성되는 경우, 단계(508)에서 페치된 리셋 벡터는 32비트 메모리가 사실상 이용되는 것을 나타내기 위해 상기 특정한 파라미터를 재구성하는 구성값을 포함할 수도 있다.
단계(518)에서, 리셋 제외 핸들러의 페칭 및 실행이 계속되는 경우, 계속된 페칭 및 실행은 단계들(514, 516)에서 변경되어 왔을 수도 있는 새롭게 업데이트한 제어 파라미터들을 이용한다. 따라서, 제어값을 페치하는 제 1 버스 액세스를 따르는 시스템에서 발생하는 제 2 버스 액세스는 제 1 버스 액섹스 동안 패치된 제어값으로부터 생성된 재구성된 파라미터들을 이용한다. 그 때문에, 단계(518)에서 발생한 페칭 및 실행은 단계(504)에서의 이들 제어 파라미터들에서 저장된 표준의 개시된 값들이 왼쪽에 위치하는 경우의 가능성보다 더 효율적인 방법으로 수행될 수도 있다. 예를 들면, 시스템이 16비트 외부 메모리 및 32비트 외부 메모리를 위해 개시된 경우, 외부 메모리의 비트 폭을 나타내는 파라미터들의 변경은 데이터 버스의 모든 32비트와 같은 보다 효율적인 방법으로 수행될 단계(518)에서 발생하는 페칭이 인에이블할 것이다. 도 2 내지 5에 대해 설명된 본 발명의 실시예들에은 페치된 리셋 벡터에서의 구성값을 위한 가능성 있는을 포함한다. 대안의 실시예에서, 구성값은 리셋 벡터의 후속의 페칭이 예상의 독립형의 데이터부로 페치된다. 따라서, 리셋 상태를 나간 후 리셋 벡터의 페칭을 수행하는 것에 앞서, 리셋 벡터의 페칭 및 다른 후속의 메모리 및 다른 동작들이 보다 효율적인 방법으로 수행되도록, 구성값은 시스템내의 개시된 상태들을 변경하기 위해 검색되어 이용될 수도 있다. 그와 같은 기술을 이용하는 방법을 도시하는 흐름도는 도 6에 예시된다.
단계(602)에서는 처리 시스템을 리셋 상태내에 잔존시키는 리셋 신호가 해제되어 왔는지를 결정된다. 리셋 신호가 해제되어 왔을 경우, 방법은 단계(604)로 나아간다. 단계(604)는 하드웨어가 소정의 상태로 개시한다는 것에서 도 5의 단계(504)와 유사하다.
단계(606)에서, 구성값 어드레스가 생성된다. 단계(608)에서, 구성값 어드레스는 메모리로부터 구성값을 검색하기 위해 이용된다. 구성값은 리셋 신호의 니게이션후 임의의 다른 버스 액세스들에 앞서 개시되는 저장 장치(메모리 구성들 중 하나)를 위해 버스 액세스를 이용하여 검색된다. 구성값의 검색은 시스템의 CPU(412) 또는 메모리 인터페이스(416)에 의해 수행될 수도 있다. 구성값은 파라이터들의 개시된 상태들로부터 변경될 다수의 파라미터들에 따르는 다수의 데이터 바이트들 또는 단일 데이터 바이트를 포함할 수도 있다. 구성값이 다수의 바이트들을 포함하는 경우, 도 2 및 도 4의 리셋 벡터를 페치하기 위해 이용되는 바와 같이, 유사한 어드레싱 구성은 여러 가지의 다른 가능성 있는 메모리 구성들을 지지할 때 처리 시스템이 리셋을 성공적으로 나갈 수 있다는 것을 확실하게 하기 위해 이용되어야 한다.
단계(612)에서, 구성값을 구성하는 검색된 하나 이상의 데이터 바이트들이 검사된다. 단계(614)에서는 결정이 구성값의 제어부에 의거하는 곳에서 실행될 필요가 있는 조건부의 업데이트가 있는지를 결정한다. 제어 센셕이 임의의 조건부의 업데이트들이 발생한 것을 나타내는 경우, 방법은 단계(616)로 나아간다. 조건부의 업데이트들이 발명하지 않은 경우, 방법은 단계(616)를 우회하여, 단계(618)로 직접 나아간다.
단계(616)에서, 발생되는 임의의 조건부의 업데이트들이 수행된다. 단계(618)에서, 제어부에서의 무조건이거나 임의의 특정 상태에 따르지 않는 임의의 업데이트들이 수행된다. 따라서, 파라미터들의 상태들이 단계(604)에서 세트된 상태들로부터 변경되도록, 단계들(616, 618)은 여러 가지의 파라미터들을 구성할 수도 있다. 도 7에 도시되는 것에 따라 이것은 제어 레지스터에서 검색된 구성값의 최소부(at least a portion)를 저장함으로써 달성될 수도 있다. 바람직하게, 파라미터 구성은 구성값의 초기의 검색후에 임의의 부가의 버스 액세스들에 앞서 발생한다.
여러 가지의 파라미터들이 시스템을 구성하기 위해 변경되게 되었다면, 방법은 리셋 제외 핸들러 루틴은 여러 가지의 파라미터들을 위해 새롭게 업데이트된 값들을 이용하여 페치되는 단계(619)로 나아간다. 따라서, 단계들(616, 618)에서 업데이트된 파라미터들이 리셋 제외 핸들러의 어드레스들을 저장하는 메모리를 어드레스하기 위해 이용되는 칩 선택 레지스터에 대응하는 파라미터들을 포함하는 경우, 단계(619)에서 수행된 페칭은 본래의 개시 설정들에 의거할 수 있는 것보다 더 효율적인 방법으로 수행될 것이다. 단계(620)에서, 리셋 제외 핸들러 루틴은 메모리 판독 동작들을 포함하는 버스 사이클들을 통해 검색되어, 단계(619)에서 검색된 어드레스에 의거하여 실행된다. 단계(620)에서 수행된 페치 및 실행이 변경된 파라미터 값들을 이용하여 수행될 것을 알 수 있으며, 상기 페치 및 실행은 시스템내에 포함된 메모리에 대응하는 다른 버스 시간 지표들, 요구되는 대기 상태들의 수, 바이트 배열 또는 데이터 폭을 포함할 수도 있다. 파라미터들을 구성하는 것은 이들 파라미터들을 위해 본래의 개시된 값들로 가능했었던 것 보다 더 효율적인 방법에서 발생되도록 페치 및 실행을 인에이블할 수도 있다.
다른 실시예에서, 구성값에 의거하여 구성된 파라미터들은 처리 시스템내에 포함된 디버그 또는 에뮬레이션 특징들과 연관된 디버그 또는 에뮬레이션 특징들을 포함한다. 그 때문에, 디버그 또는 에뮬레이션 특징들은 즉시 리셋으로부터 나오는 인에이블 또는 디스에이블하게 될 수 있고, 그러한 특징들의 이용을 높일 수도 있다.
도 7은 데이터 처리 시스템내에 포함된 여러 가지의 파라미터들을 구성하도록 구성값의 이용을 나타내는 블록도를 도시한다. 구성값(710)은 리셋 벡터에 무관할 수도 있는 독립의 값으로 도시되고, 상기 구성값은 도 3의 구성값을 갖는 경우는 아니다. 따라서, 구성값(710)은 처리 시스템을 위해 리셋 벡터를 페칭하는 것에 앞서 메모리로부터 페치될 수 있다.
도 3의 구성값(310)을 갖는 경우와 같이, 도 7의 구성값(710)은 데이터부 및 제어부을 포함할 수도 있다. 설명된 바와 같이, 도 7의 구성값을 위한 데이터부는 데이터부들(712 내지 718)을 포함한다. 이들 데이터부들은 제어 레지스터(350)의 여러 가지의 파라미터들(A352 내지 C356)을 구성하기 위해 이용되어, 또한 다른 시스템 제어 파라미터들(762)을 위치된 외부의 제어 레지스터(350)에 구성하기 위해 이용될 수도 있다. 파라미터들(A 내지 C)이 특정 칩 선택 제어 레지스터들에 대해 기술된 여러 가지의 파라미터들이나 디버킹 또는 에뮬레이션 동작들과 연관된 이들 제어 레지스터가 될 수도 있다는 것을 알 수 있다. 구성값(710)의 파라미터 제어부(720)는 시스템내의 여러 가지의 파라미터들을 위한 임의의 업데이트들이 수행되는지를 결정하기 위해 이용될 수 있다. 따라서, 약간의 여러 가지의 파라미터들을 위한 업데이트들이 구성값(710)의 제어부에 의해 제어되는 것과 같이 조건부의 방법으로 수행될 수도 있다.
도 8은 3개의 다른 가능성 있는 메모리 구성들의 하나 이상에 결합된 프로세서(810)를 포함하는 것이 예시된 데이터 처리 시스템(800)을 도시한다. 따라서, 프로세서(810)는 32비트 메모리(840), 16비트 메모리(850) 및 8비트 메모리(860)중 임의의 1개에 결합될 수도 있다. 도 4의 프로세서(410)를 갖는 경우와 같이, 프로세서(810)는 제어 레지스터(822)를 포함하는 제어 레지스터(818), 부가의 논리(820)을 포함하는 제어 레지스터(814), 인터페이스 블록(816)을 포함한다. 설명된 바와 같이, CPU(812)는 메모리에 대한 액세스로 CPU를 제공하는 인터페이스 블록(816)에 실시가능하게 결합된다. 부가의 논리(820)은 CPU(812) 및 인터페이스 블록(816)중 하나 이상에 실시가능하게 결합된다.
각각의 메모리들(840, 850, 860)에 대해 설명된 바와 같이, 구성 정보(862)는 각각의 여러 가지의 메모리 구성들내의 동일의 어드레스를 통해 액세스되는 위치내에 저장된다. 특히, 예를 들어 설명된 어드레스 0×00은 여러 가지의 메모리 구성들 중 임의의 하나로부터 구성 정보를 검색하기 위해 이용될 수 있고, 데이터 라인들 31:24는 선택된 메모리로부터의 구성 정보로 구동될 것이다.
8비트 메모리(860)가 데이터 처리 시스템내에 포함되는 것을 인지하기 위해 인터페이스 블록(816)이 구성되도록, 8비트 메모리(860)의 구성 정보(862)는 파라미터 설정들을 바람직하게 포함한다. 그 때문에, 8비트 메모리(860)의 후속의 메모리 동작들은 메모리의 구성을 적당하게 맞추게 될 수 있다. 그 때문에, 리셋 벡터 데이터 바이트들(T, U, V, W)을 포함하는 리셋 벡터는 8비트 메모리(860)로 후속의 메모리 어드레스들에 저장될 수 있어, 이들 후속의 메모리 어드레스들은 인터페이스 블록(816)에 의해 액세시블하게 될 것이다.
반대로, 16비트 메모리(850)가 데이터 처리 시스템(800)내에 포함되도록, 16비트 메모리(850)는 인터페이스 블록(816)을 알리는 자체 소유의 구성 정보(852)를 바람직하게 포함한다. 그 때문에, 리셋 벡터에 대응하는 데이터 바이트들은 16비트 메모리(850)내의 16비트 하프 워드로 배열될 수 있어, 인터페이스 블록(816)은 그 형식으로 리셋 벡터를 검색 및 이용하는 것이 가능할 것이다.
데이터 처리 시스템(800)내에 포함될 때, 32비트 메모리(840)는 32비트 메모리(840)가 데이터 처리 시스템(800)내에 포함되는 것을 인터페이스 블록(816)이 인지하도록, 32비트 메모리(840)는 파라미터 설정들을 포함하는 구성 정보(842)의 자체 소유의 고유 세트를 바람직하게 포함한다. 그 때문에, 리셋 제외 루틴이 실행되도록, 32비트 메모리(840)에 대한 단일 워드 액세스는 리셋 벡터를 검색하기 위해 이용될 수 있다. 리셋 벡터에 앞서 검색될 구성 정보를 허용하여, 검색이 데이터 처리 시스템내에 포함된 메모리 구성을 위해 가장 최상인 방법으로 수행되도록, 구성 정보내에 포함된 파라미터 설정들은 리셋 벡터를 검색하는 동안 이용될 수 있다는 것을 알 수 있다.
본 발명은 여러 가지의 비트 폭들의 메모리들을 이용하는 리셋으로부터 빠져나갈 때, 구성될 데이터 처리 시스템을 가능하게 하는 방법 및 장치를 제공한다.
전술한 명세서에 있어서, 본 발명은 특정 실시예들을 참조로 기술되어 왔다. 그러나, 본 기술분야의 통상의 기술 중 한 기술은 여러 가지의 변경들 및 변화들이 이하 청구항들에 기재되는 바와 같이 본 발명의 범위에서 벗어나지 않고 이루어질 수 있음을 알 수 있다. 따라서, 명세서 및 도면들은 제한된 의미보다 양호한 설명으로 간주되어, 모든 상기 변경들이 본 발명의 범위내에 포함되도록 의도된다.
이, 다른 장점들 및 문제들에 대한 해결들은 특정 실시예들에 대해 상술되어 왔다. 그러나, 이점들, 장점들, 문제들에 대한 해결들 및 임의의 이점, 장점 또는 보다 명백하게 되거나 발생하기 위해 해결이 발생될 수 있는 임의의 요소(들)가 비평, 요구 또는 필수적인 특징 또는 임의의 요소 또는 모든 청구항들과 같이 구성되지는 않는다. 여기에 이용된 바와 같이, 요소들의 리스트를 포함하는 프로세스, 방법, 물품 또는 장치들이 그의 요소들을 포함하지는 않지만, 상기 프로세스, 방법, 물품 또는 장치에 명백하게 리스트되지 않거나 고유하지 않은 다른 요소들을 포함할 수도 있는 것과 같이, 용어들 "포함하다", "포함하는" 또는 그의 다른 변형은 비배타적인 포함을 커버하도록 의도된다.

Claims (6)

  1. 데이터 처리 시스템을 구성하는 방법에 있어서:
    리셋 신호의 해제에 응답하여, 저장 장치에 대한 제 1 버스 액세스를 개시하는 단계로서, 상기 제 1 버스 액세스는 상기 리셋 신호의 해제 후에 다른 어떤 버스 액세스들보다 앞서 실행되는, 상기 개시 단계;
    상기 저장 장치로부터 구성값을 검색하는 단계; 및
    후속의 버스 액세스를 실행하기 전에, 상기 구성값을 사용하여 상기 데이터 처리 시스템의 파라미터를 구성하는 단계를 포함하고,
    상기 파라미터는 버스 타이밍 특성을 지정하고, 상기 버스 타이밍 특성은 상기 후속의 버스 액세스 동안 이용되는 버스 대기 상태 정보를 포함하는, 데이터 처리 시스템 구성 방법.
  2. 데이터 처리 시스템을 구성하는 방법에 있어서:
    리셋 신호의 해제에 응답하여, 저장 장치에 대한 제 1 버스 액세스를 개시하는 단계로서, 상기 제 1 버스 액세스는 상기 리셋 신호의 해제 후에 다른 어떤 버스 액세스들보다 앞서 실행되는, 상기 개시 단계;
    상기 저장 장치로부터 구성값을 검색하는 단계; 및
    후속의 버스 액세스를 실행하기 전에, 상기 구성값을 사용하여 상기 데이터 처리 시스템의 파라미터를 구성하는 단계를 포함하고,
    상기 파라미터는 상기 데이터 처리 시스템 내의 작은 엔디안 구성(little endian configuration) 및 큰 엔디안 구성(big endian configuration) 중 하나를 선택하는, 데이터 처리 시스템 구성 방법.
  3. 데이터 처리 시스템을 구성하는 방법에 있어서:
    리셋 신호의 해제에 응답하여, 저장 장치에 대한 제 1 버스 액세스를 개시하는 단계로서, 상기 제 1 버스 액세스는 상기 리셋 신호의 해제 후에 다른 어떤 버스 액세스들보다 앞서 실행되는, 상기 개시 단계;
    상기 저장 장치로부터 구성값을 검색하는 단계; 및
    후속의 버스 액세스를 실행하기 전에, 상기 구성값을 사용하여 상기 데이터 처리 시스템의 파라미터를 구성하는 단계로서, 상기 파라미터는 상기 데이터 처리 시스템의 디버그 특징 및 에뮬레이션 특징 중 적어도 하나의 인에이블먼트를 결정하는, 상기 구성 단계를 포함하는, 데이터 처리 시스템 구성 방법.
  4. 데이터 처리 시스템을 구성하는 방법에 있어서:
    제 1 어드레스로부터 리셋 벡터의 제 1 부분을 검색하는 단계; 및
    상기 제 1 어드레스에 인접하지 않는 제 2 어드레스로부터 상기 리셋 벡터의 제 2 부분을 검색하는 단계로서, 적어도 하나의 비트는 상기 리셋 벡터의 상기 제 1 및 제 2 부분들을 분리시키며, 상기 적어도 하나의 비트는 상기 리셋 벡터의 어느 부분을 저장하는데 사용되지 않는, 상기 검색 단계를 포함하는, 데이터 처리 시스템 구성 방법.
  5. 삭제
  6. 데이터 처리 시스템을 구성하는 방법에 있어서:
    리셋 신호의 해제에 응답하여, 저장 장치에 대한 제 1 버스 액세스를 개시하는 단계로서, 상기 제 1 버스 액세스는 상기 리셋 신호의 해제 후에 다른 어떤 버스 액세스들보다 앞서 실행되는, 상기 개시 단계;
    상기 저장 장치로부터 구성값을 검색하는 단계; 및
    후속의 버스 액세스를 실행하기 전에, 상기 구성값을 사용하여 상기 데이터 처리 시스템의 파라미터를 구성하는 단계를 포함하고,
    상기 구성값은 제어부 및 데이터부를 포함하고, 상기 데이터부의 적어도 일부의 사용은 조건적이고, 상기 제어부의 적어도 일부는, 상기 데이터부의 적어도 일부가 사용되는지 여부를 결정하는, 데이터 처리 시스템 구성 방법.
KR1020000070065A 1999-11-23 2000-11-23 리셋 후 데이터 처리 시스템을 구성하는 장치 및 방법 KR100763173B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/447,253 US6625727B1 (en) 1999-11-23 1999-11-23 Apparatus and method for configuring a data processing system by retrieving a configuration value from storage device using reset vector and configuring parameters after reset
US09/447,253 1999-11-23
US9/447,253 1999-11-23

Publications (2)

Publication Number Publication Date
KR20010051902A KR20010051902A (ko) 2001-06-25
KR100763173B1 true KR100763173B1 (ko) 2007-10-08

Family

ID=23775606

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000070065A KR100763173B1 (ko) 1999-11-23 2000-11-23 리셋 후 데이터 처리 시스템을 구성하는 장치 및 방법

Country Status (5)

Country Link
US (1) US6625727B1 (ko)
JP (1) JP4271843B2 (ko)
KR (1) KR100763173B1 (ko)
CN (1) CN1244059C (ko)
TW (1) TW501003B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6845444B2 (en) * 2001-08-23 2005-01-18 Silicon Integrated Systems Corp. Method and apparatus for reducing strapping devices
WO2006013498A1 (en) * 2004-07-30 2006-02-09 Koninklijke Philips Electronics N.V. Data processing device adaptable to variable external memory size and endianess
US7620795B1 (en) * 2005-01-14 2009-11-17 Xilinx, Inc. Controller for a processor having internal memory
US8914624B2 (en) * 2010-12-22 2014-12-16 Silicon Laboratories Inc. Changing the reset state of a processor
CN102308284A (zh) * 2011-07-01 2012-01-04 华为技术有限公司 用于快速复位设备的方法和装置
US9465755B2 (en) 2011-07-18 2016-10-11 Hewlett Packard Enterprise Development Lp Security parameter zeroization
US9442734B2 (en) * 2014-02-11 2016-09-13 Apple Inc. Completion time determination for vector instructions
US9632775B2 (en) 2014-02-11 2017-04-25 Apple Inc. Completion time prediction for vector instructions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0270064A2 (en) * 1986-12-01 1988-06-08 Siemens Aktiengesellschaft High-availability computer system with a support logic for a warm start
EP0356538A1 (en) * 1988-08-27 1990-03-07 International Business Machines Corporation Arrangement in data processing system for system initialization and reset
US5652844A (en) * 1995-06-26 1997-07-29 Motorola, Inc. Flexible pin configuration for use in a data processing system during a reset operation and method therefor

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4692870A (en) * 1984-12-20 1987-09-08 Pitney Bowes Inc. General purpose processor module for mailroom equipment
US4980850A (en) * 1987-05-14 1990-12-25 Digital Equipment Corporation Automatic sizing memory system with multiplexed configuration signals at memory modules
US5408664A (en) * 1992-06-19 1995-04-18 Silicon Graphics, Incorporated System and Method for booting computer for operation in either of two byte-order modes
US5327531A (en) * 1992-09-21 1994-07-05 International Business Machines Corp. Data processing system including corrupt flash ROM recovery
US5630099A (en) * 1993-12-10 1997-05-13 Advanced Micro Devices Non-volatile memory array controller capable of controlling memory banks having variable bit widths
US5727208A (en) * 1995-07-03 1998-03-10 Dell U.S.A. L.P. Method and apparatus for configuration of processor operating parameters
US5909557A (en) * 1995-11-20 1999-06-01 Lucent Technologies Inc. Integrated circuit with programmable bus configuration
US5682528A (en) * 1995-12-22 1997-10-28 Tandem Computers Incorporated Spoon-feed initialization in a multiprocessor system
US5784625A (en) * 1996-03-19 1998-07-21 Vlsi Technology, Inc. Method and apparatus for effecting a soft reset in a processor device without requiring a dedicated external pin
US6226736B1 (en) * 1997-03-10 2001-05-01 Philips Semiconductors, Inc. Microprocessor configuration arrangement for selecting an external bus width
US5898896A (en) * 1997-04-10 1999-04-27 International Business Machines Corporation Method and apparatus for data ordering of I/O transfers in Bi-modal Endian PowerPC systems
US6353927B1 (en) * 1997-10-14 2002-03-05 Lucent Technologies Inc. Data download technique into installed memory
US6298426B1 (en) * 1997-12-31 2001-10-02 Intel Corporation Controller configurable for use with multiple memory organizations
US6145122A (en) * 1998-04-27 2000-11-07 Motorola, Inc. Development interface for a data processor
US6356965B1 (en) * 1998-09-08 2002-03-12 Compaq Computer Corporation Hotkey for network service boot
US6480948B1 (en) * 1999-06-24 2002-11-12 Cirrus Logic, Inc. Configurable system memory map

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0270064A2 (en) * 1986-12-01 1988-06-08 Siemens Aktiengesellschaft High-availability computer system with a support logic for a warm start
EP0356538A1 (en) * 1988-08-27 1990-03-07 International Business Machines Corporation Arrangement in data processing system for system initialization and reset
US5652844A (en) * 1995-06-26 1997-07-29 Motorola, Inc. Flexible pin configuration for use in a data processing system during a reset operation and method therefor

Also Published As

Publication number Publication date
US6625727B1 (en) 2003-09-23
JP2001209463A (ja) 2001-08-03
JP4271843B2 (ja) 2009-06-03
TW501003B (en) 2002-09-01
CN1244059C (zh) 2006-03-01
KR20010051902A (ko) 2001-06-25
CN1297200A (zh) 2001-05-30

Similar Documents

Publication Publication Date Title
US4674089A (en) In-circuit emulator
JP5521092B2 (ja) データ処理装置
WO2003025721A2 (en) Microcontroller with configurable onboard boot-ram
US5909557A (en) Integrated circuit with programmable bus configuration
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
US7441102B2 (en) Integrated circuit with functional state configurable memory and method of configuring functional states of the integrated circuit memory
US6745301B2 (en) Microcontroller programmable method for accessing external memory in a page mode operation
KR100763173B1 (ko) 리셋 후 데이터 처리 시스템을 구성하는 장치 및 방법
US4223381A (en) Lookahead memory address control system
US5428770A (en) Single-chip microcontroller with efficient peripheral testability
JPH07325711A (ja) Romプログラム変更装置
US6353880B1 (en) Four stage pipeline processing for a microcontroller
US6076161A (en) Microcontroller mode selection system and method upon reset
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
US8533439B2 (en) Elastic shared RAM array including contiguous instruction and data portions distinct from each other
US7007172B2 (en) Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
KR19980079596A (ko) 멀티 프로세서 시스템의 프로세서 정지 상태 구현 방법 및 장치
EP0755538B1 (en) Apparatus and method for updating information in a writable microcode control store
US8074061B2 (en) Executing micro-code instruction with delay field and address of next instruction which is decoded after indicated delay
EP1177499B1 (en) Processor and method of executing instructions from several instruction sources
US20020004877A1 (en) Method and system for updating user memory in emulator systems
US5594913A (en) High speed memory access system for a microcontroller with directly driven low order address bits
Lingjaerde A fast microprogrammable processor
US20050081196A1 (en) Program redirection and modification method for embedded processors with a limited amount of static random access memory

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20120907

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130910

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150908

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160909

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee