KR101020709B1 - 전자 회로에서의 데이터 전송방법, 전자 회로 및 관련 장치 - Google Patents

전자 회로에서의 데이터 전송방법, 전자 회로 및 관련 장치 Download PDF

Info

Publication number
KR101020709B1
KR101020709B1 KR1020047002436A KR20047002436A KR101020709B1 KR 101020709 B1 KR101020709 B1 KR 101020709B1 KR 1020047002436 A KR1020047002436 A KR 1020047002436A KR 20047002436 A KR20047002436 A KR 20047002436A KR 101020709 B1 KR101020709 B1 KR 101020709B1
Authority
KR
South Korea
Prior art keywords
block
circuit
interface device
control unit
data
Prior art date
Application number
KR1020047002436A
Other languages
English (en)
Other versions
KR20040040442A (ko
Inventor
안드레아 브라가그니니
페란젤로 가리노
마우라 투롤라
안토니오 바리알레
Original Assignee
텔레콤 이탈리아 소시에떼 퍼 아찌오니
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텔레콤 이탈리아 소시에떼 퍼 아찌오니 filed Critical 텔레콤 이탈리아 소시에떼 퍼 아찌오니
Publication of KR20040040442A publication Critical patent/KR20040040442A/ko
Application granted granted Critical
Publication of KR101020709B1 publication Critical patent/KR101020709B1/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/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

본 발명은 BUS(24)에 의해 상호 연결된 제어 유닛 또는 CPU(21), 제 1 회로 블록들(41) 및 제 2 회로 블록들(61)을 포함하는 전자 회로에서의 데이터 전송 방법에 관한 것이다. 본 방법 및 관련 회로는, 데이터 전송 동안에 CPU의 제어 없이 제 1 회로 블록(41)에서 제 2 회로 블록(61)으로의 또는 그 역으로의 데이터 직접 전송을 관리할 수 있고, 개별 회로 블록들에 연결되는 인터페이스 장치들(45a 및 45b)의 사용을 예상한다. 본 방법 및 관련 회로(101)의 목적을 위해, 인터페이스 장치(45a)는 CPU(21)에 의해 발행되는 제어 명령들을 인터셉트할 수 있고 제 1 블록(41)에서 제 2 블록(61)으로의 데이터 전송을 직접 관리할 수 있어야 한다. 따라서, 본 방법 및 회로(101), 및 인터페이스 장치(45a)는 CPU(21), BUS(24) 및 전자 회로(101)의 부하를 상당히 줄이는 것이 가능하도록 한다.
데이터, 전송, 에뮬레이션

Description

전자 회로에서의 데이터 전송방법, 전자 회로 및 관련 장치{Method of transferring data in an electronic circuit, electronic circuit and relating device}
본 발명은, 제어 유닛(CPU), 저장 수단을 갖는 제 1 회로 블록, 및 상기 제 1 회로 블록과 데이터를 교환할 수 있는 제 2 회로 블록을 포함하는 전자 회로에서의 데이터 전송방법에 관한 것이다.
본 발명은 또한 본 발명에 따른 방법을 구현하도록 설계된 전자 회로 및 장치에 관한 것이다.
특히, 본 발명은 예컨대 송신 및 수신 체인들(transmission and reception chains)을 구현하고 에뮬레이트할 수 있는 테스트 서브시스템들에 관한 것인데, 여기서 하드웨어 블록들 및/또는 펌웨어 블록들의 형태로 구현된 회로 블록들이 공존하고, 테스트 절차는 체인을 형성하는 블록들의 펑션들을 선택적으로 활성화시키는 단계 및 예컨대 한 블록에서 다른 블록으로의 RAM을 통한 데이터 전송을 모니터하는 단계로 구성된다.
잘 알려진 바와 같이, 특정 프로세싱 펑션들을 수행할 수 있는 하드웨어 및/또는 펌웨어 회로 블록들 간의 데이터 교환은 특히 전자 회로의 테스트 또는 에뮬레이션 서브시스템들 내에서 CPU와 밀접히 연관된다.
복수의 하드웨어 및/또는 펌웨어 블록들에 의해 형성된 회로의 동작 에뮬레이션을 위해 설계된 공지된 타입(예컨대, ARM사의 에뮬레이션 서브시스템 모델 ARM INTEGRATOR/AP)의 에뮬레이션 또는 테스트 서브시스템(10)과 관련있는 도 1의 로직 다이어그램을 살펴보자.
상기 서브시스템(10)은, 그 가능한 구성들 중 하나에 있어서, 기본 보드(12), 적어도 하나의 FPGA(Field Programmable Gate Array) 타입의 프로그램 가능 로직 회로(41)가 내장될 수 있는 제 1 모듈(14), 및 적어도 하나의 DSP(Digital Signal Processor) 타입의 마이크로프로세서(61)가 내장될 수 있는 제 2 모듈(16)을 포함한다.
상기 서브시스템(10)의 기본 보드(12)는 예컨대 ARM7TDMI 타입의 제어 마이크로프로세서(CPU)(21), 랜덤 억세스 메모리(RAM)(22), 및 어드레스들, 제어들 및 데이터를 위한 채널(BUS)(24)을 포함한다. CPU(21), RAM(22), PFGA(41) 및 DSP 마이크로프로세서(61)가 공지된 방식으로 BUS(24)에 연결된다.
일반적으로 알려진 바와 같이, 에뮬레이션 단계들 동안에, 예컨대 로직 회로 PFGA(41)에 의해 에뮬레이트되는 하드웨어 블록, 및 예컨대 DSP(61)에 의해 에뮬레이트되는 펌웨어 블록으로부터의 데이터 전송이 다음과 같이 실행된다.
- 일단 로직 회로 FPGA(41)가 동일한 FPGA(41) 내에서 구현되는 프로세싱 펑션들을 수행하고 상기 동작의 완료를 CPU(21)에 알리면, CPU(21)는, 로직 회로 FPGA(41)로부터 처리된 데이터를 읽기 위한 BUS(24)로의 억세스 및 방금 읽은 데이터를 RAM(22)으로 기록하기 위한 BUS(24)로의 억세스를 통한, FPGA(41)에 의해 처리되는 데이터의 RAM(22)으로의 전송을 단계별로 체크하는 것을 시작한다.
- RAM(22)으로의 전송이 완료될 때, CPU(21)는, RAM(22)로부터 이전에 저장된 데이터를 읽기 위한 BUS(22)로의 억세스 및 방금 읽은 데이터를 DSP(61)에 기록하기 위한 BUS(24)로의 억세스를 통해, RAM(22)로부터 데이터를 읽어서 DSP(61)로 전송한다.
명백히, DSP에서 FPGA(41)로의 전송 처리는 방향만 반대일 뿐 실질적으로 동일하다.
배경기술에서의 첫 번째 기술적 문제점은, FPGA(하드웨어 블록)(41) 또는 DSP(펌웨어 블록)(61)로부터의 각 전송 및 그 반대의 전송에 의해 BUS(24)가 2번 사용되고, 하드웨어 블록(41)으로부터 펌웨어 블록(61)으로의 각 전송 및 그 반대의 전송에 의해 BUS(24)가 4번 사용되고, 따라서 BUS의 과부하가 초래된다는 사실에 기인한다. 특히 서브시스템(10)이 예컨대 실시간으로 전송 체인을 에뮬레이트할 필요가 있을 때 더욱 그러하다.
본 종래기술의 두 번째 문제점은, 어떤 데이터의 전송 동안에, 단계별로 데이터 전송을 관리하고 모니터하기 위해 CPU(21)가 필요해지고, 이상 모두는 CPU(21)가 테스트 대상 전자 회로의 에뮬레이션을 위해 필요한 부가적 프로세싱 펑션들을 수행하는 것을 막는다는 사실에 있다.
전술한 본 종래기술의 쟁점들 때문에, 사용되는 시스템의 BUS 또는 CPU 특성을 증가시켜서, 블록에서 블록으로의 또는 블록에서 RAM으로의 데이터 전송에서 기 인하는 과부하를 지원하도록 하는 것이 종종 필요하다.
명백히, 전술한 문제점들은 본 명세서에서 설명되는 에뮬레이션 서브 시스템에만 존재하는 것이 아니라, 특정 프로세싱 펑션들을 실행하는 회로 블록들 간의 데이터 전송이 본 명세서에서 강조된 것과 유사한 방법을 따르는 매체 또는 고 복잡성의 모든 전자 회로에 일반적으로 존재한다.
본 발명의 목적은, 특별한 비용 증가 없이, 종래기술에 비하여 적어도 50% 정도로 CPU 및 BUS의 부하에 있어서 감소를 가져오는 전자 회로에서의 데이터 전송방법을 제공하는 것이다.
본 발명의 목적은 또한, 회로 블록에서 RAM으로의 또는 제 1 회로 블록에서 다른 블록으로의 데이터 전송 동안에 CPU 및 BUS의 과부하를 감소시킬 수 있는 전자 회로 및 장치를 제공하는 것이다.
본 목적은, 청구의 범위에서 설명되는 바와 같이, 본 명세서에서 설명되는 방법, 회로 및 장치에 의해 달성된다.
특히, 본 목적은 본 발명에 따른 방법에 의해 달성되어, 회로 블록에서 RAM으로의 또는 블록에서 블록으로의 데이터 전송에 관련된 CPU 펑션들이 본 회로 블록들에 연결된 전자 장치들에 의해 인터셉트되어 직접 관리된다.
더욱이, 본 목적은, 하드웨어 또는 펌웨어 회로 블록들은 CPU 제어 없이 RAM에서의 또는 RAM으로의 또는 블록에서 블록으로의 전송을 직접 관리하도록 설계된 대응 장치들에 연결되는, 본 발명에 따른 전자 회로에 의해 달성된다.
본 발명의 다른 특성에 의해, 회로 블록에 연결된 각 전자 장치는, CPU 및 BUS의 부하를 덜어주는 것 외에도, 프로그램 가능토록 설계되어, 예컨대 블록의 적응 펑션(adaptation function)을 회로에 제공하고, 하드웨어 또는 펌웨어의 즉 실질적으로 "중립의(neutral)" 동일한 회로 블록을 블록 자체가 위치하는 회로와 독립적으로 되도록 한다.
도 1은 종래 기술에 따른 에뮬레이션 서브시스템의 블록 다이어그램을 도시한다.
도 2는 본 발명에 따른 에뮬레이션 서브시스템 및 전자 회로의 블록 다이어그램을 도시한다.
도 3은 도 2의 전자 회로를 구현하도록 설계된 장치의 블록 다이어그램을 도시한다.
첨부된 도면에 의해, 비제한적인 예로서 제공되는 바람직한 실시예를 다음과 같이 설명함으로써, 본 발명의 특징들이 명확해질 것이다.
도 2를 참조하면, 본 발명에 따른 전자 회로(101)는 예컨대 도 1에서 설명된 타입의 에뮬레이션 서브시스템에 의해 형성되는데, 여기서 블록들(41 및 61) 및 BUS(24) 사이에 각각 위치하는 제 1 인터페이스 장치(제 1 장치)(45a) 및 제 2 인터페이스 장치(45b)가 하드웨어 블록(41) 및 펌웨어 블록(61)에 각각 연결된다
특히, 본 실시예에 따라서, 예컨대 ARM INTEGRATOR/LM 모듈에 의해 형성되는 제 1 모듈(14)은, FPGA 타입 (예컨대 XILINK사의 XC200E타입)의 프로그램 가능 로직 회로(하드웨어 블록)(41) 및 제 1 장치(45a)를 포함한다.
제 1 장치(45a)는 제 1 커넥션(46a)에 의해 하드웨어 블록(41)에 연결되고, 제 2 커넥션(47)을 통해 ADDRESS BUS(24a), CONTROL BUS(24b) 및 DATA BUS(24c)를 포함하는 BUS(24)(도 2 및 도 3)에 연결되고, 공지된 타입의 제어 배선들(48 및 49)에 의해 인터럽트 I/O 신호 교환을 위해 CPU(21)과 연결된다.
예컨대 공지된 타입의 PCI(Peripheral Component Interconnect) 모듈에 의해 형성되는 제 2 모듈(16)은 DSP 마이크로프로세서(펌웨어 블록)(61)(예컨대, Texas Instruments사의 TMS320C66201) 및 제 2 장치(45b)를 포함한다.
제 2 장치(45b)는 제 1 커넥션(46b)에 의해 펌웨어 블록(61)에 연결되고, 제 2 커넥션(67)에 의해 BUS(24)에 연결되고, 공지된 타입의 제어 배선들(68 및 69)에 의해 CPU(21)에 연결된다.
나중에 설명되는 바와 같이, 회로들(45a, 45b)은, CPU(21)의 제어 없이, CPU(21)에서 나오는 소정의 제어 명령들(명령들)을 인터셉트하고, 그 개별 블록들(41 및 61)에서 RAM(22)로의 그리고 그 역으로의 데이터 전송 또는 하드웨어 블록(41)에서 펌웨어 블록(61)으로의 그리고 그 역으로의 데이터 전송을 제어하도록 설계된다.
명백히, 본 기술분야의 당업자가 쉽게 알 수 있는 바와 같이, 회로(101)에서의 장치들(45a 및 45b)의 존재는 또한, CPU(21) 및 장치들(45a 및 45b)의 BUS(24)로의 연속적 억세스를 제어하도록 설계된 공지된 타입의 제어 회로(BUS 아비터(arbiter))(27)의 존재를 필요로 한다.
장치들(45a, 45b)은 이들이 연결되는 블록의 특성과 관련된 특정적 측면에서만 다르다. 따라서, 제 1 장치(45a)의 구조 및 펑션들은 후술된다.
후술되는 바와 같이, 커넥션에 대해 설명하자면, 커넥션들(45a 및 46b)은 각각의 블록들(41 및 61)의 특성에 특정되고 한정되는 한편, 커넥션들(47, 48 및 49) 및 이들의 대응물(67, 68 및 69)은 동일한 타입이다.
예컨대, 장치(45a)는 데이터 전송을 제어할 수 있는 컴포넌트(TRANS CONTROLLER)(51), 메모리 제어를 위한 컴포넌트(MEMORY CONTROLLER)(55), 및 블록 인터페이스 컴포넌트(BLOCK CONTROLLER)(54a)를 포함한다.
TRANS CONTROLLER(51)는 MEMORY CONTROLLER(55), BLOCK CONTROLLER(54a), ADDRESS BUS(24a) 및 DATA BUS(24c)에 연결되고, 제어 배선들(48 및 49)을 통하여 CPU(21)와 명령들을 교환하고, MEMORY CONTROLLER(55)와 인터랙트하고 또는 DATA BUS(24c)로부터 데이터를 수집하고 이들을 BLOCK CONTROLLER(54a)로 또는 역으로 전송함으로써 예컨대 RAM(22)과 데이터를 교환하도록 설계된다.
TRANS CONTROLLER(51)는 또한 DATA BUS(24c)에 의해 CPU(21)와 명령들을 교환하도록 설계되어, 예컨대 전자 회로(101) 및/또는 장치(45a)의 설계 단계에서 정의되는 초기화 펑션들 또는 특수 펑션들을 수행하도록 하는데, 이에 대해서는 후술된다.
TRANS CONTROLLER(51)는 예컨대 공지된 타입의 상태 기계(state machine)에 의해 형성되고, 초기화 단계동안에 DATA BUS(24c) 내에 존재하는 특정 비트 구성 또는 CPU(21)에서 나오는 인터럽트 I/O 신호들과 같은 소정의 명령들과 관련된 소정 동작들의 시퀀스에 영향을 미칠 수 있다.
바람직한 실시예에서, TRANS CONTROLLER(51)의 상태 기계는 예컨대 프로그램들을 저장하는 공지된 타입의 메모리(프로그램 메모리)(511) 및 공지된 타입의 시퀀서 회로(sequencer circuit)(512)를 포함한다.
프로그램 메모리(511)는 설계 단계에서 개발되거나 전자 회로의 구성 단계에서 정의되는 복수의 명령 시퀀스들을 저장하는 역할을 한다.
시퀀서 회로(512)는 프로그램 메모리(511)에 연결되고, CPU(21)에서 나온 소정의 명령들에 따라서 프로그램 메모리(511)에 저장된 명령 시퀀스들을 선택적으로 읽어서 수행할 수 있다.
명백히, 다른 명령 시퀀스들이 전자 회로(101)의 개발 또는 구성 단계에서 구현될 수 있고, 양호한 실시예에서 표준 동작 펑션들 및 초기화 펑션들로 다양화될 수 있다.
MEMORY CONTROLLER(55)는 TRANS CONTROLLER(51), ADDRESS BUS(24a) 및 CONTROL BUS(24b)로 연결되고, TRANS CONTROLLER(51)에서 나오는 명령들과 관련하여 공지된 방식으로 CONTROL BUS(24b)를 요구하여 RAM(22)의 어드레스, ADDRESS BUS(24a) 또는 MEMORY CONTROLLER(55) 자체 내부의 레지스터들 상의 부가적 회로 블록의 어드레스로부터의(또는 어드레스로의) 읽기 또는 쓰기 동작들을 활성화시키는 임무를 갖는다.
일반적인 사용 목적을 위해, MEMORY CONTROLLER(55)는 예컨대 CONTROL BUS(24b)로 총칭 리퀘스트 펑션(generic request function)을 발생시킬 수 있는 MEMORY CONTROLLER GENERIC(551), 및 전자 회로(101) 상에 사용되는 CONTROL BUS 타입의 펑션으로서 CONTROL BUS(24b)로의 리퀘스트를 특수화할 수 있는 적응 유닛(adaptation unit) 또는 MEMORY CONTROLLER SPECIFIC(552)을 포함한다.
MEMORY CONTROLLER(55)는, 예컨대 공지된 타입의 이산형 로직(discrete logic)을 사용하여, 상기 타입의 컴포넌트들의 라이브러리에 속하는 메모리 컨트롤러에서 시작하는 합성을 통해 구현될 수 있고, 바람직하게는 데이터 직접 전송을 위한 부가적 회로 블록들의 데이터 또는 어드레스들을 읽고 기록하는데 사용되는 RAM(22)의 어드레스들을 저장하기 위한 일부 레지스터들을 포함할 것이다.
명백히, 상기 어드레스들은 관련 블록(41)의 특성의 펑션으로서 장치(45a)의 구성 단계에서 정의되거나, 전자 회로(101)의 설계 단계에서 사전 정의될 수 있다.
BLOCK CONTROLLER(54a)는 하드웨어 블록(41) 및 TRANS CONTROLLER(51)에 연결되고, TRANS CONTROLLER(51)에서 나오는 명령들을 기초로 하드웨어 블록(41)을 제어하도록 설계되어 하드웨어 블록(41)의 특정 펑션들이 수행되도록 한다.
하드웨어 블록(41)에 의한 특정 펑션들의 완료시, BLOCK CONTROLLER(54a)는 동일 블록(41)에 의한 상기 펑션들의 완료에 대해 TRANS CONTROLLER(51)에 통보하는 임무를 갖는다.
BLOCK CONTROLLER(54a)는 본 실시예에 따라서 하드웨어 블록(41) 및 RAM(22) 또는 다른 블록 사이에서 교환될 데이터를 저장하기 위한 공지된 타입의 I/O BUFFER(541a)를 포함한다.
특히, I/O BUFFER(541a)는 예컨대, 동일 블록의 펑션들이 완료된 때 블록(41)의 출력부에서의 데이터 또는 동일 블록이 활성된 때 블록(41)의 입력부에서의 데이터를 선택적으로 저장하는 역할을 한다.
인터페이스 장치(45a)의 BLOCK CONTROLLER(54a) 및 인터페이스 장치(45b)의 BLOCK CONTROLLER는 연결되는 블록에 대하여 특수화된다. 이는 각각의 블록들(41 및 61)의 활성화 특성들 및 각 블록을 위해 교환되는 데이터의 사이즈가 블록마다 일반적으로 다양하고, 따라서 장치들(45a 및 45b)은, 본 실시예에 따라서, 이들이 전술한 바와 같이 인터페이스되는 블록들(41 및 61)의 특성에 의존하는 각각의 BLOCK CONTROLLER들의 특성에 의해서만 달라진다.
BLOCK CONTROLLER들은 예컨대 기본 로직 회로들을 통해 구현되거나, 관련 TRANS CONTROLLER 또는 개별 블록(41 또는 61)에서 나오는 명령들과 관련하여 소정의 펑션들을 갖는 상태 기계들을 통해 구현될 수 있다.
삭제
바람직하게는, 전자 회로(101)의 초기화 단계에서, BLOCK CONTROLLER들은 관련 TRANS CONTROLLER를 통해 CPU(21)에 의해 프로그램되도록 설계된다. 따라서, 상기 특성에 의해, 이들은 이들이 위치하는 전자 회로의 특성을 개별 블록들의 특성에 적응시킬 수 있다.
설명된 아키텍처에 의해 그리고 본 발명에 따라서, 하드웨어 블록(41)에 연결되는 장치(45a) 및 펌웨어 블록(61)에 연결되는 장치(45b)는, CPU(21) 및 BUS(24)의 부하를 크게 줄이면서, RAM(22)에서 개별 블록들(41 및 61)로의 그리고 그 반대로의 데이터 전송을 활성화하고 실행할 수 있다.
예로서, 하드웨어 블록(41)에서 RAM(22)로의 데이터 전송을 살펴보자.
BLOCK CONTROLLER(54b)가 하드웨어 블록(41)의 펑션들의 완료를 신호하는 것과 관련하여, TRANS CONTROLLER(51)는, CPU(21)의 개입 없이, 리퀘스트를 MEMORY CONTROLLER(55)에 보내어, MEMORY CONTROLLER(55) 내의 레지스터에서 표시된 어드레스들로 I/O BUFFER(541a)의 내용을 RAM(22) 상에 기록하는 것을 활성화시킨다.
쓰기 명령을 활성화한 이후, TRANS CONTROLLER(51)는 I/O BUFFER(541a)의 내용을 RAM(22)으로 전달한 후, 상기 전달이 종료되었을 때, 전송 종료를 알리기 위해 인터럽트 I/O 신호를 배선(49)을 통해 CPU(21)로 전달한다.
본 기술분야에서의 당업자가 쉽게 알 수 있는 바와 같이, 본 발명으로 인해, 하드웨어 블록(41)에서 RAM(22)로의 데이터 전송은 CPU(21)의 개입을 필요로 하지 않고, BUS(24)를 단 한번 점유한다; 따라서, 모든 조건들이 동일한 경우, 종래 기술에 비해 CPU(21) 부하 감소 및 BUS(24) 점유의 50% 감소를 가능하게 한다.
완벽을 위해, 본 발명의 설명은 데이터가 저장되는 RAM(22)의 어드레스 결정에 관한 예를 포함한다.
상기 동작은 전자 회로(101)의 초기화 단계 또는 스타트업(start up) 단계에서 수행되는데, 예컨대 상기 초기화 단계에서 DATA BUS(24c)를 통하여 소정의 초기화 명령이 CPU(21)에 의해 TRANS CONTROLLER(51)에 제공되고, 본 명령시 TRANS CONTROLLER(51)는 관련 블록에 의한 읽기 및 쓰기 동작들을 위해 사용되어지는 RAM(22)의 어드레스들을 ADDRESS BUS(24c)로부터 읽어서 MEMORY CONTROLLER(55) 내부의 레지스터들에 저장하는 것을 예상한다.
지금까지 설명된 전자 회로(101)의 동작은 다음과 같다.
초기화 단계에서, CPU(21)는 특정 명령들을 각 장치(45a 또는 45b)에 전송하고, 각 장치가 동작 중 데이터 교환을 위한 쓰기 및 읽기 단계에서 사용해야 하는 RAM(22) 또는 블록들의 어드레스들을 ADDRESS BUS(24a) 상에 제시함으로써, 전자 회로 상에 존재하는 모든 장치들(예컨대, 장치들(45a 및 45b))을 구성한다.
예컨대 RAM(22)로부터의 데이터 읽기와 같은 동작 단계들에서, CPU(21)는 인터럽트 I/O 신호를 통해 데이터가 판독용으로 이용 가능함을 장치들(45a 또는 45b)에 통보하여, 장치들(45a 또는 45b)이 CPU(21)에 의한 추가 개입 없이 초기화 단계에서 정의된 어드레스에서 RAM(22)로부터 데이터를 수집할 수 있고 이를 개별 블록들(41 및 61)에 이용할 수 있도록 한다.
RAM(22) 상에서의 데이터 쓰기의 경우, 예컨대 장치들(45a 또는 45b)은 BUS(24)와 연결되어 있는 각각의 블록들(41 또는 61)로부터 초기화 단계에서 설정된 어드레스들로의 RAM(22)으로 데이터를 직접 전송하고, 전송 종료 시에만 이들은 인터럽트 I/O 신호들을 통해 CPU(21)로의 쓰기 동작의 끝을 알린다.
장치들(45a 및 45b) 덕택에, RAM(22)으로의 또는 RAM(22)에서부터의 쓰기 및 읽기 동작들은 다음과 같은 방식으로 실행된다.
- CPU(21)는 전자 회로의 제어 펑션들을 실행할 뿐이고, 예컨대 전송 체인에서의 데이터 전송의 특정 펑션을 참조하지 않는다;
- BUS(24)에는 데이터 전송 동작들 중에 CPU(21)가 연결되지 않는다; 실제로, CPU(21)는 인터럽트 I/O 신호들을 기초로 할 뿐이고, RAM(22)로부터의 데이터 추출 없이, 블록(41 또는 61)의 출력 버퍼 비우기와 같은 특정 제어 명령들이 있는 경우 또는 초기화 명령들이 있는 경우에만 BUS(24)를 사용한다.
제 1 블록에서 제 2 회로 블록으로의 직접 데이터 전송의 경우에 있어서, 전자 회로(101)는, 블록들과 연결된 장치들이 읽기 및 쓰기 동작이 수행되어야 하는 장치들에 대응하는 읽기 및 쓰기 어드레스들을 가지도록 구성된다.
이러한 구현 형태에 있어서, 예컨대, 초기화 단계에서 CPU(21)는, MEMORY CONTROLLER(55)의 내부 레지스터들에서의 저장을 위해 장치(45b)의 I/O BUFFER의 어드레스를 장치(45a)에 보낸다.
동작 단계 동안에, CPU(21)에서 나오는 인터럽트 I/O 신호들과 관련하여, 장치(45a)는 정의된 펑션들을 수행하기 위한 하드웨어 블록(41)을 활성화시키고, 상기 펑션들이 완료될 때, 그것은 처리된 데이터를 장치(45b)로 직접 전송한다; 상기 전송의 끝에서만, 상기 실시예에 따라서, 장치(45a)는 인터럽트 O/I신호를 통해서 블록(41)의 활동과 전송의 끝을 CPU(21)에 알린다.
본 기술 분야의 당업자가 잘 알 수 있는 바와 같이, 실시예의 이러한 형태는 기존 종래 기술과 비교하여 BUS(24) 및 CPU(21)의 점유를 50% 이상 줄인다.
본 발명의 설명은 하드웨어 블록(41)에 연결된 제 1 장치(41a), 펌웨어 블록(61)에 연결된 제 2 장치(41b), 및 상기 블록들 간의 데이터 교환을 참조로 행해졌다. 그러나, 장치들이 예컨대 모든 하드웨어 타입 또는 펌웨어 타입과 같은 동종 블록들(homogeneous blocks)에 연결되고 데이터 교환이 동종 블록들 간에 발생하는 경우에도 본 발명의 특징이 변하지 않는다는 것은 본 기술분야의 당업자에게는 당연할 것이다.
*장치들(45a, 45b)은 이들이 연결되는 개별 회로 블록들(41 및 61)과는 별도로 설명되었다. 본 발명의 당업자가 잘 알 수 있는 바와 같이, 장치(45a)는 예컨대 합성에 의해 구현될 수 있고, 컴포넌트들의 라이브러리로부터 쉽게 검색될 수 있는 모델을 갖는 회로 엘리먼트들에 의해 이미 전술한 바와 같이 형성되어 하드웨어로 집적될 수 있다.
삭제
유사하게, 펌웨어 블록(61)에 연결된 장치(45b)는, 본 기술분야의 당업자가 잘 알 수 있는 바와 같이 펌웨어 블록으로 사용되는 마이크로프로세서 또는 DSP가 BUS(24) 및 제어 배선들(68 및 69)로 직접 연결될 수 있다면, 전술한 장치의 로직 아키텍처를 실행하는 펌웨어의 형태로 구현될 수 있다.
본 발명의 설명은 각 장치를 각 회로 블록에 연결시킴으로써 행해졌다. 그러나, 당업자에게 명백한 바와 같이, 상기 조건은 각 블록이 CPU 및 BUS 부하의 증가 없이 데이터를 다른 블록들로 직접 전달할 수 있다는 것을 보장하기 위해서만 필요하다.
첨부된 청구의 범위에 의해 정해지는 본 발명의 사상 및 범주를 벗어남 없이, 사이즈, 크기, 형태, 재료, 컴포넌트, 회로 엘리먼트, 연결 및 접촉뿐 아니라 회로의 세부사항들 및 본 명세서에서 제시된 구현, 및 동작 방법과 관련된 변형 또는 수정이 상기 발명의 설명에서 명백히 가능하다.
상기 내용에 포함되어 있음.

Claims (16)

  1. 제어 유닛(21), 제 1 프로세싱 펑션들을 실행할 수 있는 제 1 회로 블록(41), 및 제 2 프로세싱 펑션들을 실행할 수 있는 제 2 회로 블록(61)을 포함하는 전자 회로(101)에서 데이터를 전송하는 방법에 있어서,
    초기화 단계에서 상기 제어 유닛(21)에 의해 발행된 특정 명령들에 의하여 상기 전자 회로(101)를 구성하는 단계;
    상기 제 1 회로 블록(41)에 연결된 제1 인터페이스 장치(45a)에 의해 상기 제어 유닛(21)에 의해 발행된 특정 명령들을 인터셉트하는 단계;
    상기 제1 프로세싱 펑션들을 실행하고 처리된 데이터를 발생시키기 위한 상기 제1 회로 블록(41)을 활성화시키기 위하여 상기 인터셉트된 명령들을 사용하는 단계; 및
    상기 제1 인터페이스 장치(45a)의 제어 하에서, 상기 제1 인터페이스 장치(45a)에 포함된 I/O 버퍼 장치로부터 상기 제2 회로 블록(61)과 연결된 제2 인터페이스 장치(45b)에 포함된 I/O 버퍼 장치로 상기 처리된 데이터를 전송하는 것을 통하여, 상기 제1 회로 블록(41)으로부터 상기 제2 회로 블록(61)으로 상기 처리된 데이터를 직접 방식으로 전송하기 위하여 상기 특정 명령들을 사용하는 단계를 포함하는 데이터 전송 방법.
  2. 제 1 항에 있어서,
    상기 제1 인터페이스 장치(45a)에 포함된 I/O 버퍼 장치로부터 상기 제2 인터페이스 장치(45b)에 포함된 I/O 버퍼 장치로 상기 처리된 데이터를 전송하기 위하여, 상기 제어 유닛(21)에 연결된 버스(24)를 사용하는 것을 특징으로 하는 데이터 전송 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 처리된 데이터의 전송이 완료되었을 때 상기 제어 유닛(21)으로 상기 제1 인터페이스 장치(45a)에 의해 상기 완료를 나타내는 (I/O) 신호들을 전송하는 단계를 더 포함하는 것을 특징으로 하는 데이터 전송 방법.
  4. 제어 유닛(21);
    제 1 프로세싱 펑션들을 실행할 수 있는 제 1 회로 블록(41);
    제 2 프로세싱 펑션들을 실행할 수 있는 제 2 회로 블록(61); 및
    상기 제 1 및 제2 회로 블록(41, 61)에 연결된 제1 및 제2 인터페이스 장치(45a, 45b)를 구비하며
    상기 제어 유닛(21)은 초기화 단계에서 전자 회로(101)를 구성하기 위한 특정 명령들을 발생하도록 설계되고
    상기 제1 및 제2 인터페이스 장치(45a, 45b)는 각각 I/O 버퍼 장치를 포함하며,
    상기 제1 인터페이스 장치(45a)는 상기 제어 유닛에 의해 발행된 상기 특정 명령들을 인터셉트하고, 상기 제2 회로 블록(61)으로 전송될 처리된 데이터를 발생시키도록 상기 제1 회로 블록(41)을 활성화시키기 위하여 상기 인터셉트된 특정 명령들을 사용하며, 상기 제1 인터페이스 장치(45a)에 포함된 상기 I/O 버퍼 장치로부터 상기 제2 인터페이스 장치(45b)에 포함된 상기 I/O 버퍼 장치로 상기 처리된 데이터를 전송하는 것을 통하여 상기 제1 회로 블록(41)으로부터 상기 제2 회로 블록(61)으로 상기 처리된 데이터를 직접 방식으로 전송하기 위하여 상기 특정 명령들을 사용할 수 있는 것을 특징으로 하는 전자 회로.
  5. 제 4 항에 있어서,
    상기 제1 인터페이스 장치(45a)에 포함된 I/O 버퍼 장치로부터 상기 제2 인터페이스 장치(45b)에 포함된 I/O 버퍼 장치로 상기 처리된 데이터를 전송하기 위한, 상기 제어 유닛(21)에 연결된 버스(24)를 구비하는 것을 특징으로 하는 전자 회로.
  6. 제 4 항에 있어서,
    상기 제1 인터페이스 장치(45a)는 상기 특정 명령들에 근거하여 정의된 명령 시퀀스들을 활성화하는 것에 의하여 상기 제어 유닛(21)에 의해 발행된 상기 특정 명령들을 관리할 수 있는 컨트롤러(51)를 구비하는 것을 특징으로 하는 전자 회로.
  7. 제 6 항에 있어서,
    상기 컨트롤러(51)는 선택적으로 동작할 수 있는 복수의 명령 시퀀스들을 저장할 수 있는 메모리 유닛(511)을 구비하는 것을 특징으로 하는 전자 회로.
  8. 제 5 항에 있어서,
    상기 제1 인터페이스 장치(45a)는 상기 제1 인터페이스 장치(45a)로부터 상기 제2 인터페이스 장치(45b)에 포함된 상기 I/O 버퍼 장치와 관련된 기정의된 어드레스로의 상기 데이터 전송을 제어할 수 있는 메모리 제어 유닛(55)을 구비하는 것을 특징으로 하는 전자 회로.
  9. 제 8 항에 있어서,
    상기 메모리 제어 유닛(55)은,
    상기 버스(24)의 제어부를 향하여 총칭 리퀘스트 펑션(generic request function)을 발생시킬 수 있는 메모리 컨트롤러 유닛(551); 및
    상기 버스(24)의 제어부의 타입의 펑션으로서, 상기 총칭 리퀘스트를 특수화할 수 있는 적응 유닛(552)을 구비하는 것을 특징으로 하는 전자 회로.
  10. 제 6 항에 있어서,
    상기 제1 인터페이스 장치(45a)는 상기 제1 프로세싱 펑션들을 수행하기 위하여 상기 제1 회로 블록(41)을 활성화시킬 수 있는 제1 블록 인터페이스 유닛(54a)을 구비하는 것을 특징으로 하는 전자 회로.
  11. 제 10 항에 있어서,
    상기 제 1 블록 인터페이스 유닛(54a)은 상기 컨트롤러(51)를 통하여 상기 제어 유닛(21)에 의해 프로그램되도록 설계되는 것을 특징으로 하는 전자 회로.
  12. 제 10 항에 있어서,
    상기 제1 인터페이스 장치(45a)에 포함된 상기 I/O 버퍼 장치는 상기 제1 블록 인터페이스 유닛(54a)에 포함되는 것을 특징으로 하는 전자 회로.
  13. 제 4 항에 있어서,
    상기 전자 회로는 복수의 회로 블록들(41, 61) 사이의 데이터 전송 체인들을 에뮬레이팅하기 위한 에뮬레이션 서브시스템인 것을 특징으로 하는 전자 회로.
  14. 제 13 항에 있어서,
    상기 회로 블록들은 하드웨어 타입의 회로 블록들(41) 및 펌웨어 타입의 회로 블록들(61)을 포함하는 것을 특징으로 하는 전자 회로.
  15. 삭제
  16. 삭제
KR1020047002436A 2001-08-30 2002-08-26 전자 회로에서의 데이터 전송방법, 전자 회로 및 관련 장치 KR101020709B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
ITTO2001A000838 2001-08-30
IT2001TO000838A ITTO20010838A1 (it) 2001-08-30 2001-08-30 Metodo per trasferire dati in un circuito elettronico, circuito elettronico e dispositivo relativo.
PCT/IT2002/000549 WO2003019395A1 (en) 2001-08-30 2002-08-26 Method of transferring data in an electronic circuit, electronic circuit and relating device

Publications (2)

Publication Number Publication Date
KR20040040442A KR20040040442A (ko) 2004-05-12
KR101020709B1 true KR101020709B1 (ko) 2011-03-09

Family

ID=11459164

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047002436A KR101020709B1 (ko) 2001-08-30 2002-08-26 전자 회로에서의 데이터 전송방법, 전자 회로 및 관련 장치

Country Status (10)

Country Link
US (1) US20040243742A1 (ko)
EP (1) EP1425673B1 (ko)
JP (1) JP4551657B2 (ko)
KR (1) KR101020709B1 (ko)
CN (1) CN1549975B (ko)
AT (1) ATE323308T1 (ko)
CA (1) CA2457880C (ko)
DE (1) DE60210637T2 (ko)
IT (1) ITTO20010838A1 (ko)
WO (1) WO2003019395A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051192B2 (en) * 2007-10-09 2011-11-01 Viasat, Inc. Methods and systems for presentation layer redirection for network optimization
CN110765044B (zh) * 2018-07-26 2021-02-23 展讯通信(上海)有限公司 数据包传输装置及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04230558A (ja) * 1990-10-01 1992-08-19 Internatl Business Mach Corp <Ibm> ダイレクト・メモリ・アクセス装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4495567A (en) * 1981-10-15 1985-01-22 Codex Corporation Multiprocessor/multimemory control system
JPS58169660A (ja) * 1982-03-31 1983-10-06 Panafacom Ltd マルチプロセツサシステムの構成方法
JPS59165119A (ja) * 1983-03-11 1984-09-18 Hitachi Ltd 入出力制御装置
JP2745521B2 (ja) * 1988-02-23 1998-04-28 株式会社日立製作所 フレーム送信方法
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
JP3460090B2 (ja) * 1992-04-23 2003-10-27 富士通株式会社 バス・インタフェース制御回路
JP3515142B2 (ja) * 1992-06-11 2004-04-05 セイコーエプソン株式会社 データ転送制御装置
US5835788A (en) * 1996-09-18 1998-11-10 Electronics For Imaging System for transferring input/output data independently through an input/output bus interface in response to programmable instructions stored in a program memory
JPH10154125A (ja) * 1996-11-26 1998-06-09 Toshiba Corp Dmaデータ転送装置および同装置を使用した動画像復号化装置並びにdmaデータ転送制御方法
US5890002A (en) * 1996-12-31 1999-03-30 Opti Inc. System and method for bus master emulation
JP3712842B2 (ja) * 1997-08-05 2005-11-02 株式会社リコー データ転送制御方法、データ転送制御装置及び情報記録媒体
US6119189A (en) * 1997-09-24 2000-09-12 Intel Corporation Bus master transactions on a low pin count bus
US6240476B1 (en) * 1998-08-21 2001-05-29 International Business Machines Corporation Dynamic allocation of bus master control lines to peripheral devices
US6434648B1 (en) * 1998-12-10 2002-08-13 Smart Modular Technologies, Inc. PCMCIA compatible memory card with serial communication interface
US6604159B1 (en) * 1999-08-12 2003-08-05 Mips Technologies, Inc. Data release to reduce latency in on-chip system bus
US6912611B2 (en) * 2001-04-30 2005-06-28 Advanced Micro Devices, Inc. Split transactional unidirectional bus architecture and method of operation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04230558A (ja) * 1990-10-01 1992-08-19 Internatl Business Mach Corp <Ibm> ダイレクト・メモリ・アクセス装置

Also Published As

Publication number Publication date
ATE323308T1 (de) 2006-04-15
US20040243742A1 (en) 2004-12-02
CA2457880A1 (en) 2003-03-06
JP4551657B2 (ja) 2010-09-29
JP2005501338A (ja) 2005-01-13
EP1425673A1 (en) 2004-06-09
DE60210637T2 (de) 2007-04-05
DE60210637D1 (de) 2006-05-24
CN1549975B (zh) 2010-05-12
ITTO20010838A0 (it) 2001-08-30
WO2003019395A1 (en) 2003-03-06
ITTO20010838A1 (it) 2003-03-02
CN1549975A (zh) 2004-11-24
KR20040040442A (ko) 2004-05-12
EP1425673B1 (en) 2006-04-12
CA2457880C (en) 2012-04-10

Similar Documents

Publication Publication Date Title
US6584590B1 (en) JTAG port-sharing device
WO2009144892A1 (ja) デバイスエミュレーション支援装置、デバイスエミュレーション支援方法、デバイスエミュレーション支援回路及び情報処理装置
JPH04229337A (ja) エミュレータ
KR101020709B1 (ko) 전자 회로에서의 데이터 전송방법, 전자 회로 및 관련 장치
JPS6112297B2 (ko)
CN101169767B (zh) 访问控制设备及访问控制方法
AU714669B2 (en) Peripheral device control
US7089140B1 (en) Programmable logic device and method of testing a programmable logic device
US7451074B2 (en) Embedded microprocessor emulation method
JP2010244376A (ja) ソフトウェア開発装置、及び、ソフトウェア開発装置を用いたデバッグ方法
JP2004094451A (ja) オンチップjtagインタフェース回路およびシステムlsi
JP2000339189A (ja) 不正なメモリアクセスを検出する方法、デバッグ装置および記録媒体
CN111694697B (zh) 半导体装置及调试系统
KR20010052868A (ko) 에뮬레이터 시스템에서 사용자 메모리를 업데이트하기위한 방법 및 시스템
JP2584903B2 (ja) 外部装置制御方式
JPH0285934A (ja) エミュレータ
JP2002215418A (ja) 協調シミュレーションによる論理検証装置
CN118052194A (zh) 芯片仿真验证系统、方法以及电子设备
JP2005084820A (ja) 入出力装置の模擬機能を備えた制御装置
JPH06348544A (ja) Scsiシミュレータ
JPH03136143A (ja) インサーキットエミュレータ
JPH0492932A (ja) エミュレーションマイクロコンピュータ
JPH0895610A (ja) プログラマブルコントローラ
JPH01266635A (ja) 半導体集積回路
JPH1139186A (ja) デバッグ支援装置およびダウンロード方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140224

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150225

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160223

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190222

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200225

Year of fee payment: 10