[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20180002535A - Direct memory access control device and operating method for the same - Google Patents

Direct memory access control device and operating method for the same Download PDF

Info

Publication number
KR20180002535A
KR20180002535A KR1020170081920A KR20170081920A KR20180002535A KR 20180002535 A KR20180002535 A KR 20180002535A KR 1020170081920 A KR1020170081920 A KR 1020170081920A KR 20170081920 A KR20170081920 A KR 20170081920A KR 20180002535 A KR20180002535 A KR 20180002535A
Authority
KR
South Korea
Prior art keywords
memory access
direct memory
access control
data
control device
Prior art date
Application number
KR1020170081920A
Other languages
Korean (ko)
Other versions
KR102354062B1 (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 KR20180002535A publication Critical patent/KR20180002535A/en
Application granted granted Critical
Publication of KR102354062B1 publication Critical patent/KR102354062B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • 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

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)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은, 복수의 버스 가입자(60)를 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)를 연결하기 위한 단자와, 직접 메모리 액세스 제어 장치(40)의 작동을 제어하기 위한 제어 장치(42)를 구비한 직접 메모리 액세스 제어 장치(40)에 관한 것이다. 이 경우, 제어 장치(42)는 프로그래밍될 수 있다.The present invention is characterized in that it comprises a terminal for connecting the bus system 12 connecting the plurality of bus subscribers 60 with the direct memory access control device 40 and a control for controlling the operation of the direct memory access control device 40 And a direct memory access control device (40) having an apparatus (42). In this case, the control device 42 can be programmed.

Figure P1020170081920
Figure P1020170081920

Description

직접 메모리 액세스 제어 장치 및 그 작동 방법{DIRECT MEMORY ACCESS CONTROL DEVICE AND OPERATING METHOD FOR THE SAME}[0001] DIRECT MEMORY ACCESS CONTROL DEVICE AND OPERATING METHOD FOR THE SAME [0002]

본 발명은 청구항 제1항의 전제부에 따른 직접 메모리 액세스 제어 장치 및 대등의 독립항에 따른 방법에 관한 것이다.The present invention relates to a direct memory access control device according to the preamble of claim 1 and a method according to the equivalent independent claim.

시중에, 하나 또는 복수의 프로세서 코어를 가지며, 필요한 경우 주기억 장치에 액세스할 수 있는 처리 유닛들, 예컨대 프로세서들이 공지되어 있다. 그 밖에도, 상기 처리 유닛을 하나 또는 복수 개 포함하는 컴퓨터 시스템들은 통상 처리 유닛과 상호작용하는 복수의 추가 유닛, 예컨대 입/출력 모듈("IO") 등을 포함한다. 컴퓨터 시스템의 상기 요소들 중 적어도 일부는 하나의 공통 버스, 바람직하게는 병렬 버스를 통해 데이터, 예컨대 이더넷 구조를 갖는 데이터를 서로 교환할 수 있다. 그 밖에도, 이른바 직접 메모리 액세스(DMA, direct memory access)를 위한 방법도 공지되어 있으며, 그럼으로써 공통 버스를 통한 데이터 교환이 개선될 수 있다.There are commercially available processing units, e.g., processors, that have one or more processor cores and are capable of accessing main memory as needed. In addition, computer systems including one or more of such processing units typically include a plurality of additional units, such as input / output modules ("IO"), etc., that interact with the processing unit. At least some of the elements of the computer system may exchange data, e.g., data having an Ethernet structure, over one common bus, preferably a parallel bus. In addition, methods for so-called direct memory access (DMA) are also known, so that data exchange over a common bus can be improved.

직접 메모리 액세스의 제어를 위한 공지된 장치들은 여러 용도로 사용하기에는 유연성이 불충분하다.Known devices for controlling direct memory access are insufficiently flexible for use in many applications.

본 발명의 기초가 되는 과제는 청구항 제1항에 따른 직접 메모리 액세스 제어 장치를 통해, 그리고 대등의 청구항에 따른 방법을 통해 해결된다. 바람직한 개선예들은 종속 청구항들에 명시되어 있다. 또한, 본 발명을 위해 중요한 특징들은 하기 명세서 및 도면들에서 확인되며, 이 특징들은, 이에 대해 재차 명시되지 않더라도, 독자적으로뿐만 아니라 여러 조합으로도 본 발명을 위해 중요할 수 있다.The underlying problem of the present invention is solved by means of a direct memory access control device according to claim 1 and by means of a method according to the equivalents claim. Preferred improvements are set forth in the dependent claims. Also, features important for the present invention are identified in the following specification and drawings, which, although not explicitly recited herein, may be important for the present invention as well as in various combinations.

본 발명은, 복수의 버스 가입자를 연결하는 버스 시스템과 직접 메모리 액세스 제어 장치를 연결하기 위한 단자와, 직접 메모리 액세스 제어 장치의 작동을 제어하기 위한 제어 장치를 구비한 직접 메모리 액세스 제어 장치에 관한 것이다. 이 경우, 제어 장치는 프로그래밍될 수 있으며, 그럼으로써 공지된 시스템들에 비해 유연성이 증가할 수 있다.The present invention relates to a direct memory access control device having a terminal for connecting a direct memory access control device with a bus system connecting a plurality of bus subscribers and a control device for controlling the operation of the direct memory access control device . In this case, the control device can be programmed, thereby increasing the flexibility compared to known systems.

일 구현예에서, 버스 시스템에는 주기억 장치, 특히 처리 유닛의 중앙 주기억 장치가 연결되지 않는다. 그에 상응하게, 버스 시스템에 연결된, 예컨대 통신 모듈들일 수 있는 요소들은 필요한 경우 로컬 메모리, 예컨대 RAM 메모리("Random Access Memory")를 가지며, 이 메모리는 직접 메모리 액세스 데이터 전송("DMA 전송")을 위한 소스 및/또는 타깃으로서 이용될 수 있다.In one implementation, the bus system is not connected to main memory, especially to the central unit of the processing unit. Correspondingly, elements that may be connected to the bus system, such as communication modules, for example, may have local memory, such as RAM memory ("Random Access Memory"), Gt; and / or < / RTI >

일 구현예에서, 본 발명에 따른 직접 메모리 액세스 제어 장치, 버스 시스템, 그리고 버스 가입자들 중 적어도 하나의 버스 가입자는 마이크로 컨트롤러의 요소이다. 예컨대 상기 마이크로 컨트롤러는 단일의 집적 반도체 회로("칩") 상에 배치된다. 또 다른 실시형태의 경우, 본 발명에 따른 직접 메모리 액세스 제어 장치는 예컨대 통신 모듈 내에도 통합될 수 있다.In one embodiment, the direct memory access controller, bus system, and bus subscriber of at least one of the bus subscribers in accordance with the present invention are elements of a microcontroller. For example, the microcontroller is disposed on a single integrated semiconductor circuit ("chip"). In yet another embodiment, the direct memory access control apparatus according to the present invention may be integrated into, for example, a communication module.

본원에서 "프로그래밍될 수 있는"이란 특성은, 제어 장치 또는 직접 메모리 액세스 제어 장치를 통해 실행될 수 있는 방법 단계들이 버스 시스템 및 이 버스 시스템에 연결된 요소들을 포함하는 시스템의 작동 중에 예컨대 상응하는 (프로그램) 명령어들의 사전 설정을 통해 자유롭게 프로그래밍될 수 있다는 점을 의미한다.As used herein, the term " programmable "means that method steps that can be executed via a control device or a direct memory access control device are performed, for example, in a corresponding (program) manner during operation of a system including elements connected to the bus system, Which means that it can be freely programmed through the presetting of commands.

특히, 그 밖에도, 의사코드 명령 이름들인 "if", "then", "else" 등으로도 공지되어 있는 이른바 "비교 분기들(comparison branch)"을 거의 임의의 구조로 사전 설정하여 실행할 수도 있다.In particular, it is also possible to execute so-called " comparison branches "which are also known as pseudo code command names" if "," then "," else "

이는, 바람직한 실시형태들에 따라서, 처리 유닛[예컨대 CPU, MCS(Multi Channel Sequencer) 또는 또 다른 형태 역시]을 통해 재현될 수도 있다. 상기 처리 유닛은, 예컨대 "고유의" 명령어 집합이 존재하고, 그에 따라 처리 유닛은 상기 명령어 집합의 이용하에 프로그래밍될 수 있는 점을 특징으로 한다. 따라서 예컨대 DMA 모드는 각각의 용례에서 자유롭게 프로그래밍될 수 있다. MCS의 장점은 다른 프로세스들을 통해 중단될 수 없는 순차 프로그램 실행의 구성 가능한 모드이다.This may be reproduced via a processing unit (e.g., a CPU, a Multi Channel Sequencer (MCS), or another form also), according to preferred embodiments. The processing unit is characterized, for example, by the presence of a "native" instruction set, whereby the processing unit can be programmed with the use of the instruction set. Thus, for example, the DMA mode can be freely programmed for each application. The advantage of MCS is the configurable mode of sequential program execution that can not be interrupted by other processes.

실행 가능한 연산 단계들(예: 산술/논리 연산, 예: "if", "else" 등)의 집합을 포함하며, 상기 연산 단계들의 조합을 통해 함께 프로그램 시퀀스를 형성하는 프로그래밍 가능 제어 장치도 생각해볼 수 있다.Consider a programmable controller that includes a set of executable computational steps (e.g., arithmetic / logical operations, e.g., "if", "else", etc.) and forms a program sequence together through a combination of the computational steps .

본원의 직접 메모리 액세스 제어 장치는 예컨대 상이한 버스 가입자들 간의 DMA 전송을 위해 이용될 수 있고 이를 위해 버스 가입자들과 협력할 수 있다. 예컨대 상기 버스 가입자들은 통신 모듈들 또는 상기 통신 모듈들에 할당된 기억 영역들일 수 있다. 예컨대 통신 모듈들은 이더넷 모듈들로서, 또는 이른바 "MCAN 모듈들"로서 구현될 수 있다. "CAN은 영어로 "Controller Area Network"를 의미하며, 알파벳 "M"은 생산자별 명칭 이니셜을 특성화한다. 또한, 본원의 직접 메모리 액세스 제어 장치는, 복수의 처리 유닛 또는 복수의 처리 코어를 이용한 작동을 위해 구현되지 않은 버스 가입자들 또는 통신 모듈들과도 협력할 수 있다.The direct memory access control apparatus of the present disclosure can be used, for example, for DMA transfer between different bus subscribers and can cooperate with bus subscribers for this purpose. For example, the bus subscribers may be communication modules or storage areas assigned to the communication modules. For example, communication modules may be implemented as Ethernet modules, or as so-called "MCAN modules ". The CAN designates the "Controller Area Network" in English, and the alphabet "M" characterizes the manufacturer's initials. The direct memory access control device of the present application also includes a plurality of processing units or operations using a plurality of processing cores May also cooperate with bus subscribers or communication modules that are not implemented for.

본 발명은, 프로그래밍 가능 제어 장치에 의해 비교적 복잡한 구조, 특히 인터리빙 구조를 갖는 데이터도 특히 "지능형" 방식으로 분석되고, 그리고/또는, 계속 하기에서 훨씬 더 상세하게 설명되는 것처럼, 직접 메모리 액세스에 의해 처리될 수 있다는 장점이 있다. 예컨대 이른바 "이더넷 프레임들", 다시 말해 이더넷 프로토콜에 따른 데이터 프레임들은 ISO/OSI 계층 모델의 계층들 전반에 걸친 추가 프로토콜들 및/또는 이른바 "페이로드 데이터"의 인터리빙 구조를 가질 수 있다. 상대적으로 더 상위의 프로토콜 계층들(ISO/OSI 계층 3 및 그 이상, 예컨대 계층 4 또는 5)의 데이터의 분석 및 필터링도 본 발명에 따라 가능해진다.The present invention is based on the fact that a relatively complex structure, in particular data having an interleaving structure, by a programmable controller is also analyzed in a particularly "intelligent" manner and / Can be processed. For example, so-called "Ethernet frames ", i.e. data frames according to the Ethernet protocol, may have additional protocols and / or so called" payload data "interleaving structures throughout the layers of the ISO / OSI layer model. Analysis and filtering of data in relatively higher protocol layers (ISO / OSI layer 3 and above, e.g. layer 4 or layer 5) is also possible according to the invention.

일 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제어 장치의 프로그래밍에 따라 버스 시스템의 버스 가입자의 데이터를 분석하도록 형성된다. 제어 장치의 프로그래밍을 통해, 데이터는 매우 바람직하고 유연하게 분석될 수 있다. 따라서 특히 전술한 분석을 단계별로 수행할 수 있으며, 일 구현예에서 예컨대 각각 후행하는 분석 단계들은 각각 선행하는 분석 단계들에 기초하여 수행된다. 동일한 방식으로, 추가 실시형태들의 경우, 향후에 정의할 데이터 형식들 또는 프로토콜들을 그에 상응하게 분석(예: 필터링)할 수 있도록 하기 위해, 예컨대 상기 데이터 형식들 또는 프로토콜들에 프로그래밍의 변경을 통해 분석을 조정하는 점도 생각해볼 수 있다.In one implementation, the direct memory access control apparatus of the present disclosure is configured to analyze data of a bus subscriber of a bus system in accordance with the programming of the controller. Through the programming of the control device, the data can be analyzed very favorably and flexibly. Thus, in particular, the above-described analysis can be performed step by step, and in one embodiment, for example, each subsequent analysis step is performed based on each of the preceding analysis steps. In the same way, in the case of additional embodiments, it may be possible to analyze (e.g., filter) the data types or protocols to be defined in the future, And the like.

일 구현예에서, 상기 분석을 이용하여 하나 이상의 전송할 데이터의 길이 및 하나 이상의 제2 버스 가입자로의 전송을 위한 하나 이상의 타깃 주소가 결정된다. 데이터가 각각 분리되어 전송되어야 하는 복수의 섹션을 포함할 경우, 그에 상응하게 복수의 길이 및 복수의 타깃 주소가 결정될 수 있다.In one implementation, the analysis is used to determine the length of one or more data to be transmitted and one or more target addresses for transmission to one or more second bus subscribers. If the data includes a plurality of sections to be transmitted separately, a plurality of lengths and a plurality of target addresses may be determined correspondingly.

일 구현예에서, 제어 장치는 선택적으로 각각의 분석 단계들 사이에서 프로그래밍될 수 있다. 예컨대 이는 마찬가지로 각각 선행하는 분석 단계들 또는 이 분석 단계들에서 획득된 결과들에 따라 수행된다. 특히 본원의 직접 메모리 액세스 제어 장치에 대해, 예컨대 별도의 처리 유닛에 의해 사전 정의된 구성 및/또는 수정 불가능한 컴퓨터 프로그램의 이용하에 수행되는 데이터의 외부 분석은 감소할 수 있거나, 심지어 불필요할 수 있다. 그에 따라, 프로그래밍 가능 제어 장치에 의해, 필요한 계산 실행 시간은 이미 분석 시 바람직하게 감소할 수 있다.In one embodiment, the control device may be optionally programmed between each analysis step. E. G., It is likewise carried out according to the respective preceding analysis steps or the results obtained in these analysis steps. Particularly for the direct memory access control apparatus of the present application, the external analysis of the data carried out using the predefined configuration and / or the non-modifiable computer program, e.g. by separate processing units, may be reduced or even unnecessary. Hence, by the programmable controller, the required calculation execution time can be reduced preferably already in the analysis.

그 밖에도, 요구되지 않는 데이터의 DMA 전송들이 방지될 수 있는데, 그 이유는 본 발명에 따른 원리에 따라 버스 가입자의 데이터의 분석이 실행될 수 있고 이런 분석에 의해서는 관계있는 전송할 데이터 또는 이 데이터의 길이가 결정되기 때문이다. 이런 방식으로, 예컨대 타깃 모듈에서 DMA 전송을 위해 전혀 요구되지 않는 또 다른 프로토콜 계층들의 관계없는 프로토콜/헤더 데이터를 DMA 전송으로 전송하는 점이 방지될 수 있다. 그 대신, 목표한 바대로, 예컨대 단지 관계있는 데이터 패킷 또는 데이터 프레임의 페이로드(또는 이 페이로드의 부분들)만이 DMA에 의해 전송될 수 있다.In addition, DMA transfers of undesired data can be prevented because the analysis of the data of the bus subscriber can be carried out according to the principles of the present invention and by this analysis the data to be transmitted or the length of this data Is determined. In this way, it is possible to prevent the transfer of irrelevant protocol / header data of another protocol layer, which is not required at all in the target module for DMA transfer, to the DMA transfer, for example. Instead, only a target data packet or a payload of the data frame (or portions of this payload), for example, may be transmitted by the DMA as desired.

일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제어 장치의 프로그래밍에 따라 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템을 통해 제1 버스 가입자로부터 하나 이상의 제2 버스 가입자로 데이터를 전송하도록 형성된다. 프로그래밍에 의해, 데이터는 매우 바람직하게 전송될 수 있다. 전송할 데이터는 앞에서 이미 언급한 것처럼 분석 시 조사된 모든 데이터 또는 그 중 일부분만을 포함할 수 있다.In one further implementation, the direct memory access control apparatus of the present disclosure is configured to transfer data from a first bus subscriber to one or more second bus subscribers via a bus system using one or more direct memory accesses in accordance with the programming of the controller do. By programming, the data can be transmitted in a highly desirable manner. The data to be transmitted may include all of the data examined in the analysis as described above or only some of them.

특히 본원의 직접 메모리 액세스 제어 장치는, 예컨대 통신 모듈이거나 이 통신 모듈에 할당된 기억 영역이고 버스 시스템과 연결된 제1 버스 가입자의 데이터(또는 그 중 일부)의 전송을 가능하게 한다. 예컨대 상기 데이터는 버스 시스템과 연결된 처리 유닛 또는 처리 코어의 로컬 메모리 내로 전송될 수 있으며, 전송(및 직접 메모리 액세스 제어 장치를 통한, 경우에 따라 선행하는 분석)에 대해 상기 처리 유닛 또는 또 다른 처리 유닛의 관여는 불필요하다.In particular, the direct memory access control device of the present disclosure enables the transfer of data (or a portion thereof) of a first bus subscriber, for example, a communication module or a storage area allocated to the communication module and connected to the bus system. For example, the data may be transferred into the local memory of the processing unit or processing core coupled to the bus system and may be transferred to the processing unit or another processing unit for transmission (and, optionally, prior analysis via a direct memory access control device) Involvement is unnecessary.

전송할 데이터는 바람직하게는 데이터 내에 포함되어 있는 기준들("검색 특징들" 또는 필터 기준들; 계속하여 하기 내용 참조)의 이용하에 특정한 처리 유닛, 또는 처리 코어, 또는 기억 영역으로 전송될 수 있다. 또한, 전송할 데이터의 복수의 부분을 복수의 처리 유닛 또는 처리 코어 또는 기억 영역으로 전송하여 분배할 수도 있다. 이 경우, 하나의 메시지의 모든 데이터(예: 이더넷 프레임)가 전송될 수 있거나, 메시지의 사전 설정 가능한 특정 부분들만 전송될 수 있다.The data to be transmitted may preferably be transferred to a specific processing unit, or processing core, or storage area, using the criteria contained in the data ("search features" or filter criteria; Further, a plurality of portions of data to be transferred may be transferred to and distributed to a plurality of processing units or processing cores or storage regions. In this case, all data of one message (e.g. Ethernet frame) may be transmitted, or only certain pre-configurable parts of the message may be transmitted.

사전 설정 가능한 특정 부분들만 전송하는 점은 특히 이더넷 프레임이 길 때 매우 유리한데, 그 이유는 요구되지 않는 정보들(헤더, 기타 프로토콜들)이 이미 DMA 전송 전에 제거될 수 있기 때문이다. 그로 인해 방지되는 불필요한 바이트 전송들은 [예컨대 마이크로 컨트롤러(μC)의 내부 버스인] 버스 시스템의 부하를 경감시키고, 특히, 데이터가 전송될 버스 가입자의, DMA 전송을 통해 수신되는 데이터의 데이터 처리와 관련한 소프트웨어를 간소화한다. 이 경우, 총체적으로 필요한 계산 처리 능력 또는 데이터의 전송을 특성화하는 실행 시간이 감소할 수 있는데, 그 이유는 마지막에 불필요한 프레임 부분들이 사전에 제외되기 때문이다. 전술한 실행 시간은 특히, 분석을 위해 이용되는 프로토콜 결정, 데이터 검색 등을 포함할 수 있다.The transmission of only certain parts that can be preset is very advantageous, especially when the Ethernet frame is long because the undesired information (header, other protocols) can already be removed before DMA transmission. The unnecessary byte transmissions thus avoided reduce the load on the bus system (e.g., the internal bus of the microcontroller μC) and, in particular, reduce the load on the bus subscriber to which the data is to be transferred, Simplify software. In this case, the overall required computational processing power or execution time to characterize the transmission of data may be reduced because the last unnecessary frame parts are excluded in advance. The execution time described above may include, among other things, protocol decisions used for analysis, data retrieval, and the like.

예컨대 이른바 "SOME/IP 프로토콜"을 포함하는 이더넷 프레임들은 복수의 전송할 데이터 섹션(데이터 세그먼트)을 포함할 수 있으며, 이 데이터 섹션들은 각각 직접 메모리 액세스에 의해 상이한 버스 가입자들로 전송될 수 있다. 이 경우, 본 발명에 따른 직접 메모리 액세스 제어 장치는, 단일의 이른바 "DMA 채널"(DMA: "Direct Memory Access")이 복수의 데이터 섹션을 상이한 버스 가입자들로 전송할 수 있다는 추가 장점이 있다. 축약어 "SOME/IP"는 영어로 "Scalable service-Oriented MiddlewarE over IP"를 의미한다.For example, Ethernet frames including the so-called "SOME / IP protocol" may include a plurality of data sections to be transmitted (data segments), each of which may be transmitted to different bus subscribers by direct memory access. In this case, the direct memory access control apparatus according to the present invention has the additional advantage that a single so-called "DMA channel" (DMA: Direct Memory Access) can transfer a plurality of data sections to different bus subscribers. The abbreviation "SOME / IP" stands for "Scalable service-Oriented MiddlewareE over IP" in English.

본원의 직접 메모리 액세스 제어 장치가 데이터 길이("프레임 길이") 또는 데이터의 각각의 섹션들의 길이를 결정한 후에, 본원의 직접 메모리 액세스 제어 장치는 일 추가 실시형태에 따라 예컨대 DMA 전송 전에, 또는 DMA 전송 중에 시작 주소 및 종료 주소의 타당성을 검사할 수 있으며, 필요한 경우 임시로 에러 플래그들의 설정을 이용하여 적합하게 반응할 수 있다. 따라서, 필요한 경우 종래 기술에 따라 DMA 전송을 위한 타깃 모듈 상에서 실행되는 소프트웨어에 의해 실행되어야 할 수도 있는 추가 검사가 불필요할 수 있다.After the direct memory access control device of the present application determines the data length ("frame length") or the length of each of the sections of data, the direct memory access control device of the present disclosure may be implemented in accordance with one additional embodiment, The validity of the start address and the end address can be checked and, if necessary, can be reacted appropriately using the setting of error flags temporarily. Thus, if necessary, additional checks that may be required to be performed by the software running on the target module for DMA transfer in accordance with the prior art may be unnecessary.

이 경우, 전술한 데이터의 분석 및 직접 메모리 액세스 제어 장치의 제어는 바람직하게 프로그래밍 가능 제어 장치를 이용하여 수행된다. 프로그래밍 가능 제어 장치의 프로그래밍은 예컨대 제어 장치를 위한 상응하는 (프로그램) 명령어들을 예컨대 버스 시스템에 연결된 메모리의 사전 설정 가능한 기억 영역 내로 제공함으로써, 또는 예컨대 버스 시스템에 연결되어 있지 않은 별도의 메모리(예: 직접 메모리 액세스 제어 장치와 관련하여 로컬 메모리)로 제어 장치를 위한 (프로그램) 명령어들을 제공함으로써 수행될 수 있다.In this case, analysis of the above-described data and control of the direct memory access control device are preferably performed using a programmable controller. Programming of the programmable controller can be accomplished, for example, by providing corresponding (program) instructions for the control device, for example, into a pre-configurable storage area of the memory coupled to the bus system, or in a separate memory (e.g., (Program) instructions for the control device to the local memory in association with the direct memory access control device.

일 추가 구현예에서, 프로그래밍 가능 제어 장치는 프로그래밍 가능 처리 유닛을 포함한다. 본원의 직접 메모리 액세스 제어 장치를 위한 제어 장치의 기능의 부분들은 일 추가 실시형태에 따라 하나 이상의 상태 기계(state machine)에 의해서도 실현될 수 있다.In one further implementation, the programmable controller device comprises a programmable processing unit. Portions of the functionality of the controller for the direct memory access controller of the present application may also be realized by one or more state machines in accordance with a further embodiment.

그 밖에도, 제어 장치(또는 프로그래밍 가능 처리 유닛)는, 하기 매개변수들, 즉: In addition, the control device (or the programmable processing unit)

- 검색 특징, 특히 프로토콜 정보 및/또는 CAN-ID(Controller Area Network Identity);- search features, in particular protocol information and / or CAN-ID (Controller Area Network Identity);

- 검색 위치, 특히 오프셋 주소;- search locations, especially offset addresses;

- 각각의 검색 특징의 길이;The length of each search feature;

- 반복 단계들 또는 검색 실행들의 사전 설정 가능한 횟수;A preset number of iterations or search runs;

- 데이터의 하나 이상의 섹션의 전송을 위한 타깃 주소;A target address for transmission of one or more sections of data;

중 적어도 하나의 매개변수를 포함하는 하나 이상의 매개변수 집합을 로딩하여, 버스 시스템의 버스 가입자의 데이터의 분석 및/또는 전송을 위해 이용하도록 형성될 수 있다.And / or < / RTI > the data of the bus subscriber of the bus system by loading one or more sets of parameters comprising at least one of the parameters of the bus system.

(하나 또는 복수의 매개변수를 포함할 수 있는) 하나 이상의 매개변수 집합을 로딩함으로써, 데이터의 분석이 매우 효율적이고 유연하게 수행될 수 있다. 전술한 로딩은 선택적으로, 예컨대 각각 선행하는 분석 단계들의 결과들에 따라, 분석의 임의의 복수의 단계 사이에서도 수행될 수 있다.By loading one or more sets of parameters (which may include one or more parameters), the analysis of the data can be performed very efficiently and flexibly. The above-described loading may optionally be performed between any of a plurality of steps of analysis, for example, according to the results of each preceding analysis step.

일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 버스 가입자의 데이터에서 정보들을 결정하고, 이 정보들에서 데이터의 각각 전송할 섹션의 길이를 결정하여 기준 값과 비교하도록 형성된다. 이를 위해, 예컨대 전술한 데이터는 완전히 또는 일부만 [예컨대 직접 메모리 액세스 제어 장치의 로컬 (버퍼) 메모리 내로] 로딩될 수 있다. 데이터의 복수의 섹션이 전송되어야 한다면, 정보들의 결정 및 기준 값과의 비교는 예컨대 데이터의 각각 존재하는 구조에 상응하게 반복적으로 수행될 수도 있다. 결정된 길이 및 기준 값을 이용하여, 데이터 내에서 또는 데이터의 전송 중 에러 및/또는 고의적인 조작이 바람직하게 인지될 수 있다.In one further implementation, the direct memory access control apparatus of the subject application is configured to determine information in the data of a bus subscriber, determine the length of each section of data to be transmitted in each of the information, and compare the reference value with the length. To this end, for example, the above-described data may be loaded completely or only partially (e.g., into the local (buffer) memory of a direct memory access controller). If a plurality of sections of data are to be transmitted, the determination of the information and the comparison with the reference value may be performed iteratively, e.g., corresponding to each existing structure of the data. Using the determined length and reference value, errors and / or deliberate manipulations within the data or during transmission of the data may preferably be perceived.

일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 상이한 제2 버스 가입자들로, 또는 상이한 타깃 주소들로, 특히 버스 시스템과 연결된 처리 유닛들의 상이한 로컬 메모리들로 데이터의 상이한 섹션들을 전송하도록 형성된다. 그에 따라, (소스) 버스 가입자 내에 존재하는 데이터는 바람직하게 데이터 및/또는 이 데이터의 메타 데이터에 대한 기준들에 따라 상이한 타깃 영역들로, 예컨대 상이한 타깃 버스 가입자들로 전송되고 분배될 수 있다. 그럼으로써 특히, 통신 모듈로서 형성된 (소스) 버스 가입자의 경우, 상이한 타깃 버스 가입자들로 통신 모듈의 메시지(예: 통신 모듈에 의해 수신된 CAN 메시지 등)의 데이터를 분배할 수도 있다.In one further implementation, the direct memory access control apparatus of the present disclosure is adapted to transfer different sections of data to different second bus subscribers, or to different local addresses of the processing units, particularly to bus systems and to different target addresses . Accordingly, the data present in the (source) bus subscriber can preferably be transmitted and distributed to different target areas, e. G., To different target bus subscribers, depending on the data and / or criteria for the meta data of this data. Thereby, in particular, in the case of a (source) bus subscriber formed as a communication module, it is also possible to distribute the data of the communication module's message (e.g., the CAN message received by the communication module, etc.) to different target bus subscribers.

일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 에러 정보들을 결정하고, 그리고/또는 에러 정보들에 따라 데이터의 분석 및/또는 전송을 수행하도록 형성된다. 예컨대 소스 주소 및/또는 타깃 주소뿐 아니라 경우에 따른 특정한 DMA 전송을 위한 추가 가능한 매개변수들의 분석이 하나 또는 복수의 사전 설정 가능한 에러 기준(예: 허용되는 주소 범위를 벗어난 타깃 주소, 사전 설정 가능한 한계 값보다 더 큰 전송할 데이터의 길이 등)을 충족한다면, 에러 또는 조작이 추론될 수 있으며, DMA 전송은 중지되거나, 심지어 실행되지 않을 수 있다. 다른 실시형태들에서, 에러 반응[에러 메모리 내 엔트리, 처리 유닛으로의 인터럽트 요청(interrupt request) 등]의 도입도 생각해볼 수 있다.In one further implementation, the direct memory access control apparatus of the present disclosure is configured to determine error information and / or perform analysis and / or transmission of data according to error information. Such as source address and / or target address, as well as the case where the analysis of additional parameters for a particular DMA transfer is based on one or more predefinable error criteria (e.g., a target address outside the allowed address range, The length of the data to be transferred that is greater than the value, etc.), then an error or operation may be inferred and the DMA transfer may be suspended or even not executed. In other embodiments, the introduction of an error response (an entry in the error memory, an interrupt request to the processing unit, etc.) may be considered.

일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제1 버스 가입자의 데이터의 시작 주소 및/또는 종료 주소를 결정하여 기준 값과 비교하도록 형성된다.In one further implementation, the direct memory access control apparatus of the present disclosure is configured to determine a start address and / or an end address of data of the first bus subscriber and compare the reference value with the reference value.

일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제2 버스 가입자로 전송할 데이터 및/또는 데이터의 전송할 섹션들의 시작 주소 및/또는 종료 주소를 결정하여 기준 값과 비교하도록 형성된다.In one further implementation, the direct memory access control apparatus of the present application is configured to determine a start address and / or an end address of sections to transmit data and / or data to be transmitted to a second bus subscriber and to compare with a reference value.

일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제1 버스 가입자로부터 시그널링 정보들을 수신하고, 그리고/또는 제1 버스 가입자 내에서 시그널링 정보들을 설정하거나 삭제하도록 형성된다.In a further implementation, the direct memory access control apparatus of the present disclosure is configured to receive signaling information from a first bus subscriber and / or to set or delete signaling information within a first bus subscriber.

일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제2 버스 가입자로 시그널링 정보들을 송신하고, 그리고/또는 제2 버스 가입자 내에서 시그널링 정보들을 설정하거나 삭제하도록 형성된다.In one further implementation, the direct memory access control apparatus of the present disclosure is configured to transmit signaling information to a second bus subscriber and / or to set or delete signaling information in a second bus subscriber.

일 추가 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 하기 조치들, 즉:In one further implementation, the direct memory access control apparatus of the present disclosure includes the following actions:

- 제1 버스 가입자로부터 트리거 신호(예컨대 DMA 전송 및/또는 데이터의 분석이 실행되어야 함을 알리는 제어 신호)를 수신하고;- receiving a trigger signal (e.g., a control signal indicating that an analysis of the DMA transfer and / or data should be performed) from the first bus subscriber;

- 특히 하나의 트리거 신호 또는 상기 트리거 신호에 따라, 주기억 장치 또는 제1 버스 가입자의 메모리에서 직접 메모리 액세스에 의해 전송될 데이터를 수신하거나 판독하고;Receiving or reading data to be transferred by direct memory access in the main memory or the memory of the first bus subscriber, in particular according to one trigger signal or the trigger signal;

- 제2 버스 가입자의 타깃 메모리에 대한 메모리 조직(memory organization)을 특성화하는 엔트리 유형을 결정하고, 상기 결정된 엔트리 유형에 따라 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템을 통해 제1 버스 가입자로부터 제2 버스 가입자의 타깃 메모리 내로 데이터를 전송하는;- determining an entry type that characterizes a memory organization for a target memory of a second bus subscriber and determining a type of an entry from the first bus subscriber via the bus system using one or more direct memory accesses according to the determined entry type, Transferring data into the bus subscriber's target memory;

조치들 중 하나 이상의 조치를 수행하도록 형성된다.And is configured to perform one or more of the actions.

추가의 바람직한 실시형태들에서 개별적으로, 또는 서로 조합되어, 그리고 서로 임의의 순서로 실행될 수 있는 전술한 조치들에 의해, 직접 메모리 액세스 제어 장치의 작동뿐만 아니라 데이터의 분석 및 전송이 바람직하게 개선될 수 있다. 엔트리 유형에 의해, 예컨대 데이터가 마지막에 사전 설정 가능한 "전용" (블록) 기억 영역 내로 전송될지, 아니면 순환 버퍼로서 구성된 기억 영역 내로 전송될지의 여부가 사전 설정될 수 있다. 기억 영역은 예컨대 각각 중앙 주기억 장치, 또는 버스 가입자의 각각의 로컬 메모리일 수 있으며, 예컨대 버스 시스템과 연결된 처리 유닛의 로컬 메모리일 수 있다.The above-described measures, which may be performed separately or in combination with each other and in any order relative to each other, advantageously improve the analysis and transmission of data as well as the operation of the direct memory access control device . Depending on the entry type, it can be preset, for example, whether the data is to be transferred into the last "dedicated" (block) storage area or into a storage area configured as a circular buffer. The storage area may be, for example, each local memory of the central main memory or bus subscriber, and may be, for example, the local memory of the processing unit coupled to the bus system.

그 밖에도, 제어 장치는 본원의 직접 메모리 액세스 제어 장치의 집적 반도체 회로 내에 통합 배치될 수 있다. 따라서 장착 공간 및 비용이 절약될 수 있다.In addition, the control device may be integrated into the integrated semiconductor circuit of the direct memory access control device of the present application. Thus, mounting space and cost can be saved.

그 밖에도, 본원의 직접 메모리 액세스 제어 장치는 (특히 프로그래밍 가능 제어 장치를 포함하여) 특히 반도체 기술의 이용하에 20㎚(나노미터) 내지 60㎚ 범위의 구조 크기를 갖는 하드웨어 회로로서 형성될 수 있다. 따라서, 데이터의 분석 및 전송을 위해 필요한 실행 시간이 바람직하게 감소하며 효율적인 작동이 보장될 수 있다.In addition, the direct memory access control device of the present application can be formed as a hardware circuit having a structure size in the range of 20 nm (nanometer) to 60 nm, particularly using the semiconductor technology (especially including the programmable control device). Therefore, the execution time necessary for the analysis and transmission of the data is preferably reduced and efficient operation can be ensured.

일 구현예에서, 본원의 직접 메모리 액세스 제어 장치는 하기 단계들을 실행하도록 형성된다.In one implementation, the direct memory access control apparatus of the present disclosure is configured to perform the following steps.

- 매개변수 집합이 하나 이상의 사전 설정 가능한 매개변수를 포함하는 조건에서, 하나 이상의 버스 가입자의 하나 이상의 매개변수 집합을 수신하거나 판독하는 단계;- receiving or reading a set of one or more parameters of one or more bus subscribers, under the condition that the parameter set comprises one or more presettable parameters;

- 제1 버스 가입자로부터 데이터를 수신하거나 판독하는 단계;- receiving or reading data from a first bus subscriber;

- 데이터의 제1 영역이 하나 이상의 매개변수에 따라 결정되는 조건에서, 데이터의 제1 영역에서 제1 정보들을 결정하는 단계;Determining first information in a first region of data, under a condition that a first region of data is determined according to one or more parameters;

- 예컨대 "검색 특징"이면서 매개변수 집합에서 결정되는 제1 기준과 제1 정보들을 비교하는 단계;- comparing the first information with a first criterion, for example a "search feature" and determined in a parameter set;

- 상기 비교 및/또는 결정된 제1 정보에 기초하여 하기 단계 (a) 내지 (c)를 조건부로 수행하는 단계:Performing the following steps (a) to (c) conditionally based on the compared and / or determined first information:

(a) 데이터의 각각의 추가 영역이 하나 이상의 추가 매개변수 및/또는 제1 정보 및/또는 추가 정보에 따라 결정되는 조건에서, 데이터의 하나 이상의 각각의 추가 영역에서 각각의 추가 정보를 결정하는 단계;(a) determining each additional information in each one or more additional areas of data, with each additional area of data being determined according to one or more additional parameters and / or first information and / or additional information ;

(b) 매개변수 집합에서 결정된 추가 기준과 추가 정보를 비교하는 단계;(b) comparing the additional information with the additional criteria determined in the parameter set;

(c) 상기 비교 및/또는 결정된 추가 정보에 기초하여 단계 (a) 내지 (c)를 조건부로 반복하는 단계;(c) conditionally repeating steps (a) through (c) based on the comparison and / or determined additional information;

- 제1 정보들 및/또는 추가 정보들 및/또는 하나 이상의 매개변수에 따라 하나 이상의 제2 버스 가입자의 하나 이상의 타깃 주소를 결정하는 단계;Determining one or more target addresses of the one or more second bus subscribers according to the first information and / or additional information and / or one or more parameters;

- 제1 정보들 및/또는 추가 정보들 및/또는 하나 이상의 매개변수에 따라 하나 이상의 타깃 주소로 전송될 데이터의 하나 이상의 섹션의 길이를 결정하는 단계;Determining the length of one or more sections of data to be transmitted to the one or more target addresses according to the first information and / or additional information and / or one or more parameters;

- 제1 버스 가입자로부터 하나 이상의 제2 버스 가입자로 직접 메모리 액세스를 이용하여 하나 이상의 제2 버스 가입자의 하나 이상의 타깃 주소로 데이터의 하나 이상의 섹션을 전송하는 단계.- transferring one or more sections of data from the first bus subscriber to one or more target addresses of the one or more second bus subscribers using direct memory access to the one or more second bus subscribers.

데이터의 각각 언급한 영역은 바람직하게는 버스 시스템의 하나 또는 복수의 주소, 또는 버스 시스템과 연결된 메모리의 하나 또는 복수의 주소에 의해 특성화된다. 설명한 단계들을 통해 기술한 본원의 직접 메모리 액세스 제어 장치는 특히 바람직하게 데이터의 분석 및 전송을 위해 형성된다.Each mentioned area of data is preferably characterized by one or more addresses of the bus system, or one or more addresses of the memory associated with the bus system. The present direct memory access control apparatus described through the described steps is particularly preferably formed for the analysis and transmission of data.

이에 대한 일 구현예에서, 데이터의 하나 이상의 섹션의 전송 전에, 상기 전송 단계에 선행하는 단계들의 적어도 일부의 반복이 수행된다. 이런 방식으로, 바람직하게는 데이터로부터 전송할 복수의 섹션에 대한 정보들이 결정될 수 있고, 후속하는 상기 섹션들의 전송들이 연속으로 수행될 수 있다.In one implementation of this, before transmission of one or more sections of data, repetition of at least a part of the preceding steps of the transmission step is performed. In this way, preferably, information about a plurality of sections to be transmitted from the data can be determined, and subsequent transmissions of the sections can be performed in succession.

그 밖에도, 본 발명은, 복수의 버스 가입자를 연결하는 버스 시스템과 직접 메모리 액세스 제어 장치를 연결하기 위한 단자와, 직접 메모리 액세스 제어 장치의 작동을 제어하기 위한 제어 장치를 구비한 직접 메모리 액세스 제어 장치를 작동하기 위한 방법에 관한 것이다. 이 경우, 방법에 따라 제어 장치는 프로그래밍된다.In addition, the present invention provides a direct memory access control device having a terminal for connecting a direct memory access control device with a bus system connecting a plurality of bus subscribers, and a control device for controlling the operation of the direct memory access control device And to a method for operating the same. In this case, the control device is programmed according to the method.

본원의 방법의 일 구현예에서, 제어 장치의 프로그래밍에 따라 버스 시스템의 버스 가입자의 데이터가 분석되거나, 제어 장치의 프로그래밍에 따라 데이터가 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템을 통해 제1 버스 가입자로부터 하나 이상의 제2 버스 가입자로 전송된다.In one embodiment of the method, the data of a bus subscriber of the bus system is analyzed according to the programming of the control device, or the data is transferred to the first bus subscriber through the bus system using one or more direct memory access, To one or more second bus subscribers.

본원의 방법의 일 추가 구현예에서, 버스 가입자의 데이터로부터 정보들이 결정되며, 상기 정보들에서 데이터의 각각 전송할 섹션의 길이가 결정되어 기준 값과 비교된다.In one further embodiment of the method, the information is determined from the data of the bus subscriber, the length of each section of the data to be transmitted in the information is determined and compared with a reference value.

본 발명에 따른 방법의 경우, 계속하여 앞에서 본원의 직접 메모리 액세스 제어 장치 및 그 구현예들에 대해 이미 기술한 것과 대응하는 장점들이 달성된다.In the case of the method according to the invention, successive advantages corresponding to those already described with respect to the direct memory access control device and its implementations hereinbefore are achieved.

하기에서 본 발명의 예시에 따른 실시형태들은 도면을 참조하여 설명된다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following, exemplary embodiments according to the present invention will be described with reference to the drawings.

도 1은 버스 시스템과, 직접 메모리 액세스 제어 장치와, 버스 시스템과 연결된 복수의 버스 가입자를 포함한 시스템을 간소화하여 도시한 개략도이다.
도 2는 이더넷 프레임의 데이터의 개략도이다.
도 3은 도 1의 직접 메모리 액세스 제어 장치의 작동을 제어하기 위한 제어 장치의 프로그램 흐름도이다.
도 4는 도 3의 프로그램 흐름도의 선택에 따른 확장에 대한 제1 다이어그램이다.
도 5는 도 3의 프로그램 흐름도의 선택에 따른 확장에 대한 제2 다이어그램이다.
도 6은 버스 시스템과 연결된 처리 유닛들의 각각의 로컬 메모리들에 대한 이더넷 프레임의 데이터 섹션들의 예시에 따른 할당을 나타낸 도면이다.
도 7은 도 1에 따른 시스템용으로 통신 모듈로서 구현되는 버스 가입자에 대한 제1 추가 실시형태를 도시한 도면이다.
도 8은 도 1에 따른 시스템용으로 통신 모듈로서 구현되는 버스 가입자에 대한 제2 추가 실시형태를 도시한 도면이다.
1 is a simplified diagram illustrating a system including a bus system, a direct memory access controller, and a plurality of bus subscribers coupled to the bus system.
2 is a schematic diagram of data of an Ethernet frame.
3 is a program flow diagram of a control apparatus for controlling the operation of the direct memory access control apparatus of FIG.
4 is a first diagram of an extension according to the selection of the program flow diagram of FIG.
5 is a second diagram of an extension according to the selection of the program flow diagram of FIG.
6 is a diagram illustrating an exemplary allocation of data sections of an Ethernet frame to respective local memories of processing units connected to a bus system;
7 is a diagram illustrating a first further embodiment of a bus subscriber implemented as a communication module for the system according to FIG.
8 is a diagram illustrating a second additional embodiment of a bus subscriber implemented as a communication module for the system according to FIG.

모든 도면에서 기능상 등가인 요소들 및 변수들을 위해 실시형태들이 상이하더라도 동일한 도면부호들이 이용된다.The same reference numerals are used for elements and variables that are functionally equivalent in all figures even if the embodiments are different.

도 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, there is shown a computer system 10 including a plurality of processing units 20_1 to 20_n and local memories 30_1 and 30_2 to 30_n respectively assigned to the processing units 20_1 to 20_n have. Further, the central main memory 30 is connected to the bus system 12. The main memory 30 is optional and is shown in broken lines in FIG. The left block in FIG. 1 characterizes the direct memory access controller 40, which is also connected to the bus system 12 via a terminal 41. In Figure 1, on top of the direct memory access control device 40 is shown a control device 42 which is capable of controlling the operation of the direct memory access control device 40. [

그 밖에도, 도 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으로 대신 표시되어 있다.1 also shows a plurality of communication modules 50_1 to 50_n connected to the bus system 12, these communication modules being also denoted by reference numeral 50 in its entirety. An Ethernet network, a CAN bus, etc., for example, are connected to the communication modules 50_1 to 50_n, respectively. Each of the components 20_1, 20_2 to 20_n, 30_1, 30_2 to 30_n, 30, 40 and 50_1, 50_2 to 50_n connected to the bus system 12 characterizes each "bus subscriber" , Bus subscribers are generalized and indicated at 60 instead.

일 실시형태에서, 처리 유닛들(20_1 내지 20_n)은 (그 자체로서 도 1에는 미도시한) 처리 유닛의 각각의 프로세서 코어를 통해 형성된다. 일 실시형태에서, 상기 처리 유닛은 모놀리식 집적 반도체 회로로서 구현된다. 일 실시형태에서, 컴퓨터 시스템(10)은 마이크로 컨트롤러이다.In one embodiment, the processing units 20_1 through 20_n are formed through respective processor cores of the processing units (not shown in FIG. 1 by itself). In one embodiment, the processing unit is implemented as a monolithic integrated semiconductor circuit. In one embodiment, the computer system 10 is a microcontroller.

그 밖에도, 도 1에는, 화살표 유형의 선들을 통해 도시된 복수의 데이터 경로도 상징적으로 도시되어 있다. 상기 데이터 경로들은 예시로서 직접 메모리 액세스를 이용하면서 버스 시스템(12)을 통해 (도 1에서 우측 하부에 있는) 통신 모듈(50_n)로부터 (도 1의 상부 영역에 있는) 로컬 메모리들(30_1, 30_2 내지 30_n)로 데이터의 전송을 특성화한다.In addition, in FIG. 1, a plurality of data paths shown through lines of arrow type are also symbolically shown. The data paths are transferred from the communication module 50_n (in the lower right portion of FIG. 1) to the local memories 30_1, 30_2 (in the upper region of FIG. 1) via the bus system 12 To < RTI ID = 0.0 > 30_n. ≪ / RTI >

예컨대 통신 모듈들(50)은 자신들의 각각의 통신 채널(미도시)을 통해 수신된 데이터를 주기억 장치(30) 내에 기록하는데, 그 이유는 통신 모듈들(50)이 데이터를 일반적으로 분명하게 해석할 수 없기 때문이다. 그런 후에, 각각의 통신 모듈(50)은 트리거 신호를 직접 메모리 액세스 제어 장치(40)로 송신할 수 있다[이에 대해서는 계속하여 하기에서 도 3에서의 블록(202) 참조].For example, communication modules 50 write data received via their respective communication channels (not shown) in main memory 30 because communication modules 50 generally interpret data I can not do it. Then, each communication module 50 can send a trigger signal directly to the memory access control device 40 (see below, block 202 in FIG. 3).

또한, 통신 모듈들(50)은 자신들의 각각의 통신 채널을 통해 수신된 데이터를 로컬 메모리(미도시) 내에 적어도 일시적으로 저장할 수 있고 그런 다음 수신된 데이터의 적어도 부분들은 직접 메모리 액세스들의 이용하에 버스 시스템(12)을 통해 하나 또는 복수의 또 다른 버스 가입자로 전송될 수 있다.In addition, the communication modules 50 may at least temporarily store the data received via their respective communication channels in a local memory (not shown), and then at least portions of the received data, May be transmitted via system 12 to one or more other bus subscribers.

다시 말해, 도 1에는, 전체적으로, 복수의 버스 가입자(60)를 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)의 연결을 위한 단자와, 직접 메모리 액세스 제어 장치(40)의 작동을 제어하기 위한 제어 장치(42)를 구비한 직접 메모리 액세스 제어 장치(40)를 포함하는 컴퓨터 시스템(10)이 도시되어 있다. 이 경우, 제어 장치(42)는 프로그래밍될 수 있다.In other words, Figure 1 generally shows a terminal for the connection of the direct memory access controller 40 with the bus system 12 connecting the plurality of bus subscribers 60 and the terminal of the direct memory access controller 40 There is shown a computer system 10 including a direct memory access control device 40 having a control device 42 for controlling a memory device 40. [ In this case, the control device 42 can be programmed.

일 실시형태에서, 직접 메모리 액세스 제어 장치(40)는, 제어 장치(42)의 프로그래밍에 따라 버스 시스템(12)의 버스 가입자(60)의 데이터를 분석하도록 형성된다.In one embodiment, the direct memory access control apparatus 40 is configured to analyze the data of the bus subscriber 60 of the bus system 12 in accordance with the programming of the control device 42.

일 추가 실시형태에서, 직접 메모리 액세스 제어 장치(40)는, 제어 장치(42)의 프로그래밍에 따라서, 하나 이상의 직접 메모리 액세스를 이용하면서 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 데이터를 전송하도록 형성된다.In one additional embodiment, direct memory access control device 40 is operable, in accordance with the programming of control device 42, to provide one (1) direct memory access from bus subsystem 60 via bus system 12, To the second bus subscriber (60).

여전히 일 추가 실시형태에서, 프로그래밍 가능 제어 장치(42)는 도 1에서 제어 장치(42)의 하부에 파선으로 표시되어 있는 프로그래밍 가능 처리 유닛(44)을 포함한다. 프로그래밍 가능 처리 유닛(44)은 바람직하게는 (그러나 비강제적인 방식으로) 예컨대 제어 장치(42) 내에 존재하는 "자신의" 프로그램 코드 또는 상응하는 프로그램 명령어들을 통해 작동될 수 있으며, 다시 말해 프로그램 코드 또는 프로그램 명령어들은 처리 유닛(44)의 작동 중에 바람직하게는 버스 시스템(12)의 개입 없이 실행될 수 있다. 일 추가 실시형태에서, 제어 장치(42)는, 또한 직접 메모리 액세스 제어 장치(40)를 위한 제어 장치(42)의 기능의 부분들을 실현하기 위해 하나 이상의 상태 기계도 포함할 수 있다.Still in a further embodiment, the programmable controller 42 includes a programmable processing unit 44, shown in phantom in the lower portion of the controller 42 in Fig. The programmable processing unit 44 is preferably (but non-coercively) enabled to operate through, for example, "own" program code or corresponding program instructions that reside in the control device 42, Or program instructions may be executed during the operation of the processing unit 44, preferably without the intervention of the bus system 12. [ The control device 42 may also include one or more state machines for realizing portions of the functionality of the controller 42 for the direct memory access controller 40. In one embodiment,

또한, 추가의 바람직한 실시형태들에서, 컴포넌트들(40, 42, 44)은 각각 (또는 그 중 하나만이, 또는 2개만이) 메모리, 특히 로컬 메모리를 포함할 수 있으며, 그럼으로써 예컨대 전술한 프로그램 코드 또는 상응하는 프로그램 명령어들 또는 프로그램들은 관련된 컴포넌트(40, 42, 44)의 (로컬) 메모리에서 실행될 수 있게 된다. 이는 바람직하게는 성능(처리 능력)을 높이며, 그리고 외부 또는 중앙 메모리, 예컨대 플래시 메모리로의 접근들을 감소시키거나 방지하는 점에 기여할 수 있다.In addition, in further preferred embodiments, the components 40,42, 44 may each include (or only one, or only two) memory, in particular local memory, Code or corresponding program instructions or programs may be executed in the (local) memory of the associated component 40, 42, 44. This preferably increases performance (processing power) and may contribute to reducing or preventing access to external or central memory, e.g., flash memory.

일 바람직한 실시형태에서, 직접 메모리 액세스 제어 장치(40)는 하드웨어 회로로서 형성된다. 일 추가 실시형태에서, 제어 장치(42)는 직접 메모리 액세스 제어 장치(40)의 집적 반도체 회로 내에 통합 배치된다. 일 실시형태에서, 제어 장치(42)는 직접 메모리 액세스 제어 장치(40)로부터 분리되어 배치된다.In one preferred embodiment, direct memory access controller 40 is formed as a hardware circuit. In one further embodiment, the control device 42 is integrated into the integrated semiconductor circuit of direct memory access control device 40. [ In one embodiment, the control device 42 is disposed separately from the direct memory access control device 40.

도 2에는, 이더넷 프레임(이더넷 프로토콜에 따른 데이터 프레임)(120) 및 이 이더넷 프레임에 포함되어 있는, 또 다른 프로토콜들 또는 프로토콜 계층들의 데이터의 개략도(100)가 도시되어 있다. 이더넷 프레임(120)은 인터리빙 방식으로 구현되며, 이는 여기서 각각 도면에서 좌측에서 우측으로 연장되는 총 4개의 데이터 구조를 통해 도시되어 있다. 도 2의 이더넷 프레임[및 동일한 방식으로 도 6의 이더넷 프레임(100')(계속하여 하기 내용 참조)]은 예시로서 직접 메모리 액세스 제어 장치(40)에 의해 분석될 데이터(100)이면서 적어도 부분적으로 이어서 직접 메모리 액세스에 의해, 그리고 직접 메모리 액세스 제어 장치(40)에 의해 전송되어야 하는 상기 데이터(100)를 특성화한다.2, a schematic diagram 100 of an Ethernet frame (data frame according to Ethernet protocol) 120 and data of another protocols or protocol layers contained in this Ethernet frame is shown. The Ethernet frame 120 is implemented in an interleaving manner, which is illustrated here through a total of four data structures extending from left to right in each figure. Ethernet frame 100 'of FIG. 2 (and Ethernet frame 100' of FIG. 6 in the same way) in FIG. 2 is illustratively a data 100 to be analyzed by direct memory access control device 40 and at least partially And then characterizes the data 100 to be transmitted by direct memory access and by direct memory access control device 40. [

도 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)에서 유추된다는 점을 명시하고 있다.2, the lowermost data structure 120 corresponds to a diagram of the Ethernet frame in the MAC ("Medium Access Control") layer (layer 2) of the ISO / OSI layer model, Characterizes an IPv6 structure ("Internet Protocol Version 6 ", ISO / OSI Layer 3) as a component of a payload 130 of the Ethernet frame 120, and a data structure 160 ) Characterizes the TCP structure (Transmission Control Protocol, ISO / OSI Layer 4) as a component of the payload 151 of the IPv6 structure 140, and the block 180 located thereon While symbolically illustrating protocols and possible additional interleaving of the data frames, while expressing the payload content of the TCP structure 160. The lines 190 illustrate the " expansion "of the payload of the lower ISO / OSI layer, respectively, with a data frame of the layer located thereon. For example, lines 190 between block 120 and block 140 indicate that IPv6 structure 140 is derived from the MAC payload of Ethernet frame 120.

여기서 이더넷 프레임(120)은 하기에 자신들의 도면부호들을 통해 열거되어 있는 하기 필드들 또는 데이터 섹션들을 통해 특성화된다(열 구분: 필드명, 도면부호, 길이).Here, the Ethernet frame 120 is characterized by the following fields or data sections listed through their reference numerals (column name: field name, reference code, length).

프리앰블 122 8바이트;Preamble 122 8 bytes;

타깃 주소 123 6바이트;Target address 123 6 bytes;

소스 주소 124 6바이트;Source address 124 6 bytes;

TPID 125 2바이트;TPID 125 2 bytes;

우선순위(PCP) 126 3비트;Priority (PCP) 126 3 bits;

DEI/CFI 127 1비트;DEI / CFI 127 1 bit;

VLAN-ID 128 12비트;VLAN-ID 128 12 bits;

이더 유형(EtherType) 129 2바이트;EtherType 129 2 bytes;

MAC 페이로드 130 42바이트 내지 1500바이트;MAC payload 130 42 bytes to 1500 bytes;

CRC 체크섬 131 4바이트;CRC checksum 131 4 bytes;

MAC 헤더("header") 132 18바이트;MAC header ("header") 132 18 bytes;

VLAN 태그 133 4바이트.VLAN tag 133 4 bytes.

여기서 IPv6 구조(140)는 하기에 자신들의 도면부호들을 통해 열거되어 있는 하기 데이터 섹션들을 통해 특성화된다.Where the IPv6 structure 140 is characterized through the following data sections listed through their reference numerals below.

버전 143 4비트;Version 143 4 bits;

우선순위 144 1바이트;Priority 144 1 byte;

흐름 라벨 145 20비트;Flow label 145 20 bits;

페이로드 길이 146 2바이트;Payload length 146 2 bytes;

다음 헤더(next header) 147 1바이트;Next header 147 1 byte;

홉 한계(Hop Limit) 148 1바이트;Hop Limit 148 1 byte;

소스 주소 149 16바이트;Source address 149 16 bytes;

타깃 주소 150 16바이트;Target address 150 16 bytes;

IPv6 페이로드 151 0바이트 내지 1460바이트;IPv6 payload 151 0 to 1460 bytes;

IPv6 헤더 153 40바이트.IPv6 header 153 40 bytes.

여기서 TCP 구조(160)는 하기에 자신들의 도면부호들을 통해 열거되어 있는 하기 데이터 섹션들을 통해 특성화된다.Here, the TCP structure 160 is characterized by the following data sections listed through their reference numerals below.

소스 포트 164 2바이트;Source port 164 2 bytes;

타깃 포트 165 2바이트;Target port 165 2 bytes;

시퀀스 번호 166 4바이트;Sequence number 166 4 bytes;

ACK 번호 167 4바이트;ACK number 167 4 bytes;

데이터 오프셋 168 4비트;Data offset 168 4 bits;

예약 + 플래그 169 12비트;Reserved + flag 169 12 bits;

윈도우 크기 170 2바이트;Window size 170 2 bytes;

체크섬 171 2바이트;Checksum 171 2 bytes;

긴급 포인터 172 2바이트;Emergency Pointer 172 2 bytes;

TCP 옵션 173 0 내지 40바이트;TCP option 173 0 to 40 bytes;

TCP 페이로드 174 0 내지 1440바이트;TCP payload 174 0 to 1440 bytes;

TCP 헤더 175 20 내지 60바이트.TCP header 175 20 to 60 bytes.

도 2에는, MAC-페이로드(130), IPv6 페이로드(151), MAC 헤더(132), CRC 체크섬(131)과 같은 일부 데이터 섹션이 도시된 인터리빙에 상응하게 (부분적으로는 도면부호 없이) 한 번 이상 열거되어 있다.In Figure 2, some data sections, such as MAC-payload 130, IPv6 payload 151, MAC header 132, CRC checksum 131, correspond to (but partially without) the illustrated interleaving, It is listed more than once.

계속하여 하기에서 더 설명되는 것처럼, 앞에서 예시로서 기재한 데이터의 분석은 사전 설정 가능한 검색 기준들 또는 필터 기준들의 이용하에 본 발명에 따른 직접 메모리 액세스 제어 장치를 통해 수행될 수 있다. 여기서 기준들은 예컨대 이더넷 프로토콜들(예: "VLAN 태그"에 대해 0x8100)이거나, CAN-ID이거나, PDU들("Protocol Data Unit")이거나, "미니 슬롯 식별자들"이거나, "LIN 식별자들"이거나, 또는 기타 데이터 구조들을 위한 검색 기준들일 수 있다. 상기 검색 기준들에 대한 다양한 예시들은 앞에서 기재한 도표들에 제시되어 있다.As further described below, the analysis of the data described by way of example above can be performed through a direct memory access controller according to the present invention using predefinable search criteria or filter criteria. Here, the criteria may be, for example, Ethernet protocols (e.g., 0x8100 for "VLAN tag "), CAN-ID, PDUs (" Protocol Data Units ")," Mini Slot Identifiers "," LIN Identifiers " , Or other data structures. Various examples of these search criteria are presented in the tables described above.

그러나 본 발명에 따른 원리 및 데이터의 분석은 이더넷 프로토콜 또는 도 2에서 인터리빙된 추가 프로토콜들(IPv6, TCP, ...)로 제한되는 것이 아니라, 일반적으로 각각 또 다른 (기존 및 향후 정의될) 프로토콜(예: CAN, LIN, 플렉스레이, ...)에도 적용될 수 있다. 이를 위해 필요한 유연성은 바람직하게는 제어 장치(42)(도 1)의 프로그래밍 가능성을 통해 제공된다.However, the analysis of the principle and data according to the present invention is not limited to the Ethernet protocol or the interleaved additional protocols (IPv6, TCP, ...) in FIG. 2, but generally another protocol (E.g., CAN, LIN, FlexRay, ...). The flexibility required for this is preferably provided through the programmability of the control device 42 (FIG. 1).

통신 모듈(50)로부터 이 통신 모듈의 특정한 채널을 통해 수신되는 데이터는 각각의 실시형태에 상응하게 (도 1에서 화살표들을 통해 표시한 것처럼) 주기억 장치(30) 내에, 또는 국부적으로는 각각의 통신 모듈(50) 내에 저장될 수 있다. 도 2에서, 빗금 표시된 영역들(1, 2, 3, 4)은 각각 예시로서 각각 특정한 프로토콜 식별들 및/또는 데이터 길이들을 포함하여 직접 메모리 액세스 제어 장치(40)에 의해 분석될 영역들을 나타낸다. 제어 장치(42)의 임무는, 데이터 내에서 상기 영역들을 확인하여 각각의 데이터 길이를 결정하며, 그리고 자체적으로 각각의 프로토콜에 따라 결정될 수 있는 로딩 가능한 매개변수들에 따라서, 그리고/또는 제어 장치(42)를 통해 실행될 수 있는 프로그램 명령어들에 따라 버스 가입자(60)(도 1)의 타깃 기억 영역 내로 데이터들을 전송하는 점도 포함할 수 있다.Data received from the communication module 50 via a particular channel of the communication module may be stored in the main memory 30 or locally as respective communications (as indicated by arrows in FIG. 1) May be stored in the module 50. In FIG. 2, the hatched areas 1, 2, 3, 4 each represent areas to be analyzed by the direct memory access control device 40, each containing, by way of example, specific protocol identifications and / or data lengths. The task of the control device 42 is to identify the areas in the data to determine their respective data lengths and, depending on the loadable parameters that can be determined according to their respective protocols, and / (FIG. 1) in accordance with program instructions that may be executed through the bus subscriber 60 (FIG. 1).

이 경우, 타깃 기억 영역은 예컨대 처리 유닛(20_1 내지 20_n)(또는 처리 코어)의 로컬 메모리(30_1 내지 30_n) 내에서의 타깃 주소를 통해 특성화되며, 선택적으로 보충하는 방식으로 엔트리 유형에 의해 특성화된다. 엔트리 유형에 의해서는, 예컨대 데이터가 마지막에 사전 설정 가능한 "전용의" 선형 기억 영역 또는 기억 블록 내로 전송될지, 아니면 순환 버퍼로서 구성된 기억 영역 내로 전송될지가 사전 설정될 수 있다.In this case, the target storage area is characterized by the target address in the local memories 30_1 to 30_n of the processing units 20_1 to 20_n (or processing cores), and is characterized by the entry type in a manner of selectively supplementing . Depending on the entry type, it can be preset, for example, whether the data is to be transferred into the last "dedicated" linear storage area or memory block that can be preset, or into a storage area configured as a circular buffer.

도 3에는, 복수의 버스 가입자(60)를 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)의 연결을 위한 단자와, 직접 메모리 액세스 제어 장치(40)의 작동을 제어하기 위한 제어 장치(42)를 구비한 직접 메모리 액세스 제어 장치(40)를 작동하기 위한 방법에 대한 프로그램 흐름도가 도시되어 있다. 이 경우, 제어 장치(42)는 프로그래밍된다. 도 3에 보충하여, 여기서는 프로그램 시퀀스의 기재를 위해 도 2의 다이어그램이 이용되며, 특히 도 2에서 빗금 표시되고 숫자들 1 내지 4에 의해 표시된 필드들이 참조된다.3 shows a terminal for connection of the direct memory access controller 40 with the bus system 12 for connecting the plurality of bus subscribers 60 and a control for controlling the operation of the direct memory access controller 40 There is shown a program flow diagram of a method for operating a direct memory access control apparatus 40 having an apparatus 42. [ In this case, the control device 42 is programmed. In addition to Fig. 3, the diagram of Fig. 2 is used here for the purpose of describing the program sequence, in particular the fields indicated by the numbers 1 to 4, which are hatched in Fig.

도 3에서 최상부의 블록(202)에서, 직접 메모리 액세스 제어 장치(40)는 제1 버스 가입자(60)로부터, 예컨대 통신 모듈들(50_1 내지 50_n) 중 하나의 통신 모듈로부터 트리거 신호를 수신한다. 이는 특히 전술한 버스 가입자(60) 내에, 직접 메모리 액세스에 의해 버스 시스템(12)을 통해 전송되어야 하는 신규 메시지가 입력될 때 수행된다. 트리거 신호의 결과로서는, 도 3을 통해 예시로서 특징 지워진 프로그램 시퀀스가 시작된다. 프로그램 시퀀스를 특성화하는 시작 주소는 제어 장치(42)에서 기지사항(known)이거나, 또는 사전 설정 가능한 조치들, 특히 판독 과정 및/또는 로딩 과정에 의해 결정될 수 있다.3, the direct memory access control device 40 receives a trigger signal from the first bus subscriber 60, for example, from a communication module of one of the communication modules 50_1 to 50_n. This is done especially when a new message is entered into the bus subscriber 60, described above, which should be sent via bus system 12 by direct memory access. As a result of the trigger signal, the program sequence characterized by way of example in Fig. 3 begins. The starting address that characterizes the program sequence may be known at the control device 42, or may be determined by pre-configurable measures, particularly a reading process and / or a loading process.

도 3으로 도시된 예시에서, 제어 장치(42)[또는 프로그래밍 가능 처리 유닛(44)]는 하기 매개변수들 중 하나 이상의 매개변수를 포함하는 하나 이상의 매개변수 집합을 로딩하여 버스 시스템(12)의 버스 가입자(60)의 데이터의 분석 및/또는 전송을 위해 이용하도록 형성된다.3, the controller 42 (or the programmable processing unit 44) may load one or more sets of parameters, including one or more of the following parameters, For transmission and / or analysis of the data of the bus subscriber 60. [

- 검색 특징, 특히 프로토콜 정보 및/또는 CAN-ID(Controller Area Network Identity);- search features, in particular protocol information and / or CAN-ID (Controller Area Network Identity);

- 검색 위치, 특히 오프셋 주소;- search locations, especially offset addresses;

- 각각의 검색 특징의 길이;The length of each search feature;

- 반복 단계들 또는 검색 실행들의 사전 설정 가능한 횟수;A preset number of iterations or search runs;

- 데이터의 하나 이상의 섹션의 전송을 위한 타깃 주소.- the target address for the transmission of one or more sections of data.

전술한 매개변수들의 로딩은 도 3에서 블록(204)을 통해 특성화된다. 후행하는 블록(206)에서는, 각각 로딩된 검색 위치에 대한 산술 및/또는 논리 연산에 의해 각각의 검색 특징에 대한 (신규) 주소가 결정된다. 예컨대 도 2에 표시된 필드(1)("제1 실행")를 위해 상기 비트 필드(TPID 125)의 길이는 로딩된 매개변수 집합을 통해 확인되며, 그로 인해 후행하는 블록(208)에서는 필드(1)를 통해 특징 지워지는 정보, 예컨대 값 "0x8100"이 판독될 수 있다.The loading of the parameters described above is characterized via block 204 in FIG. In a following block 206, a (new) address for each search feature is determined by arithmetic and / or logic operations on the respective loaded search locations. For example, the length of the bit field (TPID 125) for field 1 ("first execution") shown in FIG. 2 is ascertained through a loaded set of parameters, ), For example, the value "0x8100" may be read.

후행하는 질의 블록(210)에서, 판독된 정보(0x8100)는 각각의 검색 특징과 비교된다. 필요한 경우, 이를 위해, 일치가 식별될 때까지 단계별로 수행되는 다수의 비교가 필요할 수 있다. 이는 도 3에서 예시로서 3개의 추가 질의 블록(212, 214 및 216)을 통해 도시되어 있다.In the following query block 210, the read information (0x8100) is compared with each search feature. If necessary, for this, a number of comparisons performed step-by-step until a match is identified may be required. This is illustrated by way of example in FIG. 3 with three additional query blocks 212, 214 and 216.

또한, 블록들(204, 206, 208, 210, 212, 214, 216, 218 및 220)(계속하여 하기 내용 참조)에 의해 방법도 기재되며, 제어 장치(42)의 프로그래밍에 따라 버스 시스템(12)의 버스 가입자(60)의 데이터가 분석되거나, 또는 제어 장치(42)의 프로그래밍에 따라 데이터는 하나 이상의 직접 메모리 액세스의 이용하에 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 전송된다.A method is also described by means of blocks 204, 206, 208, 210, 212, 214, 216, 218 and 220 (see below) The data of the bus subscriber 60 of the first bus subscriber 60 may be analyzed or the data may be transferred from the first bus subscriber 60 via the bus system 12 to one or more And is transmitted to the second bus subscriber 60.

상기 절차의 "깊이", 특히 질의 블록들(210, 212, 214 및 216)에 따라 단계별로 수행될 상기 비교들의 횟수는 예컨대 구성될 수 있는데, 그 이유는 예상 프로토콜들이 이미 공지되어 있기 때문이다. 그 대안으로, 깊이는 예컨대 그 후 획득되는, 데이터 분석의 중간 결과들, 및/또는 기타 인자들(factor)에 따라서도 결정될 수 있다. 일치성이 식별되지 않는 경우, 각각의 프로토콜은 "미지(unknown)"의 프로토콜로서 식별된다. 그로 인해서, 특정한 하기 반응들, 예컨대 처리 유닛들(20_1 내지 20_n) 중 하나의 처리 유닛 및/또는 직접 메모리 액세스 제어 장치(40) 또는 제어 장치(42) 또는 프로그래밍 가능 처리 유닛(44)으로 버스 가입자들(60) 중 하나의 버스 가입자에 대한 인터럽트 요청("에러 인터럽트")을 위한 에러 비트("에러 플래그")의 설정이 수행될 수 있다. 이는 도 3에서 블록(218)을 통해 도시되어 있다.The number of comparisons to be performed step by step in accordance with the "depth" of the above procedure, especially query blocks 210, 212, 214 and 216, can be configured, for example, because anticipated protocols are already known. Alternatively, the depth can also be determined according to, for example, intermediate results of data analysis obtained afterwards, and / or other factors. If no correspondence is identified, each protocol is identified as an "unknown " protocol. Thereby, it is possible to transfer the specific sub-reactions, for example the processing unit of one of the processing units 20_1 to 20_n, and / or the bus subscriber, to the direct memory access controller 40 or controller 42 or the programmable processing unit 44, ("Error flag") for an interrupt request ("error interrupt") to one of the bus subscribers 60 can be performed. This is illustrated via block 218 in FIG.

제1 검색 특징("검색 기준")이 결정된 후에, 후행하는 질의 블록(220)에서는, [예컨대 도 2의 이더넷 프레임(100)의] 데이터가 거의 당해 시점에 직접 메모리 액세스에 의해 버스 시스템(12)을 통해 제2 버스 가입자(60)의 타깃 주소로 전송되어야 하는지가 검사된다. 이런 검사는 예컨대 이미 수행된 반복 단계들 또는 검색 실행들의 횟수에 따라 수행될 수 있거나, 구성 정보, 또는 블록(204) 내에 로딩된 매개변수들에 따라 수행될 수 있다. 전술한 반복 단계들은 도 3에서 질의 블록(220)의 출력단과 블록(204)의 입력단 사이의 경로(222)에 상응하게 수행된다.After the first search feature (the "search criteria") is determined, in the following query block 220, the data of the Ethernet frame 100 To the target address of the second bus subscriber 60 is checked. Such checking may be performed, for example, according to the number of iterations or search operations already performed, or may be performed according to configuration information, or parameters loaded within block 204. [ The above-described iterative steps are performed in accordance with path 222 between the output of query block 220 and the input of block 204 in FIG.

"최종적인" 검색 특징이 여전히 확인되지 않는 경우에는, 경로(222)의 통과 후에, 하나 이상의 추가 매개변수 집합 또는 매개변수의 로딩, 및 질의 블록(210) 및 경우에 따른 질의 블록들(212, 214 및 216)에 의한 추가 비교들의 수행이 실시된다. 이를 보충하여, 도 3에서 원기호 안에 표시된 숫자 "2" 및 "3"을 참조한다("추가 실행 2 및 3").If the " final "search feature is still not identified, then after the passage of path 222, loading of one or more additional parameter sets or parameters, and query block 210 and optional query blocks 212, 214 and 216 are performed. In addition, reference is made to the numbers "2" and "3" indicated in the circles in Fig. 3 ("Additional Runs 2 and 3").

예컨대 검색된 프로토콜은 검색 특징 "0x86DD"를 갖는 이더넷 유형 IPv6에 상응할 수 있다.For example, the retrieved protocol may correspond to an Ethernet type IPv6 having the search feature "0x86DD ".

경로(222)를 통한 (추가) 반복 단계들이 필요하지 않는다면, 프로그램 시퀀스는 질의 블록(220)에서 출발하여 후행하는 블록(224)으로 분기된다. 블록(224)에서는 직접 메모리 액세스 제어 장치(40)의 구성이 수행되며, 상기 구성은 하기 변수들을 포함한다.If no (additional) iterative steps through path 222 are required, then the program sequence begins at query block 220 and branches to trailing block 224. [ At block 224, the configuration of direct memory access controller 40 is performed, and the configuration includes the following variables.

- 특히 산술 및/또는 논리 연산의 이용하에, 기지의 시작 주소와 예컨대 앞서 구성된 오프셋 주소로부터 결정되는 소스 주소. 이 경우, 오프셋 주소는 예컨대 검색 특징에 따라 사전 설정되거나, 또는 검색 특징에 따라 결정된다. 이는, 바람직하게는 예컨대 고려된 데이터의 특정 부분만 전송될 수 있게 하고 관련이 없는 부분들(예: 헤더 등)은 배제될 수 있게 한다. 바람직하게 오프셋 주소는 블록(204) 내에 로딩된 매개변수에 의해 특성화된다.A source address determined from a known start address and, for example, an offset address constructed in advance, especially using arithmetic and / or logic operations. In this case, the offset address is preset, for example, according to the search feature, or is determined according to the search feature. This preferably allows, for example, only certain portions of the considered data to be transmitted, and allows unrelated portions (e.g., headers, etc.) to be excluded. Preferably, the offset address is characterized by a parameter loaded in block 204.

- 검색 특징에 따라 사전 설정되거나 결정되는 타깃 주소. 바람직하게 타깃 주소는 블록(204) 내에 로딩된 매개변수를 통해 특성화된다.- Target address that is preset or determined based on search characteristics. Preferably, the target address is characterized by a parameter loaded in block 204. [

- 데이터의 각각 전송할 바이트의 개수. 일 실시형태에서, 상기 개수는 직접적으로 도 2에서 숫자 "4"로 표시된 필드에 상응하면서 도 2에 도시된 페이로드 길이(146)에 상응한다. 일 추가 실시형태에서, 전술한 개수는 산술 및/또는 논리 연산의 이용하에 오프셋에 의해 결정된다. 예컨대 상기 오프셋은 블록(204) 내에 로딩된 매개변수를 통해 특성화된다.- The number of bytes to transfer each of the data. In one embodiment, the number corresponds directly to the payload length 146 shown in FIG. 2, corresponding to the field indicated by the number "4" in FIG. In one further embodiment, the above-described number is determined by an offset under the use of arithmetic and / or logic operations. For example, the offset is characterized via a parameter loaded in block 204. [

직접 메모리 액세스 제어 장치(40)가 블록(224)에서 구성된 후에, 후행하는 블록(226)에서는, 하나 이상의 직접 메모리 액세스의 이용하에 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 제2 버스 가입자(60)로 데이터의 전송이 수행된다. 이 경우, 데이터는 마지막에 사전 설정 가능한 "전용" 기억 영역 내로, 또는 순환 버퍼로서 구성된 기억 영역 내로 전송될 수 있다. 여기서 상기 기억 영역은 각각 예컨대 주기억 장치(30)이거나, 로컬 메모리들(30_1 내지 30_n) 중 하나의 로컬 메모리일 수 있다(도 1 참조). 데이터의 전송이 각각 전용 기억 영역 내로 수행되는지, 또는 순환 버퍼 내로 수행되는지 그 여부의 선택("엔트리 유형")은 예컨대 블록(204) 내에 로딩된 매개변수에 의해 사전 설정될 수 있다.After the direct memory access control device 40 is configured in block 224, a following block 226 is used to transfer a second memory address from the first bus subscriber 60 via the bus system 12, The transmission of data to the bus subscriber 60 is performed. In this case, the data may be transferred into the last "dedicated" storage area that can be preset, or into a storage area configured as a circular buffer. Here, the storage areas may be, for example, the main memory 30 or one of the local memories 30_1 to 30_n (refer to FIG. 1). ("Entry type") of whether the transfer of data is performed in a dedicated storage area or in a circular buffer, respectively, may be predetermined, for example, by parameters loaded in block 204. [

일 실시형태에서, 제어 장치(42)는, 직접 메모리 액세스에 의해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 전송될 데이터가 단지 부분적으로만 전송되도록 프로그래밍된다. 특히 이는 제2 버스 가입자(60)("타깃 모듈") 내에서 요구되지 않는 정보들, 예컨대 요구되지 않는 헤더 정보들 및/또는 요구되지 않는 프로토콜들의 생략에 의해 수행된다.In one embodiment, the controller 42 is programmed such that data to be transferred from the first bus subscriber 60 to the one or more second bus subscribers 60 by direct memory access is transmitted only partially. In particular, this is done by omitting information that is not required in the second bus subscriber 60 (the "target module"), e.g., header information that is not required and / or protocols that are not required.

데이터가 블록(226)에서 직접 메모리 액세스에 의해 전송된 후에, 선택에 따라 하기의 하나 또는 복수의 추가 조치가 수행될 수 있다.After the data is transferred by direct memory access at block 226, one or more additional measures may be performed as follows:

- 각각의 처리 유닛(20_1 내지 20_n)으로 인터럽트 요청("interrupt")의 전송, 또는 데이터의 수행된 전송이 통지되어야 하는 기타 버스 가입자(60)에게 대응하는 신호의 전송;Transmission of an interrupt request ("interrupt") to each of the processing units 20_1 to 20_n, or transmission of signals corresponding to other bus subscribers 60 to which the performed transmission of data should be notified;

- 트리거 정보들 및/또는 시그널링 비트들("flags")의 삭제;Deleting trigger information and / or signaling bits ("flags");

- 데이터가 이더넷 프로토콜을 통해 특징 지워져 있다면, 이른바 "디스크립터(descriptor)"의 릴리스;- if the data is characterized via the Ethernet protocol, the release of so-called "descriptors";

- 주기억 장치(30) 또는 로컬 메모리들(30_1 내지 30_n) 내의 기억 영역의 릴리스; 및/또는Release of storage areas in the main memory 30 or the local memories 30_1 to 30_n; And / or

- 데이터의 수행된 전송의 통지를 위한 시그널링 비트("new flag")의 설정.- the setting of the signaling bit ("new flag") for the notification of the performed transmission of data.

일 실시형태에서, 직접 메모리 액세스 제어 장치(40)는, 버스 가입자(60)의 데이터에서 정보들을 결정하고 이 정보들에서 데이터의 각각 전송할 섹션의 길이를 결정하여 기준 값과 비교하도록 형성된다. 이를 통해 동시에 상응하는 방법 단계들도 특성화된다. 길이 정보 및 기준 값에 의해 에러들 및/또는 고의적인 조작이 방지될 수 있다.In one embodiment, the direct memory access control device 40 is configured to determine information in the data of the bus subscriber 60 and to determine the length of each section of the data to be transmitted in the data, and to compare it with a reference value. Whereby corresponding method steps are also characterized at the same time. Errors and / or deliberate manipulation can be prevented by the length information and the reference value.

버스 가입자(60)의 전술한 데이터는 전술한 정보들을 결정하기 위해 선택에 따라 일부만 또는 완전히 직접 메모리 액세스 제어 장치(40)에 의해 판독될 수 있거나, 직접 메모리 액세스 제어 장치(40) 및/또는 주기억 장치(30) 내에 일시적으로 저장될 수 있다. 일 실시형태에서, 정보들의 결정 및/또는 길이의 결정은 반복해서 수행된다.The foregoing data of the bus subscriber 60 may be read by some or all of the direct memory access controller 40 as a selection to determine the above described information or may be read directly by the memory access controller 40 and / And may be temporarily stored in the device 30. [ In one embodiment, determination of the information and / or determination of length is performed iteratively.

일 실시형태에서, 직접 메모리 액세스 제어 장치(40)는, 하기 조치들 중에서 하나 이상의 조치를 수행하도록 형성된다.In one embodiment, direct memory access controller 40 is configured to perform one or more of the following actions.

- 제1 버스 가입자(60)로부터 트리거 신호의 수신;Receiving a trigger signal from the first bus subscriber 60;

- 트리거 신호에 따라 제1 버스 가입자(60)의 메모리 또는 주기억 장치(30)에서 직접 메모리 액세스에 의해 전송될 데이터의 수신 또는 판독;Receiving or reading data to be transmitted by the memory access of the first bus subscriber 60 or by direct memory access in the main memory 30 according to the trigger signal;

- 데이터의 적어도 일부분의 분석;- analysis of at least a portion of the data;

- 제2 버스 가입자(60)의 타깃 메모리를 위한 메모리 조직을 특성화하는 엔트리 유형의 결정, 및 결정된 엔트리 유형에 따라 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 제2 버스 가입자(60)의 타깃 메모리 내로의 데이터의 전송.- determining the type of entry for the target memory of the second bus subscriber (60), and determining the type of entry for the first bus subscriber (60) via the bus system (12) using one or more direct memory accesses according to the determined entry type ) Into the target memory of the second bus subscriber (60).

선택에 따라서, 전송할 데이터("payload")가 복수의 데이터 세그먼트로 구성된다면, 제1 버스 가입자(60) 내에, 또는 주기억 장치(30) 내에 존재하는 데이터 블록[메시지, 프레임, 이더넷 프레임(100)]에서의 추가 전송들이 실행될 수 있다(계속해서 도 6 참조). 이는 도 3에 질의 블록(228)을 통해 특징 지워져 있다. 데이터 내에 복수의 데이터 세그먼트가 존재한다면, 또는 복수의 데이터 세그먼트가 서로 상이하게 처리되어야 한다면, 프로그램 시퀀스에서 경로(230) 및 경로(222)를 통해 다시 블록(204)의 시작 지점으로 분기가 수행된다. 그렇지 않은 경우, 경로(232)를 통해 블록(234)으로 분기되며(기호 "4"), 이 블록을 이용하여 사전 설정 가능한 조치들이 실행될 수 있다.If a data block (message, frame, Ethernet frame 100, etc.) existing in the first bus subscriber 60 or in the main storage device 30 is selected if the data to be transmitted ("payload" Can be performed (see FIG. 6). This is characterized by query block 228 in FIG. If there are a plurality of data segments in the data, or if a plurality of data segments are to be processed differently, branching is performed from the program sequence through path 230 and path 222 back to the start point of block 204 . Otherwise, it branches to block 234 via the path 232 (symbol "4") and the pre-configurable actions can be performed using this block.

데이터 세그먼트들의 서로 상이한 처리는 예컨대 이른바 "SOME/IP 프로토콜"에서 가능하며, 예컨대 CAN 데이터(CAN: "컨트롤러 영역 네트워크") 또는 플렉스레이 데이터의 터널링(tunneling)이 수행될 수 있다. 이 경우, 상이한 데이터 세그먼트들은 상이한 타깃 주소들로 전송될 수 있으며, 예컨대 로컬 메모리들(30_1 내지 30_n)로 전송될 수 있다(도 1 참조). 이는, 타깃 주소가 각각의 검색 특징을 통해 특징 지워져 있기 때문에 가능하다. 이에 대해서는 도 3의 블록(204)에서 매개변수 집합들의 (재)로딩이 참조된다. 최종 전송의 종료 후에, 구성된 조치는 직접 메모리 액세스 제어 장치(40)를 통해 실행될 수 있다[예컨대 블록(234) 참조]. "플렉스레이"는 자동차에서 이용을 위한 직렬의 결정론적 무정지형 필드버스 시스템(serial, deterministic and fault-tolerant fieldbus system)에 대한 명칭이다.Different processing of data segments is possible, for example, in the so-called "SOME / IP protocol ", for example, CAN data (CAN:" controller area network ") or tunneling of FlexRay data can be performed. In this case, different data segments may be sent to different target addresses, e.g., to local memories 30_1 to 30_n (see FIG. 1). This is possible because the target address is characterized by each search feature. This is referred to (reloading) of the parameter sets in block 204 of FIG. After the end of the final transfer, the configured action may be executed via the direct memory access controller 40 (see e.g. block 234). "Flexray" is the name for a serial deterministic and fault-tolerant fieldbus system for use in automobiles.

직접 메모리 액세스 제어 장치(40)가 전송을 시작하기 전에, 또 다른 실시형태들에서는, 예컨대 이더넷 프레임에서 이른바 에러 플래그를 점검할 수 있다(이에 대해서는 도 4 참조). 도 4에 따라서, 질의 블록(402)은 도 3의 기호 "3"에 배치되며, 프로그램 시퀀스는 그 대안으로 도 3의 질의 블록(220)의 입력단으로, 또는 블록(234)의 입력단으로 분기될 수 있다.In other embodiments, for example, in the Ethernet frame, a so-called error flag can be checked (see Figure 4 for this) before the direct memory access controller 40 starts transmitting. 3, query sequence 402 may alternatively branch to the input of query block 220 of FIG. 3 or to the input of block 234 .

전술한 에러 플래그가 에러를 시그널링한다면, 블록(234)(도 3)으로 분기되어 에러에 적합한 조치가 수행된다. 예컨대 블록(234)에서 이더넷 데이터의 전송 동안 에러가 있는 경우 추가 전송을 위한 디스크립터가 릴리스될 수 있고, 그런 다음 블록(202)의 시작 지점으로 다시 분기되어 그곳에서 후행하는 트리거 신호를 대기할 수 있다. 그렇지 않으면, 질의 블록(402)으로부터 질의 블록(220)의 입력단으로 분기되고 프로그램 시퀀스는 계속하여 앞에서 이미 기재한 것처럼 수행된다.If the above-mentioned error flag signals an error, branch to block 234 (FIG. 3) and an appropriate action for the error is performed. For example, if there is an error during the transmission of Ethernet data at block 234, the descriptor for further transmission may be released and then branch back to the beginning of block 202 to wait for a trailing trigger signal there . Otherwise, it branches from the query block 402 to the input of the query block 220 and the program sequence continues to be performed as previously described previously.

또한, 추가 조치들도 생각해볼 수 있다. 예컨대 또 다른 실시형태들의 경우 에러 플래그가 존재할 때 에러가 있는 데이터("프레임")는 그럼에도 분석을 위해 제2 버스 가입자(60)("타깃 주소")로, 그리고/또는 또 다른 타깃 주소로 전송될 수도 있다. 직접 메모리 액세스 제어 장치(40)는 임베딩된 프로토콜에서 전송할 바이트의 개수를 식별하기 때문에, 직접 메모리 액세스 제어 장치(40)는 디스크립터에 의해 통지된 바이트 개수의 타당성 검사를 수행할 수 있다. 이는 바람직하게는 예컨대 제어 장치(42)의 부분일 수 있는 하드웨어 회로를 이용하여 시작 주소 및 종료 주소를 모니터링하는 것을 통해 수행된다.In addition, additional measures may be considered. ("Frame"), for example, in the presence of an error flag in the case of other embodiments, may still transmit to the second bus subscriber 60 (the "target address") and / . Since the direct memory access control apparatus 40 identifies the number of bytes to be transferred in the embedded protocol, the direct memory access control apparatus 40 can perform the plausibility check of the number of bytes notified by the descriptor. This is preferably done, for example, by monitoring the start address and end address using a hardware circuit that may be part of the control device 42.

그 밖에도, 시작 주소의 타당성 검사가 수행될 수 있다. 이를 위해, 직접 메모리 액세스에 의한 전송을 위해 결정된 소스 주소는 데이터의 원래의 시작 주소와 비교된다. 이 경우, 예컨대 소스 주소는 시작 주소보다 작지 않아야 한다. 침해는 각각의 데이터에 대한 상태 레지스터 내 에러 플래그를 통해 시그널링될 수 있다. 상태 레지스터는 직접 메모리 액세스 제어 장치(40) 내에, 그리고/또는 기타 버스 가입자(60) 내에 위치할 수 있다.In addition, a validity check of the start address can be performed. To this end, the source address determined for direct memory access transmission is compared with the original starting address of the data. In this case, for example, the source address should not be smaller than the start address. The infringement can be signaled via an error flag in the status register for each data. The status register may be located within direct memory access controller 40 and / or within other bus subscriber 60.

도 5에는, 제1 버스 가입자로부터 제2 버스 가입자(60)로 데이터의 전송을 위한 종료 주소의 선택에 따른 모니터링 또는 타당성 검사가 도시되어 있다.In FIG. 5, a selection or validity check according to the selection of an end address for transmission of data from a first bus subscriber to a second bus subscriber 60 is shown.

도 5에 따라서, 질의 블록(502)은 도 3의 기호 "2"에 배치되며, 프로그램 시퀀스는 예컨대 그 대안으로 도 3의 질의 블록(210)의 입력단으로, 또는 도 5에 도시된 블록(504)의 입력단으로 분기될 수 있다. 종료 주소가 결정되어야 하는 경우에는, 블록(504)으로 분기되고 그런 후에 블록(504)으로부터 다시 도 3의 블록(204)의 시작 지점으로 분기되며(기호 "1"), 블록(204)에는 종료 주소의 모니터링을 위한 상응하는 매개변수들이 로딩된다. 그렇지 않으면, 질의 블록(502)으로부터 질의 블록(210)의 시작 지점으로 분기되며 프로그램 시퀀스는 계속해서 전술한 것처럼 진행된다.3, the program sequence may be stored, for example, as an input to the query block 210 of FIG. 3 or as a block 504 of FIG. 5 As shown in FIG. If the end address is to be determined, then it branches to block 504 and then branches back from block 504 to the beginning of block 204 of FIG. 3 (symbol "1"), Corresponding parameters for monitoring the address are loaded. Otherwise, it branches from the query block 502 to the beginning of the query block 210, and the program sequence continues as described above.

예컨대 이더넷 메시지가 디스크립터를 이용하여, 예컨대 주기억 장치(30)("외부 RAM") 내로 전송된 후, 수신된 바이트의 각각의 개수가 이를 위해 제공된 상태 레지스터("상태 정보") 내에 기록된다. 직접 메모리 액세스 제어 장치(40)는 상기 상태 정보들을 판독하여 이 상태 정보들에서 각각의 데이터("메시지")의 종료 주소를 결정할 수 있다.For example, after an Ethernet message is transmitted into the main memory 30 ("external RAM") using a descriptor, the number of each of the received bytes is written into a status register ("status information" The direct memory access control device 40 can read the status information and determine the end address of each piece of data ("message") in the status information.

종료 주소의 모니터링은 예컨대 하기와 같이 수행될 수 있다. 맨 먼저, 계속하여 앞에서 이미 기재한 것처럼 기호 "1"에서 출발하여 블록들(204, 206 및 208)을 경유하여 도 3의 기호 "2"까지 프로그램 시퀀스가 제공된다. 그런 후에, 도 5의 질의 블록(502)에서, 종료 주소가 결정되어야 하는지 그 여부에 대해 선택에 따른 질의가 수행된다. 이런 방식으로 전송할 데이터에 대한 종료 주소가 결정될 수 있다. 마지막에 실행된 전송에 대한 각각의 주소는 직접 메모리 액세스 제어 장치(40) 내에서 기지사항이기 때문에, 직접 메모리 액세스 제어 장치(40)의 하드웨어 회로는 상기 주소를 종료 주소와 비교할 수 있다. 현재 주소가 종료 주소를 넘어설 경우에는, 에러 메시지가 발생할 수 있다.Monitoring of the end address may be performed, for example, as follows. First, a program sequence is provided up to the symbol "2" in FIG. 3 via blocks 204, 206 and 208 starting from the symbol "1 " Then, at query block 502 of FIG. 5, an optional query is made as to whether an end address should be determined. In this way the end address for the data to be transferred can be determined. Because each address for the last executed transfer is known within the direct memory access controller 40, the hardware circuitry of the direct memory access controller 40 may compare the address to the end address. If the current address exceeds the end address, an error message may occur.

도 6에는, 버스 시스템(12)과 연결된 처리 유닛들(20_1 내지 20_n)의 각각의 로컬 메모리들(30_1 내지 30_n)에 대한 이더넷 프레임(100')의 데이터 섹션들의 예시의 할당이 도시되어 있다.6 shows an example assignment of data sections of the Ethernet frame 100 'to the respective local memories 30_1 to 30_n of the processing units 20_1 to 20_n connected to the bus system 12. [

이더넷 프레임(100')의 도시된 요소들은 하기에 자신들의 도면부호와 함께 열거된다.The depicted elements of the Ethernet frame 100 'are listed below with their reference numerals.

- 이더넷 헤더 132';- Ethernet header 132 ';

- IP 헤더 153';- IP header 153 ';

- UDP 헤더 602; (UDP: "User Datagram Protocol")- UDP header 602; (UDP: User Datagram Protocol)

- SOME/IP 패킷 1 604;- SOME / IP packet 1 604;

- SOME/IP 패킷 2 606;- SOME / IP packet 2 606;

- SOME/IP 패킷 N 608- SOME / IP packet N 608

화살표들(610)은 버스 시스템(12)을 통해 로컬 메모리들(30_1, 30_2 및 30_n)로 직접 메모리 액세스에 의해 수행되는 SOME/IP 패킷들(604, 606 및 608)의 전송에 대한 예시의 할당을 지시하고 있다. 이 경우, 도 3의 흐름도에 대응하는 방법이 이용된다.Arrows 610 represent an example assignment for the transmission of SOME / IP packets 604, 606 and 608 performed by direct memory access to local memories 30_1, 30_2 and 30_n via bus system 12 . In this case, a method corresponding to the flowchart of Fig. 3 is used.

도 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 전송(들)의 분석을 실행할 수 있다.In Fig. 7, a first further embodiment of a communication module 50 'is shown. Here, the direct memory access control apparatus 40 according to the present invention is integrated in the communication module 50 '. The element 50_x shown inside the communication module 50 'in FIG. 7 corresponds to one of the communication modules 50_1 to 50_n in FIG. The bus system 12 operates as an internal bus 12'in the communication module 50' so that the communication module 50_x and the direct memory access controller 40 are connected to the bus system 12 in parallel do. Even in this case, the direct memory access control apparatus 40 according to the present invention including the programmable control apparatus preferably includes, as described above with reference to Figures 1 to 6, data (module 50 ' ) And / or the analysis of the DMA transfer (s). ≪ / RTI >

도 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 전송(들)의 분석을 실행할 수 있다.8 shows a second further embodiment of the communication module 50 ". The direct memory access control device 40 according to the present invention is integratedly disposed within the communication module 50 ". 7, this is done in such a way that the bus system 12 is connected only to the communication module 50_x only through the direct memory access controller 40. [ The internal bus 12 "connects the communication module 50_x, which corresponds to one of the communication modules 50_1 to 50_n in Fig. 1, and the direct memory access control device 40, as shown in Fig. , A direct memory access control apparatus 40 according to the present invention including a programmable controller is preferably configured to store the local data of the data (module 50 " (Or data of another bus subscriber 60) and / or an analysis of the DMA transfer (s).

한 바람직한 실시형태에서, 도 7 및 도 8의 통신 모듈들(50' 또는 50" 또는 50_x)은 이더넷 통신 모듈에 상응한다. 또 다른 바람직한 실시형태들의 경우, 이더넷 유형의 전술한 모듈들과는 다른 통신 모듈들도 생각해볼 수 있다.In one preferred embodiment, the communication modules 50 'or 50 "or 50_x of Figures 7 and 8 correspond to an Ethernet communication module. In yet another preferred embodiment, a communication module other than the aforementioned modules of the Ethernet type You can also think.

프로그래밍 가능 제어 장치(42)를 포함한 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는 바람직하게는 버스 가입자들(60) 간의 유연한 데이터 분석들 및/또는 DMA 전송들을 가능하게 하며, 상응하는 프로그래밍을 통해서는 분석 또는 DMA 전송의 특정 시퀀스가 수정될 수 있다. 또한, 예컨대, 상기 방식으로, 직접 메모리 액세스 제어 장치(40)에 의해 실행될 데이터 분석 또는 데이터 전송은 향후에 비로소 정의될 통신 프로토콜들에도 매칭될 수 있다. 또한, 특히 바람직하게 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는 복수의 프로토콜 계층을 넘어서 (인터리빙) 데이터 패킷들의 유연한 심층 분석(deep packet inspection)도 가능하게 하며, 예컨대 관계없는 헤더 데이터도 사전 설정 가능한 프로토콜 계층들에서 배제될 수 있고, 그에 따라 예컨대 하나 또는 복수의 수신 측 버스 가입자(60)로의 DMA 전송의 범주에서 고려되지 않아도 된다.Direct memory access control device 40 in accordance with the present invention, including programmable control device 42, preferably enables flexible data analyzes and / or DMA transfers between bus subscribers 60, Through this, a particular sequence of analysis or DMA transmission can be modified. Also, for example, in this manner, the data analysis or data transfer to be performed by direct memory access control device 40 may also be matched to communication protocols to be defined in the future. Also, particularly preferably, the direct memory access control apparatus 40 according to the present invention enables flexible deep packet inspection of data packets (interleaving) across a plurality of protocol layers, May be excluded from configurable protocol layers and thus not considered in the context of DMA transmissions to one or more receiving-side bus subscribers 60, for example.

Claims (12)

복수의 버스 가입자(60)를 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)를 연결하기 위한 단자(41)와, 직접 메모리 액세스 제어 장치(40)의 작동을 제어하기 위한 제어 장치(42)를 구비한 직접 메모리 액세스 제어 장치(40)에 있어서,
상기 제어 장치(42)는 프로그래밍될 수 있는 것을 특징으로 하는, 직접 메모리 액세스 제어 장치(40).
A terminal 41 for connecting the bus system 12 connecting the plurality of bus subscribers 60 with the direct memory access control apparatus 40 and a control unit 40 for controlling the operation of the direct memory access control apparatus 40. [ (42), the direct memory access control device (40)
Characterized in that the control device (42) is programmable.
제1항에 있어서, 직접 메모리 액세스 제어 장치(40)는, 제어 장치(42)의 프로그래밍에 따라 버스 시스템(12)의 버스 가입자(60)의 데이터(100; 100')를 분석하도록 형성되는, 직접 메모리 액세스 제어 장치(40).The direct memory access control apparatus (40) according to claim 1, wherein the direct memory access control apparatus (40) is configured to analyze data (100; 100 ') of a bus subscriber (60) of the bus system (12) Direct memory access control device (40). 제1항 또는 제2항에 있어서, 직접 메모리 액세스 제어 장치(40)는, 제어 장치(42)의 프로그래밍에 따라 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 데이터(100; 100')를 전송하도록 형성되는, 직접 메모리 액세스 제어 장치(40).A direct memory access control apparatus (40) according to any one of the preceding claims, wherein the direct memory access control apparatus (40) is adapted to control the first bus subscriber (60) via the bus system (12) ) To at least one second bus subscriber (60). ≪ / RTI > 제1항 또는 제2항에 있어서, 프로그래밍 가능 제어 장치(42)는 프로그래밍 가능 처리 유닛(44)을 포함하는, 직접 메모리 액세스 제어 장치(40).3. Direct memory access control apparatus (40) according to claim 1 or 2, wherein the programmable control device (42) comprises a programmable processing unit (44). 제1항 또는 제2항에 있어서, 제어 장치(42)는,
- 검색 특징;
- 검색 위치;
- 각각의 검색 특징의 길이;
- 반복 단계들 또는 검색 실행들의 사전 설정 가능한 횟수; 및
- 데이터(100; 100')의 하나 이상의 섹션을 전송하기 위한 타깃 주소;
와 같은 매개변수들 중 적어도 하나를 포함하는 하나 이상의 매개변수 집합을 로딩하여, 버스 시스템(12)의 버스 가입자(60)의 데이터(100; 100')의 분석 및/또는 전송을 위해 이용하도록 형성되는, 직접 메모리 액세스 제어 장치(40).
The control device (42) according to claim 1 or 2,
- Search features;
- search location;
The length of each search feature;
A preset number of iterations or search runs; And
- a target address for transmitting one or more sections of data (100; 100 ');
(E.g., the bus subsystem 60) to one or more of a set of parameters including at least one of the following parameters: < RTI ID = 0.0 & A direct memory access control device (40).
제1항 또는 제2항에 있어서, 직접 메모리 액세스 제어 장치(40)는, 버스 가입자(60)의 데이터(100; 100')에서 정보들을 결정하고, 이 정보들에서 상기 데이터(100; 100')의 각각 전송할 섹션의 길이를 결정하여 기준 값과 비교하도록 형성되는, 직접 메모리 액세스 제어 장치(40).3. A direct memory access control device (40) according to claim 1 or 2, wherein the direct memory access control device (40) determines the information in the data (100; 100 ') of the bus subscriber (60) ), And to compare the length of the section to be transmitted with the reference value. 제1항 또는 제2항에 있어서, 직접 메모리 액세스 제어 장치(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).
The direct memory access control device (40) according to claim 1 or 2,
- receiving (202) a trigger signal from the first bus subscriber (60);
- Data (100; 100 ') to be transferred by direct memory access in the memories (30_1, 30_2, 30_n) of the main memory (30) or the first bus subscriber (60) according to one trigger signal or the trigger signal Receive or read (208);
- determining an entry type characterizing the memory organization for the target memory (30; 30_1, 30_2, 30_n) of the second bus subscriber (60), and using the one or more direct memory accesses according to the determined entry type (100; 100 ') from the first bus subscriber (60) to the target memory (30; 30_1, 30_2, 30_n) of the second bus subscriber (60)
Direct memory access control device (40) is configured to perform one or more of the actions.
제1항 또는 제2항에 있어서, 제어 장치(42)는 직접 메모리 액세스 제어 장치(40)의 집적 반도체 회로 내에 통합 배치되는, 직접 메모리 액세스 제어 장치(40).3. Direct memory access control device (40) according to claim 1 or 2, wherein the control device (42) is integrated into the integrated semiconductor circuit of the direct memory access control device (40). 제1항 또는 제2항에 있어서, 직접 메모리 액세스 제어 장치(40)는 하드웨어 회로로서 형성되는, 직접 메모리 액세스 제어 장치(40).3. A direct memory access control apparatus (40) according to claim 1 or 2, wherein the direct memory access control apparatus (40) is formed as a hardware circuit. 복수의 버스 가입자(60)를 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)를 연결하기 위한 단자(41)와, 직접 메모리 액세스 제어 장치(40)의 작동을 제어하기 위한 제어 장치(42)를 구비한 직접 메모리 액세스 제어 장치(40)를 작동하기 위한 방법에 있어서,
상기 제어 장치(42)는 프로그래밍되는 것을 특징으로 하는, 직접 메모리 액세스 제어 장치의 작동 방법.
A terminal 41 for connecting the bus system 12 connecting the plurality of bus subscribers 60 with the direct memory access control apparatus 40 and a control unit 40 for controlling the operation of the direct memory access control apparatus 40. [ A method for operating a direct memory access controller (40) having a memory (42)
Characterized in that the control device (42) is programmed.
제10항에 있어서, 제어 장치(42)의 프로그래밍에 따라 버스 시스템(12)의 버스 가입자(60)의 데이터(100; 100')가 분석되고, 그리고/또는 제어 장치(42)의 프로그래밍에 따라 데이터(100; 100')가 하나 이상의 직접 메모리 액세스를 이용하여 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 전송되는, 직접 메모리 액세스 제어 장치의 작동 방법.11. The method according to claim 10, wherein the data (100; 100 ') of the bus subscriber (60) of the bus system (12) is analyzed according to programming of the controller (42) and / A method of direct memory access control in which data (100; 100 ') is transferred from a first bus subscriber (60) to one or more second bus subscribers (60) via bus system (12) How it works. 제10항 또는 제11항에 있어서, 버스 가입자(60)의 데이터(100; 100')로부터 정보들이 결정되고, 상기 정보들에서 데이터(100; 100')의 각각 전송할 섹션의 길이가 결정되어 기준 값과 비교되는, 직접 메모리 액세스 제어 장치의 작동 방법.12. The method of claim 10 or 11, wherein information is determined from data (100; 100 ') of the bus subscriber (60) and the length of each section of the data (100; 100' Value of the direct memory access control device.
KR1020170081920A 2016-06-29 2017-06-28 Direct memory access control device and operating method for the same KR102354062B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102016211768.8A DE102016211768A1 (en) 2016-06-29 2016-06-29 Memory direct access control device and method of operation therefor
DE102016211768.8 2016-06-29

Publications (2)

Publication Number Publication Date
KR20180002535A true KR20180002535A (en) 2018-01-08
KR102354062B1 KR102354062B1 (en) 2022-01-24

Family

ID=60662535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170081920A KR102354062B1 (en) 2016-06-29 2017-06-28 Direct memory access control device and operating method for the same

Country Status (3)

Country Link
KR (1) KR102354062B1 (en)
CN (1) CN107544928B (en)
DE (1) DE102016211768A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020203663A1 (en) 2020-03-20 2021-09-23 Robert Bosch Gesellschaft mit beschränkter Haftung Integrated circuit, embedded system and automobile

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070082835A (en) * 2006-02-17 2007-08-22 삼성전자주식회사 Direct Memory Access Controls and Methods
KR20090092835A (en) * 2006-12-15 2009-09-01 마이크로칩 테크놀로지 인코포레이티드 Direct Memory Access Controller

Family Cites Families (11)

* Cited by examiner, † Cited by third party
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 (en) * 2005-03-02 2008-01-09 华为技术有限公司 Method for direct memory accessing controller and transmitting data
JP4974078B2 (en) * 2007-07-26 2012-07-11 Necアクセステクニカ株式会社 Data processing device
US7912997B1 (en) * 2008-03-27 2011-03-22 Xilinx, Inc. Direct memory access engine
CN101504633B (en) * 2009-03-27 2012-09-05 无锡中星微电子有限公司 Multi-channel DMA controller
CN102541780B (en) * 2011-12-15 2014-10-22 苏州国芯科技有限公司 Multi-data stream channel DMA (Direct Memory Access) system
DE102012010558A1 (en) * 2012-05-29 2013-12-05 Robert Bosch Gmbh HARDWARE DEVICE FOR A SYSTEM, SYSTEM AND MEMORY ACCESS PROCEDURE

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070082835A (en) * 2006-02-17 2007-08-22 삼성전자주식회사 Direct Memory Access Controls and Methods
KR20090092835A (en) * 2006-12-15 2009-09-01 마이크로칩 테크놀로지 인코포레이티드 Direct Memory Access Controller

Also Published As

Publication number Publication date
KR102354062B1 (en) 2022-01-24
DE102016211768A1 (en) 2018-01-04
CN107544928A (en) 2018-01-05
CN107544928B (en) 2024-03-29

Similar Documents

Publication Publication Date Title
US11474878B2 (en) Extending berkeley packet filter semantics for hardware offloads
CN108370336B (en) Electronic control unit, frame generation method, and recording medium
JP5199399B2 (en) Method and filter arrangement for storing information about messages arriving at a subscriber of the network via a serial data bus of the communication network
US10673650B2 (en) Programmable tunnel creation for hardware-based packet processing
JP6269999B2 (en) Packet processing method and apparatus
US9864606B2 (en) Methods for configurable hardware logic device reloading and devices thereof
WO2022267815A1 (en) Data packet filtering method and apparatus, and electronic device and computer-readable storage medium
WO2020087400A1 (en) Header parsing apparatus and method
CN111193783A (en) Service access processing method and device
KR102354062B1 (en) Direct memory access control device and operating method for the same
CN116016687B (en) Message distribution method and system based on DPDK
CN113553285A (en) Electronic control unit, frame generation method, and recording medium
US10754661B1 (en) Network packet filtering in network layer of firmware network stack
US8812741B2 (en) Management data input/output protocol with page write extension
CN118233062B (en) Method and device for transmitting Ethernet frame
CN114157684A (en) Message processing method, device and storage medium
US7613133B2 (en) Method, system and computer program product for processing packets at forwarder interfaces
US11765102B2 (en) Network device and conversion apparatus
CN117376061B (en) Service access method, device, electronic equipment and storage medium
US20180052805A1 (en) Microcontroller with a diagnosis module and method for accessing said module of said microcontroller
KR20230168963A (en) Electronic circuit for a vehicle
CN119094611A (en) Data communication method, device, computer equipment, storage medium and program product
CN119276954A (en) Message processing device and method, electronic equipment, and network equipment
CN118945149A (en) A management message generation method, device, electronic equipment and medium
CN118842607A (en) Data transmission method, data transmission device, computer equipment, storage medium and program product

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20170628

PG1501 Laying open of application
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20200514

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20170628

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20210721

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20220103

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20220118

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20220119

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20250107

Start annual number: 4

End annual number: 4