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 PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 187
- 238000011017 operating method Methods 0.000 title 1
- 238000012545 processing Methods 0.000 claims description 44
- 238000000034 method Methods 0.000 claims description 21
- 230000009471 action Effects 0.000 claims description 7
- 239000004065 semiconductor Substances 0.000 claims description 6
- 230000008520 organization Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 43
- 238000004458 analytical method Methods 0.000 description 32
- 230000005540 biological transmission Effects 0.000 description 29
- 238000012546 transfer Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 14
- 230000011664 signaling Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
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.
Description
본 발명은 청구항 제1항의 전제부에 따른 직접 메모리 액세스 제어 장치 및 대등의 독립항에 따른 방법에 관한 것이다.The present invention relates to a direct memory access control device according to the preamble of
시중에, 하나 또는 복수의 프로세서 코어를 가지며, 필요한 경우 주기억 장치에 액세스할 수 있는 처리 유닛들, 예컨대 프로세서들이 공지되어 있다. 그 밖에도, 상기 처리 유닛을 하나 또는 복수 개 포함하는 컴퓨터 시스템들은 통상 처리 유닛과 상호작용하는 복수의 추가 유닛, 예컨대 입/출력 모듈("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
본 발명은, 복수의 버스 가입자를 연결하는 버스 시스템과 직접 메모리 액세스 제어 장치를 연결하기 위한 단자와, 직접 메모리 액세스 제어 장치의 작동을 제어하기 위한 제어 장치를 구비한 직접 메모리 액세스 제어 장치에 관한 것이다. 이 경우, 제어 장치는 프로그래밍될 수 있으며, 그럼으로써 공지된 시스템들에 비해 유연성이 증가할 수 있다.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 /
일 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 제어 장치의 프로그래밍에 따라 버스 시스템의 버스 가입자의 데이터를 분석하도록 형성된다. 제어 장치의 프로그래밍을 통해, 데이터는 매우 바람직하고 유연하게 분석될 수 있다. 따라서 특히 전술한 분석을 단계별로 수행할 수 있으며, 일 구현예에서 예컨대 각각 후행하는 분석 단계들은 각각 선행하는 분석 단계들에 기초하여 수행된다. 동일한 방식으로, 추가 실시형태들의 경우, 향후에 정의할 데이터 형식들 또는 프로토콜들을 그에 상응하게 분석(예: 필터링)할 수 있도록 하기 위해, 예컨대 상기 데이터 형식들 또는 프로토콜들에 프로그래밍의 변경을 통해 분석을 조정하는 점도 생각해볼 수 있다.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
그 밖에도, 도 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
일 실시형태에서, 처리 유닛들(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
그 밖에도, 도 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
예컨대 통신 모듈들(50)은 자신들의 각각의 통신 채널(미도시)을 통해 수신된 데이터를 주기억 장치(30) 내에 기록하는데, 그 이유는 통신 모듈들(50)이 데이터를 일반적으로 분명하게 해석할 수 없기 때문이다. 그런 후에, 각각의 통신 모듈(50)은 트리거 신호를 직접 메모리 액세스 제어 장치(40)로 송신할 수 있다[이에 대해서는 계속하여 하기에서 도 3에서의 블록(202) 참조].For example,
또한, 통신 모듈들(50)은 자신들의 각각의 통신 채널을 통해 수신된 데이터를 로컬 메모리(미도시) 내에 적어도 일시적으로 저장할 수 있고 그런 다음 수신된 데이터의 적어도 부분들은 직접 메모리 액세스들의 이용하에 버스 시스템(12)을 통해 하나 또는 복수의 또 다른 버스 가입자로 전송될 수 있다.In addition, the
다시 말해, 도 1에는, 전체적으로, 복수의 버스 가입자(60)를 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)의 연결을 위한 단자와, 직접 메모리 액세스 제어 장치(40)의 작동을 제어하기 위한 제어 장치(42)를 구비한 직접 메모리 액세스 제어 장치(40)를 포함하는 컴퓨터 시스템(10)이 도시되어 있다. 이 경우, 제어 장치(42)는 프로그래밍될 수 있다.In other words, Figure 1 generally shows a terminal for the connection of the direct
일 실시형태에서, 직접 메모리 액세스 제어 장치(40)는, 제어 장치(42)의 프로그래밍에 따라 버스 시스템(12)의 버스 가입자(60)의 데이터를 분석하도록 형성된다.In one embodiment, the direct memory
일 추가 실시형태에서, 직접 메모리 액세스 제어 장치(40)는, 제어 장치(42)의 프로그래밍에 따라서, 하나 이상의 직접 메모리 액세스를 이용하면서 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 데이터를 전송하도록 형성된다.In one additional embodiment, direct memory
여전히 일 추가 실시형태에서, 프로그래밍 가능 제어 장치(42)는 도 1에서 제어 장치(42)의 하부에 파선으로 표시되어 있는 프로그래밍 가능 처리 유닛(44)을 포함한다. 프로그래밍 가능 처리 유닛(44)은 바람직하게는 (그러나 비강제적인 방식으로) 예컨대 제어 장치(42) 내에 존재하는 "자신의" 프로그램 코드 또는 상응하는 프로그램 명령어들을 통해 작동될 수 있으며, 다시 말해 프로그램 코드 또는 프로그램 명령어들은 처리 유닛(44)의 작동 중에 바람직하게는 버스 시스템(12)의 개입 없이 실행될 수 있다. 일 추가 실시형태에서, 제어 장치(42)는, 또한 직접 메모리 액세스 제어 장치(40)를 위한 제어 장치(42)의 기능의 부분들을 실현하기 위해 하나 이상의 상태 기계도 포함할 수 있다.Still in a further embodiment, the
또한, 추가의 바람직한 실시형태들에서, 컴포넌트들(40, 42, 44)은 각각 (또는 그 중 하나만이, 또는 2개만이) 메모리, 특히 로컬 메모리를 포함할 수 있으며, 그럼으로써 예컨대 전술한 프로그램 코드 또는 상응하는 프로그램 명령어들 또는 프로그램들은 관련된 컴포넌트(40, 42, 44)의 (로컬) 메모리에서 실행될 수 있게 된다. 이는 바람직하게는 성능(처리 능력)을 높이며, 그리고 외부 또는 중앙 메모리, 예컨대 플래시 메모리로의 접근들을 감소시키거나 방지하는 점에 기여할 수 있다.In addition, in further preferred embodiments, the
일 바람직한 실시형태에서, 직접 메모리 액세스 제어 장치(40)는 하드웨어 회로로서 형성된다. 일 추가 실시형태에서, 제어 장치(42)는 직접 메모리 액세스 제어 장치(40)의 집적 반도체 회로 내에 통합 배치된다. 일 실시형태에서, 제어 장치(42)는 직접 메모리 액세스 제어 장치(40)로부터 분리되어 배치된다.In one preferred embodiment, direct
도 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
도 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
여기서 이더넷 프레임(120)은 하기에 자신들의 도면부호들을 통해 열거되어 있는 하기 필드들 또는 데이터 섹션들을 통해 특성화된다(열 구분: 필드명, 도면부호, 길이).Here, the
프리앰블 122 8바이트;
타깃 주소 123 6바이트;
소스 주소 124 6바이트;
TPID 125 2바이트;
우선순위(PCP) 126 3비트;Priority (PCP) 126 3 bits;
DEI/CFI 127 1비트;DEI /
VLAN-ID 128 12비트;VLAN-
이더 유형(EtherType) 129 2바이트;
MAC 페이로드 130 42바이트 내지 1500바이트;
CRC 체크섬 131 4바이트;
MAC 헤더("header") 132 18바이트;MAC header ("header") 132 18 bytes;
VLAN 태그 133 4바이트.
여기서 IPv6 구조(140)는 하기에 자신들의 도면부호들을 통해 열거되어 있는 하기 데이터 섹션들을 통해 특성화된다.Where the
버전 143 4비트;
우선순위 144 1바이트;
흐름 라벨 145 20비트;
페이로드 길이 146 2바이트;
다음 헤더(next header) 147 1바이트;
홉 한계(Hop Limit) 148 1바이트;
소스 주소 149 16바이트;
타깃 주소 150 16바이트;
IPv6 페이로드 151 0바이트 내지 1460바이트;
IPv6 헤더 153 40바이트.
여기서 TCP 구조(160)는 하기에 자신들의 도면부호들을 통해 열거되어 있는 하기 데이터 섹션들을 통해 특성화된다.Here, the
소스 포트 164 2바이트;
타깃 포트 165 2바이트;
시퀀스 번호 166 4바이트;
ACK 번호 167 4바이트;
데이터 오프셋 168 4비트;Data offset 168 4 bits;
예약 + 플래그 169 12비트;Reserved +
윈도우 크기 170 2바이트;
체크섬 171 2바이트;
긴급 포인터 172 2바이트;
TCP 옵션 173 0 내지 40바이트;
TCP 페이로드 174 0 내지 1440바이트;
TCP 헤더 175 20 내지 60바이트.
도 2에는, MAC-페이로드(130), IPv6 페이로드(151), MAC 헤더(132), CRC 체크섬(131)과 같은 일부 데이터 섹션이 도시된 인터리빙에 상응하게 (부분적으로는 도면부호 없이) 한 번 이상 열거되어 있다.In Figure 2, some data sections, such as MAC-
계속하여 하기에서 더 설명되는 것처럼, 앞에서 예시로서 기재한 데이터의 분석은 사전 설정 가능한 검색 기준들 또는 필터 기준들의 이용하에 본 발명에 따른 직접 메모리 액세스 제어 장치를 통해 수행될 수 있다. 여기서 기준들은 예컨대 이더넷 프로토콜들(예: "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
이 경우, 타깃 기억 영역은 예컨대 처리 유닛(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
도 3에서 최상부의 블록(202)에서, 직접 메모리 액세스 제어 장치(40)는 제1 버스 가입자(60)로부터, 예컨대 통신 모듈들(50_1 내지 50_n) 중 하나의 통신 모듈로부터 트리거 신호를 수신한다. 이는 특히 전술한 버스 가입자(60) 내에, 직접 메모리 액세스에 의해 버스 시스템(12)을 통해 전송되어야 하는 신규 메시지가 입력될 때 수행된다. 트리거 신호의 결과로서는, 도 3을 통해 예시로서 특징 지워진 프로그램 시퀀스가 시작된다. 프로그램 시퀀스를 특성화하는 시작 주소는 제어 장치(42)에서 기지사항(known)이거나, 또는 사전 설정 가능한 조치들, 특히 판독 과정 및/또는 로딩 과정에 의해 결정될 수 있다.3, the direct memory
도 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
- 검색 특징, 특히 프로토콜 정보 및/또는 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
후행하는 질의 블록(210)에서, 판독된 정보(0x8100)는 각각의 검색 특징과 비교된다. 필요한 경우, 이를 위해, 일치가 식별될 때까지 단계별로 수행되는 다수의 비교가 필요할 수 있다. 이는 도 3에서 예시로서 3개의 추가 질의 블록(212, 214 및 216)을 통해 도시되어 있다.In the
또한, 블록들(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
상기 절차의 "깊이", 특히 질의 블록들(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
제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
"최종적인" 검색 특징이 여전히 확인되지 않는 경우에는, 경로(222)의 통과 후에, 하나 이상의 추가 매개변수 집합 또는 매개변수의 로딩, 및 질의 블록(210) 및 경우에 따른 질의 블록들(212, 214 및 216)에 의한 추가 비교들의 수행이 실시된다. 이를 보충하여, 도 3에서 원기호 안에 표시된 숫자 "2" 및 "3"을 참조한다("추가 실행 2 및 3").If the " final "search feature is still not identified, then after the passage of
예컨대 검색된 프로토콜은 검색 특징 "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
- 특히 산술 및/또는 논리 연산의 이용하에, 기지의 시작 주소와 예컨대 앞서 구성된 오프셋 주소로부터 결정되는 소스 주소. 이 경우, 오프셋 주소는 예컨대 검색 특징에 따라 사전 설정되거나, 또는 검색 특징에 따라 결정된다. 이는, 바람직하게는 예컨대 고려된 데이터의 특정 부분만 전송될 수 있게 하고 관련이 없는 부분들(예: 헤더 등)은 배제될 수 있게 한다. 바람직하게 오프셋 주소는 블록(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
- 검색 특징에 따라 사전 설정되거나 결정되는 타깃 주소. 바람직하게 타깃 주소는 블록(204) 내에 로딩된 매개변수를 통해 특성화된다.- Target address that is preset or determined based on search characteristics. Preferably, the target address is characterized by a parameter loaded in
- 데이터의 각각 전송할 바이트의 개수. 일 실시형태에서, 상기 개수는 직접적으로 도 2에서 숫자 "4"로 표시된 필드에 상응하면서 도 2에 도시된 페이로드 길이(146)에 상응한다. 일 추가 실시형태에서, 전술한 개수는 산술 및/또는 논리 연산의 이용하에 오프셋에 의해 결정된다. 예컨대 상기 오프셋은 블록(204) 내에 로딩된 매개변수를 통해 특성화된다.- The number of bytes to transfer each of the data. In one embodiment, the number corresponds directly to the
직접 메모리 액세스 제어 장치(40)가 블록(224)에서 구성된 후에, 후행하는 블록(226)에서는, 하나 이상의 직접 메모리 액세스의 이용하에 버스 시스템(12)을 통해 제1 버스 가입자(60)로부터 제2 버스 가입자(60)로 데이터의 전송이 수행된다. 이 경우, 데이터는 마지막에 사전 설정 가능한 "전용" 기억 영역 내로, 또는 순환 버퍼로서 구성된 기억 영역 내로 전송될 수 있다. 여기서 상기 기억 영역은 각각 예컨대 주기억 장치(30)이거나, 로컬 메모리들(30_1 내지 30_n) 중 하나의 로컬 메모리일 수 있다(도 1 참조). 데이터의 전송이 각각 전용 기억 영역 내로 수행되는지, 또는 순환 버퍼 내로 수행되는지 그 여부의 선택("엔트리 유형")은 예컨대 블록(204) 내에 로딩된 매개변수에 의해 사전 설정될 수 있다.After the direct memory
일 실시형태에서, 제어 장치(42)는, 직접 메모리 액세스에 의해 제1 버스 가입자(60)로부터 하나 이상의 제2 버스 가입자(60)로 전송될 데이터가 단지 부분적으로만 전송되도록 프로그래밍된다. 특히 이는 제2 버스 가입자(60)("타깃 모듈") 내에서 요구되지 않는 정보들, 예컨대 요구되지 않는 헤더 정보들 및/또는 요구되지 않는 프로토콜들의 생략에 의해 수행된다.In one embodiment, the
데이터가 블록(226)에서 직접 메모리 액세스에 의해 전송된 후에, 선택에 따라 하기의 하나 또는 복수의 추가 조치가 수행될 수 있다.After the data is transferred by direct memory access at
- 각각의 처리 유닛(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
- 트리거 정보들 및/또는 시그널링 비트들("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
- 데이터의 수행된 전송의 통지를 위한 시그널링 비트("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
버스 가입자(60)의 전술한 데이터는 전술한 정보들을 결정하기 위해 선택에 따라 일부만 또는 완전히 직접 메모리 액세스 제어 장치(40)에 의해 판독될 수 있거나, 직접 메모리 액세스 제어 장치(40) 및/또는 주기억 장치(30) 내에 일시적으로 저장될 수 있다. 일 실시형태에서, 정보들의 결정 및/또는 길이의 결정은 반복해서 수행된다.The foregoing data of the
일 실시형태에서, 직접 메모리 액세스 제어 장치(40)는, 하기 조치들 중에서 하나 이상의 조치를 수행하도록 형성된다.In one embodiment, direct
- 제1 버스 가입자(60)로부터 트리거 신호의 수신;Receiving a trigger signal from the
- 트리거 신호에 따라 제1 버스 가입자(60)의 메모리 또는 주기억 장치(30)에서 직접 메모리 액세스에 의해 전송될 데이터의 수신 또는 판독;Receiving or reading data to be transmitted by the memory access of the
- 데이터의 적어도 일부분의 분석;- 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,
데이터 세그먼트들의 서로 상이한 처리는 예컨대 이른바 "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
직접 메모리 액세스 제어 장치(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
전술한 에러 플래그가 에러를 시그널링한다면, 블록(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
또한, 추가 조치들도 생각해볼 수 있다. 예컨대 또 다른 실시형태들의 경우 에러 플래그가 존재할 때 에러가 있는 데이터("프레임")는 그럼에도 분석을 위해 제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
그 밖에도, 시작 주소의 타당성 검사가 수행될 수 있다. 이를 위해, 직접 메모리 액세스에 의한 전송을 위해 결정된 소스 주소는 데이터의 원래의 시작 주소와 비교된다. 이 경우, 예컨대 소스 주소는 시작 주소보다 작지 않아야 한다. 침해는 각각의 데이터에 대한 상태 레지스터 내 에러 플래그를 통해 시그널링될 수 있다. 상태 레지스터는 직접 메모리 액세스 제어 장치(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
도 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
도 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
예컨대 이더넷 메시지가 디스크립터를 이용하여, 예컨대 주기억 장치(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
종료 주소의 모니터링은 예컨대 하기와 같이 수행될 수 있다. 맨 먼저, 계속하여 앞에서 이미 기재한 것처럼 기호 "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
도 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
이더넷 프레임(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")-
- SOME/IP 패킷 1
604;- SOME /
- SOME/IP 패킷 2
606;- SOME /
- SOME/IP 패킷 N
608- SOME /
화살표들(610)은 버스 시스템(12)을 통해 로컬 메모리들(30_1, 30_2 및 30_n)로 직접 메모리 액세스에 의해 수행되는 SOME/IP 패킷들(604, 606 및 608)의 전송에 대한 예시의 할당을 지시하고 있다. 이 경우, 도 3의 흐름도에 대응하는 방법이 이용된다.
도 7에는, 통신 모듈(50')에 대한 제1 추가 실시형태가 도시되어 있다. 여기서 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는 통신 모듈(50') 내에 통합되어 배치된다. 도 7에서 통신 모듈(50')의 내부에 도시된 요소(50_x)는 도 1의 통신 모듈들(50_1 내지 50_n) 중 하나의 통신 모듈에 상응한다. 버스 시스템(12)은 통신 모듈(50')의 내부에서 내부 버스(12')로서 작동되며, 그럼으로써 통신 모듈(50_x) 및 직접 메모리 액세스 제어 장치(40)는 버스 시스템(12)에 병렬 연결된다. 이런 구성의 경우에서도, 프로그래밍 가능 제어 장치를 포함한 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는, 바람직하게는, 앞에서 도 1 내지 도 6을 참조하여 기재한 것처럼, 예컨대 데이터[모듈(50')의 로컬 데이터 및/또는 또 다른 버스 가입자들(60)의 데이터] 및/또는 DMA 전송(들)의 분석을 실행할 수 있다.In Fig. 7, a first further embodiment of a communication module 50 'is shown. Here, the direct memory
도 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
한 바람직한 실시형태에서, 도 7 및 도 8의 통신 모듈들(50' 또는 50" 또는 50_x)은 이더넷 통신 모듈에 상응한다. 또 다른 바람직한 실시형태들의 경우, 이더넷 유형의 전술한 모듈들과는 다른 통신 모듈들도 생각해볼 수 있다.In one preferred embodiment, the
프로그래밍 가능 제어 장치(42)를 포함한 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는 바람직하게는 버스 가입자들(60) 간의 유연한 데이터 분석들 및/또는 DMA 전송들을 가능하게 하며, 상응하는 프로그래밍을 통해서는 분석 또는 DMA 전송의 특정 시퀀스가 수정될 수 있다. 또한, 예컨대, 상기 방식으로, 직접 메모리 액세스 제어 장치(40)에 의해 실행될 데이터 분석 또는 데이터 전송은 향후에 비로소 정의될 통신 프로토콜들에도 매칭될 수 있다. 또한, 특히 바람직하게 본 발명에 따른 직접 메모리 액세스 제어 장치(40)는 복수의 프로토콜 계층을 넘어서 (인터리빙) 데이터 패킷들의 유연한 심층 분석(deep packet inspection)도 가능하게 하며, 예컨대 관계없는 헤더 데이터도 사전 설정 가능한 프로토콜 계층들에서 배제될 수 있고, 그에 따라 예컨대 하나 또는 복수의 수신 측 버스 가입자(60)로의 DMA 전송의 범주에서 고려되지 않아도 된다.Direct memory
Claims (12)
상기 제어 장치(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.
- 검색 특징;
- 검색 위치;
- 각각의 검색 특징의 길이;
- 반복 단계들 또는 검색 실행들의 사전 설정 가능한 횟수; 및
- 데이터(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 버스 가입자(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.
상기 제어 장치(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.
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)
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)
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)
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 |
-
2016
- 2016-06-29 DE DE102016211768.8A patent/DE102016211768A1/en active Pending
-
2017
- 2017-06-28 KR KR1020170081920A patent/KR102354062B1/en active IP Right Grant
- 2017-06-28 CN CN201710507218.XA patent/CN107544928B/en active Active
Patent Citations (2)
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 |