KR20180117153A - 메인 메모리를 구비한 컴퓨팅 유닛용 직접 메모리 액세스 제어 장치 - Google Patents

메인 메모리를 구비한 컴퓨팅 유닛용 직접 메모리 액세스 제어 장치 Download PDF

Info

Publication number
KR20180117153A
KR20180117153A KR1020187027794A KR20187027794A KR20180117153A KR 20180117153 A KR20180117153 A KR 20180117153A KR 1020187027794 A KR1020187027794 A KR 1020187027794A KR 20187027794 A KR20187027794 A KR 20187027794A KR 20180117153 A KR20180117153 A KR 20180117153A
Authority
KR
South Korea
Prior art keywords
communication module
main memory
information
priority
memory access
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020187027794A
Other languages
English (en)
Other versions
KR102755886B1 (ko
Inventor
엑카르트 슐로트만
악셀 아우에
오이겐 벡커
Original Assignee
로베르트 보쉬 게엠베하
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 로베르트 보쉬 게엠베하 filed Critical 로베르트 보쉬 게엠베하
Publication of KR20180117153A publication Critical patent/KR20180117153A/ko
Application granted granted Critical
Publication of KR102755886B1 publication Critical patent/KR102755886B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

본 발명은, 메인 메모리(30; 30_1 내지 30_n)를 구비한 컴퓨팅 유닛(20; 20_1 내지 20_n)을 위한 직접 메모리 액세스 제어 장치(40)에 관한 것이며, 상기 직접 메모리 액세스 제어 장치(40)는, 컴퓨팅 유닛(20; 20_1 내지 20_n)을 메인 메모리(30; 30_1 내지 30_n)와 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)의 연결을 위한 연결부를 포함한다. 이 경우, 직접 메모리 액세스 제어 장치(40)는 하기 단계들, 즉: 버스 시스템(12)과 연결된 통신 모듈(50)로의 전송을 위해 컴퓨팅 유닛(20; 20_1 내지 20_n)에 의해 제공되는, 메인 메모리(30; 30_1 내지 30_n) 내에 저장된 2개 이상의 정보 블록(60)의 제어 정보들을 판독 입력하는 단계(104)로서, 상기 제어 정보가 통신 모듈(50)로의 전송을 위한 각각의 정보 블록(60)의 우선순위를 특성화하는, 단계와; 각각의 우선순위에 따라서 통신 모듈(50)로 정보 블록들(60)을 전송하기 위한 순서를 결정하는 단계(110)와; 결정된 순서에 따라서, 메인 메모리(30; 30_1 내지 30_n)로부터 통신 모듈(50)로의 직접 메모리 액세스를 이용하여, 메인 메모리(30; 30_1 내지 30_n)로부터 통신 모듈(50)로 정보 블록들(60)을 전송하는 단계(112);를 실행하도록 형성된다.

Description

메인 메모리를 구비한 컴퓨팅 유닛용 직접 메모리 액세스 제어 장치
본 발명은 청구항 제1항의 전제부에 따른 직접 메모리 액세스 제어 장치, 및 대등의 특허 청구항에 따른 방법에 관한 것이다.
하나 또는 복수의 프로세서 코어를 포함하며 메인 메모리에 접근할 수 있는 컴퓨팅 유닛들, 예컨대 프로세서들이 시장에 공지되어 있다. 그 밖에도, 상기 컴퓨팅 유닛을 하나 또는 복수 개 포함하는 컴퓨터 시스템들은 통상 컴퓨팅 유닛과 상호작용하는 복수의 유닛, 예컨대 입/출력 모듈(IO) 등을 포함한다. 컴퓨터 시스템의 상기 요소들 중 적어도 일부는 하나의 공통 버스, 더욱 바람직하게는 병렬 버스를 통해 서로 데이터를 교환할 수 있다. 그 밖에도, 이른바 직접 메모리 액세스(DMA: direct memory access)를 위한 방법들도 공지되어 있으며, 그럼으로써 공통 버스를 통한 데이터 교환이 개선될 수 있다.
본 발명의 기초가 되는 과제는 청구항 제1항에 따른 직접 메모리 액세스 제어 장치를 통해, 그리고 대등의 청구항에 따른 방법을 통해 해결된다. 바람직한 개선예들은 종속 청구항들에 명시되어 있다. 또한, 본 발명에 대해 중요한 특징들은 하기 기술내용 및 도면들에서 확인되며, 특징들은 독자적으로뿐만 아니라 상이한 조합들로도 본 발명을 위해 중요할 수 있으며, 이에 대해서는 다시 명시하지 않는다.
본 발명은 메인 메모리를 구비한 컴퓨팅 유닛을 위한 직접 메모리 액세스 제어 장치에 관한 것이며, 상기 직접 메모리 액세스 제어 장치는 컴퓨팅 유닛을 메인 메모리와 연결하는 버스 시스템과 직접 메모리 액세스 제어 장치의 연결을 위한 연결부를 포함한다. 이 경우, 직접 메모리 액세스 제어 장치는 하기 단계들을 실행하도록 형성된다.
- 버스 시스템과 연결된 통신 모듈로의 전송을 위해 컴퓨팅 유닛에 의해 제공되는, 메인 메모리 내에 저장된 2개 이상의 정보 블록의 제어 정보를 판독 입력하는 단계로서, 상기 제어 정보가 통신 모듈로의 전송을 위한 각각의 정보 블록의 우선순위를 특성화하는, 단계;
- 각각의 우선순위에 따라서 통신 모듈로 정보 블록들의 전송을 위한 순서를 결정하는 단계; 및
- 결정된 순서에 따라서, 메인 메모리로부터 통신 모듈로의 직접 메모리 액세스를 이용하여, 메인 메모리로부터 통신 모듈로 정보 블록들을 전송하는 단계.
상기와 같이 기술된 정보 블록들의 전송은 본원에서 이른바 "Tx 모드", 즉, 메인 메모리로부터 통신 모듈 방향으로의 전송을 특성화한다.
상술한 정보 블록들은 "유효 데이터" 및/또는 제어 정보를 포함할 수 있으며, 예컨대 통신 모듈을 통해 버스 시스템 및/또는 데이터 네트워크를 경유하여 다른 유닛들과 교환될 수 있는 전체 데이터 패킷도 형성할 수 있다. 컴퓨팅 유닛은 하나 또는 복수의 프로세서 코어(컴퓨팅 코어)를 포함하며, 이들 프로세서 코어는 이하 컴퓨팅 유닛이라고도 지칭된다. 프로세서 코어들 또는 컴퓨팅 유닛들은 하나의 공통 부품(집적 회로) 내에, 또는 각각 분리된 부품들 내에 배치될 수 있다.
메인 메모리는, 프로세서 코어들에 의해 공동으로 이용될 수 있는 중앙 메인 메모리로서 구현될 수 있고, 그리고/또는 프로세서 코어들 각각을 위해 각각 전용인 메인 메모리 유닛이 제공될 수도 있다. 상기 메인 메모리 유닛은 각각의 프로세서 코어와 함께 하나의 공통 부품 내에 배치될 수 있거나(내장형), 물리적으로 그로부터 분리될 수 있다(외장형).
바람직하게 본원의 직접 메모리 액세스 제어 장치는 하드웨어에 의해, 다시 말하면 하나 또는 복수의 이산 및/또는 통합 전자 부품에 의해 구현된다.
일 구현예에서, 본원의 직접 메모리 액세스 제어 장치는 선행 기술에 따라 이미 공지된 직접 메모리 액세스 제어 장치에 보충되어 이용되는 별도의 유닛이다.
일 구현예에서, 통신 모듈은 CAN 버스 시스템을 컴퓨팅 유닛(들) 및 메인 메모리(들)와 기능적으로 연결하도록 형성된다. 일 구현예에서, 통신 모듈은, 본원에서 "논리 유닛"으로도 지칭되는 복수의 CAN 버스 가입자가 연결되어 있는 CAN 버스와 통신할 수 있는 이른바 "MCAN 모듈"을 포함한다. 축약어 "CAN"은 "컨트롤러 영역 네트워크"를 의미한다. 여기서 알파벳 "M"은 생산자 고유의 명칭 첫자를 나타낸다.
일 바람직한 구현예에서, 메인 메모리는 각각 랜덤 액세스를 이용한 메모리(RAM: random access memory)로서 구현된다. 그러나 다른 메모리 유형들도 가능하다.
일 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 어느 정보 블록이 각각 최대 우선순위를 보유하는지를 결정하도록 형성된다. 그에 상응하게, 최대 우선순위를 갖는 정보 블록의 전송은 메인 메모리로부터 통신 모듈로의 직접 메모리 액세스를 이용하여 수행된다.
간소화하여 표현하면, 본원의 직접 메모리 액세스 제어 장치는 특히 정보 블록들의 정보 내용 또는 데이터 내용에 기초하여 정보 블록들의 전송을 수행하며, 어느 전송이 각각 바로 다음 전송으로서 수행될지를 자동으로 판단한다. 본 발명은, 하나 이상의 컴퓨팅 유닛 또는 하나 이상의 프로세서 코어뿐만 아니라 하나 또는 복수의 메인 메모리 및 하나 이상의 통신 모듈을 포함하는 컴퓨터 시스템 내에서 직접 메모리 액세스에 의해 수행되는 정보 블록들의 전송이 추가로 개선될 수 있다는 장점을 갖는다.
또 다른 장점은, 본원의 직접 메모리 액세스 제어 장치가, 명백하게 이른바 "멀티코어 시스템"(다시 말해 복수의 프로세서 코어를 포함한 하나의 컴퓨팅 유닛)을 이용한 작동을 위해 구성된 것이 아니라, 단 하나의 프로세서 코어와의 통신 설계 목적으로만 개발된 통신 모듈들의 성능을 높인다는 점에 있다. 이에 대해서는 예컨대 위에서 상세히 기술한 "MCAN 모듈"을 참조한다. 이런 방식으로, 본 발명에 따른 원리는 복수의 프로세서 코어를 포함하는 컴퓨팅 유닛들에도 직접 메모리 액세스를 기반으로 하는 MCAN 모듈이 간단하게 연결될 수 있게 한다. 그에 따라 적용 가능성이 상응하게 확장된다.
상술한 통신 모듈들이 물리적 부품으로서 존재하는 것이 아니라, 하드웨어 및/또는 소프트웨어에 의해 에뮬레이션(emulation)되는 경우에도, 본원의 직접 메모리 액세스 제어 장치 덕분에 멀티코어 시스템들을 이용해서도 작동이 바람직하게 가능하다.
일 구현예에서, 본원의 직접 메모리 액세스 제어 장치는 하기 추가 단계들 중 하나 이상을 실행하도록 형성된다.
- 컴퓨팅 유닛으로부터 신호, 특히 트리거 신호를 수신하는 단계;
- 수신되는 신호에 따라서 제어 정보를 판독 입력하는 단계. 예컨대 정보 블록들 또는 제어 정보는 각각 트리거 신호를 위한 비트 위치를 포함하며, 본원의 직접 메모리 액세스 제어 장치는, 각각의 트리거 신호가 컴퓨팅 유닛을 통해 설정된 것인지의 여부와 관련하여 메인 메모리 내의 상응하는 비트 위치들을 정기적으로 조회하도록 형성된다. 트리거 신호가 설정된 것으로서 결정되는 즉시, 본원의 직접 메모리 액세스 제어 장치는 해당 정보 블록이 통신 모듈로 전송되어야 하는 것으로 인식한다;
- 우선순위 평가를 제어하는 제1 구성 정보(configuration information)를 평가하는 단계;
- 제어 정보에서 제1 우선순위 및/또는 제2 우선순위를 결정하는 단계;
- 제1 구성 정보 그리고 각각의 제1 및/또는 각각의 제2 우선순위들에 따라 통신 모듈로 정보 블록들의 전송을 위한 순서를 결정하는 단계로서, 상기 순서가 선택적으로 각각의 제1 우선순위들 또는 각각의 제2 우선순위들에 따라, 또는 각각의 제1 및 각각의 제2 우선순위들에 따라 결정되며, 특히, 각각의 제1 우선순위들이 상이하다면 각각의 제1 우선순위에 따라서, 또는 각각의 제1 우선순위들이 동일하다면 각각의 제2 우선순위에 따라서 통신 모듈로 정보 블록들을 전송하기 위한 순서를 결정하는 단계;
- 직접 메모리 액세스 제어 장치로부터 통신 모듈로 전송 요청("Request")을 전송하는 단계; 및
- 메인 메모리로부터 통신 모듈로 정보 블록의 성공적인 전송을 위해 컴퓨팅 유닛으로 승인 신호(acknowledgement signal)를 송신하고, 그리고/또는 정보 블록 내에 플래그를 설정하거나 재설정하는 단계.
일 구현예에서, 승인 신호는 컴퓨팅 유닛에 의해 설정될 수 있는, 전술한 ACK 비트이며, 그럼으로써 직접 메모리 액세스 제어 장치로 하여금 후속하여 제어 정보의 판독 입력 단계를 실행할 수 있게 한다. 이런 경우, 승인 신호의 송신은 직접 메모리 액세스 제어 장치를 통한 ACK 비트의 재설정 단계에 상응한다. 또 다른 구현예에서, ACK 비트 또는 ACK 비트의 비트 위치는 플래그 또는 플래그의 비트 위치와 상이하다.
한 바람직한 실시예의 경우, 승인 신호는, 데이터가 (Tx 요청을 포함하여) 송신하기 위한 통신 모듈, 예컨대 MCAN 모듈로 성공적으로 전송되었음을 표시하기 위해 제공될 수 있다. 이를 위해, 본원의 직접 메모리 액세스 제어 장치는 CPU를 위한 메시지(예: Intern_TransSuccess) 내 하나의 비트를 설정할 수 있다.
또 다른 바람직한 실시예의 경우, 본원의 직접 메모리 액세스 제어 장치는 통신 모듈, 예컨대 MCAN 모듈로 메시지를 전송하며, 이를 위해 예컨대 Tx 요청을 설정한다. MCAN 모듈을 통한 성공적인 송신 후에, MCAN 모듈은 MCAN 모듈 내에 상응하는 고유 비트를 설정하며, 이제야 비로소 본원의 직접 메모리 액세스 제어 장치는 승인 신호를 CPU로 전송하고, 그에 따라서 전송은 성공적으로 종결된다. 이는 위에서 이미 기술한 ACK 비트를 통해 수행될 수 있다.
상술한 추가 단계들은 컴퓨팅 유닛(들) 및/또는 메인 메모리 또는 메인 메모리 유닛(들), 직접 메모리 액세스 제어 장치, 및/또는 통신 모듈 간의 통신을 바람직하게 개선시킬 수 있다.
상술한 제1 구성 정보는 제1 및/또는 제2 우선순위들의 선택적 이용을 바람직하게 제어할 수 있다. 제2 우선순위는 예컨대 각각의 정보 블록 내에서, 예컨대 정보 블록의 헤드라인("header") 내에서 하나 또는 복수의 비트 위치("비트필드")에 의해 정의될 수 있다. 그러나 특히 더욱 바람직하게는, 상기 비트들은, CAN 메시지 자체에는 포함되어 있지 않은, CAN 메시지에 대한 추가 정보로서, 다시 말해 순수 제어 정보로서 제공된다.
바람직하게 각각의 정보 블록의 제어 정보 내의 제1 및/또는 제2 우선순위가 전송된다. 일 구현예에서, 제1 구성 정보에 따른 순서의 결정은 오직 제1 우선순위를 이용해서만 수행된다. 또 다른 구현예에서, 제1 구성 정보에 따른 순서의 결정 단계는 오직 제2 우선순위에 의해서만 수행된다.
또 다른 구현예에서, 본원의 직접 메모리 액세스 제어 장치는 하기 단계들을 실행하도록 형성된다:
- 통신 모듈로부터 버스 시스템과 연결된 메인 메모리로의 전송을 위해 상기 통신 모듈에 의해 제공되는 2개 이상의 정보 블록의 제어 정보를 판독 입력하는 단계로서, 상기 제어 정보는 메인 메모리로의 전송을 위한 각각의 정보 블록의 우선순위를 특성화하는, 단계;
- 각각의 우선순위에 따라서 메인 메모리로 정보 블록들을 전송하기 위한 순서를 결정하는 단계;
- 결정된 순서에 따라서, 통신 모듈로부터 메인 메모리로의 직접 메모리 액세스를 이용하여, 상기 통신 모듈로부터 메인 메모리로 정보 블록들을 전송하는 단계.
예컨대 단 하나의 Rx 버퍼(수신 버퍼)만이 MCAN 모듈 내에서 구성되는 또 다른 적용의 경우, 하나의 트리거만으로도 MCAN 모듈로부터 RAM으로 전송하기에 충분하다. 이는 예컨대 MCAN 모듈 내의 NEWDATA 플래그일 수 있다. 이런 경우에 우선순위 제어도 생략될 수 있다.
상기 유형으로 기술된 정보 블록들의 전송은 본원에서 이른바 "Rx 모드", 다시 말하면 통신 모듈로부터 메인 메모리 쪽 방향으로의 전송을 특성화한다. 여기서도, 상기에서 "Tx 모드"에 대해 이미 더 상세히 기술한 것과 같은 유사한 장점들이 달성된다.
또 다른 구현예에서, 본원의 직접 메모리 액세스 제어 장치는 하기 추가 단계들 중 하나 이상을 실행하도록 형성된다:
- 통신 모듈로부터 신호, 특히 트리거 신호를 수신하는 단계이며, 그럼으로써 직접 메모리 액세스 제어 장치로 하여금 후속하여 제어 정보의 판독 입력을 수행할 수 있게 하는 단계;
- 수신되는 신호에 따라서 특히 통신 모듈에 의해 준비되는 2개 이상의 정보 블록의 제어 정보를 판독 입력하는 단계;
- 우선순위 평가를 제어하는 제1 구성 정보를 평가하는 단계;
- 제어 정보에서 제1 우선순위 및/또는 제2 우선순위를 결정하는 단계;
- 제1 구성 정보 그리고 각각의 제1 및/또는 각각의 제2 우선순위들에 따라서 메인 메모리로 정보 블록들을 전송하기 위한 순서를 결정하는 단계로서, 상기 순서는 선택적으로 각각의 제1 우선순위들 또는 각각의 제2 우선순위들에 따라, 또는 각각의 제1 및 각각의 제2 우선순위들에 따라 결정되며, 특히 각각의 제1 우선순위들이 상이하다면 각각의 제1 우선순위에 따라서, 또는 각각의 제1 우선순위들이 동일하다면 각각의 제2 우선순위에 따라서 메인 메모리로 정보 블록들을 전송하기 위한 순서를 결정하는 단계;
- 전송할 정보 블록 내에 플래그, 특히 신규 플래그를 설정하고, 그리고/또는 컴퓨팅 유닛으로 인터럽트를 송신하는 단계로서, 상기 신규 플래그(new flag) 또는 인터럽트(interrupt)는, 메인 메모리로의 정보 블록의 전송 성공을 컴퓨팅 유닛으로 통지하기 위해 제공되는 단계;
- 메인 메모리 내의 타깃 주소 영역을 결정하고, 그리고/또는 메인 메모리의 로컬 메인 메모리 유닛을 결정하는 단계; 및
- 통신 모듈로부터 메인 메모리로 정보 블록의 성공적인 전송을 위해 상기 통신 모듈로 승인 신호를 송신하고, 그리고/또는 상기 통신 모듈 내에 플래그를 설정하는 단계.
컴퓨팅 유닛에 대한 로컬 인터럽트를 이용하여, 통신 모듈에 의해 송신될 각각의 정보 블록이 최대한 신속하게 메인 메모리 내로 전송되어야 하는 경우, 그 즉시, 상기 컴퓨팅 유닛이 반응할 수 있게 된다. 컴퓨팅 유닛은 로컬 인터럽트를 통해 바람직하게는 이미 복사된 데이터를 최대한 신속하게 처리할 수 있으며, 이 경우 특히, 멀리 떨어진 메모리로의 접근을 더 이상 필요로 하지 않는다.
상술한 추가 단계들은 컴퓨팅 유닛(들), 메인 메모리 또는 메인 메모리 유닛들, 직접 메모리 액세스 제어 장치 및/또는 통신 모듈 간의 통신을 바람직하게 개선시킬 수 있다. 마찬가지로, (선택적인) 제2 우선순위의 이용은 순서를 결정할 때 추가적인 개선을 가능하게 한다.
일 구현예에서, Rx 모드를 위한 상술한 "제1" 구성 정보는 위에서 기술한 Tx 모드를 위한 "제1" 구성 정보와 다른 내용을 포함할 수 있다. 또 다른 구현예에서, 제1 구성 정보에 따른 순서의 결정은 오직 제1 우선순위를 이용해서만 수행된다. 또 다른 구현예에서, 제1 구성 정보에 따른 순서의 결정은 오직 제2 우선순위를 이용해서만 수행된다.
또 다른 구현예에서, 본원의 직접 메모리 액세스 제어 장치는 하기 단계들을 실행하도록 구성된다.
- 버스 시스템과 연결된 통신 모듈로의 전송을 위해 컴퓨팅 유닛에 의해 제공되는, 메인 메모리 내에 저장된 하나 이상의 제1 정보 블록의 제어 정보를 판독 입력하는 단계로서, 상기 제어 정보는 통신 모듈로의 전송을 위한 하나 이상의 제1 정보 블록의 우선순위를 특성화하는, 단계;
- 통신 모듈로부터 버스 시스템과 연결된 메인 메모리로의 전송을 위해 상기 통신 모듈에 의해 제공되는 하나 이상의 제2 정보 블록의 제어 정보를 판독 입력하는 단계로서, 상기 제어 정보는 메인 메모리로의 전송을 위한 하나 이상의 제2 정보 블록의 우선순위를 특성화하는, 단계;
- 하나 이상의 제1 및 하나 이상의 제2 정보 블록의 각각의 우선순위에 따라서 하나 이상의 제1 정보 블록 및 하나 이상의 제2 정보 블록의 전송을 위한 순서를 결정하는 단계; 및
- 결정된 순서에 따라서, 직접 메모리 액세스를 이용하여, 메인 메모리로부터 통신 모듈로 하나 이상의 제1 정보 블록을 전송하는 단계, 및/또는 통신 모듈로부터 메인 메모리로 하나 이상의 제2 정보 블록을 전송하는 단계.
상기 유형으로 기술한 정보 블록들의 전송은 본원에서 혼합된 "Tx 모드" 및 "Rx 모드", 다시 말하면 한편으로 메인 메모리로부터 통신 모듈 쪽 방향으로의 전송, 그리고 다른 한편으로는 통신 모듈로부터 메인 메모리 쪽 방향으로의 전송을 특성화한다. 버스 시스템에서는 직접 메모리 액세스에 의해 각각의 시기에 항상 단 하나의 정보 블록만이 전송될 수 있기 때문에, 기술한 단계들을 통해 바람직하게는 양 전송 방향에 대한 우선순위 결정이 수행된다. 각각의 전송 방향 이내에서는 마찬가지로, 위에서 이미 Tx 모드 및 Rx 모드에 대해 상세히 기술한 것과 같은 우선순위 결정이 수행된다.
그에 따라, 본원의 직접 메모리 액세스 제어 장치는, 한편으로 Tx 모드를 위한 순서와 다른 한편으로는 Rx 모드를 위한 순서를 결정하고 그 결과에 따라 Tx 모드와 Rx 모드 간의 우선순위 결정도 수행하도록 형성된다. 달리 말하면, 본원의 직접 메모리 액세스 제어 장치는 전체적으로 가장 긴급한 정보 블록에 우선권을 부여한다.
이로써 위에서 이미 Tx 모드 및 Rx 모드에 대해 상세히 기술한 것과 같은 상응하는 장점들이 달성된다. 이 경우, 자명한 사실로서, 혼합된 Tx 모드 및 Rx 모드에 대해서도, 적용 가능하다면, 앞서 Tx 모드 및 Rx 모드에 대해 각각 별도로 기술한 "추가" 단계들이 본원의 직접 메모리 액세스 제어 장치를 위해 바람직하게 보충될 수 있다.
또 다른 구현예에서, 본원의 직접 메모리 액세스 제어 장치는 제2 구성 정보를 포함하며, 상기 제2 구성 정보는, 통신 모듈과 통신하는 각각의 논리 유닛들, 및/또는 각각의 논리 유닛들에 의해 송신될, 그리고/또는 수신될 제어 정보를 특성화한다. 그 결과, 순서의 결정이 바람직하게 개선될 수 있다. 일 구현예에서, 통신 모듈은 CAN 버스 시스템과 연결되도록 형성되며, 상술한 제2 구성 정보는 각각의 CAN ID들 또는 CAN 객체 식별자들을 포함한다. 또 다른 구현예에서, 제2 구성 정보는 Rx 모드를 위해 필요한 CAN ID들만을 포함한다.
또 다른 구현예에서, 본원의 직접 메모리 액세스 제어 장치는 제3 구성 정보를 포함하며, 제3 구성 정보는 컴퓨팅 유닛(또는 컴퓨팅 유닛들 또는 프로세서 코어들) 및/또는 메인 메모리(또는 메인 메모리 유닛들)를 특성화하는 변수들, 예컨대 이른바 "CPU 번호"를 포함한다. 그 결과, 순서의 결정이 마찬가지로 바람직하게 개선될 수 있다. 또 다른 구현예에서, 제3 구성 정보는 Rx 모드를 위해 필요한 CPU 번호들만을 포함한다.
또 다른 구현예에서, 본원의 직접 메모리 액세스 제어 장치는 제4 구성 정보를 포함하며, 상기 제4 구성 정보는 정보 블록들의 전송을 위한 각각의 소스 및/또는 각각의 타깃을 특성화한다. 그 결과, 정보 블록들은 예컨대 메인 메모리(시스템 RAM) 또는 컴퓨팅 유닛에 할당된 각각의 메인 메모리 유닛(로컬 CPU RAM) 내의 전용 버퍼 메모리(전용 버퍼) 내로, 또는 그 링 버퍼 메모리(링 버퍼) 내로 전송될 수 있다. 이 경우, 구성에 의해서는, 각각의 필요한 전송 유형 또는 각각의 전송 타깃이 바람직하게 사전 설정될 수 있다. 이는 특히 Rx 모드에 관련될 수 있다.
일 구현예에서, 본원의 직접 메모리 액세스 제어 장치는, 특히 Tx 모드의 수행을 위해서만 형성된다. 또 다른 구현예에서, 본원의 직접 메모리 액세스 제어 장치는 특히 Rx 모드의 수행을 위해서만 형성된다.
또 다른 구현예에서, 메인 메모리를 구비한 컴퓨팅 유닛을 위한 직접 메모리 액세스 제어 장치가 제안되며, 상기 직접 메모리 액세스 제어 장치는 컴퓨팅 유닛을 메인 메모리와 연결하는 버스 시스템과 직접 메모리 액세스 제어 장치의 연결을 위한 연결부를 포함하고, 상기 직접 메모리 액세스 제어 장치는, 하기의 단계들, 즉: 통신 모듈로부터 버스 시스템과 연결된 메인 메모리로의 전송을 위해 상기 통신 모듈에 의해 제공되는 2개 이상의 정보 블록의 제어 정보를 판독 입력하는 단계로서, 상기 제어 정보가 메인 메모리로의 전송을 위한 각각의 정보 블록의 우선순위를 특성화하는, 단계; 각각의 우선순위에 따라서 메인 메모리로 정보 블록들을 전송하기 위한 순서를 결정하는 단계; 결정된 순서에 따라서, 통신 모듈로부터 메인 메모리로의 직접 메모리 액세스를 이용하여, 상기 통신 모듈로부터 메인 메모리로 정보 블록들을 전송하는 단계;를 실행하도록 구성되는 것을 특징으로 한다. 그에 따라, 본 구현예는, 특히 본 구현예의 또 다른 변형예들에서 선택적으로 똑같이 고려될 수 있는 Tx 방향으로의 데이터 전송과 무관하게, Rx 방향(다시 말해 통신 모듈로부터 메인 메모리 쪽 방향)의 데이터 전송을 정의한다.
또한, 본 발명은 메인 메모리를 포함한 컴퓨팅 유닛을 위한 직접 메모리 액세스 제어 장치를 작동시키기 위한 방법에 관한 것이며, 직접 메모리 액세스 제어 장치는 컴퓨팅 유닛을 메인 메모리와 연결하는 버스 시스템과 직접 메모리 액세스 제어 장치의 연결을 위한 연결부를 포함한다. 이 경우, 상기 방법은 하기 단계들을 포함한다.
- 버스 시스템과 연결된 통신 모듈로의 전송을 위해 컴퓨팅 유닛에 의해 제공되는, 메인 메모리 내에 저장된 2개 이상의 정보 블록의 제어 정보를 판독 입력하는 단계로서, 상기 제어 정보가 통신 모듈로의 전송을 위한 각각의 정보 블록의 우선순위를 특성화하는, 단계;
- 각각의 우선순위에 따라서 통신 모듈로 정보 블록들을 전송하기 위한 순서를 결정하는 단계; 및
- 결정된 순서에 따라서, 메인 메모리로부터 통신 모듈로의 직접 메모리 액세스를 이용하여, 메인 메모리로부터 통신 모듈로 정보 블록들을 전송하는 단계.
따라서 앞서 Tx 모드를 위한 본원의 직접 메모리 액세스 제어 장치에 대해 상세히 기술한 것과 같은 상응하는 장점들이 달성된다.
일 구현예에서, 본원의 방법은 하기 추가 단계들 중 하나 이상을 포함한다.
- 컴퓨팅 유닛으로부터 신호, 특히 트리거 신호 및/또는 ACK 비트("acknowledge") 및/또는 인터럽트를 수신하는 단계;
- 수신되는 신호에 따라서 제어 정보를 판독 입력하는 단계;
- 우선순위 평가를 제어하는 제1 구성 정보를 평가하는 단계;
- 제어 정보에서 제1 우선순위 및/또는 제2 우선순위를 결정하는 단계;
- 제1 구성 정보 그리고 각각의 제1 및/또는 각각의 제2 우선순위들에 따라서 통신 모듈로 정보 블록들을 전송하기 위한 순서를 결정하는 단계로서, 상기 순서가 선택적으로 각각의 제1 우선순위들 또는 각각의 제2 우선순위들에 따라, 또는 각각의 제1 및 각각의 제2 우선순위들에 따라서 결정되며, 특히 각각의 제1 우선순위들이 상이하다면 각각의 제1 우선순위에 따라서, 또는 각각의 제1 우선순위들이 동일하다면 각각의 제2 우선순위에 따라서 통신 모듈로 정보 블록들을 전송하기 위한 순서를 결정하는 단계;
- 직접 메모리 액세스 제어 장치로부터 통신 모듈로 전송 요청("Request")을 전송하는 단계; 및
- 메인 메모리로부터 통신 모듈로 정보 블록의 성공적인 전송을 위해 상기 컴퓨팅 유닛으로 승인 신호를 송신하고, 그리고/또는 정보 블록 내에 플래그를 설정하거나 재설정하는 단계.
따라서 앞서 Tx 모드를 위한 본원의 직접 메모리 액세스 제어 장치의 추가 단계들에 대해 상세히 기술한 것과 같은 상응하는 장점들이 달성된다.
또 다른 구현예에서, 본원의 방법은 하기 단계들을 포함한다.
- 통신 모듈로부터 버스 시스템과 연결된 메인 메모리로의 전송을 위해 상기 통신 모듈에 의해 제공되는 2개 이상의 정보 블록의 제어 정보를 판독 입력하는 단계로서, 상기 제어 정보는 메인 메모리로의 전송을 위한 각각의 정보 블록의 우선순위를 특성화하는, 단계;
- 각각의 우선순위에 따라서 메인 메모리로 정보 블록들의 전송을 위한 순서를 결정하는 단계; 및
- 결정된 순서에 따라서, 통신 모듈로부터 메인 메모리로의 직접 메모리 액세스를 이용하여, 상기 통신 모듈로부터 메인 메모리로 정보 블록들을 전송하는 단계.
따라서 앞서 Rx 모드를 위한 직접 메모리 액세스 제어 장치에 대해 상세히 기술한 것과 같은 상응하는 장점들이 달성된다.
또 다른 구현예에서, 본원의 방법은 하기 추가 단계들 중 하나 이상을 포함한다.
- 통신 모듈로부터 신호, 특히 트리거 신호를 수신하고, 그럼으로써 직접 메모리 액세스 제어 장치로 하여금 후속하여 제어 정보의 판독 입력을 수행할 수 있게 하는 단계;
- 수신되는 신호에 따라서, 제어 정보, 특히 통신 모듈에 의해 준비되는 2개 이상의 정보 블록의 제어 정보를 판독 입력하는 단계;
- 우선순위 평가를 제어하는 제1 구성 정보를 평가하는 단계;
- 제어 정보에서 제1 우선순위 및/또는 제2 우선순위를 결정하는 단계;
- 제1 구성 정보들 그리고 각각의 제1 및/또는 각각의 제2 우선순위들에 따라서 메인 메모리로 정보 블록들을 전송하기 위한 순서를 결정하는 단계로서, 상기 순서가 선택적으로 각각의 제1 우선순위들 또는 각각의 제2 우선순위들에 따라, 또는 각각의 제1 및 각각의 제2 우선순위들에 따라서 결정되며, 특히 각각의 제1 우선순위들이 상이하다면 각각의 제1 우선순위에 따라서, 또는 각각의 제1 우선순위들이 동일하다면 각각의 제2 우선순위에 따라서 메인 메모리로 정보 블록들을 전송하기 위한 순서를 결정하는 단계;
- 전송할 정보 블록 내에 플래그, 특히 신규 플래그를 설정하고, 그리고/또는 컴퓨팅 유닛으로 인터럽트를 송신하는 단계로서, 신규 플래그 또는 인터럽트는 메인 메모리로의 정보 블록의 전송 성공을 컴퓨팅 유닛으로 통지하기 위해 제공되는, 단계;
- 메인 메모리 내의 타깃 주소 영역을 결정하고, 그리고/또는 메인 메모리의 로컬 메인 메모리 유닛을 결정하는 단계; 및
- 통신 모듈로부터 메인 메모리로 정보 블록의 성공적인 전송을 위해 상기 통신 모듈로 승인 신호를 송신하고, 그리고/또는 통신 모듈 내에 플래그를 설정하는 단계.
따라서 앞서 Rx 모드를 위한 직접 메모리 액세스 제어 장치의 추가 단계들에 대해 상세히 기술한 것과 같은 상응하는 장점들이 달성된다.
또 다른 구현예에서, 본원의 방법은 하기 단계들을 포함한다.
- 버스 시스템과 연결된 통신 모듈로의 전송을 위해 컴퓨팅 유닛에 의해 제공되는, 메인 메모리 내에 저장된 하나 이상의 제1 정보 블록의 제어 정보를 판독 입력하는 단계로서, 상기 제어 정보는 통신 모듈로의 전송을 위한 하나 이상의 제1 정보 블록의 우선순위를 특성화하는, 단계;
- 통신 모듈로부터 버스 시스템과 연결된 메인 메모리로의 전송을 위해 상기 통신 모듈에 의해 제공되는 하나 이상의 제2 정보 블록의 제어 정보를 판독 입력하는 단계로서, 상기 제어 정보는 메인 메모리로의 전송을 위한 하나 이상의 제2 정보 블록의 우선순위를 특성화하는, 단계;
- 하나 이상의 제1 및 하나 이상의 제2 정보 블록의 각각의 우선순위에 따라서 하나 이상의 제1 정보 블록 및 하나 이상의 제2 정보 블록의 전송을 위한 순서를 결정하는 단계; 및
- 결정된 순서에 따라서, 직접 메모리 액세스를 이용하여, 메인 메모리로부터 통신 모듈로 하나 이상의 제1 정보 블록을 전송하는 단계, 및/또는 통신 모듈로부터 메인 메모리로 하나 이상의 제2 정보 블록을 전송하는 단계.
따라서 앞서 혼합된 Tx 모드 및 Rx 모드를 위한 직접 메모리 액세스 제어 장치에 대해 상세히 기술한 것과 같은 상응하는 장점들이 달성된다. 이 경우, 자명한 사실로서, 혼합된 Tx 모드 및 Rx 모드에 대해서도, 적용할 수 있다면, 앞서 Tx 모드 및 Rx 모드에 대해 각각 별도로 기술한 "추가" 단계들이 본원의 방법을 위해 바람직하게 보충될 수 있다.
특히 더욱 바람직한 또 다른 실시예의 경우, 본원의 직접 메모리 액세스 제어 장치를 이용하여 게이트웨이 기능을 구현할 수 있다. 통신 모듈 내에서 메시지의 수신 후에, 상응하는 데이터는 직접 메모리 액세스 제어 장치를 통해 예컨대 컴퓨팅 유닛의 메모리로 전송되어 그곳에서 컴퓨팅 유닛을 위해 제공된다. 동일한 데이터가 바람직하게는 계속하여 다른 통신 모듈들로의 송출을 위해서도 이용될 수 있다. 다시 말하면, 제1 단계에서 본원의 직접 메모리 액세스 제어 장치를 통해 맨 먼저 컴퓨팅 유닛의 메모리로 전송되는 데이터(Rx 방향)는, 제2 단계에서 본원의 직접 메모리 액세스 제어 장치로부터 다른 가입자들로 송신하기 위해 동일한 및/또는 다른 통신 모듈들, 특히 MCAN 모듈들로 전송될 수 있다(Tx 방향). 이 경우, 상이한 CAN 노드들로부터 Rx 데이터를 수집하고, 특정 메시지만을 추가 송신을 위해 마킹하는 점을 생각해볼 수 있다. 또한, 일 실시예에 따라서, 바람직하게는 정해진 시간 간격들로 메시지들을 송출하는 가능성도 있다. 본 실시예의 특별한 장점은, 게이트웨이 기능이 제어용 컴퓨팅 유닛 또는 CPU 없이도 실행되고, 그로 인해 추가 성능도 요구하지 않는다는 점에 있다.
하기에서 본 발명의 실시예들을 도면을 참조하여 설명한다.
도 1은 버스를 구비한 컴퓨터 시스템에 대한 매우 간소화된 블록회로도이다.
도 2는 복수의 컴퓨팅 유닛과 이들 컴퓨팅 유닛에 각각 할당되는 메인 메모리 유닛들을 포함하는 컴퓨터 시스템의 제1 실시예를 도시한 도면이다.
도 3은 복수의 컴퓨팅 유닛과 이들 컴퓨팅 유닛에 대해 공통인 하나의 메인 메모리를 포함하는 컴퓨터 시스템의 제2 실시예를 도시한 도면이다.
도 4는 직접 메모리 액세스의 수행을 위한 도 2 또는 도 3에 따른 컴퓨터 시스템의 작동 방법의 제1 실시예의 흐름도이다.
도 5는 직접 메모리 액세스의 실행을 위한 방법의 제2 실시예의 흐름도이다.
도 6은 직접 메모리 액세스의 실행을 위한 방법의 제3 실시예의 흐름도이다.
모든 도면에서 기능상 대등한 요소들 및 변수들에 대해, 상이한 실시예들에서도 동일한 도면부호들이 이용된다.
도 1에는, 컴퓨팅 유닛(20); 메인 메모리(30); 및 메인 메모리(30)와 컴퓨팅 유닛(20)을 연결하는 버스 시스템(12)과 각각 연결되어 있는 직접 메모리 액세스 제어 장치(40);를 포함하는 컴퓨터 시스템(10)에 대한 매우 간소화된 블록회로도가 도시되어 있다. 또한, 도 1에는, 버스 시스템(12)과 연결되는 통신 모듈(50)도 도시되어 있다.
도 2에는, 본원에서 복수의 프로세서 코어 및 이들 프로세서 코어에 각각 할당된 메인 메모리 유닛들(30_1, 30_2 내지 30_n)을 구비한 컴퓨팅 유닛(20)을 포함하는 컴퓨터 시스템(10)이 도시되어 있다. 메인 메모리 유닛들(30_1, 30_2 내지 30_n)은 함께 컴퓨터 시스템(10)의 하나의 메인 메모리(30)를 형성한다. 상술한 프로세서 코어들은 본원에서 컴퓨팅 유닛(20_1, 20_2 내지 20_n)으로 지칭된다.
또한, 컴퓨터 시스템(10)은 직접 메모리 액세스 제어 장치(40)와 통신 모듈(50)도 포함한다.
일 실시예에서, 통신 모듈(50)은, 오직 하나의 프로세서 코어만을 포함하는 컴퓨팅 유닛(20)과의 작동을 위해 형성된다. 또 다른 실시예에서, 통신 모듈(50)은 복수의 프로세서 코어와의 작동을 위해서도 형성된다. 통신 모듈(50)의 두 실시예는 도 2 또는 도 3의 컴퓨터 시스템(10) 내에서 대안으로 이용될 수 있다.
메인 메모리(30) 또는 메인 메모리 유닛들(30_1, 30_2 내지 30_n)은 예컨대 "외장" RAM, 즉 랜덤 액세스 메모리(random access memory)일 수 있거나, 컴퓨팅 유닛(20) 또는 컴퓨팅 유닛들(20_1, 20_2, 20_n) 전용의 "내장" RAM일 수 있다.
컴퓨팅 유닛(20), 메인 메모리 유닛들(30_1 내지 30_n), 직접 메모리 액세스 제어 장치(40) 및 통신 모듈(50)은 공통 버스 시스템(12)(도 1 참조)을 통해 서로 연결되며, 상기 공통 버스 시스템을 통해 정보 블록들(60)이 교환될 수 있다. 정보 블록들(60)은 "유효 데이터" 및/또는 제어 정보를 포함할 수 있다. 본원에서는, 메인 메모리(30)와 통신 모듈(50) 간에 교환되거나 교환되어야 하는 정보 블록들(60)만 고려된다.
버스 시스템은 예컨대 제1 개수의 주소 라인들을 구비한 주소 버스와 제2 개수의 데이터 라인들을 구비한 데이터 버스를 포함하는 병렬 버스 시스템으로서 형성될 수 있다.
도 2에서 메인 메모리 유닛들(30_1, 30_2 내지 30_n)과 직접 메모리 액세스 제어 장치(40) 사이에, 그리고 직접 메모리 액세스 제어 장치(40)와 통신 모듈(50) 사이에 도시된 양방향 화살표들은 본원에서 각각의 기능 할당 및 단지 조건부로만 각각의 물리적 연결을 특성화한다.
또한, 도 2의 왼쪽에는, 하기에서 훨씬 더 상세하게 설명되는 바와 같은 "Tx 모드" 또는 "Rx 모드"와 관련하여 정보 블록들(60)을 위한 전송 방향을 특성화하는 화살표들도 도시되어 있다.
통신 모듈(50)은 가능한 복수의 정보 블록(60)을 송신하거나 수신하도록 형성되며, 정보 블록들(60)은, 하기에서 훨씬 더 상세하게 설명되는 것처럼, 특정 우선순위를 통해 각각 특성화된다. 바람직하게 통신 모듈(50)은, 예컨대 이산 라인들을 통해, 또는 하나 또는 복수의 버스(미도시)를 통해 통신 모듈(50)과 통신할 수 있는 복수의 (미도시한) 데이터 소스 및/또는 데이터 싱크(data sink)와 연결된다.
본원에서, 통신 모듈(50)은, 본원에서 "논리 유닛들"로서 지칭되는 복수의 CAN 버스 가입자가 연결되어 있는 미도시한 CAN 버스와 통신할 수 있는 이른바 "MCAN 모듈"을 포함한다. 축약어 "CAN"은 "Controller Area Network"를 의미한다. 여기서 알파벳 "M"은 선택적인 생산자별 명칭 첫자를 나타낸다.
예컨대 MCAN 모듈 또는 통신 모듈(50)은 특히 하기 부분 회로들을 포함한다.
- 버스 시스템(12)용 인터페이스 관리 장치(interface management logic);
- 송신 버퍼(transmit buffer);
- 하나 또는 복수의 수신 버퍼(receive buffer);
- 비트 스트림 프로세서(bit stream processor);
- 에러 관리 장치(error management logic);
- 송수신 로직(transceive logic);
- 비트 타이밍 로직(bit timing logic); 및/또는
- 연결된 CAN 버스 시스템용 라인 인터페이스 로직(line interface logic).
또한, 특히 도 2에는, 메인 메모리(30)를 구비한 컴퓨팅 유닛(20)을 위한 직접 메모리 액세스 제어 장치(40)가 도시되어 있으며, 이 직접 메모리 액세스 제어 장치(40)는 컴퓨팅 유닛(20)을 메인 메모리(30)와 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)의 연결을 위한 연결부를 포함한다. 직접 메모리 액세스 제어 장치(40)는 하기에서 도 4 내지 도 6에서 훨씬 더 상세하게 설명되는 다수의 방법 단계를 수행하도록 구성된다.
일 실시예에서, 컴퓨팅 유닛(20) 및/또는 메인 메모리(30) 및/또는 직접 메모리 액세스 제어 장치(40) 및/또는 각각의 정보 블록(60)은 특히 실질적으로 자명한 하기 변수들, 제어 정보 및/또는 구성 정보를 통해 특성화된다.
이른바 "Tx 구성"의 경우: CAN_ID(1...n) Data ACK.
이른바 "Rx 구성"의 경우: CAN_ID(1...n) Data NEW.
일 실시예에서, 컴퓨팅 유닛(20) 및/또는 메인 메모리(30) 및/또는 직접 메모리 액세스 제어 장치(40) 및/또는 각각의 정보 블록(60)은 특히 실질적으로 자명한 하기 변수들, 제어 정보 및/또는 구성 정보에 의해 특성화된다.
"Tx 구성"의 경우:
Figure pct00001
"Rx 구성"의 경우:
Figure pct00002
상기 구성 항목의 의미:
SrcAddr - 구성으로서의 소스 주소;
Len - 구성으로서의 길이 - 전송되어야 하는 바이트의 개수;
TargetAddr - 구성으로서의 타깃 주소;
ID(1...n) - 구성으로서의 Rx 메시지의 ID - 이는 CPU에 대한 인터럽트가 트리거링되어야 하는지의 판단을 위해 필요함.
CPUx - 메시지가 수신된 후에, CPUx에 대해 인터럽트가 트리거링됨. - 구성 비트;
NEW - 이는 신규 데이터가 수신되었음을 의미하며, DMA에 의해 설정되고 CPU에 의해 재설정됨.
Intr - 인터럽트 - 구성 비트이며, 메시지가 수신된 후에 인터럽트를 트리거링함을 의미함.
일 실시예에서, 각각의 우선순위는 비트 값들의 비교에 의해 결정되며, 비트 값들은 각각의 제어 정보의 섹션을 통해 특성화된다. 하기에 구현된 3개의 비트열은 일례를 나타낸 것이다. 이 경우, 각각의 비트열들은 좌측로부터 우측으로 비트 단위로 비교되며, 각각의 "0"은 각각의 "1"에 대해 우성이다.
0 / 0 / 0 / 1 / 0 / 0 / 1 / ... 0 / 0 / 1 비트열 1
0 / 0 / 0 / 0 / 0 / 1 / 0 / ... 0 / 0 / 0 비트열 2
0 / 0 / 0 / 0 / 0 / 0 / 1 / ... 0 / 0 / 0 비트열 3
상기 예시에 따라서, 비트열 3에 속하는 정보 블록이 우선 전송되고, 그런 다음 비트열 2에 속하는 정보 블록이 전송되며, 그런 다음 비트열 1에 속하는 정보 블록이 전송될 것이다.
도 3에는, 도 2와 유사하게, 컴퓨터 시스템(10)의 또 다른 실시예가 도시되어 있다. 도 2와 달리, 도 3에는, 모든 컴퓨팅 유닛(20_1, 20_2 내지 20_n)에 대해 공통인 하나의 메인 메모리(30)가 도시되어 있으며, 이 메인 메모리는 예컨대 하나 또는 복수의 집적 회로에 의해, 또는 하나 또는 복수의 이른바 "RAM 메모리 모듈"에 의해 형성된다.
도 4에는, 직접 메모리 액세스 제어 장치(40)를 작동시키기 위한 방법의 제1 실시예에 대한 흐름도가 도시되어 있으며, 정보 블록들(60)은 메인 메모리(30)로부터 통신 모듈(50) 쪽으로 전송되거나 전송되어야 한다. 이는, 계속하여 상기에서 도 2 및 도 3에서 지칭되는 "Tx 모드"에 상응하며, 예컨대 하기 단계들을 이용하여 수행될 수 있다:
- 컴퓨팅 유닛(20)으로부터 신호, 특히 트리거 신호 및/또는 ACK 비트("acknowledge") 및/또는 인터럽트를 수신하는 단계(102), 그리고 상기 신호의 수신 후에;
- 버스 시스템(12)과 연결된 통신 모듈(50)로의 전송을 위해 컴퓨팅 유닛(20)에 의해 제공되는, 메인 메모리(30) 내에 저장된 2개 이상의 정보 블록(60)의 제어 정보를 판독 입력하는 단계(104)로서, 상기 제어 정보는 통신 모듈(50)로의 전송을 위한 각각의 정보 블록(60)의 우선순위를 특성화하는, 단계;
이 경우, 제어 정보의 판독 입력 단계는 수신되는 신호에 따라서 수행되며, 예컨대 제어 정보의 판독 입력 단계는 신호의 수신 단계(102)를 통해 트리거링될 수 있다.
- 우선순위 평가를 제어하는 제1 구성 정보를 평가하는 단계(106);
- 제어 정보에서 제1 우선순위 및/또는 제2 우선순위를 결정하는 단계(108);
- 각각의 우선순위에 따라서 통신 모듈(50)로 정보 블록들(60)의 전송을 위한 순서를 결정하는 단계(110).
이 경우, 일 실시예에서, 통신 모듈(50)로 정보 블록들(60)의 전송을 위한 순서의 결정 단계(110)는 제1 구성 정보 그리고 각각의 제1 및/또는 각각의 제2 우선순위들에 따라서 수행되며, 상기 순서는 선택적으로 각각의 제1 우선순위들(블록 110a) 또는 각각의 제2 우선순위들(블록 110b)에 따라, 또는 각각의 제1 및 각각의 제2 우선순위들(블록 110c)에 따라서 결정된다.
이 경우, 일 실시예에서, 통신 모듈(50)로 정보 블록들(60)의 전송을 위한 순서의 결정(110)은, 각각의 제1 우선순위들이 상이하다면 각각의 제1 우선순위에 따라서, 또는 각각의 제1 우선순위들이 동일하다면 각각의 제2 우선순위에 따라서 수행된다.
- 직접 메모리 액세스 제어 장치(10)로부터 통신 모듈(50)로 전송 요청("Request")을 전송하는 단계;
- 결정된 순서에 따라서, 메인 메모리(30)로부터 통신 모듈(50)로의 직접 메모리 액세스를 이용하여, 메인 메모리(30)로부터 통신 모듈(50)로 정보 블록들(60)을 전송하는 단계(112);
- 메인 메모리(30)로부터 통신 모듈(50)로 정보 블록(60)의 성공적인 전송을 위해 컴퓨팅 유닛(20)으로 승인 신호를 송신하는 단계(114), 및/또는 정보 블록(60) 내에 플래그를 설정하거나 재설정하는 단계.
일 실시예에서, 직접 메모리 액세스 제어 장치(10) 내의 블록(102)에서 수신되는 ACK 비트는 블록(114)에서 송신된 승인 신호의 ACK 비트와 비교될 수 있다.
이런 점이 논리적으로 가능하고 타당할 경우에는, 도 4에서 기술되는 방법 단계들이 경우에 따라 다른 순서로 진행될 수 있다.
일 실시예에서, 도 4에 기술한 방법은 적어도 부분적으로 도면부호들 102, 106, 110a, 110b, 110c 및 114로 표시된 선택적인, 따라서 도 4에서는 파선으로 도시된 단계들 없이 수행된다.
도 5에는, 직접 메모리 액세스 제어 장치(40)를 작동시키기 위한 방법의 제2 실시예에 대한 흐름도가 도시되어 있으며, 정보 블록들(60)은 통신 모듈(50)로부터 메인 메모리(30) 쪽으로 전송되거나 전송되어야 한다. 이는 앞서 도 2 및 도 3에서 지칭되는 "Rx 모드"에 상응하며, 예컨대 하기 단계들을 통해 수행될 수 있다.
- 통신 모듈(50)로부터 신호, 특히 트리거 신호를 수신하는 단계(202)이며, 그럼으로써 통신 모듈(50) 내에서는, 메인 메모리(30)로, 또는 하나 또는 복수의 메인 메모리 유닛(30_1 내지 30_n)으로 전송하기 위한 하나 이상의 정보 블록(60)이 준비되는 점이 표시되며, 그럼으로써 직접 메모리 액세스 제어 장치(10)로 하여금 후속하여 제어 정보의 판독 입력을 수행하게 하는 단계. 상기 신호의 수신 단계 이후;
- 통신 모듈(50)로부터 버스 시스템(12)과 연결된 메인 메모리(30)로의 전송을 위해 상기 통신 모듈(50)에 의해 제공되는 2개 이상의 정보 블록(60)의 제어 정보를 판독 입력하는 단계(204)로서, 상기 제어 정보는 메인 메모리(30)로의 전송을 위한 각각의 정보 블록(60)의 우선순위를 특성화하는, 단계;
- 우선순위 평가를 제어하는 "제1" 구성 정보를 평가하는 단계(206). 예컨대 제1 구성 정보는 순서의 결정을 위한 선택사항들을 포함한다[계속하여 하기에서 단계 (1) 및 (2) 참조].
일 실시예에서, 직접 메모리 액세스 제어 장치(40)는 "제2" 구성 정보를 포함하며, 제2 구성 정보는, 통신 모듈(50)과 통신하는 각각의 논리 유닛들, 및/또는 각각의 논리 유닛들에 의해 송신될, 그리고/또는 수신될 제어 정보를 특성화한다. 예컨대 제2 구성 정보는 Rx 모드를 위해 필요한 모든 CAN-ID를 포함한다.
일 실시예에서, 직접 메모리 액세스 제어 장치(40)는 "제3" 구성 정보를 포함하며, 제3 구성 정보는 컴퓨팅 유닛(20, 20_1 내지 20_n)(CPU 번호) 및/또는 메인 메모리(30, 30_1 내지 30_n)를 특성화하는 변수들을 포함한다.
- 제어 정보에서 제1 우선순위 및/또는 제2 우선순위를 결정하는 단계(208).
- 각각의 우선순위에 따라서 메인 메모리(30)로 정보 블록들(60)의 전송을 위한 순서를 결정하는 단계(210).
또한, 각각의 정보 블록(60)이 어느 컴퓨팅 유닛들(20_1 내지 20_n)로, 또는 어느 전용 메인 메모리 유닛(30_1 내지 30_n)으로 전송되어야 하는지도 결정된다. 다시 말해:
일 실시예에서, 직접 메모리 액세스 제어 장치(40)는 제4 구성 정보를 포함하며, 제4 구성 정보는 정보 블록들(60)의 전송을 위한 각각의 소스 및/또는 각각의 타깃을 특성화한다[하기 블록(211a) 참조].
- 메인 메모리(30)(도 3 참조) 내에서 타깃 주소 영역을 결정하는 단계(211a), 및/또는 메인 메모리(30)의 로컬 메인 메모리 유닛(30_1 내지 30_n)(도 2 참조)을 결정하는 단계.
- 전송할 정보 블록(60) 내에 플래그, 특히 신규 플래그를 설정하는 단계(211b), 및/또는 컴퓨팅 유닛(20)으로, 또는 각각의 컴퓨팅 유닛(20_1 내지 20_n)으로 인터럽트를 송신하는 단계로서, 상기 신규 플래그 또는 인터럽트는 메인 메모리(30)(또는 30_1 내지 30_n)로 수행되는 정보 블록(60)의 전송을 컴퓨팅 유닛(20)(또는 20_1 내지 20_n)으로 통지하기 위해 제공되는, 단계.
- 결정된 순서에 따라서, 통신 모듈(50)로부터 메인 메모리(30)로의 직접 메모리 액세스를 이용하여, 통신 모듈(50)로부터 메인 메모리(30)로 정보 블록들(60)을 전송하는 단계(212).
- 통신 모듈(50)로부터 메인 메모리(30)로 정보 블록(60)의 성공적인 전송을 위해 상기 통신 모듈(50)로 승인 신호를 송신하는 단계(214), 및/또는 통신 모듈(50) 내에 플래그를 설정하는 단계. 그에 따라서, 통신 모듈(50) 내에서는 Rx 모드를 위해 제공된 기억 영역이 적어도 부분적으로 다시 릴리스될 수 있다.
이런 점이 논리적으로 가능하고 타당할 경우에는, 도 5에서 기술되는 방법 단계들이 경우에 따라 다른 순서로 진행될 수 있다.
일 실시예에서는 본원의 방법을 위해, 본원에서 CAN-ID에서 직접 결정되는 제1 우선순위만이 이용된다. 일 실시예에서는, 본원의 방법을 위해 제2 우선순위만이 이용된다.
일 실시예에서는, 본원의 방법을 위해, 제1 및 제2 우선순위가 이용되며, 하기 단계 (1) 및/또는 (2)가 실행된다.
단계 (1): 제1 구성 정보 그리고 각각의 제1 및/또는 각각의 제2 우선순위들에 따라서 메인 메모리(30)로 정보 블록들(60)를 전송하기 위한 순서를 결정하는 단계(210)로서, 상기 순서는 선택적으로 각각의 제1 우선순위들(블록 210a) 또는 각각의 제2 우선순위들(블록 210b)에 따라, 또는 각각의 제1 및 각각의 제2 우선순위들(블록 210c)에 따라서 결정되는, 단계.
단계 (2): 각각의 제1 우선순위들이 상이하다면 각각의 제1 우선순위에 따라서, 또는 각각의 제1 우선순위들이 동일하다면 각각의 제2 우선순위에 따라서 메인 메모리(30)로 정보 블록들(60)을 전송하기 위한 순서를 결정하는 단계.
일 실시예에서, 도 5에서 기술되는 방법은 적어도 부분적으로 도면부호들 202, 206, 210a, 210b, 210c, 211b 및 214로 표시되는 단계들 없이 수행되므로, 상기 단계들은 도 5에서는 파선으로 도시되어 있다.
도 6에는, 직접 메모리 액세스 제어 장치(40)를 작동시키기 위한 방법의 제3 실시예에 대한 흐름도가 도시되어 있으며, 정보 블록들(60)은 메인 메모리(30)로부터 통신 모듈(50) 쪽으로뿐만 아니라 통신 모듈(50)로부터 메인 메모리(30) 쪽으로도 전송되거나 전송되어야 한다. 이는 실질적으로 앞서 도 4 및 도 5를 토대로 기술한 "Tx 모드" 및 "Rx 모드"의 공동 사용 또는 공동 수행에 상응하며, 예컨대 하기 단계들에 의해 수행될 수 있다.
- 버스 시스템(12)과 연결된 통신 모듈(50)로의 전송을 위해 컴퓨팅 유닛(20)에 의해 제공되는, 메인 메모리 내에 저장된 하나 이상의 제1 정보 블록(60)의 제어 정보를 판독 입력하는 단계(104)로서, 상기 제어 정보는 통신 모듈(50)로의 전송을 위한 하나 이상의 제1 정보 블록(60)의 우선순위를 특성화하는, 단계;
- 통신 모듈(50)로부터 버스 시스템(12)과 연결된 메인 메모리(30)로의 전송을 위해 상기 통신 모듈(50)에 의해 제공되는 하나 이상의 제2 정보 블록(60)의 제어 정보를 판독 입력하는 단계(204)로서, 상기 제어 정보가 메인 메모리(30)로의 전송을 위한 하나 이상의 제2 정보 블록(60)의 우선순위를 특성화하는, 단계;
- 하나 이상의 제1 및 하나 이상의 제2 정보 블록(60)의 각각의 우선순위에 따라서 하나 이상의 제1 정보 블록(60) 및 하나 이상의 제2 정보 블록(60)의 전송을 위한 순서를 결정하는 단계(310); 및
- 결정된 순서에 따라서, 직접 메모리 액세스를 이용하여, 메인 메모리(30)로부터 통신 모듈(50)로 하나 이상의 제1 정보 블록(60)을 전송하는 단계(112), 및/또는 통신 모듈(50)로부터 메인 메모리(30)로 하나 이상의 제2 정보 블록(60)을 전송하는 단계(212).
자명한 사실로서, 도 6에 따른 방법에 대한 제3 실시예는, 특히 도 4 및 도 5에 대부분 파선으로 도시된 블록들(102, 106, 110a, 110b, 110c, 114, 202, 206, 210a, 210b, 210c, 211a, 211b 및 214)이 각각 적용될 수 있다면, 이들 블록에 의해 바람직하게 보충될 수 있다. 이는 더 나은 이해를 돕기 위해 여기서는 다시 기술하지 않는다.

Claims (11)

  1. 메인 메모리(30; 30_1 내지 30_n)를 구비한 컴퓨팅 유닛(20; 20_1 내지 20_n)을 위한 직접 메모리 액세스 제어 장치(40)로서, 이 직접 메모리 액세스 제어 장치(40)는 컴퓨팅 유닛(20; 20_1 내지 20_n)을 메인 메모리(30; 30_1 내지 30_n)와 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)의 연결을 위한 연결부를 포함하는, 직접 메모리 액세스 제어 장치에 있어서,
    상기 직접 메모리 액세스 제어 장치(40)는,
    - 버스 시스템(12)과 연결된 통신 모듈(50)로의 전송을 위해 컴퓨팅 유닛(20; 20_1 내지 20_n)에 의해 제공되는, 메인 메모리(30; 30_1 내지 30_n) 내에 저장된 2개 이상의 정보 블록(60)의 제어 정보를 판독 입력하는 단계(104)로서, 상기 제어 정보가 통신 모듈(50)로의 전송을 위한 각각의 정보 블록(60)의 우선순위를 특성화하는, 단계와;
    - 각각의 우선순위에 따라서 통신 모듈(50)로 정보 블록들(60)을 전송하기 위한 순서를 결정하는 단계(110)와;
    - 결정된 순서에 따라서, 메인 메모리(30; 30_1 내지 30_n)로부터 통신 모듈(50)로의 직접 메모리 액세스를 이용하여, 메인 메모리(30; 30_1 내지 30_n)로부터 통신 모듈(50)로 정보 블록들(60)을 전송하는 단계(112);
    를 실행하도록 구성되는 것을 특징으로 하는, 직접 메모리 액세스 제어 장치(40).
  2. 제1항에 있어서, 상기 직접 메모리 액세스 제어 장치(40)는, 하기의 추가 단계들, 즉:
    - 컴퓨팅 유닛(20; 20_1 내지 20_n)으로부터 신호, 특히 트리거 신호 및/또는 ACK 비트("acknowledge") 및/또는 인터럽트를 수신하는 단계(102);
    - 수신되는 신호에 따라서 제어 정보를 판독 입력하는 단계(104);
    - 우선순위 평가를 제어하는 제1 구성 정보를 평가하는 단계(106);
    - 제어 정보에서 제1 우선순위 및/또는 제2 우선순위를 결정하는 단계(108);
    - 제1 구성 정보 그리고 각각의 제1 및/또는 각각의 제2 우선순위에 따라 통신 모듈(50)로 정보 블록들(60)을 전송하기 위한 순서를 결정하는 단계(110a, 110b, 110c)로서, 상기 순서가 선택적으로 각각의 제1 우선순위 또는 각각의 제2 우선순위에 따라, 또는 각각의 제1 및 각각의 제2 우선순위들에 따라 결정되며, 특히, 각각의 제1 우선순위들이 상이하다면 각각의 제1 우선순위에 따라서, 또는 각각의 제1 우선순위들이 동일하다면 각각의 제2 우선순위에 따라서 통신 모듈(50)로 정보 블록들(60)을 전송하기 위한 순서를 결정하는 단계(110a, 110b, 110c);
    - 직접 메모리 액세스 제어 장치(10)로부터 통신 모듈(50)로 전송 요청을 전송하는 단계; 및
    - 메인 메모리(30; 30_1 내지 30_n)로부터 통신 모듈(50)로 정보 블록(60)의 성공적인 전송을 위해 컴퓨팅 유닛(20; 20_1 내지 20_n)으로 승인 신호를 송신하고, 그리고/또는 정보 블록(60) 내에 플래그를 설정하거나 재설정하는 단계(114);
    중 하나 이상을 실행하도록 구성되는, 직접 메모리 액세스 제어 장치(40).
  3. 제1항 또는 제2항에 있어서, 상기 직접 메모리 액세스 제어 장치(40)는,
    - 통신 모듈(50)로부터 버스 시스템(12)과 연결된 메인 메모리(30; 30_1 내지 30_n)로의 전송을 위해 상기 통신 모듈(50)에 의해 제공되는 2개 이상의 정보 블록(60)의 제어 정보를 판독 입력하는 단계(204)로서, 상기 제어 정보는 메인 메모리(30; 30_1 내지 30_n)로의 전송을 위한 각각의 정보 블록(60)의 우선순위를 특성화하는, 단계;
    - 각각의 우선순위에 따라서 메인 메모리(30; 30_1 내지 30_n)로 정보 블록들(60)의 전송을 위한 순서를 결정하는 단계(210); 및
    - 결정된 순서에 따라서, 통신 모듈(50)로부터 메인 메모리(30; 30_1 내지 30_n)로의 직접 메모리 액세스를 이용하여, 상기 통신 모듈(50)로부터 메인 메모리(30; 30_1 내지 30_n)로 정보 블록들(60)을 전송하는 단계(212);
    를 실행하도록 구성되는, 직접 메모리 액세스 제어 장치(40).
  4. 제3항에 있어서, 상기 직접 메모리 액세스 제어 장치(40)는, 하기의 추가 단계들, 즉:
    - 통신 모듈(50)로부터 신호, 특히 트리거 신호를 수신하는 단계(202)이며, 그럼으로써 특히 직접 메모리 액세스 제어 장치(10)로 하여금 후속하여 제어 정보의 판독 입력을 수행할 수 있게 하는 단계;
    - 수신되는 신호에 따라서, 제어 정보, 특히 통신 모듈(50)에 의해 준비되는 2개 이상의 정보 블록(60)의 제어 정보를 판독 입력하는 단계(204);
    - 우선순위 평가를 제어하는 제1 구성 정보를 평가하는 단계(206);
    - 제어 정보에서 제1 우선순위 및/또는 제2 우선순위를 결정하는 단계(208);
    - 제1 구성 정보 그리고 각각의 제1 및/또는 각각의 제2 우선순위에 따라 메인 메모리(30; 30_1 내지 30_n)로 정보 블록들(60)의 전송을 위한 순서를 결정하는 단계(210a, 210b, 210c)로서, 상기 순서가 선택적으로 각각의 제1 우선순위 또는 각각의 제2 우선순위에 따라, 또는 각각의 제1 및 각각의 제2 우선순위들에 따라 결정되며, 특히 각각의 제1 우선순위들이 상이하다면 각각의 제1 우선순위에 따라서, 또는 각각의 제1 우선순위들이 동일하다면 각각의 제2 우선순위에 따라서 메인 메모리(30; 30_1 내지 30_n)로 정보 블록들(60)을 전송하기 위한 순서를 결정하는 단계(210a, 210b, 210c);
    - 전송할 정보 블록(60) 내에 플래그, 특히 신규 플래그를 설정하고, 그리고/또는 컴퓨팅 유닛(20; 20_1 내지 20_n)으로 인터럽트를 송신하는 단계(211b)로서, 특히 상기 신규 플래그 또는 선택적으로 상기 인터럽트는, 메인 메모리(30; 30_1 내지 30_n)로의 정보 블록(60)의 전송 성공을 컴퓨팅 유닛(20; 20_1 내지 20_n)으로 통지하기 위해 제공되는, 단계;
    - 메인 메모리(30) 내의 타깃 주소 영역을 결정하고, 그리고/또는 상기 메인 메모리(30; 30_1 내지 30_n)의 로컬 메인 메모리 유닛(30_1 내지 30_n)을 결정하는 단계(211a); 및
    - 통신 모듈(50)로부터 메인 메모리(30; 30_1 내지 30_n)로 정보 블록(60)의 성공적인 전송을 위해 상기 통신 모듈(50)로 승인 신호를 송신하고, 그리고/또는 상기 통신 모듈(50) 내에 플래그를 설정하는 단계(214);
    중 하나 이상을 실행하도록 구성되는, 직접 메모리 액세스 제어 장치(40).
  5. 제1항 내지 제4항 중 하나 이상의 항에 있어서, 상기 직접 메모리 액세스 제어 장치(40)는,
    - 버스 시스템(12)과 연결된 통신 모듈(50)로의 전송을 위해 컴퓨팅 유닛(20; 20_1 내지 20_n)에 의해 제공되는, 메인 메모리(30; 30_1 내지 30_n) 내에 저장된 하나 이상의 제1 정보 블록(60)의 제어 정보를 판독 입력하는 단계(104)로서, 상기 제어 정보가 통신 모듈(50)로의 전송을 위한 하나 이상의 제1 정보 블록(60)의 우선순위를 특성화하는, 단계;
    - 통신 모듈(50)로부터 버스 시스템(12)과 연결된 메인 메모리(30; 30_1 내지 30_n)로의 전송을 위해 상기 통신 모듈(50)에 의해 제공되는 하나 이상의 제2 정보 블록(60)의 제어 정보를 판독 입력하는 단계(204)로서, 상기 제어 정보는 메인 메모리(30; 30_1 내지 30_n)로의 전송을 위한 하나 이상의 제2 정보 블록(60)의 우선순위를 특성화하는, 단계;
    - 하나 이상의 제1 및 하나 이상의 제2 정보 블록(60)의 각각의 우선순위에 따라서 하나 이상의 제1 정보 블록(60) 및 하나 이상의 제2 정보 블록(60)의 전송을 위한 순서를 결정하는 단계(310); 및
    - 결정된 순서에 따라서, 직접 메모리 액세스를 이용하여, 메인 메모리(30; 30_1 내지 30_n)로부터 통신 모듈(50)로 하나 이상의 제1 정보 블록(60)을 전송하는 단계(112), 및/또는 통신 모듈(50)로부터 메인 메모리(30; 30_1 내지 30_n)로 하나 이상의 제2 정보 블록(60)을 전송하는 단계(212);
    를 실행하도록 구성되는, 직접 메모리 액세스 제어 장치(40).
  6. 제1항 내지 제5항 중 하나 이상의 항에 있어서, 상기 직접 메모리 액세스 제어 장치(40)는 제2 구성 정보를 포함하며, 상기 제2 구성 정보는, 통신 모듈(50)과 통신하는 각각의 논리 유닛들 및/또는 상기 각각의 논리 유닛들에 의해 송신될, 그리고/또는 수신될 제어 정보를 특성화하는, 직접 메모리 액세스 제어 장치(40).
  7. 제1항 내지 제6항 중 하나 이상의 항에 있어서, 상기 직접 메모리 액세스 제어 장치(40)는 제3 구성 정보를 포함하며, 상기 제3 구성 정보는, 컴퓨팅 유닛(20; 20_1 내지 20_n) 및/또는 메인 메모리(30; 30_1 내지 30_n)를 특성화하는 변수들을 포함하는, 직접 메모리 액세스 제어 장치(40).
  8. 제1항 내지 제7항 중 하나 이상의 항에 있어서, 상기 직접 메모리 액세스 제어 장치(40)는 제4 구성 정보를 포함하며, 상기 제4 구성 정보는 정보 블록들(60)의 전송을 위한 각각의 소스 및/또는 각각의 타깃을 특성화하는, 직접 메모리 액세스 제어 장치(40).
  9. 메인 메모리(30; 30_1 내지 30_n)를 포함한 컴퓨팅 유닛(20; 20_1 내지 20_n)을 위한 직접 메모리 액세스 제어 장치(40)를 작동시키기 위한 방법으로서, 상기 직접 메모리 액세스 제어 장치(40)는 컴퓨팅 유닛(20; 20_1 내지 20_n)을 메인 메모리(30; 30_1 내지 30_n)와 연결하는 버스 시스템(12)과 직접 메모리 액세스 제어 장치(40)의 연결을 위한 연결부를 포함하는, 직접 메모리 액세스 제어 장치의 작동 방법에 있어서, 상기 방법은,
    - 버스 시스템(12)과 연결된 통신 모듈(50)로의 전송을 위해 컴퓨팅 유닛(20; 20_1 내지 20_n)에 의해 제공되는, 메인 메모리(30; 30_1 내지 30_n) 내에 저장된 2개 이상의 정보 블록(60)의 제어 정보를 판독 입력하는 단계(104)로서, 상기 제어 정보가 통신 모듈(50)로의 전송을 위한 각각의 정보 블록(60)의 우선순위를 특성화하는 단계;
    - 각각의 우선순위에 따라서 통신 모듈(50)로 정보 블록들(60)을 전송하기 위한 순서를 결정하는 단계(110); 및
    - 결정된 순서에 따라서, 메인 메모리(30; 30_1 내지 30_n)로부터 통신 모듈(50)로의 직접 메모리 액세스를 이용하여, 메인 메모리(30; 30_1 내지 30_n)로부터 통신 모듈(50)로 정보 블록들(60)을 전송하는 단계(112);
    를 포함하는 것을 특징으로 하는, 직접 메모리 액세스 제어 장치의 작동 방법.
  10. 제9항에 있어서, 상기 방법은, 하기의 추가 단계들, 즉:
    - 컴퓨팅 유닛(20; 20_1 내지 20_n)으로부터 신호, 특히 트리거 신호 및/또는 ACK 비트("acknowledge") 및/또는 인터럽트를 수신하는 단계(102);
    - 수신되는 신호에 따라서 제어 정보를 판독 입력하는 단계(104);
    - 우선순위 평가를 제어하는 제1 구성 정보를 평가하는 단계(106);
    - 제어 정보에서 제1 우선순위 및/또는 제2 우선순위를 결정하는 단계(108);
    - 제1 구성 정보 그리고 각각의 제1 및/또는 각각의 제2 우선순위들에 따라서 통신 모듈(50)로 정보 블록들(60)을 전송하기 위한 순서를 결정하는 단계(110a, 110b, 110c)로서, 상기 순서가 선택적으로 각각의 제1 우선순위 또는 각각의 제2 우선순위에 따라, 또는 각각의 제1 및 각각의 제2 우선순위들에 따라 결정되며, 특히 각각의 제1 우선순위들이 상이하다면 각각의 제1 우선순위에 따라서, 또는 각각의 제1 우선순위들이 동일하다면 각각의 제2 우선순위에 따라서 통신 모듈(50)로 정보 블록들(60)을 전송하기 위한 순서를 결정하는 단계(110a, 110b, 110c);
    - 직접 메모리 액세스 제어 장치(10)로부터 통신 모듈(50)로 전송 요청을 전송하는 단계; 및
    - 메인 메모리(30; 30_1 내지 30_n)로부터 통신 모듈(50)로 정보 블록(60)의 성공적인 전송을 위해 상기 컴퓨팅 유닛(20; 20_1 내지 20_n)으로 승인 신호를 송신하고, 그리고/또는 정보 블록(60) 내에 플래그를 설정하거나 재설정하는 단계(114);
    중 하나 이상을 포함하는, 직접 메모리 액세스 제어 장치의 작동 방법.
  11. 제9항 또는 제10항에 있어서, 상기 방법은,
    - 통신 모듈(50)로부터 버스 시스템(12)과 연결된 메인 메모리(30; 30_1 내지 30_n)로의 전송을 위해 상기 통신 모듈(50)에 의해 제공되는 2개 이상의 정보 블록(60)의 제어 정보를 판독 입력하는 단계(204)로서, 상기 제어 정보는 메인 메모리(30; 30_1 내지 30_n)로의 전송을 위한 각각의 정보 블록(60)의 우선순위를 특성화하는, 단계;
    - 각각의 우선순위에 따라서 메인 메모리(30; 30_1 내지 30_n)로 정보 블록들(60)의 전송을 위한 순서를 결정하는 단계(210); 및
    - 결정된 순서에 따라서, 통신 모듈(50)로부터 메인 메모리(30; 30_1 내지 30_n)로의 직접 메모리 액세스를 이용하여, 상기 통신 모듈(50)로부터 메인 메모리(30; 30_1 내지 30_n)로 정보 블록들(60)을 전송하는 단계(212);
    를 포함하는, 직접 메모리 액세스 제어 장치의 작동 방법.
KR1020187027794A 2016-03-01 2017-02-21 메인 메모리를 구비한 컴퓨팅 유닛용 직접 메모리 액세스 제어 장치 Active KR102755886B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102016203307.7A DE102016203307A1 (de) 2016-03-01 2016-03-01 Speicherdirektzugriffssteuereinrichtung für eine einen Arbeitsspeicher aufweisende Recheneinheit
DE102016203307.7 2016-03-01
PCT/EP2017/053901 WO2017148743A1 (de) 2016-03-01 2017-02-21 Speicherdirektzugriffssteuereinrichtung für eine einen arbeitsspeicher aufweisende recheneinheit

Publications (2)

Publication Number Publication Date
KR20180117153A true KR20180117153A (ko) 2018-10-26
KR102755886B1 KR102755886B1 (ko) 2025-01-17

Family

ID=58108605

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187027794A Active KR102755886B1 (ko) 2016-03-01 2017-02-21 메인 메모리를 구비한 컴퓨팅 유닛용 직접 메모리 액세스 제어 장치

Country Status (6)

Country Link
US (1) US10713198B2 (ko)
EP (1) EP3423949B1 (ko)
KR (1) KR102755886B1 (ko)
CN (1) CN108701103B (ko)
DE (1) DE102016203307A1 (ko)
WO (1) WO2017148743A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20250181384A1 (en) * 2023-11-30 2025-06-05 Advanced Micro Devices, Inc. Task Graph Control of Data Transfer

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870622A (en) * 1995-06-07 1999-02-09 Advanced Micro Devices, Inc. Computer system and method for transferring commands and data to a dedicated multimedia engine
US6061748A (en) * 1996-12-24 2000-05-09 International Business Machines Corp. Method and apparatus for moving data packets between networks while minimizing CPU intervention using a multi-bus architecture having DMA bus
US20040136397A1 (en) * 2002-12-31 2004-07-15 Bapi Vinnakota DSP interface for packet processing
US20060259656A1 (en) * 2005-05-10 2006-11-16 Sullivan Mark J Simulating multiple virtual channels in switched fabric networks
US20080183913A1 (en) * 2007-01-31 2008-07-31 Samsung Electronics Co., Ltd. Method and apparatus for determining priorities in direct memory access device having multiple direct memory access request blocks

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2745521B2 (ja) * 1988-02-23 1998-04-28 株式会社日立製作所 フレーム送信方法
KR0160193B1 (ko) * 1995-12-30 1998-12-15 김광호 직접메모리접근 제어장치
CN1308747C (zh) * 2003-04-23 2007-04-04 统宝光电股份有限公司 对位的结构与方法
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
DE102005048582A1 (de) * 2005-10-06 2007-04-12 Robert Bosch Gmbh Teilnehmerschnittstelle zwischen einem Mikrocontroller und einem FlexRay-Kommunikationsbaustein, FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
US7523228B2 (en) * 2006-09-18 2009-04-21 International Business Machines Corporation Method for performing a direct memory access block move in a direct memory access device
CN101558396B (zh) * 2006-12-15 2011-12-14 密克罗奇普技术公司 直接存储器存取控制器
JP2008217659A (ja) * 2007-03-07 2008-09-18 Nec Corp Dma転送起動方法
US9152483B2 (en) * 2009-01-16 2015-10-06 F5 Networks, Inc. Network devices with multiple fully isolated and independently resettable direct memory access channels and methods thereof
US8566836B2 (en) * 2009-11-13 2013-10-22 Freescale Semiconductor, Inc. Multi-core system on chip
US20130100805A1 (en) * 2010-06-25 2013-04-25 Siemens Aktiengesellschaft Prioritized transfer of data telegrams
JP2015158894A (ja) * 2014-01-23 2015-09-03 株式会社リコー 画像形成装置、画像形成処理用データ転送制御方法、及び画像形成処理用データ転送制御プログラム
US10169256B2 (en) * 2014-01-31 2019-01-01 Silicon Laboratories Inc. Arbitrating direct memory access channel requests
DE102014207422A1 (de) * 2014-04-17 2015-10-22 Robert Bosch Gmbh Busschnittstelleneinheit und Betriebsverfahren hierfür
US9841795B2 (en) * 2014-09-22 2017-12-12 Nxp Usa, Inc. Method for resetting an electronic device having independent device domains
US9330024B1 (en) * 2014-10-09 2016-05-03 Freescale Semiconductor, Inc. Processing device and method thereof
JP2016151949A (ja) * 2015-02-18 2016-08-22 ファナック株式会社 Dmaコントローラ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870622A (en) * 1995-06-07 1999-02-09 Advanced Micro Devices, Inc. Computer system and method for transferring commands and data to a dedicated multimedia engine
US6061748A (en) * 1996-12-24 2000-05-09 International Business Machines Corp. Method and apparatus for moving data packets between networks while minimizing CPU intervention using a multi-bus architecture having DMA bus
US20040136397A1 (en) * 2002-12-31 2004-07-15 Bapi Vinnakota DSP interface for packet processing
US20060259656A1 (en) * 2005-05-10 2006-11-16 Sullivan Mark J Simulating multiple virtual channels in switched fabric networks
US20080183913A1 (en) * 2007-01-31 2008-07-31 Samsung Electronics Co., Ltd. Method and apparatus for determining priorities in direct memory access device having multiple direct memory access request blocks

Also Published As

Publication number Publication date
CN108701103B (zh) 2021-01-05
US20190050355A1 (en) 2019-02-14
DE102016203307A1 (de) 2017-09-07
CN108701103A (zh) 2018-10-23
US10713198B2 (en) 2020-07-14
EP3423949B1 (de) 2020-08-26
EP3423949A1 (de) 2019-01-09
WO2017148743A1 (de) 2017-09-08
KR102755886B1 (ko) 2025-01-17

Similar Documents

Publication Publication Date Title
US8375145B2 (en) Doorbell handling with priority processing function
US5020020A (en) Computer interconnect system with transmit-abort function
US5187780A (en) Dual-path computer interconnect system with zone manager for packet memory
CN109688058B (zh) 报文处理方法、装置及网络设备
KR100666515B1 (ko) 저장 및 포워드 스위치 장치, 시스템 및 방법
EP0391583B1 (en) Dual-path computer interconnect system with four-ported packet memory control
US7886089B2 (en) Method, system and computer program product for enhanced shared store buffer management scheme for differing buffer sizes with limited resources for optimized performance
US7924708B2 (en) Method and apparatus for flow control initialization
JP2006333438A (ja) ゲートウェイ装置及びルーティング方法
KR920017403A (ko) 전송 억세스 승인 및 제어방법과 링버스 통신 시스템
US7602779B2 (en) Microprocessor, network system and communication method
US20140304450A1 (en) Switching device, packet control method, and data communication system
CN105593834B (zh) 用于芯片间通信的通信系统
US9882737B2 (en) Network system
EP2336897B1 (en) Data processing apparatus, data processing method, and computer-readable storage medium
KR20170117326A (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
KR20180117153A (ko) 메인 메모리를 구비한 컴퓨팅 유닛용 직접 메모리 액세스 제어 장치
JP5728043B2 (ja) ゲートウェイ装置
TWI750386B (zh) 匯流排系統
US6880035B1 (en) Electronic bus control device with a parallel databus and a method for the operation of the bus control device
US7596653B2 (en) Technique for broadcasting messages on a point-to-point interconnect
JP2001325212A (ja) マルチプロセッサシステムにおけるソースプロセッサから宛先プロセッサにデータブロックを送信する方法と装置
JPS5986940A (ja) マルチドロツプ方式の情報伝送方式
KR101876636B1 (ko) 메시지 송수신 장치 및 방법
US20250265108A1 (en) Communication device and communication method

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20180927

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20211213

Comment text: Request for Examination of Application

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

Comment text: Notification of reason for refusal

Patent event date: 20240524

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: 20250102

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20250113

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20250114

End annual number: 3

Start annual number: 1

PG1601 Publication of registration