KR100385493B1 - 재구성가능한프로그램상태워드를갖는마이크로콘트롤러 - Google Patents

재구성가능한프로그램상태워드를갖는마이크로콘트롤러 Download PDF

Info

Publication number
KR100385493B1
KR100385493B1 KR1019960702579A KR19960702579A KR100385493B1 KR 100385493 B1 KR100385493 B1 KR 100385493B1 KR 1019960702579 A KR1019960702579 A KR 1019960702579A KR 19960702579 A KR19960702579 A KR 19960702579A KR 100385493 B1 KR100385493 B1 KR 100385493B1
Authority
KR
South Korea
Prior art keywords
register
bits
psw
operative
microcontroller
Prior art date
Application number
KR1019960702579A
Other languages
English (en)
Other versions
KR960706123A (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 KR960706123A publication Critical patent/KR960706123A/ko
Application granted granted Critical
Publication of KR100385493B1 publication Critical patent/KR100385493B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

마이크로콘트롤러는 프로그램 상태 워드(PSW)의 비트들을 한 버스에 또는 한 버스로부터 루팅(routs)한다. 종래 세대의 마이크로콘트롤러와 호환성 있는 모드에 있을 때마다, 선택 및 전송 회로는, 판독 동작 동안, 현재 세대의 PSW의 비트들을, 종래 세대의 마이크로콘트롤러에 의해 처리되도록 패터닝된 상기 버스 상에 배치한다. 기록 동작에 있어서, 상기 회로는 버스로부터 비트들을 종래 세대와 호환성이 있는 장치 내로 이동시키고, 그 비트들을 현재 세대의 장치 내에 기억시킨다. 또한, 상기 회로에 의해, ALU와 같은 다양한 유닛은 버스 전송을 행하지 않고, PSW 레지스터 비트들을 직접 갱신할 수 있다.

Description

재구성 가능한 프로그램 상태 워드를 갖는 마이크로콘트롤러 {Microcontroller with a reconfigurable program status word}
마이크로콘트롤러들은 더욱 복잡한 작업들을 더욱 짧은 시간에 실행하도록 요청되고 있다. 이러한 요청은 마이크로콘트롤러가 더욱 복잡하고 고속화되도록 재설계를 필요로 하고 있다. 더욱 복잡한 마이크로콘트롤러는 모니터 될 필요가 있는 많은 기능 및 동작을 갖는다. 그 결과, 재설계된 마이크로콘트롤러의 프로그램 상태 워드(PSW)는 대량의 상태 비트로 대규모화되었다. 예를 들어, 마이크로콘트롤러는 8 비트 아키텍처에서 16 비트 아키텍처로 증가할 때, 상기 PSW는 12 또는 16 비트로 증가될 수 있다. 재설계 프로세스의 아키텍처 및 레이아웃뿐만 아니라 PSW 사이즈를 고려하기 때문에, 이전 세대(previous generation)의 마이크로콘트롤러의 비트 배열과 비교할 때, 때로는 PSW의 상태 비트들을 재배열 및 재위치 지정할 필요가 있다. 그러나, 종래 세대(prior generation)의 마이크로콘트롤러들의 사용자들은 종래 세대에 설계된 소프트웨어를 폐기하거나 재작성하는 것을 꺼리며, 오래된 소프트웨어를 작동시킬 수 있는 차세대의 마이크로콘트롤러들을 선호한다.
본 발명은 특정한 포맷의 프로그램 상태 워드의 상태 비트들(status bits)을 유지하도록 동작하는 프로그램 상태 워드(program status word)(PSW) 레지스터를 포함하는 마이크로콘트롤러에 관한 것이다.
제 1 도는 본 발명의 마이크로콘트롤러의 아키텍처를 도시한 도면.
제 2 도는 마이크로콘트롤러의 프로그램 상태 워드(PSW)를 도시한 도면.
제 3 도는 본 발명의 특정 기능 레지스터의 비트 어드레스 인코딩을 도시한 도면.
제 4 도는 이전 세대의 마이크로콘트롤러에 의해 사용된 PSW 비트들의 배열을 도시한 도면.
제 5 도는 본 발명에 따른 PSW 판독 회로의 한 예를 도시한 도면.
제 6 도는 본 발명에 따른 PSW 기록 회로의 한 예를 도시한 도면.
본 발명의 목적은 새로운 세대(newer generation)의 마이크로콘트롤러들의 PSW를 이전 세대의 마이크로콘트롤러의 PSW와 호환성을 갖도록 하기 위한 것이다.
본 발명의 다른 목적은 PSW의 사이즈 및 비트 배열이 세대간에 변경될때에도 호환성을 보장하기 위한 것이다.
본 발명의 또 다른 목적은 종래 또는 이전 세대의 명령들 및 새로운 세대의 명령들, 또는 이전 및 새로운 동작 모드들이 동일한 마이크로콘트롤러 상에 공존하도록 허용하기 위한 것이다.
본 발명에 의해, 서두에서 규정된 마이크로콘트롤러를 제공함으로써 상술한 목적을 달성하고, PSW 레지스터는 제 1 포맷과는 다른 제 2 포맷의 다른 프로그램 상태 워드의 다른 상태 비트를 유지하도록 동작하게 되고, 마이크로콘트롤러는 상기 레지스터에 결합되어 상기 레지스터로부터 및/또는 상기 레지스터로 상태 비트들을 선택적으로 전송하도록 동작하게 되는 선택 및 전송 수단을 포함하는 것을 특징으로 한다.
프로그램 상태 워드는 이전 세대의 마이크로콘트롤러와의 호환성을 갖도록 재구성될 수 있고, 다수의 마이크로콘트롤러 모드가 공존하도록 허용한다. 보다 구체적으로, 선택 및 전송 수단은 마이크로콘트롤러의 다수의 모드에 응답하는 프로그램 상태 워드의 비트들을 선택 및 재배열하도록 동작하게 된다. 마이크로콘트롤러가 이전 세대의 마이크로콘트롤러 명령과 호환성을 갖는 모드에 있을 때마다, 또는 원할 때는 언제든지, 상기 선택 및 전송 수단은 현재 세대의 PSW의 비트들을 이전 세대의 마이크로콘트롤러에 의한 프로세싱에 적합한 위치의 버스상에 배치한다. 이는, 이전 및 새로운 동작 모드들이 공존하도록 허용한다. 또한, 선택 및 전송 수단은, 이전 세대와 호환성이 있는 장치 내의 버스로부터 비트들을 판독하고, 현재 세대의 장치에 기억하도록 동작하게 된다. 본 발명은 마이크로콘트롤러의 모드에 의존하는 적당한 위치에 PSW의 비트들을 루팅(route)하고, 대규모의 PSW를 이전 세대의 마이크로콘트롤러의 소규모 PSW로 변환하는 시스템을 제공한다.
첨부되는 도면들을 참조하여, 본 발명에 대해서 예를 통해 보다 상세히 설명한다.
도면들에 있어서, 동일한 참조 부호들은 유사하거나 대응하는 기능들을 나타낸다.
제 1 도에는 본 발명의 마이크로콘트롤러 시스템(10)의 아키텍처가 도시되어 있다. 시스템(10)은, 16 비트 산술 연산을 행하고 내부 명령 및 데이타 기억 장치를 포함하는 단일 칩 마이크로콘트롤러(12)를 포함한다. 마이크로콘트롤러(12)는 24 비트 외부 어드레스 기능을 통해 외부 장치들(14 및 16)을 지원하고, 16 메가바이트의 외부 명령 기억장치(18) 및 16 메가바이트의 외부 데이타 기억 장치(20)를 지원한다. 마이크로콘트롤러(12)는 외부 양방향 어드레스 및 데이타 버스(24)를 통해 외부 메모리들(18 과 20)과 통신하는 버스 인터페이스 유닛(22)을 포함한다. 마이크로콘트롤러(12)는 특정 기능 레지스터들(SFR)(40)로서 어드레스 가능한 I/O 포트들(26-28)을 통해 외부 장치들(14 및 16)과 통신한다. 포트들(26-28)은, 다른 특정 기능 레지스터들과 마찬가지로, 버스 인터페이스 유닛(22)을 통해 내부 주변 버스(42) 상에서 어드레스 가능하다. 또한, 데이타 메모리(20)는 점선으로 표시되어 액세스되는 I/O 포트들(26-28)을 통해 오프-칩 메모리 매핑된 I/O(off-chip memory mapped I/O)로서 어드레스될 수 있다. 일부의 레지스터들이 비트 어드레스 가능한 온-칩 특정 기능 레지스터들(on-chip special function resisters)(40)은 또한, ALU(72)뿐만 아니라 외부 장치들과 통신하는 인터럽션 제어 유닛(84), 실행 유닛(70) 및, 플래그 및 일반 제어(flag and general control)를 위한 디코딩 유닛(74)에 결합된 프로그램 상태 워드(PSW) 레지스터(44)를 포함한다. 또한, 특정 기능 레지스터(40)에는 인터럽트 레지스터(46), 타이머 레지스터(50) 및, 시스템 구성 비트들을 수용하는 시스템 구성 레지스터(SCR)(54)가 제공된다. PSW레지스터(44)는 일반 레지스터 동작들을 위한 주변 버스(42)를 통해 어드레스 가능하고, 또한, 다른 실행 관련 동작들을 위한 내부 버스(86)로의 접속을 통해 어드레스 가능하다. 또한, PSW 레지스터(44)는 ALU(72) 및, ALU(72) 및 실행 유닛(70)과 연관된 패리티(parity), 오버플로 결함(overflow defect), 제로 결함(zero defect) 및 오퍼레이터 결함 회로들(operator defect circuits)에 결합된다. 버스 인터페이스 유닛(22)은 마이크로콘트롤러 코어(core)(60)로부터 주변 특정 기능 레지스터(40)를 분리시킨다. 코어(60)는 마이크로코드(microcode) 프로그램 가능한 실행 유닛(70)을 포함하고, ALU(72) 및 다른 유닛들에 의해 명령들의 실행을 제어한다. 디코딩 유닛(74)에 의해 디코딩된 명령들은, 페치 유닛(fetch unit)(78)에 의해, 명령 메모리 공간의 일부인 내부 EPROM(76) 또는 외부 명령 메모리(18)로부터 페치된다. 레지스터 파일(82)의 범용 레지스터들과 마찬가지로, 데이타 메모리 공간의 일부인 정적 RAM(80)은 명령 및 데이타 기억 장치로서 이용 가능하다.
프로그램 상태 워드 레지스터(44)는, 제 2도에 도시된 바와 같은, 새로운 세대의 명령들에 의해 액세스 가능한 프로그램 상태 워드(100)를 포함한다. PSW 레지스터(44)는 비트-어드레스 가능한 SFR 공간(40)내의 워드 레지스터이다. 하이 바이트(PSWH)(102)의 절반은 보호되고 시스템/감시 레벨 플래그를 포함한다. 제 2 또는 로우 바이트(PSWL)(104)는 모든 유저 레벨 플래그를 포함하고 아래에 기술된 바와 같은 기능을 한다. 대부분의 산술 논리 및 데이타 전송 명령들은 상태 플래그들 모두 또는 일부를 갱신한다. PSW 상태 플래그들의 갱신은 PSW로의 임의의 기록동안 억제된다. PSW에 기록된 데이타는 통상의 플래그 갱신보다 우선한다. 이는 PSW의1/2에 한 바이트를 기록하는 동안 PSW의 두 바이트에 적용된다. C는 캐리 플래그(carry flag)이고, 이 플래그의 주 기능은 ALU(72)에 의한 산술 연산의 최상위 비트의 캐리-아웃(carry out)을 기억하는 것이다. AC는 산술 명령 동안 ALU(72)의 최하위 니블(nibble)의 캐리-아웃에 의해 갱신되는 보조 캐리 플래그이다. RS1 및 RS0은 주어진 시간에서 활성인 레지스터 파일(82)내의 레지스터(R0 내지 R7)의 4개의 그룹들 또는 뱅크들 중 하나를 식별하는 레지스터 뱅크 선택 비트들이다. 4개의 레지스터 뱅크들은 또한, 데이타 메모리의 하부 32 바이트들(bottom 32 bytes)로서 직접 또는 간접으로 어드레스 가능하다. V는 오버플로 플래그이고 ALU(82)에 의해 실행되는 산술 명령들 동안 2의 상보 산술 오버플로 조건(t잰 complement arithmetic overflow condition)에 의해 설정된다. 시스템 모드는 리셋(reset)에서 선택되고, 인터럽트 처리 동안 변경될 수 있으며, PSW를 팝핑(popping)함으로써 인터럽트로부터 복귀(RETI)에 의해 기록된다. 이는 멀티태스킹 응용들(multitasking applications)에 보조로서 의도된다. TM은 트레이스 모드 비트(trace-mode bit)이고 프로그램 개발을 보조하는데 사용되어, 명령들 간의 트레이싱(tracing)을 허용한다. Z는 최초의 연산 표시 또는 제로 결함 플래그이고, 데이타 연산 이후에, Z 플래그는 연산이 0의 결과로 복귀되는 경우에 1로 설정되며, 그렇지 않으면, Z 플래그는 0으로 클리어 된다. N은 음의 표시 플래그이며, 데이타 연산 이후에, N 플래그는 연산이 설정된 부호 비트(MSB) 설정의 결과로 복귀하는 경우에 1로 설정되고, 그렇지 않으면, N 플래그는 0으로 클리어 된다. IM3-IM0는 실행 우선 인터럽트 마스크 비트들(execution priority interrupt maskbits)이며, 이들 비트는 현재 실행 코드의 실행 우선 순위(execution priority)를 식별하는데 사용된다. 인터럽트의 경우에, 이들 비트는 행해지고 있는 인터럽트의 인터럽트 우선 순위로 설정될 것이다. 이들 비트는 또한, 인터럽트 처리 중에 변경 또는 기록될 수 있다. 마이크로콘트롤러(12)는, 트랩들(traps), 인터럽트들 및, 인터럽트로부터의 복귀 동안에 그들 비트의 저장 및 복원(saving and restoring)을 지원하고, 또한, 그들 비트로부터의 라인들을 인터럽트 제어 유닛(84)을 통해 코어 외부의 임의의 인터럽트 제어 모듈에 제공한다. 부가적인 플래그는 마이크로콘트롤러(12)에 존재하는데, 이는, PSW에서 반영되지도 않고, 또한 실행 중인 프로그램에 직접 나타나지도 않는다. 이는 누산기 제로 플래그(accumulator zero flag)(AZ)이다. 이는, 80C51 마이크로콘트롤러 점프 제로(Microcontroller Jump-Zero)(JZ) 및 점프-낫-제로(Jump-Not-Zero)(JNZ) 명령들을 구현하는데 사용된다. 80C51 코드는 그들 명령을 실행하기 위해 A 레지스터 내용들을 직접 테스트한다. 마이크로콘트롤러(12)는, 80C51 마이크로콘트롤러 누산기를 모방하는데 사용되는 레지스터인 R4L을 변경하는 임의의 연산 동안 삽입된 AZ 플래그를 갱신한다.
시스템 구성 레지스터(SCR)(54)는 시스템 구성 플래그들을 수용하는 1 바이트 레지스터이다. 이러한 레지스터(54)는 리셋 이후에 한번 프로그램되고, 그 이후에 방치되도록 의도된 플래그들을 포함한다. 따라서, 그들 플래그는 인터럽트들 또는 다른 절차 동안 저장될 필요가 없다. 그들 플래그 중의 하나는 본 발명에서 중요한 CM 플래그이다. CM은 호환성 모드 플래그이다. 이는 80C51의 PSW가 사용되는 모드에 관계가 있다. 물론, 80C51의 PSW는 또한 어떤 CM = 0일 때에도 액세스될 수있다.
마이크로콘트롤러(12)는 명령들을 사용하여 PSW의 비트 어드레싱을 지원한다. 비트 어드레싱을 위한 명령내의 10-비트 필드(130)의 인코딩은 제 3 도에 도시되어 있다. 비트들 9 및 8은 어드레스된 레지스터가 SFR 공간(40)(비트 9) 또는 레지스터 파일(82)(비트 8)내에 있는지를 결정한다. 비트들 7-3은 어드레스되는 레지스터의 바이트를 식별하고, 비트 2-0은 바이트 내의 특정 비트를 식별한다.
제 2 도와 관련해서 설명한 바와 같이, 마이크로콘트롤러(12)의 PSW(100)는 설계 프로세스에 의해 제조된 임의의 장치를 갖는다. 한편, 80C51 마이크로콘트롤러는 제 4 도에 도시된 바와 같은 PSW(200)를 사용한다. 이러한 PSW의 버전은 상이한 모드 또는 세대들의 명령어를 동일한 프로그램 내에 존재하도록 허용하는 80C51의 명령들에 의해 액세스될 수 있다. 이러한 PSW의 버전에 있어서, 상태 비트들 C, AC, FO, RS1, RS0, V, F1 및 P는 제공된 PSW의 특정 어드레스에 의존하는 레지스터(44)로부터 또는 그 레지스터에 판독 또는 기록이 가능하게 되어 있다. Fo 및 F1은 유저가 정의할 수 있는 플래그이고, 유저 프로그램들에 의해 판독 및 기록될 수 있다. P는 패리티 플래그이고, 이 비트는 레지스터(R4L)의 현재 내용들[레지스터(4)의 로우 바이트(low byte)]에 대한 우수 패리티(even parity)를 나타낸다(이 레지스터는 이전 세대의 마이크로콘트롤러의 한 예인 Philips Semiconductor에 의해 80C51 마이크로콘트롤러의 A 레지스터와의 호환성을 위해 사용된다). PSW(100)의 상위 및 하위의 절반들은 어드레스에 의존하여 이용가능하게 되어 있다. PSW(100)의 바이트 PSW(104) 또는 하위 절반은 SFR 공간(40)에서 주변 버스 특정 기능 레지스터(SFR)가 판독되는 동안 특정 어드레스가 사용될 때 주변 버스(42)상에 제공된다. PSWH(102)는 다른 특정 어드레스가 사용될 때 제공되고, PSW(200)는 다른 특정 어드레스가 사용될 때 제공된다. 기록 동안, 특정 포맷 PSW의 특정 비트만이 버스(42)로부터 레지스터(44)에 전송된다.
동일한 물리적인 레지스터(44)로부터 PSW(100) 및 PSW(200)의 서로 다른 바이트들을 제공하기 위하여, 제 5 도에 도시된 것처럼, 어드레스 디코딩 및 비트 선택 회로는 어떤 PSW 및/또는 바이트가 어드레스되는지를 결정하고, 적절한 8 비트를 선택하여 주변 데이타 버스(212)에 인가한다. 판독 동작 동안, 어드레스 디코더(214)는 하나의 어드레스를 페치 유닛(78)으로부터 버스 인터페이스 유닛(BIU)(22)을 통해 주변 어드레스 버스(216) 상에서 수신하고, PSW(100)의 어떤 바이트 또는 PSW(200)가 어드레스되는지를 결정한다. 디코더(214)는 멀티플렉서(218)에 인가되는 3개의 선택 신호들 중의 하나를 생성한다. 멀티플렉서(218)는 제공된 선택 신호에 의존하는 8 비트의 3개의 그룹으로부터 선택하는 8 비트의 3 대 1 멀티플렉서이다. PSWH가 어서팅(asserted)될 때, 멀티플렉서(218)는 SM, TM, RS1, RS0 및 IM3-IM0을 선택하고, PSWL이 어서팅될 때, 멀티플렉서는 C, AC, "0", "0", "0", V, N 및 Z를 출력하며, F0, F1 및 P 비트들이 마이크로콘트롤러(12)에 의해 사용되지 않기 때문에, 이진 "0"이 3 비트를 위해 생성되고, PSW(200)가 어서팅될 때, 멀티플렉서(218)는 C, AC, F0, RS1, RS0, V, F1 및 P를 선택 및 출력한다. 멀티플렉서(218)는 주변 데이타 버스(212)에 접속된 8 비트의 3-상태 구동기(tristate driver)(220)에 선택된 8 비트를 제공한다.구동기(220)는, 선택 신호들 중 하나가 OR 게이트(222)를 통과하고, BIU(22)에 의해 AND 게이트(224)에 인가된 주변 버스 판독 신호와 일치할 때, 활성화된다. BIU(22)는 버스(212)상의 바이트 또는 선택된 PSW의 비트들을 목적지 코어 유닛(destination core unit)에 전송한다.
PSW 비트들의 기록은, BIU(22)가 레지스터(44)로부터의 특정 바이트를 주변 버스(42)를 통해 최초 판독하고, 실행 유닛(70)이 지정된 특정 비트를 변경하고, 그 이후에, BIU(22)가 레지스터(44)에 바이트를 다시 기록함으로써, 마이크로코드 프로그램 제어 하에 실행된다. 상기 버스(42)로부터 레지스터(44)로의 전송 동안, 변경된 특정 비트만이 레지스터(44)에 전송된다. 이러한 기록은 제 6 도에 도시된 어드레스 디코딩 및 비트 선택 회로(240)에 의해 제어된다.
제 5 도의 판독 회로에서처럼, 기록될 바이트 또는 PSW의 어드레스는 디코더(214)에 의해 검출된다. 디코더(214)(제 6 도 참조)가 PSWH 또는 PSW(200)이 어드레스되는 것을 검출하고, 비트 선택 필드에 의해 C 비트가 기록될 것임을 나타낼 때, 주변 버스(212)로부터의 C 비트는 OR 게이트(246), AND 게이트(248) 및 NOR 게이트(250)에 의해 제공된 선택 신호에 기초하여 3 대 1의 단일 비트 멀티플렉서(244)에 의해 선택된다. C 비트가 ALU(72)로부터 갱신될 때, 멀티플렉서(244)는 ALU(72)에 의해 공급된 비트를 선택한다. 선택 신호에 의해 비트를 위한 재순환(recirculation)이 변경되지 않음을 나타낼 때, 멀티플렉서(244)의 출력은 플립-플롭(FF)(252)에 의해 입력에 다시 제공된다. C 비트가 PSW 레지스터(44)로 제공되면, 그 특정 비트를 위한 인에이블 신호는 실행 유닛(70)에 의해제공되고, 그 결과, 그 값을 레지스터(44)의 비트에 클럭킹(clocking)한다. AC 및 V 비트들은 C 비트를 위한 것과 동일한 비트 선택 배열을 갖지만, 데이타를 공급하는 주변 버스(212)로부터 서로 다른 비트들(각각의 라인들 6 및 2)을 갖는다. N 및 Z 비트들은 또한, 특정 비트들이 또한 서로 다른 (라인 0 및 2)것을 제외하고, C 비트와 유사하게 처리된다.
디코더(214)에 의해 PSZ(200)가 어드레스되는 것을 검출하고, 명령 필드(제 4 도 참조)에 의해 F0 비트가 어드레스되는 것을 나타낼 때, AND 게이트(258) 및 인버터(260)에 의해 제어된 2 대 1 단일 비트 멀티플렉서(256)는 주변 버스(212)의 적절한 라인(라인 5)을 선택하여, 그 비트를 FF(262)를 통해 PSW 레지스터(44)에 제공한다. 이 경우에도 또한, PSW 레지스터(44)의 비트만이 인에이블된다. F1 비트는 동일한 회로를 사용하여 기록되지만, 버스(212)의 라인 1로부터 나온 비트이다.
PSWH 또는 PSW(200) 중 어느 하나가 어서팅되고, 비트(RS0)가 어드레스될 때, 3 대 1 단일 비트 멀티플렉서(266)는, AND 게이트들(268 및 270) 및 NOR 게이트(272)로부터의 선택 신호에 응답하여 버스(212)로부터 적절한 비트를 선택하여, 그 비트를 FF(274)를 통해 레지스터(44)에 공급한다. 레지스터(44)는 그 특정 비트에 대한 인에이블 신호에 따라 상기 비트를 로딩(load)한다. 비트(RS1)는 버스(212) 라인들의 서로 다른 쌍으로부터 동일한 방식으로 기록된다.
TM 비트가 기록되어야 할 때, AND 게이트(280) 및 인버터(282)에 의해 제어되는 2 대 1 단일 비트 멀티플렉서(278)는 FF(284)를 통해 상기 비트를 레지스터(44)에 기록한다. SM 및 IM0-IM3 비트들은 유사하게 처리되지만 서로 다른버스 라인들로부터 도래한다.
본 발명에 의해, 마이크로콘트롤러(12)는 이전의 세대의 마이크로콘트롤러의 명령들에 의해 동작하고 그들 명령들을 처리할 수 있기 때문에, 보다 복잡한 마이크로콘트롤러 아키텍처에 대한 요구들이 충족됨과 동시에 백워드 호환성(backward compatibility)이 제공된다.
본 발명은 특정 위치에 존재하는 인접한 비트의 연속된 세트로서 나타나는 PSW 레지스터(44)를 이용하여 설명되었다. 마이크로콘트롤러(12)와 같은 복잡한 아키텍처에서는, 특정 상태 레지스터 비트들을, 그 비트들을 사용하는 유닛에 근접하게 배치 또는 물리적인 분배하는 것이 가능하고, 때로는 바람직하게 된다. 예를 들어, C 비트는 ALU(72)에 위치하게 되어, SFR(44) 영역에 위치되는 것처럼 나타난다("appear").

Claims (5)

  1. 제 1 포맷의 프로그램 상태 워드의 상태 비트들을 유지하도록 동작하는 프로그램 상태 워드(PSW) 레지스터(44)를 포함하는 마이크로콘트롤러에 있어서,
    상기 PSW 레지스터는 상기 제 1 포맷과는 상이한 제 2 포맷의 다른 프로그램 상태 워드의 다른 상태 비트들을 유지하도록 동작하게 되고,
    상기 마이크로콘트롤러는, 상기 레지스터에 결합되어 상기 레지스터로부터 및/또는 상기 레지스터에 상태 비트들을 선택적으로 전송하도록 동작하는 선택 및 전송 수단(22, 214, 218, 220, 222, 224; 244, 250, 252, 256, 258, 260, 262)을 포함하는 마이크로콘트롤러.
  2. 제 1 항에 있어서,
    상기 선택 및 전송 수단은 상기 레지스터 상에서 실행되는 판독 동작 동안 상기 레지스터로부터 다수 비트를 병렬로 전송하도록 동작하는 마이크로콘트롤러.
  3. 제 1 항에 있어서,
    상기 선택 및 전송 수단은 상기 레지스터 상에서 실행되는 기록 동작 동안 상기 레지스터내의 비트들 중 적어도 하나의 단일 특정 비트를 변경하도록 동작하는 마이크로콘트롤러.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 선택 및 전송 수단은 어드레스를 수신하도록 동작하고,
    상기 선택 및 전송 수단은,
    상기 어드레스가 상기 제 1 포맷의 프로그램 상태 워드에 관계하는지 또는 제 2 포맷의 프로그램 상태 워드에 관계하는지를 검출하도록 동작하는 디코더(214)와,
    상기 디코더의 제어 하에 상기 레지스터로부터 또는 상기 레지스터에 하나 또는 그 이상의 비트를 선택 및 전송하도록 동작하는 멀티플렉서(218; 244, 256, 266, 278)를 포함하는 마이크로콘트롤러.
  5. 서로 다른 포맷들 각각의 복수의 프로그램 상태 워드들 각각을 기억하도록 동작하는 프로그램 상태 워드(PSW) 레지스터(44)와,
    마이크로코드 동작들을 실행하고, 상기 각각의 프로그램 상태 워드들 중 하나의 특정 워드에 관계하는 어드레스를 제공하도록 동작하고, 상기 PSW 레지스터에 기록될 하나의 비트를 제공하도록 조건적으로 동작하는 프로세싱 유닛(60)과,
    상기 프로세싱 유닛에 접속되고, 상기 어드레스를 전송하도록 동작하는 버스 인터페이스(22)와,
    상기 버스 인터페이스에 접속되고, 상기 어드레스 및 상기 비트를 반송하도록 동작하는 버스 수단(212, 216)과,
    상기 PSW 레지스터 및 상기 버스 수단에 접속되고, 상기 어드레스의 제어 하에 상기 버스 수단에서 상기 PSW 레지스터로 상기 비트를 전송하도록 동작하는 기록 회로(244, 252, 256, 258, 260, 262)와,
    상기 PSW 레지스터 및 상기 버스 수단에 접속되고, 상기 어드레스의 제어 하에 상기 레지스터에서 상기 버스 수단으로 다수의 비트를 병렬로 전송하도록 동작하는 판독 회로(218, 220, 222, 224)를 포함하는 마이크로콘트롤러.
KR1019960702579A 1994-09-16 1995-08-24 재구성가능한프로그램상태워드를갖는마이크로콘트롤러 KR100385493B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US308058 1994-09-16
US08/308,058 US5664156A (en) 1994-09-16 1994-09-16 Microcontroller with a reconfigurable program status word
US308,058 1994-09-16

Publications (2)

Publication Number Publication Date
KR960706123A KR960706123A (ko) 1996-11-08
KR100385493B1 true KR100385493B1 (ko) 2003-08-19

Family

ID=23192363

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960702579A KR100385493B1 (ko) 1994-09-16 1995-08-24 재구성가능한프로그램상태워드를갖는마이크로콘트롤러

Country Status (8)

Country Link
US (1) US5664156A (ko)
EP (1) EP0729606B1 (ko)
JP (1) JP3705811B2 (ko)
KR (1) KR100385493B1 (ko)
CN (1) CN1135800A (ko)
DE (1) DE69525522T2 (ko)
TW (1) TW274601B (ko)
WO (1) WO1996008764A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19819569B4 (de) * 1998-04-30 2005-09-22 Siemens Ag Elektronischer Schaltkreis für die Umwandlung von Daten
US6801995B1 (en) * 1998-08-04 2004-10-05 Agere Systems, Inc. Method for optimally encoding a set of instruction codes for a digital processor having a plurality of instruction selectable resource types and an associated optimized set of instruction codes
JP2000222208A (ja) * 1999-01-29 2000-08-11 Mitsubishi Electric Corp 情報処理装置、命令割当て制御方法、命令割当て制御装置および命令割当て制御プログラムを記録したコンピュータで読取り可能な記録媒体
US6507881B1 (en) * 1999-06-10 2003-01-14 Mediatek Inc. Method and system for programming a peripheral flash memory via an IDE bus
US7022597B2 (en) * 2004-07-16 2006-04-04 Tekcore Co., Ltd. Method for manufacturing gallium nitride based transparent conductive oxidized film ohmic electrodes
TW200636471A (en) * 2005-04-01 2006-10-16 Mediatek Inc Method of parallel programmable memory and the system thereof
US20100199118A1 (en) * 2009-02-03 2010-08-05 Atmel Corporation Microcontroller with compatibility mode
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US8751905B2 (en) 2011-09-16 2014-06-10 Avalanche Technology, Inc. Memory with on-chip error correction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0338724A (ja) * 1989-07-06 1991-02-19 Fujitsu Ltd 複数の浮動小数点形式の演算を行う情報処理装置
JPH05346871A (ja) * 1992-06-15 1993-12-27 Toshiba Corp 異種計算機命令の疑似実行方法および装置
US5278973A (en) * 1989-03-27 1994-01-11 Unisys Corporation Dual operating system computer
US5345567A (en) * 1991-06-10 1994-09-06 International Business Machines Corporation System and method for modifying program status word system mask, system access key, and address space code with overlap enabled

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4259718A (en) * 1977-03-10 1981-03-31 Digital Equipment Corporation Processor for a data processing system
US4204252A (en) * 1978-03-03 1980-05-20 Digital Equipment Corporation Writeable control store for use in a data processing system
US4167779A (en) * 1978-03-10 1979-09-11 Digital Equipment Corporation Diagnostic apparatus in a data processing system
US4315321A (en) * 1978-06-16 1982-02-09 The Kardios Systems Corporation Method and apparatus for enhancing the capabilities of a computing system
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
JPS6017539A (ja) * 1983-07-11 1985-01-29 Hitachi Ltd エミユレ−シヨン方式
NL8602849A (nl) * 1986-11-11 1988-06-01 Philips Nv Inrichting voor het emuleren van een microcontroller, middels gebruik maken van een moedermicrocontroller en een dochtermicrocontroller, moedermicrocontroller, respektievelijk dochtermicrocontroller voor gebruik in zo een inrichting, geintegreerde schakeling voor gebruik in zo een dochtermicrocontroller en microcontroller bevattende zo een geintegreerde schakeling.
JPH0212432A (ja) * 1988-06-30 1990-01-17 Nec Corp データ処理装置
US5317750A (en) * 1988-12-23 1994-05-31 Intel Corporation Microcontroller peripheral expansion bus for access to internal special function registers
US5446865A (en) * 1990-03-13 1995-08-29 At&T Corp. Processor adapted for sharing memory with more than one type of processor
US5327571A (en) * 1990-04-03 1994-07-05 Advanced Micro Devices, Inc. Processor having decoder for decoding unmodified instruction set for addressing register to read or write in parallel or serially shift in from left or right
EP0474253B1 (en) * 1990-09-07 1998-12-02 Nec Corporation Register circuit for copying contents of one register into another register

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5278973A (en) * 1989-03-27 1994-01-11 Unisys Corporation Dual operating system computer
JPH0338724A (ja) * 1989-07-06 1991-02-19 Fujitsu Ltd 複数の浮動小数点形式の演算を行う情報処理装置
US5345567A (en) * 1991-06-10 1994-09-06 International Business Machines Corporation System and method for modifying program status word system mask, system access key, and address space code with overlap enabled
JPH05346871A (ja) * 1992-06-15 1993-12-27 Toshiba Corp 異種計算機命令の疑似実行方法および装置

Also Published As

Publication number Publication date
WO1996008764A3 (en) 1996-05-30
TW274601B (ko) 1996-04-21
CN1135800A (zh) 1996-11-13
US5664156A (en) 1997-09-02
EP0729606B1 (en) 2002-02-20
KR960706123A (ko) 1996-11-08
JPH09505430A (ja) 1997-05-27
DE69525522D1 (de) 2002-03-28
DE69525522T2 (de) 2002-10-02
WO1996008764A2 (en) 1996-03-21
JP3705811B2 (ja) 2005-10-12
EP0729606A1 (en) 1996-09-04

Similar Documents

Publication Publication Date Title
US6223279B1 (en) Single chip microcomputer having a dedicated address bus and dedicated data bus for transferring register bank data to and from an on-line RAM
JP2651218B2 (ja) フレキシブルasicマイクロコンピュータ
US7404066B2 (en) Active memory command engine and method
US5455955A (en) Data processing system with device for arranging instructions
KR20010043826A (ko) 마이크로 컨트롤러 명령어 집합
US7228401B2 (en) Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor
US4926318A (en) Micro processor capable of being connected with a coprocessor
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
KR100385493B1 (ko) 재구성가능한프로그램상태워드를갖는마이크로콘트롤러
JP2001504959A (ja) Riscアーキテクチャを有する8ビットマイクロコントローラ
JPH03216776A (ja) 集積回路装置及びそれにより構成されたマイクロプロセッサ
US5680632A (en) Method for providing an extensible register in the first and second data processing systems
US6058467A (en) Standard cell, 4-cycle, 8-bit microcontroller
JPS6362778B2 (ko)
JPH03271829A (ja) 情報処理装置
US20020004877A1 (en) Method and system for updating user memory in emulator systems
JPH05165641A (ja) シングルチップマイクロコンピュータ
JPH01205339A (ja) マイクロコンピュータシステム
JPS60193046A (ja) 命令例外検出方式
JPH0346053A (ja) 複プロセッサ間制御方式
JPH0516610B2 (ko)
JPH03257572A (ja) マルチプロセッサシステム
JPS60198639A (ja) データ処理装置
JPH04186431A (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: 20130429

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 12

EXPY Expiration of term