KR100403405B1 - 분산형버스액세스및제어조정에따라다수개의내부신호버스를공유하는다수개의회로기능요소를갖는집적회로 - Google Patents

분산형버스액세스및제어조정에따라다수개의내부신호버스를공유하는다수개의회로기능요소를갖는집적회로 Download PDF

Info

Publication number
KR100403405B1
KR100403405B1 KR1019970700551A KR19970700551A KR100403405B1 KR 100403405 B1 KR100403405 B1 KR 100403405B1 KR 1019970700551 A KR1019970700551 A KR 1019970700551A KR 19970700551 A KR19970700551 A KR 19970700551A KR 100403405 B1 KR100403405 B1 KR 100403405B1
Authority
KR
South Korea
Prior art keywords
bus
signal
instructions
signal buses
buses
Prior art date
Application number
KR1019970700551A
Other languages
English (en)
Other versions
KR970705087A (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 KR970705087A publication Critical patent/KR970705087A/ko
Application granted granted Critical
Publication of KR100403405B1 publication Critical patent/KR100403405B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Microcomputers (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

분산형 버스 액세스 및 제어 조정에 따라 3개가 물리적이고 5개가 논리적인 다수 개의 내부 신호 버스들을 공유하는 다수 개의 회로 기능 요소들을 포함하는 집적 회로(IC)가 개시되어 있다. 다수 개의 내부 신호 버스들은 3가지 계층의 내부 회로 기능 요소, 즉 중앙 처리 유니트 및 DMA 콘트롤러; DRAM 콘트롤러 및 버스 인터페이스 유니트; 및 PCMCIA 및 디스플레이 콘트롤러와 같은 주변 인터페이스 회로 사이에서 공유된다. 상기 물리적 버스들 중 2개의 물리적 버스들은 상기 논리적 버스들 중 2개의 논리적 버스들에 해당하며 상기 IC 내부의 통신용으로 사용된다. 제3의 물리적 버스는 상기 논리적 버스 중 3 개의 논리적 버스에 해당하며 상기 IC 및 상기 IC 외부의 회로 사이의 통신용으로 사용된다. 여러 신호 버스들을 액세스 및 제어하기 위한 조정은 3 가지 계층의 내부 회로 기능 요소내에서 그리고 3가지 계층의 내부 회로 기능 요소 사이에서 분산된다. 그리하여, 가장 빈도가 높게 액세스되는 회로 기능 요소로부터 최대 성능이 달성되고, 빈도가 낮게 액세스되는 그러한 회로 기능 요소로부터 여전히 고성능이 달성된다. 상기 IC에는 내부 회로 에뮬레이션(ICE)을 지원하는 특징을 갖는 프로세서 코어가 제공될 수 있다.

Description

분산형 버스 액세스 및 제어 조정에 따라 다수 개의 내부 신호 버스를 공유하는 다수 개의 회로 기능 요소를 갖는 집적회로{INTEGRATED CIRCUIT WITH MULTIPLE FUNCTIONS SHARING MULTIPLE INTERNAL SIGNAL BUSES ACCORDING TO DISTRIBUTED BUS ACCESS AND CONTROL ARBITRATION}
본 특허 서류의 일부 개시 내용은 저작권으로 보호받아야 하는 자료를 포함한다. 본 저작권자는 본 특허의 개시 내용이 특허청의 특허 서류 또는 기록물임이 분명한 때 어느 누구라도 본 특허의 개시 내용을 복사하는 데 이의를 제기하지는 않지만, 그러하지 않을 경우에는 모든 저작권의 권리를 유보한다.
낙후된 구세대와의 역호환성을 필요로 하기 때문에, x86은 가장 복잡한 명령어 세트 구조(complex instruction set architecture:CISC) 마이크로프로세서들중 하나이다. 예를들면, 대형이면서 복잡한 i486은 낙후된 구세대 x86 프로세서들과의 역호환성을 유지하도록 구현되어야 하는 명령어들을 400개 이상 지닌다. 그러한 복잡성 때문에, 내장형 제어 어플리케이션 용도로 적합한, 예컨대, 설계가 간단하며, 사이즈가 작고, 비용이 적게 드는 호환가능한 프로세서들 또는 콘트롤러들이 거의 없었다. 따라서, x86과 호환성이 있으며 여전히 비용이 적게 드는 내장형 제어 어플리케이션 용도로 적합한 프로세서 또는 콘트롤러를 지니는 것이 바람직할 것이다.
본 발명은 중앙 처리 유니트 및 다수 개의 주변 회로의 기능 요소들을 포함하는 집적 회로에 관한 것이며, 구체적으로 기술하면, 중앙 처리 유니트 및 주변 회로의 기능 요소들이 중앙 처리 유니트 및 주변 회로의 기능 요소들 간에 그리고 외부 회로의 기능 요소들과 통신하는 그러한 집적 회로에 관한 것이다.
도1은 본 발명에 따른 회로 구조를 구현하는 집적 회로의 기능적인 블럭 다이어그램이다.
도2A는 본 발명의 한 실시예에 따른 집적 회로의 구조에 대한 기능적인 블럭 다이어그램이다.
도2B는 도1의 집적회로에서 구현된 바와 같은 도2A의 구조를 보다 상세하게 보여주는 기능적인 블럭 다이어그램이다.
도3A 및 도3B는 모두 본 발명의 다른 한 실시예에 따라 버스들상의 트랜잭션들을 제어하기 위한 도1의 중앙 처리 유니트, DMA 콘트롤러, DRAM 콘트롤러, 버스 인터페이스 유니트 및 PCMCIA 콘트롤러 사이에서의 분산형 조정을 예시하는 플로우챠트들이다.
도4는 도1의 집적 회로의 중앙 처리 유니트에 대한 구조 구현의 기능적인 블럭 다이어그램이다.
도5는 도1의 집적 회로의 중앙 처리 유니트에 대한 논리 구현의 기능적인 블럭 다이어그램이다.
도6은 ALS 신호 파형을 예시하는 타이밍 다이어그램이다.
도7은 분기 명령어가 제공될 경우 NSR 표시(indication) 및 IXSTAT 및 IXQUAL 스테이터스 신호들 사이의 관계를 예시하는 타이밍 다이어그램이다.
도8은 제조 타켓 디바이스상에 클립-온(clip-on) 형태로서 에뮬레이터(emul-ator) 프로세서 칩의 설치를 개략적으로 도시하는 도면이다.
도9는 ICE가 존재할 경우 탑재된 프로세서의 디세이블 동작을 예시하는 타이밍 다이어그램이다.
본 발명에 따른 집적 회로는 분산형 버스 액세스 및 제어 조정에 따라 다수개의 내부 신호 버스들을 공유하는 다수 개의 회로 기능 요소들을 포함한다. 이것은 빈도가 높게 액세스되는 그러한 집적 회로의 내부 및 외부의 회로 기능 요소들로부터 최대의 성능을 달성하게 하면서도, 빈도가 낮게 액세스되는 내부 및 외부의 회로 기능 요소들로부터 고 성능을 달성하게 한다.
본 발명의 한 실시예에 따른 다수 개의 회로 기능 요소 및 신호 버스를 지니는 집적 회로(IC)는 3개의 신호 버스들, 한 세트의 마스터 콘트롤러들 및 두 세트의 주변 회로들을 포함한다. 제1 신호 버스는 IC내에서 제1 세트의 버스 신호를 통신하기 위한 것이고, 제2 신호 버스는 IC내에서 제2 세트의 버스 신호를 통신하기 위한 것이며, 그리고 제3 신호 버스는 외부 회로에 연결되어 IC와 그러한 외부 회로 사이에서 제3 세트의 버스 신호를 통신하기 위한 것이다. 상기 한 세트의 마스터 콘트롤러들은 상기 제1 신호 버스에 연결되어 있으며 상기 제1 신호 버스를 선택적으로 액세스하고 상기 제1 세트의 버스 신호의 통신을 제어하기 위한 것이다. 한 세트(제1 세트)의 주변 회로들은 상기 제1, 제2 및 제3 신호 버스들에 연결되어있으며 상기 제1 신호 버스 및 제1 세트의 버스 신호들을 통해 상기 마스터 콘트롤러와 선택적으로 통신하고, 상기 제2 신호 버스를 선택적으로 액세스하며 상기 제2 세트의 버스 신호들의 통신을 제어하고, 그리고 상기 제3 신호 버스를 선택적으로 액세스하며 상기 제3 세트의 버스 신호들의 통신을 제어하기 위한 것이다. 나머지 한 세트(제2 세트)의 주변 회로들은 상기 제2 신호 버스에 연결되어 있으며 상기 제2 신호 버스 및 제2 세트의 버스 신호들을 통해 상기 한 세트(제1 세트)의 주변 회로와 선택적으로 통신하기 위한 것이다.
본 발명의 다른 한 실시예에 따른 분산형 버스 액세스 및 제어 조정에 따라 다수 개의 신호 버스들에 의해 상호접속되어 있으며 다수 개의 신호 버스들을 공유하는 다수 개의 회로 기능 요소들을 지니는 집적 회로(IC)는 한 세트의 신호 버스들, 한 세트의 마스터 콘트롤러들 및 두 세트의 주변 회로들을 포함한다. 상기 한 세트의 신호 버스들은 한 세트의 버스 신호들을 통신하기 위한 것이다. 상기 한 세트의 마스터 콘트롤러들은 상기 신호 버스들 중 제1 서브세트의 신호 버스들에 연결되어 있으며 서로 통신하고 서로 통신함에 따라 그 중 어느 것이 상기 신호 버스들 중 제1 신호 버스를 액세스하고 상기 신호 버스들 중 제1 신호 버스를 제어하는 버스 마스터가 되는 지를 결정하며 그 결정에 따라 상기 버스 신호들 중 제1 서브 세트의 버스 신호들의 통신을 제어하기 위한 것이다. 한 세트(제1 세트)의 주변 회로들은 상기 신호 버스들 중 제1 서브세트의 신호 버스들과 제2 서브세트의 신호 버스들에 연결되어 있다. 이러한 주변 회로들은 서로 통신하고 서로 통신함에 따라 그 중 어느 것이 상기 버스 마스터와 통신하며 상기 신호 버스들 중 제2 신호 버스를 액세스하고 상기 신호 버스들 중 제2 신호 버스를 제어하는 지를 결정하며 그 결정에 따라 상기 버스 마스터와 통신하고 상기 버스 신호들 중 제2 서브세트의 버스 신호들의 통신을 제어하기 위한 것이다. 나머지 한 세트(제2 세트)의 주변 회로들은 상기 신호 버스들 중 제3 서브세트의 신호 버스들에 연결되어 있다. 나머지 한 세트(제2 세트)의 주변 회로들은 서로 통신하고 서로 통신함에 따라 그 중 어느 것이 상기 신호 버스들 중 제3 신호 버스를 액세스하는 지를 결정하며 그 결정에 따라 상기 버스 신호들 중 제3 서브세트의 버스 신호들을 통신하기 위한 것이다.
본 발명의 또 다른 한 실시예에 따르면, 마이크로프로세서 시스템 클록의 주기 싸이클에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서는 실행 단, 복호화 단 및 라이트백(writeback) 단을 포함한다. 상기 실행 단은 명령어들 및 상기 명령어들을 실행하는 데 이용되는 오퍼랜드들을 참조하고, 결과치들을 생성시키도록 상기 명령어들을 실행하며, 그리고 저장 요소로부터 상기 명령어들 및 오퍼랜드들을 검색하고 결과치들을 저장 요소에 기록하는 데 이용되는 메모리 어드레스들을 연산한다. 상기 복호화 단은 상기 실행 단에 의해 참조된 명령어들을 검색하고, 상기 실행 단에 의해 이용될 수 있는 형태로 상기 검색된 명령어들을 복호화시키며, 상기 복호화된 명령어들을 상기 실행 단에 제공한다. 상기 라이트백 단은 상기 실행 유니트에 의해 연산된 메모리 어드레스로 결과치들을 저장 요소에 기록한다.
본 발명의 또 다른 한 실시예에 따르면, 마이크로프로세서 시스템 클록의 주기 싸이클에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서는실행 단, 복호화 단 및 라이트백 단을 포함한다. 상기 실행 단은 산술 및 논리 연산을 이행하는 데 마이크로코드 명령어들 및 오퍼랜드들을 이용하며, 상기 명령어들 및 오퍼랜드들을 검색하고 결과치들을 저장 요소에 기록하는 데 이용되는 메모리 어드레스들을 연산하는 실행 유니트를 포함한다. 상기 실행 단은 이러한 실행 유니트에 의해 이용된 오퍼랜드들을 저장하고 특정의 판독 메모리 어드레스에 응답하여 상기 특정의 판독 메모리 어드레스에 해당하는 레지스터 파일 저장 장소로부터 오퍼랜드를 제공하며, 그리고 특정의 기록 메모리 어드레스에 응답하여 상기 특정의 기록 메모리 어드레스에 해당하는 레지스터 파일 저장 장소에 오퍼랜드를 저장하는 레지스터 파일을 부가적으로 포함한다. 상기 복호화 단은 저장 요소로부터 명령어들을 검색하는 프리페치 유니트, 상기 실행 유니트에 의해 이용될 수 있는 형태로 상기 검색된 명령어들을 복호화시키는 복호화 유니트, 및 복호화 명령어에 해당하는 일련의 하나 이상의 마이크로코드 명령어들을 제공하는 마이크로시퀀서 유니트를 포함한다. 상기 라이트백 단은 외부 판독 메모리 어드레스에 응답하여 상기 마이크로프로세서의 외부에 있는 저장 요소로부터 상기 외부 판독 메모리 어드레스에 해당하는 오퍼랜드 또는 명령어 중 어느 하나를 검색하고, 외부 기록 메모리 어드레스에 응답하여 상기 마이크로프로세서의 외부에 있는 저장 요소에 상기 외부 기록 메모리 어드레스에 해당하는 결과를 저장하는 버스 인터페이스 유니트를 포함한다.
본 발명의 이들 및 다른 특징들 및 이점들은 이하 본 발명의 바람직한 실시예에 대한 상세한 설명 및 첨부 도면을 숙지하면 이해될 것이다.
도1을 참조하면, 본 발명이 구현되어진 IC(10)는, 중앙 처리 유니트(CPU;12), 직접 메모리 액세스(DMA) 콘트롤러(14), 다이내믹 랜덤 액세스 메모리(DRAM) 콘트롤러(16), 버스 인터페이스 유니트(BIU;18), PCMCIA 콘트롤러(20), ECP 병렬 포트(22) 및 액정 디스플레이(LCD) 콘트롤러(24)를 포함하는, 내부에 집적된 다수 개의 기능 요소들과 아울러, 도시된 바와 같은 다수 개의 기타 주변 회로들을 포함한다. 하기에 보다 상세하게 기술되겠지만, 그러한 기능 요소들(12,14,16,18,20,22,24)은 하나 또는 그 이상의 신호 버스들(50,52,54)을 거쳐 그들간에 통신하며 또한 상기 IC(10)의 외부 단자들에 접속되어 있는 외부 기능 요소(도시되지 않음)과 통신한다. (아래에 바로 기술되는 내용 이상의 부가적인 설명은 본원 명세서의 말미에 기재된, 본원 명세서에 참조가 되며 본원 명세서에 참고로 기재된 여러 문헌들에서 찾아 볼 수 있다.)
도2A를 참조하면, 본 발명의 한 실시예에 따른 회로 구조는 다음과 같이 요약될 수 있다. 그러한 구조는 대략 3-버스 구조에 기초를 두고 있다. 버스 마스터들 모두는 최고 성능의 버스(CPU 로컬 버스)를 구동시킨다. 단지 액세스되고 빈도가 높게 사용되는 주변 장치들만이 이러한 버스에 접속된다. 이로 인해, 그러한 주변 장치의 사용이 최적화될 수 있고 시스템 성능이 최대화될 수 있다. 이러한 3-버스 구조를 사용함으로써, 시스템을 이루는 IC의 전반적인 성능이 최적화될 수 있고, 좀 더 우수한 시스템 기능성을 위해 시스템 설계자에게 추가의 외부 주변 장치들을 추가시킬 수 있는 융통성이 제공될 수 있다.
제2의 내부 고 성능 주변 장치 버스는 또한 그 다음으로 빈도가 높게 액세스되며 사용되는 IC상의 주변 장치들을 지원하도록 제공된다. 이와 같은 내부 주변 장치 버스상의 주변 장치들은 상기 CPU 로컬 버스상의 주변 장치들보다 조금 느린 속도로 액세스된다. 이러한 내부 주변 장치 버스의 주변 장치들이 상기 CPU 로컬 버스상의 주변 장치보다는 빈도가 낮게 액세스되기 때문에, 성능이 극히 높은 CPU 로컬 버스와 최고 성능의 주변 장치들을 분리시키고 고 성능의 내부 주변 장치 버스와 다른 모든 내부 주변 장치들을 분리시킴으로써 전반적인 시스템 성능이 높아진다.
상기 구조의 제3 버스는 중간 성능의 외부 주변 장치 버스이다. 이러한 버스는 시스템 설계자에 의해 추가되는 외부 주변 장치(들)를 지원한다. 이러한 버스는, 비록 외부 주변 장치들에 대한 액세스가 보다 적절한 속도로 되지만, 외부 주변 장치들을 추가할 수 있는 융통성을 시스템 설계자에게 제공할 수 있다.
하기에 보다 상세하게 논의되겠지만, 상기 구조는 3개의 물리적 버스들을 포함하며, 3개의 물리적 버스들은 5개의 논리 버스들에 해당한다. 상기 구조는 또한 조정 및 싸이클 제어 논리를 그러한 설계 범위내에서 5개의 개별 블럭들로 분산시킨다. 상기 개별 블럭들 각각의 조정 및 싸이클 제어 논리는 유일한 태스크들을 이행하며, 그러한 태스크들은, 함께 동작할 경우, 버스 액세스를 이행하는 마스터, 요구되고 있는 액세스의 유형 및 싸이클이 동작하게 될 물리적(및 논리적) 버스를효과적으로 결정한다.
도2B를 참조하면, 도1의 IC(10)에서 구현된 바와 같은 상기에 논의된 회로 구조에 대하여, 제1 물리적(및 논리적) 버스는 멀티-마스터이고, 동기식이며, 성능이 극히 높은 CPU 로컬 버스(50)이다. 구조적인 관점에서 볼 때, CPU 로컬 버스(50)는 (이러한 버스를 멀티-마스터 버스로 구성하는) 다수 개의 버스 마스터들에 의해 구동될 수 있다. 상기 CPU 로컬 버스(50)를 구동시키기 전에, 한 버스 마스터는 먼저 상기 CPU 로컬 버스(50)를 조정하고 상기 CPU 로컬 버스(50)를 제어하여야 한다. 도1의 IC(10)에서는, 두 개의 버스 마스터들, 즉 CPU(12) 및 DMA 콘트롤러(14)가 있다. 상기 CPU(12)는 디폴트(default) 버스 마스터이고 상기 DMA 콘트롤러(14)가 제어를 요구하는 경우를 제외하고는 항상 상기 CPU 로컬 버스(50)의 제어를 유지하는 데, 상기 DMA 콘트롤러(14)가 제어를 요구하는 경우에는, 상기 CPU(12)가 예컨대, 현재의 CPU 버스 트랜잭션 시퀀스의 실행이 완료됨에 따른 절호의 기회에 상기 CPU 로컬 버스(50)의 제어를 상기 DMA 콘트롤러(14)에 부여한다. 상기 CPU 로컬 버스(50)의 제어를 획득한 후, 상기 DMA 콘트롤러(14)는, 계속된 지배를 위한 그의 요구가 없어질 때까지 상기 DMA 콘트롤러(14)가 제어를 유지하는 데, 계속된 지배를 위한 그의 요구가 없어진 경우에는 상기 CPU(12)가 상기 CPU 로컬 버스(50)의 제어를 재개한다.
상기 CPU(12)는 상기 CPU 로컬 버스(50)의 "주 마스터(primary master)" 로서 간주될 수 있으며 상기 DMA 콘트롤러(14)는 "교호 마스터(alternate master)"로서 간주될 수 있다. 그러한 구조는 하나의 "주 마스터"와 개수에 제한이 없는 "교호 마스터"를 지원한다.
상기 CPU 로컬 버스(50)는 동기식인 데, 이는 상기 버스상의 신호들 모두가 단지 상기 버스의 클록 신호와 관련하여서만 유효한 것으로 간주된다는 것을 의미한다. 도1의 IC(10)에서는, 신호들 모두가 단지 상기 CPU 로컬 버스(50)에 대한 클록의 상승 구간과 관련하여서만 유효하다. 더욱이, 상기 CPU 로컬 버스(50)는 극히 높은 성능으로 동작하는 것으로 간주되는 데, 그 이유는 상기 버스가 한 클록 주기 당 1번의 액세스를 이행할 수 있기 때문이며, 상기 한 클록당 1번의 액세스는 동기식 버스의 이론상 최대 성능에 해당한다.
상기 CPU 로컬 버스(50)의 동작 주파수를 최대화하기 위하여, 단지 소수의 최고 성능의 동기식 주변 장치들만이 상기 CPU 로컬 버스(50)에 접속된다. 이와 같은 2개의 주변 장치들은 DRAM 콘트롤러(16)와 BIU(18)이다. 상기 DRAM 콘트롤러(16)는 빈도가 높게 이용되는 DRAM 시스템 메모리(도시되지 않음)에 대한 모든 액세스를 이행하지만, 상기 BIU(18)는 내부의 비동기식 고성능 주변 장치 버스(52)와 외부의 비동기식 중간 성능 주변 장치 버스(54)를 제공한다.
상기 DRAM 콘트롤러(16)와 상기 BIU(18) 모두는 동시에 CPU 로컬 버스(50)의 액세스를 받아 들이며 이러한 두 개의 블럭(16,18)은 싸이클의 유형과 그의 타겟의 결정을 개시한다. 구조적인 면에서 볼 때, 상기 DRAM 콘트롤러(16) 또는 상기 BIU(18), 또는 상기 DRAM 콘트롤러(16) 및 상기 BIU(18) 모두는 상기 두 개의 블럭 중 어느 한 블럭이 그러한 액세스를 이행할 지를 최종적으로 결정하여야 한다. 도1의 IC(10)에서는, 상기 DRAM 콘트롤러(16)가 그러한 싸이클을 받아 들이기도 하고거부하기도 한다. 상기 BIU(18)는 상기 DRAM 콘트롤러(16)에 의해 거부된 모든 싸이클들을 받아 들이고 상기 DRAM 콘트롤러(16)에 의해 받아 들여진 모든 싸이클들을 거부한다.
상기 DRAM 콘트롤러(16)는, 상기 CPU 로컬 버스(50)상에서 요구된 액세스를 이행할 경우, 공유된 외부 버스(54)의 핀들을 통해 IC(10)에 연결된 외부 DRAM(도시되지 않음)을 액세스함으로써 상기 CPU 로컬 버스(50)상에서 요구된 액세스를 이행한다. 이와 같은 공유된 외부 버스(54)의 핀들은 제2의 물리적 버스를 형성하지만, 그 명칭이 시사하는 바와 같이, 이러한 핀들은 다수 개의 논리적 버스들에 의해 공유된다. 상기 DRAM 콘트롤러(16)는 이와 같은 공유된 외부 버스(54)의 핀들을 제어할 경우, 그러한 시점에서의 논리적 버스는 외부 DRAM 인터페이스 버스이다.
상기에 주지된 바와 같이, 상기 BIU(18)는 상기 DRAM 콘트롤러(16)에 의해 거부된 모든 CPU 로컬 버스(50)의 액세스들을 받아 들인다. 만약 PCMCIA 콘트롤러(20)가 이네이블되는 경우, 상기 BIU(18)는 기타의 액세스를 이행하려고 시도하기 전에 상기 PCMCIA 콘트롤러(20)에 그러한 액세스를 전송한다. 만약 상기 PCMCIA 콘트롤러(20)가 그러한 액세스를 받아 들이는 경우, 상기 PCMCIA 콘트롤러(20)는 상기 공유된 외부 버스(54)의 핀들상에 적절한 신호을 생성시킴으로써 그러한 액세스를 완료시킬 것이다. 이러한 것이 단일의 물리적 세트의 공유된 외부 버스(54)의 핀들상으로 멀티플렉싱될 제2의 논리적 버스(PCMCIA 카드 인터페이스 버스)이다.
만약 상기 PCMCIA 콘트롤러(20)가 그러한 액세스를 거부하는 경우에나, 또는만약 상기 PCMCIA 콘트롤러(20)가 이네이블되지 않는 경우, 상기 BIU(18)는 그러한 액세스가 내부 주변 장치에 대한 것인 지 아니면 외부 주변 장치에 대한 것인 지를 결정한다. 상기 BIU(18)는 내부 주변 장치들이 이네이블되도록 프로그램되어졌는지, 그와 같이 이네이블된 내부 주변 장치들이 상주하는 어드레스(들) 및 현재 액세스의 어드레스에 기초하여 그와 같은 결정을 내린다.
만약 상기 BIU(18)가 그러한 액세스는 내부 주변 장치에 대한 것이라고 결정하는 경우, 상기 BIU(18)는 그러한 액세스를 완료시키도록 비동기식 내부 주변 장치 버스(52)의 액세스를 생성시킨다. 상기 비동기식의 고성능 내부 주변 장치 버스(52)는 상기 구조의 제3의 물리적 버스와 상기 구조의 제4의 논리적 버스를 구성한다.
그 반면에, 만약 상기 BIU(18)가 액세스는 외부 주변 장치 버스(54)에 대한 것이라고 결정하는 경우, 상기 BIU(18)는 이러한 액세스를 완료하여 상기 공유된 외부 주변 장치 버스(54)의 핀들상에 적절한 신호들을 생성시킨다. 이러한 것이 상기 구조와 관련된 제5의 논리적 버스이다. 온-칩 주변 장치들 중 어느 한 주변 장치에 대한 것도 아닌 액세스는 항상 상기 공유된 외부 버스(54)의 핀들상에서의 외부 주변 장치 버스의 액세스가 된다.
마지막으로, 좀 더 효율적인 데이타의 전송을 이행하기 위해서는, 상기 DMA 콘트롤러(14)는 (위에서 설명한 바와 같이) 상기 CPU 로컬 버스(50)를 통해 시스템 메모리 액세스들을 이행하면서, 또한 그러한 액세스들의 개시점과 종료점을, 상기 BIU(18)와의 직접적인 접속을 통해서 및 상기 BIU(18)와의 협동으로 DMA-요구 디바이스들에 대한 액세스들과 오버래핑시킨다. 상기 DMA-요구 디바이스들은 (ECP 콘트롤러(22) 또는 LCD 콘트롤러(24)와 같은) 내부 주변 장치 버스(52)상에나 또는 외부 주변 장치 버스(54)상에 있을 수 있다.
도3A 및 3B를 함께 참조하면, CPU(12), DMA 콘트롤러(14), DRAM 콘트롤러(16), BIU(18), 및 PCMCIA 콘트롤러(20) 간의 분산 형태의 조정이 보다 양호하게 이해될 수 있다. 예를 들면, 시스템 파워-업 또는 리셋 다음에 이어지는 초기 시스템 상태(200) 동안, 상기 CPU(12)는 초기화되고 유휴 싸이클들은 상기 CPU 로컬 버스(50)상에서 동작된다. 다음 동작(202)은 CPU 액세스 시퀀스가 진행중인 지를 결정하는 것이다. 만약 CPU 액세스 시퀀스가 진행중이지 않으면, 다음 동작(204)은 상기 DMA 콘트롤러(14)가 버스 마스터이도록 요구했는 지를 결정하는 것이다. 만약 상기 DMA 콘트롤러(14)가 버스 마스터이도록 요구하지 않았다면, 다음 동작(206)은 CPU 버스 싸이클이 계속중에 있는 지를 결정하는 것이다. 만약 CPU 버스 싸이클이 계속 중에 있지 않으면, 다음 동작(208)은 상기 CPU(12)가 제어 상태에 있는 경우, 상기 CPU 로컬 버스(50)상에서 또 다른 유휴 싸이클을 처리하는 것이다. 이러한 유휴 싸이클 동작(208)은 상기 CPU 로컬 버스(50)의 제어를 위해 상기 DMA 콘트롤러(14)로부터 어떠한 요구도 받아 들여지지 않고 어떠한 CPU 버스 싸이클도 계속중에 있지 않는 한 반복된다.
만약 CPU 액세스 시퀀스가 진행중에 있었다면, 시스템은 상태(210)에 진입하며, 상기 상태(210)에서는 상기 CPU(12)가 상기 CPU 로컬 버스(50)를 제어한다. 마찬가지로, 만약 상기 DMA 콘트롤러(14)로부터의 DMA 버스 마스터 요구가 상기CPU(12)에 의해 받아 들여졌다면, 상기 CPU(12)가 상기 CPU 로컬 버스(50)의 제어를 상기 DMA 콘트롤러(14)에 부여하는 동작(212)이 이행되고 시스템은 상태(214)로 진입하며, 상기 상태(214)에서는 상기 DMA 콘트롤러(14)가 현재 상기 CPU 로컬 버스(50)를 제어한다.
다음 동작(216)은 싸이클이 DRAM 싸이클인 지에 대하여 DRAM 콘트롤러(16)에 의해 결정이 내려지는 것이다. 만약 싸이클이 DRAM 싸이클이라면, 다음 동작(218)은 상기 공유된 외부 버스(54)의 핀들상에서의 DRAM 액세스 시퀀스를 동작하는 것이다. 만약 싸이클이 DRAM 싸이클이 아니라면, 다음 동작(220)은 싸이클이 PCMCIA 싸이클인 지에 대하여 상기 BIU(18)와 PCMCIA 콘트롤러(20)에 의해 협동으로 결정이 내려지는 것이다. 만약 싸이클이 PCMCIA 싸이클이라면, 다음 동작(222)은 상기 공유된 외부 버스(54)의 핀들상에서의 PCMCIA 액세스 시퀀스를 실행하는 것이다. 만약 싸이클이 PCMCIA 싸이클이 아니라면, 다음 동작(224)은 싸이클이 내부 싸이클인 지에 대하여 상기 BIU(18)에 의해 결정이 내려지는 것이다. 만약 싸이클이 내부 싸이클이라면, 다음 동작(226)은 내부 주변 장치 버스 액세스 시퀀스를 동작시키고 상기 공유된 외부 버스(54)의 핀들상에서의 유휴 싸이클을 동작시키는 것이다. 만약 싸이클이 내부 싸이클이 아니라면, 다음 동작(228)은 상기 공유된 외부 버스(54)의 핀들상에서의 외부 주변 장치 버스(54)의 액세스를 동작시키는 것이다.
이들 각각의 액세스 동작(218,222,226,228)에 이어서, 다음 동작(230)은 상기 CPU(12)가 상기 CPU 로컬 버스(50)를 제어하는 지에 대하여 결정하는 것이다. 만약 상기 CPU(12)가 상기 CPU 로컬 버스(50)를 제어하고 있다면, CPU 액세스 시퀀스가 진행되고 있는 지를 결정하는 동작(202)으로부터 개시하는 이전의 과정이 반복된다. 만약 상기 CPU(12)가 상기 CPU 로컬 버스(50)를 제어하고 있지 않다면, 다음 동작(232)은 동작될 DMA 싸이클들이 더 있는 지를 결정하는 것이다. 만약 실행될 DMA 싸이클들이 더 있다면, 시스템은 상기 CPU 로컬 버스(50)가 상기 DMA 콘트롤러(14)에 의해 제어되는 상태 (214)를 지속하거나, 또는 그러한 상태로 재-진입 한다. 만약 실행될 DMA 싸이클들이 더 이상 없다면, 다음 동작(208)은 상기 CPU(12)가 제어 상태에 있는 경우, 상기 CPU 로컬 버스(50)상에서의 유휴 싸이클을 동작시키는 것이다.
따라서, 상기 IC(10)의 기본 구조는 빈도가 높게 액세스되는 주변 장치들로 부터 성능을 최대화시키면서도, 빈도가 낮게 액세스된 온-칩 주변 장치들로부터 성능을 높이고 또한 오프-칩 주변 장치들에 대한 액세스에 대하여 적정한 성능을 유지시키기 위한 멀티-마스터의 분산형 조정 및 분산형 액세스 제어 설계를 보여준다.
이하에서 보다 상세하게 논의되겠지만, 상기 CPU(12)는 전형적인 인텔(Intel) 486 프로세서와 호환될 수 있는 명령어 세트를 갖는 32-비트 프로세서이다. 그의 성능은 클록 속도, 명령어 당 클록 싸이클들의 개수 및 실행되는 명령어들의 개수에 의해 주로 결정된다. 타겟(target) 클록 주파수는 제조상의 제약, 전형적인 어플리케이션(application) 요건 및 구현 방법에 의해 대부분 미리 결정되었고, 게다가 실행되는 명령어들의 개수는 x86 명령어 세트 구조(instruction set architec-ture;ISA)의 사용에 의해 제약을 받았다. 따라서, 성능을 증가시키기위한 초점은 각각의 명령어에 대해 평균적으로 필요한 클록 싸이클의 개수, 즉 명령어당 클록들(clocks per instruction ;CPI)의 개수이었다.
따라서, CPU 구조는 최소한의 클록 싸이클들의 개수로 명령어들을 실행하도록 설계되었다. 바이패스들의 개수, 인터록들 및 다이(die) 사이즈를 감소시키는 데에는 3-단 파이프라인이 사용된다. 이것은 또한 조건부 분기가 사용되는 경우 분기 위반(branch penalty)을 감소시킨다. 그리하여, 최적화되고자 하는 명령어들 모두에 대한 명령어당 클록들은 이러한 구조에 기초하여 평가되었고 추가적인 논리는 그러한 개수들을 획득하도록 상기 구조내에 설계되었다.
도4를 참조하면, 상기 CPU(12)의 구조는 마이크로프로그램된 제어를 사용하는 3-단 파이프라인을 이용한다. 상기 파이프라인을 구성하는 3개의 주요 단은 복호화 단(70), 실행 단(72) 및 라이트백(writeback) 단(74)이다. 상기 라이트백 단(74)은 두개의 보조 단(74a, 74b)으로 더 나뉘어진다. 제2의 라이트백 보조 단(74b)은 단지 일부 메모리 액세스들용으로만 사용된다. 레지스터와 레지스터 간의 동작에 대하여는, 단지 3개의 단만이 필요하다. 따라서, 상기 파이프라인은 주로 이러한 3개의 단(70,72,74)을 사용하여 기능을 이행한다.
상기 복호화 단(70)은 명목상 복호화 유니트(100)를 포함하지만 오직 명령어 복호기의 기능 이상으로 기능을 이행한다. 이러한 단(70)은 또한 프리페치 버퍼(102), 명령어 캐시(104) 및 마이크로시퀀서(106)를 포함한다. 상기 프리페치 버퍼(102)는 16바이트 폭이고 두개의 계층(tier) 유니트(102a, 102b)로서 설계되어 있다. 상기 프리페치 유니트(102)는, 명령어 복호기(100)가 현재 복호화 중에 있고15 바이트의 길이에 까지 이를 수 있는 명령어의 모든 바이트들로 상기 명령어 복호기(100)가 완전히 보충되게 하려고 시도한다. 상기 프리페치 유니트(102)는 명령어 캐시(104)와 인터페이스한다. 상기 프리페치 유니트(102)는 상기 명령어 복호기(100) 보다 이전에 페치하려고 시도한다. 이러한 록-어헤드(look-ahead) 메카니즘은 성능을 상당히 향상시킨다.
상기 명령어 캐시(104)는 8바이트의 라인 사이즈로 직접 매핑된 것으로서 편성되어 있는 1K바이트를 포함한다. 상기 명령어 캐시(104)는 자체-수정 코드(self-modifying code)로 인한 스테일 데이타(stale data)를 회피하기 위하여 버스상에서 스눕(snoop) 방식을 채택한다. (이것은 상기 CPU(12)의 설계에 대한 성능 향상 방법의 또 다른 예이다.) 대부분의 타겟 어플리케이션 코드(target application code)가 작기 때문에, 1K 캐시는 상당한 성능 향상을 제공하며, 그보다는 큰 캐시의 구현은 그다지 필요한 것이 아니었다. 이것은 상기 칩(10)의 면적을 감소시키며, 결과적으로는 상기 칩(10)의 가격을 낮춘다. 또한, 대부분의 타겟 어플리케이션들이 판독 전용 메모리(ROM)로부터 실행하기 때문에, 성능이 상당히 증가된다.
상기 복호기(100)는 단일의 싸이클내에서 간단한 명령어들을 복호화시킬 수 있다. 프리픽스들 및 복잡한 명령어들은 복호화하는 데 하나 이상의 싸이클을 취한다. 그후, 상기 마이크로시퀀서(106)는 명령어들을 인수하고 그러한 명령어들을 마이크로코드로 처리한다. 그러한 마이크로코드 대부분은 i486의 보호 메카니즘(pro-tection mechanism)를 지원하기 위한 명령어들을 포함하여 복잡한 명령어들을 제외하고는 단일의 싸이클이다. 상기 복호기(100)와 상기 마이크로시퀀서(106) 모두는전력 및 면적을 절약하는 논리 설계를 이용한다.
상기 실행 단(72)은 오퍼랜드를 페치하고 명령어들을 실행할 뿐만 아니라, 메모리 어드레스를 연산한다. x86 구조는 세그먼트된 메모리 공간을 지니며, 상기 세그먼트된 메모리 공간은 이러한 어드레싱 공간을 액세스하기 위해 다수의 복잡한 어드레싱 모드들을 갖는다. 상기 세그먼트된 메모리 공간이란 실제로 버스상에 발생하는 물리적 어드레스를 얻기 위하여 적어도 하나의 추가, 즉 세그먼트 베이스와 그러한 세그먼트내의 옵셋의 추가가 이행되어야 한다는 것을 말한다. 이것은 3 개에 이르는 추가 성분, 즉 베이스, 인덱스 및 변위를 가질 수 있는 세그먼트 옵셋의 연산으로 훨씬 복잡해진다. 단일의 싸이클내에서 이러한 성분들 모두로 구성되어 있는 전체 어드레스를 연산하려면 비용이 많이 들것이기 때문에, 주된 경우들, 즉 단지 기준화된 인덱스 및 변위, 또는 베이스 및 변위만을 가지는 주된 경우들이 최대한으로 활용되었다. 상기 실행 유니트(108)는 단일의 싸이클내에서 총체적인 어드레스 연산을 이행할 수 있다. 다시 말하면, 상기 실행 유니트(108)은 동일 싸이클내에서 두개의 어드레스 추가를 이행할 수 있다. 또한, 이러한 시점에서는 세그먼트 오버런을 방지하도록 세그먼트 한계 검사가 이행된다. 결과적으로 연산된 리니어(linear) 어드레스(이것 또한 물리적 어드레스임)는 외부로의 디스패치(dis-patch)를 위해 버스 유니트(하기에 보다 상세하게 논의됨)에 전송된다. 이러한 설계는 빈도가 높게 사용된 로드, 저장, 푸시(push) 및 팝(pop) 명령어들의 단일-싸이클 실행을 허용한다.
상기 실행 단(72)은 또한 구조적인 레지스터 파일(110)과 보호 논리 메카니즘 (112)을 포함한다. 상기 레지스터 파일(110)은 상기 실행 단(72)에서의 모든 동작들에 대한 발신지와 수신지 정보를 분해한다. 상기 레지스터 파일(110)은 또한 산술 및 논리 유니트(ALU;114)의 출력으로부터나 또는 메모리로부터의 로드 동작으로부터 얻어진 결과들을 바이패스시킬 수 있다. 이는 데이타 종속에 기인하는 파이프라인 버블을 감소시키는 데 도움을 준다. Virtual86 모드 지원 외에는 완전한 i486 보호 메카니즘이 구현되었으며, 타겟 어플리케이션들과는 전혀 무관한 것으로 간주되는 것들 외에는 대부분의 i486 예외들이 구현되었다.
상기 라이트백 단(74)은 버스 유니트(116), 디버그 논리(118) 및 레지스터 라이트백 논리(120)를 포함한다. 이러한 단(74)에서는 메모리 액세스가 개시 및 완료되고, 상기 레지스터 파일(110)이 갱신된다. 제2의 라이트백 보조 단(74b)은, 메모리 기록 액세스가 아직 계속중인 동안 독립적인 레지스트 동작이 불완전한 상태로 완료되게 한다. 그러한 메모리 액세스는 새로운 판독/기록 동작이 매 싸이클마다 개시되게 하도록 파이프라인된다. (25MHz에서의 초기 구현에서, 이는 단일-싸이클 메모리 액세스를 제공함으로써, 결과적으로 데이타 캐시는 성능을 상당히 향상시키지 못한다).
도5를 참조하면, 상기 CPU(12)는 설계의 복잡성을 줄이기 위해 11개의 블럭들, 프리페치 유니트(102); 복호기 유니트(100); 마이크로시퀀서(106); 레지스터 파일 유니트(110); 실행 유니트(108); 보호 논리 유니트(112); 예외 논리 유니트(130); 디버그 논리 유니트(118); 버스 유니트(116); 범용 제어 유니트(132); 및 명령어 캐시(104)로 나뉘어진다.
상기 프리페치 유니트(102)는 상기 명령어 캐시(104)로부터 또는 메모리로부터 직접 내부에 충전되는 두개의 8-바이트 레지스터(102a,102b;도4)로 이루어진다. 상기 복호기 유니트(100)는 상기 프리페치 유니트(102)로부터 명령어를 입수하고 이를 사용하여 상기 명령어용 엔트리 마이크로코드, 레지스터 어드레스, 즉시값, 변위값 및 세그먼트 정보를 생성시킨다. 상기 복호기 유니트(100)는 또한 예외의 일부에 대한 정보를 생성시키며 비-실행 명령어, 다시 말하면 상기 CPU(12)상에서 실행되지 않는 x86 명령어의 경우를 처리하는 데에도 또한 사용된다.
상기 마이크로시퀀서(106)는 상기 명령어 마이크로코드의 단계별 진행(ste-pping through)를 제어한다. 상기 마이크로시퀀스(106)는 다음 마이크로코드 어드레스를 생성하고 마이크로코드 ROM을 조사한다. 상기 마이크로-ROM 어드레스는 서로 다른 장소에서, 다시 말하면 새로운 명령어가 개시되면 상기 복호기 유니트(100)로부터; 현재 명령어가 완료되지 않으면 상기 명령어 마이크로코드로부터; 또는 예외들의 경우에는 예외 논리(130)로부터 생길 수 있다.
상기 레지스터 파일 유니트(110)는 오퍼랜드를 판독하고, 바이패스를 분해하며, 콘스탄트, 즉 상수(constant)를 생성하고, 그리고 오퍼랜드를 정렬한다. 구조적인 레지스터와 선택기(즉, 세그먼트 조사 레지스터)는 이러한 블럭에서 구현된다. 상기 구조적인 레지스터 파일은 이중 판독 및 기록 포트를 가진다. 레지스터들이 단일 바이트, 한 워드(2바이트) 또는 2워드(4바이트) 중 어느 하나로서 액세스될 수 있기 때문에, 이러한 레지스터 파일(110)에서의 이중 판독 및 기록 포트는 복잡하다. 상기 이중 기록 포트들은 로드 명령어들 및 명령어들의 동시적인 완료를최적화시킨다.
상기 실행 유니트(108)는 두가지 주요 기능을 가진다. 그 중 첫번째 기능은 산술 및 논리 동작 모두를 이행하는 것이다. 이러한 기능을 위해, 상기 실행 유니트(108)는 산술 및 논리 유니트(114;도4))와 배럴 시프터를 가진다. 두번째 기능은 어드레스 연산(리니어 어드레스 생성) 및 한계 검사이다. 이러한 실행 유니트(108)는 어드레스 옵셋과 리니어 어드레스를 연산하고 단일 싸이클내에서 한계 검사를 이행한다.
상기 버스 유니트(116)는 CPU(12)와 CPU 로컬 버스(50) 사이에 대한 인터페이스이다. 상기 버스 유니트(116)는 32-비트 어드레스를 구현하고 패키지 핀출력 제한에 기인하여, 16-비트 데이타 버스를 구현한다. (이는 타겟형 운영 체계들 및 어플리케이션들이 16-비트이기 때문에 심각한 병목 현상을 일으키지 않는다.) 이러한 버스 유니트(116)의 중요한 특징은 이전의 메모리 액세스가 완료하기 전에 한 메모리 액세스가 개시되는 파이프라인 메모리 액세스를 지원할 수 있는 능력이다. 이러한 모드에서는, 외부 DRAM이 전형적으로는 길이가 4K바이트인 페이지들로 나뉘어진다. 그러한 액세스가 DRAM의 한 페이지 범위내에 있는 동안에는, 메모리에 대한 단일 싸이클 판독 및 기록이 유지될 수 있다. 만약 페이지 누락이 있으면, 그러한 액세스를 완료시키는 데에는 세개의 싸이클이 취해진다. 정적 랜덤 액세스 메모리(SRAM)와 ROM에 대한 액세스에는 또한 대기 상태와 비-파이프라인형의 메모리 액세스가 지원된다.
상기 범용 제어 유니트(132)는 전체 구조의 수퍼바이저(supervisor)이다. 이러한 범용 제어 유니트(132)는 명령어 파이프라인의 단계별 진행을 제어한다. 인터록, 예외 처리의 제어, 및 프로세서의 동작 차단은 또한 이러한 범용 제어 유니트(132)에 의해 처리된다. 상기 예외 논리(130)는 모든 예외 및 외부 인터럽트를 우선화하여 분해한다. 이것은 소프트웨어 인터럽트, 산술 예외, 보호 모드 예외 및 기타 장해 및 트랩을 포함한다. 상기 보호 논리 유니트(112)는 Intel 486 구현예에서 정의된 보호 메카니즘의 기능을 이행한다. 이러한 보호 논리 유니트(112)에 의해 생성된 모든 예외에 대하여 보호 및 지원이 4가지 레벨로 구현될 수 있다. 이러한 보호 논리 유니트(112)는 i486의 세그먼트형 메모리 구조의 구현에 필요하다.
상기 디버그 논리(118)는 모든 디버그 레지스터를 포함하며 명령어 및 데이타의 브레이크포인트(breakpoint)들을 구현한다. 상기 버스 유니트(116)와 함께, 상기 디버그 논리(118)는 또한 외부에서의 내부 회로 에뮬레이션(in-circuit emulation;ICE) 지원을 위한 요건들도 구현한다.
위에서 설명한 집적 회로에는 또한 내부 회로 에뮬레이션(ICE)을 지원하는 특징들을 포함하는 프로세서 코어가 제공될 수도 있다. 프로세서의 선택적인 ICE 특징들에 관한 이후의 논의에서는, 다음과 같은 용어들이 사용될 것이다:
클록: 이러한 설명 전체에서 인용되는 클록은 시스템 클록 출력 신호(SYSCLK)와 논리적인 면에서 동일하며, 이러한 시스템 클록 출력 신호는 다시 온-칩 "CPU 클록" 신호와 기능적인 면에서 동일한 것으로 가정된다. 온-칩 구현예는 전파 지연의 이유로 인해 서로 다른 신호를 사용할 수 있다.
ICE 모드-정상 모드: 이것은 ICE 시스템의 일부인 디바이스와 어플리케이션시스템의 일부인 디바이스와의 구별이다. ICE 모드에서의 디바이스는 많은 입력/출력 신호 핀들을 제공한다.
ICE 예외 모드-정상 예외 모드: 만약 디바이스가 ICE 모드에 있다면, 디버그 레지스터 세트는 IM비트를 세팅함으로써, ICE 예외 모드에 놓여질 수 있다. 이것은 ICE 시스템 모니터에 대한 트랩을 위한 디버그 레지스터 및 ICEBP 명령어의 사용을 가능하게 한다.
중단 모드-동작 모드: 이것은 ICE 모니터 프로그램의 동작과 어플리케이션에 속하는 코드의 동작과의 구별이다. 중단 모드는 인터럽트 1(디버그 트랩)에 의해서가 아니라, 단지 ICE 예외만에 의해 진입된다.
ICE 맵-사용자 맵: 이들 맵은 동일하다. ICE 모니터는 사용자의 코드와 같은 어드레싱 공간에서 동작하지만, 단지 ICE 사용을 위해서만 예약되어 있는 영역(80000000--83FFFFFF)에서 동작한다.
오버레이(overlay)-타겟 메모리: 사용자 코드에 의해 가시화되는 메모리는 물리적으로 타겟 회로 메모리에 존재할 수도 있고 ICE 시스템내에 에뮬레이션될 수도 있다(오버레이). DRAM 콘트롤러가 항상 활성 상태이라는 사실로 인해, 오버레이 메모리는, DRAM의 어드레스 공간내로 매핑되는 경우 페이지 모드 DRAM을 에뮬레이션해야 할 것이다.
본 발명에 따른 내부 회로 에뮬레이터 프로세서는 바람직하게는 모놀리식 형태로 패키징되며 ICE가 에뮬레이션해야 할 위에서 설명한 프로세서에서 제공되지 않은 ICE-전용 신호 핀을 제공한다. 그러나, 상기 에뮬레이터 프로세서의 칩 다이는 타겟 프로세서와 동일한 것이 바람직하다.
표1에는 내부 회로 에뮬레이터 프로세서의 "에뮬레이터 모드" 동안 제공되는 신호들이 기재되어 있다. 표1에 기재된 바와 같이, 에뮬레이터 모드는 시스템 리셋시 ICE 모드 입력 신호 핀에 걸리는 신호를 활성화시킴으로써 선택된다. 시스템 리셋시 ICE 모드 입력 신호 핀에 걸린 신호가 활성화되지 않는 경우, 전용 ICE 출력 신호 핀에 제공되는 신호들은 불확정적이며, 그리고 칩상의 모든 ICE 특징들은 디세이블된다. 선택된 모드는 그러한 디바이스가 리셋되는 다음 시간까지 유효하게 유지된다.
[표1]: 에뮬레이터 전용 신호 핀
Figure pct00001
Figure pct00002
Figure pct00003
Figure pct00004
[표2]: 열거된 버스 스테이터스 상태
Figure pct00005
ICE 환경을 지원하기 위해 프로세서의 디버그 레지스터에 2개의 비트가 추가된다:
IM 레지스터 DR7의 비트 12
BI 레지스터 DR6의 비트 12
상기 디버그 레지스터의 IM 비트가 세팅되면 브레이크포인트가 사용자 공급 코드에 의해 제공되는 인터럽트보다는 오히려 ICE 예외(즉, 모니터 코드)를 트리거시킨다. 또한, IM=1인 동안, ICEBP 명령어(소프트웨어 트랩(TRAP) 명령어)는 사용자 공급 코드에 의해 제공되는 인터럽트 대신에 ICE 예외를 트리거시킨다.
ICE 모드 또는 정상 모드 중 어느 것이 총체적인 디바이스용으로 선택되는지에 관계없이 IM 비트는 칩 리셋에 의해 0으로 리셋된다. 이것은 소프트웨어 동작에 의하여 "1"로 셋팅되어야 한다.
외부적으로 생성된 브레이크포인트(BPREQ핀에서 전송됨)가 ICE 예외에 대한 원인들 중 하나일 때마다 ICE 모드내의 BI 비트가 하드웨어에 의해 셋팅된다. 상기 BI 비트는 소프트웨어 동작에 의해 클리어된다.
도6은 ALS 신호의 타이밍을 예시한 것이다. 도6에 도시된 바와 같이, ALS는 그의 상승 구간상에서 어드레스를 래치하기에 적합한 고 레벨 진행 펄스이다. 하강 구간은 대개 사용되어서는 안되는 데, 그 이유는 어드레스가 상기 하강 구간과 동시에 변할 수 있기 때문이다. ALS는 오프-칩 버스상의 모든 유효 어드레스와 동기식으로 제공된다.
NSF, IXSTAT 및 IXQUAL 신호의 주 목적은 오프-칩 하드웨어가 실행시 현재의 EIP(명령어 포인터)값에 의해 참조된 리니어 어드레스를 따라 동작하게 하는 것이다. 이것은 비-순차적인 페치 표시(NSF)가 제공될 때마다 어드레스 버스로부터 오프-칩 리니어 EIP(LEIP) 레지스터를 로딩시킴으로써, 그리고 IXSTAT가 고 레벨인 어느 한 클록 싸이클에서 IXQUAL 값의 내용을 LEIP 레지스터에 추가함으로써 적극적인 추적 모드로 이행된다. 그러나, 분기 명령어와 예외 서비스 마이크로코드 시퀀스에서는, 다르게 처리되어야 하는 IXSTAT 표시가 있다.
도7에 제공된 타이밍 다이어그램은 명령어가 분기될 때 NSF 표시와 IXSTAT 및 IXQUAL 스테이터스 신호 사이의 관계를 예시한 것이다. NSF 표시는, 이러한 NSF 표시가 존재하고 있다(IXSTAT=1)는 것을 분기 명령어가 나타내는 시점에나 그 시점 전에 생긴다는 점에 유념하기 바란다. NSF 표시가 나타날 때, 연관된 IXSTAT=1 표시가 LEIP를 증분시키도록 허용되어서는 안된다. 그러한 시점에서 LEIP이 증분되면 분기 명령어의 길이를 타겟 어드레스에 추가함으로써 불량한 값이 생성될 것이다. 예외 서비스의 경우에, IXSTAT=1일 때 제공되는 길이의 값은 정의되어 있지 않다.
IXSTAT 신호가 이러한 상황에서 LEIP 값을 증분시키는 데 사용되어서는 안된다라는 사실에도 불구하고, 그것은 여전히 유용한 정보를 제공한다. 어떤 분기 명령어들이 NSF를 전송한 후에 그 분기 명령어는 장해가 발생될 가능성이 있다. 이 경우에, IXQUAL=1 상태의 존재 또는 부재는 예외가 취해지기 전에 명령어가 완료되었는 지의 여부에 관한 신뢰성있는 표시이다.
Figure pct00006
핀은 어드레스되는 장소에 관계없이 모든 어드레스를 따라 동작한다. 이것은 ICE 모드와 정상 모드 사이에 어떠한 변화도 없음을 나타낸다.
Figure pct00007
Figure pct00008
스트로브 신호는 외부 뿐만 아니라 내부의 모든 I/O 액세스에 대해 활성화된다.
입력 신호(ICE 모드,BPREQ)는 SYSCLK의 래칭 구간에 대해 제로(0) 유지 시간이 제공되도록 허용된다.
에뮬레이터 지원 프로세서는 도8에 개략적으로 도시된 바와 같이 현존하는 탑재된 칩상의 클립에 의해 사용자 하드웨어(예컨대, 제조 보드)상에 설치된다. 그러한 칩은, ICE내의 에뮬레이터 지원 프로세서가 시스템을 구동시킬 수 있도록 모든 핀이 부동 상태로 되는 경우에 디세이블된다. 도9에 도시된 바와 같이, 이것은 리셋동안 두개의 핀, 즉 신호(TEST,SA0)를 구동시킴으로써 이행된다. SAO의 정상 리셋 상태는 저(low) 레벨이 되게 한다; 그러나, 만약 PWGOOD 신호가 저 레벨인 동안(즉, 칩이 리셋 상태에 있는 동안) TEST 핀이 저 레벨로 된다면, 칩은 미약한(weak) 디바이스에 대하여 SAO를 고 레벨로 구동시키려고 할 것이다. 만약 SAO가 외부의 영향으로(ICE 디바이스의 대응하는 핀에 의해) 저 레벨로 유지된다면, 다른 모든 핀들은 즉시 부동 상태로 될 것이다. 리셋의 종료에 따라(PWGOOD가고 레벨로 진행됨에 따라), 부동 상태는 불변 상태로 될 것이며, SAO상의 미약한 구동기도 또한 턴오프됨으로 인해, 그것 또한 부동 상태로 된다. 이러한 상태는 다음 리셋 때까지 유효하게 유지될 것이다. (이러한 방안은 다른 어떤 TEST 모드에서도 출력들이 TEST가 저 레벨로 되는 시간과 SAO가 상승되는 시간 사이에서 잠깐 부동 상태로 된다는 것을 의미한다.)
또한, ICE 시스템의 부착을 허용할 어느 시스템에서라도 TEST 핀을 VCC에 직접 접속시키는 것은 허용되지 않는다.
'486 구조에 대하여 정의된 바와 같이, 디버그 레지스터의 문서화된 특징들은 에뮬레이터 프로세서에서 완전하게 구현된다.
ICE 예외의 발생시에 하드웨어 동작에 의해 임의의 프리-러닝(free-running) 타이머를 정지시키도록 의도하는 것은 아니다. 워치도그(watchdog)는 NMI상의 록아웃( lockout)에 의해 지원받는다.
ICE 매핑된 공간은 정상적인 사용자 매핑된 공간으로부터 분리되도록 의도된 것이 아니다. ICE 매핑된 메모리는 32-비트 어드레스(어드레스 80000000-83FFFFFF hex)의 최상위 6비트로 이루어진 100000(2진)로 구성된 모든 어드레스를 점유한다. 사용자-프로그램가능 칩 선택은 결코 이러한 어드레스 범위에 응답하도록 프로그래밍되어서는 안되지만, 이것이 발생하는 것을 방지하기 위한 어떠한 하드웨어 온-칩도 존재하지 않는다. 결코 여기에서는 메모리를 할당하지 않도록 하는 것이 개발 소프트웨어의 이행 능력이다. ICE 예외를 트리거하는 것과는 달리 이러한 공간을 액세스하려고 하는 사용자의 시도를 검출하는 것이 ICE 시스템의 이행 능력이다.
ICE 매핑된 공간은 또한 ICE 모드가 이네이블될 때 16 비트 폭이라고 가정된다. CS16 신호는 이러한 공간내에서의 액세스를 위해 무시될 것이다. ICE 맵내의 위치들에 대한 액세스 동안, ISA와 같은 메모리 타이밍이 사용된다. 디바이스가 ICE 모드에 있는 경우, 소프트웨어는 ICE 모드 타이밍 제어 레지스터라고 불리우는 IO 어드레스 EF5Fh에 있는 레지스터를 액세스할 수 있다. 디바이스가 ICE 모드에 있지 않는 경우, 이러한 레지스터는 어떠한 효과도 발휘하지 않으며 판독도 기록도 되지 않을 수 있다.
모드 타이밍 제어 레지스터내에서의 비트들의 정의는 다음과 같다:
I_CD: 비트 3. ICE 명령 지연, 이러한 비트는 명령 지연이 ICE 메모리 어드레스 범위(80000000h--83FFFFFFh)에 대한 액세스들에 연관되어 있는 지를 결정한다. 리셋 상태는 "1"이다.
I_WS2-0: 비트 2-0. ICE 대기 상태 비트 2-0, 이들 비트는 ICE 메모리 어드레스 범위(80000000h-83FFFFFFh)에 대한 액세스들에 연관된 대기 상태의 개수를 결정한다. 리셋 상태는 "111"(7개의 대기 상태)이다.
예약됨: 비트 4-7, 예약됨(reserved): 이들 비트에 대해 어떠한 변화도 없음.
만약 DRAM이 ICE 맵 공간에서 RAM용으로 사용된다면, 오프-칩 DRAM 콘트롤러가 필요하다.
프로그램 실행의 흐름을 포획하기 위하여는 2가지 모드, 즉 적극적 모드와 소극적 모드가 정의된다.
적극적 모드에서는, 분기가 취해질 때마다, (SA25--SA1 및 ODD 상의) 타겟 어드레스는 NSF 신호와 ALS 스트로브 펄스와 함께 버스에 전송된다. 그 이외에도, 명령어가 실행을 종료할 때마다, IXSTAT 및 IXQUAL 신호들은 얼마나 많은 바이트들로 실행 어드레스를 진행시킬 지를 나타낸다. 이들 신호를 조사함으로써, ICE 시스템은 거의 실시간으로 코드 추적을 할 수 있다. 이러한 모드는 "적극적인 추적"이라 불리는 데, 그 이유는 이것이 실시간 성능 면에서 적은 비용으로 최고로 가능한 추적 보고의 신뢰성을 보장하기 때문이다: 명령어가 캐시 어드레스에 분기될 때, 그것은 타겟 어드레스가 보고될 수 있도록 오프-칩 버스가 이용가능해질 때까지 대기하여야 한다. ICE 환경 이외에는, 그것이 대기하지 않을 것이다.
실제 실시간으로 동작하기 위하여는, 소극적 추적 모드가 선택될 수 있다: 이러한 모드에서, NSF 표시는 버스가 명령어 캐시 히트(hit)상에서 이용가능해질 때까지 대기하지 않고, 그래서 분기들이 SA핀들상에 타겟 어드레스를 제공하도록 보장받지 못한다.
ICE 매핑된 메모리에서 ICE 모니터 코드를 실행하기 위하여, ICE 예외를 얻는 것이 필요하다. ICE 예외는 최고의 우선순위 예외이다. 그것은 디바이스가 ICE 모드에 있고 BPREQ 핀이 활성화되는 경우에 트리거된다. (그렇지 않은 경우, BPREQ 핀의 활성화는 어떠한 효과도 발휘하지 못한다). 그 이외에도, 만약 디버그 레지스터가 ICE 예외 모드(DR7 비트 IM=1)에 있다면, ICEBP 명령어(opcode F1 hex), 또는 디버그 레지스터에 의해 트리거되는 임의의 브레이크포인트, 또는 (EFLAGS 레지스터내의 TF 비트로부터의) 단일 단계 트랩의 실행은 ICE 예외를 야기시킨다.
만약 디버그 레지스터가 ICE 예외 모드용으로 구성되어 있지 않다면, ICEBP 명령어와 디버그 레지스터는 디버그 트랩, 즉 인터럽트 1을 트리거시킨다. DR6 레지스터의 비트12의 스테이터스는 BPREQ 신호가 ICE 예외의 원인인 지를 나타낸다.
IM 비트는 (모든 경우에 인터럽트 1을 트리거하는) 2바이트 INT 1 명령어에 영향을 주지도 않고 (소프트웨어 "트랩" 명령어인) "INT 3"을 포함하여, 다른 INT 명령어들 중 어떠한 것에도 영향을 주지 않는다. 그것은 또한, 모든 경우에 ICE 예외를 생성시키는 BPREQ 핀의 기능에도 영향을 주지 않는다.
에뮬레이터가 ICE 예외를 제공하기 시작하는 시점으로부터 ICE 모니터 프로그램이 프로그램 제어를 사용자 코드(하기의 RSM)로 복귀시키는 시간까지는, 또 다른 ICE 예외나 또는 어떠한 마스킹가능하지 않은 인터럽트(Non-Maskable Interrupt;NMI)도 인식되지 않는다. 임의의 NMI 요구가 내부적으로는 계속 상태로 유지되고 동작 모드로 탈출할 때 제공된다. 어떤 추가적인 BPREQ 요구들은 (ICE 모니터로부터의) BPREQ 응답이 나타날 때까지 오프-칩 회로에 의해 계속 상태로 유지되는 데; 이것은 또한 사용자 코드로 탈출할 때에야 비로소 발생한다.
바람직하게는, ICE 모니터 프로그램은 진입시 워치도그 특징을 디세이블시키고, 동작 모드로 복귀하기 전에 워치도그를 다시 이네이블시켜 워치도그를 제공한다. 이를 이행함으로써, 워치도그 이벤트들은 비-ICE 환경에서와 마찬가지로 발생할 확률이 많지 않다.
ICE 예외의 발생시, 총체적인 기계 상태는 어드레스 80000000 hex에서 개시하는 ICE 출력 테이블내로 저장된다. 정보는 먼저, 어드레스 80000100에서 개시하여, 출력된 다음에 80000000으로 복귀된다. 값들은 32-비트 2중-워드의 단위로 저장되고, 만약 이들이 완전한 2중-워드를 점유하고 있지 않다면 0이 충전된 상태로 우단 정렬된다. 섀도(shadow) 레지스터들의 내용들은 두개의 2중 워드로, 바람직하게는, 메모리 세그먼트 디스크립터(descriptor)의 포맷과 유사한 포맷으로 저장된다.
기계 상태를 출력한 후에는, EIP 레지스터가 값(83FFFFF0)으로 로드되는 것을 제외하고는, 프로세서 코어가 리셋과 유사한 상태에 이르게 된다. 이러한 상태에서, 모든 내부 섀도 레지스터는 0의 베이스 값과 최대 세그먼트 길이(4Gbyte)로 셋팅된다. 프로세서는 또한 부호화를 위해 USE32 모드로 배치된다.
만약 BPREQ 입력이 리셋으로부터 탈출하는 동안에 활성화된다면, 정상적인 리셋 처리 직후에 앞서 설명한 서비스가 생긴다. ICE 예외가 진입되었다는 것을 IXSTAT/ IXQUAL 신호들이 응답할 때까지 BPREQ 신호가 제거되지 않는 것이 바람직하다.
중단 모드에서, 사용자-매핑된 메모리 데이타 또는 코드에 대한 참조는 일반적인 명령어들을 사용할 수 있는 데, 그 이유는 메모리 공간이 분리되어 있지 않기 때문이다. ICE 맵내의 코드는 캐시될 수 없고; 따라서, 중단 모드에서의 코드의 실행은 사용자의 코드로 복귀하는 인터럽트가 ICE 시스템의 모니터로부터 허용되지 않는 한 명령어 캐시를 수정하지 못한다. 기록이 중단 모드에서 이행되는 임의의 캐시 라인을 무효화시키기 위해, 버스상에의 스누핑(snooping) 동작이 계속된다. 중단 모드로의 진입시에는 캐시를 무효화시킬 필요가 없다.
동작 모드로 복귀하기 위해, 모니터는 프로세서로 하여금 명령어 RSM(opcode OF, AA hex)을 실행하게 하는 데, 이로 인해 CPU의 구조적인 레지스터와 섀도 레지스터가 ICE 출력 테이블로부터 로딩된다. 그후, 복원된 EIP 및 CS 이미지에 의해 표시되는 지점으로부터 실행이 계속된다. 일시 레지스터들은 전혀 복원되지 않는다.
만약 RSM 명령어가 동작 모드에서 실행된다면, 그것은 "무효 명령어" 트랩을 야기시킨다.
본원 명세서에 첨부된 부록들은 본 발명이 구현되었던 집적 회로에 대한 정보를 포함하고 있으며 본원 명세서에 참고로 합체된 것이다. 부록 A는 앞서 논의된 설명에 따른 집적 회로를 위한 CPU 설계에 대한 C-언어 코드 리스트로 이루어진, Copy-right 1995, National Semiconductor Corporation의 저작권으로 보호받아야 할 자료를 포함하는 마이크로피치(microfiche;총 302 프레임을 포함하고 있는 5장의 시트)이다. 부록 B는 그러한 집적 회로에 대한 예비 사양서 및 데이타 시트이다. 부록 C는 그러한 집적회로의 코어용 내부 신호 버스에 대한 예비 사양서이다. 부록 D는 그러한 집적 회로의 내부 주변장치용 내부 신호 버스에 대한 예비 사양서이다.
본원 명세서에서 설명한 본 발명의 실시예는 이하 본원과 함께 계류중에 있으며 각각의 개시 내용이 본원 명세서에 참고가 되는 일반 양도된 특허출원들, 즉 발명의 명칭이 "그레이 스케일 변조 데이타용의 외부 메모리를 액세스할 수 있는 디스플레이 콘트롤러(DISPLAY CONTROLLER CAPABLE OF ACCESSING AN EXTERNALMEMORY FOR GRAY SCALE MODULATION DATA)"인 미합중국 특허출원 제08/451,319호(대리인 서류번호 제NSC1-62700호); 발명의 명칭이 "2가지의 서로 다른 직렬 데이타 전송 모드로 동작가능한 직렬 인터페이스(SERIAL INTERFACE CAPABLE OF OPERATING IN TWO DIFFERENT SERIAL DATA TRANSFER MODES)"인 미합중국 특허출원 제08/451,965호(대리인 서류번호 제NSC1-62800호); 발명의 명칭이 "고성능의 다기능 직접 메모리 액세스(DMA) 콘트롤러(HIGH PERFORMANCE MULTIFUNCTION DIRECT MEMORY ACCESS (DMA) CONTROLLER)"인 미합중국 특허출원 제08/453,076호(대리인 서류번호 제NSC1-62900호); 발명의 명칭이 "최소 펄스 폭을 갖는 개방 드레인 다중-소오스 클록 발생기(OPEN DRAIN MULTI-SOURCE CLOCK GENERATOR HAVING MINIMUM PULSE WIDTH)"인 미합중국 특허출원 제08/452,001호(대리인 서류번호 제NSC1-63000호); 발명의 명칭이 "분산형 버스 액세스 및 제어 조정에 따라 다수 개의 내부 신호 버스들을 공유하는 다수 개의 회로 기능 요소들을 갖는 집적 회로(INTEGRATED CIRCUIT WITH MUL-TIPLE FUNCTIONS SHARING MULTIPLE INTERNAL SIGNAL BUSES ACCORDING TO DISTRI-BUTED BUS ACCESS AND CONTROL ARBITRATION)"인 미합중국 특허출원 제08/451,503호(포기됨:대리인 서류번호 제NSC1-63100호); 발명의 명칭이 "x86 명령어 세트 및 x86 세그먼트 어드레싱을 지원하기 위한 연산 유니트 구조(EXECUTION UNIT ARCHI-TECTURE TO SUPPORT x86 INSTRUCTION SET AND x86 SEGMENTED ADDRESSING)"인 미합중국 특허출원 제08/451,924호(현재에는 미합중국 특허 제5,655,139호로 특허부여됨:대리인 서류번호 제NSC1-63300호); 발명의 명칭이 "배럴 시프터(BARREL SHIF-TER)"인 미합중국 특허출원 제08/451,444호(현재에는미합중국 특허 제5,652,718호로 특허부여됨:대리인 서류번호 제NSC1-63400호); 발명의 명칭이 "32-비트 데이타 경로를 사용하는 8, 16 또는 32-비트 오퍼랜드를 통한 비트 탐색(BIT SEARCHING THROUGH 8, 16, OR 32-BIT OPERANDS USING A 32-BIT DATA PATH)"인 미합중국 특허출원 제08/451,204호(대리인 서류번호 제NSC1-63500호); 발명의 명칭이 "32-비트 데이타 경로를 사용하는 배정밀도(64-비트) 시프트 연산(DOUBLE PRECISION(64-BIT) SHIFT OPERATIONS USING A 32-BIT DATA PATH)"인 미합중국 특허출원 제08/451,195호(대리인 서류번호 제NSC1-63600호); 발명의 명칭이 "부호 구분을 이행하는 방법(METHOD FOR PERFORMING SIGNED DIVISION)"인 미합중국 특허출원 제08/451,571호(대리인 서류번호 제NSC1-63700호); 발명의 명칭이 "32-비트 배럴 시프터 및 카운터를 사용하여 캐리를 통한 순환을 이행하는 방법(METHOD FOR PERFORMING ROTATE THROUGH CARRY USING A 32-BIT BARREL SHIFTER AND COUNTER)"인 미합중국 특허출원 제08/452,162호(대리인 서류번호 제NSC1-63800호); 발명의 명칭이 "구역 및 시간 유효 필드 추출 회로(AREA AND TIME EFFICIENT FIELD EXTRACTION CIRCUIT)"인 미합중국 특허출원 제08/451,434호(대리인 서류번호 제NSC1-63900호); 발명의 명칭이 "비-산술 순환 버퍼 셀 이용률 상태 표시기 회로(NON-ARITHMETICAL CIRCULAR BUFFER CELL AVAILABILITY STATUS INDICATOR CIRCUIT)"인 미합중국 특허출원 제08/451,535호(현재에는 미합중국 특허 제5,617,543호로 특허부여됨:대리인 서류번호 제NSC1-64000호); 발명의 명칭이 "가변 길이 명령어 세트용의 태깅된 프리페치 및 명령어 복호기 및 작동 방법(TAGGED PREFETCH AND INSTRUCTION DECODER FOR VARIABLE LENGTH INSTRUCTION SET ANDMETHOD OF OPERATION)"인 미합중국 특허출원 제08/445,563호(대리인 서류번호 제NSC1-64100호); 발명의 명칭이 "저전력 동작용 구분 복호기 회로(PARTITIONED DECODER CIRCUIT FOR LOW POWER OPERATION)"인 미합중국 특허출원 제08/450,153호(현재에는 미합중국 특허 제5,546,353호로 특허부여됨:대리인 서류번호 제NSC1-64200호); 발명의 명칭이 "프로세서 복호기에 의한 용도로 명령어 포인터를 지정하는 회로(CIRCUIT FOR DESIGNATING INSTRUCTION POINTERS FOR USE BY A PROCESSOR DECODER)"인 미합중국 특허 출원 제08/451,495호(현재에는 미합중국 특허 제5,649,147호로 특허부여됨:대리인 서류번호 제NSC1-64300호); 발명의 명칭이 "요구에 기초한 게이트된 클록을 생성시키는 회로(CIRCUIT FOR GENE-RATING A DEMAND-BASED GATED CLOCK)"인 미합중국 특허출원 제08/451,219호(대리인 서류번호 제NSC1-64500호); 발명의 명칭이 "증분기/감분기(INCREMENTOR/DECREMENT-OR)"인 미합중국 특허출원 제08/451,214호(현재에는 미합중국 특허 제5,598,112호로 특허부여됨:대리인 서류번호 제NSC1-64700호); 발명의 명칭이 "메모리 요구를 외부 메모리에 파이프라인 처리하는 파이프라인형 마이크로프로세서(A PIPELINED MICROPROCESSOR THAT PIPELINES MEMORY REQUESTS TO AN EXTERNAL MEMORY)"인 미합중국 특허출원 제08/451,150호(현재에는 미합중국 특허 제5,583,453호로 특허부여됨:대리인 서류번호 제NSC1-64800호); 발명의 명칭이 "코드 브레이크포인트 복호기(CODE BREAKPOINT DECODER)"인 미합중국 특허출원 제08/451,198호(대리인 서류번호 제NSC1-64900호); 발명의 명칭이 "바이패스 기능을 갖는 2계층 프리페치 버퍼 구조 및 방법(TWO TIER PREFETCH BUFFER STRUCTURE AND METHOD WITH BYPASS)"인미합중국 특허출원 제08/445,569호(대리인 서류번호 제NSC1-65000호); 발명의 명칭이 "마이크로프로세서용의 명령어 한계 검사(INSTRUCTION LIMIT CHECK FOR MICROPROCESS-OR)"인 미합중국 특허출원 제08/445,564호(대리인 서류번호 제NSC1-65100호); 발명의 명칭이 "동일 클록 사이클 동안 캐시 메모리 및 외부 메모리 콘트롤러에 메모리 요구를 이행하는 파이프라인형 마이크로프로세서(A PIPELINED MICROPROCESSOR THAT MAKES MEMORY REQUESTS TO A CACHE MEMORY AND AN EXTERNAL MEMORY CONTROLLER DURING THE SAME CLOCK CYCLE)"인 미합중국 특허출원 제08/452,306호(포기됨:대리인 서류번호 제NSC1-65200호); 발명의 명칭이 "486TM마이크로프로세서의 호환가능한 팝 명령어를 효율적으로 계산하기 위한 장치 및 방법(APPARATUS AND METHOD FOR EFFICIENT COMPUTATION OF A 486TMMICROPROCESSOR COMPATIBLE POP INSTRUCTION)"인 미합중국 특허출원 제08/452,080호(대리인 서류번호 제 NSC1-65700호); 발명의 명칭이 "메모리에 저장된 오정렬 데이타용 어드레스를 효율적으로 결정하는 방법 및 장치(APPARATUS AND METHOD FOR EFFICIENTLY DETERMINING ADDRESSES FOR MIS-ALIGNED DATA STORED IN MEMORY)"인 미합중국 특허출원 제08/450,154호(포기됨:대리인 서류번호 제NSC1-65800호); 발명의 명칭이 "고속 486TM마이크로프로세서의 호환가능한 스트링 동작을 이행하는 방법(METHOD OF IMPLEMENTING FAST 486TMMICRO-PROCESSOR COMPATIBLE STRING OPERATION)"인 미합중국 특허출원 제08/451,742호(대리인 서류번호 제NSC1-65900호); 발명의 명칭이 "캐시의 내용이 무효인 경우 캐시가 판독되지 않게 하는 파이프라인형 마이크로프로세서(A PIPELINED MICROPROCESS-OR THAT PREVENTS THE CACHE FROM BEING READ WHEN THE CONTENTS OF THE CACHE ARE INVALID)"인 미합중국 특허출원 제08/452,659호(현재에는 미합중국 특허 제5,659,712호로 특허부여됨:대리인 서류번호 제NSC1-66000호); 발명의 명칭이 "메모리 요구를 처리하는 데 소요되는 시간을 감소시키는 DRAM 콘트롤러(DRAM CONTROLLER THAT REDUCES THE TIME REQUIRED TO PROCESS MEMORY REQUESTS)"인 미합중국 특허출원 제08/451,507호(포기됨:대리인 서류번호 제NSC1-66300호); 발명의 명칭이 "핀 개수가 감소된 통합 프라이머리 버스 및 세컨더리 버스 콘트롤러(INTEGRATED PRI-MARY BUS AND SECONDARY BUS CONTROLLER WITH REDUCED PIN COUNT)"인 미합중국 특허출원 제08/451,420호(대리인 서류번호 제NSC1-66400호); 발명의 명칭이 "공급원 및 인터페이스로 구성가능한 입/출력 버퍼(SUPPLY AND INTERFACE CONFIGURABLE INPUT/OUTPUT BUFFER)"인 미합중국 특허출원 제08/452,365호(현재에는 미합중국 특허 제5,612,637호로 특허부여됨:대리인 서류번호 제NSC1-66500호); 발명의 명칭이 "미세 조정가능한 프레임 속도를 갖는 디스플레이 콘트롤러용의 클록 발생 회로(CLOCK GENERATION CIRCUIT FOR A DISPLAY CONTROLLER HAVING A FINE TUNEABLE FRAME RATE)"인 미합중국 특허출원 제08/451,744호(대리인 서류번호 제NSC1-66600호); 발명의 명칭이 "구성가능한 전력 관리 방법(CONFIGURABLE POWER MANAGEMENT SCHEME)"인 미합중국 특허출원 제08/451,206호(대리인 서류번호 제NSC1-66700호); 발명의 명칭이 "양방향 병렬 신호 인터페이스(BIDIRECTIONAL PARALLEL SIGNAL INTERFACE)"인 미합중국 특허출원 제08/452,350호(대리인 서류번호 제NSC1-67000호); 발명의 명칭이 "액정 표시기(LCD) 보호 회로(LIQUID CRYSTAL DISPLAY(LCD) PRO-TECTION CIRCUIT)"인 미합중국 특허출원 제08/452,094호(대리인 서류번호 제NSC1-67100호); 발명의 명칭이 "공유 시스템 메모리로부터 그래픽 데이타를 액세스할 수 있는 디스플레이 콘트롤러(DISPLAY CONTROLLER CAPABLE OF ACCESSING GRAPHICS DATA FROM A SHARED SYSTEM MEMORY)"인 미합중국 특허출원 제08/450,156호(대리인 서류번호 제NSC1-67500호); 발명의 명칭이 "테스트 신호 버스 및 테스트 제어 회로를 지니는 집적 회로(INTEGRATED CIRCUIT WITH TEST SIGNAL BUSES AND TEST CONTR-OL CIRCUITS)"인 미합중국 특허출원 제08/450,726호(현재에는 미합중국 특허 제5,541,935호로 특허부여됨:대리인 서류번호 제NSC1-67600호); 발명의 명칭이 "복호화 블럭 테스트 방법 및 장치(DECODE BLOCK TEST METHOD AND APPARATUS)"인 미합중국 특허출원 제08/445,568호(대리인 서류번호 제NSC1-68000호);에 기재되어 있는 다수의 추가적인 기능들 및 특징들을 포함하는 집적 회로에서 구현되었다.
본 발명의 구조 및 동작 방법에 있어서의 다른 여러 변형 및 수정예들이 본 발명의 범위 및 사상으로부터 이탈하지 않고서도 당업자에게는 자명해질 것이다. 본 발명이 특정의 바람직한 실시예와 연관지어 설명되었지만, 청구된 바와 같은 발명은 그러한 특정의 실시예에 부당하게 한정되어서는 안된다는 점을 이해하여야 한다. 첨부된 청구의 범위가 본 발명의 범위를 한정하고 이들 청구항들의 범위 및 그들의 등가 범위에 속하는 구조들 및 방법들이 본 발명에 포함되도록 의도된 것이다.

Claims (31)

  1. 복수 개의 회로 기능 요소와 복수 개의 신호 버스를 갖는 집적 회로(IC)를 포함하는 장치에 있어서,
    상기 IC는,
    상기 IC내에서 제1의 복수 개의 버스 신호를 통신하기 위한 제1 신호 버스;
    상기 IC내에서 제2의 복수 개의 버스 신호를 통신하기 위한 제2 신호 버스;
    외부 회로에 연결되어 상기 IC 및 상기 외부 회로 사이에서 제3의 복수 개의 버스 신호를 통신하기 위한 제3 신호 버스;
    상기 제1 신호 버스를 선택적으로 액세스하고 상기 제1의 복수 개의 버스 신호의 통신을 제어하도록 상기 제1 신호 버스에 연결되어 있는 복수 개의 마스터 콘트롤러;
    상기 제1 신호 버스와 상기 제1의 복수 개의 버스 신호를 통해 상기 복수 개의 마스터 콘트롤러와 선택적으로 통신하고, 상기 제2 신호 버스를 선택적으로 액세스하며 상기 제2의 복수 개의 버스 신호의 통신을 제어하고, 상기 제3 신호 버스를 선택적으로 액세스하며 상기 제3의 복수 개의 버스 신호의 통신을 제어하도록 상기 제1, 제2 및 제3 신호 버스에 연결되어 있는 제1의 복수 개의 주변 회로; 및
    상기 제2 신호 버스와 상기 제2의 버스 신호를 통해 상기 제1의 복수 개의 주변 회로와 선택적으로 통신하도록 상기 제2 신호 버스에 연결되어 있는 제2의 복수 개의 주변 회로를 포함하는 것을 특징으로 하는, 복수 개의 회로 기능 요소와복수 개의 신호 버스를 갖는 집적 회로를 포함하는 장치.
  2. 제1항에 있어서, 상기 제1 신호 버스는 동기식 신호 버스를 포함하는 것을 특징으로 하는, 복수 개의 회로 기능 요소와 복수 개의 신호 버스를 갖는 집적 회로를 포함하는 장치.
  3. 제1항에 있어서, 상기 제2 신호 버스는 비동기식 신호 버스를 포함하는 것을 특징으로 하는, 복수 개의 회로 기능 요소와 복수 개의 신호 버스를 갖는 집적 회로를 포함하는 장치.
  4. 제1항에 있어서, 상기 제3 신호 버스는 비동기식 신호 버스를 포함하는 것을 특징으로 하는, 복수 개의 회로 기능 요소와 복수 개의 신호 버스를 갖는 집적 회로를 포함하는 장치.
  5. 제1항에 있어서, 상기 복수 개의 마스터 콘트롤러는 부가적으로 서로 통신하고 서로 통신함에 따라 그 중 어느 것이 상기 제1 신호 버스를 액세스하고 상기 제1의 복수 개의 버스 신호의 통신을 제어하는 지를 결정하기 위한 것인 것을 특징으로 하는, 복수 개의 회로 기능 요소와 복수 개의 신호 버스를 갖는 집적 회로를 포함하는 장치.
  6. 제1항에 있어서, 상기 복수 개의 마스터 콘트롤러는 중앙 처리 유니트(CPU) 및 직접 메모리 액세스(DMA) 콘트롤러를 포함하는 것을 특징으로 하는, 복수 개의 회로 기능 요소와 복수 개의 신호 버스를 갖는 집적 회로를 포함하는 장치.
  7. 제1항에 있어서, 상기 제1의 복수 개의 주변 회로는 서로 통신하고 서로 통신함에 따라 그 중 어느 것이 상기 제2 신호 버스를 액세스하고 상기 제2의 복수 개의 버스 신호의 통신을 제어하는 지를 결정하기 위한 것인 것을 특징으로 하는, 복수 개의 회로 기능 요소와 복수 개의 신호 버스를 갖는 집적 회로를 포함하는 장치.
  8. 제1항에 있어서, 상기 제1의 복수 개의 주변 회로는 서로 통신하고 서로 통신함에 따라 그 중 어느 것이 상기 제3 신호 버스를 액세스하고 상기 제3의 복수 개의 버스 신호의 통신을 제어하는 지를 결정하기 위한 것인 것을 특징으로 하는, 복수 개의 회로 기능 요소와 복수 개의 신호 버스를 갖는 집적 회로를 포함하는 장치.
  9. 제1항에 있어서, 상기 제1의 복수 개의 주변 회로는 다이내믹 랜덤 액세스 메모리(DRAM) 콘트롤러 및 버스 인터페이스 유니트(BIU)를 포함하는 것을 특징으로 하는, 복수 개의 회로 기능 요소와 복수 개의 신호 버스를 갖는 집적 회로를 포함하는 장치.
  10. 제1항에 있어서, 상기 제2의 복수 개의 주변 회로는 PCMCIA 콘트롤러를 포함하는 것을 특징으로 하는, 복수 개의 회로 기능 요소와 복수 개의 신호 버스를 갖는 집적 회로를 포함하는 장치.
  11. 제1항에 있어서, 상기 제2의 복수 개의 주변 회로는 부가적으로 상기 IC 외부에 있는 복수 개의 다른 회로에 연결되어 상기 IC 외부에 있는 복수 개의 다른 회로와 통신하기 위한 것인 것을 특징으로 하는, 복수 개의 회로 기능 요소와 복수 개의 신호 버스를 갖는 집적 회로를 포함하는 장치.
  12. 분산형 버스 액세스 및 제어 조정에 따라 복수 개의 신호 버스에 의해 서로 접속되어 있고 복수 개의 신호 버스를 공유하는 복수 개의 회로 기능 요소를 갖는 집적 회로(IC)를 포함하는 장치에 있어서,
    상기 IC는,
    복수 개의 버스 신호를 통신하기 위한 복수 개의 신호 버스;
    서로 통신하고 서로 통신함에 따라 그 중 어느 것이 상기 복수 개의 신호 버스의 제1 부분을 액세스하고 이를 제어하는 버스 마스터가 되는 지를 결정하고 그 결정에 따라 상기 복수 개의 버스 신호의 제1 부분의 통신을 제어하도록 상기 복수 개의 신호 버스의 제1 부분에 연결되어 있는 복수 개의 마스터 콘트롤러;
    서로 통신하고 서로 통신함에 따라 그 중 어느 것이 상기 버스 마스터와 통신하며 상기 복수 개의 신호 버스의 제2 부분을 액세스하고 이를 제어하는 지를 결정하고 그 결정에 따라 상기 버스 마스터와 통신하며 상기 복수 개의 버스 신호의 제2 부분의 통신을 제어하도록 상기 복수 개의 신호 버스의 제1 부분 및 제2 부분에 연결되어 있는 제1의 복수 개의 주변 회로; 및
    서로 통신하고 서로 통신함에 따라 그 중 어느 것이 상기 복수 개의 신호 버스의 제3 부분을 액세스하는 지를 결정하고 그 결정에 따라 상기 복수 개의 버스 신호의 제3 부분을 통신하도록 상기 복수 개의 신호 버스의 제3 부분에 연결되어 있는 제2의 복수 개의 주변 회로를 포함하는 것을 특징으로 하는, 분산형 버스 액세스 및 제어 조정에 따라 복수 개의 신호 버스에 의해 서로 접속되어 있고 복수 개의 신호 버스를 공유하는 복수 개의 회로 기능 요소를 갖는 집적 회로를 포함하는 장치.
  13. 제12항에 있어서, 상기 복수 개의 신호 버스의 제 2 부분 중 하나는 외부 회로에 연결되어 복수 개의 외부 버스 신호를 통해 상기 외부 회로와 통신하기 위한 것이며, 상기 제1의 복수 개의 주변 회로 중 하나는 부가적으로 상기 제2의 복수 개의 주변 회로 중 하나와 통신하고 그러한 통신에 따라 상기 복수 개의 버스 신호의 제4 부분 및 상기 복수 개의 외부 버스 신호의 통신을 제어하기 위한 것인 것을 특징으로 하는, 분산형 버스 액세스 및 제어 조정에 따라 복수 개의 신호 버스에 의해 서로 접속되어 있고 복수 개의 신호 버스를 공유하는 복수 개의 회로 기능 요소를 갖는 집적 회로를 포함하는 장치.
  14. 제12항에 있어서, 상기 복수 개의 신호 버스 중 하나는 동기식 신호 버스를 포함하는 것을 특징으로 하는, 분산형 버스 액세스 및 제어 조정에 따라 복수 개의 신호 버스에 의해 서로 접속되어 있고 복수 개의 신호 버스를 공유하는 복수 개의 회로 기능 요소를 갖는 집적 회로를 포함하는 장치.
  15. 제12항에 있어서, 상기 복수 개의 신호 버스 중 하나는 비동기식 신호 버스를 포함하는 것을 특징으로 하는, 분산형 버스 액세스 및 제어 조정에 따라 복수 개의 신호 버스에 의해 서로 접속되어 있고 복수 개의 신호 버스를 공유하는 복수 개의 회로 기능 요소를 갖는 집적 회로를 포함하는 장치.
  16. 제12항에 있어서, 상기 복수 개의 마스터 콘트롤러는 중앙 처리 유니트(CPU) 및 직접 메모리 액세스(DMA) 콘트롤러를 포함하는 것을 특징으로 하는, 분산형 버스 액세스 및 제어 조정에 따라 복수 개의 신호 버스에 의해 서로 접속되어 있고 복수 개의 신호 버스를 공유하는 복수 개의 회로 기능 요소를 갖는 집적 회로를 포함하는 장치.
  17. 제12항에 있어서, 상기 제1의 복수 개의 주변 회로는 다이내믹 랜덤 액세스 메모리(DRAM) 콘트롤러 및 버스 인터페이스 유니트(BIU)를 포함하는 것을 특징으로 하는, 분산형 버스 액세스 및 제어 조정에 따라 복수 개의 신호 버스에 의해 서로접속되어 있고 복수 개의 신호 버스를 공유하는 복수 개의 회로 기능 요소를 갖는 집적 회로를 포함하는 장치.
  18. 제12항에 있어서, 상기 제2의 복수 개의 주변 회로는 PCMCIA 콘트롤러를 포함하는 것을 특징으로 하는, 분산형 버스 액세스 및 제어 조정에 따라 복수 개의 신호 버스에 의해 서로 접속되어 있고 복수 개의 신호 버스를 공유하는 복수 개의 회로 기능 요소를 갖는 집적 회로를 포함하는 장치.
  19. 제12항에 있어서, 상기 제2의 복수 개의 주변 회로는 부가적으로 상기 IC 외부에 있는 복수 개의 다른 회로에 연결되어 상기 IC 외부에 있는 복수 개의 다른 회로와 통신하기 위한 것인 것을 특징으로 하는, 분산형 버스 액세스 및 제어 조정에 따라 복수 개의 신호 버스에 의해 서로 접속되어 있고 복수 개의 신호 버스를 공유하는 복수 개의 회로 기능 요소를 갖는 집적 회로를 포함하는 장치.
  20. 마이크로프로세서 시스템 클록의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서에 있어서,
    명령어들 및 명령어들을 실행하는 데 이용되는 오퍼랜드들을 참조하고, 결과치들을 생성시키도록 상기 명령어들을 실행하며, 저장 요소로부터 상기 명령어들 및 오퍼랜드들을 검색하고 저장 요소에 결과치들을 기록하는 데 이용되는 메모리 어드레스들을 연산하는 실행 단;
    상기 실행 단에 의해 참조된 명령어들을 검색하고, 상기 검색된 명령어들을 상기 실행 단에 의해 이용될 수 있는 형태로 복호화시키며 상기 복호화된 명령어들을 상기 실행 단에 제공하는 복호화 단; 및
    상기 실행 단에 의해 연산된 메모리 어드레스들로 저장 요소에 결과치들을 기록하는 라이트백 단을 포함하는 것을 특징으로 하는, 마이크로프로세서 시스템 클록의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서.
  21. 제20항에 있어서, 상기 복호화 단은 상기 시스템 클록의 단일 싸이클에서 검색된 명령어들을 복호화시키는 것을 특징으로 하는, 마이크로프로세서 시스템 클록의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서.
  22. 제20항에 있어서, 상기 실행 단은 상기 시스템 클록의 단일 싸이클에서 메모리 어드레스들을 연산하는 것을 특징으로 하는, 마이크로프로세서 시스템 클록의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서.
  23. 제20항에 있어서, 상기 라이트백 단은 상기 시스템 클록의 단일 싸이클에서 결과치들을 기록하는 것을 특징으로 하는, 마이크로프로세서 시스템 클록의 주기싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서.
  24. 마이크로프로세서 시스템 클록의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서에 있어서,
    (a) (i)결과치들을 생성시키도록 산술 및 논리 연산들을 이행하는 데 마이크로코드 명령어들 및 오퍼랜드들을 이용하고, 상기 명령어들 및 오퍼랜드들을 검색하고 결과치들을 저장 요소에 기록하는 데 이용되는 메모리 어드레스들을 연산하는 실행 유니트; 및
    (ii)상기 실행 유니트에 의해 이용되는 오퍼랜드들을 저장하고 특정의 판독 메모리 어드레스에 응답하여 상기 특정의 판독 메모리 어드레스에 해당하는 레지스터 파일 저장 장소로부터 오퍼랜드를 제공하며, 그리고 특정의 기록 메모리 어드레스에 응답하여 상기 특정의 기록 메모리 어드레스에 해당하는 레지스터 파일 저장 장소에 오퍼랜드를 저장하는 레지스터 파일를 포함하는 실행 단;
    (b) (i)저장 요소로 부터 명령어들을 검색하는 프리페치 유니트;
    (ii)상기 검색된 명령어들을 상기 실행 유니트에 의해 이용될 수 있는 형태로 복호화시키는 복호화 유니트; 및
    (iii)복호화 명령어에 해당하는 일련의 하나 또는 그 이상의 마이크로코드 명령어들을 제공하는 마이크로시퀀서 유니트를 포함하는 복호화 단; 및
    (c) (i)외부 판독 메모리 어드레스에 응답하여 상기 외부 판독 메모리 어드레스에 해당하는 명령어 또는 오퍼랜드를 상기 마이크로프로세서의 외부에 있는 저장 요소로부터 검색하며, 외부 기록 메모리 어드레스에 응답하여 상기 외부 기록 메모리 어드레스에 해당하는 결과치를 상기 마이크로프로세서의 외부에 있는 저장 요소에 저장하는 버스 인터페이스 유니트를 포함하는 라이트백 단을 포함하는 것을 특징으로 하는, 마이크로프로세서 시스템의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서.
  25. 제24항에 있어서, 상기 복호화 단은 교체 알고리즘을 기초로 하여 명령어들을 저장하고 상기 프리페치 유니트에 명령어들을 제공하는 명령어 캐시를 부가적으로 포함하는 것을 특징으로 하는, 마이크로프로세서 시스템의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서.
  26. 제24항에 있어서, 상기 실행 단은 상기 실행 유니트에 대한 보호 메카니즘을 구현하는 보호 논리 유니트를 부가적으로 포함하는 것을 특징으로 하는, 마이크로프로세서 시스템의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서.
  27. 제24항에 있어서, 상기 라이트백 단은 명령어 및 데이타 브레이크포인트들을 구현하는 디버그 논리를 부가적으로 포함하는 것을 특징으로 하는, 마이크로프로세서 시스템의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서.
  28. 제27항에 있어서, 상기 디버그 논리는 내부 회로 에뮬레이션(ICE) 지원을 구현하는 것을 특징으로 하는, 마이크로프로세서 시스템의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서.
  29. 제24항에 있어서, 모든 예외들 및 외부 인터럽트들을 우선화하여 이를 분해하는 예외 논리를 부가적으로 포함하는 것을 특징으로 하는, 마이크로프로세서 시스템의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서.
  30. 제24항에 있어서, 상기 실행 단, 상기 복호화 단 및 라이트백 단에 제어 신호들을 제공하는 범용 제어 논리를 부가적으로 포함하는 것을 특징으로 하는, 마이크로프로세서 시스템의 주기 싸이클들에 따라 데이타를 처리하도록 명령어들을 실행하는 마이크로프로세서.
  31. 타겟 프로세서의 원시 명령어 실행을 에뮬레이션하는 내부 회로 에뮬레이터에 있어서,
    캐시 프리페치 알고리즘에 따라 외부 메모리로부터 프리페치된 명령어들을 유지하는 캐시 메모리 수단;
    실행 수단에 연결되어 명령어 길이를 누산하는 수단; 및
    누산된 명령어 길이를 포함하는 명령어 포인터를 추적하는 수단을 포함하는 것을 특징으로 하는, 타겟 프로세서의 원시 명령어 실행을 에뮬레이션하는 내부 회로 에뮬레이터.
KR1019970700551A 1995-05-26 1996-05-16 분산형버스액세스및제어조정에따라다수개의내부신호버스를공유하는다수개의회로기능요소를갖는집적회로 KR100403405B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US45150395A 1995-05-26 1995-05-26
US08/451,503 1995-05-26

Publications (2)

Publication Number Publication Date
KR970705087A KR970705087A (ko) 1997-09-06
KR100403405B1 true KR100403405B1 (ko) 2004-03-30

Family

ID=23792487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970700551A KR100403405B1 (ko) 1995-05-26 1996-05-16 분산형버스액세스및제어조정에따라다수개의내부신호버스를공유하는다수개의회로기능요소를갖는집적회로

Country Status (5)

Country Link
US (2) US5774684A (ko)
EP (2) EP1343076A3 (ko)
KR (1) KR100403405B1 (ko)
DE (1) DE69633166T2 (ko)
WO (1) WO1996037854A2 (ko)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2976850B2 (ja) * 1995-07-13 1999-11-10 日本電気株式会社 データ処理装置
US5968155A (en) * 1995-08-23 1999-10-19 Sun Microsystems, Inc. Digital gate computer bus
JP3743789B2 (ja) * 1996-10-24 2006-02-08 株式会社ルネサステクノロジ メモリとプロセサとが同一チップ上に形成されたマイクロコンピュータ
JPH10214201A (ja) * 1997-01-29 1998-08-11 Mitsubishi Electric Corp マイクロコンピュータ
US5978866A (en) * 1997-03-10 1999-11-02 Integrated Technology Express, Inc. Distributed pre-fetch buffer for multiple DMA channel device
US6148381A (en) * 1997-04-08 2000-11-14 Advanced Micro Devices, Inc. Single-port trace buffer architecture with overflow reduction
US6189140B1 (en) 1997-04-08 2001-02-13 Advanced Micro Devices, Inc. Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US6154856A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Debug interface including state machines for timing synchronization and communication
US5978902A (en) * 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US6108738A (en) * 1997-06-10 2000-08-22 Vlsi Technology, Inc. Multi-master PCI bus system within a single integrated circuit
US6128728A (en) 1997-08-01 2000-10-03 Micron Technology, Inc. Virtual shadow registers and virtual register windows
GB2329049B (en) * 1997-09-09 2002-09-11 Advanced Risc Mach Ltd Apparatus and method for identifying exceptions when debugging software
TW406229B (en) * 1997-11-06 2000-09-21 Hitachi Ltd Data process system and microcomputer
US6105125A (en) * 1997-11-12 2000-08-15 National Semiconductor Corporation High speed, scalable microcode based instruction decoder for processors using split microROM access, dynamic generic microinstructions, and microcode with predecoded instruction information
US6009261A (en) * 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
US6263389B1 (en) 1998-01-21 2001-07-17 Micron Technology, Inc. Apparatus for increasing the number of loads supported by a host bus
US6041380A (en) * 1998-01-21 2000-03-21 Micron Electronics, Inc. Method for increasing the number of devices capable of being operably connected to a host bus
US6073200A (en) * 1998-01-27 2000-06-06 Vlsi Technology, Inc. System having processor monitoring capability of an integrated circuits buried, internal bus for use with a plurality of internal masters and a method therefor
US6385689B1 (en) 1998-02-06 2002-05-07 Analog Devices, Inc. Memory and a data processor including a memory
US6701395B1 (en) 1998-02-06 2004-03-02 Analog Devices, Inc. Analog-to-digital converter that preseeds memory with channel identifier data and makes conversions at fixed rate with direct memory access
US6289300B1 (en) 1998-02-06 2001-09-11 Analog Devices, Inc. Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit
EP0935195A2 (en) 1998-02-06 1999-08-11 Analog Devices, Inc. "An integrated circuit with a high resolution analog-to-digital converter, a microcontroller and high density memory and an emulator for an integrated circuit
US6145100A (en) * 1998-03-04 2000-11-07 Advanced Micro Devices, Inc. Debug interface including timing synchronization logic
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
US6567518B1 (en) * 1998-08-28 2003-05-20 Teltronics, Inc. Method of field programmable gate array configuration
US6467009B1 (en) * 1998-10-14 2002-10-15 Triscend Corporation Configurable processor system unit
US6330645B1 (en) 1998-12-21 2001-12-11 Cisco Technology, Inc. Multi-stream coherent memory controller apparatus and method
US6618777B1 (en) 1999-01-21 2003-09-09 Analog Devices, Inc. Method and apparatus for communicating between multiple functional units in a computer environment
US6609169B1 (en) 1999-06-14 2003-08-19 Jay Powell Solid-state audio-video playback system
US6449672B1 (en) * 1999-07-21 2002-09-10 Apple Computer, Inc. PCI device arbiter
US6671836B1 (en) * 1999-09-23 2003-12-30 Rambus Inc. Method and apparatus for testing memory
US6851047B1 (en) 1999-10-15 2005-02-01 Xilinx, Inc. Configuration in a configurable system on a chip
GB2366006B (en) 1999-12-23 2004-06-30 St Microelectronics Sa A computer system with debug facility
GB2362968B (en) 1999-12-23 2003-12-10 St Microelectronics Sa Computer system with debug facility
GB2362730B (en) 1999-12-23 2004-02-11 St Microelectronics Sa Computer register watch
GB2362729B (en) 1999-12-23 2004-02-11 St Microelectronics Sa Memory access debug facility
GB2365546B (en) * 1999-12-23 2004-02-18 St Microelectronics Sa A computer system with two debug watch modes
US6519670B1 (en) * 2000-02-04 2003-02-11 Koninklijke Philips Electronics N.V. Method and system for optimizing a host bus that directly interfaces to a 16-bit PCMCIA host bus adapter
US6721840B1 (en) 2000-08-18 2004-04-13 Triscend Corporation Method and system for interfacing an integrated circuit to synchronous dynamic memory and static memory
US6754760B1 (en) 2000-08-21 2004-06-22 Xilinx, Inc. Programmable interface for a configurable system bus
US6518787B1 (en) 2000-09-21 2003-02-11 Triscend Corporation Input/output architecture for efficient configuration of programmable input/output cells
US7139848B1 (en) 2000-12-08 2006-11-21 Xilinx, Inc. DMA protocol extension for packet-based transfer
US7036033B1 (en) * 2001-01-04 2006-04-25 3Pardata, Inc. Disk enclosure with multiplexers for connecting 12C buses in multiple power domains
US6725364B1 (en) 2001-03-08 2004-04-20 Xilinx, Inc. Configurable processor system
TWI223138B (en) * 2001-07-11 2004-11-01 Faraday Tech Corp Device and method for detecting micro-processor execution performance
US7107374B1 (en) 2001-09-05 2006-09-12 Xilinx, Inc. Method for bus mastering for devices resident in configurable system logic
EP1433070A1 (en) * 2001-09-27 2004-06-30 Koninklijke Philips Electronics N.V. Bus system and bus interface
US7305469B2 (en) * 2001-12-18 2007-12-04 Ebay Inc. Prioritization of third party access to an online commerce site
US7570651B2 (en) * 2004-06-16 2009-08-04 Siamack Haghighi High-performance reconfigurable interconnect for concurrent operation of multiple systems
US7461190B2 (en) * 2005-08-11 2008-12-02 P.A. Semi, Inc. Non-blocking address switch with shallow per agent queues
US8875798B2 (en) * 2009-04-27 2014-11-04 National Oilwell Varco, L.P. Wellsite replacement system and method for using same
EP2372490A1 (en) * 2010-03-31 2011-10-05 Robert Bosch GmbH Circuit arrangement for a data processing system and method for data processing
DE102010003521A1 (de) * 2010-03-31 2011-10-06 Robert Bosch Gmbh Modulare Struktur zur Datenverarbeitung
US8806093B2 (en) * 2010-04-01 2014-08-12 Intel Corporation Method, apparatus, and system for enabling a deterministic interface
US9176913B2 (en) 2011-09-07 2015-11-03 Apple Inc. Coherence switch for I/O traffic
US10198849B1 (en) * 2017-10-26 2019-02-05 Advanced Micro Devices, Inc. Preloading translation and data caches using on-chip DMA engine with fast data discard
AU2020216422B2 (en) 2019-01-31 2023-03-16 Ge Grid Solutions Llc Battery charge and discharge power control in a power grid
US11782838B2 (en) 2020-08-14 2023-10-10 Advanced Micro Devices, Inc. Command processor prefetch techniques

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4674089A (en) * 1985-04-16 1987-06-16 Intel Corporation In-circuit emulator
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor
JPH02103482A (ja) * 1988-10-13 1990-04-16 Matsushita Graphic Commun Syst Inc 集積回路装置
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5204953A (en) * 1989-08-04 1993-04-20 Intel Corporation One clock address pipelining in segmentation unit
US5222240A (en) * 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor
US5259006A (en) * 1990-04-18 1993-11-02 Quickturn Systems, Incorporated Method for substantially eliminating hold time violations in implementing high speed logic circuits or the like
DE69127992T2 (de) * 1990-04-20 1998-06-04 Hitachi Ltd Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation
DE69130495T2 (de) * 1990-06-29 1999-06-24 Digital Equipment Corp., Maynard, Mass. Umwandlung der Befehle von internen Prozessorregistern in I/O-Adressraum
US5226047A (en) * 1990-10-03 1993-07-06 Chips And Technologies, Inc. In-circuit emulation of a microprocessor mounted on a circuit board
US5321828A (en) * 1991-06-07 1994-06-14 Step Engineering High speed microcomputer in-circuit emulator
US5241631A (en) * 1991-08-23 1993-08-31 Nec Technologies, Inc. Personal computer having a local bus interface to a video circuit
US5189319A (en) * 1991-10-10 1993-02-23 Intel Corporation Power reducing buffer/latch circuit
DE69228980T2 (de) * 1991-12-06 1999-12-02 National Semiconductor Corp., Santa Clara Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
US5254888A (en) * 1992-03-27 1993-10-19 Picopower Technology Inc. Switchable clock circuit for microprocessors to thereby save power
US5542058A (en) * 1992-07-06 1996-07-30 Digital Equipment Corporation Pipelined computer with operand context queue to simplify context-dependent execution flow
US5396634A (en) * 1992-09-30 1995-03-07 Intel Corporation Method and apparatus for increasing the decoding speed of a microprocessor
JP3524110B2 (ja) * 1992-11-06 2004-05-10 株式会社ルネサステクノロジ マイクロコンピュータシステム
US5522050A (en) * 1993-05-28 1996-05-28 International Business Machines Corporation Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus
US5574892A (en) * 1993-06-30 1996-11-12 Intel Corporation Use of between-instruction breaks to implement complex in-circuit emulation features
US5440747A (en) * 1993-09-27 1995-08-08 Hitachi America, Ltd. Data processor with control logic for storing operation mode status and associated method
US5404473A (en) * 1994-03-01 1995-04-04 Intel Corporation Apparatus and method for handling string operations in a pipelined processor
US5619726A (en) * 1994-10-11 1997-04-08 Intel Corporation Apparatus and method for performing arbitration and data transfer over multiple buses
US5619728A (en) * 1994-10-20 1997-04-08 Dell Usa, L.P. Decoupled DMA transfer list storage technique for a peripheral resource controller
US5630102A (en) * 1994-12-19 1997-05-13 Intel Corporation In-circuit-emulation event management system

Also Published As

Publication number Publication date
US5774684A (en) 1998-06-30
US5857094A (en) 1999-01-05
WO1996037854A3 (en) 1997-08-07
EP1343076A3 (en) 2004-02-25
EP0776504B1 (en) 2004-08-18
KR970705087A (ko) 1997-09-06
DE69633166T2 (de) 2005-08-18
WO1996037854A2 (en) 1996-11-28
EP1343076A2 (en) 2003-09-10
DE69633166D1 (de) 2004-09-23
EP0776504A2 (en) 1997-06-04

Similar Documents

Publication Publication Date Title
KR100403405B1 (ko) 분산형버스액세스및제어조정에따라다수개의내부신호버스를공유하는다수개의회로기능요소를갖는집적회로
US5438670A (en) Method of prechecking the validity of a write access request
US5375216A (en) Apparatus and method for optimizing performance of a cache memory in a data processing system
US4701844A (en) Dual cache for independent prefetch and execution units
US6219774B1 (en) Address translation with/bypassing intermediate segmentation translation to accommodate two different instruction set architecture
JP4859616B2 (ja) 縮小命令セット・コンピュータ・マイクロプロセッサーの構造
US6408386B1 (en) Method and apparatus for providing event handling functionality in a computer system
US5263153A (en) Monitoring control flow in a microprocessor
GB2200484A (en) Detecting and handling memory-mapped i/o by a pipelined computer
KR100386638B1 (ko) 외부메모리로의액세스요청을파이프라이닝하는마이크로프로세서
EP0235255A1 (en) DATA PROCESSING SYSTEM WITH PRELIMINARY SWITCHING.
US5752273A (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
US6678838B1 (en) Method to track master contribution information in a write buffer
WO1996008769A1 (en) Computer instruction prefetch system
JPS63193246A (ja) 集積キャッシュ・メモリと外部メモリの間の一貫性を保つ方法と装置
JPS63193239A (ja) 命令順序監視装置と方法
EP0729604B1 (en) Register status protection during read-modify-write operation
EP0575171B1 (en) Enhanced system management method and apparatus
US6209083B1 (en) Processor having selectable exception handling modes
EP0380291A2 (en) Pump bus to avoid indeterminacy in reading variable bit field
EP0156307A2 (en) Pipelined processor having dual cache memories
KR100367139B1 (ko) 캐시의내용이무효인경우캐시가판독되는것을방지하는파이프라인형마이크로프로세서
JP2004272939A (ja) 1チップデータプロセッサ
EP0683458A1 (en) Programmable content mode level two cache
EP0915416B1 (en) System for allowing a two word instruction to be executed in a single cycle and method therefor

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: 20091013

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee