KR20190031160A - 반도체 집적 회로 장치 및 데이터 비교 방법 - Google Patents

반도체 집적 회로 장치 및 데이터 비교 방법 Download PDF

Info

Publication number
KR20190031160A
KR20190031160A KR1020180108850A KR20180108850A KR20190031160A KR 20190031160 A KR20190031160 A KR 20190031160A KR 1020180108850 A KR1020180108850 A KR 1020180108850A KR 20180108850 A KR20180108850 A KR 20180108850A KR 20190031160 A KR20190031160 A KR 20190031160A
Authority
KR
South Korea
Prior art keywords
data
comparison
buffer
value
circuit
Prior art date
Application number
KR1020180108850A
Other languages
English (en)
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 KR20190031160A publication Critical patent/KR20190031160A/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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • 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
    • G06F13/1668Details of memory controller
    • 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
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

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

Abstract

[과제] 메모리 공간 상의 데이터를 CPU를 사용하지 않고 비교하여, 비교 횟수 및 비교 조건 일치 횟수의 적어도 한쪽에 기초하는 인터럽트 조건에서, 인터럽트를 발생시킨다.
[해결 수단] 인터럽트 컨트롤러(19)는, CPU 코어 A(12) 또는 CPU 코어 B(13)에 인터럽트 신호를 출력한다. DMAC(20)는, 메모리 공간 상의 데이터를, 버퍼 A(28) 및 버퍼 B(29)의 적어도 한쪽에 전송한다. 비교 회로(30)는, 버퍼 A(28)의 데이터와 버퍼 B(29)의 데이터를 비교한다. 조건 일치 횟수 카운터(31)는, 비교 회로(30)에 있어서의 비교가 비교 조건에 일치한 횟수를 카운트한다. 인터럽트 요구 회로(34)는, 조건 일치 횟수 카운터(31)의 값 및 비교 횟수 카운터의 값의 적어도 한쪽에 기초하여, 인터럽트 컨트롤러(19)에 인터럽트 요구를 출력한다.

Description

반도체 집적 회로 장치 및 데이터 비교 방법{SEMICONDUCTOR INTEGRATED CIRCUIT DEVICE AND DATA COMPARING METHOD}
본 발명은 반도체 집적 회로 장치 및 데이터 비교 방법에 관한 것이며, 예를 들어 복수의 데이터를 비교하는 기능을 갖는 반도체 집적 회로 장치 및 그러한 반도체 집적 회로 장치에 있어서의 데이터 비교 방법에 관한 것이다.
특허문헌 1은, 고신뢰화 AD(Analog to Digital) 변환 기능을 갖는 제어 장치를 개시한다. 특허문헌 1에 기재된 제어 장치는, AD 모듈과 연산 모듈의 조를 복수 갖는다. 특허문헌 1에서는, 각 AD 모듈에서 변환된 데이터 사이의 차가, 차의 표준값에 대하여 얼마나 이격되어 있는지가 체크된다(차분 체크). 각 연산 모듈은 CPU(Central Processing Unit)를 갖고 있으며, 각 연산 모듈에 있어서, 차분 체크 등에 있어서의 데이터의 비교는 CPU에 의해 실행된다.
특허문헌 2는, 대조 시스템을 개시한다. 특허문헌 2에 기재된 대조 시스템은, 다중화된 복수의 CPU와 데이터 대조기를 갖는다. 각 CPU는, 동일한 처리를 행하여, 메모리에 데이터를 출력한다. 데이터 대조기는, 메모리에 저장된 각 CPU의 출력 데이터를 비교(대조)하여, 그 대조 결과를 출력한다. 특허문헌 2에 있어서, 데이터 대조기는, 배타적 논리합 게이트를 포함하는 하드웨어 회로를 포함한다.
일본 특허 공개 (평)9-146709호 공보 일본 특허 제5094591호 공보
일반적으로, CPU는, 2개의 오퍼랜드에 대하여 "일치한다", "일치하지 않는다", "크거나 동등하다", "크다", "작거나 동등하다" 및 "작다" 등의 조건에서 비교를 행하는 비교 명령을 갖고 있다. 비교 명령의 실행 결과는, PSW(Program Status Word)라고 불리는 CPU의 상태를 유지하는 레지스터 중에 있는 플래그(예를 들어 T 비트)에 반영된다. CPU의 명령에는, T 비트를 참조하는 명령이 포함된다. 구체적으로는, CPU의 명령에는, 예를 들어 T 비트가 '1'이면 분기하거나, 또는 T 비트가 '0'이면 분기한다는 조건 분기 명령이 포함된다.
특허문헌 1에서는, CPU를 사용하여, 오차를 허용한 비교가 실행된다. 여기서, 오차를 허용하는 비교는, 비교되는 데이터의 차와 허용 오차를 오퍼랜드로 하는 비교 명령에 의해 행하여진다. 특허문헌 1에서는, 비교의 실행에 CPU가 사용되고 있으며, CPU 상에서 실행되는 프로그램에 의해, 단순한 비교나 오차를 허용한 비교 등, 임의의 비교를 실시할 수 있다. 그러나, 특허문헌 1에서는 CPU의 비교 명령을 사용하여 비교가 행해지기 때문에, 비교 결과가 얻어질 때까지 요하는 시간이 비교적 길다는 문제가 있다.
상기에 반하여, 특허문헌 2에서는, 메모리에 저장된 각 CPU의 출력 데이터를, 전용 하드웨어가 판독하여 대조한다. 이 경우, CPU를 사용하여 비교를 행하는 경우에 비하여, 처리의 고속화를 기대할 수 있다. 또한, CPU의 처리 부하를 경감시킬 수 있다. 그러나, 특허문헌 2에 있어서, 비교의 방법은, "다중화된 CPU의 출력 데이터가 일치한다"라는 비교에 한정된다.
그 밖의 과제와 신규 특징은, 본 명세서의 기술 및 첨부 도면으로부터 밝혀질 것이다.
일 실시 형태에 의하면, 반도체 집적 회로 장치는, 메모리 공간 상의 데이터를 제1 버퍼 및 제2 버퍼에 전송하는 전송 회로와, 제1 버퍼에 저장된 제1 데이터와 제2 버퍼에 저장된 제2 데이터를 비교하는 비교 회로와, 비교 횟수를 카운트하는 비교 횟수 카운터와, 비교 조건 일치 횟수를 세는 비교 조건 일치 횟수 카운터와, 비교 횟수 및 비교 조건 일치 횟수의 적어도 한쪽에 기초하여 인터럽트 요구를 출력하는 인터럽트 요구 회로를 갖는다.
상기 일 실시 형태에 의하면, 메모리 공간 상의 데이터를 CPU를 사용하지 않고 비교하여, 비교 횟수 및 비교 조건 일치 횟수의 적어도 한쪽에 기초하는 인터럽트 조건에서, 인터럽트를 발생시킬 수 있다.
도 1은 실시 형태 1에 관한 메모리 비교 회로를 갖는 마이크로컨트롤러 유닛을 도시하는 블록도.
도 2는 CPU 코어로부터 액세스 가능한 메모리 공간을 예시하는 도면.
도 3의 (a) 및 (b)는, 전송 제어 레지스터의 사양의 일례를 도시하는 도면.
도 4의 (a) 내지 (c)는 DMA 전송의 동작예를 나타내는 타이밍 차트.
도 5의 (a) 및 (b)는 비교 제어 레지스터의 사양의 일례를 도시하는 도면.
도 6은 데이터 비교의 동작예를 나타내는 타이밍 차트.
도 7은 데이터 비교의 동작예를 나타내는 타이밍 차트.
도 8은 데이터 비교의 동작예를 나타내는 타이밍 차트.
도 9는 비교 회로의 구성예를 도시하는 블록도.
도 10의 (a) 내지 (d)는, 부호없음 데이터에 대한 부호 확장의 예를 나타내는 도면.
도 11의 (a) 내지 (d)는 2의 보수 데이터에 대한 부호 확장의 예를 나타내는 도면.
도 12의 (a) 내지 (d)는 부동 소수점수 데이터에 대한 부호 확장의 예를 나타내는 도면.
도 13은 조건 일치 판정 회로의 조건 일치 판정의 기능을 나타내는 기능표.
도 14는 단순 비교를 행한 경우의 각 부의 값을 예시하는 도면.
도 15는 오차 허용 비교를 행한 경우의 각 부의 값을 예시하는 도면.
도 16의 (a) 및 (b)는 인터럽트 제어 레지스터의 사양의 일례를 도시하는 도면.
도 17은 단순 비교를 행한 경우의 각 부의 값을 도시하는 도면.
도 18은 CPU에 의한 설정의 수순을 나타내는 흐름도.
도 19는 실시 형태 2에서 사용되는 메모리 비교 회로의 일부를 도시하는 블록도.
도 20의 (a) 및 (b)는 실시 형태 2에 있어서 사용되는 인터럽트 제어 레지스터의 사양의 일례를 도시하는 도면.
도 21은 단순 비교와 오차 허용 비교를 행한 경우의 각 부의 값을 도시하는 도면.
도 22는 실시 형태 3에 관한 메모리 비교 회로를 갖는 마이크로컨트롤러 유닛을 도시하는 블록도.
도 23은 실시 형태 3에 있어서의 CPU에 의한 설정의 수순을 나타내는 흐름도.
이하, 도면을 참조하면서, 상기 [과제의 해결 수단]을 적용한 실시 형태를 상세하게 설명한다. 설명의 명확화를 위하여, 이하의 기재 및 도면은, 적절히 생략 및 간략화가 이루어지고 있다. 또한, 다양한 처리를 행하는 기능 블록으로서 도면에 기재되는 각 요소는, 하드웨어적으로는, CPU, 메모리, 또는 그 밖의 회로를 포함할 수 있고, 소프트웨어적으로는, 메모리에 로드된 프로그램 등에 의해 실현된다. 따라서, 이들 기능 블록이 하드웨어만, 소프트웨어만, 또는 그들의 조합에 의해 다양한 형태로 실현할 수 있는 것은 당업자에게는 이해되는 바이며, 어느 것에 한정되는 것은 아니다. 또한, 각 도면에 있어서, 동일한 요소에는 동일한 부호가 부여되어 있으며, 필요에 따라 중복 설명은 생략되어 있다.
또한, 상술한 프로그램은, 다양한 타입의 비일시적인 컴퓨터 가독 매체를 사용하여 저장되고, 컴퓨터에 공급할 수 있다. 비일시적인 컴퓨터 가독 매체는, 다양한 타입의 실체가 있는 기록 매체를 포함한다. 비일시적인 컴퓨터 가독 매체의 예는, 자기 기록 매체(예를 들어 플렉시블 디스크, 자기 테이프, 하드 디스크), 광자기 기록 매체(예를 들어 광자기 디스크), CD-ROM(Read Only Memory), CD-R, CD-R/W 및 반도체 메모리(예를 들어, 마스크 ROM, PROM(Programmable ROM), EPROM(Erasable PROM), 플래시 ROM, RAM(Random Access Memory))를 포함한다. 또한, 프로그램은, 다양한 타입의 일시적인 컴퓨터 가독 매체에 의해 컴퓨터에 공급되어도 된다. 일시적인 컴퓨터 가독 매체의 예는, 전기 신호, 광 신호 및 전자파를 포함한다. 일시적인 컴퓨터 가독 매체는, 전선 및 광 파이버 등의 유선 통신로, 또는 무선 통신로를 통하여, 프로그램을 컴퓨터에 공급할 수 있다.
이하의 실시 형태에 있어서는 편의상 그 필요가 있을 때는, 복수의 섹션 또는 실시 형태로 분할하여 설명하지만, 특별히 명시한 경우를 제외하고, 그것들은 서로 무관계인 것은 아니며, 한쪽은 다른 쪽의 일부 또는 전부의 변형예, 응용예, 상세 설명, 또는 보충 설명 등의 관계에 있다. 또한, 이하의 실시 형태에 있어서, 요소의 수 등(개수, 수치, 양, 범위 등을 포함한다)을 언급하는 경우, 특별히 명시한 경우 및 원리적으로 명백하게 특정한 수에 한정되는 경우 등을 제외하고, 그 특정한 수에 한정되는 것은 아니며, 특정한 수 이상이어도 이하여도 된다.
또한, 이하의 실시 형태에 있어서, 그 구성 요소(동작 스텝 등도 포함한다)는, 특별히 명시한 경우 및 원리적으로 명백하게 필수적이라고 생각되는 경우 등을 제외하고, 반드시 필수적인 것은 아니다. 마찬가지로, 이하의 실시 형태에 있어서, 구성 요소 등의 형상, 또는 위치 관계 등을 언급할 때는, 특별히 명시한 경우 및 원리적으로 명백하게 그렇지 않다고 생각되는 경우 등을 제외하고, 실질적으로 그 형상 등과 근사 또는 유사한 것 등을 포함하는 것으로 한다. 이것은, 상기 수 등(개수, 수치, 양, 범위 등을 포함한다)에 대해서도 마찬가지이다.
[실시 형태 1]
도 1은 실시 형태 1에 관한 반도체 집적 회로 장치를 나타낸다. 본 실시 형태에 있어서, 반도체 집적 회로 장치는, 마이크로컨트롤러 유닛(MCU: Micro Controller Unit)으로서 구성된다. MCU(10)는, CPU 코어 A(12), CPU 코어 B(13), 시스템 버스(14), 내장 메모리(15), 메모리 컨트롤러(16), 주변 버스 컨트롤러(17), 주변 버스(18), 인터럽트 컨트롤러(19), DMAC(Direct Memory Access Controller)(20), AD 변환 회로(21), 통신 회로(22) 및 메모리 비교 회로(23)를 갖는다.
MCU(10)에 있어서, CPU 코어 A(12), CPU 코어 B(13), 내장 메모리(15), 메모리 컨트롤러(16) 및 주변 버스 컨트롤러(17)는, 시스템 버스(14)를 개재하여 서로 접속된다. 또한, 주변 버스 컨트롤러(17), 인터럽트 컨트롤러(19), DMAC(20), A/D 변환 회로(21), 통신 회로(22) 및 메모리 비교 회로(23)는, 주변 버스(18)를 개재하여 서로 접속된다. CPU 코어 A(12) 및 CPU 코어 B(13)는, 주변 버스 컨트롤러(17)를 개재하여 주변 버스(18)에 액세스할 수 있다. 또한, CPU 코어 A(12) 및 CPU 코어 B(13)는, 메모리 컨트롤러(16)를 개재하여, 외부에 접속된 외부 메모리(35)에 액세스할 수 있다.
시스템 버스(14)는, CPU 코어 A(12), CPU 코어 B(13) 및 DMAC(20)를 버스 마스터로 하고, 내장 메모리(15), 외부 메모리(35) 및 주변 버스 컨트롤러(17)에 대한 액세스를 행한다. 주변 버스 컨트롤러(17)는, 시스템 버스(14)에 접속된 버스 마스터로부터의 액세스가 주변 버스(18)에 접속된 회로에 대한 액세스인 경우, 주변 버스(18)에 액세스 신호를 출력하고, 대상이 되는 회로로부터 데이터의 판독, 혹은 대상이 되는 회로에 대한 데이터의 기입을 행한다. 주변 버스(18)로부터 판독된 데이터는, 시스템 버스(14)의 버스 마스터에 출력된다.
CPU 코어 A(12) 및 CPU 코어 B(13)는, 내장 메모리(15) 또는 외부 메모리(35)로부터 프로그램을 판독하여 실행한다. CPU 코어 A(12) 및 CPU 코어 B(13)는, 프로그램 실행에 수반하여, 예를 들어 자신의 레지스터, 내장 메모리(15) 및 외부 메모리(35)를 갱신한다. CPU 코어 A(12) 및 CPU 코어 B(13)는, 캐시 메모리를 탑재하고 있으며, 내장 메모리(15) 및 외부 메모리(35)의 캐시 가능한 어드레스 공간의 프로그램 및 데이터의 일부를 유지하고 있다. 또한, MCU(10)가 갖는 CPU 코어의 수는 2개로는 한정되지는 않는다. MCU(10)에 있어서, CPU 코어의 수는 하나여도 되고, 3 이상이어도 된다.
인터럽트 컨트롤러(19)는, 인터럽트 요구가 발생하면, 인터럽트 신호를 CPU 코어 A(12) 또는 CPU 코어 B(13)에 출력한다. CPU 코어 A(12) 또는 CPU 코어 B(13)는, 인터럽트 신호를 접수하면, 실행하고 있던 프로그램을 중단하고, 인터럽트 처리를 개시한다. 본 실시 형태에서는, MCU(10)에 있어서, DMAC(20), A/D 변환 회로(21), 통신 회로(22) 및 메모리 비교 회로(23)가 인터럽트 요구를 발생시키는 것으로 한다.
DMAC(20)는, 메모리 공간에 매핑된 메모리와 메모리 사이, 또는 메모리와 회로 사이에서 데이터 전송을 행한다. DMAC(20)는, 메모리 공간 상에 매핑된 각종 레지스터를 갖고 있다. CPU 코어 A(12) 및 CPU 코어 B(13)는, 데이터의 전송원 어드레스, 데이터의 전송처 어드레스, 어드레스의 갱신 방법(인크리먼트/디크리먼트/고정), 전송 횟수 및 데이터 사이즈 등의 DMA 전송에 관한 정보를 각종 레지스터에 설정한다. DMAC(20)는, 복수의 채널을 갖고 있으며, 채널마다 DMA 전송에 관한 정보가 설정 가능하게 구성되어 있다. DMA 전송의 전송 모드에는, DMAC(20)의 스타트 레지스터를 '1'로 세트함으로써 설정한 전송 횟수만큼 전송을 실행하는 모드와, 회로가 출력하는 DMA 요구 신호에 따라 1회씩 전송하는 모드가 포함된다. DMAC(20)는, 인터럽트 요구 기능을 갖고 있으며, 전송이 종료되면 인터럽트 컨트롤러(19)에 인터럽트를 요구할 수 있다.
A/D 변환 회로(21)는, MCU(10)의 외부로부터 입력된 아날로그 신호를 디지털 신호로 변환한다. 디지털 신호는, A/D 변환 회로(21) 중의 레지스터, 또는 메모리에 저장된다. A/D 변환 회로(21)는, DMA 요구 기능을 갖고 있으며, A/D 변환이 종료되면 DMAC(20)에 DMA 요구 신호를 출력할 수 있다. 또한, A/D 변환 회로(21)는, 인터럽트 요구 기능을 갖고 있으며, A/D 변환이 종료되면 인터럽트 컨트롤러(19)에 인터럽트를 요구할 수 있다.
통신 회로(22)는, 외부 인터페이스를 통하여 통신을 행한다. 통신 회로(22)는, 송신 버퍼와 수신 버퍼를 갖는다. 통신 회로(22)는, DMA 요구 기능을 갖고 있으며, 송신 버퍼가 비워지게 되면, 혹은 수신 버퍼에 데이터가 쌓이면, DMA 요구 신호를 출력할 수 있다. 또한, 통신 회로(22)는, 인터럽트 요구 기능을 갖고 있으며, 송신 버퍼가 비워지게 되면, 혹은 수신 버퍼에 데이터가 쌓이면, 인터럽트 컨트롤러(19)에 인터럽트를 요구할 수 있다.
[메모리 비교 회로]
메모리 비교 회로(23)는, 비교 대상의 2개의 데이터를 비교한다. 본 실시 형태에 있어서, 메모리 비교 회로(23)는, 데이터를 비교하기 위한 전용 회로(전용 하드웨어)로서 구성된다. 비교 대상은, 메모리(메모리 공간에 매핑된 회로도 포함한다) 대 단일값 및 메모리 대 메모리로 한다. 메모리 비교 회로(23)는, 예를 들어 메모리 공간 상의 1 이상의 데이터를 포함하는 데이터 세트와 고정값(단일값)을 비교할 수 있도록 구성되어 있다. 또한, 메모리 비교 회로(23)는, 메모리 공간 상의 1 이상의 데이터를 포함하는 데이터 세트와, 메모리 공간 상의 1 이상의 데이터를 포함하는 별도의 데이터 세트를 비교할 수 있도록 구성되어 있다. 메모리 비교 회로(23)는, 인터럽트 요구 기능을 갖고 있으며, 데이터의 비교 결과에 따른 조건에서, 인터럽트 컨트롤러(19)에 인터럽트를 요구할 수 있다.
이하의 설명에 있어서, 메모리 비교 회로(23)에 있어서의 데이터 비교의 비교 조건은, "일치한다", "일치하지 않는다", "크거나 동등하다", "크다", "작거나 동등하다" 및 "작다"를 포함하는 것으로 한다. 또한, 비교 방법은, 단순 비교 및 오차를 허용하는 비교(오차 허용 비교)를 포함하는 것으로 한다. 비교 대상의 데이터의 데이터 사이즈는, "8비트", "16비트", "32비트" 및 "64비트" 등, CPU 코어 A(12) 및 CPU 코어 B(13)가 서포트하는 데이터 사이즈로 한다. 비교 대상의 데이터의 데이터 형식은, 적어도 "부호없음", "2의 보수" 및 "부동 소수점수"를 포함하는 것으로 한다. 본 실시 형태에서는, 메모리 비교 회로(23)의 비교 결과는, T 비트와 같은 비교 조건에 일치했는지 여부를 나타내는 플래그가 아니라, 예를 들어 비교 조건에 일치한 횟수를 나타내는 카운터값으로서 출력으로 하는 것이 가능하게 구성된다.
메모리 비교 회로(23)는, 전송 제어 레지스터(25), DMA 요구 회로(26), 비교 제어 레지스터(27), 버퍼 A(28), 버퍼 B(29), 비교 회로(30), 조건 일치 횟수 카운터(31), 비교 횟수 카운터(32), 인터럽트 제어 레지스터(33) 및 인터럽트 요구 회로(34)를 갖는다. 메모리 비교 회로(23)에 있어서, 전송 제어 레지스터(25), 비교 제어 레지스터(27), 버퍼 A(28), 버퍼 B(29), 조건 일치 횟수 카운터(31), 비교 횟수 카운터(32) 및 인터럽트 제어 레지스터(33)는, 메모리 비교 회로 내부 인터페이스(24)를 통하여 주변 버스(18)에 접속되어 있다.
전송 제어 레지스터(25), 비교 제어 레지스터(27), 버퍼 A(28), 버퍼 B(29), 조건 일치 횟수 카운터(31), 비교 횟수 카운터(32) 및 인터럽트 제어 레지스터(33)는, 메모리 공간 상에 매핑되어 있다. CPU 코어 A(12) 및 CPU 코어 B(13)는, 시스템 버스(14), 주변 버스 컨트롤러(17), 주변 버스(18) 및 메모리 비교 회로 내부 인터페이스(24)를 통하여, 전송 제어 레지스터(25), 비교 제어 레지스터(27), 버퍼 A(28), 버퍼 B(29), 조건 일치 횟수 카운터(31), 비교 횟수 카운터(32) 및 인터럽트 제어 레지스터(33)에 액세스할 수 있다. 또한, DMAC(20)는, 주변 버스(18) 및 메모리 비교 회로 내부 인터페이스(24)를 통하여, 적어도 버퍼 A(28) 및 버퍼 B(29)에 액세스할 수 있다.
버퍼 A(28) 및 버퍼 B(29)는, 비교 대상의 데이터를 저장하기 위한 버퍼이다. 버퍼 A(28) 및 버퍼 B(29)에는, 각각 DMAC(20)에 의해 전송된 데이터가 저장된다. 혹은, 버퍼 A(28) 및 버퍼 B(29)에는, CPU 코어 A(12) 또는 CPU 코어 B(13)가 기입된 데이터가 저장된다. 비교 회로(30)는, 버퍼 A(28)가 저장하는 데이터와, 버퍼 B(29)가 저장하는 데이터를 비교한다. 비교 회로(30)는, 비교 대상의 2개의 데이터를, 예를 들어 복수의 비교 조건 중에서 선택된 비교 조건에서 비교한다.
전송 제어 레지스터(25)는, 버퍼 A(28) 및 버퍼 B(29)에 대한 데이터의 전송에 관한 설정 정보를 저장한다. 전송 제어 레지스터(25)에는, 예를 들어 DMAC(20)에 의해 실시되는 DMA 전송(데이터 전송)에 있어서의 데이터의 전송 모드 및 전송 횟수 등이 저장된다. 또한, 전송 제어 레지스터(25)에는, 예를 들어 데이터 전송의 개시 및 정지를 설정하기 위한 값이 저장된다.
CPU 코어 A(12) 또는 CPU 코어 B(13)는, 예를 들어 메모리 비교 회로(23)에 데이터의 비교를 개시시키는 타이밍에 전송 제어 레지스터(25)에 데이터 전송의 개시를 설정하기 위한 값을 기입한다. 이때, CPU 코어 A(12) 또는 CPU 코어 B(13)는, DMAC(20)에 있어서의 각종 레지스터의 값을 설정 완료라고 하자. DMA 요구 회로(26)는, 전송 제어 레지스터(25)에 데이터 전송의 개시를 설정하기 위한 값이 기입되면, DMAC(20)에 데이터 전송 개시를 지시하는 DMA 요구 신호를 출력한다. 본 실시 형태에 있어서, DMAC(20) 및 DMA 요구 회로(26)는, 버퍼 A(28) 및/또는 버퍼 B(29)에 메모리 공간 상의 데이터를 전송하기 위한 전송 회로를 구성한다.
비교 제어 레지스터(27)는, 비교 회로(30)에 있어서의 비교 내용(비교 조건)에 관한 설정 정보를 저장한다. 비교 제어 레지스터(27)에는, 예를 들어 "일치한다", "일치하지 않는다", "크거나 동등하다", "크다", "작거나 동등하다", 또는 "작다" 등의 비교 조건이 저장된다. 또한, 비교 제어 레지스터(27)에는, 비교가 오차를 허용한 비교인지 여부를 나타내는 값 및 오차가 허용되는 경우의 허용 오차 등이 저장된다. 비교 회로(30)는, 비교 제어 레지스터(27)의 내용에 따라, 버퍼 A(28)에 저장되는 데이터와 버퍼 B(29)에 저장되는 데이터를 비교한다.
조건 일치 횟수 카운터(31)는, 비교 회로(30)에 있어서 비교 결과가 비교 조건에 일치한 횟수를 카운트한다. 비교 조건 일치 횟수 카운터(31)는, 예를 들어 비교 조건이 "일치한다"이면, 버퍼 A(28)에 저장되는 데이터와 버퍼 B(29)에 저장되는 데이터가 일치하는 횟수를 카운트한다. 비교 횟수 카운터(32)는, 비교 회로(30)에 있어서의 데이터의 비교 횟수를 카운트한다. 비교 횟수 카운터(32)는, 예를 들어 비교 회로(30)에 있어서 데이터의 비교가 실시될 때마다, 값을 1씩 인크리먼트한다.
인터럽트 요구 회로(34)는, 조건 일치 횟수 카운터(31)의 값 및 비교 횟수 카운터(32)의 값의 적어도 한쪽에 기초하여, 인터럽트 컨트롤러(19)에 인터럽트를 요구한다. 인터럽트 제어 레지스터(33)는, 인터럽트 요구 회로(34)에 있어서의 인터럽트 조건에 관한 설정 정보를 저장한다. 인터럽트 제어 레지스터(33)에는, 예를 들어 인터럽트 요구 회로(34)가 어느 카운터의 값에 기초하여 인터럽트를 요구할지의 설정이 저장된다. 인터럽트 요구 회로(34)는, 조건 일치 횟수 카운터(31)와, 비교 횟수 카운터(32)와, 인터럽트 제어 레지스터(23)에 기초하여 인터럽트 조건이 성립되었는지 여부를 판단하여, 인터럽트 조건이 성립되었다고 판단하면 인터럽트 컨트롤러(19)에 인터럽트를 요구한다.
[메모리 공간]
도 2는 메모리 공간의 일례를 나타낸다. 본 실시 형태에 있어서, 내장 메모리(15) 및 외부 메모리(35)는, 메모리 공간의 소정의 어드레스에 할당되어 있다. 또한, DMAC(20)의 레지스터(DMAC 레지스터)와, 메모리 비교 회로(23)의 전송 제어 레지스터(25), 비교 제어 레지스터(27), 버퍼 A(28), 버퍼 B(29), 조건 일치 횟수 카운터(31), 비교 횟수 카운터(32) 및 인터럽트 제어 레지스터(33)가, 메모리 공간의 소정의 어드레스에 할당되어 있다.
도 2의 예에서는, 각각 4개의 데이터를 포함하는 데이터 세트 A 및 데이터 세트 B가 메모리 공간 상의 소정의 어드레스 범위에 저장되어 있다. 데이터 세트 A는, 데이터 A1, A2, A3 및 A4를 포함한다. 데이터 세트 B는, 데이터 B1, B2, B3 및 B4를 포함한다. 데이터 세트 A의 각 데이터는, 예를 들어 CPU 코어 A(12)가 소정의 처리에 있어서 생성하고, 메모리에 출력한 데이터이다. 또한, 데이터 세트 B의 각 데이터는, 예를 들어 CPU 코어 B(13)가 동일한 처리에 있어서 생성하고, 메모리에 출력한 데이터이다. 데이터 세트 A 및 데이터 세트 B의 각 데이터는, 예를 들어 내장 메모리(15) 또는 외부 메모리(35)에 저장된다.
예를 들어, CPU 코어 A(12) 또는 CPU 코어 B(13)는, 데이터 세트 A의 각 데이터를 버퍼 A(28)에 순차적으로 전송시키기 위한 정보를 DMAC 레지스터에 기입한다. 또한, CPU 코어 A(12) 또는 CPU 코어 B(13)는, 데이터 세트 B의 각 데이터를 버퍼 B(29)에 순차적으로 전송시키기 위한 정보를 DMAC 레지스터에 기입한다. 또한, CPU 코어 A(12) 또는 CPU 코어 B(13)는, 전송 제어 레지스터(25), 비교 제어 레지스터(27) 및 인터럽트 제어 레지스터(33)에, 각각 데이터 전송을 위한 설정 정보, 비교 조건을 위한 설정 정보 및 인터럽트 조건을 위한 설정 정보를 기입한다.
DMA 요구 회로(26)는, 전송 제어 레지스터(25)에 전송 개시를 나타내는 값이 기입되면, DMAC(20)에 DMA 요구 신호를 출력한다. DMAC(20)는, 메모리 공간 상의 데이터 세트 A의 데이터를 순차적으로 판독하여, 버퍼 A(28)로 전송한다. 또한, DMAC(20)는, 메모리 공간 상의 데이터 세트 B의 데이터를 순차적으로 판독하여, 버퍼 B(29)로 전송한다. DMAC(20)는, 버퍼 A(28)에 데이터 세트 A의 데이터 A1을 전송하고, 버퍼 B(29)에 데이터 세트 B의 데이터 B1을 전송한다. 비교 회로(30)는, 양쪽의 버퍼에 데이터가 전송되면, 데이터 비교를 실시하고, 조건 일치 횟수 카운터(31) 및 비교 횟수 카운터(32)를 갱신한다. 이후 마찬가지로, 데이터 A2와 데이터 B2, 데이터 A3과 데이터 B3, 데이터 A4와 데이터 B4에 대해서도, DMAC(20)에 의한 데이터 전송과 비교 회로(30)에 의한 비교가 실시된다.
[전송 제어 레지스터]
도 3의 (a) 및 (b)는, 전송 제어 레지스터(25)의 사양의 일례를 나타낸다. 도 3의 (a)는, 전송 제어 레지스터(25)의 필드의 구성예를 나타내고, 도 3의 (b)는, 각 필드의 상세를 나타낸다. 도 3의 (a)에 도시하는 바와 같이, 전송 제어 레지스터(25)는, 예를 들어 필드 ST, MA, MB 및 C를 갖는다. 또한, 도 3의 (a)에 도시되는 전송 제어 레지스터(25)의 필드 구성은 예시이며, 전송 제어 레지스터(25)의 필드 구성은 도시된 것에는 한정되지는 않는다.
도 3의 (b)에 도시하는 바와 같이, 필드 ST(Start)는, DMA 전송의 개시 및 정지를 설정하기 위한 필드(전송 개시 설정 필드)이다. 필드 ST에는, 「0」 또는 「1」의 값이 설정된다. 값 「0」은 정지를 나타내고, 값 「1」은 개시를 나타낸다. DMA 요구 회로(26)(도 1을 참조)는, 필드 ST에 설정되는 값이 「0」으로부터 「1」이 되면, DMAC(20)에 DMA 요구 신호를 출력하고, DMAC(20)는 버퍼 A(28) 및/또는 버퍼 B(29)에 대한 데이터 전송을 개시한다.
필드 MA(Mode A)는, 채널 A의 전송 모드를 설정하기 위한 필드(전송 모드 설정 필드)이다. 여기서, 채널 A란, 도 1에 있어서의 버퍼 A(28)에 대한 DMA 전송을 의미한다. 필드 MA에는, 「0」, 「1」, 또는 「2」의 값이 설정된다. 값 「0」은, 버퍼 A(28)에 대한 DMA 전송이 없음을 나타낸다. 값 「1」은, 버퍼 A(28)에 대한 DMA 전송의 전송 횟수가 1회임을 나타낸다. 값 「2」는, 버퍼 A(28)에 대한 DMA 전송의 전송 횟수가 필드 C로 나타나는 횟수(전송 횟수 C)임을 나타낸다. 필드 C(Count)는, DMA 전송의 전송 횟수를 설정하기 위한 필드(전송 횟수 설정 필드)이다.
필드 MB(Mode B)는, 채널 B의 전송 모드를 설정하기 위한 필드(전송 모드 설정 필드)이다. 여기서, 채널 B란, 도 1에 있어서의 버퍼 B(29)에 대한 전송을 의미한다. 필드 MB에는, 「0」, 「1」, 또는 「2」의 값이 설정된다. 값 「0」은, 버퍼 B(29)에 대한 DMA 전송이 없음을 나타낸다. 값 「1」은, 버퍼 B(29)에 대한 DMA 전송의 전송 횟수가 1회임을 나타낸다. 값 「2」는, 버퍼 B(29)에 대한 DMA 전송의 전송 횟수가 필드 C로 나타나는 횟수임을 나타낸다.
여기서, 필드 MA 및 필드 MB에 값 「0」 또는 「1」이 세트된 경우, 그 채널에 대응하는 버퍼에 저장되는 데이터는, 데이터 비교에 있어서 고정값으로서 취급된다. 예를 들어, 필드 MA에 DMA 전송없음을 나타내는 값 「0」이 설정되는 경우, 버퍼 A(28)에는 예를 들어 CPU 코어 A(12) 또는 CPU 코어 B(13)에 의해 소정의 값(고정값)을 나타내는 데이터가 기입된다. 그 경우, 버퍼 A(28)에 기입된 고정값은 비교 종료까지 유효해진다. 비교 회로(30)는, 버퍼 B(29)에 데이터가 DMA 전송될 때마다, 그 DMA 전송된 데이터와, 버퍼 A(28)에 기입된 고정값을 비교한다.
또한, 예를 들어 필드 MA에 DMA 전송이 1회임을 나타내는 값 「1」이 설정되는 경우, 버퍼 A(28)에는 예를 들어 DMAC(20)에 의해 전송된 데이터가 1회만 기입된다. 그 경우, 버퍼 A(28)로 전송된 데이터는 비교 종료까지 유효해지는 고정값으로서 취급된다. 비교 회로(30)는, 버퍼 B(29)에 데이터가 DMA 전송될 때마다, DMA 전송된 데이터와, 버퍼 A(28)로 전송된 고정값을 비교한다. 비교 회로(30)는, 필드 MA 및 필드 MB 양쪽에 전송 횟수가 필드 C로 나타나는 횟수임을 나타내는 값 「2」가 설정되는 경우는, 버퍼 A(28)에 데이터가 DMA 전송되며, 또한 버퍼 B(29)에 데이터가 DMA 전송될 때마다, 데이터 비교를 실시한다.
[DMA 전송의 예]
도 4의 (a) 내지 (c)는, DMA 전송의 동작예를 나타낸다. 도 4의 (a)는 필드 MA의 값을 「2」로 설정하고, 필드 MB의 값을 「0」으로 설정하고, 필드 C의 값을 「8」로 설정한 경우에 있어서의 DMA 전송의 동작예를 나타낸다. DMAC(20)(도 1을 참조)에는, 데이터 A1 내지 A8을 포함하는 데이터 세트 A의 DMA 전송에 관한 정보가 미리 설정되어 있다. DMAC(20)는, DMA 요구 회로(26)가 DMA 요구 신호를 출력하면, 채널 A에 있어서 데이터 전송을 8회 행하여, 데이터 A1 내지 A8을 순차적으로 버퍼 A(28)로 전송한다. 채널 B에 대해서는, 필드 MB의 값이 DMA 전송없음을 나타내는 「0」이며, 버퍼 B(29)에 대한 DMA 전송은 실시되지 않는다.
도 4의 (b)는 필드 MA의 값을 「2」로 설정하고, 필드 MB의 값을 「1」로 설정하고, 필드 C의 값을 「4」로 설정한 경우에 있어서의 DMA 전송의 동작예를 나타낸다. DMAC(20)에는, 데이터 A1 내지 A4를 포함하는 데이터 세트 A의 DMA 전송에 관한 정보, 및 데이터 B1의 DMA 전송에 관한 정보가 미리 설정되어 있다. DMAC(20)는, DMA 요구 회로(26)가 DMA 요구 신호를 출력하면, 먼저 채널 A에 있어서 데이터 A1을 버퍼 A(28)로 전송하고, 이어서 채널 B에 있어서 데이터 B1을 버퍼 B(29)로 전송한다. 그 후, DMAC(20)는, 채널 A에 있어서 데이터 A2 내지 A4를 순차적으로 버퍼 A(28)로 전송한다.
도 4의 (c)는, 필드 MA의 값을 「2」로 설정하고, 필드 MB의 값을 「2」로 설정하고, 필드 C의 값을 「4」로 설정한 경우에 있어서의 DMA 전송의 동작예를 나타낸다. DMAC(20)에는, 데이터 A1 내지 A4를 포함하는 데이터 세트 A의 DMA 전송에 관한 정보, 및 데이터 B1 내지 B4를 포함하는 데이터 세트 B의 DMA 전송에 관한 정보가 미리 설정되어 있다. DMAC(20)는, DMA 요구 회로(26)가 DMA 요구 신호를 출력하면, 먼저 채널 A에 있어서 데이터 A1을 버퍼 A(28)로 전송하고, 이어서 채널 B에 있어서 데이터 B1을 버퍼 B(29)로 전송한다. 그 후, DMAC(20)는, 채널 A의 데이터 전송과 채널 B의 데이터 전송을 교대로 실시하여, 데이터 A2 내지 A4와 데이터 B2 내지 B4를 버퍼 A(28) 및 버퍼 B(29)에 순차적으로 전송한다.
[비교 제어 레지스터]
도 5의 (a) 및 (b)는, 비교 제어 레지스터(27)의 사양의 일례를 나타낸다. 도 5의 (a)는, 비교 제어 레지스터의 필드의 구성예를 나타내고, 도 5의 (b)는, 각 필드의 상세를 나타낸다. 도 5의 (a)에 도시하는 바와 같이, 비교 제어 레지스터(27)는, 예를 들어 필드 ST, C, M, DS, DF 및 AE를 갖는다. 또한, 도 5의 (a) 및 (b)에 도시하는 전송 제어 레지스터(25)의 필드 구성은 예시이며, 비교 제어 레지스터(27)의 필드 구성은 도시된 것에는 한정되지는 않는다.
도 5의 (b)에 도시하는 바와 같이, 필드 ST(Start)는, 비교 회로(30)(도 1을 참조)에 있어서의 비교의 개시 및 정지를 설정하기 위한 필드이다. 필드 ST에는, 「0」 또는 「1」의 값이 설정된다. 값 「0」은 정지를 나타내고, 값 「1」은 개시를 나타낸다. 비교 회로(30)는, 필드 ST에 설정되는 값이 「0」으로부터 「1」이 되면, 버퍼 A(28)에 저장되는 데이터와 버퍼 B(29)에 저장되는 데이터의 비교를 개시한다.
필드 C(Condition)는, 비교 조건을 설정하기 위한 필드(비교 조건 설정 필드)이다. 필드 C에는 「0」 내지 「5」의 값이 설정된다. 버퍼 A(28)에 저장되는 데이터를 A로 하고 버퍼 B(29)에 저장되는 데이터를 B로 한 경우, 값 「0」은 비교 조건이 A=B라는 취지를 나타낸다. 값 「1」은, 비교 조건이 A≠B라는 취지를 나타낸다. 값 「2」는 비교 조건이 A≥B라는 취지를 나타낸다. 값 「3」은 비교 조건이 A>B라는 취지를 나타낸다. 값 「4」는 비교 조건이 A≤B라는 취지를 나타낸다. 값 「5」는 비교 조건이 A<B라는 취지를 나타낸다.
필드 M(Method)은, 비교 방법을 설정하기 위한 필드(비교 방법 설정 필드)이다. 필드 M에는 「0」 또는 「1」의 값이 설정된다. 값 「0」은, 오차를 허용하지 않는 단순 비교를 나타낸다. 값 「1」은, 오차 허용 비교를 나타낸다. 필드 AE(Allowable Error)는, 허용 오차를 설정하기 위한 필드(허용 오차 설정 필드)이다. 필드 AE에는, 허용 오차를 나타내는 값이 설정된다. 필드 AE의 값은, 예를 들어 필드 M이 「1」인 경우에 설정된다.
필드 DS(Data Size)는, 비교 대상의 데이터의 데이터 사이즈를 설정하기 위한 필드(데이터 사이즈 설정 필드)이다. 필드 DS에는, 「0」 내지 「3」의 값이 설정된다. 값 「0」은 데이터 사이즈가 8비트임을 나타낸다. 값 「1」은 데이터 사이즈가 16비트임을 나타낸다. 값 「2」는 데이터 사이즈가 32비트임을 나타낸다. 값 「3」은 데이터 사이즈가 64비트이다.
필드 DF(Data Format)는, 비교 대상의 데이터의 데이터 형식을 설정하기 위한 필드(데이터 형식 설정 필드)이다. 필드 DF에는, 값 「0」, 「1」, 또는 「2」가 설정된다. 값 「0」은, 데이터가 부호없음의 데이터임을 나타낸다. 값 「1」은, 데이터가 2의 보수로 표현되어 있음을 나타낸다. 값 「2」는, 데이터가 부동 소수점으로 표현되어 있음을 나타낸다.
[데이터 비교의 동작예]
도 6은 각각 데이터 비교의 동작예를 나타낸다. 도 6에 있어서, (a)는 DMA 전송(데이터 전송)을 나타내고, (b)는 버퍼 A(28)에 저장되는 데이터를 나타내고, (c)는 버퍼 B(29)에 저장되는 데이터를 나타내고, (d)는 비교 회로(30)에 있어서의 비교 동작을 나타낸다. 도 6에 있어서의 데이터 전송((a)를 참조)은, 도 4의 (a)에 도시하는 데이터 전송에 대응한다. 이 예에서는, 전송 제어 레지스터(25)에 있어서, 필드 MA의 값이 「2」로 설정되고, 필드 MB의 값이 「0」으로 설정되고, 필드 C의 값이 「8」로 설정되어 있다. 버퍼 B(29)에는, 예를 들어 CPU 코어 A(12) 또는 CPU 코어 B(13)에 의해, 사전에 데이터 B0이 기입되어 있다고 하자((c)를 참조). 버퍼 B(29)에 저장되는 데이터 B0은, 필드 MB의 값이 「0」으로 설정되어 있기 때문에, 고정값으로서 취급된다.
DMAC(20)는, 시각 t10에서 데이터 전송을 개시하고, 예를 들어 내장 메모리(15)(도 1을 참조)로부터 데이터 A1을 판독한다((a)를 참조). DMAC(20)는, 시각 t11에서 버퍼 A(28)로 데이터 A1을 전송하여, 버퍼 A(28)에 데이터 A1을 기입한다((b)를 참조). 비교 회로(30)는, 버퍼 A(28)로 데이터 A1이 전송된 후, 시각 t12에서, 1회째의 데이터 비교를 행한다((d)를 참조). 비교 회로(30)는, 1회째의 데이터 비교에서는, 버퍼 A(28)에 저장되는 데이터 A1과 버퍼 B(29)에 저장되는 데이터 B0을 비교한다.
비교 회로(30)는, 데이터 비교를 행한 후, 예를 들어 버퍼 A(28)에 저장되는 데이터를, 다음 데이터가 기입될 때까지 무효 데이터로서 취급한다. 버퍼 B(29)에 저장되는 데이터 B0은 고정값이기 때문에, 데이터 비교가 종료될 때까지, 데이터는 무효화되지 않는다. 비교 회로(30)는, 데이터 비교를 행하면 비교 횟수 카운터(32)를 갱신한다. 또한, 비교 회로(30)는, 비교 결과에 따라 조건 일치 횟수 카운터(31)를 갱신한다.
DMAC(20)는, 시각 t13에서 다음 데이터 전송을 개시하고, 예를 들어 내장 메모리(15)로부터 데이터 A2를 판독한다((a)를 참조). DMAC(20)는, 시각 t14에서 버퍼 A(28)로 다음 데이터 A2를 전송한다((b)를 참조). 비교 회로(30)는, 버퍼 A(28)로 다음 데이터 A2가 전송되면, 시각 t15에서 2회째의 데이터 비교를 행한다((d)를 참조). 비교 회로(30)는, 2회째의 데이터 비교에서는, 버퍼 A(28)에 저장되는 데이터 A2와 버퍼 B(29)에 저장되는 데이터 B0을 비교한다. 비교 회로(30)는, 데이터 비교를 행하면, 조건 일치 횟수 카운터(31) 및 비교 횟수 카운터(32)를 갱신한다.
이후 마찬가지로, 버퍼 A(28)에는, 데이터 A3 내지 A8이 순차적으로 전송된다((b)를 참조). 비교 회로(30)는, 버퍼 A(28)에 새로운 데이터가 전송될 때마다, 버퍼 A(28)로 전송되는 데이터 A3 내지 A8과, 버퍼 B(29)에 저장되는 데이터 B0을 비교한다((d)를 참조). 비교 회로(30)는, 전송 제어 레지스터(25)의 필드 C의 값 「8」에 대응하는 횟수만큼 데이터 비교를 행하면, 비교 동작을 종료한다. 달리 표현하면, 비교 회로(30)는, 8회째의 데이터 비교에 있어서, 버퍼 A(28)에 저장되는 데이터 A8과 버퍼 B(29)에 저장되는 데이터 B0을 비교하면, 비교 동작을 종료한다.
도 7은 데이터 비교의 다른 동작예를 나타낸다. 도 7에 있어서, (a)는 DMA 전송(데이터 전송)을 나타내고, (b)는 버퍼 A(28)에 저장되는 데이터를 나타내고, (c)는 버퍼 B(29)에 저장되는 데이터를 나타내고, (d)는 비교 회로(30)에 있어서의 비교 동작을 나타낸다. 도 7에 있어서의 데이터 전송((a)를 참조)은, 도 4의 (b)에 도시하는 데이터 전송에 대응한다. 이예에서는, 전송 제어 레지스터(25)에 있어서, 필드 MA의 값이 「2」로 설정되고, 필드 MB의 값이 「1」로 설정되고, 필드 C의 값이 「4」로 설정되어 있다.
DMAC(20)는, 시각 t20에서 데이터 전송을 개시하고, 예를 들어 내장 메모리(15)로부터 데이터 A1을 판독한다((a)를 참조). DMAC(20)는, 시각 t21에서 버퍼 A(28)로 데이터 A1을 전송하여, 버퍼 A(28)에 데이터 A1을 기입한다((b)를 참조). DMAC(20)는, 이어서 시각 t22에서 예를 들어 내장 메모리(15)로부터 데이터 B1을 판독하고((a)를 참조), 시각 t23에서 버퍼 B(29)에 데이터 B1을 전송한다((c)를 참조). 비교 회로(30)는, 버퍼 A(28)로 데이터 A1이 전송되며, 또한 버퍼 B(29)로 데이터 B1이 전송된 후, 시각 t24에서, 1회째의 데이터 비교를 행한다((d)를 참조). 비교 회로(30)는, 1회째의 데이터 비교에서는, 버퍼 A(28)에 저장되는 데이터 A1과 버퍼 B(29)에 저장되는 데이터 B1을 비교한다.
여기서, 비교 회로(30)는, 전송 제어 레지스터(25)의 필드 MB의 값이 「1」이기 때문에, 버퍼 B(29)에 저장되는 데이터 B1을 고정값으로서 취급한다. 비교 회로(30)는, 데이터 비교를 행한 후, 예를 들어 버퍼 A(28)에 저장되는 데이터를, 다음 데이터가 기입될 때까지 무효 데이터로서 취급한다. 버퍼 B(29)에 저장되는 데이터 B1은 고정값이기 때문에, 데이터 비교가 종료될 때까지, 데이터는 무효화되지 않는다. 비교 회로(30)는, 데이터 비교를 행하면, 비교 횟수 카운터(32)를 갱신한다. 또한, 비교 회로(30)는, 비교 결과에 따라 조건 일치 횟수 카운터(31)를 갱신한다.
DMAC(20)는, 시각 t25에서 다음 데이터 전송을 개시하고, 예를 들어 내장 메모리(15)로부터 데이터 A2를 판독한다((a)를 참조). DMAC(20)는, 시각 t26에서 버퍼 A(28)로 다음 데이터 A2를 전송한다((b)를 참조). 비교 회로(30)는, 버퍼 A(28)로 다음 데이터 A2가 전송되면, 시각 t27에서 2회째의 데이터 비교를 행한다((d)를 참조). 비교 회로(30)는, 2회째의 데이터 비교에서는, 버퍼 A(28)에 저장되는 데이터 A2와 버퍼 B(29)에 저장되는 데이터 B1을 비교한다. 비교 회로(30)는, 데이터 비교를 행하면, 조건 일치 횟수 카운터(31) 및 비교 횟수 카운터(32)를 갱신한다.
이후 마찬가지로, 버퍼 A(28)에는, 데이터 A3 및 A4가 순차적으로 전송된다((b)를 참조). 비교 회로(30)는, 버퍼 A(28)로 전송되는 데이터 A3 및 A4와, 버퍼 B(29)에 저장되는 데이터 B1을 순차적으로 비교한다((d)를 참조). 비교 회로(30)는, 전송 제어 레지스터(25)의 필드 C의 값 「4」에 대응하는 횟수만큼 데이터 비교를 행하면, 비교 동작을 종료한다. 달리 표현하면, 비교 회로(30)는, 4회째의 데이터 비교에 있어서, 버퍼 A(28)에 저장되는 데이터 A4와 버퍼 B(29)에 저장되는 데이터 B1을 비교하면, 비교 동작을 종료한다.
도 8은 데이터 비교의 또 다른 동작예를 나타낸다. 도 8에 있어서, (a)는 DMA 전송(데이터 전송)을 나타내고, (b)는 버퍼 A(28)에 저장되는 데이터를 나타내고, (c)는 버퍼 B(29)에 저장되는 데이터를 나타내고, (d)는 비교 회로(30)에 있어서의 비교 동작을 나타낸다. 도 8에 있어서의 데이터 전송((a)를 참조)은, 도 4의 (c)에 도시하는 데이터 전송에 대응한다. 이 예에서는, 전송 제어 레지스터(25)에 있어서, 필드 MA의 값이 「2」로 설정되고, 필드 MB의 값이 「2」로 설정되고, 필드 C의 값이 「4」로 설정되어 있다.
DMAC(20)는, 시각 t30에서 데이터 전송을 개시하고, 예를 들어 내장 메모리(15)로부터 데이터 A1을 판독한다((a)를 참조). DMAC(20)는, 시각 t31에서 버퍼 A(28)로 데이터 A1을 전송하여, 버퍼 A(28)에 데이터 A1을 기입한다((b)를 참조). DMAC(20)는, 이어서 시각 t32에서 예를 들어 내장 메모리(15)로부터 데이터 B1을 판독하여((a)를 참조), 시각 t33에서 버퍼 B(29)에 데이터 B1을 전송한다((c)를 참조).
비교 회로(30)는, 버퍼 A(28)로 데이터 A1이 전송되며, 또한 버퍼 B(29)로 데이터 B1이 전송된 후, 시각 t34에서, 1회째의 데이터 비교를 행한다((d)를 참조). 비교 회로(30)는, 1회째의 데이터 비교에서는, 버퍼 A(28)에 저장되는 데이터 A1과 버퍼 B(29)에 저장되는 데이터 B1을 비교한다. 비교 회로(30)는, 데이터 비교를 행한 후, 예를 들어 버퍼 A(28) 및 버퍼 B(29)에 각각 저장되는 데이터를, 다음 데이터가 기입될 때까지 무효 데이터로서 취급한다. 비교 회로(30)는, 데이터 비교를 행하면, 비교 횟수 카운터(32)를 갱신한다. 또한, 비교 회로(30)는, 비교 결과에 따라 조건 일치 횟수 카운터(31)를 갱신한다.
DMAC(20)는, 시각 t35에서 다음 데이터 전송을 개시하고, 예를 들어 내장 메모리(15)로부터 데이터 A2를 판독한다((a)를 참조). DMAC(20)는, 시각 t36에서 버퍼 A(28)로 다음 데이터 A2를 전송한다((b)를 참조). 또한, DMAC(20)는, 시각 t37에서 예를 들어 내장 메모리(15)로부터 다음 데이터 B2를 판독하고((a)를 참조), 시각 t38에서 버퍼 B(29)로 다음 데이터 B2를 전송한다((c)를 참조). 비교 회로(30)는, 버퍼 A(28)로 다음 데이터 A2가 전송되며, 또한 버퍼 B(29)로 다음 데이터 B2가 전송되면, 시각 t39에서 2회째의 데이터 비교를 행한다((d)를 참조). 비교 회로(30)는, 2회째의 데이터 비교에서는, 버퍼 A(28)에 저장되는 데이터 A2와 버퍼 B(29)에 저장되는 데이터 B2를 비교한다. 비교 회로(30)는, 데이터 비교를 행하면, 조건 일치 횟수 카운터(31) 및 비교 횟수 카운터(32)를 갱신한다.
이후 마찬가지로, 버퍼 A(28)에는 데이터 A3 및 A4가 순차적으로 전송되고((b)를 참조), 버퍼 B(29)에는 데이터 B3 및 B4가 순차적으로 전송된다((c)를 참조). 비교 회로(30)는, 버퍼 A(28) 및 버퍼 B(29) 양쪽에 데이터가 전송될 때마다, 버퍼 A(28)로 전송되는 데이터 A3 및 A4와, 버퍼 B(29)로 전송되는 데이터 B3 및 B4를 비교한다((d)를 참조). 비교 회로(30)는, 전송 제어 레지스터(25)의 필드 C의 값 「4」에 대응하는 횟수만큼 데이터 비교를 행하면, 비교 동작을 종료한다. 달리 표현하면, 비교 회로(30)는, 4회째의 데이터 비교에 있어서, 버퍼 A(28)에 저장되는 데이터 A4와 버퍼 B(29)에 저장되는 데이터 B4를 비교하면, 비교 동작을 종료한다.
[비교 회로]
도 9는 비교 회로(30)의 구성예를 도시한다. 비교 회로(30)는, 플래그 레지스터 A(300), 플래그 레지스터 B(301), 비교 실행 신호 생성 회로(302), 클리어 신호 생성 회로(303), 부호 확장 회로 A(304), 부호 확장 회로 B(305) 및 조건 일치 판정 회로(306)를 갖는다. 비교 회로(30) 내의 각 부는, 예를 들어 하드웨어 회로를 포함하고 있다.
플래그 레지스터 A(300)는, 버퍼 A(28)가 유효함을 나타내는 값, 또는 무효임을 나타내는 값을 저장한다. 예를 들어 버퍼 A(28)가 유효, 즉 버퍼 A(28)에 유효한 데이터가 존재하는 경우는, 플래그 레지스터 A(300)에는 값 「1」이 저장된다. 버퍼 A(28)가 무효, 즉 버퍼 A(28)에 유효한 데이터가 존재하지 않는 경우는, 플래그 레지스터 A(300)에는 값 「0」이 저장된다. 플래그 레지스터 A(300)의 값은, 예를 들어 버퍼 A(28)에 대한 기입 신호가 어서트되면, 「1」로 세트된다.
플래그 레지스터 B(301)는, 버퍼 B(29)가 유효함을 나타내는 값, 또는 무효임을 나타내는 값을 저장한다. 예를 들어 버퍼 B(29)가 유효, 즉 버퍼 B(29)에 유효한 데이터가 존재하는 경우는, 플래그 레지스터 B(301)에는 값 「1」이 저장된다. 버퍼 B(29)가 무효, 즉 버퍼 B(29)에 유효한 데이터가 존재하지 않는 경우는, 플래그 레지스터 B(301)에는 값 「0」이 저장된다. 플래그 레지스터 B(301)의 값은, 예를 들어 버퍼 B(29)에 대한 기입 신호가 어서트되면, 「1」로 세트된다.
비교 실행 신호 생성 회로(302)는, 비교 실행 신호를 출력한다. 비교 실행 신호 생성 회로(302)는, 예를 들어 플래그 레지스터 A(300)와, 플래그 레지스터 B(301)와, 비교 제어 레지스터(27)의 필드 ST(도 5의 (b)를 참조)의 논리곱을 비교 실행 신호로서 출력한다. 비교 실행 신호 생성 회로(302)는, 비교 제어 레지스터(27)의 필드 ST의 값이 비교 개시를 나타내는 「1」이고, 플래그 레지스터 A(300의 값이 버퍼 유효를 나타내는 값 「1」이며, 또한 플래그 레지스터 B(301)의 값이 버퍼 유효를 나타내는 「1」인 경우에, 데이터 비교가 실행된다는 취지를 나타내는 비교 실행 신호 「1」을 출력한다. 비교 실행 신호 생성 회로(302)는, 그 이외의 경우는, 데이터 비교가 실행되지 않는다는 취지를 나타내는 비교 실행 신호 「0」을 출력한다. 비교 횟수 카운터(32)는, 비교 실행 신호가 값 「0」으로부터 값 「1」로 변화할 때마다, 카운트값을 1씩 인크리먼트한다.
클리어 신호 생성 회로(303)는, 플래그 레지스터 A(300) 및 플래그 레지스터 B(301)에 설정된, 데이터가 유효함을 나타내는 값을 클리어하기 위한 클리어 신호를 생성한다. 클리어 신호 생성 회로(303)는, 채널 A 및 채널 B에 있어서 전송 횟수 C의 데이터 전송이 행하여지는 경우는, 데이터 비교가 실행될 때마다 플래그 레지스터 A(300) 및 플래그 레지스터 B(301)에 클리어 신호를 출력한다. 클리어 신호 생성 회로(303)는, 채널 A 및 채널 B에 있어서의 데이터 전송 횟수가 0회 또는 1회의 경우는, 최후의 데이터 비교가 실행된 후, 플래그 레지스터 A(300) 및 플래그 레지스터 B(301)에 클리어 신호를 출력한다.
클리어 신호 생성 회로(303)는, 예를 들어 전송 제어 레지스터(25)의 필드 MA(도 3의 (b)를 참조)의 값이, 전송 횟수 C를 나타내는 「2」인 경우는, 비교 실행 신호의 값이 「0」으로부터 「1」로 변화하면, 플래그 레지스터 A(300)에 클리어 신호를 출력한다. 또한, 클리어 신호 생성 회로(303)는, 전송 제어 레지스터(25)의 필드 MA의 값이 「2」 이외인 경우는, 비교 횟수 카운터(32)의 카운트값이 전송 제어 레지스터(25)의 필드 C의 값보다도 하나(1) 작은 값인 경우에, 비교 실행 신호의 값이 「0」으로부터 「1」로 변화하면, 플래그 레지스터 A(300)에 클리어 신호를 출력한다.
클리어 신호 생성 회로(303)는, 예를 들어 전송 제어 레지스터(25)의 필드 MB의 값이 「2」인 경우는, 비교 실행 신호의 값이 「0」으로부터 「1」로 변화하면, 플래그 레지스터 B(301)에 클리어 신호를 출력한다. 또한, 클리어 신호 생성 회로(303)는, 전송 제어 레지스터(25)의 필드 MB의 값이 「2」 이외인 경우는, 비교 횟수 카운터(32)의 값이 전송 제어 레지스터(25)의 필드 C의 값보다도 하나(1) 작은 값인 경우에, 비교 실행 신호의 값이 「0」으로부터 「1」로 변화하면, 플래그 레지스터 B(301)에 클리어 신호를 출력한다.
부호 확장 회로 A(304)는, 버퍼 A(28)에 저장되는 데이터를, 소정 비트수의 데이터, 예를 들어 65비트의 데이터로 부호 확장한다. 부호 확장 회로 B(305)는, 버퍼 B(29)에 저장되는 데이터를, 예를 들어 65비트의 데이터로 부호 확장한다. 버퍼 A(28) 및 버퍼 B(29)에 저장되는 데이터의 베리에이션은, 예를 들어 데이터 사이즈가 8비트, 16비트, 32비트 및 64비트의 4가지가 있고, 데이터 형식이 예를 들어 부호없음, 2의 보수 및 부동 소수점의 3가지가 있다. 부호 확장 회로 A(304) 및 부호 확장 회로 B(305)는, 데이터 사이즈 및 데이터 형식이 상이한 데이터를, 예를 들어 65비트의 2의 보수로 표현되는 데이터로 통일함으로써, 데이터 비교를 용이하게 한다.
조건 일치 판정 회로(306)는, 부호 확장 회로 A(304)에서 부호 확장된 데이터(데이터 A)와 부호 확장 회로 B(305)에서 부호 확장된 데이터(데이터 B)를 비교한다. 조건 일치 판정 회로(306)는, 플래그 레지스터 A(300) 및 플래그 레지스터 B(301)의 값이 「1」인 경우에, 데이터 A와 데이터 B를 비교한다. 그 때, 조건 일치 판정 회로(306)는, 비교 제어 레지스터(27)의 필드 C의 값에 따른 비교 조건 및 필드 M의 값에 따른 비교 방법으로, 데이터 A와 데이터 B를 비교한다.
조건 일치 판정 회로(306)는, 예를 들어 비교 제어 레지스터(27)의 필드 M의 값이 오차 허용 비교를 나타내는 값 「1」인 경우에는, 필드 AE의 값을 허용 오차로 하여, 오차를 허용한 데이터 비교를 행한다. 조건 일치 판정 회로(306)는, 데이터 비교에 있어서, 데이터 A와 데이터 B의 관계가, 필드 C의 값으로 나타나는 비교 조건에 일치하는지 여부를 판정한다. 조건 일치 판정 회로(306)는, 예를 들어 데이터 A와 데이터 B의 차를 구하고, 차의 크기 및 그의 부호에 따라, 비교 조건에 일치하는지 여부를 판정한다. 조건 일치 판정 회로(306)는, 비교 조건에 일치한다고 판정한 경우는, 조건 일치 신호를 출력한다. 조건 일치 횟수 카운터는, 조건 일치 신호가 출력될 때마다, 카운트값을 1씩 인크리먼트한다.
[부호 확장의 구체예]
도 10의 (a) 내지 (d)는, 부호없음 데이터에 대한 부호 확장의 구체예를 나타낸다. 여기에서는, 버퍼 A(28) 및 버퍼 B(29)에 저장되는 데이터를, 간단히 버퍼 데이터라고 칭한다. 또한, 부호 확장 후의 데이터의 데이터 사이즈는 65비트이며, 이 데이터는 2의 보수로 표현되는 것으로 한다.
도 10의 (a)는, 버퍼 데이터의 데이터 사이즈가 8비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로 A(304) 및 부호 확장 회로 B(305)(이하, 간단히 부호 확장 회로라고도 칭한다)는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 8비트라는 취지를 나타내는 값 「0」이며, 또한 필드 DF가 부호없음을 나타내는 값 「0」인 경우, 도 10의 (a)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 7을 부호 확장 후의 데이터의 비트 0 내지 7에 배치한다. 또한, 부호 확장 회로는, 부호 확장 후의 데이터의 비트 8 내지 64를 모두 비트값 「0」으로 한다.
도 10의 (b)는, 데이터 사이즈가 16비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 16비트라는 취지를 나타내는 값 「1」이며, 또한 필드 DF가 부호없음을 나타내는 값 「0」인 경우, 도 10의 (b)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 15를 부호 확장 후의 데이터의 비트 0 내지 15에 배치한다. 또한, 부호 확장 회로는, 부호 확장 후의 데이터의 비트 16 내지 64를 모두 비트값 「0」으로 한다.
도 10의 (c)는, 데이터 사이즈가 32비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 32비트라는 취지를 나타내는 값 「2」이며, 또한 필드 DF가 부호없음을 나타내는 값 「0」인 경우, 도 10의 (c)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 31을 부호 확장 후의 데이터의 비트 0 내지 31에 배치한다. 또한, 부호 확장 회로는, 부호 확장 후의 데이터의 비트 32 내지 64를 모두 비트값 「0」으로 한다.
도 10의 (d)는 데이터 사이즈가 64비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 64비트라는 취지를 나타내는 값 「3」이며, 또한 필드 DF가 부호없음을 나타내는 값 「0」인 경우, 도 10의 (d)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 63을 부호 확장 후의 데이터의 비트 0 내지 63에 배치한다. 또한, 부호 확장 회로는, 부호 확장 후의 데이터의 비트 64를 비트값 「0」으로 한다.
도 11의 (a) 내지 (d)는, 2의 보수로 표현되는 데이터에 대한 부호 확장의 구체예를 나타낸다. 도 11의 (a)는, 데이터 사이즈가 8비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 8비트라는 취지를 나타내는 값 「0」이며, 또한 필드 DF가 2의 보수를 나타내는 값 「1」인 경우, 도 11의 (a)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 7을 부호 확장 후의 데이터의 비트 0 내지 7에 배치한다. 또한, 부호 확장 회로는, 부호 확장 후의 데이터의 비트 8 내지 64를, 모두 버퍼 데이터의 비트 7의 값으로 한다.
도 11의 (b)는, 데이터 사이즈가 16비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 16비트라는 취지를 나타내는 값 「1」이며, 또한 필드 DF가 2의 보수를 나타내는 값 「1」인 경우, 도 11의 (b)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 15를 부호 확장 후의 데이터의 비트 0 내지 15에 배치한다. 또한, 부호 확장 회로는, 부호 확장 후의 데이터의 비트 16 내지 64를, 모두 버퍼 데이터의 비트 15의 값으로 한다.
도 11의 (c)는 데이터 사이즈가 32비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 32비트라는 취지를 나타내는 값 「2」이며, 또한 필드 DF가 2의 보수를 나타내는 값 「1」인 경우, 도 11의 (c)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 31을 부호 확장 후의 데이터의 비트 0 내지 31에 배치한다. 또한, 부호 확장 회로는, 부호 확장 후의 데이터의 비트 32 내지 64를, 모두 버퍼 데이터의 비트 31의 값으로 한다.
도 11의 (d)는 데이터 사이즈가 64비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 64비트라는 취지를 나타내는 값 「3」이며, 또한 필드 DF가 2의 보수를 나타내는 값 「1」인 경우, 도 11의 (d)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 63을 부호 확장 후의 데이터의 비트 0 내지 63에 배치한다. 또한, 부호 확장 회로는, 부호 확장 후의 데이터의 비트 64를, 버퍼 데이터의 비트 63의 값으로 한다.
도 12의 (a) 내지 (d)는, 부동 소수점으로 표현되는 데이터에 대한 부호 확장의 구체예를 나타낸다. 도 12의 (a)는, 데이터 사이즈가 8비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 8비트라는 취지를 나타내는 값 「0」이며, 또한 필드 DF가 부동 소수점을 나타내는 값 「2」인 경우, 먼저, 도 12의 (a)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 6을 부호 확장 후의 데이터의 비트 0 내지 6에 배치하고, 부호 확장 후의 데이터의 비트 7 내지 64를, 모두 값 「0」으로 한다. 이어서, 부호 확장 회로는, 버퍼 데이터의 비트 7의 값을 조사한다. 부호 확장 회로는, 비트 7의 값이 「1」인 경우는, 상기 65비트의 데이터를 반전하고, 비트 0에 값 「1」을 더한 것을, 부호 확장 후의 데이터로 한다.
도 12의 (b)는, 데이터 사이즈가 16비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 16비트라는 취지를 나타내는 값 「1」이며, 또한 필드 DF가 부동 소수점을 나타내는 값 「2」인 경우, 먼저, 도 12의 (b)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 14를 부호 확장 후의 데이터의 비트 0 내지 14에 배치하고, 부호 확장 후의 데이터의 비트 15 내지 64를, 모두 값 「0」으로 한다. 이어서, 부호 확장 회로는, 버퍼 데이터의 비트 15의 값을 조사한다. 부호 확장 회로는, 비트 15의 값이 「1」인 경우는, 상기 65비트의 데이터를 반전하고, 비트 0에 값 「1」을 더한 것을 부호 확장 후의 데이터로 한다.
도 12의 (c)는, 데이터 사이즈가 32비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 32비트라는 취지를 나타내는 값 「2」이며, 또한 필드 DF가 부동 소수점을 나타내는 값 「2」인 경우, 먼저, 도 12의 (c)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 30을 부호 확장 후의 데이터의 비트 0 내지 30에 배치하고, 부호 확장 후의 데이터의 비트 31 내지 64를, 모두 값 「0」으로 한다. 이어서, 부호 확장 회로는, 버퍼 데이터의 비트 31의 값을 조사한다. 부호 확장 회로는, 비트 31의 값이 「1」인 경우는, 상기 65비트의 데이터를 반전하고, 비트 0에 값 「1」을 더한 것을 부호 확장 후의 데이터로 한다.
도 12의 (d)는, 데이터 사이즈가 64비트인 경우의 부호 확장의 예를 나타낸다. 부호 확장 회로는, 비교 제어 레지스터(27)의 필드 DS가 데이터 사이즈가 64비트라는 취지를 나타내는 값 「3」이며, 또한 필드 DF가 부동 소수점을 나타내는 값 「2」인 경우, 먼저, 도 12의 (d)에 도시되는 바와 같이, 버퍼 데이터의 비트 0 내지 62를 부호 확장 후의 데이터의 비트 0 내지 62에 배치하고, 부호 확장 후의 데이터의 비트 63 및 64를 값 「0」으로 한다. 이어서, 부호 확장 회로는, 버퍼 데이터의 비트 63의 값을 조사한다. 부호 확장 회로는, 비트 63의 값이 「1」인 경우는, 상기 65비트의 데이터를 반전하고, 비트 0에 값 「1」을 더한 것을 부호 확장 후의 데이터로 한다.
[조건 일치 판정 회로]
도 13은 조건 일치 판정 회로(306)의 기능표를 나타낸다. 도 13에 도시하는 표의 No.0 내지 No.5에는, 비교 방법이 단순 비교, 즉 비교 제어 레지스터(27)의 필드 M이 값 「0」인 경우에 조건 일치 신호가 「1」이 되기 위한 데이터 A 및 데이터 B의 관계가 나타나 있다. 또한, No.6 내지 No.11에는, 비교 방법이 오차 허용 비교, 즉 비교 제어 레지스터(27)의 필드 M의 값이 「1」인 경우에 조건 일치 신호가 「1」이 되기 위한 데이터 A, 데이터 B 및 필드 AE의 값(이하, 허용 오차 AE라고도 칭한다)이 나타나 있다. 데이터 A, 데이터 B 및 허용 오차 AE의 관계가 No.0 내지 No.11에 나타나는 관계에 해당하지 않는 경우, No.12로서 나타내고 있는 바와 같이, 조건 일치 신호는 「0」이 된다.
비교 방법이 단순 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「0」인 경우, 비교 조건은 데이터 A와 데이터 B가 동등하며, 조건 일치 판정 회로(306)는, 데이터 A=데이터 B인 경우, 조건 일치 신호 「1」을 출력한다(No.0을 참조). 조건 일치 판정 회로(306)는, 예를 들어 데이터 A와 데이터 B의 차가 0인 경우, 조건 일치 신호 「1」을 출력한다. 조건 일치 판정 회로(306)는, 데이터 A=데이터 B가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
비교 방법이 단순 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「1」인 경우, 비교 조건은 데이터 A와 데이터 B가 동등하지 않으며, 조건 일치 판정 회로(306)는, 데이터 A≠데이터 B의 경우, 조건 일치 신호 「1」을 출력한다(No.1을 참조). 조건 일치 판정 회로(306)는, 예를 들어 데이터 A와 데이터 B의 차가 0이 아닌 경우, 조건 일치 신호 「1」을 출력한다. 조건 일치 판정 회로(306)는, 데이터 A≠데이터 B가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
비교 방법이 단순 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「2」인 경우, 비교 조건은 데이터 A가 데이터 B와 동등하거나 크며, 조건 일치 판정 회로(306)는, 데이터 A≥데이터 B의 경우, 조건 일치 신호 「1」을 출력한다(No.2를 참조). 조건 일치 판정 회로(306)는, 예를 들어 데이터 A로부터 데이터 B를 감산한 차가 0이거나, 또는 차의 부호가 양인 경우, 조건 일치 신호 「1」을 출력한다. 조건 일치 판정 회로(306)는, 데이터 A≥데이터 B가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
비교 방법이 단순 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「3」인 경우, 비교 조건은 데이터 A가 데이터 B보다 크고, 조건 일치 판정 회로(306)는, 데이터 A>데이터 B의 경우, 조건 일치 신호 「1」을 출력한다(No.3을 참조). 조건 일치 판정 회로(306)는, 예를 들어 데이터 A로부터 데이터 B를 감산한 차의 절댓값이 0보다 크며, 또한 차의 부호가 양인 경우, 조건 일치 신호 「1」을 출력한다. 조건 일치 판정 회로(306)는, 데이터 A>데이터 B가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
비교 방법이 단순 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「4」인 경우, 비교 조건은 데이터 A가 데이터 B와 동등하거나 작으며, 조건 일치 판정 회로(306)는, 데이터 A≤데이터 B의 경우, 조건 일치 신호 「1」을 출력한다(No.4를 참조). 조건 일치 판정 회로(306)는, 예를 들어 데이터 A로부터 데이터 B를 감산한 차가 0이거나, 또는 차의 부호가 음인 경우, 조건 일치 신호 「1」을 출력한다. 조건 일치 판정 회로(306)는, 데이터 A≤데이터 B가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
비교 방법이 단순 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「5」인 경우, 비교 조건은 데이터 A가 데이터 B보다 작으며, 조건 일치 판정 회로(306)는, 데이터 A<데이터 B의 경우, 조건 일치 신호 「1」을 출력한다(No.5를 참조). 조건 일치 판정 회로(306)는, 예를 들어 데이터 A로부터 데이터 B를 감산한 차의 절댓값이 0보다도 크며, 또한 차의 부호가 음인 경우, 조건 일치 신호 「1」을 출력한다. 조건 일치 판정 회로(306)는, 데이터 A<데이터 B가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
비교 방법이 오차 허용 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「0」인 경우, 비교 조건은 오차를 허용한 데다가 데이터 A와 데이터 B가 동등하며, 조건 일치 판정 회로(306)는, |데이터 A-데이터 B|≤허용 오차 AE의 경우, 조건 일치 신호 「1」을 출력한다(No.6을 참조). 조건 일치 판정 회로(306)는, |데이터 A-데이터 B|≤허용 오차 AE가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
비교 방법이 오차 허용 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「1」인 경우, 비교 조건은 오차를 허용한 데다가 데이터 A와 데이터 B가 동등하지 않으며, 조건 일치 판정 회로(306)는, |데이터 A-데이터 B|>허용 오차 AE의 경우, 조건 일치 신호 「1」을 출력한다(No.7을 참조). 조건 일치 판정 회로(306)는, |데이터 A-데이터 B|>허용 오차 AE가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
비교 방법이 오차 허용 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「2」인 경우, 비교 조건은 오차를 허용한 데다가 데이터 A가 데이터 B와 동등하거나 크며, 조건 일치 판정 회로(306)는, 데이터 A≥데이터 B-허용 오차 AE의 경우, 조건 일치 신호 「1」을 출력한다(No.8을 참조). 예를 들어, 조건 일치 판정 회로(306)는, 데이터 A가, 데이터 B로부터 허용 오차를 감산한 값 이상인 경우, 조건 일치 신호 「1」을 출력한다. 조건 일치 판정 회로(306)는, 데이터 A≥데이터 B-허용 오차 AE가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
비교 방법이 오차 허용 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「3」인 경우, 비교 조건은 오차를 허용한 데다가 데이터 A가 데이터 B보다 크며, 조건 일치 판정 회로(306)는, 데이터 A>데이터 B-허용 오차 AE의 경우, 조건 일치 신호 「1」을 출력한다(No.9를 참조). 예를 들어, 조건 일치 판정 회로(306)는, 데이터 A가, 데이터 B로부터 허용 오차를 감산한 값보다도 큰 경우, 조건 일치 신호 「1」을 출력한다. 조건 일치 판정 회로(306)는, 데이터 A>데이터 B-허용 오차 AE가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
비교 방법이 오차 허용 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「4」인 경우, 비교 조건은 오차를 허용한 데다가 데이터 A가 데이터 B와 동등하거나 작으며, 조건 일치 판정 회로(306)는, 데이터 A≤데이터 B+허용 오차 AE의 경우, 조건 일치 신호 「1」을 출력한다(No.10을 참조). 예를 들어, 조건 일치 판정 회로(306)는, 데이터 A가, 데이터 B에 허용 오차를 가산한 값 이하인 경우, 조건 일치 신호 「1」을 출력한다. 조건 일치 판정 회로(306)는, 데이터 A≤데이터 B+허용 오차 AE가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
비교 방법이 오차 허용 비교의 경우이며, 또한 비교 제어 레지스터(27)의 필드 C의 값이 「5」인 경우, 비교 조건은 오차를 허용한 데다가 데이터 A가 데이터 B보다 작으며, 조건 일치 판정 회로(306)는, 데이터 A<데이터 B+허용 오차 AE의 경우, 조건 일치 신호 「1」을 출력한다(No.11을 참조). 예를 들어, 조건 일치 판정 회로(306)는, 데이터 A가, 데이터 B에 허용 오차를 가산한 값보다도 작은 경우, 조건 일치 신호 「1」을 출력한다. 조건 일치 판정 회로(306)는, 데이터 A<데이터 B+허용 오차 AE가 아닌 경우는, 조건 일치 신호 「0」을 출력한다(No.12를 참조).
도 13에 도시하는 기능표에 따른 조건 일치 판정을 행하는 하드웨어 회로는, 예를 들어 도 13에 도시되는 기능표를 하드웨어 기술 언어로 case문 등을 사용하여 기술하고, 논리 합성을 행함으로써, 생성할 수 있다.
[동작예]
도 14는 단순 비교를 행한 경우의 조건 일치 횟수 카운터(31)의 값을 나타낸다. 여기에서는, 비교 조건은 데이터 A=데이터 B이며, 버퍼 A(28) 및 버퍼 B(29)에 저장되는 데이터의 데이터 사이즈는 8비트이며, 또한 데이터 형식은 2의 보수인 경우를 생각한다. 도 14에는 채널 A와 채널 B에 있어서 데이터 전송이 각각 6회 행해진 경우에 있어서의 버퍼 A(28) 및 버퍼 B(29)에 각각 저장되는 데이터(10진수)와, 조건 일치 횟수 카운터의 값이 나타나 있다.
조건 일치 판정 회로(306)는, 1회째 및 2회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터(값)와 버퍼 B(29)에 저장되는 값이 상이하기 때문에, 조건 일치 신호 「0」을 출력한다. 이 경우, 조건 일치 횟수 카운터(31)는 카운트 업을 행하지 않아, 카운트값은 초기값 「0」인 상태이다. 조건 일치 판정 회로(306)는, 3회째의 비교에 있어서 버퍼 A(28)에 저장되는 값과 버퍼 B(29)에 저장되는 값이 일치한다고 판정하여, 조건 일치 신호 「1」을 출력한다. 조건 일치 횟수 카운터(31)는, 조건 일치 신호 「1」이 출력되면, 카운트값을 「1」로 카운트 업한다.
조건 일치 판정 회로(306)는, 4회째 및 5회째의 비교에서는, 버퍼 A(28)에 저장되는 값과 버퍼 B(29)에 저장되는 값이 상이하기 때문에, 조건 일치 신호 「0」을 출력하고, 조건 일치 횟수 카운터(31)의 카운트값은 「1」인 상태이다. 조건 일치 판정 회로(306)는, 6회째의 비교에 있어서 버퍼 A(28)에 저장되는 값과 버퍼 B(29)에 저장되는 값이 일치한다고 판정하여, 조건 일치 신호 「1」을 출력한다. 조건 일치 횟수 카운터(31)는, 조건 일치 신호 「1」이 출력되면, 카운트값을 「2」로 카운트 업한다.
도 15는 오차 허용 비교를 행한 경우의 조건 일치 횟수 카운터(31)의 값을 나타낸다. 여기에서는, 비교 조건은 데이터 A=데이터 B이며, 버퍼 A(28) 및 버퍼 B(29)에 저장되는 데이터의 데이터 사이즈는 8비트이며, 또한 데이터 형식은 2의 보수인 경우를 생각한다. 또한, 허용 오차 AE는 「3」이라고 하자. 도 15에는, 도 14의 예와 마찬가지로, 채널 A와 채널 B에 있어서 데이터 전송이 각각 6회 행해진 경우에 있어서의 버퍼 A(28) 및 버퍼 B(29)에 각각 저장되는 데이터(10진수)와, 조건 일치 횟수 카운터의 값이 나타나 있다.
조건 일치 판정 회로(306)는, 1회째의 비교에서는, 버퍼 A(28)에 저장되는 값과 버퍼 B(29)에 저장되는 값이 상이하며, 또한 그 차의 절댓값이 허용 오차 AE 「3」을 초과하고 있기 때문에, 조건 일치 신호 「0」을 출력한다. 이 경우, 조건 일치 횟수 카운터(31)는 카운트 업을 행하지 않아, 카운트값은 초기값 「0」인 상태이다. 조건 일치 판정 회로(306)는, 2회째의 비교에서는, 버퍼 A(28)에 저장되는 값과 버퍼 B(29)에 저장되는 값이 상이하기는 하지만, 그 차의 절댓값이 허용 오차 AE 「3」 이하이기 때문에, 조건 일치 신호 「1」을 출력한다. 조건 일치 횟수 카운터(31)는, 조건 일치 신호 「1」이 출력되면, 카운트값을 「1」로 카운트 업한다.
조건 일치 판정 회로(306)는, 3회째의 비교에서는, 버퍼 A(28)에 저장되는 값과 버퍼 B(29)에 저장되는 값이 동등하기 때문에, 조건 일치 신호 「1」을 출력한다. 또한, 조건 일치 판정 회로(306)는, 4회째의 비교에서는, 버퍼 A(28)에 저장되는 값과 버퍼 B(29)에 저장되는 값이 상이하기는 하지만, 그 차의 절댓값이 허용 오차 AE 「3」 이하이기 때문에, 조건 일치 신호 「1」을 출력한다. 조건 일치 횟수 카운터(31)는, 3회째의 비교에서 조건 일치 신호 「1」이 출력되면 카운트값을 「2」로 카운트 업한다. 또한, 조건 일치 횟수 카운터(31)는, 4회째의 비교에서 조건 일치 신호 「1」이 출력되면 카운트값을 「3」으로 카운트 업한다.
조건 일치 판정 회로(306)는, 5회째의 비교에서는, 버퍼 A(28)에 저장되는 값과 버퍼 B(29)에 저장되는 값이 상이하며, 또한 그 차의 절댓값이 허용 오차 AE 「3」을 초과하고 있기 때문에, 조건 일치 신호 「0」을 출력하고, 조건 일치 횟수 카운터(31)의 카운트값은 「3」인 상태이다. 조건 일치 판정 회로(306)는, 6회째의 비교에서는, 버퍼 A(28)에 저장되는 값과 버퍼 B(29)에 저장되는 값이 동등하다고 판정하여, 조건 일치 신호 「1」을 출력한다. 조건 일치 횟수 카운터(31)는, 조건 일치 신호 「1」이 출력되면, 카운트값을 「4」로 카운트 업한다.
[인터럽트 제어 레지스터]
도 16의 (a) 및 (b)는, 인터럽트 제어 레지스터(33)의 사양의 일례를 나타낸다. 도 16의 (a)는, 인터럽트 제어 레지스터(33)의 필드의 구성예를 나타내고, 도 16의 (b)는, 각 필드의 상세를 나타낸다. 도 16의 (a)에 도시하는 바와 같이, 인터럽트 제어 레지스터(33)는, 예를 들어 필드 IE, CS0, CS1, IC0, IC1을 갖는다. 또한, 도 16의 (a)에 도시되는 인터럽트 제어 레지스터(33)의 필드 구성은 예시이며, 인터럽트 제어 레지스터(33)의 필드 구성은 도시된 것에는 한정되지는 않는다.
도 16의 (b)에 도시하는 바와 같이, 필드 IE(Interrupt Enable)는, 인터럽트 요구의 유무를 설정하기 위한 필드이다. 필드 IE에는, 「0」 또는 「1」의 값이 설정된다. 값 「0」은 인터럽트 요구를 하지 않음을 나타내고, 값 「1」은 인터럽트 요구를 함을 나타낸다. 인터럽트 요구 회로(34)(도 1을 참조)는, 필드 IE에 설정되는 값이 「1」인 경우에 인터럽트 컨트롤러(19)에 대하여 인터럽트를 요구한다. 인터럽트 요구 회로(34)는, 필드 IE에 설정되는 값이 「0」인 경우는, 인터럽트 컨트롤러(19)에 대하여 인터럽트를 요구하지 않는다.
필드 CS0(Counter Select 0)는, 인터럽트 조건에 비교 횟수 카운터(32)를 사용하는 것을 설정하기 위한 필드(카운터 선택 필드 0)이다. 필드 CS0에는 「0」 또는 「1」의 값이 설정된다. 값 「0」은, 인터럽트 조건에 비교 횟수 카운터(32)를 사용하지 않음을 나타낸다. 값 「1」은, 인터럽트 조건에 비교 횟수 카운터(32)를 사용함을 나타낸다. 필드 IC0(Interrupt Count 0)는, 인터럽트를 발생시키는 비교 횟수 카운터(32)의 카운트값을 설정하기 위한 필드(카운트값 설정 필드0)이다. 인터럽트 요구 회로(34)는, 필드 CS0의 값이 「1」이며, 또한 비교 횟수 카운터(32)의 카운트값이 필드 IC0의 값과 동등한 경우에, 인터럽트 컨트롤러(19)에 인터럽트를 요구한다.
필드 CS1(Counter Select 1)은, 인터럽트 조건에 조건 일치 횟수 카운터(31)를 사용하는 것을 설정하기 위한 필드(카운터 선택 필드 1)이다. 필드 CS1에는, 「0」 또는 「1」의 값이 설정된다. 값 「0」은, 인터럽트 조건에 조건 일치 횟수 카운터(31)를 사용하지 않음을 나타낸다. 값 「1」은, 인터럽트 조건에 조건 일치 횟수 카운터(31)를 사용함을 나타낸다. 필드 IC1(Interrupt Count1)은, 인터럽트를 발생시키는 조건 일치 횟수 카운터(31)의 카운트값을 설정하기 위한 필드(카운트값 설정 필드 1)이다. 인터럽트 요구 회로(34)는, 필드 CS1의 값이 「1」이며, 또한 조건 일치 횟수 카운터(31)의 카운트값이 필드 IC1의 값과 동등한 경우에, 인터럽트 컨트롤러(19)에 인터럽트를 요구한다.
[동작예]
도 17은 단순 비교를 행한 경우의 조건 일치 횟수 카운터(31)의 값을 나타낸다. 여기에서는, 비교 조건은 데이터 A≠데이터 B이며, 버퍼 A(28) 및 버퍼 B(29)에 저장되는 데이터의 데이터 사이즈는 8비트이며, 또한 데이터 형식은 2의 보수인 경우를 생각한다. 또한, 인터럽트 조건에 조건 일치 횟수 카운터(31)를 사용하여, 인터럽트를 발생시키는 조건 일치 횟수 카운터(31)의 카운트값이 「1」인 경우를 생각한다. 즉, 인터럽트 제어 레지스터(33)에 있어서, 필드 IE의 값이 「1」이고, 필드 CS0의 값이 「0」이고, 필드 CS1의 값이 「1」이고, 필드 IC0의 값이 「0」이며, 또한 필드 IC1의 값이 「1」인 경우를 생각한다.
조건 일치 판정 회로(306)는, 1회째, 2회째 및 3회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터(값)와 버퍼 B(29)에 저장되는 값이 동등하기 때문에, 조건 일치 신호 「0」을 출력한다. 이 경우, 조건 일치 횟수 카운터(31)는 카운트 업을 행하지 않아, 카운트값은 초기값 「0」인 상태이다. 조건 일치 판정 회로(306)는, 4회째의 비교에 있어서 버퍼 A(28)에 저장되는 값과 버퍼 B(29)에 저장되는 값이 동등하지 않다고 판정하여, 조건 일치 신호 「1」을 출력한다. 조건 일치 횟수 카운터(31)는, 조건 일치 신호 「1」이 출력되면, 카운트값을 「1」로 카운트 업한다.
인터럽트 요구 회로(34)는, 조건 일치 횟수 카운터(31)의 카운트값이 「1」이 되면, 인터럽트 조건이 성립되었다고 판단한다. 인터럽트 요구 회로(34)는, 인터럽트 조건이 성립되었다고 판단하면, 인터럽트 컨트롤러(19)에 인터럽트 요구를 송신한다. 인터럽트 요구 회로(34)는, 인터럽트 조건이 성립되었다고 판단한 경우, 비교 회로(30)에 제어 신호를 송신하여, 비교 회로(30)에 있어서의 데이터 비교를 정지시켜도 된다.
[동작 수순]
도 18은 CPU 코어 A(12) 또는 CPU 코어 B(13)가 실행하는 설정 동작의 수순을 나타낸다. 이하에서는, CPU 코어 A(12)가 DMAC(20)의 설정 및 메모리 비교 회로(23)에 있어서의 각종 레지스터의 설정을 행하는 것으로서 설명하지만, 설정 동작은 CPU 코어 B(13)가 행해도 된다.
CPU 코어 A(12)는, 먼저, DMAC(20)의 채널 A의 설정을 행한다(스텝 A1). CPU 코어 A(12)는, 예를 들어 DMAC(20)의 레지스터(도 2를 참조)에 액세스하여, 채널 A에 대하여, 전송원의 데이터가 저장되어 있는 메모리의 개시 어드레스, 어드레스의 갱신 방법, 전송 횟수 및 데이터 사이즈 등을 설정한다. CPU 코어 A(12)는, 스텝 A1에서는, 예를 들어 도 2의 데이터 세트 A의 선두 어드레스를 DMA 전송의 개시 어드레스로서 설정하고, 전송 횟수 4회를 설정한다.
CPU 코어 A(12)는, 이어서, DMAC(20)의 채널 B의 설정을 행한다(스텝 A2). CPU 코어 A(12)는, 예를 들어 DMAC(20)의 레지스터에 액세스하여, 채널 B에 대하여, 전송원의 데이터가 저장되어 있는 메모리의 개시 어드레스, 어드레스의 갱신 방법, 전송 횟수 및 데이터 사이즈 등을 설정한다. CPU 코어 A(12)는, 스텝 A2에서는, 예를 들어 도 2의 데이터 세트 B의 선두 어드레스를 DMA 전송의 개시 어드레스로서 설정하고, 전송 횟수 4회를 설정한다. 채널 A 및 채널 B의 한쪽에 있어서, DMA 전송을 사용하지 않고, 예를 들어 CPU 코어 A(12)가 버퍼에 데이터를 기입하는 경우에는, DMA 전송을 사용하지 않는 채널에 대하여, DMAC(20)의 설정은 불필요하다.
계속하여, CPU 코어 A(12)는, 메모리 비교 회로(23)의 비교 제어 레지스터(27)의 설정을 행한다(스텝 A3). CPU 코어 A(12)는, 스텝 A3에서는, 비교 회로(30)에서 실시되는 데이터 비교의 비교 조건의 설정, 비교 방법의 설정 및 오차 허용 비교의 경우의 허용 오차의 설정 등을 행한다(도 5의 (b)도 참조). 또한, CPU 코어 A(12)는, 버퍼 A(28) 및 버퍼 B(29)에 저장되는 데이터의 데이터 사이즈의 설정 및 데이터 형식의 설정 등을 행한다.
CPU 코어 A(12)는, 메모리 비교 회로(23)의 인터럽트 제어 레지스터(33)의 설정을 행한다(스텝 A4). CPU 코어 A(12)는, 스텝 A4에서는, 인터럽트를 요구할지 여부, 인터럽트를 요구하는 경우에 사용하는 카운터 및 인터럽트 조건이 되는 카운트값 등을 설정한다(도 16의 (b)도 참조).
CPU 코어 A(12)는, 메모리 비교 회로(23)의 전송 제어 레지스터(25)의 설정을 행한다(스텝 A5). CPU 코어 A(12)는, 스텝 A5에서는, 스텝 A1 및 A2에서 DMAC(20)에 설정한 DMA 전송의 내용에 따라, 채널 A의 전송 모드의 설정, 채널 B의 전송 모드의 설정 및 전송 횟수의 설정을 행한다(도 3의 (b)도 참조).
CPU 코어 A(12)가, 스텝 A5에서 전송 제어 레지스터(25)의 필드 ST에 값 「1」을 설정하면, 메모리 비교 회로(23)의 DMA 요구 회로(26)가 DMAC(20)에 DMA 요구를 출력하여, 버퍼 A(28) 및/또는 버퍼 B(29)에 대한 데이터 전송이 개시된다. 메모리 비교 회로(23)는, 예를 들어 버퍼 A(28) 및 버퍼 B(29)에 데이터가 전송될 때마다, 스텝 A3에서 설정된 비교 조건 등에 기초하여 데이터 비교를 행한다. 또한, 메모리 비교 회로(23)는, 스텝 A4에서 설정된 인터럽트 조건 등에 기초하여, 인터럽트 컨트롤러(19)에 인터럽트를 요구한다.
[사용예]
MCU(10)에 있어서의 메모리 비교 회로(23)의 사용예를 설명한다. 메모리 비교 회로(23)는, 예를 들어 동일한 처리를 실행하는 CPU 코어 A(12) 및 CPU 코어 B(13)의 동작을 검증할 목적으로 사용할 수 있다. CPU 코어 A(12)는, 예를 들어 어떤 처리를 실행하고, 그 처리 결과로서 데이터 세트 A를 내장 메모리(15) 등에 출력한다(도 2를 참조). 또한, CPU 코어 B(13)는, CPU 코어 A(12)에 있어서 실행되는 것과 동일한 처리를 실행하고, 그 처리 결과로서 데이터 세트 B를 내장 메모리(15) 등에 출력한다. CPU 코어 A(12) 및 CPU 코어 B(13)는 동일한 처리를 실행하기 때문에, 2개의 CPU 코어가 정상적으로 동작하고 있는 경우는, 데이터 세트 A의 각 데이터와, 데이터 세트 B의 각 데이터는 동일값이 된다.
예를 들어 CPU 코어 A(12)는, 처리를 종료하면, DMAC(20)에 액세스하여, 데이터 세트 A의 버퍼 A(28)에 대한 DMA 전송 및 데이터 세트 B의 버퍼 B(29)에 대한 DMA 전송의 설정을 행한다. 또한, CPU 코어 A(12)는, 메모리 비교 회로(23)의 각 레지스터에 필요한 설정을 행한다. CPU 코어 A(12)는, CPU 코어 B(13)의 처리 종료를 확인한 다음, 전송 제어 레지스터(25)의 필드 ST(도 3의 (b)를 참조)로 값 「1」을 기입한다.
DMA 요구 회로(26)는, 전송 제어 레지스터(25)의 필드 ST에 값 「1」이 기입되면, DMAC(20)에 DMA 전송을 요구한다. DMAC(20)는, 데이터 세트 A의 각 데이터와 데이터 세트 B의 각 데이터를, 버퍼 A(28) 및 버퍼 B(29)에 각각 순차적으로 전송한다. 메모리 비교 회로(23)에 있어서, 버퍼 A(28) 및 버퍼 B(29)에 데이터 세트 A 및 데이터 세트 B의 각 데이터가 각각 순차적으로 전송됨으로써, 비교 회로(30)는, 데이터 세트 A의 각 데이터와 데이터 세트 B의 각 데이터를 순차적으로 비교한다.
여기서, 데이터 세트 A의 각 데이터와 데이터 세트 B의 각 데이터가 동등한 경우, CPU 코어 A(12) 및 CPU 코어 B(13)는 정상적으로 동작하고 있다고 판단할 수 있다. 한편, 데이터 세트 A의 각 데이터와 데이터 세트 B의 각 데이터가 일치하지 않는 경우, 적어도 한쪽의 CPU 코어가 정상적으로 동작하지 않을 가능성이 있다. 비교 회로(30)는, 예를 들어 양쪽 버퍼의 데이터가 동등하지 않음을 비교 조건으로 하여 데이터 비교를 행하고, 조건 일치 횟수 카운터(31)는, 양쪽 데이터가 일치하지 않는 횟수를 카운트한다.
CPU 코어 A(12)는, 전송 제어 레지스터(25)의 필드 ST에 값 「1」을 기입한 후, 예를 들어 다른 처리의 실행을 개시한다. 달리 표현하면, CPU 코어 A(12)는, 메모리 비교 회로(23)에 있어서 데이터 세트 A의 각 데이터와 데이터 세트 B의 각 데이터가 비교되어 있을 때, 다른 처리를 실행한다. 인터럽트 요구 회로(34)는, 예를 들어 조건 일치 횟수 카운터(31)의 카운트값이 소정의 값, 예를 들어 「1」이 되면, 인터럽트 컨트롤러(19)에 인터럽트 요구를 출력한다. 인터럽트 컨트롤러(19)는, 인터럽트 요구가 출력되면, CPU 코어 A(12)에 인터럽트 신호를 출력하고, CPU 코어 A(12)는, 그 인터럽트 신호에 따라 예를 들어 리셋 처리를 실행한다. 이렇게 함으로써, 데이터 세트 A 및 데이터 세트 B의 정당성을 보증할 수 있어, MCU(10)를, 높은 신뢰성이 요구되는 용도에 적용하는 것이 가능해진다.
[정리]
본 실시 형태에서는, 메모리 비교 회로(23)는, 메모리 공간 상의 2개의 데이터, 또는 메모리 공간 상의 데이터와 고정값을 비교한다. 이러한 메모리 비교 회로(23)를 사용함으로써 MCU(10)에 있어서, CPU 코어 A(12) 또는 CPU 코어 B(13)를 사용하지 않고, 메모리 공간 상의 데이터를 비교할 수 있다. 또한, 본 실시 형태에서는, 조건 일치 횟수 카운터(31)는 비교 조건에 일치한 횟수를 카운트하고, 비교 횟수 카운터(32)는 데이터 비교가 행하여진 횟수를 카운트한다. 인터럽트 요구 회로(34)는, 조건 일치 횟수 카운터(31)의 카운트값 및 비교 횟수 카운터(32)의 카운트값의 적어도 한쪽에 기초하여 인터럽트 컨트롤러(19)에 인터럽트 요구를 출력한다. 본 실시 형태에서는, 인터럽트 제어 레지스터(33)를 사용하여 인터럽트 조건을 설정하는 것이 가능하여, MCU(10)에 있어서, 카운트값에 기초하는 원하는 조건에서 인터럽트를 발생시킬 수 있다.
본 실시 형태에서는, 비교 회로(30)는, 비교 조건 레지스터(27)에 설정된 비교 조건 등에 기초하여 데이터 비교를 행한다. 데이터 비교 시에, 비교 제어 레지스터(27)에 원하는 비교 조건을 설정함으로써, 비교 회로(30)에 있어서, 간단히 비교 대상의 데이터가 일치하는지 여부뿐만 아니라, 원하는 비교 조건에서 데이터 비교를 행할 수 있다. 또한, 본 실시 형태에서는, 비교 제어 레지스터(27)에, 비교 대상의 데이터의 데이터 사이즈 및 형식을 설정할 수 있어, 비교 회로(30)에 있어서, 다양한 데이터 사이즈 및 데이터 형식의 데이터를 비교할 수 있다.
또한, 본 실시 형태에서는, 전송 제어 레지스터(25)에, 버퍼 A(28) 및 버퍼 B(29)에 대한 데이터 전송 횟수 등이 설정된다. 비교 회로(30)는, 전송 제어 레지스터(25)에 있어서의 각 버퍼에 대한 전송 횟수의 설정에 따라, 2개의 버퍼 중 한쪽에 저장되는 데이터를 고정값으로 하고, 다른 쪽에 메모리 공간으로부터 순차적으로 전송되는 데이터와, 고정값을 순차적으로 비교할 수 있다. 혹은, 비교 회로(30)는, 메모리 공간으로부터 한쪽의 버퍼에 순차적으로 전송되는 데이터와, 다른 쪽의 버퍼에 순차적으로 전송되는 데이터를 순차적으로 비교할 수 있다.
[실시 형태 2]
이어서, 실시 형태 2를 설명한다. 본 실시 형태에서는, 메모리 비교 회로(23)는, 복수의 비교 조건에서 데이터 비교가 가능하게 구성된다. 도 19는 본 실시 형태에서 사용되는 메모리 비교 회로(23)의 일부를 나타낸다. 본 실시 형태에 있어서, 메모리 비교 회로(23)는, 복수의 비교 제어 레지스터(27), 비교 회로(30) 및 조건 일치 횟수 카운터(31)를 갖는다. 도 19의 예에서는, 메모리 비교 회로(23)는, 3개의 비교 제어 레지스터(27-1 내지 27-3)와, 비교 회로(30-1 내지 30-3)와, 조건 일치 횟수 카운터(31-1 내지 31-3)를 갖고 있다. 그 밖의 구성은, 실시 형태 1과 마찬가지여도 된다.
비교 제어 레지스터(비교 제어 레지스터 1)(27-1)는, 비교 회로(비교 회로1)(30-1)에 대응하여 배치되어 있고, 비교 회로(30-1)의 비교 내용(비교 조건)에 관한 설정 정보를 저장한다. 비교 회로(30-1)는, 비교 제어 레지스터(27-1)의 각 필드(도 5의 (a) 및 (b)를 참조)에 설정된 내용에 따라, 버퍼 A(28)에 저장되는 데이터와 버퍼 B(29)에 저장되는 데이터를 비교한다. 조건 일치 횟수 카운터(조건 일치 횟수 카운터 1)(31-1)는, 비교 회로(30-1)에 대응하여 배치되어 있고, 비교 회로(30-1)에 있어서 비교 결과가 비교 조건에 일치한 횟수를 카운트한다.
마찬가지로, 비교 제어 레지스터(비교 제어 레지스터 2)(27-2) 및 조건 일치 횟수 카운터(조건 일치 횟수 카운터 2)(31-2)는, 비교 회로(비교 회로 2)(30-2)에 대응하여 배치되어 있고, 비교 제어 레지스터(비교 제어 레지스터 3)(27-3) 및 조건 일치 횟수 카운터(조건 일치 횟수 카운터 3)(31-3)는, 비교 회로(비교 회로 3)(30-3)에 대응하여 배치되어 있다. 비교 회로(30-2 및 30-3)는, 각각 비교 제어 레지스터(27-2 및 27-3)의 각 필드에 설정된 내용에 따라, 데이터 비교를 행한다. 조건 일치 횟수 카운터(31-2 및 31-3)는, 각각 비교 회로(30-2 및 30-3)에 있어서 비교 결과가 비교 조건에 일치한 횟수를 카운트한다. 본 실시 형태에서는, 비교 제어 레지스터(27-1 내지 27-3)에, 서로 상이한 비교 조건 및 비교 방법 등을 설정하는 것이 가능하다.
[인터럽트 조건 레지스터]
도 20의 (a) 및 (b)는, 본 실시 형태에 있어서 사용되는 인터럽트 제어 레 지스터(33)의 사양의 일례를 나타낸다. 도 20의 (a)는, 인터럽트 제어 레지스터(33)의 필드의 구성예를 나타내고, 도 20의 (b)는, 각 필드의 상세를 나타낸다. 본 실시 형태에서 사용되는 인터럽트 제어 레지스터(33)는, 도 16의 (a)에 도시되는 실시 형태 1에서 사용되는 인터럽트 제어 레지스터(33)가 갖는 필드 외에도, 필드 CS2, CS3, IC2 및 IC3을 갖는다. 또한, 도 20의 (a)에 도시되는 인터럽트 제어 레지스터(33)의 필드 구성은 예시이며, 인터럽트 제어 레지스터(33)의 필드 구성은 도시된 것에는 한정되지 않는다. 필드 IE, CS0 및 IC0의 역할은 실시 형태 1과 마찬가지이기 때문에, 설명은 생략한다.
본 실시 형태에 있어서, 필드 CS1(Counter Select 1)은, 인터럽트 조건에 조건 일치 횟수 카운터(31-1)를 사용하는 것을 설정하기 위한 필드이다. 또한, 필드 CS2(Counter Select 2)는, 인터럽트 조건에 조건 일치 횟수 카운터(31-2)를 사용하는 것을 설정하기 위한 필드이며, 필드 CS3(Counter Select 3)은, 인터럽트 조건에 조건 일치 횟수 카운터(31-3)를 사용하는 것을 설정하기 위한 필드이다. 필드 CS1 내지 CS3에는, 각각 값 「0」 또는 「1」이 설정된다. 값 「0」은, 조건 일치 횟수 카운터를 인터럽트 조건에 사용하지 않음을 나타낸다. 값 「1」은, 조건 일치 횟수 카운터를 인터럽트 조건에 사용함을 나타낸다.
필드 IC1(Interrupt Count 1)은, 인터럽트를 발생시키는 조건 일치 횟수 카운터(31-1)의 카운트값을 설정하기 위한 필드이다. 또한, 필드 IC2(Interrupt Count 2)는, 인터럽트를 발생시키는 조건 일치 횟수 카운터(31-2)의 카운트값을 설정하기 위한 필드이며, 필드 IC3(Interrupt Count 3)은, 인터럽트를 발생시키는 조건 일치 횟수 카운터(31-3)의 카운트값을 설정하기 위한 필드이다.
인터럽트 요구 회로(34)는, 필드 CS1의 값이 「1」이며, 또한 조건 일치 횟수 카운터(31-1)의 카운트값이 필드 IC1의 값과 동등한 경우에, 인터럽트 컨트롤러(19)에 인터럽트를 요구한다. 인터럽트 요구 회로(34)는, 필드 CS2의 값이 「1」이며, 또한 조건 일치 횟수 카운터(31-2)의 카운트값이 필드 IC2의 값과 동등한 경우에, 인터럽트 컨트롤러(19)에 인터럽트를 요구한다. 인터럽트 요구 회로(34)는, 필드 CS3의 값이 「1」이며, 또한 조건 일치 횟수 카운터(31-3)의 카운트값이 필드 IC3의 값과 동등한 경우에, 인터럽트 컨트롤러(19)에 인터럽트를 요구한다.
[동작예]
도 21은 단순 비교와 오차 허용 비교를 동시에 행한 경우의 조건 일치 횟수 카운터의 값을 나타낸다. 여기에서는, 비교 회로(30-1)에 있어서의 비교 조건은 데이터 A=데이터 B이고, 비교 방법은 오차를 허용하지 않는 단순 비교이며, 버퍼 A(28) 및 버퍼 B(29)에 저장되는 데이터의 데이터 사이즈는 8비트이며, 또한 데이터 형식은 2의 보수인 경우를 생각한다. 즉, 비교 제어 레지스터(27-1)에 있어서, 필드 C의 값이 「0」이고, 필드 M의 값이 「0」이고, 필드 DS의 값이 「0」이고, 필드 DF의 값이 「1」인 경우를 생각한다. 또한, 비교 회로(30-2)에 있어서의 비교 조건은 데이터 A=데이터 B이고, 비교 방법은 오차 허용 비교이며, 그 허용 오차는 「3」이며, 버퍼 A(28) 및 버퍼 B(29)에 저장되는 데이터의 데이터 사이즈는 8비트이며, 또한 데이터 형식은 2의 보수인 경우를 생각한다. 즉, 비교 제어 레지스터(27-2)에 있어서, 필드 C의 값이 「0」이고, 필드 M의 값이 「1」이고, 필드 DS의 값이 「0」이고, 필드 DF의 값이 「1」이고, 필드 AE의 값이 「3」 인 경우를 생각한다.
비교 회로(30-1 및 30-2)는, 1회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터 「79」와 버퍼 B(29)에 저장되는 데이터 「84」를 비교한다. 1회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터와 버퍼 B(29)에 저장되는 값이 동등하지 않으며, 또한 그 차가 허용 오차 「3」 이하가 아니기 때문에, 조건 일치 횟수 카운터(31-1 및 31-2)는 카운트 업을 행하지 않아, 카운트값은 각각 초기값 「0」인 상태이다.
비교 회로(30-1 및 30-2)는, 2회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터 「32」와 버퍼 B(29)에 저장되는 데이터 「33」을 비교한다. 2회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터와 버퍼 B(29)에 저장되는 값이 동등하지 않기 때문에, 조건 일치 횟수 카운터(31-1)는 카운트 업을 행하지 않아, 카운트값은 초기값 「0」인 상태이다. 한편, 데이터의 차는 허용 오차 「3」 이하이기 때문에, 조건 일치 횟수 카운터(31-2)는 카운트 업을 행하여, 카운트값을 「1」로 한다.
비교 회로(30-1 및 30-2)는, 3회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터 「-128」과 버퍼 B(29)에 저장되는 데이터 「-128」을 비교한다. 3회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터와 버퍼 B(29)에 저장되는 값이 동등하기 때문에, 조건 일치 횟수 카운터(31-1)는 카운트 업을 행하여, 카운트값을 「1」로 한다. 또한, 조건 일치 횟수 카운터(31-2)도 카운트 업을 행하여, 카운트값을 「2」로 한다.
비교 회로(30-1 및 30-2)는, 4회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터 「65」와 버퍼 B(29)에 저장되는 데이터 「62」를 비교한다. 4회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터와 버퍼 B(29)에 저장되는 값이 동등하지 않기 때문에, 조건 일치 횟수 카운터(31-1)는 카운트 업을 행하지 않아, 카운트값은 「1」인 상태이다. 한편, 데이터의 차는 허용 오차 「3」 이하이기 때문에, 조건 일치 횟수 카운터(31-2)는 카운트 업을 행하여, 카운트값을 「3」으로 한다.
비교 회로(30-1 및 30-2)는, 5회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터 「-45」와 버퍼 B(29)에 저장되는 데이터 「-40」을 비교한다. 5회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터와 버퍼 B(29)에 저장되는 값이 동등하지 않으며, 또한 그 차가 허용 오차 「3」 이하가 아니기 때문에, 조건 일치 횟수 카운터(31-1 및 31-2)는 카운트 업을 행하지 않아, 카운트값은 각각 「1」 및 「3」인 상태이다.
비교 회로(30-1 및 30-2)는, 6회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터 「5」와 버퍼 B(29)에 저장되는 데이터 「5」를 비교한다. 6회째의 비교에서는, 버퍼 A(28)에 저장되는 데이터와 버퍼 B(29)에 저장되는 값이 동등하기 때문에, 조건 일치 횟수 카운터(31-1)는 카운트 업을 행하여, 카운트값을 「2」로 한다. 또한, 조건 일치 횟수 카운터(31-2)도 카운트 업을 행하여, 카운트값을 「4」로 한다.
상기 동작예에 있어서, 예를 들어 인터럽트 제어 레지스터(33)에 있어서, 필드 CS1의 값이 「1」로 설정되며, 또한 필드 IC1의 값이 「1」로 설정되어 있는 경우를 생각한다. 그 경우, 조건 일치 횟수 카운터(31-1)의 카운트값은 3회째의 비교에서 「1」이 되는 점에서, 인터럽트 요구 회로(34)는, 3회째의 비교 후, 인터럽트 컨트롤러(19)에 인터럽트를 요구한다. 또한, 인터럽트 제어 레지스터(33)에 있어서, 필드 CS2의 값이 「1」로 설정되며 또한 필드 IC2의 값이 「1」로 설정되어 있던 경우는, 조건 일치 횟수 카운터(31-2)의 카운트값은 2회째의 비교에서 「1」이 되는 점에서, 인터럽트 요구 회로(34)는, 2회째의 비교 후, 인터럽트 컨트롤러(19)에 인터럽트를 요구하게 된다.
[정리]
본 실시 형태에서는, 메모리 비교 회로(23)에 있어서, 복수의 비교 조건 및 비교 방법으로, 비교를 행하고, 복수의 비교 결과를 사용하여, 인터럽트를 발생시킬 수 있다. 예를 들어, 단순 비교와 오차 허용 비교를 동시에 행하여, 2개의 비교의 어느 쪽인가에 있어서 조건 일치 횟수가 인터럽트 제어 레지스터(33)에 설정된 횟수에 도달했을 때에, 인터럽트를 발생시킬 수 있다.
[실시 형태 3]
계속하여, 실시 형태 3을 설명한다. 도 22는 실시 형태 3에 관한 메모리 비교 회로를 갖는 MCU를 나타낸다. 본 실시 형태에 관한 MCU(10a)는, 도 1에 도시하는 실시 형태 1에서 사용된 메모리 비교 회로(23)의 DMA 요구 회로(26)가, 전송 회로(36)에서 치환되고 있는 점에서, 실시 형태 1에 관한 MCU(10)와 상이하다. 그 밖의 점은, 실시 형태 1 또는 실시 형태 2와 마찬가지여도 된다.
실시 형태 1에서는, DMAC(20)가 메모리 공간 상의 데이터를 버퍼 A(28) 및/또는 버퍼 B(29)로 전송하였다. 이에 반하여, 본 실시 형태에서는, 전송 회로(36)가, 메모리 공간 상의 데이터를 버퍼 A(28) 및/또는 버퍼 B(29)로 전송한다. 전송 회로(36)는, 시스템 버스(14)의 버스 마스터가 되는데, 예를 들어 내장 메모리(15) 및 외부 메모리(35)에 액세스할 수 있다. 전송 회로(36)는, 내장 메모리(15) 및 외부 메모리(35) 등으로부터 데이터 판독하고, 판독된 데이터를 버퍼 A(28) 및/또는 버퍼 B(29)에 기입한다.
본 실시 형태에서는, 전송 제어 레지스터(25)는, 채널 A와 채널 B에 대하여, 데이터의 전송원의 개시 어드레스 및 어드레스 갱신 방법 등을 설정하기 위한 필드를 더 갖는다. 전송 회로(36)는, 전송 제어 레지스터(25)를 참조하여, 버퍼 A(28) 및/또는 버퍼 B(29)에 대한 데이터 전송을 실시한다.
[동작 수순]
도 23은 본 실시 형태에 있어서 CPU 코어 A(12) 또는 CPU 코어 B(13)가 실행하는 설정 동작의 수순을 나타낸다. 이하에서는, CPU 코어 A(12)가 설정을 행하는 것으로서 설명하지만, 설정 동작은 CPU 코어 B(13)가 행해도 된다.
CPU 코어 A(12)는, 메모리 비교 회로(23)의 비교 제어 레지스터(27)의 설정을 행한다(스텝 B1). CPU 코어 A(12)는, 스텝 B1에서는, 비교 회로(30)에서 실시되는 데이터 비교의 비교 조건의 설정, 비교 방법의 설정 및 오차 허용 비교의 경우의 허용 오차의 설정 등을 행한다(도 5의 (b)도 참조). 또한, CPU 코어 A(12)는, 버퍼 A(28) 및 버퍼 B(29)에 저장되는 데이터의 데이터 사이즈의 설정 및 데이터 형식의 설정 등을 행한다.
CPU 코어 A(12)는, 메모리 비교 회로(23)의 인터럽트 제어 레지스터(33)의 설정을 행한다(스텝 B2). CPU 코어 A(12)는, 스텝 B2에서는, 인터럽트를 요구할지 여부, 인터럽트를 요구하는 경우에 사용하는 카운터 및 인터럽트 조건이 되는 카운트값 등을 설정한다(도 16의 (b)도 참조).
CPU 코어 A(12)는, 메모리 비교 회로(23)의 전송 제어 레지스터(25)의 설정을 행한다(스텝 B3). CPU 코어 A(12)는, 스텝 B3에서는, 채널 A의 전송 모드의 설정, 채널 B의 전송 모드의 설정 및 전송 횟수의 설정을 행한다(도 3의 (b)도 참조). 또한, CPU 코어 A(12)는, 스텝 B3에서는, 채널 A 및 채널 B 각각에 대하여, 전송원의 데이터가 저장되어 있는 메모리의 개시 어드레스 및 어드레스의 갱신 방법 등의 설정도 행한다.
CPU 코어 A(12)가, 스텝 B3에서 전송 제어 레지스터(25)의 필드 ST에 값 「1」을 설정하면, 전송 회로(36)는, 버퍼 A(28) 및/또는 버퍼 B(29)에 대한 데이터 전송을 개시한다. 메모리 비교 회로(23)는, 예를 들어 버퍼 A(28) 및 버퍼 B(29)에 데이터가 전송될 때마다, 스텝 B1에서 설정된 비교 조건 등에 기초하여 데이터 비교를 행한다. 또한, 메모리 비교 회로(23)는, 스텝(2)에서 설정된 인터럽트 조건 등에 기초하여, 인터럽트 컨트롤러(19)에 인터럽트를 요구한다.
[정리]
실시 형태 1에서는, DMAC(20)가 버퍼 A(28) 및/또는 버퍼 B(29)에 대한 데이터 전송을 행한다. DMAC(20)가 버퍼에 대한 데이터 전송을 행하는 경우, DMAC(20)는, 내장 메모리(15) 또는 외부 메모리(35) 등으로부터 판독한 데이터를, 주변 버스(18) 및 메모리 비교 회로 내부 인터페이스(24)를 통하여 버퍼 A(28) 및/또는 버퍼 B(29)에 기입할 필요가 있다. 이에 반하여, 본 실시 형태에서는, 메모리 비교 회로(23) 내의 전송 회로(36)가, 버퍼 A(28) 및/또는 버퍼 B(29)에 대한 데이터 전송을 행한다. 본 실시 형태에서는, 전송 회로(36)는 주변 버스(18) 및 메모리 비교 회로 내부 인터페이스(24)를 통하지 않고 버퍼 A(28) 및/또는 버퍼 B(29)에 기입할 수 있다. 따라서, 실시 형태 1에 비하여, 버퍼에 대한 데이터 전송 시간을 단축할 수 있다.
이상, 본 발명자에 의해 이루어진 발명을 실시 형태에 기초하여 구체적으로 설명했지만, 본 발명은 이미 설명한 실시 형태에 한정되는 것은 아니며, 그 요지를 일탈하지 않는 범위에 있어서 다양한 변경이 가능한 것은 말할 필요도 없다.
예를 들어, 상기한 실시 형태의 일부 또는 전부는, 이하의 부기와 같이 기재될 수도 있지만, 이하에는 한정되지는 않는다.
[부기 1]
CPU와,
상기 CPU에 인터럽트 신호를 출력하는 인터럽트 컨트롤러와,
비교 대상의 데이터를 각각 저장하는 제1 버퍼 및 제2 버퍼와,
상기 CPU로부터 참조 가능한 메모리 공간 상의 데이터를, 상기 제1 버퍼 및 상기 제2 버퍼의 적어도 한쪽에 전송하는 전송 회로와,
상기 제1 버퍼에 저장된 제1 데이터와 상기 제2 버퍼에 저장된 제2 데이터를 비교하는 비교 회로와,
상기 비교 회로에 있어서의 비교 횟수를 카운트하는 비교 횟수 카운터와,
상기 비교 회로의 비교 결과가 비교 조건에 일치한 횟수를 세는 조건 일치 횟수 카운터와,
상기 비교 횟수 및 상기 비교 결과가 비교 조건에 일치한 횟수의 적어도 한쪽에 기초하여 상기 인터럽트 컨트롤러에 인터럽트 요구를 출력하는 인터럽트 요구 회로를 갖는 반도체 집적 회로 장치.
[부기 2]
상기 전송 회로는, DMA(Direct Memory Access) 전송을 제어하는 DMA 컨트롤러와, 상기 DMA 컨트롤러에 DMA 전송의 개시를 요구하는 DMA 요구 회로를 포함하는 부기 1에 기재된 반도체 집적 회로 장치.
[부기 3]
상기 CPU는, 상기 전송 회로에 대하여, 상기 제1 버퍼 및 상기 제2 버퍼의 적어도 한쪽에 대한 데이터 전송에 관한 설정을 행하는 부기 1에 기재된 반도체 집적 회로 장치.
[부기 4]
상기 비교 회로에 있어서의 비교 조건을 제어하기 위한 비교 제어 레지스터를 더 갖는 부기 1에 기재된 반도체 집적 회로 장치.
[부기 5]
상기 비교 조건이, 상기 제1 데이터와 상기 제2 데이터가 동등한 것, 상기 제1 데이터와 상기 제2 데이터가 동등하지 않은 것, 상기 제1 데이터가 상기 제2 데이터보다도 크거나 동등한 것, 상기 제1 데이터가 상기 제2 데이터보다도 큰 것, 상기 제1 데이터가 상기 제2 데이터보다도 작거나 동등한 것 및 상기 제1 데이터가 상기 제2 데이터보다도 작은 것의 적어도 하나를 포함하고,
상기 비교 제어 레지스터는, 상기 비교 조건을 설정하기 위한 비교 조건 설정 필드를 갖는 부기 4에 기재된 반도체 집적 회로 장치.
[부기 6]
상기 비교 제어 레지스터는, 오차를 허용한 비교를 행할지 여부를 설정하기 위한 비교 방법 설정 필드 및 허용 오차의 값을 설정하기 위한 허용 오차 설정 필드를 갖는 부기 4에 기재된 반도체 집적 회로 장치.
[부기 7]
상기 제1 데이터 및 상기 제2 데이터는, 복수의 데이터 사이즈로부터 선택된 데이터 사이즈 및 복수의 데이터 형식으로부터 선택된 데이터 형식을 갖고,
상기 비교 제어 레지스터는, 상기 제1 데이터 및 상기 제2 데이터의 데이터 사이즈를 설정하기 위한 데이터 사이즈 설정 필드 및 데이터 형식을 설정하기 위한 데이터 형식 설정 필드를 갖는 부기 4에 기재된 반도체 집적 회로 장치.
[부기 8]
상기 비교 회로는, 상기 제1 데이터를, 상기 복수의 데이터 사이즈 중 최대의 데이터 사이즈보다도 큰 소정 데이터 사이즈의 소정 데이터 형식의 데이터로 부호 확장하는 제1 부호 확장 회로와, 상기 제2 데이터를, 상기 소정 데이터 사이즈의 상기 소정 데이터 형식의 데이터로 부호 확장하는 제2 부호 확장 회로를 갖고, 상기 제1 부호 확장 회로에서 부호 확장된 제1 데이터와 상기 제2 부호 확장 회로에서 부호 확장된 제2 데이터를 비교하는 부기 7에 기재된 반도체 집적 회로 장치.
[부기 9]
상기 제1 버퍼 및 상기 제2 버퍼의 적어도 한쪽에 대한 데이터 전송의 설정 정보를 기억하기 위한 전송 제어 레지스터를 더 갖는 부기 1에 기재된 반도체 집적 회로 장치.
[부기 10]
상기 전송 제어 레지스터는, 상기 제1 버퍼에 대한 데이터의 전송 모드를 설정하기 위한 제1 전송 모드 설정 필드와, 상기 제2 버퍼에 대한 데이터의 전송 모드를 설정하기 위한 제2 전송 모드 설정 필드와, 데이터 전송 횟수를 설정하기 위한 전송 횟수 설정 필드를 갖는 부기 9에 기재된 반도체 집적 회로 장치.
[부기 11]
제1 전송 모드 설정 필드 및 상기 제2 전송 모드 설정 필드에는, 각각, 상기 전송 회로에 의한 데이터 전송이 없다는 취지를 나타내는 제1 값, 상기 전송 회로에 의한 데이터 전송 횟수가 1회라는 취지를 나타내는 제2 값, 또는 상기 전송 회로에 의한 데이터 전송 횟수가 상기 전송 횟수 설정 필드에 설정된 전송 횟수라는 취지를 나타내는 제3 값이 설정되는 부기 10에 기재된 반도체 집적 회로 장치.
[부기 12]
상기 비교 회로는,
상기 제1 버퍼에 저장된 데이터가 유효한지 여부를 나타내는 값이 설정되는 제1 플래그 레지스터와,
상기 제2 버퍼에 저장된 데이터가 유효한지 여부를 나타내는 값이 설정되는 제2 플래그 레지스터와,
상기 제1 플래그 레지스터 및 상기 제2 플래그 레지스터에 각각 설정된, 데이터가 유효하다는 취지를 나타내는 값을 클리어하기 위한 클리어 신호를 생성하는 클리어 신호 생성 회로를 갖고,
상기 클리어 신호 생성 회로는,
상기 제1 전송 모드 설정 필드에 상기 제1 값 또는 상기 제2 값이 설정되어 있는 경우이며, 또한 상기 비교 횟수 카운터의 카운트값이 상기 전송 횟수 설정 필드에 설정된 전송 횟수보다도 하나 작은 값인 경우, 상기 제1 데이터와 상기 제2 데이터가 비교되면 상기 제1 플래그 레지스터에 상기 클리어 신호를 출력하고, 상기 제1 전송 모드 설정 필드에 상기 제3 값이 설정되어 있는 경우는, 상기 제1 데이터와 상기 제2 데이터가 비교될 때마다 상기 제1 플래그 레지스터에 상기 클리어 신호를 출력하고,
상기 제2 전송 모드 설정 필드에 상기 제1 값 또는 상기 제2 값이 설정되어 있는 경우이며, 또한 상기 비교 횟수 카운터의 카운트값이 상기 전송 횟수 설정 필드에 설정된 전송 횟수보다도 하나 작은 값인 경우, 상기 제1 데이터와 상기 제2 데이터가 비교되면 상기 제2 플래그 레지스터에 상기 클리어 신호를 출력하고, 상기 제2 전송 모드 설정 필드에 상기 제3 값이 설정되어 있는 경우는, 상기 제1 데이터와 상기 제2 데이터가 비교될 때마다 상기 제1 플래그 레지스터에 상기 클리어 신호를 출력하는 부기 11에 기재된 반도체 집적 회로 장치.
[부기 13]
상기 비교 회로는, 상기 제1 플래그 레지스터 및 상기 제2 플래그 레지스터에 데이터가 유효하다는 취지를 나타내는 값이 설정되어 있는 경우에 상기 제1 데이터와 상기 제2 데이터를 비교하는 부기 12에 기재된 반도체 집적 회로 장치.
[부기 14]
상기 비교 회로는, 상기 제1 전송 모드 설정 필드에 상기 제1 값 또는 상기 제2 값이 설정되며, 또한 상기 제2 전송 모드 설정 필드에 상기 제3 값이 설정되는 경우, 상기 제1 데이터를 고정값으로 하여, 상기 제2 버퍼에 데이터가 전송될 때마다, 상기 제2 데이터와 상기 고정값인 상기 제1 데이터를 비교하는 부기 11에 기재된 반도체 집적 회로 장치.
[부기 15]
상기 비교 회로는, 상기 제1 전송 모드 설정 필드 및 상기 제2 전송 모드 설정 필드의 양쪽에 상기 제3 값이 설정되는 경우, 상기 제1 버퍼에 데이터가 전송되며, 또한 상기 제2 버퍼에 데이터가 전송될 때마다, 상기 제1 데이터와 상기 제2 데이터를 비교하는 부기 11에 기재된 반도체 집적 회로 장치.
[부기 16]
상기 전송 제어 레지스터는, 상기 전송 회로에 의한 데이터 전송의 개시 및 정지를 제어하기 위한 값이 저장되는 전송 개시 설정 필드를 갖고, 상기 전송 회로는, 상기 전송 개시 설정 필드에 데이터 전송의 개시를 나타내는 값이 저장되면, 상기 데이터 전송을 개시하는 부기 9에 기재된 반도체 집적 회로 장치.
[부기 17]
상기 인터럽트 요구 회로가 상기 인터럽트 요구를 출력하는 인터럽트 요구 조건을 제어하기 위한 인터럽트 제어 레지스터를 더 갖는 부기 1에 기재된 반도체 집적 회로 장치.
[부기 18]
상기 인터럽트 제어 레지스터는, 상기 인터럽트 조건에 상기 비교 횟수 카운터를 사용할지 여부를 설정하기 위한 제1 카운터 선택 필드와, 상기 인터럽트 조건에 상기 조건 일치 횟수 카운터를 사용할지 여부를 설정하기 위한 제2 카운터 선택 필드와, 상기 인터럽트 요구의 출력의 트리거가 되는 상기 비교 횟수 카운터의 카운트값을 설정하는 제1 카운트값 설정 필드와, 상기 인터럽트 요구의 출력의 트리거가 되는 상기 조건 일치 횟수 카운터의 카운트값을 설정하는 제2 카운트값 설정 필드를 포함하는 부기 17에 기재된 반도체 집적 회로 장치.
[부기 19]
상기 인터럽트 요구 회로는, 상기 제1 카운터 선택 필드에 상기 인터럽트 조건에 상기 비교 횟수 카운터를 사용한다는 취지가 설정되어 있는 경우이며, 또한 상기 비교 횟수 카운터의 카운트값이 상기 제1 카운트값 설정 필드에 설정된 값과 동등한 경우, 상기 인터럽트 컨트롤러에 상기 인터럽트 요구를 출력하는 부기 18에 기재된 반도체 집적 회로 장치.
[부기 20]
상기 인터럽트 요구 회로는, 상기 제2 카운터 선택 필드에 상기 인터럽트 조건에 상기 조건 일치 횟수 카운터를 사용한다는 취지가 설정되어 있는 경우이며, 또한 상기 조건 일치 횟수 카운터의 카운트값이 상기 제2 카운트값 설정 필드에 설정된 값과 동등한 경우, 상기 인터럽트 컨트롤러에 상기 인터럽트 요구를 출력하는 부기 18에 기재된 반도체 집적 회로 장치.
[부기 21]
상기 비교 회로 및 상기 조건 일치 횟수 카운터를 복수 갖고 있으며,
상기 복수의 비교 회로 각각에 있어서의 비교 조건을 제어하기 위한 비교 제어 레지스터를 더 갖는 부기 1에 기재된 반도체 집적 회로 장치.
[부기 22]
상기 인터럽트 요구 회로가 상기 인터럽트 요구를 출력하는 인터럽트 요구 조건을 제어하기 위한 인터럽트 제어 레지스터를 더 갖고, 해당 인터럽트 제어 레지스터는, 상기 복수의 비교 회로 각각에 대하여, 상기 인터럽트 조건에 상기 조건 일치 횟수 카운터를 사용할지 여부를 설정하기 위한 카운터 선택 필드와, 상기 인터럽트 요구의 출력의 트리거가 되는 상기 조건 일치 횟수 카운터의 카운트값을 설정하는 카운트값 설정 필드를 포함하는 부기 21에 기재된 반도체 집적 회로 장치.
[부기 23]
상기 전송 회로는, 상기 CPU가 메모리에 출력한 출력 데이터를 상기 제1 버퍼 및 상기 제2 버퍼의 적어도 한쪽에 전송하는 부기 1에 기재된 반도체 집적 회로 장치.
[부기 24]
상기 CPU가, 제1 CPU와 제2 CPU를 포함하고,
상기 전송 회로는, 상기 제1 CPU가 메모리에 출력한 제1 출력 데이터를 상기 제1 버퍼에 전송하고, 상기 제2 CPU가 상기 메모리에 출력한 제2 출력 데이터를 상기 제2 버퍼에 전송하는 부기 1에 기재된 반도체 집적 회로 장치.
[부기 25]
상기 제1 CPU와 상기 제2 CPU는 동일한 처리를 실행하고,
상기 비교 회로는, 상기 제1 데이터와 상기 제2 데이터가 동등한지 여부를 비교 조건으로 하여, 상기 제1 출력 데이터와 상기 제2 출력 데이터를 비교하는 부기 24에 기재된 반도체 집적 회로 장치.
[부기 26]
상기 비교 조건이, 상기 제1 데이터와 상기 제2 데이터가 동등하지 않으며,
상기 인터럽트 요구 회로는, 상기 조건 일치 횟수 카운터의 카운트값이 소정의 값에 일치하는 경우, 상기 인터럽트 요구를 출력하는 부기 25에 기재된 반도체 집적 회로 장치.
[부기 27]
제1 버퍼 및 제2 버퍼의 적어도 한쪽에, CPU로부터 참조 가능한 메모리로부터 데이터를 전송하고,
상기 제1 버퍼에 저장된 제1 데이터와 상기 제2 버퍼에 저장된 제2 데이터를 비교하고,
상기 제1 데이터와 상기 제2 데이터의 비교 횟수를 카운트하고,
상기 제1 데이터와 상기 제2 데이터의 비교 결과가 비교 조건에 일치한 횟수를 카운트하고,
상기 비교 횟수 및 상기 비교 결과가 비교 조건에 일치한 횟수의 적어도 한쪽에 기초하여 인터럽트 컨트롤러에 인터럽트 요구를 출력하는 데이터 비교 방법.
10: 마이크로컨트롤러 유닛(MCU)
12: CPU 코어 A
13: CPU 코어 B
14: 시스템 버스
15: 내장 메모리
16: 메모리 컨트롤러
17: 주변 버스 컨트롤러
18: 주변 버스
19: 인터럽트 컨트롤러
20: DMAC
21: A/D 변환 회로
22: 통신 회로
23: 메모리 비교 회로
24: 메모리 비교 회로 내부 인터페이스
25: 전송 제어 레지스터
26: DMA 요구 회로
27: 비교 제어 레지스터
28: 버퍼 A
29: 버퍼 B
30: 비교 회로
31: 조건 일치 횟수 카운터
32: 비교 횟수 카운터
33: 인터럽트 제어 레지스터
34: 인터럽트 요구 회로
35: 외부 메모리
36: 전송 회로

Claims (20)

  1. CPU와,
    상기 CPU에 인터럽트 신호를 출력하는 인터럽트 컨트롤러와,
    비교 대상의 데이터를 각각 저장하는 제1 버퍼 및 제2 버퍼와,
    상기 CPU로부터 참조 가능한 메모리 공간 상의 데이터를, 상기 제1 버퍼 및 상기 제2 버퍼의 적어도 한쪽에 전송하는 전송 회로와,
    상기 제1 버퍼에 저장된 제1 데이터와 상기 제2 버퍼에 저장된 제2 데이터를 비교하는 비교 회로와,
    상기 비교 회로에 있어서의 비교 횟수를 카운트하는 비교 횟수 카운터와,
    상기 비교 회로의 비교 결과가 비교 조건에 일치한 횟수를 세는 조건 일치 횟수 카운터와,
    상기 비교 횟수 및 상기 비교 결과가 비교 조건에 일치한 횟수의 적어도 한쪽에 기초하여 상기 인터럽트 컨트롤러에 인터럽트 요구를 출력하는 인터럽트 요구 회로를 갖는, 반도체 집적 회로 장치.
  2. 제1항에 있어서, 상기 전송 회로는, DMA(Direct Memory Access) 전송을 제어하는 DMA 컨트롤러와, 상기 DMA 컨트롤러에 DMA 전송의 개시를 요구하는 DMA 요구 회로를 포함하는, 반도체 집적 회로 장치.
  3. 제1항에 있어서, 상기 비교 회로에 있어서의 비교 조건을 제어하기 위한 비교 제어 레지스터를 더 갖는, 반도체 집적 회로 장치.
  4. 제3항에 있어서, 상기 비교 조건이, 상기 제1 데이터와 상기 제2 데이터가 동등한 것, 상기 제1 데이터와 상기 제2 데이터가 동등하지 않은 것, 상기 제1 데이터가 상기 제2 데이터보다도 크거나 동등한 것, 상기 제1 데이터가 상기 제2 데이터보다도 큰 것, 상기 제1 데이터가 상기 제2 데이터보다도 작거나 동등한 것 및 상기 제1 데이터가 상기 제2 데이터보다도 작은 것의 적어도 하나를 포함하고,
    상기 비교 제어 레지스터는, 상기 비교 조건을 설정하기 위한 비교 조건 설정 필드를 갖는, 반도체 집적 회로 장치.
  5. 제3항에 있어서, 상기 비교 제어 레지스터는, 오차를 허용한 비교를 행할지 여부를 설정하기 위한 비교 방법 설정 필드 및 허용 오차의 값을 설정하기 위한 허용 오차 설정 필드를 갖는, 반도체 집적 회로 장치.
  6. 제3항에 있어서, 상기 제1 데이터 및 상기 제2 데이터는, 복수의 데이터 사이즈로부터 선택된 데이터 사이즈 및 복수의 데이터 형식으로부터 선택된 데이터 형식을 갖고,
    상기 비교 제어 레지스터는, 상기 제1 데이터 및 상기 제2 데이터의 데이터 사이즈를 설정하기 위한 데이터 사이즈 설정 필드 및 데이터 형식을 설정하기 위한 데이터 형식 설정 필드를 갖는, 반도체 집적 회로 장치.
  7. 제6항에 있어서, 상기 비교 회로는, 상기 제1 데이터를, 상기 복수의 데이터 사이즈 중 최대의 데이터 사이즈보다도 큰 소정 데이터 사이즈의 소정 데이터 형식의 데이터로 부호 확장하는 제1 부호 확장 회로와, 상기 제2 데이터를, 상기 소정 데이터 사이즈의 상기 소정 데이터 형식의 데이터로 부호 확장하는 제2 부호 확장 회로를 갖고, 상기 제1 부호 확장 회로에서 부호 확장된 제1 데이터와 상기 제2 부호 확장 회로에서 부호 확장된 제2 데이터를 비교하는, 반도체 집적 회로 장치.
  8. 제1항에 있어서, 상기 제1 버퍼 및 상기 제2 버퍼의 적어도 한쪽에 대한 데이터 전송의 설정 정보를 기억하기 위한 전송 제어 레지스터를 더 갖는, 반도체 집적 회로 장치.
  9. 제8항에 있어서, 상기 전송 제어 레지스터는, 상기 제1 버퍼에 대한 데이터의 전송 모드를 설정하기 위한 제1 전송 모드 설정 필드와, 상기 제2 버퍼에 대한 데이터의 전송 모드를 설정하기 위한 제2 전송 모드 설정 필드와, 데이터 전송 횟수를 설정하기 위한 전송 횟수 설정 필드를 갖는, 반도체 집적 회로 장치.
  10. 제9항에 있어서, 제1 전송 모드 설정 필드 및 상기 제2 전송 모드 설정 필드에는, 각각, 상기 전송 회로에 의한 데이터 전송이 없다는 취지를 나타내는 제1 값, 상기 전송 회로에 의한 데이터 전송 횟수가 1회라는 취지를 나타내는 제2 값, 또는 상기 전송 회로에 의한 데이터 전송 횟수가 상기 전송 횟수 설정 필드에 설정된 전송 횟수라는 취지를 나타내는 제3 값이 설정되는, 반도체 집적 회로 장치.
  11. 제10항에 있어서, 상기 비교 회로는,
    상기 제1 버퍼에 저장된 데이터가 유효한지 여부를 나타내는 값이 설정되는 제1 플래그 레지스터와,
    상기 제2 버퍼에 저장된 데이터가 유효한지 여부를 나타내는 값이 설정되는 제2 플래그 레지스터와,
    상기 제1 플래그 레지스터 및 상기 제2 플래그 레지스터에 각각 설정된, 데이터가 유효하다는 취지를 나타내는 값을 클리어하기 위한 클리어 신호를 생성하는 클리어 신호 생성 회로를 갖고
    상기 클리어 신호 생성 회로는,
    상기 제1 전송 모드 설정 필드에 상기 제1 값 또는 상기 제2 값이 설정되어 있는 경우이며, 또한 상기 비교 횟수 카운터의 카운트값이 상기 전송 횟수 설정 필드에 설정된 전송 횟수보다도 하나(1)작은 값인 경우, 상기 제1 데이터와 상기 제2 데이터가 비교되면 상기 제1 플래그 레지스터에 상기 클리어 신호를 출력하고, 상기 제1 전송 모드 설정 필드에 상기 제3 값이 설정되어 있는 경우는, 상기 제1 데이터와 상기 제2 데이터가 비교될 때마다 상기 제1 플래그 레지스터에 상기 클리어 신호를 출력하고,
    상기 제2 전송 모드 설정 필드에 상기 제1 값 또는 상기 제2 값이 설정되어 있는 경우이며, 또한 상기 비교 횟수 카운터의 카운트값이 상기 전송 횟수 설정 필드에 설정된 전송 횟수보다도 하나(1) 작은 값인 경우, 상기 제1 데이터와 상기 제2 데이터가 비교되면 상기 제2 플래그 레지스터에 상기 클리어 신호를 출력하고, 상기 제2 전송 모드 설정 필드에 상기 제3 값이 설정되어 있는 경우는, 상기 제1 데이터와 상기 제2 데이터가 비교될 때마다 상기 제2 플래그 레지스터에 상기 클리어 신호를 출력하는, 반도체 집적 회로 장치.
  12. 제10항에 있어서, 상기 비교 회로는, 상기 제1 전송 모드 설정 필드에 상기 제1 값 또는 상기 제2 값이 설정되며, 또한 상기 제2 전송 모드 설정 필드에 상기 제3 값이 설정되는 경우, 상기 제1 데이터를 고정값으로 하여, 상기 제2 버퍼에 데이터가 전송될 때마다, 상기 제2 데이터와 상기 고정값인 상기 제1 데이터를 비교하는, 반도체 집적 회로 장치.
  13. 제10항에 있어서, 상기 비교 회로는, 상기 제1 전송 모드 설정 필드 및 상기 제2 전송 모드 설정 필드의 양쪽에 상기 제3 값이 설정되는 경우, 상기 제1 버퍼에 데이터가 전송되며, 또한 상기 제2 버퍼에 데이터가 전송될 때마다, 상기 제1 데이터와 상기 제2 데이터를 비교하는, 반도체 집적 회로 장치.
  14. 제8항에 있어서, 상기 전송 제어 레지스터는, 상기 전송 회로에 의한 데이터 전송의 개시 및 정지를 제어하기 위한 값이 저장되는 전송 개시 설정 필드를 갖고, 상기 전송 회로는, 상기 전송 개시 설정 필드에 데이터 전송의 개시를 나타내는 값이 저장되면, 상기 데이터 전송을 개시하는, 반도체 집적 회로 장치.
  15. 제1항에 있어서, 상기 인터럽트 요구 회로가 상기 인터럽트 요구를 출력하는 인터럽트 요구 조건을 제어하기 위한 인터럽트 제어 레지스터를 더 갖는, 반도체 집적 회로 장치.
  16. 제15항에 있어서, 상기 인터럽트 제어 레지스터는, 상기 인터럽트 조건에 상기 비교 횟수 카운터를 사용할지 여부를 설정하기 위한 제1 카운터 선택 필드와, 상기 인터럽트 조건에 상기 조건 일치 횟수 카운터를 사용할지 여부를 설정하기 위한 제2 카운터 선택 필드와, 상기 인터럽트 요구의 출력의 트리거가 되는 상기 비교 횟수 카운터의 카운트값을 설정하는 제1 카운트값 설정 필드와, 상기 인터럽트 요구의 출력의 트리거가 되는 상기 조건 일치 횟수 카운터의 카운트값을 설정하는 제2 카운트값 설정 필드를 포함하는, 반도체 집적 회로 장치.
  17. 제1항에 있어서, 상기 비교 회로 및 상기 조건 일치 횟수 카운터를 복수 갖고 있으며,
    상기 복수의 비교 회로 각각에 있어서의 비교 조건을 제어하기 위한 비교 제어 레지스터를 더 갖는, 반도체 집적 회로 장치.
  18. 제17항에 있어서, 상기 인터럽트 요구 회로가 상기 인터럽트 요구를 출력하는 인터럽트 요구 조건을 제어하기 위한 인터럽트 제어 레지스터를 더 갖고, 해당 인터럽트 제어 레지스터는, 상기 복수의 비교 회로 각각에 대하여, 상기 인터럽트 조건에 상기 조건 일치 횟수 카운터를 사용할지 여부를 설정하기 위한 카운터 선택 필드와, 상기 인터럽트 요구의 출력의 트리거가 되는 상기 조건 일치 횟수 카운터의 카운트값을 설정하는 카운트값 설정 필드를 포함하는, 반도체 집적 회로 장치.
  19. 제1항에 있어서, 상기 CPU가, 동일한 처리를 실행하는 제1 CPU와 제2 CPU를 포함하고,
    상기 전송 회로는, 상기 제1 CPU가 메모리에 출력한 제1 출력 데이터를 상기 제1 버퍼에 전송하고, 상기 제2 CPU가 상기 메모리에 출력한 제2 출력 데이터를 상기 제2 버퍼에 전송하고,
    상기 비교 회로는, 상기 제1 데이터와 상기 제2 데이터가 동등한지 여부를 비교 조건으로 하여, 상기 제1 출력 데이터와 상기 제2 출력 데이터를 비교하는, 반도체 집적 회로 장치.
  20. 제1 버퍼 및 제2 버퍼의 적어도 한쪽에, CPU로부터 참조 가능한 메모리로부터 데이터를 전송하고,
    상기 제1 버퍼에 저장된 제1 데이터와 상기 제2 버퍼에 저장된 제2 데이터를 비교하고,
    상기 제1 데이터와 상기 제2 데이터의 비교 횟수를 카운트하고,
    상기 제1 데이터와 상기 제2 데이터의 비교 결과가 비교 조건에 일치한 횟수를 카운트하고,
    상기 비교 횟수 및 상기 비교 결과가 비교 조건에 일치한 횟수의 적어도 한쪽에 기초하여 인터럽트 컨트롤러에 인터럽트 요구를 출력하는, 데이터 비교 방법.
KR1020180108850A 2017-09-15 2018-09-12 반도체 집적 회로 장치 및 데이터 비교 방법 KR20190031160A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2017-178074 2017-09-15
JP2017178074A JP2019053600A (ja) 2017-09-15 2017-09-15 半導体集積回路装置及びデータ比較方法

Publications (1)

Publication Number Publication Date
KR20190031160A true KR20190031160A (ko) 2019-03-25

Family

ID=63113433

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180108850A KR20190031160A (ko) 2017-09-15 2018-09-12 반도체 집적 회로 장치 및 데이터 비교 방법

Country Status (5)

Country Link
US (1) US10521374B2 (ko)
EP (1) EP3457292B1 (ko)
JP (1) JP2019053600A (ko)
KR (1) KR20190031160A (ko)
CN (1) CN109584926B (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5094591A (ko) 1973-12-07 1975-07-28
JPH09146709A (ja) 1995-11-27 1997-06-06 Hitachi Ltd 高信頼化ad変換機能を有する制御装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3387538B2 (ja) * 1992-02-03 2003-03-17 松下電器産業株式会社 データ転送装置,プロセサエレメント及びデータ転送方法
JPH07334450A (ja) * 1994-06-10 1995-12-22 Mitsubishi Denki Semiconductor Software Kk インタフェイス装置
US5978865A (en) * 1997-02-04 1999-11-02 Advanced Micro Devices, Inc. System for performing DMA transfers where an interrupt request signal is generated based on the value of the last of a plurality of data bits transmitted
DE19718597C1 (de) * 1997-05-02 1999-01-07 Roehm Gmbh Zweistufiges Verfahren zur Entwässerung von Kunststoffdispersionen
US6760799B1 (en) * 1999-09-30 2004-07-06 Intel Corporation Reduced networking interrupts
US20060155895A1 (en) * 2004-12-10 2006-07-13 Fujitsu Limited Data transferring apparatus and data transferring method
JP5085178B2 (ja) * 2007-04-11 2012-11-28 ルネサスエレクトロニクス株式会社 Dmaコントローラおよびdma転送方法
JP5094591B2 (ja) 2008-06-27 2012-12-12 株式会社日立製作所 照合システム
JP5693712B2 (ja) * 2011-04-21 2015-04-01 ルネサスエレクトロニクス株式会社 半導体集積回路
JP5842206B2 (ja) * 2012-01-27 2016-01-13 株式会社トプスシステムズ プロセッサ・コア、およびマルチコア・プロセッサ・システム
JP5728420B2 (ja) * 2012-03-26 2015-06-03 ルネサスエレクトロニクス株式会社 半導体集積回路
JP2015035121A (ja) * 2013-08-09 2015-02-19 ルネサスエレクトロニクス株式会社 半導体集積回路装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5094591A (ko) 1973-12-07 1975-07-28
JPH09146709A (ja) 1995-11-27 1997-06-06 Hitachi Ltd 高信頼化ad変換機能を有する制御装置

Also Published As

Publication number Publication date
US10521374B2 (en) 2019-12-31
CN109584926B (zh) 2023-10-24
JP2019053600A (ja) 2019-04-04
EP3457292B1 (en) 2020-10-07
EP3457292A1 (en) 2019-03-20
US20190087367A1 (en) 2019-03-21
CN109584926A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
CN114443529B (zh) 内存直接访问架构、系统、方法、电子设备和介质
US7581039B2 (en) Procedure and device for programming a DMA controller in which a translated physical address is stored in a buffer register of the address processing unit and then applied to the data bus and stored in a register of the DMA controller
US10657039B2 (en) Control device for a motor vehicle
US7467239B2 (en) Method and system for programming a DMA controller in a system on a chip, with the DMA controller having source, destination, and size registers
JP6082116B2 (ja) リードマスク及びライトマスクにより制御されるベクトル移動命令
US8327053B2 (en) Bus control system and semiconductor integrated circuit
CN108304334B (zh) 应用处理器和包括中断控制器的集成电路
EP3757837A1 (en) Standardized interface for intellectual property blocks
US20140204102A1 (en) Using graphics processing units in control and/or data processing systems
CN105389276A (zh) 一种基于amba总线架构的lpc主机控制器装置
JP2006338538A (ja) ストリームプロセッサ
CN110825435A (zh) 用于处理数据的方法和装置
US9990317B2 (en) Full-mask partial-bit-field (FM-PBF) technique for latency sensitive masked-write
RU2598594C2 (ru) Нечувствительный к задержке буфер транзакции для связи с квитированием
KR20190031160A (ko) 반도체 집적 회로 장치 및 데이터 비교 방법
JP2008046771A (ja) ダイレクトメモリアクセスコントローラ
TWI567555B (zh) 用於記憶體定序的方法、處理器以及積體電路
CN108363668B (zh) 线性存储器地址变换和管理
Aljumah et al. Amba based advanced dma controller for soc
US8706923B2 (en) Methods and systems for direct memory access (DMA) in-flight status
JP5541544B2 (ja) コンピュータ装置、データ転送方法、及びプログラム
EP3819776A1 (en) Method and apparatus for aborting blocked bus access between a master controller and connected peripherals
JP6222859B2 (ja) ストライド機能及びマスク機能を有するベクトルロード及びベクトルストアを提供する命令及びロジック
CN117492850A (zh) 针对系统管理模式的控制方法、处理器和计算机系统
Controller User's Guide