KR950007881B1 - 데이터 처리장치 - Google Patents

데이터 처리장치 Download PDF

Info

Publication number
KR950007881B1
KR950007881B1 KR1019930001019A KR930001019A KR950007881B1 KR 950007881 B1 KR950007881 B1 KR 950007881B1 KR 1019930001019 A KR1019930001019 A KR 1019930001019A KR 930001019 A KR930001019 A KR 930001019A KR 950007881 B1 KR950007881 B1 KR 950007881B1
Authority
KR
South Korea
Prior art keywords
instruction
bus
branch
address
fetch
Prior art date
Application number
KR1019930001019A
Other languages
English (en)
Other versions
KR930016884A (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 KR930016884A publication Critical patent/KR930016884A/ko
Application granted granted Critical
Publication of KR950007881B1 publication Critical patent/KR950007881B1/ko

Links

Classifications

    • 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/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

내용 없음.

Description

데이터 처리장치
제1도 및 제2도는 본 발명의 발명원리도.
제3도는 본 발명의 제1실시예에 따른 데이타 처리장치의 개략구성도.
제4도는 본 발명의 제1실시예에 따른 버스 제어부의 상세회로도.
제5도(a)는 요구 엔코드회로의 엔코드내용을 설명하는 도면.
제5도(b)는 버스속성정보출력이 나타내는 버스 동작의 속성을 설명하는 도면.
제5도(c)는 버스상태 F/F이 나타내는 버스 동작의 상태를 설명하는 도면.
제6도(a)는 본 발명의 제1실시예에 따른 버스 제어부의 상태천이도.
제6도(b)는 상태천이를 설명하는 타이밍챠트.
제7도(a)는 본 발명의 제1실시예에서 제19도의 프로그램을 실행한 경우의 파이프라인의 흐름을 설명하는 도면.
제7도(b)는 그때의 타임차트.
제8도는 본 발명의 제1실시예에서 제19도의 프로그램을 실행한 경우의 추적메모리에 격납되는 추적정보를 나타낸 도면.
제9도는 본 발명의 제1실시예에서 제19도의 프로그램을 실행한 경우의 추적정보 해석결과를 나타낸 도면.
제10도는 본 발명의 제1실시예를 프로그램내장형의 데이터 처리장치로서 실현한 경우의 구성도.
제11도는 제10도의 구성에 의한 프로그램 내장형 데이터 처리장치의 버스 사이클의 타이밍차트.
제12도는 본 발명의 제2실시예에 따른 데이타 처리장치의 구성도.
제13도는 본 발명의 제2실시예에 따른 버스 제어회로의 회로구성도.
제14도는 본 발명의 제2실시예에 따른 데이타 처리장치의 타이밍챠트.
제15도는 본 발명의 제2실시예에 따른 어드레스 포인터의 다른 구성예.
제16도는 종래의 데이터 처리장체에서의 분기예측기구의 구성도.
제17도는 종래의 데이터 처리장체에서의 선행분기구의 구성도.
제18도는 종래의 데이터 처리장체에서의 파이프라인 처리기구의 구성도.
제19도는 추적에 사용되는 프로그램예를 나타낸 도면.
제20도는 종래의 데이터 처리장치에 있어서 제19도의 프로그램을 실행한 경우의 파이프라인의 흐름을 설명하는 도면.
제21도는 종래의 데이터 처리장치에 있어서 제19도의 프로그램을 실행한 경우의 추적메모리에 격납되는 추적정보를 나타낸 도면.
제22도는 종래의 데이터 처리장치에 있어서 제19도의 프로그램을 실행한 경우의 추적정보 해석결과를 나타낸 도면이다.
* 도면의 주요부분에 대한 부호의 설명
1 : 버스속성정보 출력수단 3 : 분기처 명령상태정보 출력수단
11 : MPU(데이터처리부) 12,12' : 버스제어회로
13,14,15 : 어드레스 포인터(어드레스 생성수단)
16 : 인크리멘터(가산수단)
17 : 메모리 어드레스 레지스터(MAR ; 어드레스 기억수단)
18 : 셀렉터(어드레스 선택수단) 21 : 명령 디코드부
22 : 오퍼랜드 어드레스계산 및 페치부 23 : 명령 실행부
24 : 버스 제어부 51 : 요구 엔코드회로
52 : 버스상태 제어회로 53 : 취소정보 F/F
54,55 : 버스속성정보 F/F 56,57 : 버스상태 F/F
101 : ROM 103 : SRAM
IFREQ : 명령페치 요구신호 OFREQ :오퍼랜드페치 요구신호
OSREQ : 오프랜드저장 요구신호
TREQD : (명령디코드부터의)분기처 명령 페치요구신호
TREQE : (명령 실행부로부터의) 분기처 명령페치 요구신호
TGCAN : 분기처 명령 취소신호 CAN : 분기처 명령 무효신호
BAT0,BAT1 : 버스속성정보 BSTATE0,BSTATE1 : 출력신호
DC# : 버스사이클 완료신호 25 : 명령코드
28 : 분기처 어드레스 29,33 : 내부명령
30,35 : 선행분기통지 32 : 오퍼랜드 어드레스
34,37 : 다음명령 어드레스 39 : 저장데이터
41 : 데이터 버스 42 : 어드레스 버스
45 : 오퍼랜드 데이터 ABUS,A0~A15 : 어드레스 버스
DBUS,D0~D7 : 데이터 버스 RESET# : 리세트신호
CLK : 클록신호 AS# : 어드레스 스토로브신호
CS1# : 제1칩선택신호 CS2# : 제2칩선택신호
WE# : 기입 이네이블신호 OE# : 출력 이네이블신호
LAT# : 래치 이네이블신호 SEL : 선택신호
[산업상의 이용분야]
본 발명은 데이터 처리장치에 관한 것으로, 특히 시스테의 디버그(debug)를 용이하게 하기 위한 디버그정보를 제공할 수 있는 데이터 처러장치에 관한 것이다.
[종래의 기술 및 그 문제점]
마이크로프로세스(이하, MPU로 약기한다)를 응용한 시스템을 개발하는 경우에는, 개발효율을 향상시키기 위해서 내부회로 에뮬레이터(in-circuit emulator)라 불리우는 개발지원 시스템이 이용된다. 일반적으로 내부회로 에뮬레이터는 실시간으로 동작하는 프로그램의 명령시퀀스를 표시하는 실시간·추적(real time trace)기능을 갖추고 있다. 실시간 ·추적기능이라고 하는 것은, MPU의 버스동작마다 MPU가 출력하는 어드레스 버스, 데이터 버스 및 버스 제어신호를 일단 추적메모리(trace memory)에 격납한 다음, 추적대상의 프로그램 실행후에 추적메모리에 격납된 정보를 해석해서, 실행한 명령 및, 어드레스, 각 명령이 액세스한 메모리·오퍼랜드(memory operand)의 어드레스 및, 데이터내용을 표시하는 기능이다.
고위의 MPU에서는, 일반적으로 내부에 명령버퍼(buffer)라 불리우는 기억요소를 갖추고서, 명령실행에 선행하여 명령페치[즉 선페치(prefetch)]를 수행한다. 선페치를 수행하는 MPU에서는, 분기명령의 실행 등에 의해 명령실행의 시퀀스(sequence)가 축차적(逐字的)이지 않으면, 이미 페치된 명령을 제거(purge)하고 올 바른 명령 어드레스로부터 명령페치를 재개한다. 따라서, 이러한 MPU에서는 페치된 명령이 반드시 실행된다는 보증이 없고, MPU외부의 신호를 관측하는 것만으로는 정확한 명령실행의 추적(trace)이 이루어 지지 않게 된다.
그래서, 모토롤라사의 MC68040에서는 MPU내부의 명령실행부가 상태정보(status 情報)를 출력하고 있다. 단, 이 상태정보는 명령실행에 동기해서 출력되는 것이므로, 버스동작에 동기하지 않는다. 따라서, 그대로는 추적메모리에 격납할 수가 없고, 어떤 수단을 이용해서 버스동작에 동기시켜 추적메모리에 격납하던지, 버스동작용 추적메모리와는 별도로 명령실행용 추적메모리를 준비해서 머신사이클마다 상태정보를 명령 실행용 추적메모리에 격납한 다음 버스동작용과 명령실행용의 추적메모리에 격납된 정보를 합쳐서 해석할 필요가 있으므로, 어떻게 해도 하드웨어(hardware)가 복잡하게 증대된다는 문제가 있다.
또한, 근래의 MPU에서는 MPU의 성능향상에 따라 명령의 파이프라인(pipe line)실행 등과 같은 고속화 수법이 채택되고 있다. 특히, 분기명령의 분기조건이 확정되기 이전에 분기처에 대한 명령페치를 수행한다. 그리고, 조건 분기명령의 분기조건이 확정되기 이전에 분기처에 대한 명령페치를 수행한다. 그리고, 조건 분기명령의 분기조건이 성립하지 않는 경우에는, 이미 페치한 분기처의 명령을 제거하고, 조건 분기명령의 계속어드레스의 명령페치를 재개하도록 되어 있다. 따라서 MPU의 외부 신호만을 관측하는것에서는, 명령실행의 추적를 수행하는 것이 매우 곤란하였다.
예컨대, 미쯔비시전기(주)의 M32/100에서는 동적 분기예측 테이블(table)을 이용하여 조건분기의 선행분기를 수행하고 있다. 명령디코드(D) 스테이지(stage)에서 조건 분기명령을 디코드(decode)하면, 동적분기 예측 테이블을 이용해서 분기조건의 성립·불성립을 예측한다. 이때, 분기조건성립이라고 예측된 경우는 분기처 어드레스를 계산하여 오퍼랜드 페치 스테이지(operand fetch stage)에서 분기처의 명령페치를 수행한다. 또한, 실행스테이지에서 분기조건이 불성립한다고 판단된 경우에는, 조건 분기명령의 다음 어드레스의 명령으로 다시 분기해서 명령실행의 시퀀스를 본 상태로 되돌린다. 제16도에 M32/100의 분기예측 기구의 구성을 나타낸다.
또한, 제17도에 M32/100의 선행분기기구의 구성을 나타낸다. 선행분기하는 명령을 디코드하면, D스테이지 변위(displacement)와 D스테이지 명령길이를 셀렉터에 의해 절환시키고, PC가산기는 분기처 어드레스를 계산한다. 또한, 오퍼랜드 어드레스 가산기는 선행분기가 잘못된 때에 디비해서 다음 명령 어드레스를 계산한다.
제18도에 M32/190100의 파이프라인 처리기구의 구성을 나타낸다. M32/100의 파이프라인 처리기구는 명령페치(IF), 명령디코드(D), 오퍼랜드 어드레스계산(A), 오퍼랜드 페치(F) 및 실행(E)의 5단의 스테이지로 구성되어 있다.
또한, 제20도는 제19도에 나타낸 프로그램을 실행한 경우의 각 명령이 파이프라인의 각 스테이지를 흐르는 모양을 나타낸 것이다. 도면중 각 스테이지에 표시되는 숫자는 제19도의 선번호에 대응하고 있다. 이 예에서는, 4번의 조건 분기명령(BNE)에서 분기조건성립으로예측하여 선행분기[시간(7)의 명령페치]했지만, 21도에 제19도의 프로그램을 실행한 경우의 추적메모리에 격납되는 추적정보를 나타낸다. 이 제21도의 추적 정보를 단순히 역어셈블하면 제22도와 같이 되지만 이것에서는 선페치된 분기처의 명령이 장해로 되어 실제의 명령실행 시퀀스를 판단하는 것이 곤란하게 된다.
이상과 같이 종래의 분기처의 명령 선페치나 분기예측 등의 분기명령을 고속화하는 수법을 취입한 데이터 처리장체에서는, 장치외부의 신호를 관측하는 것만으로는 정확한 명령 추적을 수행하기가 매우 곤란하다는 결점이 있었다.
[발명의 목적]
이에 본 발명은 상기 문제점을 해결하기 위해 이루어진 것으로, 내부회로 에뮬레이터에 의해 추적 해석하는 경우에, 내부회로 에뮬레이터의 추적메모리에 격납된 추적정보중 분기명령의 실행에 의해 제거된 명령의 추적정보를, 분기명령의 분기처의 명령페치 버스사이클이라는 취지의 정보나 조건 분기명령의 분기조건불성립의 정보에 의해 용이하게 삭제할 수 있고, 용이하게 추적해석할 수 있는 데이터 처리장치를 제공함 그 목적이 있다.
[발명의 구성]
상기 과제를 해결하기 위해 본 발명의 데이터 처리장치의 제1특징은, 제1도에 나타낸 바와 같이 실행중인 버스사이클이 분기명령의 분기처에 대한 명령페치라는 것을 나타내는 버스속성정보 출력수단(1)을 구비하는 것이다.
본 발명의 데티어 처리장치의 제2특징은 제1도에 나타낸 바와 같이 실행중인 버스사이클이 무조건 분기 명령 또는 조건 분기명령의 분기처에 대한 명령페치라는 것을 나타내는 버스속성정보 출력수단(1)과, 이미 분기처에 대한 명령페치가 수행되어 있는 조건 분기명령의 분기조건이 불성립으로 된 때에 버스사이클에 동기해서 그 취지를 나타내는 분기처 명령 상태정보 출력수단(3)을 갖추고서, 상기 조건 분기명령의 조건이 확정되기 전에 분기처에 대한 명령페치를 수행하는 것이다.
본 발명의 데이터 처리장치의 제3특징은 제2도에 나타낸 바와 같이 복수개의 명령으로 구성되는 프로그램을 격납하는 기억수단(101)과, 상기 기억수단(101)으로부터 독출되는 명령에 따라 동작하는 데이터처리부(11), 상기 기억수단(101)에 대한 어드레스를 생성하는 어드레스 생성수단(13)을 갖추고 있고, 상기 기억수단(101)에 대한 액세스는 어드레스 버스(ABUS) 및 n바이트(n은 임의의 양의 정수)의 데이터 버스(DBUS)를 매개하여 수행되며, 상기 데이터처리부(11)는 실행중인 버스사이클이 무조건 분기명령 또는 조건 분기명령의 분기처에 대한 명령페치라는 것을 나타내는 버스속성정보 출력수단(1)을 갖추고 있고, 상기 어드레스 생성수단(13)은 상기 어드레스 버스(ABUS)상의 값에 n을 가산하는 가산수단(16)과 상기 가산수단(16)의 출력을 격납하는 어드레스 기억수단(17) 및, 상기 버스속성정보 출력수단(1)의 출력에 따라 상기 어드레스 버스(ABUS)상의 값과 상기 어드레스 기억수단(17)의 값을 선택하여 상기 기억수단(101)의 어드레스 하는 어드레스 선택수단(18)을 갖춘 것이다.
(작용)
본 발명의 제1특징의 데이터 처리장치에서는, 버스속성정보 출력수단(1)이 실행중인 버스사이클이 분기 명령의 분기처의 명령페치라는 것을 나타내는 신호를 출력한다. 이에 따라, 에뮬레이터에 의해 추적해석할 때에 추적메모리내의 분기명령의 실행에 위해 제거(purge)된 명령 선페치부분을 상기 출력신호에 기초해서 삭제할 수 있게 되고, 그 결과로서 용이하게 추적해석 할 수 있게 된다.
또, 본 발명의 제2특징의 데이터 처리장치에서는, 버스속성정보 출력수단(1)으로부터 실행중인 버스사이클이 무조건 분기명령 또는 조건 분기명령의 분기처의 명령페치라는 것을 나타내는 신호를 출력하고, 분기처 명령 상태정보 출력수단(3)으로부터 이미 분기처의 명령페치가 수행되어 있는 조건 분기 명령의 분기조건이 불성립으로 된 때에, 버스사이클에 동기해서 그 취지를 나타내는 신호를 출력한다. 이에 따라, 에뮬레이터에 의해 추적해석할 때에 추적메모리내의 선행분기에 의해 제거된 선페치부분을 상기 버스속성정보 출력수단(1)의 출력신호에 기초해서 삭제할 수 있고, 또 분기불성립에 의해 제거된 분기처의 명령선페치 부분을 상기 분기처 명령 상태정보 출력수단(3)의 출력신호에 기초해서 삭제할 수 있게 된다. 이 결과로서, 용이하게 추적해석을 할 수 있게 된다.
또한, 본 발명의 제3특징의 데이터 처리장치에서는, 예컨대 버스속성정보 출력수단(1)에 의해 실행중인 버스사이클이 무조건 분기명령 또는 조건 분기명령의 분기처에 대한 명령페치라는 것을 나타내고 있는 경우에는, 어드레스 생성수단(13)이 가산수단(16)에 의해 어드레스 버스(ABUS)상의 값에 n을 가산하고, 이 값을 어드레스 기억수단(17)에 격납한다. 그리고, 상기 무조건 분기명령 또는 조건 분기명령 이후의 명령에 관해서는, 어드레스 기억수단(17)에 격납되어 있는 값을 어드레스 선택수단(18)으로 선택해서, 기억수단(101)을 액세스한다.
따라서, 무조건 분기명령 또는 조건 분기명령 이후의 명령의 명렬페치를 보다 적은 사이클수로 실행할 수 있게 되어 시스템성능을 향상시키는 것이 가능하게 된다.
(실시예)
이하, 본 발명에 따른 실시예를 도면에 기초하여 설명한다.
제3도에 본 발명의 제1실시에에 따른 데이터 처리장치의 개략구성도를 나타낸다.
동 도면에 있어서, 본 실시예의 데이터 처리장치는 명령의 디코드와 분기명령의 분기예측 및 선행분기처리를 수행하는 명령 디코드부(21)와, 메모리 오퍼랜드의 어드레스를 계산하여 오퍼랜드페치를 요구하는 오퍼랜드 어드레스계산 및 페치부(22); 명령을 실행하여 오퍼랜드저장을 요구하는 명령 실행부(23) 및, 명령 페치 요구신호(IFREQ) 오퍼랜드페치 요구신호(OFREQ) 및 오퍼랜드저장 요구신호(OSREQ)에 따라 버스사이클을 실행하는 버스 제어부(24)로 구성되어 있다.
이어서, 동작에 관하여 설명한다. 명령 디코드부(21)가 명령페치 요구신호(IFREQ)를 버스 제어부(24)로 출력하면, 버스 제어부(24)는 명령페체 버스사이클을 실행해서 페치된 명령코드(25)를 명령 디코드부(21)로 송출한다. 명령 디코드부(21)는 명령코드(25)를 내부명령으로 디코드하여, 이 내부명령(29)을 오퍼랜드 어드레스계산 및 페치부(22)로 송출한다.
오퍼랜드 어드레스계산 및 페치부(22)는 내부명령(29)에서 오퍼랜드로서 메모리 오퍼랜드가 지정되어 있는 경우, 내부명령(29)에 따른 메모리 오프랜드의 어드레스계산을 수행하여 오퍼랜드 어드레스(32)를 버스 제어부(24)로 송출한다. 이 오퍼랜드가 독출 오퍼랜드인 경우, 오퍼랜드 어드레스계산 및 페치부(22)는 오퍼랜드페치 요구신호(OFREQ)를 출력한다. 오퍼랜드 어드레스계산 및 페치부(22)가 오퍼랜드페치 요구신호(OFREQ)를 버스 제어부(24)로 출력하면, 버스 제어부(24)는 오퍼랜드페치 버스사이클을 실행해서 페치된 오퍼랜드 데이터(45)를 명령 실행부(45)로 송출하고, 또 오퍼랜드 어드레스계산 및 페치부(22)는 내부명령(33)을 명령 실행부(23)로 송출한다.
명령 실행부(23)는 내부명령(33)에 따른 명령실행을 수행한다. 실행한 명령의 행선지 오퍼랜드(destination operand) 메모리 오퍼랜드(memory operand)인 경우는, 저장데이터(39)를 버스 제어부(24)로 송출해서 오퍼랜드저장 요구신호(OSREQ)를 출력한다. 명령 실행부(23)가 오퍼랜드저장 요구신호(OSREQ)를 버스 제어부(24)로 출력하면, 버스 제어부(24)는 오퍼랜드저장 버스사이클을 실행해서 명령 실행부(23)가 출력한 저장데이터(39)를 메모리에 기입한다.
명령 디코드부(21)가 디코드한 명령이 조건 분기명령인 경우, 명령 디코드부(21)는 분기예측 테이블을 이용해서 분기조건이 성립하는지의 여부를 예측한다. 여기서, 분기예측기구의 구성은 제16도의 종래예와, 선행분기기구의 구성은 제17도의 종래예와 동일하다. 분기성립으로 예측된 경우, 명령 디코드부(21)는 PC값과 조건분기의 변위값을 가산하여, 분기처 어드레스(28)를 산출한 다음 버스 제어부(24)로 송출해서 분기처 명령 페치 요구신호(TREQD)를 출력한다. 또, 선행분기통지(30)를 출력해서 명령 디코드부(21)에서 조건 분기명령의 선행분기를 수행한 것을 오퍼랜드 어드레스계산 및 페치부(22)에 통지한다. 분기불성립으로 예측된 경우, 명령 디코드부(21)는 PC값과 조건 분기명령의 명령길이를 가산하여 조건 분기명령의 다음명령의 어드레스를 산출한다. 이때, 명령 디코드부(21)는 선행분기통지(30)를 출력하지 않는다. 명령 디코드부(21)가 분기처 명령페치 요구신호(TREQD)를 버스 제어부(24)로 출력하면, 버스 제어부(24)는 분기처명령페치 사이클을 실행해서 페치된 명령코드(25)를 명령 디코드부(21)로 송출한다.
오퍼랜드 어드레스계산 및 페치부(22)는, 명령 디코드부(21)가 선행분기통지(30)를 오퍼랜드 어드레스계산 및 페치부(22)로 출력하면, 조건 분기명령의 PC값에 조건 분기명령의 명령길이를 가산해서 분기조건이 불성립의 때의 다음명령의 명령 어드레스(34)를 산출한 다음 이것을 명령 실행부(23)로 송출한다. 또, 선행분기통지(35)를 출력해서 명령 디코드부(21)에서 족너 분기명령의 선행분기를 수행한 것을 명령 실행부(23)에 통지한다.
한편, 내부명령(29)에 의해 지시되는 명령의 종별이 조건 분기명령이고, 선행분기통지(30)가 출력되지 않는 때, 오퍼랜드 어드레스계산 및 페치부(22)는 PC값과 조건 분기명령의 변위값을 가산해서 분기처 어드레스를 산출한 다음 이것을 다음명령 어드레스(34)로서 명령 실행부(3)로 송출한다.
명령 실행부(23)는 내부명령(33)에 의해 지시되는 명령의 종별이 조건 분기명령인 경우, 프로세서 상태레지스터의 플레그(flag)와 조건 분기명령중에 지시되는 분기조건을 비교해서 분기성립/불성립을 판정한다. 선행분기통지(35)가 출력되어 있는 때는, 분기성립으로 판정된 경우에는 이미 선행분기해서 페치되어 있는 분기처의 명령을 실행하고, 분기불성립으로 판정된 경우에는 다음명령 어드레스(37)를 버스 제어부(24)로 송출하여 분기처 명령 취소신호(TGCAN)를 출력한다. 그 반면에 선행분기통지(35)가 출력되어 있지 않은 때는, 분기성립으로 판정된 경우에는 분기처 어드레스를 다음명령 어드레스(37)로서 버스 제어부(24)로 송출하여 분기처 명령 페치 요구신호(TREQD)를 출력하고, 분기불성립으로 판정된 경우에는 이미 페치되어 있는 분기명령의 다음명령을 실행한다. 명령 실행부(23)가 분기처 명령 취소신호(TGCAN)를 버스 제어부(24)로 출력하면, 버스 제어부(24)는 분기처 명령 무효신호(CAN)를 출력하여 다음명령 어드레스(37)에 의해 지시된 명령 어드레스의 명령페치 버스사이클을 실행해서 페치된 명령코드(25)를 명령 디코드부(21)로 송출한다. 명령 실행부(23)가 분기처 명령 페치요구신호(TREQE)를 버스 제어부(24)로 출력하면, 버스 제어부(24)는 분기처 명렬 페치 마이크로프로세스를 실행해서 페치된 명령코드를 명령 디코드부(21)로 송출한다.
다음에는, 제4도를 참조하여 본 실시예와 상세한 동작에 관하여 설명한다. 제4도는 본 발명의 실시예에 따른 버스 제어부(21)에 상세한 회로도이다.
명령페치 요구신호(IFREQ), 오퍼렌드페치 요구신호(OFREQ), 오퍼랜드저장 요구신호(OSREQ) 및 2종류의 분기처 명령페치 요구신호(TREQD, TREQE)의 논리합을 취한 신호(TGREQ)는 각각 요구 엔코드회로(51 ; 要求 encode circuit)에 입력되어 가장 우선도가 높은 요구가 제5도(a)에 나타낸 바와같은 조건에 의해 엔코드된다. 즉, 우선순위는 높은 쪽으로부터 오퍼랜드페치 요구신호(OFREQ), 오퍼랜드저장 요구신호(IFREQ)의 순으로 되어 있다. 엔코드된 신호는 버스동작마다 버스속성정보 F/F(54,55 ; bus 屬性情報 filp-flop)에 격납되어 버스속성정보(BATO, BAT1)로서 출력된다. 버스속정정보의 값은, 제5도(b)에 나타내어지는 버스동작의 속성을 나타낸다.
또한, 버스 제어부(24)는 제6도(a)의 상태천이도에 기초해서 제어된다. 동도면에 나타낸 바와같이, 본 실시예의 데이터 처리장치는 2클록으로 메모리액세스를 수행하기 때문에, 아이들상태(Si ; idle state)와 2클록으로 대응하는 상태(S1,S2)의 3상태를, 버스사이클 완료신호[DC# ; 이하, 부논리신호(負論理信號)에는 명칭의 마지막에 #를 부가한다] 및 명령페치 요구신호(IFREQ), 오퍼랜드페치 요구신호(OFREQ), 오퍼랜드저장 요구신호(OSREQ) 및 분기처 명령페치요구신호(TGREQ)의 논리합을 취한 신호(REQ)에 의해 상태천이시킨다.
예컨대, 명령페치 버스사이클에서는 제6도(b)에 나타낸 바와 같은 타이밍차트로 된다. 명령페치 요구신호(IFREQ)를 받아들이면, 아이들상태(Si)로부터 상태(S1)로 천이되고, 어드레스 버스에 어드레스(addr1)를 출력하여 어드레스 스트로브개시신호(AS# ; address strobe 開始信號)가 액티브됨과 더불어 버스속성정보(BAT0,1)에 버스동작의 속성이 명령페치 버스사이클이라는 취지의 값(00)이 확정된다. 다음의 클록에서 상태(S2)로 천이되고, 메모리로부터 데이터(data1)가 데이터 버스로 출력되어 MPU측에서 이것을 페치하면, 버스사이클 완료신호(DC#)가 액티브되어 버스사이클이 완료된다.
또한, 제4도의 버스상태 제어회로(52)에는, 버스상태 F/F(56,57)의 출력신호(BSTATE0, BSTATE1), 버스사이클 완료신호(DC#) 및 요구신호의 논리합을 취한 신호(REQ)가 입력되어, 다음 사이클의 버스상태를 결정한다. 버스상태 제어회로(52)의 출력이 클록마다 버스상태 F/F(56,57)에 격납되고, 이 버스상태F/F(56,57)의 출력신호(BSTATE0, BSTATE1)가 그 클록의 버스동작의 상태를 나타내게 된다. 신호(BSTATE0, BSTATE1)의 값과 버스동작의 관계를 제5도(c)에 나타낸다.
또한, 명령 실행부(23)에서 분기불성립으로 판정된 경우, 분기처명령 취소신호(TGCAN)가 버스 제어부(24)로 송출되지만, 취소정보 F/F(53)은 이 분기처명령 취소신호(TGCAN)를 버스동작마다 격납하고 분기처 무효신호(CNA)를 출력한다.
이와 같이, 본 실시예의 데이터 처리장치에서는, 버스사이클에 동기한 버스속성정보(BAT0,BAT1)와 분기처 무효신호(CAN)를 출력한다. 내부회로 에뮬레이터에 의해 이러한 데이터 처리장치의 실시간·추적을 수행하는 경우에는, 내부회로 에뮬레이터내의 마이크로프로그램제어부에 의해, 예컨대 이하의 수순으로 추적메모리를 해석함으로써 실현할 수가 있다.
(1) 추적메모리의 선두로부터,, 분기처 명령 페치 버스사이클을 검색(search)한다.
(2) 단계(1)에서 검색된 버스사이클로부터 다음의 분기처 명령 페치 버스사이클 또는 분기처 무효신호(CAN)가 출력된 버스사이클까지 역어셈블한다.
(3) 단계(2)의 처리를 추적메모리의 최후까지 반복한다.
(4) 분기처 무효신호(CAN)가 출력된 명령으로부터 소급해서 같은 어드레스의 명령을 검색한다.
(5) 단계(4)에서 검색된 명령으로부터 분기처 무효신호(CNA)가 출력된 명령의 직전의 명령까지 삭제한다.
(6) 단계(4) 및 단계(5)를 명렬의 최후까지 반복한다.
(7) 분기처 명령 페치 버스사이클에서 페치된 명령으로부터 소급해서, 무조건 분기명령 또는 분기처 어드레스가 검색을 개시한 명령의 어드레스와 일치하는 조건 분기명령을 검색한다.
(8) 단계(7)에서 검색된 명령의 직후의 명령으로부터 검색을 개시한 명령의 직전의 명령까지를 삭제한다.
(9) 단계(7) 및 단계(8)를 명령의 최후까지 반복한다.
단계(4)~단계(6)이 분기성립으로 예측된 조건 분기명령에서 분기불성립으로 된 경우에 제거된 명령을 삭제하기 위한 순수이고, 단계(7)~단계(9)가 분기명령의 실행에 의해 제거된 명령을 삭제하기 위한 수순이다.
이와 같이, 분기처 명령의 선페치나 분기예측 등의 분기명령을 고속화하는 수법을 취입한 데이터 처리장치에서도, 본 실시예에 의하면 내부회로 에뮬레이터의 추적 메모리에 격납된 명령페치 버스사이클의 추적정보중 조건 분기명령의 추적정보를 조건 분기명령의 분기조건 불성립에 의해 용이하게 삭제할 수 있게 된다.
이어서, 구체예로서 종래기술의 설명에 사용된 제19도의 프로그램을 본 실시예의 데이터 처리장치에서 실행한 경우를 도면을 사용하여 설명한다.
제7도는 이때의 파이프라인 스테이지의 흐름(제7도의 상부)과, 각 신호의 타이밍차트(제7도의 하부)를 나타내고 있다. 여기서, 이들 2개의 도면의 시간축은 공통이다.
먼저, 시간(1)에서는 명령페치 요구신호(IFREQ)가 액티브되어 명령페치 버스 사이클로 되고, 명령1(MOV명령) 및 명령2(ADD명령)을 페치한다. 그리고 나서, 시간(2)엑서는 명령3(CMP명령)을 페치함과 더불어 명령1을 디코드하고, 시간(3)에서는 명령4(BNE명령) 및 명령5(SUB명령)을 페치함과 더불어 명령2를 디코드하며, 또 명령1이 레지스터 간접 어드레싱(adressing)이므로, 그 오퍼랜드의 어드레스계산을 수행한다. 이에 따라, 오퍼랜드페치 요구신호(OFREQ)가 액티브되므로, 시간(4)은 오퍼랜드페치 버스사이클로 되어, 명령1의 오퍼랜드[레지스터(R6)가 지시하는 어드레스의 메모리의 내용]를 페치함과 더불어 명령3의 디코드를 수행한다. 이어서, 시간(5)에서는 명령1이 실행되고, 명령3이 직접어드레싱이므로, 그 어드레스계산이 수행되어 명령6(MOV명령) 및 명령7(ADD명령)이 페치된다. 이때, 오퍼랜드페치 요구신호(OFREQ)가 액티브되므로, 시간(6)은 오프랜드페치 버스사이클로 되어 명령(3)의 오퍼랜드[어드레스(4000)의 메모리의 내용]를 페치함과 더불어 명령2를 실행하고, 명령4의 디코드를 수행한다. 또 이때, 명령4는 분기명령이므로 명령 디코드부(21)로부터의 분기처 명령페치 요구신호(TREQD)가 액티브되어, 시간(7)은 분기처 명령페치 버스사이클로 된다. 즉, 시간(7)에서는 분기명령의 분기처인 명령6 및 명령7을 다시 페치하고, 명령3을 실행한다. 그리고 나서, 시간(8)에서는 명령8 및 명령9를 페치하고, 명령6의 디코드계산이 수행됨과 더불어 명령6이 실행된다. 이 시간(8)의 명령4의 실행에 있어서, 분기조건이 불성립으로 됨으로써, 분기처 명령 취소신호(TGCAN)가 액티브되고, 시간(9)에서는 명령4의 다음 명령인 명령5가 페치되며, 이때 분기처 명령 무효신호(CAN)가 액티브된다. 이하, 연속적으로 명령이 페치되어 감으로써 파이프라인의 처리가 계속된다.
또, 제19도의 프로그램을 본 실시예의 데이터 처리장치에서 실행한 경우에, 상술한 내부회로 에뮬레이터의 추적메모리에 격납되는 추적정보를 제8도에 나타낸다. 제8도의 추적정보중, *1표시가 붙은 행은 분기 불성립에 의해 제거된 분기처 명령의 선페치를 나타내는 것으로, 상기 수순의 단계(4)~단계(6)에 의해 삭제된다. 또, *2표시가 붙은 행은 선행분기에 의해 제거된 선페치를 나타내는 것으로, 상기 수순의 단계(7)~(9)에 의해 삭제된다. 제9도에 제8도의 추적정보를 해석한 결과를 나타낸다.
한편, 본 발명은 본 실시예와 같은 분기예측을 수행하는 데이터 처리장치에 한정되지 않고, 조건 분기명령의 분기처를 무조건 선페치하는 데이터 처리장치에 대해서도 유효하다.
다음에, 본 실시예를 프로그램 내장형의 데이터 처리장치로서 실현한 경우의 구성도를 제10도에 나타낸다.
동 도면에 있어서, 데이터 처리장치는 명령 디코드부, 오퍼랜드 어드레스계산 및 페치부, 명령 실행부, 버스 제어부를 내장한 마이크로프로세싱부(이하, MPU로 약기한다; 11)와, MPU(11)로부터의 제어신호에 따라 메모리의 제어신호와 버스사이클 종료신호를 생성하는 버스 제어회로(12), 프로그램용의 기억수단인 32K×8비트 구성의 ROM(Read Only Memory ; 101) 및 , 데이터용의 기억수단인 32K×8비트 구성의 SRAM(Static Random Access Memory ; 103)으로 구성되어 있다.
ROM(101) 및 SRAM(103)으로의 액세스는 어드레스 버스(A0~A15) 및 데이터 버스(D0~D7)를 매개하여 수행된다. 또, MPU(11)로부터의 제어신호에 버스속성정보(BAT0, BAT1) 및 어드레스 버스(A0~A15)상의 값이 유효하다는 것을 나타내는 어드레스 스트로브신호(AS#)가 있고, 버스 제어회로(12)로부터 MPU(11)에 대하여 버스사이클 완료신호(DC#)가 출력되고 있다.
또한, 버스 제어회로(12)로부터의 제1칩선택신호(CS1#)는 ROM(101)의 CS#단자에 공급되어 ROM(101)의 프로그램정보의 독출을 제어하고, 제2칩선택신호(CS#) 및 기입 이네이블신호(WE#)는 각각 SRAM(103)의 CE# 및 WE#단자에 공급되어 SRAM(103)에 대한 데이터의 기입 및 독출을 제어하고 있다.
일반적으로, RON의 액세스시간은 SRAM의 액세스시간에 비해서 느리므로, 버스사이클의 사이클시간을 SRAM의 액세스시간에 맞추어 설정하면, ROM의 액세스시간을 확보할 수 없게 된다. 그래서, 본 실시예에 있어서도, ROM(101)을 액세스하는 경우는 버스사이클에 대기 사이클을 삽입하여 ROM(101)의 엑세스 시간을 확보하도록 하고 있다.
제11도에 제10도의 구성에 의한 프로그램 내장형 데이터 처리장치의 버스사이클의 타이밍차트를 나타낸다. 기본적인 버스 사이클은 상태(S1)와 상태(S2)의 2사이클로 실행된다. 상태(S2)의 클록신호(CLK)의 하강에 의해 버스사이클 완료신호(DC#)가 샘플링되고, 버스사이클완료신호(DC#)가 “H”레벨인 때는 대기 사이클이 삽입되어 다시 상태(S2)의 사이클을 실행한다. 또, 버스사이클 완료신호(DC#)가 “L”레벨인 때에는 그 사이클에서 버스사이클을 종료한다. 제11도에 나타낸 예에서는, 오퍼랜드페치 버스사이클[도면중 어드레스A]에 의한 데이터(DA)의 독출] 및 오퍼랜드 가입사이클[도면중 어드레스(B)에 의한 데이터(DB)의 기입]은 SRAM(103)으로의 액세스로 2사이클에 의해 처리되지만, 명령레치 버스사이클[도면중 어드레스 (α+1, α+2)에 의한 데이터(Dα+1, Dα+2의 독출] 및 분기처 명령 페치 버스사이클[도면중 어드레스(α,β)에 의한 데이터(α,β)의 독출]은 ROM(101)으로의 액세스로 3사이클을 요하고 있다.
이어서, 제12도에 본 발명의 제2실시예에 따른 데이터 처리장치의 구성도를 나타낸다.
동 도면에 있어서, 본 실시예의 데이터 처리장치는 프로그램용의 기억수단인 32K×8비트 구성의 ROM(101)과 데이터용 기억수단인 32K×8비트 구성의 SRAM(103), 제1실시예에서 설명한 명령 디코드부(21), 오러랜드 어드레스계산 및 페치부(22), 명령 실행부(23) 및 버스 제어부(24)를 내장하고서, ROM(101)으로 부터 독출한 명령에 따라 동작하는 MPU(11)와, MPU(11)로부터의 제어신호에 따라 ROM(101) 및 SRAM(103)의 제어신호와 버스사이클 완료신호(DC#)을 생성하는 버스 제어회로(1,2') 및, ROM(101)의 액세스 어드레스를 생성하는 어드레스 포인터(13)로 구성되어 있다.
또한, 어드레스 포인터(13)는 15비트의 인크리멘터(16 ; incrementr), 15비트의 메모리 어드레스 레지스터(이하, MAR로 약기한다; 17) 및 15비트의 셀렉터(18)로 구성되어 있다.
ROM(101) 및 SRAM(103)으로의 액세스는 16비트의 어드레스 버스(A0~A15) 및 8비트의 데어터 버스(D0~D7)를 매개하여 수행된다.
또한, MPU(11)로부터의 버스 제어회로(12')에 공급되는 제어신호에는, 버스 속성정보(BAT0,BAT1) 및 어드레스 버스(A0~A15)상의 값이 유효하다는 것을 나타내는 어드레스 스토로브신호(AS3)가 있고, 그밖에 리세트신호(RESET#), 클록신호(CLK) 및 어드레스신호(A0)를 입력하여 각종 제어신호를 생성하고 있다.
제13도에 버스 제어회로(12')의 논리회로도를 나타낸다. 버스 제어회로(12')는 MPU(11)에 대하여 버스 사이클 완료신호(DC#)를, 어드레스 포인터(13)내의 MAR(17)에 래치 이네이블신호(LAT#)를, 셀렉터(18)에 선택신호(SEL)를 각각 출력하고 있다. 또, 버스 제어회로(12')로부터의 출력 이네이블신호(OE#)는 ROM(101)의 OE#단자에 공급되어 ROM(101)의 프로그램정보의 독출을 제어하고, 제2칩선택신호(CS2#) 및 기입 이네이블신호(WE#)는 각각 SRAM(103)의 CE# 및 WE#단자에 공급되어 SRAM(103)에 대한 데이터의 기입 및 독출을 제어하고 있다.
제14도에 본 실시예의 데이터 처리장치의 타이밍차트를 나타낸다.
어드레스 버스(A0~A15)의 최상위비트(A0)가 “H레벨인 때는 어드레스 스트로브신호(AS#)가 “L”레벨인 기간동안 제2칩선택신호(CS2#)가 “L”레벨로 되어, SRAM(103)에 대한 액세스가 수행된다. 이 SRAM(103)에 대한 액세스에서는, 버스속성정보(BAT1)가 “H”레벨인 때는 기입 이네이블신호(WE#)가 “H”레벨로 되어 독출사이클로 되고, 제2칩선택신호(CS2#)가 “L”레벨인 기간동안 SRAM(103)으로부터의 독출데이터가 데이터 버스(D0~D7)로 출력된다. 또, 버스속성정보(VAT1)가 “L”레벨인 때는, 기입 이네이블신호(WE3)는 “L”레벨로 되어 기입사이클로 되고, 제2칩선택신호(CS2#)의 상승엣지(rising edge)에서 데이터 버스(D0~D7)상에 출려기되어 있는 기입데이터가 SRAM에 기입된다.
또한, ROM(101)의 어드레스단자에는, 선택신호(SEL)가 “L”레벨인 때는 MAR817)출력이, 선택신호(SEL)가 “H”레벨인 때에는 어드레스 버스(A1~A15)가 셀렉터(18)를 매기하여 선택된다. 여기서, 선택신호(SEL)는 버스속성정보(BAT0)가 “L”레벨인, 버스속성정보(BAT1)가 “H”레벨, 또 어드레스 스트로브신호(AS#1)가 “L”레벨인 때에 “L”레벨로 된다. ROM(101)에 대한 액세스에서는, 출력 이네이블신호(OE#)는 어드레스신호(A0)가 “L”레벨이고, 또 어드레스 스트로브신호(AS#)가 “L”“레벨인 대에 “L”레벨로 되고, 그에 따라 ROM(101)의 독출데이타가 데이터 버스(D0~D7)상으로 출력된다.
이이서, 어드레스 포인터(13)의 동작을 설명한다. 15비트의 인크리멘터(16)는 어드레스 버스(A1~A15)의 값에 “1”을 가산한 갓을 출력한다. MAR(17)은 래치 이네이블신호(LAT#)가 “L”레벨인 때에 클록신호(CLK)의 하강에 의해 인크리멘터(16)의 출력을 래치한다. 여기서, 래치 이네이블신호(LAT#)는 버스속성 정보(BAT0)가 “L”레벨이고, 또 버스상태가 상태(S2)인 때에 “L“레벨로 된다.
또한, 15비트의 셀렉터(18)는, 선택신호(SEL)가 “L”레벨인 때는 어드레스 버스(A1~A15)를, 선택신호(SEL)가 “H”레벨인 때는 MAR(17)출력을 ROM(101)에 대한 액세스 어드레스로서 출력한다.
따라서, 제14도의 타이밍차트에 나타낸 바와 같이, 명령페치 버스사이클에서의 ROM(101)에 대한 액세스는 인크리멘터(16) 및 MAR(17)에 의해 미리 준비되므로, 제1실시예와 같이 대기 사이클을 삽입하지 않고 메모리 액세스를 실행하는 것이 가능하게 된다.
이에 따라, 명령페치 버스사이클에 필요로 되는 사이클수가 많아지게 됨으로써 명령 공급이 네크(neck)되어 시스템성능이 저하한다는 문제나, 명령페치 버스사이클의 버스점유율이 높아지게 됨으로서 오퍼랜드 액세스의 버스사이클이 명령 페치 버스사이클에 의해 저해되어 시스템성능이 저하한다는 문제를 해결할 수 있게 된다.
또한, 어드레스 포인터(13)의 구성은, 제15도(a)에 나타낸 바와 같은 셀렉터(18)의 출력을 인크리멘터(16)의 입력으로 하는 구성이나, 제15도(b)에 나타낸 바와 같은 인크리멘터(16)와 MAR(17)을 대신해서 2진카운터(19)로 구성하는 경우에도 본 실시예와 동등한 효과를 얻을 수가 있다.
또, 본 실시예에서는 데이타 버스(D0~D7)의 비트폭이 8비트이기 때문에 1회의 버스사이클에 의해 페치되는 명령을 1바이트이고, 인크리멘터(16)에서는 1을 가산하고 있지만, 데이터 버스의 폭을 16비트로 한 경우에는 인크리멘터(16)에서 2를 가산하고, 데이터 버스의 폭을 32비트로 한 경우에는 인크리멘터(16)에서 4를 가산해서 다음의 ROM(101)의 독출 어드레스를 계산하게 된다.
[발명의 효과]
이상 설명한 바와같이 본 발명에 의하면, 조건 분기명령의 분기조건이 확정 되기전에 분기처의 명령페치를 수행하는 데이터 처리장치에 있어서, 선페치한 정보를 파기할 때에 다음의 명령페치 버스사이클에 동기해서 그 정보를 외부로 출력함으로써, 내부회로 에뮬레이터에 의해 추적를 수행하는 경우에 추적메모리에 격납된 추적정보로부터 조건 분기명령의 분기조건 불성립에 의해 제거된 명령을 용이하게 삭제할 수가 있고, 그 결과로서 추적정보를 용이하게 해성할 수 있게 되어, 추적을 용이하게 할 수 있는 데이터 처리장치를 제공할 수 있게 된다.
또한, 예컨대 버스속성정보 출력수단에 의해 실행중인 버스사이클이 무조건 분기명령 또는 조건 분기명령의 분기처에 대한 명령페치라는 것을 나타내고 있는 경우에는, 이 어드레스 생성수단은 가산수단에 의해 어드레스 버스상의 값에 n(데이트 버스의 바이트수)을 가산하여 어드레스 기억수단에 격납하고, 무조건 분기 명령 또는 조건 분기명령 이후의 명령에 대해서는 어드레스 기억수단에 격납하고 있는 값을 어드레스 선택수단에 의해 선택해서 기억수단을 액세스함으로써, 무조건 분기명령 또는 조건 분기명령 이후의 명령의 명령페치를 보다 적은 사이클 수로 실행할 수가 있고, 그 결과로서 시스템성능을 향상시킬 수 있는 데이터처리 장치를 제공할 수 있게 된다.
한편, 본원 청구범위의 각 구성요건에 병기한 도면의 참조번호는, 본원 발명의 이해를 용이하게 하기 위한 것으로, 본원 발명의 기술적 범위를 도면에 도시한 실시예에 한정할 의도로 병기한 것은 아니다.

Claims (3)

  1. 실행중인 버스사이클이 분기명령의 분기처에 대한 명령페치라는 것을 나타내는 버스속성정보 출력수단(1)을 갖춘 것을 특징으로 하는 데이터 처리장치.
  2. 실행중인 버스사이클이 무조건 분기 명령 또는 조건 분기명령의 분기처에 대한 명령페치라는 것을 나타내는 버스속성정보 출력수단(1)과, 이미 분기처에 대한 명령페치가 수행되어 있는 조건 분기명령의 분기조건이 불성립으로 된 때에 버스사이클에 동기해서 그 취지를 나타내는 분기처 명령상태정보 출력수단(3)을 갖추고서, 상기 조건 분기명령의 조건이 확정되기 전에 분기처에 대한 명령페치를 수행하는 것을 특징으로 하는 데이터 처리장치.
  3. 복수개의 명령으로 구성되는 프로그램 격납하는 기억수단(101)과, 상기 기억수단(101)으로부터 독출되는 명령에 따라 동작하는 데이터처리부(11)및, 상기 기억수단(101)에 대한 어드레스를 생성하는 어드레스 생성수단(13,14,15)을 갖추고 있고, 상기 기억수단(101)에 대한 액세스는 어드레스버스(ABUS,40,A0~A15) 및 n바이트(n은 임의의 양의 정수)의 데이터 버스(DBUS,41, D0~D7)를 매개하여 수행되며, 상기 데이터처리부(11)는 실행중인 버스사이클이 무조건 분기명령 또는 조건 분기명령의 분기처에 대한 명령페치라는 것을 나타내는 버스속성정보 출력수단(1)을 갖추고 있고, 상기 어드레스 생성수단은 상기 어드레스 버스상의 값에 n을 가산하는 가산수단(16)과 상기 가산수단(16)의 출력을 격납하는 어드레스 기억수단(17) 및, 상기 버스속성정보 출력수단(1)의 출력에 따라 상기 어드레스 버스상의 값과 상기 어드레스 기억수단(17)의 값을 선택하여 상기 기억수단의 어드레스 하는 어드레스 선택수단(18)을 갖춘 것을 특징으로 하는 데이터 처리장치.
KR1019930001019A 1992-01-28 1993-01-28 데이터 처리장치 KR950007881B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP92-13012 1992-01-28
JP4013012A JP2693678B2 (ja) 1992-01-28 1992-01-28 データ処理装置

Publications (2)

Publication Number Publication Date
KR930016884A KR930016884A (ko) 1993-08-30
KR950007881B1 true KR950007881B1 (ko) 1995-07-21

Family

ID=11821254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930001019A KR950007881B1 (ko) 1992-01-28 1993-01-28 데이터 처리장치

Country Status (3)

Country Link
US (1) US5689694A (ko)
JP (1) JP2693678B2 (ko)
KR (1) KR950007881B1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314530B1 (en) * 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
US5968188A (en) 1998-03-10 1999-10-19 Grammar Engine System for providing real-time code coverage
JPH11282709A (ja) * 1998-03-27 1999-10-15 Mitsubishi Electric Corp インサーキットエミュレータ
US6393527B1 (en) * 1998-12-18 2002-05-21 Ati International Srl Prefetch buffer with continue detect
US6912650B2 (en) * 2000-03-21 2005-06-28 Fujitsu Limited Pre-prefetching target of following branch instruction based on past history
US7237090B1 (en) 2000-12-29 2007-06-26 Mips Technologies, Inc. Configurable out-of-order data transfer in a coprocessor interface
US7287147B1 (en) 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7124072B1 (en) 2001-04-30 2006-10-17 Mips Technologies, Inc. Program counter and data tracing from a multi-issue processor
US7178133B1 (en) 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
US7168066B1 (en) 2001-04-30 2007-01-23 Mips Technologies, Inc. Tracing out-of order load data
US7181728B1 (en) 2001-04-30 2007-02-20 Mips Technologies, Inc. User controlled trace records
US7185234B1 (en) 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
US7134116B1 (en) 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7069544B1 (en) 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7065675B1 (en) 2001-05-08 2006-06-20 Mips Technologies, Inc. System and method for speeding up EJTAG block data transfers
US7231551B1 (en) 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
US7043668B1 (en) 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
US7159101B1 (en) 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
US10089212B2 (en) * 2015-07-20 2018-10-02 Toshiba Memory Corporation Memory system, information processing system, and host device outputting debugging information through a host interface

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253428A5 (ko) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4085448A (en) * 1976-10-04 1978-04-18 International Business Machines Corporation Data communication bus structure
JPS5927935B2 (ja) * 1980-02-29 1984-07-09 株式会社日立製作所 情報処理装置
JPH0731615B2 (ja) * 1986-04-18 1995-04-10 日本電気株式会社 情報処理装置
JPH0769812B2 (ja) * 1987-12-29 1995-07-31 富士通株式会社 データ処理装置
US5127091A (en) * 1989-01-13 1992-06-30 International Business Machines Corporation System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
US5440722A (en) * 1991-07-22 1995-08-08 Banyan Systems, Inc. System bus monitor for compiling data regarding use of a system bus
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system

Also Published As

Publication number Publication date
JP2693678B2 (ja) 1997-12-24
JPH05204644A (ja) 1993-08-13
US5689694A (en) 1997-11-18
KR930016884A (ko) 1993-08-30

Similar Documents

Publication Publication Date Title
KR950007881B1 (ko) 데이터 처리장치
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
KR920006275B1 (ko) 데이타 처리 장치
KR0149658B1 (ko) 데이터 처리장치 및 데이터 처리방법
US7689867B2 (en) Multiprocessor breakpoint
US5446849A (en) Electronic computer which executes squash branching
US6611909B1 (en) Method and apparatus for dynamically translating program instructions to microcode instructions
JPH0895824A (ja) データ処理装置及びデータ処理方法
JPH06236268A (ja) 命令の長さを判定する装置と方法
JP2003085000A (ja) トレース情報生成装置およびその方法
KR910001538A (ko) 분기명령 실행장치 및 분기명령 트레이싱방법
JPH1196004A (ja) データプロセッサにおける条件分岐実行を制御するための方法および装置
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
US5787276A (en) Microprocessor including circuit for generating signal used for tracing executed instruction stream
JP2563708B2 (ja) マイクロプロセッサ装置およびそれを用いたエミュレータ装置
JP3335735B2 (ja) 演算処理装置
JPS61250754A (ja) 簡易型キヤツシユメモリ
KR950014162B1 (ko) 파이프라인(Pipeline)이 구비된 프로세서에서 간단한 반복명령어의 구현방법
JPH087713B2 (ja) マイクロプロセッサ
JPS6255738A (ja) プログラムカウンタトレ−ス機構をもつデ−タ処理装置
JPH1011290A (ja) マイクロプロセッサ
JPS6286442A (ja) デ−タ処理装置
KR20020085878A (ko) 파이프라인 아이텍춰를 갖는 프로세서에서 조건 점프명령을 처리하기 위한 방법 및 장치
JPH0774992B2 (ja) データ処理装置
JPH09311787A (ja) データ処理装置

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20030701

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee