KR100357284B1 - 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의인터페이스 회로 - Google Patents
코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의인터페이스 회로 Download PDFInfo
- Publication number
- KR100357284B1 KR100357284B1 KR1020010008064A KR20010008064A KR100357284B1 KR 100357284 B1 KR100357284 B1 KR 100357284B1 KR 1020010008064 A KR1020010008064 A KR 1020010008064A KR 20010008064 A KR20010008064 A KR 20010008064A KR 100357284 B1 KR100357284 B1 KR 100357284B1
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- unit
- data
- ipc
- register
- Prior art date
Links
- 238000004891 communication Methods 0.000 title claims abstract description 18
- 239000000872 buffer Substances 0.000 claims abstract description 45
- 230000015654 memory Effects 0.000 claims abstract description 40
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000009977 dual effect Effects 0.000 claims abstract description 12
- 238000012546 transfer Methods 0.000 claims description 37
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
Abstract
본 발명은 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로에 관한 것이다. 특히, 칩내부의 개개의 프로세서 IPC부에 버퍼를 구비함으로써, 상기 개개의 프로세서 IPC부가 버퍼에 접속이 가능하도록 하여 원칩화가 가능한 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로에 관한 것이다.
종래의 송·수신 FIFO 이용한 프로세서간 통신시스템은 칩 외부에 FIFO가 위치하여 원칩화가 곤란하며, 종래의 듀얼포트램을 이용한 이용한 프로세서간 통신시스템은 프로세서 사이의 공통 메모리를 사용하여 전송하고자 하는 데이터가 동시에 발생할 경우, 동시에 처리 하지 못하는 문제점이 있었던 반면에, 본 발명은 원칩상에 제 1 및 제 2프로세서 메모리 제어기, 제 1 및 제 2프로세서 인터럽트 제어기에 의해 제 1 및 제 2프로세서부가 독립적인 버스와 메모리를 구비하여 외부메모리에 직접 엑세스가 가능하여 동시에 발생하는 데이터의 처리를 가능하게 하며, 코프로세서로 설계된 개개의 프로세서 IPC부에 버퍼를 구비하여, 상기 개개의 IPC부가 버퍼에 접속함으로써, 원칩화가 가능한 IPC시스템을 제공한다.
Description
본 발명은 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로에 관한 것이다. 특히, 칩내부의 개개의 프로세서 IPC부에 버퍼를 구비함으로써, 상기 개개의 프로세서 IPC부가 버퍼에 접속이 가능하도록 하여 원칩화가 가능한 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로에 관한 것이다.
일반적으로 디지탈 시스템은 고성능 및 데이타의 실시간 처리를 위하여 점차적으로 마이크로프로세서(microprocessor)를 가지는 프로세서 모듈의 탑재 개수가 증가되고 있다. 예를 들면, 디지탈 데이타 전송 시스템, 디지탈교환 시스템 및 다수의 클라이언트들의 데이터를 처리하는 네트워크 서버 등이 대표적인 실례이다.
대용량의 디지탈 데이타를 고속으로 처리하기 위하여 디지탈 시스템에 탑재된 다수의 프로세서 모듈들 상호간은 처리된결과 등의 메세지를 상호간에 주고받기 위한 마이크로 프로세서간 통신(Inter Processor Communication; 이하 IPC라 표기)장치를 구비해야 한다.
도 1a, 1b는 종래의 IPC장치를 나타낸 구성도이다.
도 1a에 도시한 바와 같이, 선입선출(First-In First-Out; 이하 FIFO라 표기)을 이용한 IPC장치는 접속제어부(4)에 의해 제 1프로세서(1a) 및 제 2프로세서(1b) 사이의 데이터 전송방향이 결정되고, 상기 접속제어부(4a)에 의해 데이터 전송방향이 결정된 임의의 하나의 마이크로 프로세서가 수신 FIFO(3) 및 송신 FIFO(5) 중, 임의의 하나의 FIFO에 데이터를 저장하면, 상대 마이크로 프로세서가 상기 임의의 하나의 FIFO에 저장된 데이터를 읽어가는 방식으로 프로세서간 통신이 진행되도록 구성되어진다.
도 1b에 도시한 바와 같이, 듀얼포트램(dual port ram)을 이용한 IPC장치도접속제어부(4b)에 의해 제 1프로세서(2a) 및 제 2프로세서(2b) 사이의 데이터 전송방향이 결정되고, 상기 접속제어부(4b)에 의해 데이터 전송방향이 결정된 임의의 하나의 마이크로 프로세서가 듀얼포트램(6)에 데이터를 기록하고, 상기 듀얼포트램(6)에 기록된 데이터를 상대 마이크로 프로세서가 읽어 가는 방식으로 프로세서간 통신이 진행되도록 구성되어진다.
상술한 종래의 프로세서간 통신방법의 차이점은 데이터를 송·수신 FIFO(3, 5) 대신 듀얼포트램(6)을 사용하는 점으로 송·수신 FIFO(3, 5)는 한방향 접근(access)만 가능하지만 듀얼포트램(6)은 양방향 접근이 가능하여 한개의 램만을 사용할 수 있다는 점이다.
그러나 상기 종래의 프로세서간 통신방법 중, 송·수신 FIFO를 이용한 IPC장치는 범용화된 원칩의 FIFO를 사용하여 프로세서가 있는 칩 외부에 FIFO가 위치함으로써, FIFO의 크기가 커서 한개의 칩상에 두 프로세서간 고속 통신을 위해 주문형 집적회로(application-specific integrated circuit)화 하기가 곤란한 문제점이 있다.
또한, 듀얼포트램을 이용한 프로세서간 통신시스템은 프로세서 사이의 공통 메모리를 사용함으로써 두 프로세서간에 전송하고자 하는 데이터가 동시에 발생할 경우, 이를 동시에 처리 하지 못하는 문제점이 있다.
또한, FIFO, 또는 듀얼포트램에 판독/기록(read/write)을 하는데 있어서 접속제어부에서 프로세서 이외의 메모리 제어신호를 별도로 생성해야 하는 문제점이있다.
또한, 전송하는 데이터의 개수가 가변일 경우, 별도의 상태 레지스터를 접속제어부 내에 구비하거나, 또는 듀얼포트램의 일정부분을 상태정보에 할당하여 이를 수신 프로세서가 메모리 판독명령을 통해 읽어야 하며, 데이터의 엔디언(endian) 처리에 용이하지 못한 문제점이 있다.
본 발명은 상기 종래기술의 문제점을 해결하기 위한 것으로, 본 발명의 제 1목적은 칩내부에 구비된 개개의 프로세서부가 상대 외부 메모리부에 직접 엑세스할 수 있도록하여 한개의 칩상에 두 프로세서간 고속 통신을 위한 주문형 집적회로를 제공하는데 있다.
본 발명의 제 2목적은 원칩상에 제 1 및 제 2프로세서 메모리 제어기, 제 1 및 제 2프로세서 인터럽트 제어기 등을 구비하여, 상기 제 1 및 제 2프로세서부가 각각 독립적인 버스와 메모리를 구성함으로써, 전송하고자 하는 데이터가 동시에 발생할 경우에도 데이터처리가 가능하도록 하는데 있다.
본 발명의 제 3목적은 개개의 프로세서부 및 개개의 프로세서 IPC부가 코프로세서 데이터/레지스터 전송 명령에 의해 제어됨으로써, 별도의 메모리제어신호를 생성하지 않도록 하는데 있다.
본 발명의 제 4목적은 데이터출력 제어신호를 조합함으로써, 개개의 프로세서부가 비동기로 동작하여도 데이터 교환이 가능하게 하는데 있다.
본 발명을 달성하기 위한 기술적 사상으로, 송·수신 FIFO, 또는 듀얼포트램을 이용한 프로세서간 통신시스템에 있어서,
각각 독립적인 버스와 메모리를 구비하는 제 1 및 제 2프로세서 메모리 제어기와, 제 1 및 제 2프로세서 인터럽트 제어기에 의해, 제 1 및 제 2프로세서 외부 메모리부에 직접 엑세스처리를 하며, 코프로세서 전송명령에 의해 제 1 및 제 2프로세서 IPC부와의 데이터 교환을 제어하는 제 1 및 제 2프로세서부와, 상기 코프로세서 전송 명령에 의해 상기 제 1 및 제 2프로세서부와의 데이터 교환을 제어하는 제 1 및 제 2프로세서 IPC부를 포함하여 구성되게 함으로써, 데이터 교환시 별도의 제어신호가 필요 없는 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로를 구비하여,
IPC 장치의 비용저하를 위해, 상기 제 1 및 제 2프로세서부 및 제 1 및 제 2프로세서 IPC부에 버퍼를 구비함으로써, 동시에 각각의 IPC 장치가 버퍼에 접속 가능하고, 또한 원칩화가 가능하게 하는 장치를 제공하며, 상대 프로세서 IPC부에 구비된 레지스터에 접근시, 데이터출력 제어신호인 P-MS신호, P_RDN신호, P-ADR신호, P_WRN신호 등의 조합으로 인해 상기 제 1 및 제 2프로세서부가 비동기로 동작하여도 데이터 교환이 가능하게 하는데 있다.
도 1a, 1b는 종래의 IPC장치를 나타낸 구성도.
도 2는 본 발명의 주요부인 원칩(One Chip)으로 구성된 IPC장치의 프로세서간의 접속을 나타낸 개략적인 전체구성도.
도 3은 상기 도 2에 도시된 제 1프로세서 IPC부 및 제 2프로세서 IPC부에서 생성되는 개개의 제어신호 및 구성요소를 세세하게 나타낸 상세구성도.
도 4는 본 발명의 IPC장치를 이용하여 한개의 데이터를 송신하는 단계를 나타낸 순서도.
도 5는 본 발명의 IPC장치를 이용하여 여러개의 데이터를 송신하는 단계를 나타낸 순서도.
도 6은 본 발명의 IPC장치를 이용하여 한개의 데이터를 수신하는 단계를 나타낸 순서도.
도 7은 본 발명의 IPC장치를 이용하여 여러개의 데이터를 수신하는 단계를 나타낸 순서도.
<도면의 주요부분에 대한 부호설명>
1a, 2a : 제 1 프로세서 1b, 2b : 제 2 프로세서
3 : 수신 FIFO 4a, 4b : 접속제어부
5 : 송신 FIFO 6 : 듀얼포트램
7a : 제 1프로세서 외부 메모리부 7b : 제 2프로세서 외부 메모리부
8a : 제 1프로세서 메모리 제어기 8b : 제 2프로세서 메모리 제어기
9a : 제 1프로세서부 9b : 제 2프로세서부
10a : 제 1프로세서 인터럽트 제어기 10b : 제 2프로세서 인터럽트 제어기
11a : 제 1프로세서 IPC부 11b : 제 2프로세서 IPC부
12 : CMD_레지스터 13 : STX_버퍼
14 : MTX_버퍼부 15 : 데이터 제어부
16 : 엔디언 체인지부 17 : 데이터 먹싱부
18 : 인터럽트 길이 결정 레지스터 19 : IPC 현재상태 저장부
19a, 19a′ : SIZE_레지스터 19b, 19b′ : TX_CMD_레지스터
19c, 19c′ : ENDIAN_레지스터 19d, 19d′ : BUSY_레지스터
19e, 19e′ : WAIT_레지스터
이하에서는 본 발명의 실시예에 대한 구성 및 작용을 첨부한 도면을 참조하여 상세히 설명하기로 한다.
본 발명에서 구현되는 IPC장치는 코프로세서(coprocessor)로 동작하며 크게 두 부분의 연결로 구성되어진다. 즉, 첫번째는 프로세서와의 연결이고, 두번째는 상대 IPC장치와의 연결이다.
도 2는 본 발명의 주요부인 원칩(one chip)으로 구성된 IPC장치의 프로세서간의 접속을 나타낸 개략적인 전체구성도이다.
도 2에 도시한 바와 같이, 제 1 및 제 2프로세서 메모리부(이하 제 1·2프로세서 외부 메모리부라 표기)(7a, 7b), 제 1 및 제 2프로세서 메모리 제어기(이하 제 1·2프로세서 메모리 제어기라 표기)(8a, 8b) 및 제 1 및 제 2프로세서 인터럽트 제어기(이하 제 1·2프로세서 인터럽트 제어기라 표기)(10a, 10b)에 의해 각각 독립적인 버스(bus)와 메모리를 구비한 제 1 및 제 2프로세서부(이하 제 1·2프로세서부라 표기)(9a, 9b)와, 동일주파수, 또는 다른 동작 주파수를 생성하며, 제 1프로세서부(9a)와 제 2프로세서부(9b) 사이에서 각각 제 1프로세서 외부 메모리부(7a)와 제 2프로세서 외부 메모리부(7b)에 엑세스(access)할 수 있도록 제어하는 제 1 및 제 2프로세서 IPC부(이하 제 1·2프로세서 IPC부라 표기)(11a, 11b)로 구성된다.
상기 제 1·2프로세서부(9a, 9b)는 코프로세서 명령이 아니며(not coprocessor instruction), 로(low)일 경우, 코프로세서의 명령수행시작 신호인 "nCPI"신호와, OP-코드 추출단계가 아니며(not OP-code fetch), 로(low)일 경우, 다음 사이클(cycle)에서 명령을 추출(fetch)하거나, 또는 하이(high)일 경우, 다음 사이클에서 데이터를 읽어 오도록 제어하는 "nOPC"신호를 각각 생성하여 제 1·2프로세서 IPC부(11a, 11b)를 제어한다.
또한, 상기 제 1 및 제 2프로세서부는데이터 교환시, 통신의 마스터로도, 또는 슬레이브로도 동작이 가능하도록 구성되어진다.
상기 제 1·2프로세서 IPC부(11a, 11b)는 코프로세서가 부재(coprocessor absent)이며, 제 1·2프로세서부(9a, 9b)가 통신을 원할 경우, 코프로세서가 로(low)로 드라이브(drive)하도록 제어하는 "CPA"신호와, 코프로세서 비지(coprocessor busy)이며, 코프로세서 명령을 수행할 준비가 되어 있으면, 코프로세서가 로(low)로 드라이브 하도록 제어하는 "CPB"신호를 각각 생성하여 제 1·2프로세서부(9a, 9b)를 제어한다.
또한, 상기 제 1·2프로세서 IPC부(11a, 11b)는 코프로세서로 설계되어 한개의 프로세서부와 다수개의 다른 프로세서부간 데이터교환을 위한 확장이 용이하도록 구성되어진다.
여기서 상기 제 1·2프로세서부(9a, 9b)와 상기 제 1·2프로세서 IPC부(11a, 11b) 사이의 데이터 통신은 데이터 버스(data bus)를 통하여 이루어진다.
도 3은 상기 도 2에 도시된 제 1프로세서 IPC부 및 제 2프로세서 IPC부에서 생성되는 개개의 제어신호 및 구성요소를 세세하게 나타낸 상세구성도이다.
여기서 제 1프로세서 IPC부(11a)에서 생성되는 개개의 제어신호와 제 2프로세서 IPC부(11b)에서 생성되는 개개의 제어신호는 상기 개개의 제어신호를 생성하는 제 1프로세서 IPC부(11a) 및 제 2프로세서 IPC부(11b)의 구성요소가 동일하여 생성되는 개개의 제어신호도 동일한 작용을 하며, 제 1·2프로세서부(9a, 9b)의 데이터의 요청에 따라 제 1프로세서 IPC부(11a)와 제 2프로세서 IPC부(11b)가 서로를 제어하여 데이터전송이 되도록 구성되어진다.
또한, 생성되는 개개의 제어신호가 제 1·2프로세서 IPC부(11a, 11b)에서 출력일 경우, P라는 머릿글자를 기재하고, 입력일 경우, V라는 머릿글자를 개개의 제어신호에 기재한다.
도 3에 도시한 바와 같이, CMD_레지스터(12)와, STX_버퍼(13)와, MTX_버퍼부(14)와, 인터럽트 길이 결정 레지스터(18)와, 엔디언 체인지부(16)와, 데이터 제어부(15)와, 데이터 먹싱부(17)와, IPC 현재상태 저장부(19)로 구성된다.
상기 CMD_레지스터(12)는 상대 프로세서 외부 메모리부(제 1프로세서 외부 메모리부(7a), 또는 제 2프로세서 외부 메모리부(7b))의 특정번지에 데이터를 쓰거나, 또는 특정 번지로 부터 데이터를 읽을 때, 그 주소를 기록한 후 상대 프로세서부(제 1프로세서부(9a), 또는 제 2프로세서부(9b))로 인터럽트(interrupt)를 요청한다.
상기 STX_버퍼(13)는 상대 프로세서부로 전송될 데이터가 하나인 경우, 상기 전송될 데이터를 기록한 후 상대 프로세서부로 인터럽트를 요청한다.
상기 MTX_버퍼부(14)는 상대 프로세서부로 보낼 데이터가 다수개인 경우, 상기 전송될 다수개의 데이터를 기록한 후, 상대 프로세서부로 인터럽트를 요청하며, 필요한 경우, 다수개의 MTX_버퍼로 구비되어진다.
상기 인터럽트 길이 결정 레지스터(18)는 제 1·2프로세서부(9a, 9b)간의 동작 주파수가 달라 생기는 문제를 해결한다.
즉, 인터럽트신호가 짧아서 상대 프로세서 인터럽트 제어기(제 1프로세서 인터럽트 제어기(10a,), 또는 제 1프로세서 인터럽트 제어기(10b))가 인터럽트 요구를 인식하지 못하는 경우를 위해 인터럽트 길이를 설정한다.
상기 엔디언 체인지부(endian change)(16)는 ENDIAN_레지스터(19c)에 저장된 정보에 따라 데이터의 순서를 결정하는 빅 엔디언(big_endian)과 리들 엔디언(little_endian) 중, 원하는 데이터 정렬순으로 데이터를 배열한다.
상기 데이터 제어부(15)는 제 1·2프로세서부(9a, 9b)와 제 1·2프로세서 IPC부(11a, 11b) 사이의 데이터 교환 방향을 제어한다.
상기 데이터 먹싱부(17)는 CMD_레지스터(12), STX_버퍼(13), MTX_버퍼부(14)에 저장된 값을 상대 프로세서부가 요구할 때, 데이터출력 제어신호인 V_MS신호, V_RDN신호 및 V_ADR신호의 조합(combination logic)으로 원하는 데이터를 전송할 수 있도록 구현됨으로써, 제 1 및 제 2프로세서부(9a, 9b)가 비동기로 동작하여도 원하는 데이터를 전송 하여 준다.
여기서 P_MS신호는 제 1·2프로세서부(9a, 9b)가 상대 프로세서 IPC부의 MTX_버퍼부(14)에 저장된 데이터를 읽는다.
예를 들어, 제 1프로세서부(7a)가 코프로세서 데이터 전송 명령(coprocessor Data Transfer Instruction)을 통해 제 2프로세서 IPC부(11b)의 MTX_버퍼부(14)에 래치된 데이터를 읽도록 제어하는 데이터출력 제어신호이다.
P_RDN신호는 제 1·2프로세서부(9a, 9b)가 상대 프로세서 IPC부의 CMD_레지스터(12), 또는 STX_버퍼(13)에 저장된 데이터를 읽는다.
예를 들어, 제 1프로세서부(7a)가 코프로세서 데이터 전송 명령(coprocessor Data Transfer Instruction)을 통해 제 2프로세서 IPC부(11b)의 CMD_레지스터(12), 또는 STX_버퍼(13)에 래치된 데이터를 읽도록 제어하는 데이터출력 제어신호이다.
P_ADR신호는 상기 CMD_레지스터(12), STX_버퍼(13), MTX_버퍼부(14)의 구별에 사용되는 데이터출력 제어신호이다.
즉, 상기 P_MS신호, P_RDN신호 및 P_ADR신호의 조합으로 CMD_레지스터(12), STX_버퍼(13), 또는 MTX_버퍼부(14) 중, 하나의 데이터가 신호선을 통하여 전송된다.
상기 IPC 현재상태 저장부(19)는 상대 프로세서부로 현재의 프로세서 IPC부의 상태를 알려주는 P_MOD신호를 생성하기 위해, SIZE_레지스터(19a)와, TX_CMD_레지스터(19b)와, ENDIAN_레지스터(19c)와, BUSY_레지스터(19d)와, WAIT_레지스터(19e)로 구성된다.
BUSY_레지스터(19d)는 상대 프로세서 IPC부가 인터럽트를 통해 서비스를 요청하면 "1"로 설정하며, 서비스가 끝나면 "0"으로 바뀌도록 설정된 신호가 저장된다. 즉, 상대 프로세서부로 인터럽트를 요청할 때에는 상대 프로세서 IPC부의 BUSY_레지스터를 검출하여 "0"의 상태일 때, 요청하는 레지스터이다.
ENDIAN_레지스터(19c)는 여러개의 데이터를 상대 프로세서부로 부터 전송받거나, 또는 전송할 때, 빅_엔디언(big_endian)과 리틀_엔디언(little_endian) 중, 원하는 데이터 정렬순서를 나타내는 비트로 인터럽트를 요청한 ENDIAN_레지스터에서 설정하며, 서비스를 하는 ENDIAN_레지스터에서는 상대 프로세서 IPC부의 ENDIAN_레지스터를 판독하여 처리한다.
SIZE_레지스터(19a)는 여러개의 데이터를 상대 프로세서부로 전송받거나, 전송할 경우, 데이터 개수를 표시하는 레지스터로 상기 ENDIAN_레지스터(19c)와 동일하게 인터럽트를 요청한 SIZE_레지스터에서 설정하며, 서비스를 하는 SIZE_레지스터에서는 상대 IPC의 Size_레지스터를 판독하여 처리한다.
TX_CMD_레지스터(19b)는 상대 TX_CMD_레지스터가 요청한 인터럽트의 종류를 나타내는 비트가 저장된 레지스터이며, 인터럽트 서비스요청을 받은 제 1·2프로세서부(9a, 9b)는 이 정보를 판독함으로써, 처리할 서비스 종류를 결정한다.
WAIT_레지스터(19e)는 제 1·2프로세서부의 마스터 판독(master read)시, 판독데이터가 슬레이브(slave)에서 준비되었음을 알리는 방법이 인터럽트 방법인지, 또는 지속적으로 마스터가 감시하는 방법 인지를 결정하는 레지스터이다. 여기서 상기 WAIT_레지스터(19e)에 저장된 신호가 "0"일 경우, 상기 제 1·2프로세서부 중, 마스터가 기다리며, 상기 WAIT_레지스터(19e)에 저장된 신호가 "1"일 경우, 상기 제 1·2프로세서부 중, 슬레이브가 인터럽트로 마스터에게 알려준다.
P_WRN신호는 제 1·2프로세서 IPC부(11a, 11b) 중에서, 상대 프로세서 IPC부로 인터럽트를 요청하는 신호로써, 상기 P_WRN신호에 의해 BUSY_레지스터 및 TX_CMD_레지스터가 설정된다.
P_INT_REQ신호는 제 1·2프로세서 IPC부(11a, 11b) 중에서, 인터럽트를 요청하면 상대 프로세서 인터럽트 제어기(제 1프로세서 인터럽트 제어기(10a), 또는 제 2프로세서 인터럽트 제어기(10b))의 소스(source)가 되는 신호이다.
상술한 프로세서 IPC부의 구성요소는 제 1프로세서 IPC부(11a) 및 제 1프로세서 IPC부(11b)에 각각 동일하게 구비가 되어진다.
또한, 상기 도 1 및 도 2에 도시된 시스템인 제 1·2프로세서부(9a, 9b)을이용하여 데이터를 전송받거나, 또는 전송할 경우, 상대 프로세서로 인터럽트를 요청하면 된다.
여기서 제 1·2프로세서부(9a, 9b)의 동작주파수가 틀릴 경우, 인터럽트 전에 제 1·2프로세서 IPC부(11a, 11b)의 인터럽트 길이 결정 레지스터(18)를 설정하여 상호 요청하는 인터럽트를 인식할 수 있도록 한다.
또한, 상술한 시스템을 이용하여 데이터를 송/수신하는 방법은 한개의 데이터 송/수신 및 여러개의 데이터 송/수신 방법으로 구분되어진다.
도 4는 본 발명의 IPC장치를 이용하여 한개의 데이터를 송신하는 단계를 나타낸 순서도이다. 여기서 제 1프로세서부(9a)가 마스터라고 가정한다.
도 4에 도시한 바와 같이, 코프로세서 레지스터 전송 명령(coprocessor register transfer instruction)에 의해 제 1프로세서부가 제 2프로세서부로 전송할 데이터를 제 1프로세서 IPC부의 STX_버퍼에 기록하는 단계(S100)와,
코프로세서 레지스터 전송 명령에 의해 제 1프로세서부가 제 2프로세서 IPC부의 BUSY_레지스터에 저장된 인터럽트를 요청하는 신호를 전송하는 V_MOD신호(현재의 제 2프로세서 IPC부의 상태를 알려주는 신호)를 판독하여 상기 제 2프로세서부가 인터럽트를 처리할 수 있을 때까지 대기하는 단계(S110)와,
코프로세서 레지스터 전송 명령에 의해 제 1프로세서부가 쓰기 원하는 제 2프로세서 외부 메모리부의 번지를 제 1프로세서 IPC부의 CMD_레지스터에 기록하는 단계(S120)와,
제 2프로세서 인터럽트 제어기에 의해 제 1프로세서 IPC부가 인터럽트를 발생하는 단계(S130)와,
코프로세서 레지스터 전송 명령에 의해 제 2프로세서부가 제 1프로세서 IPC부의 TX_CMD_레지스터에 저장된 처리할 인터럽트 서비스 종류를 결정하는 신호를 전송하는 V_MOD신호를 판독하여 제 1프로세서가 제 2프로세서로 한개의 데이터를 전송하는 것을 판별하는 단계(S140)와,
코프로세서 레지스터 전송 명령에 의해 제 2프로세서부가 데이터 출력신호인 P_MS신호, P_RDN신호 및 P_ADR신호를 제어하여 제 1프로세서 IPC부의 STX_버퍼와 CMD_레지스터에 저장된 데이터를 판독함으로써 생성되는 한개 데이터 전송 명령(single data transfer instruction)에 의해 상기 제 1프로세서 IPC부의 인터럽트를 처리하는 단계(S150)를 포함하여 구성된다.
상기 S120단계에 있어서, 상기 제 1프로세서 IPC부(11a)의 CMD_레지스터(12)에 정보를 기록함과 동시에, 제 1프로세서 IPC부(11a)의 TX_CMD_레지스터(19b)에 한개의 데이터를 제 1프로세서부가 송신한다는 정보가 저장된다.
상기 S130단계에 있어서, 상기 제 1프로세서 IPC(11a)부가 인터럽트를 발생함과 동시에, 제 2프로세서 IPC부(11b)의 BUSY_레지스터(19d′)는 제 1프로세서부(9a)에서 전송되는 P_WRN신호에 의해서 "1"로 설정되며, 제 2프로세서부(9b)는 인터럽트 서비스 루틴(routine)으로 점프(JUMP)한다.
상기 S150단계에 있어서, 상기 제 1프로세서 IPC부(11a)의 인터럽트를 처리함과 동시에 제 2프로세서 IPC부(11b)의 BUSY_레지스터(19d)는 "0"으로 신호가 클리어되어 저장된다.
도 5는 본 발명의 IPC장치를 이용하여 여러개의 데이터를 송신하는 단계를 나타낸 순서도이다. 여기서 제 1프로세서부(9a)가 마스터라고 가정한다.
도 5에 도시한 바와 같이, 코프로세서 레지스터 명령(coprocessor register transfer instruction)에 의해 제 1프로세서부가 제 2프로세서부로 전송할 데이터의 개수와 엔디언 종류를 제 1프로세서 IPC부의 ENDIAN_레지스터와 SIZE_레지스터에 기록하는 단계(S200)와,
코프로세서 레지스터 전송 명령에 의해 제 1프로세서부가 제 2프로세서 IPC부의 BUSY_레지스터에 저장된 인터럽트를 요청하는 신호를 전송하는 V_MOD신호를 판독하여 상기 제 2프로세서부가 인터럽트를 처리할 수 있을 때까지 대기하는 단계(S210)와,
코프로세서 레지스터 전송 명령에 의해 전송될 데이터를 제 1프로세서 외부 메모리부로부터 제 1프로세서 IPC부의 MTX_버퍼부에 기록하는 단계(S220)와,
코프로세서 레지스터 전송 명령에 의해 제 1프로세서부가 쓰기 원하는 제 2프로세서 외부메모리부의 번지를 제 1프로세서 IPC부의 CMD_레지스터에 기록하는 단계(S230)와,
제 2프로세서 인터럽트 제어기에 의해 제 1프로세서 IPC부가 인터럽트를 발생하는 단계(S240)와,
코프로세서 레지스터 전송 명령에 의해 제 2프로세서부가 제 1프로세서 IPC부의 TX_CMD_레지스터에 저장된 처리할 인터럽트 서비스 종류를 결정하는 신호를 전송하는 V_MOD신호를 판독하여 제 1프로세서가 제 2프로세서로 다수개의 데이터를전송하는 것에 대한 판별 및 제 1프로세서 IPC부의 사이즈정보를 기억하는 단계(S250)와,
코프로세서 레지스터 전송 명령에 의해 제 2프로세서부가 데이터출력신호인 P_MS신호, P_RDN신호 및 P_ADR신호를 제어하여 제 1프로세서 IPC부의 CMD_레지스터에 저장된 데이터 판독 및 코프로세서 레지스터 전송 명령에 의해
제 1프로세서 IPC부의 MTX_버퍼부에 저장된 데이터를 판독하여 제 2프로세서 외부 메모리부에 기억한 크기 만큼 기록하는 단계(S260)를 포함하여 구성된다.
상기 S220단계에 있어서, 전송할 데이터의 기록(write)된 개수와 엔디언의 종류는 이전단계에서 저장된 값을 참고하도록 구성되어진다.
상기 S230단계에 있어서, 상기 제 1프로세서 IPC부의 CMD_레지스터(12)에 기록되는 정보에는 여러개의 데이터를 제 1프로세서부(9a)에서 전송한다는 정보가 포함되어 진다.
상기 S240단계에 있어서, 상기 제 1프로세서 IPC부가 인터럽트를 발생함과 동시에, 제 2프로세서 IPC(11b)부의 BUSY_레지스터(19d′)는 제 1프로세서부에서 전송되는 P_WRN신호에 의해서 "1"로 설정되며, 제 2프로세서부(9b)는 인터럽트 서비스 루틴으로 점프한다.
상기 S260단계에 있어서, 상기 제 2프로세서 외부 메모리부에 데이터를 기록함과 동시에 제 2프로세서 IPC부의 BUSY_레지스터는 "0"으로 클리어된다.
도 6은 본 발명의 IPC장치를 이용하여 한개의 데이터를 수신하는 단계를 나타낸 순서도이다.
도 6에 도시한 바와 같이, 코프로세서 레지스터 전송 명령에 의해 제 1프로세서부가 제 2프로세서 IPC부의 BUSY_레지스터에 저장된 인터럽트를 요청하는 신호를 전송하는 V_MOD신호를 판독하여 제 2프로세서부가 인터럽트를 처리할 수 있을 때까지 대기하는 단계(S300)와,
코프로세서 레지스터 전송 명령에 의해 제 1프로세서부가 받길 원하는 정보를 제 1프로세서 IPC부의 CMD_레지스터에 기록하는 단계(S310)와,
제 2프로세서 인터럽트 제어기에 의해 제 1프로세서 IPC부가 인터럽트를 발생하는 단계(S320)와,
코프로세서 레지스터 전송 명령에 의해 제 2프로세서부가 제 1프로세서 IPC부의 TX_CMD_레지스터에 저장된 요청한 인터럽트의 종류를 결정하는 신호를 전송하는 V_MOD신호를 판독하여 제 1프로세서부가 제 2프로세서부로부터 한개의 데이터를 수신하는 것을 판별하는 단계(S330)와,
코프로세서 레지스터 전송 명령에 의해 제 2프로세서부가 데이터 출력신호인 P_MS신호, P_RDN 및 P_ADR신호를 제어하여 제 1프로세서 IPC부의 CMD_레지스터에 저장된 데이터를 판독함으로써, 생성되는 한개 데이터 전송 명령(single data transfer instruction)에 의해 제 1프로세서부가 원하는 정보를 제 2프로세서 IPC부의 STX_버퍼에 기록하는 단계(S340)와,
코프로세서 레지스터 전송 명령에 의해 제 2프로세서부가 제 2프로세서 IPC부의 TX-CMD_레지스터의 값을 특정한 값으로 변환하여 제 1프로세서에서 값을 가져가도 된다는 데이터 전송신호를 전송하는 단계(S350)와,
상기 제 2프로세서 IPC부의 TX_CMD_레지스터에 저장된 값이 특정한 값으로 변환된 것을 감지한 제 2프로세서부는 코프로세서 레지스터 전송 명령에 의해 P_MS신호, P_RDN 및 P_ADR신호를 제어하여 제 1프로세서 IPC부의 STX_버퍼에 저장된 정보를 가져오는 단계(S360)를 포함하여 구성된다.
상기 S310단계에 있어서, 상기 제 1프로세서 IPC부(11a)의 CMD_레지스터(12)에 정보를 기록함과 동시에, 제 1프로세서 IPC부(11a)의 TX_CMD_레지스터(19b)에 한개의 데이터를 제 1프로세서부가 수신한다는 정보가 저장된다.
상기 S320단계에 있어서, 상기 제 1프로세서 IPC(11a)부가 인터럽트를 발생함과 동시에, 제 2프로세서 IPC부(11b)의 BUSY_레지스터(19d′)는 제 1프로세서부(9a)에서 전송되는 P_WRN신호에 의해서 "1"로 설정되며, 제 2프로세서부(9b)는 인터럽트 서비스 루틴(routine)으로 점프(JUMP)한다.
또한, 상기 제 1프로세서부(9a)는 제 2프로세서 IPC부(11b)의 TX_CMD_레지스터(19b′)를 계속 감시하여 제 2프로세서부(9b)가 데이터를 송신할때 까지 대기한다.
여기서 상기 제 1프로세서부(9a)가 데이터를 수신할 때까지 대기하는 이유는 명령수행과 같은 처리시간이 길지 않은 적은 크기의 데이터이기 때문이다.
상기 S340단계에 있어서, 제 2프로세서 IPC(11b)부의 STX_버퍼에 원하는 정보를 기록함과 동시에 제 2프로세서부(9b)는 제 2프로세서 IPC부(11b)의 TX_CMD_레지스터(19b′)에 저장된 값을 특정값으로 변환하여 제 1프로세서부(9a)에 저장된 값을 가져가도 된다는 신호를 전송하며, 이때, 제 2프로세서 IPC부(11b)의 BUSY_레지스터(19d′)는 "0"으로 신호가 클리어된다.
도 7은 본 발명의 IPC장치를 이용하여 여러개의 데이터를 수신하는 단계를 나타낸 순서도이다.
도 7에 도시한 바와 같이, 코프로세서 레지스터 전송 명령에 의해 제 1프로세서부가 제 2프로세서 IPC부의 BUSY_레지스터에 저장된 인터럽트를 요청하는 신호를 전송하는 V_MOD신호를 판독하여 제 2프로세서부가 인터럽트를 처리할 수 있을 때까지 대기하는 단계(S400)와,
코프로세서 레지스터 명령에 의해 제 1프로세서부가 제 2프로세서부로 수신할 데이터의 개수, 엔디언 종류 및 상기 제 2프로세서부가 준비했슴을 알리는 신호를 상기 제 1프로세서 IPC부의 ENDIAN_레지스터, SIZE_레지스터 및 WAIT_레지스터에 각각 기록하는 단계(S410)와,
코프로세서 레지스터 전송 명령에 의해 제 1프로세서부가 받길 원하는 제 2프로세서 외부 메모리부의 번지를 제 1프로세서 IPC부의 CMD_레지스터에 기록하는 단계(S420)와,
제 2프로세서 인터럽트 제어기에 의해 제 1프로세서 IPC부에서 인터럽트를 발생하는 단계(S430)와,
코프로세서 레지스터 전송 명령에 의해 제 2프로세서부가 제 1프로세서 IPC부의 TX_CMD_레지스터에 저장된 요청한 인터럽트의 종류를 결정하는 신호를 전송하는 V_MOD신호를 판독하여 제 1프로세서부가 제 2프로세서부로 부터 여러개의 데이터를 수신하는 것에 대한 판별 및 제 1프로세서 IPC부에 각각 저장되어 있는 SIZE정보, ENDIAN 정보 및 WAIT정보를 기억하는 단계(S440)와,
코프로세서 레지스터 전송 명령에 의해 제 2프로세서부가 데이터출력신호인 P_MS신호, P_RDN 및 P_ADR신호를 제어하여 제 1프로세서 IPC부의 CMD_레지스터에 저장된 데이터를 판독함으로써, 생성되는 코프로세서 데이터 전송 명령(coprocessor data transfer instruction)에 의해 제 1프로세서부가 원하는 정보를 제 2프로세서 IPC부의 STX_버퍼에 기록하는 단계(S450)와,
상기 제 2프로세서 IPC부의 TX_CMD_레지스터에 저장된 값이 특정한 값으로 변환된 것을 감지한 제 2프로세서부는 코프로세서 레지스터 전송 명령에 의해 P_MS신호, P_RDN 및 P_ADR신호를 제어하여 제 1프로세서 IPC부의 MTX_버퍼부에 저장된 정보를 가져오는 단계(S460)를 포함하여 구성된다.
상기 S420단계에 있어서, 상기 제 1프로세서 IPC부(11a)의 CMD_레지스터(12)에 정보를 기록함과 동시에, 제 1프로세서 IPC부(11a)의 TX_CMD_레지스터(19b)에 여러개의 데이터를 제 1프로세서부가 수신한다는 정보가 저장된다.
상기 S430단계에 있어서, 상기 제 1프로세서 IPC(11a)부가 인터럽트를 발생함과 동시에, 제 2프로세서 IPC부(11b)의 BUSY_레지스터(19d′)는 제 1프로세서부(9a)에서 전송되는 P_WRN신호에 의해서 "1"로 설정되며, 제 2프로세서부(9b)는 인터럽트 서비스 루틴으로 점프한다.
또한, 제 2프로세서 IPC부(11b)의 WAIT_레지스터(19e′)에 저장된 신호가 "0"이면 제 1프로세서부는 제 2프로세서 IPC부의 TX_CMD_레지스터를 감시하여 제 2프로세서부가 데이터를 전송할 때까지 대기한다.
상기 S450단계에 있어서, 데이터의 개수와 ENDIAN 종류는 이전단계에서 기억한 값을 참고한다.
또한, WAIT정보의 값이 "0" 이면 제 2프로세서부(9b)는 제 2프로세서 IPC부(11b)의 TX_CMD_레지스터(19b′)에 저장된 값을 특정값으로 변환하여 제 1프로세서부(9a)에 저장된 값을 가져가도 된다는 신호를 전송하며, 이때, 제 2프로세서 IPC부(11b)의 BUSY_레지스터(19d′)는 "0"으로 신호가 클리어된다.
여기서 상기 WAIT정보의 값이 "1" 이면 제 1프로세서부(9a)로 인터럽트를 전송한다. 이때, 제 2프로세서 IPC(11b′)부의 TX_CMD_레지스터(19b′)에 저장된 정보를 제 1프로세서부(9a)가 가져가도 된다는 신호가 입력된다.
상기 S460단계에 있어서, WAIT정보가 "1" 이면 제 1프로세서부(9a)는 인터럽트 서비스 루틴으로 점프한다. 또한, 제 1프로세서부(9a)는 제 2프로세서 IPC(11b′)부의 TX_CMD_레지스터(19b′)에 저장된 값을 판독하여 제 2프로세서부(9b)가 데이터를 가져가도 된다는 신호임을 감지하며, 제 1프로세서 IPC부(11a)의 MTX_버퍼부(14)에 저장된 값을 가져온다.
이상에서 설명한 바와 같이, 본 발명은 개개의 프로세서부가 각각 독립적으로 버스와 메모리를 구비하여 전송하고자 하는 데이터가 동시에 발생할 경우에도 데이터처리가 가능하게 하는 효과가 있다.
또한, 칩내부의 개개의 프로세서 IPC부에 버퍼를 구비하여 개개의 프로세서 IPC부가 버퍼에 접속이 가능하도록 하여 원칩화가 가능한 효과가 있다.
또한, 개개의 프로세서부 및 개개의 프로세서 IPC부가 코프로세서 데이터/레지스터 전송 명령에 의해 제어됨으로써, 별도의 메모리제어신호를 필요로 하지 않는 효과가 있다.
또한, 데이터출력 제어신호를 조합함으로써, 개개의 프로세서부가 비동기로 동작하여도 데이터 교환이 가능하게 하는 효과가 있다.
또한, 개개의 프로세서부가 데이터 교환에 있어서, 마스터, 또는 슬레이브로도 동작이 가능한 효과가 있다.
또한, 데이터교환, 즉, 데이터의 송, 수신시, 데이터 처리과정을 한개, 또는 다수개로 구별하여 데이터교환을 함으로써, 많은 정보 데이터가 아닌 명령수행과 관련된 적은 데이터의 통신이 신속한 효과가 있다.
또한, 인터럽트 길이 결정 레지스터에 의해 인터럽트가 유지되는 길이를 조절하여 비동기 프로세서간 통신에서 상대 인터럽트를 놓치는 것을 미연에 방지할 수 있는 효과가 있다.
또한, 마스터로 지정된 프로세서부가 프로세서간 데이터 교환전에 SIZE_레지스터 및 ENDIAN_레지스터를 설정하여 크기가 가변인 데이터를 전송할 수 있는 효과가 있다.
Claims (7)
- 송·수신 FIFO, 또는 듀얼포트램을 이용한 프로세서간 통신시스템에 있어서,각각 독립적인 버스와 메모리를 구비하는 제 1 및 제 2프로세서 메모리 제어기와, 제 1 및 제 2프로세서 인터럽트 제어기에 의해, 제 1 및 제 2프로세서 외부 메모리부에 직접 엑세스처리를 하며, 코프로세서 전송명령에 의해 제 1 및 제 2프로세서 IPC부와의 데이터 교환을 제어하는 제 1 및 제 2프로세서부와;상기 코프로세서 전송 명령에 의해 상기 제 1 및 제 2프로세서부와의 데이터 교환을 제어하는 제 1 및 제 2프로세서 IPC부를 포함하여 구성되는 것을 특징으로 하는 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로.
- 청구항 1에 있어서, 상기 제 1 및 제 2프로세서부는,데이터 교환시, 통신의 마스터로도, 또는 슬레이브로도 동작이 가능한 것을 특징으로 하는 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로.
- 청구항 1에 있어서, 상기 제 1 및 제 2프로세서 IPC부는,상대 프로세서 외부 메모리부의 특정번지에 데이터를 쓰거나, 또는 상기 상대 프로세서 외부 메모리부의 특정 번지로부터 데이터를 읽을 때, 그 주소를 기록한 후 상대 프로세서부로 인터럽트를 요청하는 CMD_레지스터와;상대 프로세서부로 하나의 데이터가 전송될 때, 상기 전송될 하나의 데이터를 기록한 후 상대 프로세서부로 인터럽트를 요청하는 STX_버퍼와;상기 상대 프로세서부로 다수개의 데이터가 전송될 때, 상기 전송될 다수개의 데이터를 기록한 후, 상대 프로세서부로 인터럽트를 요청하는 적어도 하나 이상의 MTX_버퍼로 구성되는 MTX_버퍼부와;동작주파수가 다른 제 1 및 제 2프로세서부의 인터럽트 길이를 설정하는 인터럽트 길이 결정 레지스터와;IPC 현재상태 저장부에 구비된 ENDIAN_레지스터에 저장된 정보에 따라 원하는 데이터 정렬순으로 데이터를 배열하는 엔디언 체인지부와;제 1 및 제 2프로세서부와 데이터 교환 방향을 제어하는 데이터 제어부와;상기 CMD_레지스터, 상기 STX_버퍼 및 상기 MTX_버퍼부에 저장된 값을 비동기로도 동작하는 상기 상대 프로세서부가 요구시, 데이터출력 제어신호의 조합으로 원하는 데이터를 전송 하여 주는 데이터 먹싱부와;상기 상대 프로세서부로 현재의 프로세서 IPC부의 상태를 알려주는 P_MOD신호를 생성하는 IPC 현재상태 저장부를 포함하여 각각 구성되는 것을 특징으로 하는 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로.
- 청구항 1, 또는 청구항 3에 있어서,상기 제 1 및 제 2프로세서 IPC부는,코프로세서로 설계되어 한개의 프로세서부와 다수개의 다른 프로세서부간 데이터교환을 위한 확장이 용이한 것을 특징으로 하는 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로.
- 청구항 3에 있어서,상기 데이터출력 제어신호의 조합은,제 1 및 제 2프로세서부가 상대 프로세서 IPC부의 MTX_버퍼부에 저장된 데이터를 읽도록 제어하는 P_MS신호와;상기 제 1 및 제 2프로세서부가 상대 프로세서 IPC부의 CMD_레지스터, 또는 STX_버퍼에 저장된 데이터를 읽도록 제어하는 P_RDN신호와;상기 CMD_레지스터, 상기 MTX_버퍼부 및 상기 STX_버퍼의 구별에 사용되는 P_ADR신호의 조합인것을 것을 특징으로 하는 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로.
- 청구항 3에 있어서,상기 IPC 현재상태 저장부는,상대 프로세서 IPC부가 인터럽트를 통해 서비스를 요청하면 서비스 시작 및 서비스 종료를 제어하는 신호가 저장되는 BUSY_레지스터와;상대 프로세서부에게 다수개의 데이터를 송, 수신시, 원하는 데이터 정렬순서를 나타내는 비트로써, 인터럽트를 요청한 상대 ENDIAN_레지스터를 설정하여 주는 ENDIAN_레지스터와;상기 상대 프로세서부에게 다수개의 데이터를 송·수신시, 데이터 개수를 표시하는 SIZE_레지스터와;상대 TX_CMD_레지스터가 요청한 인터럽트의 종류를 나타내는 비트가 저장되어 제 1 및 제 2프로세서부가 처리할 서비스의 종류를 결정하도록 제어하여 주는 TX_CMD_레지스터와;상기 제 1 및 제 2프로세서부의 마스터 판독시, 판독데이터가 슬레이브에서 준비되었음을 알리는 방법이 인터럽트 방법인지, 또는 지속적으로 마스터가 감시하는 방법 인지를 결정하여 주는 WAIT_레지스터를 포함하여 구성되는 것을 특징으로 하는 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로.
- 청구항 3, 또는 청구항 6에 있어서,상기 제 1 및 제 2프로세서 IPC부는,상기 제 1 및 제 2프로세서 IPC부 중에서, 상대 프로세서 IPC부로 인터럽트를 요청하는 P_WRN신호와,제 1 및 제 및 제 프로세서 IPC부 중에서, 인터럽트를 요청하면 상대 프로세서 인터럽트 제어기의 소스가 되는 P_INT_REQ신호를 생성하는 것을 특징으로 하는 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의 인터페이스 회로.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010008064A KR100357284B1 (ko) | 2001-02-19 | 2001-02-19 | 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의인터페이스 회로 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010008064A KR100357284B1 (ko) | 2001-02-19 | 2001-02-19 | 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의인터페이스 회로 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020067752A KR20020067752A (ko) | 2002-08-24 |
KR100357284B1 true KR100357284B1 (ko) | 2002-10-18 |
Family
ID=27694748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020010008064A KR100357284B1 (ko) | 2001-02-19 | 2001-02-19 | 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의인터페이스 회로 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100357284B1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100465157B1 (ko) * | 2002-10-16 | 2005-01-13 | (주)씨앤에스 테크놀로지 | Pcp와 vcp 간의 비동기 인터페이스 장치 |
KR100712361B1 (ko) * | 2004-11-16 | 2007-05-02 | 주식회사 동양쵸이스 | 납골함안치단 |
KR100731969B1 (ko) * | 2005-06-28 | 2007-06-25 | 엠텍비젼 주식회사 | 복수 경로를 통한 메모리 공유 방법 및 장치 |
KR100751094B1 (ko) * | 2005-07-28 | 2007-08-21 | 엠텍비젼 주식회사 | 비휘발성 메모리 공유 방법 및 복수의 메모리를 포함하는원칩화된 멀티미디어 플랫폼을 구비한 장치 |
KR100749469B1 (ko) * | 2005-09-15 | 2007-08-14 | 엠텍비젼 주식회사 | 복수의 메모리를 포함한 멀티미디어 플랫폼을 구비한 장치및 비휘발성 메모리 공유 방법 |
KR100684553B1 (ko) * | 2006-01-12 | 2007-02-22 | 엠텍비젼 주식회사 | 듀얼 포트 메모리와 결합되는 마이크로 프로세서 |
KR100712362B1 (ko) * | 2006-10-23 | 2007-04-27 | 주식회사 동양쵸이스 | 납골함안치단 |
US9489009B2 (en) | 2014-02-20 | 2016-11-08 | Samsung Electronics Co., Ltd. | System on chip, bus interface and method of operating the same |
-
2001
- 2001-02-19 KR KR1020010008064A patent/KR100357284B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20020067752A (ko) | 2002-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5784647A (en) | Interface for fetching highest priority demand from priority queue, predicting completion within time limitation then issuing demand, else adding demand to pending queue or canceling | |
EP0872799A2 (en) | PCI bus System | |
US5507032A (en) | Multiprocessor I/O request control system forming device drive queue and processor interrupt queue from rows and cells of I/O request table and interrupt request table | |
US6907480B2 (en) | Data processing apparatus and data input/output apparatus and data input/output method | |
US5526495A (en) | Bus control system in a multi-processor system | |
KR100357284B1 (ko) | 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의인터페이스 회로 | |
US6061757A (en) | Handling interrupts by returning and requeuing currently executing interrupts for later resubmission when the currently executing interrupts are of lower priority than newly generated pending interrupts | |
KR20020008955A (ko) | 버스 시스템 및 그 실행 순서 조정방법 | |
US6810457B2 (en) | Parallel processing system in which use efficiency of CPU is improved and parallel processing method for the same | |
US6799231B2 (en) | Virtual I/O device coupled to memory controller | |
JPS621057A (ja) | 転送制御装置 | |
US5860026A (en) | Information processing system for controlling operations of input/output devices of another clusters according to control instructions issued from a cluster | |
US7346072B2 (en) | Arbitration mechanism for packet transmission | |
US6701407B1 (en) | Multiprocessor system with system modules each having processors, and a data transfer method therefor | |
US5943509A (en) | Small size inter-processor data transfer system | |
US7336657B2 (en) | Inter-nodal data transfer system and data transfer apparatus | |
EP0169909B1 (en) | Auxiliary memory device | |
JP3799741B2 (ja) | バスコントローラ | |
US7111301B1 (en) | Request and completion queue load balancing | |
JP2000155738A (ja) | データ処理装置 | |
JPH09218859A (ja) | マルチプロセッサ制御システム | |
JPH1185673A (ja) | 共有バスの制御方法とその装置 | |
JP3399776B2 (ja) | コンピュータおよびコンピュータにおける周辺デバイス制御データの転送方法 | |
JPH07306946A (ja) | トランザクション合成による並行読み取り処理 | |
KR0171287B1 (ko) | 주기억장치의 다중 큐 제어 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20111006 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20120911 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |