KR102354062B1 - 직접 메모리 액세스 제어 장치 및 그 작동 방법 - Google Patents
직접 메모리 액세스 제어 장치 및 그 작동 방법 Download PDFInfo
- Publication number
- KR102354062B1 KR102354062B1 KR1020170081920A KR20170081920A KR102354062B1 KR 102354062 B1 KR102354062 B1 KR 102354062B1 KR 1020170081920 A KR1020170081920 A KR 1020170081920A KR 20170081920 A KR20170081920 A KR 20170081920A KR 102354062 B1 KR102354062 B1 KR 102354062B1
- Authority
- KR
- South Korea
- Prior art keywords
- control device
- direct memory
- memory access
- access control
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
- Bus Control (AREA)
Abstract
본 발명은, 복수의 버스 가입자(60)를 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)를 연결하기 위한 단자와, 직접 메모리 액세스 제어 장치(40)의 작동을 제어하기 위한 제어 장치(42)를 구비한 직접 메모리 액세스 제어 장치(40)에 관한 것이다. 이 경우, 제어 장치(42)는 프로그래밍될 수 있다.
Description
본 발명은 청구항 제1항의 전제부에 따른 직접 메모리 액세스 제어 장치 및 대등의 독립항에 따른 방법에 관한 것이다.
시중에, 하나 또는 복수의 프로세서 코어를 가지며, 필요한 경우 주기억 장치에 액세스할 수 있는 처리 유닛들, 예컨대 프로세서들이 공지되어 있다. 그 밖에도, 상기 처리 유닛을 하나 또는 복수 개 포함하는 컴퓨터 시스템들은 통상 처리 유닛과 상호작용하는 복수의 추가 유닛, 예컨대 입/출력 모듈("IO") 등을 포함한다. 컴퓨터 시스템의 상기 요소들 중 적어도 일부는 하나의 공통 버스, 바람직하게는 병렬 버스를 통해 데이터, 예컨대 이더넷 구조를 갖는 데이터를 서로 교환할 수 있다. 그 밖에도, 이른바 직접 메모리 액세스(DMA, direct memory access)를 위한 방법도 공지되어 있으며, 그럼으로써 공통 버스를 통한 데이터 교환이 개선될 수 있다.
직접 메모리 액세스의 제어를 위한 공지된 장치들은 여러 용도로 사용하기에는 유연성이 불충분하다.
본 발명의 기초가 되는 과제는 청구항 제1항에 따른 직접 메모리 액세스 제어 장치를 통해, 그리고 대등의 청구항에 따른 방법을 통해 해결된다. 바람직한 개선예들은 종속 청구항들에 명시되어 있다. 또한, 본 발명을 위해 중요한 특징들은 하기 명세서 및 도면들에서 확인되며, 이 특징들은, 이에 대해 재차 명시되지 않더라도, 독자적으로뿐만 아니라 여러 조합으로도 본 발명을 위해 중요할 수 있다.
본 발명은, 복수의 버스 가입자를 연결하는 버스 시스템과 직접 메모리 액세스 제어 장치를 연결하기 위한 단자와, 직접 메모리 액세스 제어 장치의 작동을 제어하기 위한 제어 장치를 구비한 직접 메모리 액세스 제어 장치에 관한 것이다. 이 경우, 제어 장치는 프로그래밍될 수 있으며, 그럼으로써 공지된 시스템들에 비해 유연성이 증가할 수 있다.
일 구현예에서, 버스 시스템에는 주기억 장치, 특히 처리 유닛의 중앙 주기억 장치가 연결되지 않는다. 그에 상응하게, 버스 시스템에 연결된, 예컨대 통신 모듈들일 수 있는 요소들은 필요한 경우 로컬 메모리, 예컨대 RAM 메모리("Random Access Memory")를 가지며, 이 메모리는 직접 메모리 액세스 데이터 전송("DMA 전송")을 위한 소스 및/또는 타깃으로서 이용될 수 있다.
일 구현예에서, 본 발명에 따른 직접 메모리 액세스 제어 장치, 버스 시스템, 그리고 버스 가입자들 중 적어도 하나의 버스 가입자는 마이크로 컨트롤러의 요소이다. 예컨대 상기 마이크로 컨트롤러는 단일의 집적 반도체 회로("칩") 상에 배치된다. 또 다른 실시형태의 경우, 본 발명에 따른 직접 메모리 액세스 제어 장치는 예컨대 통신 모듈 내에도 통합될 수 있다.
본원에서 "프로그래밍될 수 있는"이란 특성은, 제어 장치 또는 직접 메모리 액세스 제어 장치를 통해 실행될 수 있는 방법 단계들이 버스 시스템 및 이 버스 시스템에 연결된 요소들을 포함하는 시스템의 작동 중에 예컨대 상응하는 (프로그램) 명령어들의 사전 설정을 통해 자유롭게 프로그래밍될 수 있다는 점을 의미한다.
특히, 그 밖에도, 의사코드 명령 이름들인 "if", "then", "else" 등으로도 공지되어 있는 이른바 "비교 분기들(comparison branch)"을 거의 임의의 구조로 사전 설정하여 실행할 수도 있다.
이는, 바람직한 실시형태들에 따라서, 처리 유닛[예컨대 CPU, MCS(Multi Channel Sequencer) 또는 또 다른 형태 역시]을 통해 재현될 수도 있다. 상기 처리 유닛은, 예컨대 "고유의" 명령어 집합이 존재하고, 그에 따라 처리 유닛은 상기 명령어 집합의 이용하에 프로그래밍될 수 있는 점을 특징으로 한다. 따라서 예컨대 DMA 모드는 각각의 용례에서 자유롭게 프로그래밍될 수 있다. MCS의 장점은 다른 프로세스들을 통해 중단될 수 없는 순차 프로그램 실행의 구성 가능한 모드이다.
실행 가능한 연산 단계들(예: 산술/논리 연산, 예: "if", "else" 등)의 집합을 포함하며, 상기 연산 단계들의 조합을 통해 함께 프로그램 시퀀스를 형성하는 프로그래밍 가능 제어 장치도 생각해볼 수 있다.
본원의 직접 메모리 액세스 제어 장치는 예컨대 상이한 버스 가입자들 간의 DMA 전송을 위해 이용될 수 있고 이를 위해 버스 가입자들과 협력할 수 있다. 예컨대 상기 버스 가입자들은 통신 모듈들 또는 상기 통신 모듈들에 할당된 기억 영역들일 수 있다. 예컨대 통신 모듈들은 이더넷 모듈들로서, 또는 이른바 "MCAN 모듈들"로서 구현될 수 있다. "CAN은 영어로 "Controller Area Network"를 의미하며, 알파벳 "M"은 생산자별 명칭 이니셜을 특성화한다. 또한, 본원의 직접 메모리 액세스 제어 장치는, 복수의 처리 유닛 또는 복수의 처리 코어를 이용한 작동을 위해 구현되지 않은 버스 가입자들 또는 통신 모듈들과도 협력할 수 있다.
본 발명은, 프로그래밍 가능 제어 장치에 의해 비교적 복잡한 구조, 특히 인터리빙 구조를 갖는 데이터도 특히 "지능형" 방식으로 분석되고, 그리고/또는, 계속 하기에서 훨씬 더 상세하게 설명되는 것처럼, 직접 메모리 액세스에 의해 처리될 수 있다는 장점이 있다. 예컨대 이른바 "이더넷 프레임들", 다시 말해 이더넷 프로토콜에 따른 데이터 프레임들은 ISO/OSI 계층 모델의 계층들 전반에 걸친 추가 프로토콜들 및/또는 이른바 "페이로드 데이터"의 인터리빙 구조를 가질 수 있다. 상대적으로 더 상위의 프로토콜 계층들(ISO/OSI 계층 3 및 그 이상, 예컨대 계층 4 또는 5)의 데이터의 분석 및 필터링도 본 발명에 따라 가능해진다.
일 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제어 장치의 프로그래밍에 따라 버스 시스템의 버스 가입자의 데이터를 분석하도록 형성된다. 제어 장치의 프로그래밍을 통해, 데이터는 매우 바람직하고 유연하게 분석될 수 있다. 따라서 특히 전술한 분석을 단계별로 수행할 수 있으며, 일 구현예에서 예컨대 각각 후행하는 분석 단계들은 각각 선행하는 분석 단계들에 기초하여 수행된다. 동일한 방식으로, 추가 실시형태들의 경우, 향후에 정의할 데이터 형식들 또는 프로토콜들을 그에 상응하게 분석(예: 필터링)할 수 있도록 하기 위해, 예컨대 상기 데이터 형식들 또는 프로토콜들에 프로그래밍의 변경을 통해 분석을 조정하는 점도 생각해볼 수 있다.
일 구현예에서, 상기 분석을 이용하여 하나 이상의 전송할 데이터의 길이 및 하나 이상의 제2 버스 가입자로의 전송을 위한 하나 이상의 타깃 주소가 결정된다. 데이터가 각각 분리되어 전송되어야 하는 복수의 섹션을 포함할 경우, 그에 상응하게 복수의 길이 및 복수의 타깃 주소가 결정될 수 있다.
일 구현예에서, 제어 장치는 선택적으로 각각의 분석 단계들 사이에서 프로그래밍될 수 있다. 예컨대 이는 마찬가지로 각각 선행하는 분석 단계들 또는 이 분석 단계들에서 획득된 결과들에 따라 수행된다. 특히 본원의 직접 메모리 액세스 제어 장치에 대해, 예컨대 별도의 처리 유닛에 의해 사전 정의된 구성 및/또는 수정 불가능한 컴퓨터 프로그램의 이용하에 수행되는 데이터의 외부 분석은 감소할 수 있거나, 심지어 불필요할 수 있다. 그에 따라, 프로그래밍 가능 제어 장치에 의해, 필요한 계산 실행 시간은 이미 분석 시 바람직하게 감소할 수 있다.
그 밖에도, 요구되지 않는 데이터의 DMA 전송들이 방지될 수 있는데, 그 이유는 본 발명에 따른 원리에 따라 버스 가입자의 데이터의 분석이 실행될 수 있고 이런 분석에 의해서는 관계있는 전송할 데이터 또는 이 데이터의 길이가 결정되기 때문이다. 이런 방식으로, 예컨대 타깃 모듈에서 DMA 전송을 위해 전혀 요구되지 않는 또 다른 프로토콜 계층들의 관계없는 프로토콜/헤더 데이터를 DMA 전송으로 전송하는 점이 방지될 수 있다. 그 대신, 목표한 바대로, 예컨대 단지 관계있는 데이터 패킷 또는 데이터 프레임의 페이로드(또는 이 페이로드의 부분들)만이 DMA에 의해 전송될 수 있다.
일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제어 장치의 프로그래밍에 따라 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템을 통해 제1 버스 가입자로부터 하나 이상의 제2 버스 가입자로 데이터를 전송하도록 형성된다. 프로그래밍에 의해, 데이터는 매우 바람직하게 전송될 수 있다. 전송할 데이터는 앞에서 이미 언급한 것처럼 분석 시 조사된 모든 데이터 또는 그 중 일부분만을 포함할 수 있다.
특히 본원의 직접 메모리 액세스 제어 장치는, 예컨대 통신 모듈이거나 이 통신 모듈에 할당된 기억 영역이고 버스 시스템과 연결된 제1 버스 가입자의 데이터(또는 그 중 일부)의 전송을 가능하게 한다. 예컨대 상기 데이터는 버스 시스템과 연결된 처리 유닛 또는 처리 코어의 로컬 메모리 내로 전송될 수 있으며, 전송(및 직접 메모리 액세스 제어 장치를 통한, 경우에 따라 선행하는 분석)에 대해 상기 처리 유닛 또는 또 다른 처리 유닛의 관여는 불필요하다.
전송할 데이터는 바람직하게는 데이터 내에 포함되어 있는 기준들("검색 특징들" 또는 필터 기준들; 계속하여 하기 내용 참조)의 이용하에 특정한 처리 유닛, 또는 처리 코어, 또는 기억 영역으로 전송될 수 있다. 또한, 전송할 데이터의 복수의 부분을 복수의 처리 유닛 또는 처리 코어 또는 기억 영역으로 전송하여 분배할 수도 있다. 이 경우, 하나의 메시지의 모든 데이터(예: 이더넷 프레임)가 전송될 수 있거나, 메시지의 사전 설정 가능한 특정 부분들만 전송될 수 있다.
사전 설정 가능한 특정 부분들만 전송하는 점은 특히 이더넷 프레임이 길 때 매우 유리한데, 그 이유는 요구되지 않는 정보들(헤더, 기타 프로토콜들)이 이미 DMA 전송 전에 제거될 수 있기 때문이다. 그로 인해 방지되는 불필요한 바이트 전송들은 [예컨대 마이크로 컨트롤러(μC)의 내부 버스인] 버스 시스템의 부하를 경감시키고, 특히, 데이터가 전송될 버스 가입자의, DMA 전송을 통해 수신되는 데이터의 데이터 처리와 관련한 소프트웨어를 간소화한다. 이 경우, 총체적으로 필요한 계산 처리 능력 또는 데이터의 전송을 특성화하는 실행 시간이 감소할 수 있는데, 그 이유는 마지막에 불필요한 프레임 부분들이 사전에 제외되기 때문이다. 전술한 실행 시간은 특히, 분석을 위해 이용되는 프로토콜 결정, 데이터 검색 등을 포함할 수 있다.
예컨대 이른바 "SOME/IP 프로토콜"을 포함하는 이더넷 프레임들은 복수의 전송할 데이터 섹션(데이터 세그먼트)을 포함할 수 있으며, 이 데이터 섹션들은 각각 직접 메모리 액세스에 의해 상이한 버스 가입자들로 전송될 수 있다. 이 경우, 본 발명에 따른 직접 메모리 액세스 제어 장치는, 단일의 이른바 "DMA 채널"(DMA: "Direct Memory Access")이 복수의 데이터 섹션을 상이한 버스 가입자들로 전송할 수 있다는 추가 장점이 있다. 축약어 "SOME/IP"는 영어로 "Scalable service-Oriented MiddlewarE over IP"를 의미한다.
본원의 직접 메모리 액세스 제어 장치가 데이터 길이("프레임 길이") 또는 데이터의 각각의 섹션들의 길이를 결정한 후에, 본원의 직접 메모리 액세스 제어 장치는 일 추가 실시형태에 따라 예컨대 DMA 전송 전에, 또는 DMA 전송 중에 시작 주소 및 종료 주소의 타당성을 검사할 수 있으며, 필요한 경우 임시로 에러 플래그들의 설정을 이용하여 적합하게 반응할 수 있다. 따라서, 필요한 경우 종래 기술에 따라 DMA 전송을 위한 타깃 모듈 상에서 실행되는 소프트웨어에 의해 실행되어야 할 수도 있는 추가 검사가 불필요할 수 있다.
이 경우, 전술한 데이터의 분석 및 직접 메모리 액세스 제어 장치의 제어는 바람직하게 프로그래밍 가능 제어 장치를 이용하여 수행된다. 프로그래밍 가능 제어 장치의 프로그래밍은 예컨대 제어 장치를 위한 상응하는 (프로그램) 명령어들을 예컨대 버스 시스템에 연결된 메모리의 사전 설정 가능한 기억 영역 내로 제공함으로써, 또는 예컨대 버스 시스템에 연결되어 있지 않은 별도의 메모리(예: 직접 메모리 액세스 제어 장치와 관련하여 로컬 메모리)로 제어 장치를 위한 (프로그램) 명령어들을 제공함으로써 수행될 수 있다.
일 추가 구현예에서, 프로그래밍 가능 제어 장치는 프로그래밍 가능 처리 유닛을 포함한다. 본원의 직접 메모리 액세스 제어 장치를 위한 제어 장치의 기능의 부분들은 일 추가 실시형태에 따라 하나 이상의 상태 기계(state machine)에 의해서도 실현될 수 있다.
그 밖에도, 제어 장치(또는 프로그래밍 가능 처리 유닛)는, 하기 매개변수들, 즉:
- 검색 특징, 특히 프로토콜 정보 및/또는 CAN-ID(Controller Area Network Identity);
- 검색 위치, 특히 오프셋 주소;
- 각각의 검색 특징의 길이;
- 반복 단계들 또는 검색 실행들의 사전 설정 가능한 횟수;
- 데이터의 하나 이상의 섹션의 전송을 위한 타깃 주소;
중 적어도 하나의 매개변수를 포함하는 하나 이상의 매개변수 집합을 로딩하여, 버스 시스템의 버스 가입자의 데이터의 분석 및/또는 전송을 위해 이용하도록 형성될 수 있다.
(하나 또는 복수의 매개변수를 포함할 수 있는) 하나 이상의 매개변수 집합을 로딩함으로써, 데이터의 분석이 매우 효율적이고 유연하게 수행될 수 있다. 전술한 로딩은 선택적으로, 예컨대 각각 선행하는 분석 단계들의 결과들에 따라, 분석의 임의의 복수의 단계 사이에서도 수행될 수 있다.
일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 버스 가입자의 데이터에서 정보들을 결정하고, 이 정보들에서 데이터의 각각 전송할 섹션의 길이를 결정하여 기준 값과 비교하도록 형성된다. 이를 위해, 예컨대 전술한 데이터는 완전히 또는 일부만 [예컨대 직접 메모리 액세스 제어 장치의 로컬 (버퍼) 메모리 내로] 로딩될 수 있다. 데이터의 복수의 섹션이 전송되어야 한다면, 정보들의 결정 및 기준 값과의 비교는 예컨대 데이터의 각각 존재하는 구조에 상응하게 반복적으로 수행될 수도 있다. 결정된 길이 및 기준 값을 이용하여, 데이터 내에서 또는 데이터의 전송 중 에러 및/또는 고의적인 조작이 바람직하게 인지될 수 있다.
일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 상이한 제2 버스 가입자들로, 또는 상이한 타깃 주소들로, 특히 버스 시스템과 연결된 처리 유닛들의 상이한 로컬 메모리들로 데이터의 상이한 섹션들을 전송하도록 형성된다. 그에 따라, (소스) 버스 가입자 내에 존재하는 데이터는 바람직하게 데이터 및/또는 이 데이터의 메타 데이터에 대한 기준들에 따라 상이한 타깃 영역들로, 예컨대 상이한 타깃 버스 가입자들로 전송되고 분배될 수 있다. 그럼으로써 특히, 통신 모듈로서 형성된 (소스) 버스 가입자의 경우, 상이한 타깃 버스 가입자들로 통신 모듈의 메시지(예: 통신 모듈에 의해 수신된 CAN 메시지 등)의 데이터를 분배할 수도 있다.
일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 에러 정보들을 결정하고, 그리고/또는 에러 정보들에 따라 데이터의 분석 및/또는 전송을 수행하도록 형성된다. 예컨대 소스 주소 및/또는 타깃 주소뿐 아니라 경우에 따른 특정한 DMA 전송을 위한 추가 가능한 매개변수들의 분석이 하나 또는 복수의 사전 설정 가능한 에러 기준(예: 허용되는 주소 범위를 벗어난 타깃 주소, 사전 설정 가능한 한계 값보다 더 큰 전송할 데이터의 길이 등)을 충족한다면, 에러 또는 조작이 추론될 수 있으며, DMA 전송은 중지되거나, 심지어 실행되지 않을 수 있다. 다른 실시형태들에서, 에러 반응[에러 메모리 내 엔트리, 처리 유닛으로의 인터럽트 요청(interrupt request) 등]의 도입도 생각해볼 수 있다.
일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제1 버스 가입자의 데이터의 시작 주소 및/또는 종료 주소를 결정하여 기준 값과 비교하도록 형성된다.
일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제2 버스 가입자로 전송할 데이터 및/또는 데이터의 전송할 섹션들의 시작 주소 및/또는 종료 주소를 결정하여 기준 값과 비교하도록 형성된다.
일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제1 버스 가입자로부터 시그널링 정보들을 수신하고, 그리고/또는 제1 버스 가입자 내에서 시그널링 정보들을 설정하거나 삭제하도록 형성된다.
일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제2 버스 가입자로 시그널링 정보들을 송신하고, 그리고/또는 제2 버스 가입자 내에서 시그널링 정보들을 설정하거나 삭제하도록 형성된다.
일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 하기 조치들, 즉:
- 제1 버스 가입자로부터 트리거 신호(예컨대 DMA 전송 및/또는 데이터의 분석이 실행되어야 함을 알리는 제어 신호)를 수신하고;
- 특히 하나의 트리거 신호 또는 상기 트리거 신호에 따라, 주기억 장치 또는 제1 버스 가입자의 메모리에서 직접 메모리 액세스에 의해 전송될 데이터를 수신하거나 판독하고;
- 제2 버스 가입자의 타깃 메모리에 대한 메모리 조직(memory organization)을 특성화하는 엔트리 유형을 결정하고, 상기 결정된 엔트리 유형에 따라 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템을 통해 제1 버스 가입자로부터 제2 버스 가입자의 타깃 메모리 내로 데이터를 전송하는;
조치들 중 하나 이상의 조치를 수행하도록 형성된다.
추가의 바람직한 실시형태들에서 개별적으로, 또는 서로 조합되어, 그리고 서로 임의의 순서로 실행될 수 있는 전술한 조치들에 의해, 직접 메모리 액세스 제어 장치의 작동뿐만 아니라 데이터의 분석 및 전송이 바람직하게 개선될 수 있다. 엔트리 유형에 의해, 예컨대 데이터가 마지막에 사전 설정 가능한 "전용" (블록) 기억 영역 내로 전송될지, 아니면 순환 버퍼로서 구성된 기억 영역 내로 전송될지의 여부가 사전 설정될 수 있다. 기억 영역은 예컨대 각각 중앙 주기억 장치, 또는 버스 가입자의 각각의 로컬 메모리일 수 있으며, 예컨대 버스 시스템과 연결된 처리 유닛의 로컬 메모리일 수 있다.
그 밖에도, 제어 장치는 본원의 직접 메모리 액세스 제어 장치의 집적 반도체 회로 내에 통합 배치될 수 있다. 따라서 장착 공간 및 비용이 절약될 수 있다.
그 밖에도, 본원의 직접 메모리 액세스 제어 장치는 (특히 프로그래밍 가능 제어 장치를 포함하여) 특히 반도체 기술의 이용하에 20㎚(나노미터) 내지 60㎚ 범위의 구조 크기를 갖는 하드웨어 회로로서 형성될 수 있다. 따라서, 데이터의 분석 및 전송을 위해 필요한 실행 시간이 바람직하게 감소하며 효율적인 작동이 보장될 수 있다.
일 구현예에서, 본원의 직접 메모리 액세스 제어 장치는 하기 단계들을 실행하도록 형성된다.
- 매개변수 집합이 하나 이상의 사전 설정 가능한 매개변수를 포함하는 조건에서, 하나 이상의 버스 가입자의 하나 이상의 매개변수 집합을 수신하거나 판독하는 단계;
- 제1 버스 가입자로부터 데이터를 수신하거나 판독하는 단계;
- 데이터의 제1 영역이 하나 이상의 매개변수에 따라 결정되는 조건에서, 데이터의 제1 영역에서 제1 정보들을 결정하는 단계;
- 예컨대 "검색 특징"이면서 매개변수 집합에서 결정되는 제1 기준과 제1 정보들을 비교하는 단계;
- 상기 비교 및/또는 결정된 제1 정보에 기초하여 하기 단계 (a) 내지 (c)를 조건부로 수행하는 단계:
(a) 데이터의 각각의 추가 영역이 하나 이상의 추가 매개변수 및/또는 제1 정보 및/또는 추가 정보에 따라 결정되는 조건에서, 데이터의 하나 이상의 각각의 추가 영역에서 각각의 추가 정보를 결정하는 단계;
(b) 매개변수 집합에서 결정된 추가 기준과 추가 정보를 비교하는 단계;
(c) 상기 비교 및/또는 결정된 추가 정보에 기초하여 단계 (a) 내지 (c)를 조건부로 반복하는 단계;
- 제1 정보들 및/또는 추가 정보들 및/또는 하나 이상의 매개변수에 따라 하나 이상의 제2 버스 가입자의 하나 이상의 타깃 주소를 결정하는 단계;
- 제1 정보들 및/또는 추가 정보들 및/또는 하나 이상의 매개변수에 따라 하나 이상의 타깃 주소로 전송될 데이터의 하나 이상의 섹션의 길이를 결정하는 단계;
- 제1 버스 가입자로부터 하나 이상의 제2 버스 가입자로 직접 메모리 액세스를 이용하여 하나 이상의 제2 버스 가입자의 하나 이상의 타깃 주소로 데이터의 하나 이상의 섹션을 전송하는 단계.
데이터의 각각 언급한 영역은 바람직하게는 버스 시스템의 하나 또는 복수의 주소, 또는 버스 시스템과 연결된 메모리의 하나 또는 복수의 주소에 의해 특성화된다. 설명한 단계들을 통해 기술한 본원의 직접 메모리 액세스 제어 장치는 특히 바람직하게 데이터의 분석 및 전송을 위해 형성된다.
이에 대한 일 구현예에서, 데이터의 하나 이상의 섹션의 전송 전에, 상기 전송 단계에 선행하는 단계들의 적어도 일부의 반복이 수행된다. 이런 방식으로, 바람직하게는 데이터로부터 전송할 복수의 섹션에 대한 정보들이 결정될 수 있고, 후속하는 상기 섹션들의 전송들이 연속으로 수행될 수 있다.
그 밖에도, 본 발명은, 복수의 버스 가입자를 연결하는 버스 시스템과 직접 메모리 액세스 제어 장치를 연결하기 위한 단자와, 직접 메모리 액세스 제어 장치의 작동을 제어하기 위한 제어 장치를 구비한 직접 메모리 액세스 제어 장치를 작동하기 위한 방법에 관한 것이다. 이 경우, 방법에 따라 제어 장치는 프로그래밍된다.
본원의 방법의 일 구현예에서, 제어 장치의 프로그래밍에 따라 버스 시스템의 버스 가입자의 데이터가 분석되거나, 제어 장치의 프로그래밍에 따라 데이터가 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템을 통해 제1 버스 가입자로부터 하나 이상의 제2 버스 가입자로 전송된다.
본원의 방법의 일 추가 구현예에서, 버스 가입자의 데이터로부터 정보들이 결정되며, 상기 정보들에서 데이터의 각각 전송할 섹션의 길이가 결정되어 기준 값과 비교된다.
본 발명에 따른 방법의 경우, 계속하여 앞에서 본원의 직접 메모리 액세스 제어 장치 및 그 구현예들에 대해 이미 기술한 것과 대응하는 장점들이 달성된다.
하기에서 본 발명의 예시에 따른 실시형태들은 도면을 참조하여 설명된다.
도 1은 버스 시스템과, 직접 메모리 액세스 제어 장치와, 버스 시스템과 연결된 복수의 버스 가입자를 포함한 시스템을 간소화하여 도시한 개략도이다.
도 2는 이더넷 프레임의 데이터의 개략도이다.
도 3은 도 1의 직접 메모리 액세스 제어 장치의 작동을 제어하기 위한 제어 장치의 프로그램 흐름도이다.
도 4는 도 3의 프로그램 흐름도의 선택에 따른 확장에 대한 제1 다이어그램이다.
도 5는 도 3의 프로그램 흐름도의 선택에 따른 확장에 대한 제2 다이어그램이다.
도 6은 버스 시스템과 연결된 처리 유닛들의 각각의 로컬 메모리들에 대한 이더넷 프레임의 데이터 섹션들의 예시에 따른 할당을 나타낸 도면이다.
도 7은 도 1에 따른 시스템용으로 통신 모듈로서 구현되는 버스 가입자에 대한 제1 추가 실시형태를 도시한 도면이다.
도 8은 도 1에 따른 시스템용으로 통신 모듈로서 구현되는 버스 가입자에 대한 제2 추가 실시형태를 도시한 도면이다.
도 2는 이더넷 프레임의 데이터의 개략도이다.
도 3은 도 1의 직접 메모리 액세스 제어 장치의 작동을 제어하기 위한 제어 장치의 프로그램 흐름도이다.
도 4는 도 3의 프로그램 흐름도의 선택에 따른 확장에 대한 제1 다이어그램이다.
도 5는 도 3의 프로그램 흐름도의 선택에 따른 확장에 대한 제2 다이어그램이다.
도 6은 버스 시스템과 연결된 처리 유닛들의 각각의 로컬 메모리들에 대한 이더넷 프레임의 데이터 섹션들의 예시에 따른 할당을 나타낸 도면이다.
도 7은 도 1에 따른 시스템용으로 통신 모듈로서 구현되는 버스 가입자에 대한 제1 추가 실시형태를 도시한 도면이다.
도 8은 도 1에 따른 시스템용으로 통신 모듈로서 구현되는 버스 가입자에 대한 제2 추가 실시형태를 도시한 도면이다.
모든 도면에서 기능상 등가인 요소들 및 변수들을 위해 실시형태들이 상이하더라도 동일한 도면부호들이 이용된다.
도 1에는, 여기에서는 복수의 처리 유닛(20_1 내지 20_n)과 이 처리 유닛들(20_1 내지 20_n)에 각각 할당된 로컬 메모리들(30_1, 30_2 내지 30_n)을 포함하는 컴퓨터 시스템(10)이 도시되어 있다. 또한, 중앙 주기억 장치(30)는 버스 시스템(12)과 연결된다. 주기억 장치(30)는 선택 사항이라서 도 1에 파선으로 도시되어 있다. 도 1에서 좌측 블록은, 단자(41)를 통해 마찬가지로 버스 시스템(12)과 연결되어 있는 직접 메모리 액세스 제어 장치(40)를 특성화한다. 도 1에서, 직접 메모리 액세스 제어 장치(40)의 상부에는, 직접 메모리 액세스 제어 장치(40)의 작동을 제어할 수 있는 제어 장치(42)가 도시되어 있다.
그 밖에도, 도 1에는, 버스 시스템(12)과 연결된 복수의 통신 모듈(50_1 내지 50_n)도 도시되어 있으며, 이 통신 모듈들은 통틀어 도면번호 50으로도 표시된다. 통신 모듈들(50_1 내지 50_n)에는 예컨대 각각 이더넷 네트워크, CAN 버스 등이 연결된다. 버스 시스템(12)과 연결되는 컴포넌트들(20_1, 20_2 내지 20_n, 30_1, 30_2 내지 30_n, 30, 40 및 50_1, 50_2 내지 50_n) 각각은 버스 시스템(12)의 각각의 "버스 가입자"를 특성화하며, 버스 가입자들은 일반화하여 도면부호 60으로 대신 표시되어 있다.
일 실시형태에서, 처리 유닛들(20_1 내지 20_n)은 (그 자체로서 도 1에는 미도시한) 처리 유닛의 각각의 프로세서 코어를 통해 형성된다. 일 실시형태에서, 상기 처리 유닛은 모놀리식 집적 반도체 회로로서 구현된다. 일 실시형태에서, 컴퓨터 시스템(10)은 마이크로 컨트롤러이다.
그 밖에도, 도 1에는, 화살표 유형의 선들을 통해 도시된 복수의 데이터 경로도 상징적으로 도시되어 있다. 상기 데이터 경로들은 예시로서 직접 메모리 액세스를 이용하면서 버스 시스템(12)을 통해 (도 1에서 우측 하부에 있는) 통신 모듈(50_n)로부터 (도 1의 상부 영역에 있는) 로컬 메모리들(30_1, 30_2 내지 30_n)로 데이터의 전송을 특성화한다.
예컨대 통신 모듈들(50)은 자신들의 각각의 통신 채널(미도시)을 통해 수신된 데이터를 주기억 장치(30) 내에 기록하는데, 그 이유는 통신 모듈들(50)이 데이터를 일반적으로 분명하게 해석할 수 없기 때문이다. 그런 후에, 각각의 통신 모듈(50)은 트리거 신호를 직접 메모리 액세스 제어 장치(40)로 송신할 수 있다[이에 대해서는 계속하여 하기에서 도 3에서의 블록(202) 참조].
또한, 통신 모듈들(50)은 자신들의 각각의 통신 채널을 통해 수신된 데이터를 로컬 메모리(미도시) 내에 적어도 일시적으로 저장할 수 있고 그런 다음 수신된 데이터의 적어도 부분들은 직접 메모리 액세스들의 이용하에 버스 시스템(12)을 통해 하나 또는 복수의 또 다른 버스 가입자로 전송될 수 있다.
다시 말해, 도 1에는, 전체적으로, 복수의 버스 가입자(60)를 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)의 연결을 위한 단자와, 직접 메모리 액세스 제어 장치(40)의 작동을 제어하기 위한 제어 장치(42)를 구비한 직접 메모리 액세스 제어 장치(40)를 포함하는 컴퓨터 시스템(10)이 도시되어 있다. 이 경우, 제어 장치(42)는 프로그래밍될 수 있다.
일 실시형태에서, 직접 메모리 액세스 제어 장치(40)는, 제어 장치(42)의 프로그래밍에 따라 버스 시스템(12)의 버스 가입자(60)의 데이터를 분석하도록 형성된다.
일 추가 실시형태에서, 직접 메모리 액세스 제어 장치(40)는, 제어 장치(42)의 프로그래밍에 따라서, 하나 이상의 직접 메모리 액세스를 이용하면서 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 데이터를 전송하도록 형성된다.
여전히 일 추가 실시형태에서, 프로그래밍 가능 제어 장치(42)는 도 1에서 제어 장치(42)의 하부에 파선으로 표시되어 있는 프로그래밍 가능 처리 유닛(44)을 포함한다. 프로그래밍 가능 처리 유닛(44)은 바람직하게는 (그러나 비강제적인 방식으로) 예컨대 제어 장치(42) 내에 존재하는 "자신의" 프로그램 코드 또는 상응하는 프로그램 명령어들을 통해 작동될 수 있으며, 다시 말해 프로그램 코드 또는 프로그램 명령어들은 처리 유닛(44)의 작동 중에 바람직하게는 버스 시스템(12)의 개입 없이 실행될 수 있다. 일 추가 실시형태에서, 제어 장치(42)는, 또한 직접 메모리 액세스 제어 장치(40)를 위한 제어 장치(42)의 기능의 부분들을 실현하기 위해 하나 이상의 상태 기계도 포함할 수 있다.
또한, 추가의 바람직한 실시형태들에서, 컴포넌트들(40, 42, 44)은 각각 (또는 그 중 하나만이, 또는 2개만이) 메모리, 특히 로컬 메모리를 포함할 수 있으며, 그럼으로써 예컨대 전술한 프로그램 코드 또는 상응하는 프로그램 명령어들 또는 프로그램들은 관련된 컴포넌트(40, 42, 44)의 (로컬) 메모리에서 실행될 수 있게 된다. 이는 바람직하게는 성능(처리 능력)을 높이며, 그리고 외부 또는 중앙 메모리, 예컨대 플래시 메모리로의 접근들을 감소시키거나 방지하는 점에 기여할 수 있다.
일 바람직한 실시형태에서, 직접 메모리 액세스 제어 장치(40)는 하드웨어 회로로서 형성된다. 일 추가 실시형태에서, 제어 장치(42)는 직접 메모리 액세스 제어 장치(40)의 집적 반도체 회로 내에 통합 배치된다. 일 실시형태에서, 제어 장치(42)는 직접 메모리 액세스 제어 장치(40)로부터 분리되어 배치된다.
도 2에는, 이더넷 프레임(이더넷 프로토콜에 따른 데이터 프레임)(120) 및 이 이더넷 프레임에 포함되어 있는, 또 다른 프로토콜들 또는 프로토콜 계층들의 데이터의 개략도(100)가 도시되어 있다. 이더넷 프레임(120)은 인터리빙 방식으로 구현되며, 이는 여기서 각각 도면에서 좌측에서 우측으로 연장되는 총 4개의 데이터 구조를 통해 도시되어 있다. 도 2의 이더넷 프레임[및 동일한 방식으로 도 6의 이더넷 프레임(100')(계속하여 하기 내용 참조)]은 예시로서 직접 메모리 액세스 제어 장치(40)에 의해 분석될 데이터(100)이면서 적어도 부분적으로 이어서 직접 메모리 액세스에 의해, 그리고 직접 메모리 액세스 제어 장치(40)에 의해 전송되어야 하는 상기 데이터(100)를 특성화한다.
도 2에서 최하부의 데이터 구조(120)는 ISO/OSI 계층 모델의 MAC("Medium Access Control") 계층(계층 2)에서 이더넷 프레임의 도해에 상응하고, 도 2에서 그 위에 위치하는 데이터 구조(140)는 이더넷 프레임(120)의 페이로드(payload)(130)의 구성요소로서 실질적으로 IPv6 구조("Internet Protocol Version 6", ISO/OSI 계층 3)를 특성화하며, 그 위에 위치하는 데이터 구조(160)는 IPv6 구조(140)의 페이로드(151)의 구성요소로서 TCP 구조[전송 제어 프로토콜("Transmission Control Protocol"), ISO/OSI 계층 4]를 특성화하며, 그 위에 위치하는 블록(180)은 TCP 구조(160)의 페이로드 내용을 표현하면서 상징적으로 프로토콜들 및 그 데이터 프레임들의 가능한 추가 인터리빙을 예시한 것이다. 선들(190)은 각각 그 위에 위치하는 계층의 데이터 프레임으로 하부 ISO/OSI 계층의 페이로드(payload)의 "확장"을 각각 예시한 것이다. 예컨대 블록(120)과 블록(140) 사이의 선들(190)은, IPv6 구조(140)가 이더넷 프레임(120)의 MAC 페이로드(payload)에서 유추된다는 점을 명시하고 있다.
여기서 이더넷 프레임(120)은 하기에 자신들의 도면부호들을 통해 열거되어 있는 하기 필드들 또는 데이터 섹션들을 통해 특성화된다(열 구분: 필드명, 도면부호, 길이).
프리앰블 122 8바이트;
타깃 주소 123 6바이트;
소스 주소 124 6바이트;
TPID 125 2바이트;
우선순위(PCP) 126 3비트;
DEI/CFI 127 1비트;
VLAN-ID 128 12비트;
이더 유형(EtherType) 129 2바이트;
MAC 페이로드 130 42바이트 내지 1500바이트;
CRC 체크섬 131 4바이트;
MAC 헤더("header") 132 18바이트;
VLAN 태그 133 4바이트.
여기서 IPv6 구조(140)는 하기에 자신들의 도면부호들을 통해 열거되어 있는 하기 데이터 섹션들을 통해 특성화된다.
버전 143 4비트;
우선순위 144 1바이트;
흐름 라벨 145 20비트;
페이로드 길이 146 2바이트;
다음 헤더(next header) 147 1바이트;
홉 한계(Hop Limit) 148 1바이트;
소스 주소 149 16바이트;
타깃 주소 150 16바이트;
IPv6 페이로드 151 0바이트 내지 1460바이트;
IPv6 헤더 153 40바이트.
여기서 TCP 구조(160)는 하기에 자신들의 도면부호들을 통해 열거되어 있는 하기 데이터 섹션들을 통해 특성화된다.
소스 포트 164 2바이트;
타깃 포트 165 2바이트;
시퀀스 번호 166 4바이트;
ACK 번호 167 4바이트;
데이터 오프셋 168 4비트;
예약 + 플래그 169 12비트;
윈도우 크기 170 2바이트;
체크섬 171 2바이트;
긴급 포인터 172 2바이트;
TCP 옵션 173 0 내지 40바이트;
TCP 페이로드 174 0 내지 1440바이트;
TCP 헤더 175 20 내지 60바이트.
도 2에는, MAC-페이로드(130), IPv6 페이로드(151), MAC 헤더(132), CRC 체크섬(131)과 같은 일부 데이터 섹션이 도시된 인터리빙에 상응하게 (부분적으로는 도면부호 없이) 한 번 이상 열거되어 있다.
계속하여 하기에서 더 설명되는 것처럼, 앞에서 예시로서 기재한 데이터의 분석은 사전 설정 가능한 검색 기준들 또는 필터 기준들의 이용하에 본 발명에 따른 직접 메모리 액세스 제어 장치를 통해 수행될 수 있다. 여기서 기준들은 예컨대 이더넷 프로토콜들(예: "VLAN 태그"에 대해 0x8100)이거나, CAN-ID이거나, PDU들("Protocol Data Unit")이거나, "미니 슬롯 식별자들"이거나, "LIN 식별자들"이거나, 또는 기타 데이터 구조들을 위한 검색 기준들일 수 있다. 상기 검색 기준들에 대한 다양한 예시들은 앞에서 기재한 도표들에 제시되어 있다.
그러나 본 발명에 따른 원리 및 데이터의 분석은 이더넷 프로토콜 또는 도 2에서 인터리빙된 추가 프로토콜들(IPv6, TCP, ...)로 제한되는 것이 아니라, 일반적으로 각각 또 다른 (기존 및 향후 정의될) 프로토콜(예: CAN, LIN, 플렉스레이, ...)에도 적용될 수 있다. 이를 위해 필요한 유연성은 바람직하게는 제어 장치(42)(도 1)의 프로그래밍 가능성을 통해 제공된다.
통신 모듈(50)로부터 이 통신 모듈의 특정한 채널을 통해 수신되는 데이터는 각각의 실시형태에 상응하게 (도 1에서 화살표들을 통해 표시한 것처럼) 주기억 장치(30) 내에, 또는 국부적으로는 각각의 통신 모듈(50) 내에 저장될 수 있다. 도 2에서, 빗금 표시된 영역들(1, 2, 3, 4)은 각각 예시로서 각각 특정한 프로토콜 식별들 및/또는 데이터 길이들을 포함하여 직접 메모리 액세스 제어 장치(40)에 의해 분석될 영역들을 나타낸다. 제어 장치(42)의 임무는, 데이터 내에서 상기 영역들을 확인하여 각각의 데이터 길이를 결정하며, 그리고 자체적으로 각각의 프로토콜에 따라 결정될 수 있는 로딩 가능한 매개변수들에 따라서, 그리고/또는 제어 장치(42)를 통해 실행될 수 있는 프로그램 명령어들에 따라 버스 가입자(60)(도 1)의 타깃 기억 영역 내로 데이터들을 전송하는 점도 포함할 수 있다.
이 경우, 타깃 기억 영역은 예컨대 처리 유닛(20_1 내지 20_n)(또는 처리 코어)의 로컬 메모리(30_1 내지 30_n) 내에서의 타깃 주소를 통해 특성화되며, 선택적으로 보충하는 방식으로 엔트리 유형에 의해 특성화된다. 엔트리 유형에 의해서는, 예컨대 데이터가 마지막에 사전 설정 가능한 "전용의" 선형 기억 영역 또는 기억 블록 내로 전송될지, 아니면 순환 버퍼로서 구성된 기억 영역 내로 전송될지가 사전 설정될 수 있다.
도 3에는, 복수의 버스 가입자(60)를 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)의 연결을 위한 단자와, 직접 메모리 액세스 제어 장치(40)의 작동을 제어하기 위한 제어 장치(42)를 구비한 직접 메모리 액세스 제어 장치(40)를 작동하기 위한 방법에 대한 프로그램 흐름도가 도시되어 있다. 이 경우, 제어 장치(42)는 프로그래밍된다. 도 3에 보충하여, 여기서는 프로그램 시퀀스의 기재를 위해 도 2의 다이어그램이 이용되며, 특히 도 2에서 빗금 표시되고 숫자들 1 내지 4에 의해 표시된 필드들이 참조된다.
도 3에서 최상부의 블록(202)에서, 직접 메모리 액세스 제어 장치(40)는 제1 버스 가입자(60)로부터, 예컨대 통신 모듈들(50_1 내지 50_n) 중 하나의 통신 모듈로부터 트리거 신호를 수신한다. 이는 특히 전술한 버스 가입자(60) 내에, 직접 메모리 액세스에 의해 버스 시스템(12)을 통해 전송되어야 하는 신규 메시지가 입력될 때 수행된다. 트리거 신호의 결과로서는, 도 3을 통해 예시로서 특징 지워진 프로그램 시퀀스가 시작된다. 프로그램 시퀀스를 특성화하는 시작 주소는 제어 장치(42)에서 기지사항(known)이거나, 또는 사전 설정 가능한 조치들, 특히 판독 과정 및/또는 로딩 과정에 의해 결정될 수 있다.
도 3으로 도시된 예시에서, 제어 장치(42)[또는 프로그래밍 가능 처리 유닛(44)]는 하기 매개변수들 중 하나 이상의 매개변수를 포함하는 하나 이상의 매개변수 집합을 로딩하여 버스 시스템(12)의 버스 가입자(60)의 데이터의 분석 및/또는 전송을 위해 이용하도록 형성된다.
- 검색 특징, 특히 프로토콜 정보 및/또는 CAN-ID(Controller Area Network Identity);
- 검색 위치, 특히 오프셋 주소;
- 각각의 검색 특징의 길이;
- 반복 단계들 또는 검색 실행들의 사전 설정 가능한 횟수;
- 데이터의 하나 이상의 섹션의 전송을 위한 타깃 주소.
전술한 매개변수들의 로딩은 도 3에서 블록(204)을 통해 특성화된다. 후행하는 블록(206)에서는, 각각 로딩된 검색 위치에 대한 산술 및/또는 논리 연산에 의해 각각의 검색 특징에 대한 (신규) 주소가 결정된다. 예컨대 도 2에 표시된 필드(1)("제1 실행")를 위해 상기 비트 필드(TPID 125)의 길이는 로딩된 매개변수 집합을 통해 확인되며, 그로 인해 후행하는 블록(208)에서는 필드(1)를 통해 특징 지워지는 정보, 예컨대 값 "0x8100"이 판독될 수 있다.
후행하는 질의 블록(210)에서, 판독된 정보(0x8100)는 각각의 검색 특징과 비교된다. 필요한 경우, 이를 위해, 일치가 식별될 때까지 단계별로 수행되는 다수의 비교가 필요할 수 있다. 이는 도 3에서 예시로서 3개의 추가 질의 블록(212, 214 및 216)을 통해 도시되어 있다.
또한, 블록들(204, 206, 208, 210, 212, 214, 216, 218 및 220)(계속하여 하기 내용 참조)에 의해 방법도 기재되며, 제어 장치(42)의 프로그래밍에 따라 버스 시스템(12)의 버스 가입자(60)의 데이터가 분석되거나, 또는 제어 장치(42)의 프로그래밍에 따라 데이터는 하나 이상의 직접 메모리 액세스의 이용하에 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 전송된다.
상기 절차의 "깊이", 특히 질의 블록들(210, 212, 214 및 216)에 따라 단계별로 수행될 상기 비교들의 횟수는 예컨대 구성될 수 있는데, 그 이유는 예상 프로토콜들이 이미 공지되어 있기 때문이다. 그 대안으로, 깊이는 예컨대 그 후 획득되는, 데이터 분석의 중간 결과들, 및/또는 기타 인자들(factor)에 따라서도 결정될 수 있다. 일치성이 식별되지 않는 경우, 각각의 프로토콜은 "미지(unknown)"의 프로토콜로서 식별된다. 그로 인해서, 특정한 하기 반응들, 예컨대 처리 유닛들(20_1 내지 20_n) 중 하나의 처리 유닛 및/또는 직접 메모리 액세스 제어 장치(40) 또는 제어 장치(42) 또는 프로그래밍 가능 처리 유닛(44)으로 버스 가입자들(60) 중 하나의 버스 가입자에 대한 인터럽트 요청("에러 인터럽트")을 위한 에러 비트("에러 플래그")의 설정이 수행될 수 있다. 이는 도 3에서 블록(218)을 통해 도시되어 있다.
제1 검색 특징("검색 기준")이 결정된 후에, 후행하는 질의 블록(220)에서는, [예컨대 도 2의 이더넷 프레임(100)의] 데이터가 거의 당해 시점에 직접 메모리 액세스에 의해 버스 시스템(12)을 통해 제2 버스 가입자(60)의 타깃 주소로 전송되어야 하는지가 검사된다. 이런 검사는 예컨대 이미 수행된 반복 단계들 또는 검색 실행들의 횟수에 따라 수행될 수 있거나, 구성 정보, 또는 블록(204) 내에 로딩된 매개변수들에 따라 수행될 수 있다. 전술한 반복 단계들은 도 3에서 질의 블록(220)의 출력단과 블록(204)의 입력단 사이의 경로(222)에 상응하게 수행된다.
"최종적인" 검색 특징이 여전히 확인되지 않는 경우에는, 경로(222)의 통과 후에, 하나 이상의 추가 매개변수 집합 또는 매개변수의 로딩, 및 질의 블록(210) 및 경우에 따른 질의 블록들(212, 214 및 216)에 의한 추가 비교들의 수행이 실시된다. 이를 보충하여, 도 3에서 원기호 안에 표시된 숫자 "2" 및 "3"을 참조한다("추가 실행 2 및 3").
예컨대 검색된 프로토콜은 검색 특징 "0x86DD"를 갖는 이더넷 유형 IPv6에 상응할 수 있다.
경로(222)를 통한 (추가) 반복 단계들이 필요하지 않는다면, 프로그램 시퀀스는 질의 블록(220)에서 출발하여 후행하는 블록(224)으로 분기된다. 블록(224)에서는 직접 메모리 액세스 제어 장치(40)의 구성이 수행되며, 상기 구성은 하기 변수들을 포함한다.
- 특히 산술 및/또는 논리 연산의 이용하에, 기지의 시작 주소와 예컨대 앞서 구성된 오프셋 주소로부터 결정되는 소스 주소. 이 경우, 오프셋 주소는 예컨대 검색 특징에 따라 사전 설정되거나, 또는 검색 특징에 따라 결정된다. 이는, 바람직하게는 예컨대 고려된 데이터의 특정 부분만 전송될 수 있게 하고 관련이 없는 부분들(예: 헤더 등)은 배제될 수 있게 한다. 바람직하게 오프셋 주소는 블록(204) 내에 로딩된 매개변수에 의해 특성화된다.
- 검색 특징에 따라 사전 설정되거나 결정되는 타깃 주소. 바람직하게 타깃 주소는 블록(204) 내에 로딩된 매개변수를 통해 특성화된다.
- 데이터의 각각 전송할 바이트의 개수. 일 실시형태에서, 상기 개수는 직접적으로 도 2에서 숫자 "4"로 표시된 필드에 상응하면서 도 2에 도시된 페이로드 길이(146)에 상응한다. 일 추가 실시형태에서, 전술한 개수는 산술 및/또는 논리 연산의 이용하에 오프셋에 의해 결정된다. 예컨대 상기 오프셋은 블록(204) 내에 로딩된 매개변수를 통해 특성화된다.
직접 메모리 액세스 제어 장치(40)가 블록(224)에서 구성된 후에, 후행하는 블록(226)에서는, 하나 이상의 직접 메모리 액세스의 이용하에 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 제2 버스 가입자(60)로 데이터의 전송이 수행된다. 이 경우, 데이터는 마지막에 사전 설정 가능한 "전용" 기억 영역 내로, 또는 순환 버퍼로서 구성된 기억 영역 내로 전송될 수 있다. 여기서 상기 기억 영역은 각각 예컨대 주기억 장치(30)이거나, 로컬 메모리들(30_1 내지 30_n) 중 하나의 로컬 메모리일 수 있다(도 1 참조). 데이터의 전송이 각각 전용 기억 영역 내로 수행되는지, 또는 순환 버퍼 내로 수행되는지 그 여부의 선택("엔트리 유형")은 예컨대 블록(204) 내에 로딩된 매개변수에 의해 사전 설정될 수 있다.
일 실시형태에서, 제어 장치(42)는, 직접 메모리 액세스에 의해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 전송될 데이터가 단지 부분적으로만 전송되도록 프로그래밍된다. 특히 이는 제2 버스 가입자(60)("타깃 모듈") 내에서 요구되지 않는 정보들, 예컨대 요구되지 않는 헤더 정보들 및/또는 요구되지 않는 프로토콜들의 생략에 의해 수행된다.
데이터가 블록(226)에서 직접 메모리 액세스에 의해 전송된 후에, 선택에 따라 하기의 하나 또는 복수의 추가 조치가 수행될 수 있다.
- 각각의 처리 유닛(20_1 내지 20_n)으로 인터럽트 요청("interrupt")의 전송, 또는 데이터의 수행된 전송이 통지되어야 하는 기타 버스 가입자(60)에게 대응하는 신호의 전송;
- 트리거 정보들 및/또는 시그널링 비트들("flags")의 삭제;
- 데이터가 이더넷 프로토콜을 통해 특징 지워져 있다면, 이른바 "디스크립터(descriptor)"의 릴리스;
- 주기억 장치(30) 또는 로컬 메모리들(30_1 내지 30_n) 내의 기억 영역의 릴리스; 및/또는
- 데이터의 수행된 전송의 통지를 위한 시그널링 비트("new flag")의 설정.
일 실시형태에서, 직접 메모리 액세스 제어 장치(40)는, 버스 가입자(60)의 데이터에서 정보들을 결정하고 이 정보들에서 데이터의 각각 전송할 섹션의 길이를 결정하여 기준 값과 비교하도록 형성된다. 이를 통해 동시에 상응하는 방법 단계들도 특성화된다. 길이 정보 및 기준 값에 의해 에러들 및/또는 고의적인 조작이 방지될 수 있다.
버스 가입자(60)의 전술한 데이터는 전술한 정보들을 결정하기 위해 선택에 따라 일부만 또는 완전히 직접 메모리 액세스 제어 장치(40)에 의해 판독될 수 있거나, 직접 메모리 액세스 제어 장치(40) 및/또는 주기억 장치(30) 내에 일시적으로 저장될 수 있다. 일 실시형태에서, 정보들의 결정 및/또는 길이의 결정은 반복해서 수행된다.
일 실시형태에서, 직접 메모리 액세스 제어 장치(40)는, 하기 조치들 중에서 하나 이상의 조치를 수행하도록 형성된다.
- 제1 버스 가입자(60)로부터 트리거 신호의 수신;
- 트리거 신호에 따라 제1 버스 가입자(60)의 메모리 또는 주기억 장치(30)에서 직접 메모리 액세스에 의해 전송될 데이터의 수신 또는 판독;
- 데이터의 적어도 일부분의 분석;
- 제2 버스 가입자(60)의 타깃 메모리를 위한 메모리 조직을 특성화하는 엔트리 유형의 결정, 및 결정된 엔트리 유형에 따라 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 제2 버스 가입자(60)의 타깃 메모리 내로의 데이터의 전송.
선택에 따라서, 전송할 데이터("payload")가 복수의 데이터 세그먼트로 구성된다면, 제1 버스 가입자(60) 내에, 또는 주기억 장치(30) 내에 존재하는 데이터 블록[메시지, 프레임, 이더넷 프레임(100)]에서의 추가 전송들이 실행될 수 있다(계속해서 도 6 참조). 이는 도 3에 질의 블록(228)을 통해 특징 지워져 있다. 데이터 내에 복수의 데이터 세그먼트가 존재한다면, 또는 복수의 데이터 세그먼트가 서로 상이하게 처리되어야 한다면, 프로그램 시퀀스에서 경로(230) 및 경로(222)를 통해 다시 블록(204)의 시작 지점으로 분기가 수행된다. 그렇지 않은 경우, 경로(232)를 통해 블록(234)으로 분기되며(기호 "4"), 이 블록을 이용하여 사전 설정 가능한 조치들이 실행될 수 있다.
데이터 세그먼트들의 서로 상이한 처리는 예컨대 이른바 "SOME/IP 프로토콜"에서 가능하며, 예컨대 CAN 데이터(CAN: "컨트롤러 영역 네트워크") 또는 플렉스레이 데이터의 터널링(tunneling)이 수행될 수 있다. 이 경우, 상이한 데이터 세그먼트들은 상이한 타깃 주소들로 전송될 수 있으며, 예컨대 로컬 메모리들(30_1 내지 30_n)로 전송될 수 있다(도 1 참조). 이는, 타깃 주소가 각각의 검색 특징을 통해 특징 지워져 있기 때문에 가능하다. 이에 대해서는 도 3의 블록(204)에서 매개변수 집합들의 (재)로딩이 참조된다. 최종 전송의 종료 후에, 구성된 조치는 직접 메모리 액세스 제어 장치(40)를 통해 실행될 수 있다[예컨대 블록(234) 참조]. "플렉스레이"는 자동차에서 이용을 위한 직렬의 결정론적 무정지형 필드버스 시스템(serial, deterministic and fault-tolerant fieldbus system)에 대한 명칭이다.
직접 메모리 액세스 제어 장치(40)가 전송을 시작하기 전에, 또 다른 실시형태들에서는, 예컨대 이더넷 프레임에서 이른바 에러 플래그를 점검할 수 있다(이에 대해서는 도 4 참조). 도 4에 따라서, 질의 블록(402)은 도 3의 기호 "3"에 배치되며, 프로그램 시퀀스는 그 대안으로 도 3의 질의 블록(220)의 입력단으로, 또는 블록(234)의 입력단으로 분기될 수 있다.
전술한 에러 플래그가 에러를 시그널링한다면, 블록(234)(도 3)으로 분기되어 에러에 적합한 조치가 수행된다. 예컨대 블록(234)에서 이더넷 데이터의 전송 동안 에러가 있는 경우 추가 전송을 위한 디스크립터가 릴리스될 수 있고, 그런 다음 블록(202)의 시작 지점으로 다시 분기되어 그곳에서 후행하는 트리거 신호를 대기할 수 있다. 그렇지 않으면, 질의 블록(402)으로부터 질의 블록(220)의 입력단으로 분기되고 프로그램 시퀀스는 계속하여 앞에서 이미 기재한 것처럼 수행된다.
또한, 추가 조치들도 생각해볼 수 있다. 예컨대 또 다른 실시형태들의 경우 에러 플래그가 존재할 때 에러가 있는 데이터("프레임")는 그럼에도 분석을 위해 제2 버스 가입자(60)("타깃 주소")로, 그리고/또는 또 다른 타깃 주소로 전송될 수도 있다. 직접 메모리 액세스 제어 장치(40)는 임베딩된 프로토콜에서 전송할 바이트의 개수를 식별하기 때문에, 직접 메모리 액세스 제어 장치(40)는 디스크립터에 의해 통지된 바이트 개수의 타당성 검사를 수행할 수 있다. 이는 바람직하게는 예컨대 제어 장치(42)의 부분일 수 있는 하드웨어 회로를 이용하여 시작 주소 및 종료 주소를 모니터링하는 것을 통해 수행된다.
그 밖에도, 시작 주소의 타당성 검사가 수행될 수 있다. 이를 위해, 직접 메모리 액세스에 의한 전송을 위해 결정된 소스 주소는 데이터의 원래의 시작 주소와 비교된다. 이 경우, 예컨대 소스 주소는 시작 주소보다 작지 않아야 한다. 침해는 각각의 데이터에 대한 상태 레지스터 내 에러 플래그를 통해 시그널링될 수 있다. 상태 레지스터는 직접 메모리 액세스 제어 장치(40) 내에, 그리고/또는 기타 버스 가입자(60) 내에 위치할 수 있다.
도 5에는, 제1 버스 가입자로부터 제2 버스 가입자(60)로 데이터의 전송을 위한 종료 주소의 선택에 따른 모니터링 또는 타당성 검사가 도시되어 있다.
도 5에 따라서, 질의 블록(502)은 도 3의 기호 "2"에 배치되며, 프로그램 시퀀스는 예컨대 그 대안으로 도 3의 질의 블록(210)의 입력단으로, 또는 도 5에 도시된 블록(504)의 입력단으로 분기될 수 있다. 종료 주소가 결정되어야 하는 경우에는, 블록(504)으로 분기되고 그런 후에 블록(504)으로부터 다시 도 3의 블록(204)의 시작 지점으로 분기되며(기호 "1"), 블록(204)에는 종료 주소의 모니터링을 위한 상응하는 매개변수들이 로딩된다. 그렇지 않으면, 질의 블록(502)으로부터 질의 블록(210)의 시작 지점으로 분기되며 프로그램 시퀀스는 계속해서 전술한 것처럼 진행된다.
예컨대 이더넷 메시지가 디스크립터를 이용하여, 예컨대 주기억 장치(30)("외부 RAM") 내로 전송된 후, 수신된 바이트의 각각의 개수가 이를 위해 제공된 상태 레지스터("상태 정보") 내에 기록된다. 직접 메모리 액세스 제어 장치(40)는 상기 상태 정보들을 판독하여 이 상태 정보들에서 각각의 데이터("메시지")의 종료 주소를 결정할 수 있다.
종료 주소의 모니터링은 예컨대 하기와 같이 수행될 수 있다. 맨 먼저, 계속하여 앞에서 이미 기재한 것처럼 기호 "1"에서 출발하여 블록들(204, 206 및 208)을 경유하여 도 3의 기호 "2"까지 프로그램 시퀀스가 제공된다. 그런 후에, 도 5의 질의 블록(502)에서, 종료 주소가 결정되어야 하는지 그 여부에 대해 선택에 따른 질의가 수행된다. 이런 방식으로 전송할 데이터에 대한 종료 주소가 결정될 수 있다. 마지막에 실행된 전송에 대한 각각의 주소는 직접 메모리 액세스 제어 장치(40) 내에서 기지사항이기 때문에, 직접 메모리 액세스 제어 장치(40)의 하드웨어 회로는 상기 주소를 종료 주소와 비교할 수 있다. 현재 주소가 종료 주소를 넘어설 경우에는, 에러 메시지가 발생할 수 있다.
도 6에는, 버스 시스템(12)과 연결된 처리 유닛들(20_1 내지 20_n)의 각각의 로컬 메모리들(30_1 내지 30_n)에 대한 이더넷 프레임(100')의 데이터 섹션들의 예시의 할당이 도시되어 있다.
이더넷 프레임(100')의 도시된 요소들은 하기에 자신들의 도면부호와 함께 열거된다.
- 이더넷 헤더 132';
- IP 헤더 153';
- UDP 헤더 602; (UDP: "User Datagram Protocol")
- SOME/IP 패킷 1 604;
- SOME/IP 패킷 2 606;
- SOME/IP 패킷 N 608
화살표들(610)은 버스 시스템(12)을 통해 로컬 메모리들(30_1, 30_2 및 30_n)로 직접 메모리 액세스에 의해 수행되는 SOME/IP 패킷들(604, 606 및 608)의 전송에 대한 예시의 할당을 지시하고 있다. 이 경우, 도 3의 흐름도에 대응하는 방법이 이용된다.
도 7에는, 통신 모듈(50')에 대한 제1 추가 실시형태가 도시되어 있다. 여기서 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는 통신 모듈(50') 내에 통합되어 배치된다. 도 7에서 통신 모듈(50')의 내부에 도시된 요소(50_x)는 도 1의 통신 모듈들(50_1 내지 50_n) 중 하나의 통신 모듈에 상응한다. 버스 시스템(12)은 통신 모듈(50')의 내부에서 내부 버스(12')로서 작동되며, 그럼으로써 통신 모듈(50_x) 및 직접 메모리 액세스 제어 장치(40)는 버스 시스템(12)에 병렬 연결된다. 이런 구성의 경우에서도, 프로그래밍 가능 제어 장치를 포함한 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는, 바람직하게는, 앞에서 도 1 내지 도 6을 참조하여 기재한 것처럼, 예컨대 데이터[모듈(50')의 로컬 데이터 및/또는 또 다른 버스 가입자들(60)의 데이터] 및/또는 DMA 전송(들)의 분석을 실행할 수 있다.
도 8에는, 통신 모듈(50")에 대한 제2 추가 실시형태가 도시되어 있다. 여기서 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는 통신 모듈(50") 내에 통합 배치된다. 도 7과 달리, 이는, 버스 시스템(12)이 오직 직접 메모리 액세스 제어 장치(40)를 통해서만 통신 모듈(50_x)과 연결되는 방식으로 수행된다. 내부 버스(12")는 도 7에서처럼 도 1의 통신 모듈들(50_1 내지 50_n) 중 하나의 통신 모듈에 상응하는 통신 모듈(50_x)과 직접 메모리 액세스 제어 장치(40)를 연결한다. 이런 구성에서도, 프로그래밍 가능 제어 장치를 포함한 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는, 바람직하게는, 앞에서 도 1 내지 도 7을 참조하여 기술한 것처럼, 예컨대 데이터[모듈(50")의 로컬 데이터 및/또는 또 다른 버스 가입자들(60)의 데이터] 및/또는 DMA 전송(들)의 분석을 실행할 수 있다.
한 바람직한 실시형태에서, 도 7 및 도 8의 통신 모듈들(50' 또는 50" 또는 50_x)은 이더넷 통신 모듈에 상응한다. 또 다른 바람직한 실시형태들의 경우, 이더넷 유형의 전술한 모듈들과는 다른 통신 모듈들도 생각해볼 수 있다.
프로그래밍 가능 제어 장치(42)를 포함한 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는 바람직하게는 버스 가입자들(60) 간의 유연한 데이터 분석들 및/또는 DMA 전송들을 가능하게 하며, 상응하는 프로그래밍을 통해서는 분석 또는 DMA 전송의 특정 시퀀스가 수정될 수 있다. 또한, 예컨대, 상기 방식으로, 직접 메모리 액세스 제어 장치(40)에 의해 실행될 데이터 분석 또는 데이터 전송은 향후에 비로소 정의될 통신 프로토콜들에도 매칭될 수 있다. 또한, 특히 바람직하게 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는 복수의 프로토콜 계층을 넘어서 (인터리빙) 데이터 패킷들의 유연한 심층 분석(deep packet inspection)도 가능하게 하며, 예컨대 관계없는 헤더 데이터도 사전 설정 가능한 프로토콜 계층들에서 배제될 수 있고, 그에 따라 예컨대 하나 또는 복수의 수신 측 버스 가입자(60)로의 DMA 전송의 범주에서 고려되지 않아도 된다.
Claims (13)
- 복수의 버스 가입자(60)를 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)를 연결하기 위한 단자(41)와, 직접 메모리 액세스 제어 장치(40)의 작동을 제어하기 위한 제어 장치(42)를 구비한 직접 메모리 액세스 제어 장치(40)에 있어서,
상기 제어 장치(42)는 프로그래밍될 수 있는 것을 특징으로 하고, 직접 메모리 액세스 제어 장치(40)는, 제어 장치(42)의 프로그래밍에 따라 버스 시스템(12)의 버스 가입자(60)의 데이터(100; 100')를 분석하도록 형성되는, 직접 메모리 액세스 제어 장치(40). - 삭제
- 제1항에 있어서, 직접 메모리 액세스 제어 장치(40)는, 제어 장치(42)의 프로그래밍에 따라 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 데이터(100; 100')를 전송하도록 형성되는, 직접 메모리 액세스 제어 장치(40).
- 제1항에 있어서, 프로그래밍 가능 제어 장치(42)는 프로그래밍 가능 처리 유닛(44)을 포함하는, 직접 메모리 액세스 제어 장치(40).
- 제1항에 있어서, 제어 장치(42)는,
- 검색 특징;
- 검색 위치;
- 각각의 검색 특징의 길이;
- 반복 단계들 또는 검색 실행들의 사전 설정 가능한 횟수; 및
- 데이터(100; 100')의 하나 이상의 섹션을 전송하기 위한 타깃 주소;
와 같은 매개변수들 중 적어도 하나를 포함하는 하나 이상의 매개변수 집합을 로딩하여, 버스 시스템(12)의 버스 가입자(60)의 데이터(100; 100')의 분석 및/또는 전송을 위해 이용하도록 형성되는, 직접 메모리 액세스 제어 장치(40). - 제1항에 있어서, 직접 메모리 액세스 제어 장치(40)는, 버스 가입자(60)의 데이터(100; 100')에서 정보들을 결정하고, 이 정보들에서 상기 데이터(100; 100')의 각각 전송할 섹션의 길이를 결정하여 기준 값과 비교하도록 형성되는, 직접 메모리 액세스 제어 장치(40).
- 제1항에 있어서, 직접 메모리 액세스 제어 장치(40)는,
- 제1 버스 가입자(60)로부터 트리거 신호를 수신하고(202);
- 하나의 트리거 신호 또는 상기 트리거 신호에 따라, 주기억 장치(30) 또는 제1 버스 가입자(60)의 메모리(30_1, 30_2, 30_n)에서 직접 메모리 액세스에 의해 전송될 데이터(100; 100')를 수신하거나 판독하고(208);
- 제2 버스 가입자(60)의 타깃 메모리(30; 30_1, 30_2, 30_n)를 위한 메모리 조직을 특성화하는 엔트리 유형을 결정하고, 상기 결정된 엔트리 유형에 따라 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 제2 버스 가입자(60)의 타깃 메모리(30; 30_1, 30_2, 30_n) 내로 데이터(100; 100')를 전송하는;
조치들 중 하나 이상의 조치를 수행하도록 형성되는, 직접 메모리 액세스 제어 장치(40). - 제1항에 있어서, 제어 장치(42)는 직접 메모리 액세스 제어 장치(40)의 집적 반도체 회로 내에 통합 배치되는, 직접 메모리 액세스 제어 장치(40).
- 제1항에 있어서, 직접 메모리 액세스 제어 장치(40)는 하드웨어 회로로서 형성되는, 직접 메모리 액세스 제어 장치(40).
- 복수의 버스 가입자(60)를 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)를 연결하기 위한 단자(41)와, 직접 메모리 액세스 제어 장치(40)의 작동을 제어하기 위한 제어 장치(42)를 구비한 직접 메모리 액세스 제어 장치(40)를 작동하기 위한 방법에 있어서,
상기 제어 장치(42)는 프로그래밍되는 것을 특징으로 하고, 제어 장치(42)의 프로그래밍에 따라 버스 시스템(12)의 버스 가입자(60)의 데이터(100; 100')가 분석되는, 직접 메모리 액세스 제어 장치의 작동 방법. - 제10항에 있어서, 제어 장치(42)의 프로그래밍에 따라 데이터(100; 100')가 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 전송되는, 직접 메모리 액세스 제어 장치의 작동 방법.
- 제10항 또는 제11항에 있어서, 버스 가입자(60)의 데이터(100; 100')로부터 정보들이 결정되고, 상기 정보들에서 데이터(100; 100')의 각각 전송할 섹션의 길이가 결정되어 기준 값과 비교되는, 직접 메모리 액세스 제어 장치의 작동 방법.
- 제5항에 있어서, 검색 특징은 프로토콜 정보 및/또는 CAN-ID(Controller Area Network Identity)이고; 검색 위치는 오프셋 주소인, 직접 메모리 액세스 제어 장치(40).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016211768.8 | 2016-06-29 | ||
DE102016211768.8A DE102016211768A1 (de) | 2016-06-29 | 2016-06-29 | Speicherdirektzugriffssteuereinrichtung und Betriebsverfahren hierfür |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180002535A KR20180002535A (ko) | 2018-01-08 |
KR102354062B1 true KR102354062B1 (ko) | 2022-01-24 |
Family
ID=60662535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170081920A KR102354062B1 (ko) | 2016-06-29 | 2017-06-28 | 직접 메모리 액세스 제어 장치 및 그 작동 방법 |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR102354062B1 (ko) |
CN (1) | CN107544928B (ko) |
DE (1) | DE102016211768A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102020203663A1 (de) | 2020-03-20 | 2021-09-23 | Robert Bosch Gesellschaft mit beschränkter Haftung | Integrierter Schaltkreis, eingebettetes System und Kraftfahrzeug |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5862407A (en) * | 1996-03-15 | 1999-01-19 | Rendition, Inc. | System for performing DMA byte swapping within each data element in accordance to swapping indication bits within a DMA command |
US6874039B2 (en) * | 2000-09-08 | 2005-03-29 | Intel Corporation | Method and apparatus for distributed direct memory access for systems on chip |
US7120708B2 (en) * | 2003-06-30 | 2006-10-10 | Intel Corporation | Readdressable virtual DMA control and status registers |
US7533195B2 (en) * | 2004-02-25 | 2009-05-12 | Analog Devices, Inc. | DMA controller for digital signal processors |
US7484016B2 (en) * | 2004-06-30 | 2009-01-27 | Intel Corporation | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine |
CN100361107C (zh) * | 2005-03-02 | 2008-01-09 | 华为技术有限公司 | 一种直接存储器访问控制器及传输数据的方法 |
KR20070082835A (ko) * | 2006-02-17 | 2007-08-22 | 삼성전자주식회사 | 직접 메모리 액세스 제어장치 및 방법 |
US9141572B2 (en) * | 2006-12-15 | 2015-09-22 | Microchip Technology Incorporated | Direct memory access controller |
JP4974078B2 (ja) * | 2007-07-26 | 2012-07-11 | Necアクセステクニカ株式会社 | データ処理装置 |
US7912997B1 (en) * | 2008-03-27 | 2011-03-22 | Xilinx, Inc. | Direct memory access engine |
CN101504633B (zh) * | 2009-03-27 | 2012-09-05 | 无锡中星微电子有限公司 | 一种多通道dma控制器 |
CN102541780B (zh) * | 2011-12-15 | 2014-10-22 | 苏州国芯科技有限公司 | 一种多数据流通道dma系统 |
DE102012010558A1 (de) * | 2012-05-29 | 2013-12-05 | Robert Bosch Gmbh | Hardwarevorrichtung für ein system,system und speicherzugriffsverfahren |
-
2016
- 2016-06-29 DE DE102016211768.8A patent/DE102016211768A1/de active Pending
-
2017
- 2017-06-28 CN CN201710507218.XA patent/CN107544928B/zh active Active
- 2017-06-28 KR KR1020170081920A patent/KR102354062B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20180002535A (ko) | 2018-01-08 |
CN107544928B (zh) | 2024-03-29 |
DE102016211768A1 (de) | 2018-01-04 |
CN107544928A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11599349B2 (en) | Gateway device, in-vehicle network system, and firmware update method | |
US11368338B2 (en) | Multi-protocol vehicle relay communication method, gateway device, vehicle network system, transfer method, and non-transitory computer-readable recording medium storing program | |
CN108370336B (zh) | 电子控制单元、帧生成方法和记录介质 | |
US11842185B2 (en) | Gateway device, in-vehicle network system, and firmware update method | |
US9864606B2 (en) | Methods for configurable hardware logic device reloading and devices thereof | |
JP5199399B2 (ja) | 通信ネットワークの直列データバスを介して当該ネットワークの加入者に到着したメッセージについての情報を格納するための方法及びフィルタ構成 | |
CN110061896B (zh) | 一种modbus-rtu总线地址冲突检测方法 | |
CN113395197B (zh) | 网关装置、车载网络系统、转送方法和计算机可读记录介质 | |
US20150334018A1 (en) | Techniques for a Switch to Receive Network Controller Sideband Interface Control Packets | |
WO2020087400A1 (zh) | 一种报头解析装置及方法 | |
US9565251B2 (en) | Method and apparatus to reduce FLASH memory device programming time over a C.A.N. bus | |
CN113179216B (zh) | 一种寄存器的远程配置方法、计算机设备及存储介质 | |
KR102354062B1 (ko) | 직접 메모리 액세스 제어 장치 및 그 작동 방법 | |
KR20170117326A (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
CN102063083B (zh) | 一种多ecu分时下载方法 | |
CN115604183B (zh) | 一种报文处理方法、装置、网络设备及存储介质 | |
CN113037880B (zh) | 网关ip地址的配置方法、装置、网关及可读存储介质 | |
CN113347100B (zh) | 数据流传输方法、装置、计算机设备及存储介质 | |
CN116016687A (zh) | 一种基于dpdk的报文分流方法及系统 | |
CN113553285A (zh) | 电子控制单元、帧生成方法和记录介质 | |
US10754661B1 (en) | Network packet filtering in network layer of firmware network stack | |
Luo et al. | Implementation of bootloader based on DoIP | |
US7613133B2 (en) | Method, system and computer program product for processing packets at forwarder interfaces | |
CN115529236B (zh) | 无损网络配置方法、装置及计算机设备 | |
US20240275741A1 (en) | Execution of multiple distinct pipelines in a single network device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |